summaryrefslogtreecommitdiff
path: root/.localrepo/emms-24.tar
blob: fd962fb9c8d1ac3dc371124d556d86965e3c2a34 (plain)
ofshex dumpascii
0000 65 6d 6d 73 2d 32 34 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/........................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 30 37 30 31 00 20 35 00 00 00 0000000.00000000000.010701..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2e 65 6c 00 emms-24/emms-source-playlist.el.
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 34 37 31 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 33 32 33 00 20 30 00 00 00 0047100.00000000000.015323..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 3b 3b 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2e 65 6c 20 2d 2d 2d 20 ;;;.emms-source-playlist.el.---.
0420 45 4d 4d 53 20 73 6f 75 72 63 65 73 20 66 72 6f 6d 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 73 EMMS.sources.from.playlist.files
0440 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b ..-*-.lexical-binding:.t;.-*-..;
0460 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 33 2c 20 32 30 30 34 2c 20 32 30 30 35 ;.Copyright.(C).2003,.2004,.2005
0480 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 0a 3b 3b 20 20 20 32 30 30 39 2c 20 32 ,.2006,.2007,.2008,.;;...2009,.2
04a0 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 023.Free.Software.Foundation,.In
04c0 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 20 3c c...;;.Author:.Jorgen.Sch..fer.<
04e0 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 forcer@forcix.cx>.;;.Keywords:.e
0500 6d 6d 73 2c 20 6d 70 33 2c 20 6d 70 65 67 2c 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 mms,.mp3,.mpeg,.multimedia..;;.T
0520 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d his.file.is.part.of.EMMS...;;.EM
0540 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 MS.is.free.software;.you.can.red
0560 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 istribute.it.and/or.modify.;;.it
0580 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .under.the.terms.of.the.GNU.Gene
05a0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 ral.Public.License.as.published.
05c0 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 by.;;.the.Free.Software.Foundati
05e0 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 on;.either.version.3,.or.(at.you
0600 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a r.option).;;.any.later.version..
0620 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 ;;.;;.EMMS.is.distributed.in.the
0640 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b .hope.that.it.will.be.useful,.;;
0660 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f .but.WITHOUT.ANY.WARRANTY;.witho
0680 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a ut.even.the.implied.warranty.of.
06a0 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f ;;.MERCHANTABILITY.or.FITNESS.FO
06c0 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 R.A.PARTICULAR.PURPOSE...See.the
06e0 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 .;;.GNU.General.Public.License.f
0700 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c or.more.details..;;.;;.You.shoul
0720 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e d.have.received.a.copy.of.the.GN
0740 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e U.General.Public.License.;;.alon
0760 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e g.with.EMMS;.see.the.file.COPYIN
0780 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 G..If.not,.write.to.the.;;.Free.
07a0 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
07c0 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f anklin.St,.Fifth.Floor,.;;.Bosto
07e0 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d n,.MA.02110-1301,.USA...;;;.Comm
0800 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 74 entary:..;;.This.file.contains.t
0820 72 61 63 6b 20 73 6f 75 72 63 65 73 20 66 6f 72 20 45 4d 4d 53 20 77 68 69 63 68 20 72 65 61 64 rack.sources.for.EMMS.which.read
0840 20 70 6c 61 79 6c 69 73 74 0a 3b 3b 20 66 69 6c 65 73 2e 20 20 45 4d 4d 53 27 20 6f 77 6e 20 70 .playlist.;;.files...EMMS'.own.p
0860 6c 61 79 6c 69 73 74 20 66 69 6c 65 73 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 20 61 73 20 77 laylist.files.are.supported.as.w
0880 65 6c 6c 20 61 73 20 2e 6d 33 75 20 61 6e 64 0a 3b 3b 20 2e 70 6c 73 20 66 69 6c 65 73 2e 0a 0a ell.as..m3u.and.;;..pls.files...
08a0 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 56 65 72 73 69 6f 6e 20 63 6f 6e 74 72 6f 6c 0a 28 64 ;;;.Code:..;;.Version.control.(d
08c0 65 66 76 61 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 76 65 72 73 69 efvar.emms-source-playlist-versi
08e0 6f 6e 20 22 30 2e 35 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 33 30 20 24 22 0a 20 20 22 65 6d on."0.5.$Revision:.1.30.$"..."em
0900 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2e 65 6c 20 76 65 72 73 69 6f 6e 20 73 74 ms-source-playlist.el.version.st
0920 72 69 6e 67 22 29 0a 3b 3b 20 24 49 64 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e ring").;;.$Id:.emms-source-file.
0940 65 6c 2c 76 20 31 2e 33 30 20 32 30 30 35 2f 30 38 2f 31 31 20 30 36 3a 31 36 3a 31 35 20 79 6f el,v.1.30.2005/08/11.06:16:15.yo
0960 6e 69 72 61 62 6b 69 6e 20 45 78 70 20 24 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a nirabkin.Exp.$..(require.'emms).
0980 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 29 0a 0a 28 64 65 (require.'emms-source-file)..(de
09a0 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 fcustom.emms-source-playlist-for
09c0 6d 61 74 73 20 27 28 6e 61 74 69 76 65 20 70 6c 73 20 6d 33 75 29 0a 20 20 22 2a 41 20 6c 69 73 mats.'(native.pls.m3u)..."*A.lis
09e0 74 20 6f 66 20 70 6c 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 73 2e 0a 45 61 63 68 20 65 6e 74 72 t.of.playlist.formats..Each.entr
0a00 79 20 6d 75 73 74 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 20 74 68 72 65 65 20 63 6f 72 72 65 y.must.have.at.least.three.corre
0a20 73 70 6f 6e 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 46 69 72 73 74 2c 20 61 20 66 75 sponding.functions...First,.a.fu
0a40 6e 63 74 69 6f 6e 20 6e 61 6d 65 64 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 nction.named.`emms-source-playli
0a60 73 74 2d 46 4f 52 4d 41 54 2d 70 27 20 77 68 69 63 68 0a 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e st-FORMAT-p'.which.returns.non-n
0a80 69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 6f 66 20 74 il.if.the.current.buffer.is.of.t
0aa0 68 65 20 74 79 70 65 20 46 4f 52 4d 41 54 2e 20 20 49 74 0a 69 73 20 63 61 6c 6c 65 64 20 77 69 he.type.FORMAT...It.is.called.wi
0ac0 74 68 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 53 65 63 6f 6e 64 2c 20 61 20 66 75 6e 63 th.no.arguments...Second,.a.func
0ae0 74 69 6f 6e 20 6e 61 6d 65 64 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 tion.named.`emms-source-playlist
0b00 2d 70 61 72 73 65 2d 46 4f 52 4d 41 54 27 0a 77 68 69 63 68 20 70 61 72 73 65 73 20 74 68 65 20 -parse-FORMAT'.which.parses.the.
0b20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 6e 74 6f 20 74 72 61 63 6b 73 2e 20 20 49 74 20 current.buffer.into.tracks...It.
0b40 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 0a 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 is.called.with.no.arguments...Th
0b60 69 72 64 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 64 20 60 65 6d 6d 73 2d 73 6f 75 72 ird,.a.function.named.`emms-sour
0b80 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 2d 46 4f 52 4d 41 54 27 0a 77 68 69 63 ce-playlist-unparse-FORMAT'.whic
0ba0 68 20 63 72 65 61 74 65 73 20 61 6e 20 6f 75 74 70 75 74 20 66 69 6c 65 20 69 6e 20 74 68 65 20 h.creates.an.output.file.in.the.
0bc0 74 79 70 65 20 46 4f 52 4d 41 54 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 74 72 type.FORMAT.that.contains.the.tr
0be0 61 63 6b 73 20 6f 66 20 61 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 20 20 49 74 20 69 acks.of.a.playlist.buffer...It.i
0c00 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 3a 0a 54 68 65 s.called.with.two.arguments:.The
0c20 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 74 68 65 20 66 69 6c 65 20 62 75 .playlist.buffer.and.the.file.bu
0c40 66 66 65 72 2e 0a 0a 49 74 20 69 73 20 61 6c 73 6f 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f ffer...It.is.also.recommended.to
0c60 20 68 61 76 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 64 0a 60 65 6d 6d 73 2d 73 6f 75 .have.a.function.named.`emms-sou
0c80 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 46 4f 52 4d 41 54 2d 66 69 6c 65 73 27 20 77 68 69 63 68 rce-playlist-FORMAT-files'.which
0ca0 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 0a 66 69 6c 65 73 20 63 6f 6e .returns.a.list.of.the.files.con
0cc0 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 3a 74 79 70 65 tained.in.the.playlist."...:type
0ce0 20 27 28 72 65 70 65 61 74 20 28 73 79 6d 62 6f 6c 20 3a 74 61 67 20 22 46 6f 72 6d 61 74 22 29 .'(repeat.(symbol.:tag."Format")
0d00 29 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d )...:group.'emms)..(defcustom.em
0d20 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 ms-source-playlist-default-forma
0d40 74 20 6e 69 6c 0a 20 20 22 2a 54 68 65 20 64 65 66 61 75 6c 74 20 66 6f 72 6d 61 74 20 74 6f 20 t.nil..."*The.default.format.to.
0d60 75 73 65 20 66 6f 72 20 73 61 76 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 2e 0a 49 66 20 74 68 69 use.for.saving.playlists..If.thi
0d80 73 20 69 73 20 6e 69 6c 2c 20 79 6f 75 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 s.is.nil,.you.will.be.prompted.f
0da0 6f 72 20 61 20 66 6f 72 6d 61 74 20 74 6f 20 75 73 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 or.a.format.to.use."...:type.'(c
0dc0 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 50 72 6f 6d 70 74 20 65 61 63 68 20 74 hoice.(const.:tag."Prompt.each.t
0de0 69 6d 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 ime".nil)..................(cons
0e00 74 20 3a 74 61 67 20 22 4e 61 74 69 76 65 22 20 6e 61 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 t.:tag."Native".native).........
0e20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 6d 33 75 22 20 6d 33 75 29 0a .........(const.:tag."m3u".m3u).
0e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 70 6c .................(const.:tag."pl
0e60 73 22 20 70 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c s".pls)..................(symbol
0e80 20 3a 74 61 67 20 22 4f 74 68 65 72 22 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a .:tag."Other"))...:group.'emms).
0ea0 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 .(defcustom.emms-source-playlist
0ec0 2d 61 73 6b 2d 62 65 66 6f 72 65 2d 6f 76 65 72 77 72 69 74 65 20 74 0a 20 20 22 2a 41 73 6b 20 -ask-before-overwrite.t..."*Ask.
0ee0 62 65 66 6f 72 65 20 73 61 76 69 6e 67 20 6f 76 65 72 20 61 6e 20 65 78 69 73 74 69 6e 67 20 70 before.saving.over.an.existing.p
0f00 6c 61 79 6c 69 73 74 2e 0a 49 66 20 74 68 69 73 20 69 73 20 6e 69 6c 2c 20 65 78 69 73 74 69 6e laylist..If.this.is.nil,.existin
0f20 67 20 70 6c 61 79 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 71 75 69 65 74 6c 79 20 6f 76 65 72 g.playlists.will.be.quietly.over
0f40 77 72 69 74 74 65 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 written."...:type.'boolean...:gr
0f60 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d oup.'emms)..(defvar.emms-source-
0f80 70 6c 61 79 6c 69 73 74 2d 6e 61 74 69 76 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 22 3b playlist-native-header-line...";
0fa0 3b 3b 20 54 68 69 73 20 69 73 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 ;;.This.is.an.EMMS.playlist.file
0fc0 22 0a 20 20 22 4c 69 6e 65 20 77 68 69 63 68 20 69 64 65 6e 74 69 66 69 65 73 20 61 20 6e 61 74 "..."Line.which.identifies.a.nat
0fe0 69 76 65 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 2e 22 29 0a 0a 3b 3b 3b 20 47 65 6e 65 72 61 ive.emms.playlist.")..;;;.Genera
1000 6c 20 70 6c 61 79 6c 69 73 74 0a 0a 28 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 73 6f 75 72 63 l.playlist..(defsubst.emms-sourc
1020 65 2d 70 6c 61 79 6c 69 73 74 2d 70 2d 73 79 6d 20 28 66 6f 72 6d 61 74 29 0a 20 20 28 69 6e 74 e-playlist-p-sym.(format)...(int
1040 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 ern.(concat."emms-source-playlis
1060 74 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66 6f 72 6d 61 74 29 20 22 2d 70 22 29 29 29 t-".(symbol-name.format)."-p")))
1080 0a 0a 28 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 ..(defsubst.emms-source-playlist
10a0 2d 70 61 72 73 65 2d 73 79 6d 20 28 66 6f 72 6d 61 74 29 0a 20 20 28 69 6e 74 65 72 6e 20 28 63 -parse-sym.(format)...(intern.(c
10c0 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 oncat."emms-source-playlist-pars
10e0 65 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66 6f 72 6d 61 74 29 29 29 29 0a 0a 28 64 65 e-".(symbol-name.format))))..(de
1100 66 73 75 62 73 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 fsubst.emms-source-playlist-unpa
1120 72 73 65 2d 73 79 6d 20 28 66 6f 72 6d 61 74 29 0a 20 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 rse-sym.(format)...(intern.(conc
1140 61 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 at."emms-source-playlist-unparse
1160 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66 6f 72 6d 61 74 29 29 29 29 0a 0a 28 64 65 66 -".(symbol-name.format))))..(def
1180 73 75 62 73 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 73 subst.emms-source-playlist-files
11a0 2d 73 79 6d 20 28 66 6f 72 6d 61 74 29 0a 20 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 -sym.(format)...(intern.(concat.
11c0 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 22 20 28 73 79 6d 62 6f 6c 2d "emms-source-playlist-".(symbol-
11e0 6e 61 6d 65 20 66 6f 72 6d 61 74 29 20 22 2d 66 69 6c 65 73 22 29 29 29 0a 0a 28 64 65 66 75 6e name.format)."-files")))..(defun
1200 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 20 28 66 6f 72 6d 61 74 20 .emms-source-playlist-p.(format.
1220 26 6f 70 74 69 6f 6e 61 6c 20 70 61 72 73 65 2d 66 69 6c 65 73 29 0a 20 20 28 6c 65 74 20 28 28 &optional.parse-files)...(let.((
1240 73 79 6d 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 2d 73 79 6d 20 sym.(emms-source-playlist-p-sym.
1260 66 6f 72 6d 61 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 66 75 6e 63 74 69 format))).....(when.(and.(functi
1280 6f 6e 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 onp.sym)................(or.(not
12a0 20 70 61 72 73 65 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .parse-files)...................
12c0 20 28 66 75 6e 63 74 69 6f 6e 70 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 .(functionp.(emms-source-playlis
12e0 74 2d 66 69 6c 65 73 2d 73 79 6d 20 66 6f 72 6d 61 74 29 29 29 29 0a 20 20 20 20 20 20 28 66 75 t-files-sym.format)))).......(fu
1300 6e 63 61 6c 6c 20 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 ncall.sym))))..(defun.emms-sourc
1320 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 20 28 66 6f 72 6d 61 74 20 66 69 6c 65 29 0a 20 e-playlist-parse.(format.file)..
1340 20 28 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d .(funcall.(emms-source-playlist-
1360 70 61 72 73 65 2d 73 79 6d 20 66 6f 72 6d 61 74 29 20 66 69 6c 65 29 29 0a 0a 28 64 65 66 75 6e parse-sym.format).file))..(defun
1380 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 20 28 66 .emms-source-playlist-unparse.(f
13a0 6f 72 6d 61 74 20 70 6c 61 79 6c 69 73 74 2d 62 75 66 20 66 69 6c 65 2d 62 75 66 29 0a 20 20 28 ormat.playlist-buf.file-buf)...(
13c0 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e funcall.(emms-source-playlist-un
13e0 70 61 72 73 65 2d 73 79 6d 20 66 6f 72 6d 61 74 29 20 70 6c 61 79 6c 69 73 74 2d 62 75 66 20 66 parse-sym.format).playlist-buf.f
1400 69 6c 65 2d 62 75 66 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c ile-buf))..(defun.emms-source-pl
1420 61 79 6c 69 73 74 2d 66 69 6c 65 73 20 28 66 6f 72 6d 61 74 29 0a 20 20 28 6c 65 74 20 28 28 73 aylist-files.(format)...(let.((s
1440 79 6d 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 73 2d 73 ym.(emms-source-playlist-files-s
1460 79 6d 20 66 6f 72 6d 61 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 ym.format))).....(if.(functionp.
1480 73 79 6d 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 79 6d 29 0a 20 20 20 20 20 sym).........(funcall.sym)......
14a0 20 28 65 72 72 6f 72 20 22 54 68 65 20 60 25 73 27 20 66 6f 72 6d 61 74 20 63 61 6e 6e 6f 74 20 .(error."The.`%s'.format.cannot.
14c0 70 61 72 73 65 20 66 69 6c 65 73 20 66 72 6f 6d 20 61 20 70 6c 61 79 6c 69 73 74 22 20 66 6f 72 parse.files.from.a.playlist".for
14e0 6d 61 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 mat))))..(defvar.emms-source-pla
1500 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 0a 20 20 22 4c 69 73 74 ylist-format-history.nil..."List
1520 20 6f 66 20 72 65 63 65 6e 74 6c 79 2d 65 6e 74 65 72 65 64 20 66 6f 72 6d 61 74 73 3b 20 75 73 .of.recently-entered.formats;.us
1540 65 64 20 62 79 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 61 76 65 27 2e 22 29 0a 0a 28 ed.by.`emms-playlist-save'.")..(
1560 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 72 65 61 64 2d defun.emms-source-playlist-read-
1580 66 6f 72 6d 61 74 20 28 29 0a 20 20 22 52 65 61 64 20 61 20 70 6c 61 79 6c 69 73 74 20 66 6f 72 format.()..."Read.a.playlist.for
15a0 6d 61 74 20 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e 0a 49 66 20 60 65 6d 6d 73 2d 73 6f 75 72 mat.from.the.user..If.`emms-sour
15c0 63 65 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 27 20 69 73 20 6e ce-playlist-default-format'.is.n
15e0 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 69 74 0a 69 6e 73 74 65 61 64 20 6f 66 20 70 72 6f 6d 70 74 on-nil,.use.it.instead.of.prompt
1600 69 6e 67 20 74 68 65 20 75 73 65 72 2e 22 0a 20 20 28 6f 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 ing.the.user."...(or.emms-source
1620 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 28 -playlist-default-format.......(
1640 6c 65 74 20 28 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d let.((format..............(emms-
1660 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 completing-read...............(c
1680 6f 6e 63 61 74 20 22 50 6c 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 3a 20 28 64 65 66 61 75 6c 74 oncat."Playlist.format:.(default
16a0 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 6d :.".......................(if.em
16c0 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 74 6f 72 ms-source-playlist-format-histor
16e0 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 y...........................(car
1700 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 .emms-source-playlist-format-his
1720 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e tory)........................."n
1740 61 74 69 76 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 ative").......................")
1760 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 73 79 6d 62 .")...............(mapcar.#'symb
1780 6f 6c 2d 6e 61 6d 65 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 ol-name.emms-source-playlist-for
17a0 6d 61 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 20 mats)...............nil.nil.nil.
17c0 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 'emms-source-playlist-format-his
17e0 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 73 6f 75 72 tory...............(if.emms-sour
1800 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 ce-playlist-format-history......
1820 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c .............(car.emms-source-pl
1840 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 aylist-format-history)..........
1860 20 20 20 20 20 20 20 22 6e 61 74 69 76 65 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 ......."native")))).........;;.S
1880 6f 6d 65 74 69 6d 65 73 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e ometimes.the.completion.function
18a0 20 63 61 6e 20 70 75 74 20 70 61 72 74 69 61 6c 20 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 20 .can.put.partial.results........
18c0 20 3b 3b 20 6f 6e 74 6f 20 74 68 65 20 68 69 73 74 6f 72 79 2c 20 73 6f 20 70 6f 70 20 74 68 65 .;;.onto.the.history,.so.pop.the
18e0 20 6c 61 73 74 20 6f 6e 65 20 6f 66 66 20 61 6e 64 20 69 6e 63 6c 75 64 65 20 74 68 65 0a 20 20 .last.one.off.and.include.the...
1900 20 20 20 20 20 20 3b 3b 20 63 6f 6d 70 6c 65 74 65 64 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 65 ......;;.completed.version.inste
1920 61 64 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c ad..........(setq.emms-source-pl
1940 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 aylist-format-history...........
1960 20 20 20 20 28 63 6f 6e 73 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(cons.format................
1980 20 20 20 20 20 28 63 64 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 .....(cdr.emms-source-playlist-f
19a0 6f 72 6d 61 74 2d 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 66 ormat-history))).......(intern.f
19c0 6f 72 6d 61 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ormat))))..(defun.emms-playlist-
19e0 73 61 76 65 20 28 66 6f 72 6d 61 74 20 66 69 6c 65 29 0a 20 20 22 53 74 6f 72 65 20 74 68 65 20 save.(format.file)..."Store.the.
1a00 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 74 6f 20 46 49 4c 45 20 61 73 20 74 68 65 20 current.playlist.to.FILE.as.the.
1a20 74 79 70 65 20 46 4f 52 4d 41 54 2e 0a 54 68 65 20 64 65 66 61 75 6c 74 20 66 6f 72 6d 61 74 20 type.FORMAT..The.default.format.
1a40 69 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 is.specified.by.`emms-source-pla
1a60 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 ylist-default-format'."...(inter
1a80 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 active.(list.(emms-source-playli
1aa0 73 74 2d 72 65 61 64 2d 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st-read-format).................
1ac0 20 20 20 20 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 53 74 6f 72 65 20 61 73 3a 20 .....(read-file-name."Store.as:.
1ae0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
1b00 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d .......emms-source-file-default-
1b20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 directory.......................
1b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d ...............emms-source-file-
1b60 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 default-directory...............
1b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 .......................nil)))...
1ba0 28 69 66 20 28 6f 72 20 28 65 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 (if.(or.(eq.emms-playlist-buffer
1bc0 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 09 20 20 28 61 6e 64 20 28 6e 6f 74 20 .(current-buffer))....(and.(not.
1be0 28 65 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e (eq.emms-playlist-buffer.(curren
1c00 74 2d 62 75 66 66 65 72 29 29 29 0a 09 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 0a 09 09 t-buffer))).........(y-or-n-p...
1c20 28 66 6f 72 6d 61 74 20 22 43 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 (format."Current.playlist.buffer
1c40 20 28 25 73 29 20 69 73 20 6e 6f 74 20 74 68 65 20 6f 6e 65 20 79 6f 75 20 61 72 65 20 76 69 73 .(%s).is.not.the.one.you.are.vis
1c60 69 74 69 6e 67 20 28 25 73 29 2e 20 53 61 76 65 20 61 6e 79 77 61 79 3f 22 0a 09 09 09 65 6d 6d iting.(%s)..Save.anyway?"....emm
1c80 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 s-playlist-buffer.(current-buffe
1ca0 72 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 09 r))))).......(with-temp-buffer..
1cc0 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 20 66 6f (emms-source-playlist-unparse.fo
1ce0 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rmat............................
1d00 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c ...........(with-current-emms-pl
1d20 61 79 6c 69 73 74 0a 09 09 09 09 09 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 aylist......(current-buffer))...
1d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d60 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 09 28 6c 65 74 20 28 28 62 61 ....(current-buffer))..(let.((ba
1d80 63 6b 75 70 2d 69 6e 68 69 62 69 74 65 64 20 74 29 29 0a 09 20 20 28 77 72 69 74 65 2d 66 69 6c ckup-inhibited.t))....(write-fil
1da0 65 20 66 69 6c 65 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 61 73 6b 2d e.file.emms-source-playlist-ask-
1dc0 62 65 66 6f 72 65 2d 6f 76 65 72 77 72 69 74 65 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 before-overwrite))).....(message
1de0 20 22 61 62 6f 72 74 69 6e 67 20 73 61 76 65 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 ."aborting.save")))..(defun.emms
1e00 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 64 65 74 65 72 6d 69 6e 65 2d 66 6f 72 6d 61 -source-playlist-determine-forma
1e20 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 61 72 73 65 2d 66 69 6c 65 73 29 0a 20 20 22 44 65 74 t.(&optional.parse-files)..."Det
1e40 65 72 6d 69 6e 65 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 ermine.the.playlist.format.of.th
1e60 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 49 66 20 50 41 52 53 45 2d 46 49 4c 45 53 e.current.buffer..If.PARSE-FILES
1e80 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 67 69 76 65 6e 20 66 6f 72 6d 61 74 20 .is.specified,.the.given.format.
1ea0 6d 75 73 74 20 62 65 20 61 62 6c 65 20 74 6f 0a 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 must.be.able.to.return.a.list.of
1ec0 20 74 68 65 20 66 69 6c 65 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 70 6c 61 79 .the.files.contained.in.the.play
1ee0 6c 69 73 74 2e 22 0a 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 28 6c 65 74 list."...(catch.'return.....(let
1f00 20 28 28 66 6f 72 6d 61 74 73 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d .((formats.emms-source-playlist-
1f20 66 6f 72 6d 61 74 73 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 66 6f 72 6d 61 74 73 0a 20 formats)).......(while.formats..
1f40 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 .......(when.(emms-source-playli
1f60 73 74 2d 70 20 28 63 61 72 20 66 6f 72 6d 61 74 73 29 20 70 61 72 73 65 2d 66 69 6c 65 73 29 0a st-p.(car.formats).parse-files).
1f80 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 28 63 61 72 20 66 6f ..........(throw.'return.(car.fo
1fa0 72 6d 61 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 72 6d 61 74 73 20 28 rmats))).........(setq.formats.(
1fc0 63 64 72 20 66 6f 72 6d 61 74 73 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 cdr.formats))))))..;;;###autoloa
1fe0 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 20 d.(autoload.'emms-play-playlist.
2000 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 3b 3b "emms-source-playlist".nil.t).;;
2020 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 ;###autoload.(autoload.'emms-add
2040 2d 70 6c 61 79 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 -playlist."emms-source-playlist"
2060 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 70 6c 61 79 .nil.t).(define-emms-source.play
2080 6c 69 73 74 20 28 66 69 6c 65 29 0a 20 20 22 41 6e 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 66 6f list.(file)..."An.EMMS.source.fo
20a0 72 20 70 6c 61 79 6c 69 73 74 73 2e 0a 53 65 65 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c r.playlists..See.`emms-source-pl
20c0 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 73 27 20 66 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 73 75 aylist-formats'.for.a.list.of.su
20e0 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 pported.formats."...(interactive
2100 20 28 6c 69 73 74 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 50 6c 61 79 6c 69 73 74 .(list.(read-file-name."Playlist
2120 20 66 69 6c 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .file:."........................
2140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 ..............emms-source-file-d
2160 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efault-directory................
2180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 ......................emms-sourc
21a0 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 e-file-default-directory........
21c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 ..............................t)
21e0 29 29 0a 20 20 28 6d 61 70 63 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 ))...(mapc.#'emms-playlist-inser
2200 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 t-track.........(with-temp-buffe
2220 72 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f r...........(emms-insert-file-co
2240 6e 74 65 6e 74 73 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 ntents.file)...........(goto-cha
2260 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 r.(point-min))...........(let.((
2280 66 6f 72 6d 61 74 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 64 65 74 format.(emms-source-playlist-det
22a0 65 72 6d 69 6e 65 2d 66 6f 72 6d 61 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 ermine-format))).............(if
22c0 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f .format.................(emms-so
22e0 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 20 66 6f 72 6d 61 74 20 66 69 6c 65 29 urce-playlist-parse.format.file)
2300 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 74 20 61 20 72 65 63 ...............(error."Not.a.rec
2320 6f 67 6e 69 7a 65 64 20 70 6c 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 22 29 29 29 29 29 29 0a 0a ognized.playlist.format"))))))..
2340 3b 3b 3b 20 45 6d 6d 73 20 6e 61 74 69 76 65 20 70 6c 61 79 6c 69 73 74 73 0a 0a 3b 3b 20 41 6e ;;;.Emms.native.playlists..;;.An
2360 20 45 6d 6d 73 20 6e 61 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 20 73 74 61 72 74 .Emms.native.playlist.file.start
2380 73 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 0a 3b 3b 20 60 65 6d 6d 73 2d s.with.the.contents.of.;;.`emms-
23a0 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6e 61 74 69 76 65 2d 68 65 61 64 65 72 2d 6c 69 source-playlist-native-header-li
23c0 6e 65 27 20 61 6e 64 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 0a 3b 3b 20 74 72 61 63 6b 73 ne'.and.is.followed.by.;;.tracks
23e0 20 69 6e 20 73 65 78 70 20 66 6f 72 6d 61 74 2e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f .in.sexp.format...(defun.emms-so
2400 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6e 61 74 69 76 65 2d 70 20 28 29 0a 20 20 22 52 65 74 urce-playlist-native-p.()..."Ret
2420 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 urn.non-nil.if.the.current.buffe
2440 72 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 61 74 69 76 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 r.contains.a.native.EMMS.playlis
2460 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d t."...(save-excursion.....(goto-
2480 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 char.(point-min)).....(looking-a
24a0 74 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 t.(concat."^".emms-source-playli
24c0 73 74 2d 6e 61 74 69 76 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 75 st-native-header-line))))..(defu
24e0 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 2d 6e 61 74 n.emms-source-playlist-parse-nat
2500 69 76 65 20 28 66 69 6c 65 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 6e 61 74 69 76 65 20 45 ive.(file)..."Parse.the.native.E
2520 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 MMS.playlist.in.the.current.buff
2540 65 72 2e 22 0a 20 20 28 69 67 6e 6f 72 65 20 66 69 6c 65 29 0a 20 20 28 6c 65 74 20 28 28 74 72 er."...(ignore.file)...(let.((tr
2560 61 63 6b 73 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 acks.(save-excursion............
2580 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
25a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 ...............(read.(current-bu
25c0 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 72 61 ffer))))).....(mapc.(lambda.(tra
25e0 63 6b 29 0a 09 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 65 6d 6d 73 2d 63 61 63 ck)......(when.(fboundp.emms-cac
2600 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 he-set-function)...............(
2620 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 0a funcall.emms-cache-set-function.
2640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 .......................(emms-tra
2660 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ck-type.track)..................
2680 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 0a 20 20 ......(emms-track-name.track)...
26a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 29 29 29 0a 20 20 .....................track)))...
26c0 20 20 20 20 20 20 20 20 74 72 61 63 6b 73 29 0a 20 20 20 20 74 72 61 63 6b 73 29 29 0a 0a 28 64 ........tracks).....tracks))..(d
26e0 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 efun.emms-source-playlist-unpars
2700 65 2d 6e 61 74 69 76 65 20 28 69 6e 20 6f 75 74 29 0a 20 20 22 55 6e 70 61 72 73 65 20 61 20 6e e-native.(in.out)..."Unparse.a.n
2720 61 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 49 4e 20 74 6f 20 4f 55 54 2e 0a 49 ative.playlist.from.IN.to.OUT..I
2740 4e 20 73 68 6f 75 6c 64 20 62 65 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 61 20 45 4d 4d 53 N.should.be.a.buffer.with.a.EMMS
2760 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 69 74 2e 0a 4f 55 54 20 73 68 6f 75 6c 64 20 62 65 20 74 .playlist.in.it..OUT.should.be.t
2780 68 65 20 62 75 66 66 65 72 20 77 68 65 72 65 20 74 72 61 63 6b 73 20 61 72 65 20 73 74 6f 72 65 he.buffer.where.tracks.are.store
27a0 64 20 69 6e 20 74 68 65 20 6e 61 74 69 76 65 20 45 4d 4d 53 20 66 6f 72 6d 61 74 2e 22 0a 20 20 d.in.the.native.EMMS.format."...
27c0 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 69 6e 20 3b 3b 20 44 6f 6e 27 74 (with-current-buffer.in.;;.Don't
27e0 20 6d 6f 64 69 66 79 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 65 .modify.the.position.....(save-e
2800 78 63 75 72 73 69 6f 6e 20 20 20 20 20 20 20 3b 3b 20 69 6e 20 74 68 65 20 49 4e 20 62 75 66 66 xcursion.......;;.in.the.IN.buff
2820 65 72 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 75 er.......(with-current-buffer.ou
2840 74 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c t.........(insert.emms-source-pl
2860 61 79 6c 69 73 74 2d 6e 61 74 69 76 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 aylist-native-header-line.......
2880 20 20 20 20 20 20 20 20 20 20 22 20 50 6c 61 79 20 69 74 20 77 69 74 68 20 4d 2d 78 20 65 6d 6d ..........".Play.it.with.M-x.emm
28a0 73 2d 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 s-play-playlist\n").........(ins
28c0 65 72 74 20 22 28 22 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 72 73 74 70 20 74 29 ert."(")).......(let.((firstp.t)
28e0 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ).........(goto-char.(point-min)
2900 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 0a 20 20 20 20 ).........(emms-walk-tracks.....
2920 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ......(let.((track.(emms-playlis
2940 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 t-track-at.(point))))...........
2960 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 75 74 0a 20 20 20 20 20 ..(with-current-buffer.out......
2980 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 66 69 72 73 74 70 29 0a 20 20 20 20 20 20 .........(if.(not.firstp).......
29a0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 20 22 29 0a 20 20 20 20 20 ............(insert."\n.")......
29c0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 72 73 74 70 20 6e 69 6c 29 29 0a 20 20 ...........(setq.firstp.nil))...
29e0 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 20 74 72 61 63 6b 20 28 63 75 72 72 65 6e ............(prin1.track.(curren
2a00 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 t-buffer)))))).......(with-curre
2a20 6e 74 2d 62 75 66 66 65 72 20 6f 75 74 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 nt-buffer.out.........(insert.")
2a40 5c 6e 22 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f \n")))))..;;;###autoload.(autolo
2a60 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 6e 61 74 69 76 65 2d 70 6c 61 79 6c 69 73 74 20 22 65 ad.'emms-play-native-playlist."e
2a80 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 mms-source-playlist".nil.t).;;;#
2aa0 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 6e ##autoload.(autoload.'emms-add-n
2ac0 61 74 69 76 65 2d 70 6c 61 79 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 ative-playlist."emms-source-play
2ae0 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 list".nil.t).(define-emms-source
2b00 20 6e 61 74 69 76 65 2d 70 6c 61 79 6c 69 73 74 20 28 66 69 6c 65 29 0a 20 20 22 41 6e 20 45 4d .native-playlist.(file)..."An.EM
2b20 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 6e 61 74 69 76 65 20 45 4d 4d 53 20 70 6c 61 79 MS.source.for.a.native.EMMS.play
2b40 6c 69 73 74 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 list.file."...(interactive.(list
2b60 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 50 6c 61 79 6c 69 73 74 20 66 69 6c 65 3a .(read-file-name."Playlist.file:
2b80 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
2ba0 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 ........emms-source-file-default
2bc0 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -directory......................
2be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 ................emms-source-file
2c00 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -default-directory..............
2c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 ........................t)))...(
2c40 6d 61 70 63 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 mapc.#'emms-playlist-insert-trac
2c60 6b 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 k.........(with-temp-buffer.....
2c80 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 ......(emms-insert-file-contents
2ca0 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 .file)...........(goto-char.(poi
2cc0 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 nt-min))...........(when.(not.(e
2ce0 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6e 61 74 69 76 65 2d 70 29 29 0a 20 mms-source-playlist-native-p))..
2d00 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 74 20 61 20 6e 61 74 69 76 65 20 ...........(error."Not.a.native.
2d20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 EMMS.playlist.file."))..........
2d40 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 2d 6e 61 74 .(emms-source-playlist-parse-nat
2d60 69 76 65 20 66 69 6c 65 29 29 29 29 0a 0a 3b 3b 3b 20 6d 33 75 20 66 69 6c 65 73 0a 0a 3b 3b 20 ive.file))))..;;;.m3u.files..;;.
2d80 46 6f 72 6d 61 74 3a 0a 3b 3b 20 45 69 74 68 65 72 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 Format:.;;.Either.a.list.of.file
2da0 6e 61 6d 65 2d 70 65 72 2d 6c 69 6e 65 2c 20 69 67 6e 6f 72 65 20 6c 69 6e 65 73 20 62 65 67 69 name-per-line,.ignore.lines.begi
2dc0 6e 6e 69 6e 67 20 77 69 74 68 20 23 0a 3b 3b 20 6f 72 3a 0a 3b 3b 20 23 45 58 54 4d 33 55 0a 3b nning.with.#.;;.or:.;;.#EXTM3U.;
2de0 3b 20 23 45 58 54 49 4e 46 3a 3c 6c 65 6e 67 74 68 20 69 6e 20 73 65 63 6f 6e 64 73 3e 2c 3c 6e ;.#EXTINF:<length.in.seconds>,<n
2e00 61 6d 65 3e 0a 3b 3b 20 3c 66 69 6c 65 6e 61 6d 65 3e 0a 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 ame>.;;.<filename>..;.emms-sourc
2e20 65 2d 70 6c 61 79 6c 69 73 74 2d 6d 33 75 2d 70 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 e-playlist-m3u-p.;.emms-source-p
2e40 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 2d 6d 33 75 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d laylist-parse-m3u.;.emms-source-
2e60 70 6c 61 79 6c 69 73 74 2d 6d 33 75 2d 66 69 6c 65 73 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 playlist-m3u-files.;.emms-source
2e80 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 2d 6d 33 75 0a 0a 28 64 65 66 75 6e 20 65 6d -playlist-unparse-m3u..(defun.em
2ea0 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6d 33 75 2d 70 20 28 29 0a 20 20 22 52 ms-source-playlist-m3u-p.()..."R
2ec0 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 eturn.non-nil.if.the.current.buf
2ee0 66 65 72 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 6d 33 75 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 57 fer.contains.an.m3u.playlist...W
2f00 65 20 63 75 72 72 65 6e 74 6c 79 20 68 61 76 65 20 6e 6f 20 6d 65 74 72 69 63 20 66 6f 72 20 64 e.currently.have.no.metric.for.d
2f20 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 65 74 68 65 72 20 61 20 62 75 66 66 65 72 20 69 73 0a 61 etermining.whether.a.buffer.is.a
2f40 6e 20 2e 6d 33 75 20 70 6c 61 79 6c 69 73 74 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 63 6f 6e n..m3u.playlist.based.on.its.con
2f60 74 65 6e 74 73 20 61 6c 6f 6e 65 2c 20 73 6f 20 77 65 20 61 73 73 75 6d 65 20 74 68 61 74 0a 74 tents.alone,.so.we.assume.that.t
2f80 68 65 20 6d 6f 72 65 20 72 65 73 74 72 69 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 66 6f 72 he.more.restrictive.playlist.for
2fa0 6d 61 74 73 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 62 65 65 6e 0a 64 65 74 65 63 74 65 64 20 mats.have.already.been.detected.
2fc0 61 6e 64 20 73 69 6d 70 6c 79 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 61 6c 77 61 79 73 and.simply.return.non-nil.always
2fe0 2e 22 0a 20 20 74 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 ."...t)..(defun.emms-source-play
3000 6c 69 73 74 2d 70 61 72 73 65 2d 6d 33 75 20 28 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 29 0a 20 list-parse-m3u.(playlist-file)..
3020 20 22 50 61 72 73 65 20 74 68 65 20 6d 33 75 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 20 ."Parse.the.m3u.playlist.in.the.
3040 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 46 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 72 65 current.buffer..Files.will.be.re
3060 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 50 4c 41 59 4c lative.to.the.directory.of.PLAYL
3080 49 53 54 2d 46 49 4c 45 2c 20 75 6e 6c 65 73 73 0a 74 68 65 79 20 68 61 76 65 20 61 62 73 6f 6c IST-FILE,.unless.they.have.absol
30a0 75 74 65 20 70 61 74 68 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 72 20 28 66 69 6c 65 2d 6e ute.paths."...(let.((dir.(file-n
30c0 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 29 29 29 0a 20 ame-directory.playlist-file)))..
30e0 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 ...(mapcar.(lambda.(file).......
3100 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 60 5c 5c ........(if.(string-match."\\`\\
3120 28 68 74 74 70 5b 73 5d 3f 5c 5c 7c 6d 6d 73 5c 5c 29 3a 2f 2f 22 20 66 69 6c 65 29 0a 20 20 20 (http[s]?\\|mms\\)://".file)....
3140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 75 72 6c 20 ...............(emms-track.'url.
3160 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 file).................(emms-trac
3180 6b 20 27 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 64 k.'file.(expand-file-name.file.d
31a0 69 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d ir)))).............(emms-source-
31c0 70 6c 61 79 6c 69 73 74 2d 6d 33 75 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 playlist-m3u-files))))..(defun.e
31e0 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6d 33 75 2d 66 69 6c 65 73 20 28 29 mms-source-playlist-m3u-files.()
3200 0a 20 20 22 45 78 74 72 61 63 74 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 6e 61 6d 65 73 20 ..."Extract.a.list.of.filenames.
3220 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 6d 33 75 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 45 6d from.the.given.m3u.playlist...Em
3240 70 74 79 20 6c 69 6e 65 73 20 61 6e 64 20 6c 69 6e 65 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 pty.lines.and.lines.starting.wit
3260 68 20 27 23 27 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c h.'#'.are.ignored."...(let.((fil
3280 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 es.nil)).....(save-excursion....
32a0 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 ...(goto-char.(point-min))......
32c0 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 5b 5e 23 .(while.(re-search-forward."^[^#
32e0 20 5c 6e 5d 2e 2a 24 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 .\n].*$".nil.t).........(setq.fi
3300 6c 65 73 20 28 63 6f 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 20 66 69 6c 65 73 les.(cons.(match-string.0).files
3320 29 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 )))).....(nreverse.files)))..(de
3340 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 fun.emms-source-playlist-unparse
3360 2d 6d 33 75 20 28 69 6e 20 6f 75 74 29 0a 20 20 22 55 6e 70 61 72 73 65 20 61 6e 20 6d 33 75 20 -m3u.(in.out)..."Unparse.an.m3u.
3380 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 49 4e 20 74 6f 20 4f 55 54 2e 0a 49 4e 20 73 68 6f 75 playlist.from.IN.to.OUT..IN.shou
33a0 6c 64 20 62 65 20 61 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 6d 33 75 ld.be.a.buffer.containing.an.m3u
33c0 20 70 6c 61 79 6c 69 73 74 2e 0a 4f 55 54 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 62 75 66 .playlist..OUT.should.be.the.buf
33e0 66 65 72 20 77 68 65 72 65 20 74 72 61 63 6b 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 6d fer.where.tracks.are.stored.in.m
3400 33 75 20 66 6f 72 6d 61 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 3u.format."...(with-current-buff
3420 65 72 20 69 6e 20 3b 3b 20 44 6f 6e 27 74 20 6d 6f 64 69 66 79 20 74 68 65 20 70 6f 73 69 74 69 er.in.;;.Don't.modify.the.positi
3440 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 20 20 20 20 20 20 3b 3b 20 on.....(save-excursion.......;;.
3460 69 6e 20 74 68 65 20 49 4e 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 in.the.IN.buffer.......(goto-cha
3480 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d r.(point-min)).......(emms-walk-
34a0 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d tracks.........(let.((track.(emm
34c0 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 s-playlist-track-at.(point))))..
34e0 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 75 .........(with-current-buffer.ou
3500 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 74 72 61 63 t.............(insert.(emms-trac
3520 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 20 3f 5c 6e 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 k-name.track).?\n)))))))..;;;###
3540 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 6d 33 autoload.(autoload.'emms-play-m3
3560 75 2d 70 6c 61 79 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 u-playlist."emms-source-playlist
3580 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 ".nil.t).;;;###autoload.(autoloa
35a0 64 20 27 65 6d 6d 73 2d 61 64 64 2d 6d 33 75 2d 70 6c 61 79 6c 69 73 74 20 22 65 6d 6d 73 2d 73 d.'emms-add-m3u-playlist."emms-s
35c0 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 ource-playlist".nil.t).(define-e
35e0 6d 6d 73 2d 73 6f 75 72 63 65 20 6d 33 75 2d 70 6c 61 79 6c 69 73 74 20 28 66 69 6c 65 29 0a 20 mms-source.m3u-playlist.(file)..
3600 20 22 41 6e 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 61 6e 20 6d 33 75 20 70 6c 61 79 ."An.EMMS.source.for.an.m3u.play
3620 6c 69 73 74 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 list.file."...(interactive.(list
3640 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 50 6c 61 79 6c 69 73 74 20 66 69 6c 65 3a .(read-file-name."Playlist.file:
3660 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
3680 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 ........emms-source-file-default
36a0 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -directory......................
36c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 ................emms-source-file
36e0 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -default-directory..............
3700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 ........................t)))...(
3720 6d 61 70 63 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 mapc.#'emms-playlist-insert-trac
3740 6b 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 k.........(with-temp-buffer.....
3760 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 ......(emms-insert-file-contents
3780 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 .file)...........(goto-char.(poi
37a0 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 nt-min))...........(when.(not.(e
37c0 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6d 33 75 2d 70 29 29 0a 20 20 20 20 mms-source-playlist-m3u-p)).....
37e0 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 74 20 61 6e 20 6d 33 75 20 70 6c 61 79 6c ........(error."Not.an.m3u.playl
3800 69 73 74 20 66 69 6c 65 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 ist.file."))...........(emms-sou
3820 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 2d 6d 33 75 20 66 69 6c 65 29 29 29 29 0a rce-playlist-parse-m3u.file)))).
3840 0a 3b 3b 3b 20 70 6c 73 20 66 69 6c 65 73 0a 0a 3b 3b 20 46 6f 72 6d 61 74 3a 0a 3b 3b 20 41 20 .;;;.pls.files..;;.Format:.;;.A.
3860 6c 69 73 74 20 6f 66 20 6f 6e 65 20 66 69 6c 65 6e 61 6d 65 20 70 65 72 20 6c 69 6e 65 2e 0a 3b list.of.one.filename.per.line..;
3880 3b 20 5b 70 6c 61 79 6c 69 73 74 5d 0a 3b 3b 20 4e 75 6d 62 65 72 4f 66 45 6e 74 72 69 65 73 3d ;.[playlist].;;.NumberOfEntries=
38a0 3c 6e 75 6d 5f 65 6e 74 72 69 65 73 3e 0a 3b 3b 20 46 69 6c 65 3c 70 6f 73 69 74 69 6f 6e 3e 3d <num_entries>.;;.File<position>=
38c0 3c 66 69 6c 65 6e 61 6d 65 3e 0a 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 <filename>..;.emms-source-playli
38e0 73 74 2d 70 6c 73 2d 70 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d st-pls-p.;.emms-source-playlist-
3900 70 61 72 73 65 2d 70 6c 73 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 parse-pls.;.emms-source-playlist
3920 2d 70 6c 73 2d 66 69 6c 65 73 0a 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 -pls-files.;.emms-source-playlis
3940 74 2d 75 6e 70 61 72 73 65 2d 70 6c 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 t-unparse-pls..(defun.emms-sourc
3960 65 2d 70 6c 61 79 6c 69 73 74 2d 70 6c 73 2d 70 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f e-playlist-pls-p.()..."Return.no
3980 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 63 6f 6e 74 n-nil.if.the.current.buffer.cont
39a0 61 69 6e 73 20 61 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 ains.a.pls.playlist."...(save-ex
39c0 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 cursion.....(goto-char.(point-mi
39e0 6e 29 29 0a 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 n)).....(if.(re-search-forward."
3a00 5e 46 69 6c 65 5b 30 2d 39 5d 2a 3d 2e 2b 24 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 ^File[0-9]*=.+$".nil.t).........
3a20 74 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 t.......nil)))..(defun.emms-sour
3a40 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 2d 70 6c 73 20 28 70 6c 61 79 6c 69 73 74 2d ce-playlist-parse-pls.(playlist-
3a60 66 69 6c 65 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 20 file)..."Parse.the.pls.playlist.
3a80 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 46 69 6c 65 73 20 77 69 6c in.the.current.buffer..Files.wil
3aa0 6c 20 62 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f l.be.relative.to.the.directory.o
3ac0 66 20 50 4c 41 59 4c 49 53 54 2d 46 49 4c 45 2c 20 75 6e 6c 65 73 73 0a 74 68 65 79 20 68 61 76 f.PLAYLIST-FILE,.unless.they.hav
3ae0 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 72 20 e.absolute.paths."...(let.((dir.
3b00 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 70 6c 61 79 6c 69 73 74 2d 66 69 (file-name-directory.playlist-fi
3b20 6c 65 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 le))).....(mapcar.(lambda.(file)
3b40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 ...............(if.(string-match
3b60 20 22 5c 5c 60 5c 5c 28 68 74 74 70 5b 73 5d 3f 5c 5c 7c 6d 6d 73 5c 5c 29 3a 2f 2f 22 20 66 69 ."\\`\\(http[s]?\\|mms\\)://".fi
3b80 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 le)...................(emms-trac
3ba0 6b 20 27 75 72 6c 20 66 69 6c 65 29 0a 09 09 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 k.'url.file)...(if.(string-match
3bc0 20 22 5c 5c 60 66 69 6c 65 3a 2f 2f 22 20 66 69 6c 65 29 20 3b 3b 20 68 61 6e 64 6c 65 20 66 69 ."\\`file://".file).;;.handle.fi
3be0 6c 65 3a 2f 2f 20 75 72 69 73 20 0a 09 09 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 75 72 6c le://.uris......(let.((file.(url
3c00 2d 75 6e 68 65 78 2d 73 74 72 69 6e 67 20 28 73 75 62 73 74 72 69 6e 67 20 66 69 6c 65 20 37 29 -unhex-string.(substring.file.7)
3c20 29 29 29 0a 09 09 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 66 69 6c 65 20 66 69 6c 65 ))).......(emms-track.'file.file
3c40 29 29 0a 09 09 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 66 69 6c 65 20 28 65 78 70 61 6e 64 )).....(emms-track.'file.(expand
3c60 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 64 69 72 29 29 29 29 29 0a 20 20 20 20 20 20 28 -file-name.file.dir))))).......(
3c80 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 6c 73 2d 66 69 6c 65 73 29 29 emms-source-playlist-pls-files))
3ca0 29 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 ))...(defun.emms-source-playlist
3cc0 2d 70 6c 73 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 45 78 74 72 61 63 74 20 61 20 6c 69 73 74 20 -pls-files.()..."Extract.a.list.
3ce0 6f 66 20 66 69 6c 65 6e 61 6d 65 73 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 70 6c 73 20 of.filenames.from.the.given.pls.
3d00 70 6c 61 79 6c 69 73 74 2e 0a 0a 45 6d 70 74 79 20 6c 69 6e 65 73 20 61 6e 64 20 6c 69 6e 65 73 playlist...Empty.lines.and.lines
3d20 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 27 23 27 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 22 .starting.with.'#'.are.ignored."
3d40 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d ...(let.((files.nil)).....(save-
3d60 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e excursion.......(goto-char.(poin
3d80 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d t-min)).......(while.(re-search-
3da0 66 6f 72 77 61 72 64 20 22 5e 46 69 6c 65 5b 30 2d 39 5d 2a 3d 5c 5c 28 2e 2b 5c 5c 29 24 22 20 forward."^File[0-9]*=\\(.+\\)$".
3dc0 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 73 20 28 63 6f 6e 73 nil.t).........(setq.files.(cons
3de0 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 66 69 6c 65 73 29 29 29 29 0a 20 20 20 20 .(match-string.1).files)))).....
3e00 28 6e 72 65 76 65 72 73 65 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d (nreverse.files)))..(defun.emms-
3e20 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 2d 70 6c 73 20 28 69 6e 20 source-playlist-unparse-pls.(in.
3e40 6f 75 74 29 0a 20 20 22 55 6e 70 61 72 73 65 20 61 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 20 66 out)..."Unparse.a.pls.playlist.f
3e60 72 6f 6d 20 49 4e 20 74 6f 20 4f 55 54 2e 0a 49 4e 20 73 68 6f 75 6c 64 20 62 65 20 61 20 62 75 rom.IN.to.OUT..IN.should.be.a.bu
3e80 66 66 65 72 20 63 6f 6e 61 74 69 6e 69 6e 67 20 61 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 2e 0a ffer.conatining.a.pls.playlist..
3ea0 4f 55 54 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 72 65 20 74 OUT.should.be.the.buffer.where.t
3ec0 72 61 63 6b 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 70 6c 73 20 66 6f 72 6d 61 74 2e 22 racks.are.stored.in.pls.format."
3ee0 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 69 6e 20 3b 3b 20 44 6f ...(with-current-buffer.in.;;.Do
3f00 6e 27 74 20 6d 6f 64 69 66 79 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 28 73 61 76 n't.modify.the.position.....(sav
3f20 65 2d 65 78 63 75 72 73 69 6f 6e 20 20 20 20 20 20 20 3b 3b 20 69 6e 20 74 68 65 20 49 4e 20 62 e-excursion.......;;.in.the.IN.b
3f40 75 66 66 65 72 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 30 29 0a 20 20 20 20 20 20 uffer.......(let.((pos.0).......
3f60 20 20 20 20 20 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 ......beg).........(with-current
3f80 2d 62 75 66 66 65 72 20 6f 75 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5b -buffer.out...........(insert."[
3fa0 70 6c 61 79 6c 69 73 74 5d 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 playlist]\n")...........(setq.be
3fc0 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 g.(point))).........(goto-char.(
3fe0 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d 74 point-min)).........(emms-walk-t
4000 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d racks...........(let.((track.(em
4020 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 0a ms-playlist-track-at.(point)))).
4040 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 31 2b 20 70 6f 73 29 29 0a ............(setq.pos.(1+.pos)).
4060 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ............(with-current-buffer
4080 20 6f 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 46 69 6c 65 .out...............(insert."File
40a0 22 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 70 6f 73 29 20 22 3d 22 0a 20 20 20 ".(number-to-string.pos)."="....
40c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e ...................(emms-track-n
40e0 61 6d 65 20 74 72 61 63 6b 29 20 3f 5c 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 ame.track).?\n)))).........(with
4100 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 75 74 0a 20 20 20 20 20 20 20 20 20 20 28 67 -current-buffer.out...........(g
4120 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 oto-char.beg)...........(insert.
4140 22 4e 75 6d 62 65 72 4f 66 45 6e 74 72 69 65 73 3d 22 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 "NumberOfEntries=".(number-to-st
4160 72 69 6e 67 20 70 6f 73 29 20 3f 5c 6e 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c ring.pos).?\n))))))..;;;###autol
4180 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 73 2d 70 6c 61 oad.(autoload.'emms-play-pls-pla
41a0 79 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c ylist."emms-source-playlist".nil
41c0 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d .t).;;;###autoload.(autoload.'em
41e0 6d 73 2d 61 64 64 2d 70 6c 73 2d 70 6c 61 79 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 ms-add-pls-playlist."emms-source
4200 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 -playlist".nil.t).(define-emms-s
4220 6f 75 72 63 65 20 70 6c 73 2d 70 6c 61 79 6c 69 73 74 20 28 66 69 6c 65 29 0a 20 20 22 41 6e 20 ource.pls-playlist.(file)..."An.
4240 45 4d 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 20 66 EMMS.source.for.a.pls.playlist.f
4260 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 64 ile."...(interactive.(list.(read
4280 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 50 6c 61 79 6c 69 73 74 20 66 69 6c 65 3a 20 22 0a 20 20 20 -file-name."Playlist.file:."....
42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
42c0 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 ..emms-source-file-default-direc
42e0 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tory............................
4300 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 ..........emms-source-file-defau
4320 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lt-directory....................
4340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 6d 61 70 63 20 23 ..................t)))...(mapc.#
4360 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 20 'emms-playlist-insert-track.....
4380 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 ....(with-temp-buffer...........
43a0 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 6c 65 29 (emms-insert-file-contents.file)
43c0 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e ...........(goto-char.(point-min
43e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 73 6f ))...........(when.(not.(emms-so
4400 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 6c 73 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 urce-playlist-pls-p))...........
4420 20 20 28 65 72 72 6f 72 20 22 4e 6f 74 20 61 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 20 66 69 6c ..(error."Not.a.pls.playlist.fil
4440 65 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 e."))...........(emms-source-pla
4460 79 6c 69 73 74 2d 70 61 72 73 65 2d 70 6c 73 20 66 69 6c 65 29 29 29 29 0a 0a 3b 3b 3b 20 65 78 ylist-parse-pls.file))))..;;;.ex
4480 74 6d 33 75 20 66 69 6c 65 73 0a 0a 3b 3b 20 46 6f 72 6d 61 74 3a 0a 3b 3b 20 23 45 58 54 4d 33 tm3u.files..;;.Format:.;;.#EXTM3
44a0 55 0a 3b 3b 20 23 45 58 54 49 4e 46 3a 3c 6c 65 6e 67 74 68 20 69 6e 20 73 65 63 6f 6e 64 73 3e U.;;.#EXTINF:<length.in.seconds>
44c0 2c 3c 6e 61 6d 65 3e 0a 3b 3b 20 3c 66 69 6c 65 6e 61 6d 65 3e 0a 0a 3b 20 65 6d 6d 73 2d 73 6f ,<name>.;;.<filename>..;.emms-so
44e0 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 65 78 74 6d 33 75 2d 70 0a 3b 20 65 6d 6d 73 2d 73 6f urce-playlist-extm3u-p.;.emms-so
4500 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 61 72 73 65 2d 65 78 74 6d 33 75 0a 3b 20 65 6d 6d urce-playlist-parse-extm3u.;.emm
4520 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 70 61 72 73 65 2d 65 78 74 6d 33 75 s-source-playlist-unparse-extm3u
4540 0a 0a 3b 3b 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 3b 3b 20 20 20 20 ..;;.......(erase-buffer).;;....
4560 20 20 20 28 69 6e 73 65 72 74 20 22 23 45 58 54 4d 33 55 5c 6e 22 29 0a 3b 3b 20 20 20 20 20 20 ...(insert."#EXTM3U\n").;;......
4580 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 3b 3b 20 09 20 20 20 20 20 .(mapc.(lambda.(track).;;.......
45a0 20 28 6c 65 74 20 28 28 74 69 6d 65 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 .(let.((time.(or.(emms-track-get
45c0 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6d 74 69 6d 65 29 20 22 22 29 29 0a 3b 3b 20 09 09 20 20 .track.'info-mtime)."")).;;.....
45e0 20 20 28 61 72 74 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 ..(artist.(emms-track-get.track.
4600 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 3b 3b 20 09 09 20 20 20 20 28 74 69 74 6c 65 20 28 'info-artist)).;;.......(title.(
4620 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 emms-track-get.track.'info-title
4640 29 29 0a 3b 3b 20 09 09 20 20 20 20 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 )).;;.......(name.(emms-track-ge
4660 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 29 0a 3b 3b 20 09 09 28 69 6e 73 65 72 74 20 28 66 t.track.'name))).;;...(insert.(f
4680 6f 72 6d 61 74 20 22 23 45 58 54 49 4e 46 3a 20 25 73 2c 25 73 20 2d 20 25 73 5c 6e 25 73 5c 6e ormat."#EXTINF:.%s,%s.-.%s\n%s\n
46a0 22 0a 3b 3b 20 09 09 09 09 74 69 6d 65 20 61 72 74 69 73 74 20 74 69 74 6c 65 20 6e 61 6d 65 29 ".;;.....time.artist.title.name)
46c0 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 6c 69 73 74 29 0a 3b 3b ))).;;.............tracklist).;;
46e0 20 20 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 0a 3b 3b 20 20 20 20 20 20 20 28 6b .......(save-buffer).;;.......(k
4700 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a ill-buffer.(current-buffer))))).
4720 0a 3b 3b 20 4e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65 74 0a 0a 3b 3b 3b 20 41 64 64 .;;.Not.implemented.yet..;;;.Add
4740 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 61 73 20 66 69 6c 65 73 0a 0a 3b 3b 3b 23 23 23 61 75 ing.playlists.as.files..;;;###au
4760 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 toload.(autoload.'emms-play-play
4780 6c 69 73 74 2d 66 69 6c 65 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 list-file."emms-source-playlist"
47a0 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 .nil.t).;;;###autoload.(autoload
47c0 20 27 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 20 22 65 6d 6d 73 2d 73 .'emms-add-playlist-file."emms-s
47e0 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 ource-playlist".nil.t).(define-e
4800 6d 6d 73 2d 73 6f 75 72 63 65 20 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 20 28 66 69 6c 65 29 0a mms-source.playlist-file.(file).
4820 20 20 22 41 6e 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 20 66 .."An.EMMS.source.for.playlist.f
4840 69 6c 65 73 2e 0a 54 68 69 73 20 61 64 64 73 20 74 68 65 20 67 69 76 65 6e 20 66 69 6c 65 20 74 iles..This.adds.the.given.file.t
4860 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 o.the.current.EMMS.playlist.buff
4880 65 72 2c 0a 77 69 74 68 6f 75 74 20 61 64 64 69 6e 67 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 2e er,.without.adding.its.contents.
48a0 0a 0a 53 65 65 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 6d ..See.`emms-source-playlist-form
48c0 61 74 73 27 20 66 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 ats'.for.a.list.of.supported.for
48e0 6d 61 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 mats."...(interactive.(list.(rea
4900 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 50 6c 61 79 6c 69 73 74 20 66 69 6c 65 3a 20 22 0a 20 20 d-file-name."Playlist.file:."...
4920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4940 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 ...emms-source-file-default-dire
4960 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctory...........................
4980 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 ...........emms-source-file-defa
49a0 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ult-directory...................
49c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 65 6d 6d 73 2d ...................t)))...(emms-
49e0 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 28 65 6d 6d 73 2d 74 playlist-insert-track....(emms-t
4a00 72 61 63 6b 20 27 70 6c 61 79 6c 69 73 74 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 rack.'playlist.(expand-file-name
4a20 20 66 69 6c 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c .file))))..;;;###autoload.(autol
4a40 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 2d 64 69 72 65 63 74 6f 72 oad.'emms-play-playlist-director
4a60 79 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 6d 73 y.;;;###autoload..........."emms
4a80 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 -source-playlist".nil.t).;;;###a
4aa0 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 utoload.(autoload.'emms-add-play
4ac0 6c 69 73 74 2d 64 69 72 65 63 74 6f 72 79 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 20 20 list-directory.;;;###autoload...
4ae0 20 20 20 20 20 20 20 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 22 20 6e ........"emms-source-playlist".n
4b00 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 70 6c 61 79 6c 69 il.t).(define-emms-source.playli
4b20 73 74 2d 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 29 0a 20 20 22 41 6e 20 45 4d 4d 53 20 73 6f st-directory.(dir)..."An.EMMS.so
4b40 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 urce.for.a.whole.directory.tree.
4b60 6f 66 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 73 2e 0a 49 66 20 44 49 52 20 69 73 20 6e 6f 74 of.playlist.files..If.DIR.is.not
4b80 20 73 70 65 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 71 75 65 72 69 65 64 20 66 72 6f 6d 20 74 .specified,.it.is.queried.from.t
4ba0 68 65 20 75 73 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 0a 20 he.user."...(interactive.(list..
4bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 ...............(emms-read-direct
4be0 6f 72 79 2d 6e 61 6d 65 20 22 50 6c 61 79 20 64 69 72 65 63 74 6f 72 79 3a 20 22 0a 20 20 20 20 ory-name."Play.directory:.".....
4c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 ......emms-source-file-default-d
4c40 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 irectory........................
4c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 ...................emms-source-f
4c80 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 ile-default-directory...........
4ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4cc0 74 29 29 29 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 t)))...(mapc.(lambda.(file).....
4ce0 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f ......(unless.(or.(let.((case-fo
4d00 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ld-search.nil)).................
4d20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 65 6d 6d 73 2d 73 6f 75 72 63 ........(string-match.emms-sourc
4d40 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 65 2d 72 65 67 65 78 70 20 66 69 6c 65 29 29 0a 20 20 20 e-file-exclude-regexp.file))....
4d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f ...................(file-directo
4d80 72 79 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c ry-p.file)).............(emms-pl
4da0 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 aylist-insert-track.............
4dc0 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 70 6c 61 79 6c 69 73 74 20 28 65 78 70 61 6e 64 2d 66 .(emms-track.'playlist.(expand-f
4de0 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 72 65 ile-name.file))))).........(dire
4e00 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 72 20 74 20 22 5e 5b 5e 2e 5d 22 29 29 29 0a 0a 3b 3b ctory-files.dir.t."^[^.]")))..;;
4e20 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 ;###autoload.(autoload.'emms-pla
4e40 79 2d 70 6c 61 79 6c 69 73 74 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 0a 3b 3b 3b 23 23 23 y-playlist-directory-tree.;;;###
4e60 61 75 74 6f 6c 6f 61 64 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d autoload..........."emms-source-
4e80 70 6c 61 79 6c 69 73 74 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 playlist".nil.t).;;;###autoload.
4ea0 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 2d 64 69 72 (autoload.'emms-add-playlist-dir
4ec0 65 63 74 6f 72 79 2d 74 72 65 65 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 20 20 20 20 20 ectory-tree.;;;###autoload......
4ee0 20 20 20 20 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 28 ....."emms-source-file".nil.t).(
4f00 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 70 6c 61 79 6c 69 73 74 2d 64 69 72 65 define-emms-source.playlist-dire
4f20 63 74 6f 72 79 2d 74 72 65 65 20 28 64 69 72 29 0a 20 20 22 41 6e 20 45 4d 4d 53 20 73 6f 75 72 ctory-tree.(dir)..."An.EMMS.sour
4f40 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 ce.for.multiple.directory.trees.
4f60 6f 66 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 73 2e 0a 49 66 20 44 49 52 20 69 73 20 6e 6f 74 of.playlist.files..If.DIR.is.not
4f80 20 73 70 65 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 71 75 65 72 69 65 64 20 66 72 6f 6d 20 74 .specified,.it.is.queried.from.t
4fa0 68 65 20 75 73 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 0a 20 he.user."...(interactive.(list..
4fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 ...............(emms-read-direct
4fe0 6f 72 79 2d 6e 61 6d 65 20 22 50 6c 61 79 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 3a 20 22 ory-name."Play.directory.tree:."
5000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5020 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 ...........emms-source-file-defa
5040 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ult-directory...................
5060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 ........................emms-sou
5080 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 rce-file-default-directory......
50a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
50c0 20 20 20 20 20 74 29 29 29 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 .....t)))...(mapc.(lambda.(file)
50e0 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 ...........(unless.(let.((case-f
5100 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 old-search.nil))................
5120 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 .....(string-match.emms-source-f
5140 69 6c 65 2d 65 78 63 6c 75 64 65 2d 72 65 67 65 78 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 ile-exclude-regexp.file)).......
5160 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 ......(emms-playlist-insert-trac
5180 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 70 6c 61 79 k..............(emms-track.'play
51a0 6c 69 73 74 20 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 list.file)))).........(emms-sour
51c0 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 28 65 78 70 61 6e 64 2d 66 ce-file-directory-tree.(expand-f
51e0 69 6c 65 2d 6e 61 6d 65 20 64 69 72 29 20 22 5e 5b 5e 2e 5d 22 29 29 29 0a 0a 28 70 72 6f 76 69 ile-name.dir)."^[^.]")))..(provi
5200 64 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 29 0a 3b 3b 3b 20 65 6d de.'emms-source-playlist).;;;.em
5220 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a ms-source-playlist.el.ends.here.
5240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2e 65 6c emms-24/emms-info-native-flac.el
5420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
5480 30 30 32 30 31 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 33 31 31 00 20 30 00 00 00 0020166.00000000000.015311..0...
54a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
5520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
5540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5600 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2e 65 6c 20 2d 2d 2d ;;;.emms-info-native-flac.el.---
5620 20 45 4d 4d 53 20 69 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 46 4c 41 43 20 66 69 .EMMS.info.functions.for.FLAC.fi
5640 6c 65 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d les..-*-.lexical-binding:.t;.-*-
5660 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 33 20 46 72 65 ..;;.Copyright.(C).2020-2023.Fre
5680 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 e.Software.Foundation,.Inc...;;.
56a0 41 75 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 Author:.Petteri.Hintsanen.<pette
56c0 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 rih@iki.fi>..;;.This.file.is.par
56e0 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 t.of.EMMS...;;.EMMS.is.free.soft
5700 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e ware;.you.can.redistribute.it.an
5720 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d d/or.modify.it.;;.under.the.term
5740 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
5760 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 nse.as.published.by.;;.the.Free.
5780 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 Software.Foundation;.either.vers
57a0 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e ion.3,.or.(at.your.option).;;.an
57c0 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 y.later.version...;;.EMMS.is.dis
57e0 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c tributed.in.the.hope.that.it.wil
5800 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 l.be.useful,.but.WITHOUT.;;.ANY.
5820 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 WARRANTY;.without.even.the.impli
5840 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b ed.warranty.of.MERCHANTABILITY.;
5860 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 ;.or.FITNESS.FOR.A.PARTICULAR.PU
5880 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c RPOSE...See.the.GNU.General.Publ
58a0 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a ic.;;.License.for.more.details..
58c0 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 .;;.You.should.have.received.a.c
58e0 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 opy.of.the.GNU.General.Public.Li
5900 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 cense.;;.along.with.EMMS;.see.th
5920 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f e.file.COPYING..If.not,.write.to
5940 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e .the.Free.;;.Software.Foundation
5960 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 ,.Inc.,.51.Franklin.Street,.Fift
5980 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 h.Floor,.Boston,.;;.MA.02110-130
59a0 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 1,.USA...;;;.Commentary:..;;.Thi
59c0 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 65 78 s.file.contains.functions.for.ex
59e0 74 72 61 63 74 69 6e 67 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 46 4c 41 43 0a 3b 3b 20 66 tracting.metadata.from.FLAC.;;.f
5a00 69 6c 65 73 20 69 6e 20 74 68 65 69 72 20 6e 61 74 69 76 65 20 65 6e 63 61 70 73 75 6c 61 74 69 iles.in.their.native.encapsulati
5a20 6f 6e 20 66 6f 72 6d 61 74 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 62 61 73 65 64 20 6f 6e on.format...The.code.is.based.on
5a40 0a 3b 3b 20 78 69 70 68 2e 6f 72 67 27 73 20 46 4c 41 43 20 66 6f 72 6d 61 74 20 73 70 65 63 69 .;;.xiph.org's.FLAC.format.speci
5a60 66 69 63 61 74 69 6f 6e 2c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 3b 3b 20 68 74 74 70 73 3a fication,.available.at.;;.https:
5a80 2f 2f 78 69 70 68 2e 6f 72 67 2f 66 6c 61 63 2f 66 6f 72 6d 61 74 2e 68 74 6d 6c 2e 0a 0a 3b 3b //xiph.org/flac/format.html...;;
5aa0 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 ;.Code:..(require.'emms).(requir
5ac0 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 29 0a 28 72 65 71 e.'emms-info-native-vorbis).(req
5ae0 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a 0a 28 64 65 66 76 61 72 20 62 69 6e 64 61 74 2d 72 61 uire.'bindat)..(defvar.bindat-ra
5b00 77 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 w)..(defconst.emms-info-native-f
5b20 6c 61 63 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 20 28 2a 20 31 36 20 31 30 32 34 20 31 30 lac--max-peek-size.(*.16.1024.10
5b40 32 34 29 0a 20 20 22 4d 61 78 69 6d 75 6d 20 62 75 66 66 65 72 20 73 69 7a 65 20 66 6f 72 20 6d 24)..."Maximum.buffer.size.for.m
5b60 65 74 61 64 61 74 61 20 64 65 63 6f 64 69 6e 67 2e 0a 46 75 6e 63 74 69 6f 6e 73 20 69 6e 20 60 etadata.decoding..Functions.in.`
5b80 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 27 20 72 65 61 64 20 63 65 72 74 emms-info-native-flac'.read.cert
5ba0 61 69 6e 20 61 6d 6f 75 6e 74 73 20 6f 66 20 64 61 74 61 0a 69 6e 74 6f 20 61 20 74 65 6d 70 6f ain.amounts.of.data.into.a.tempo
5bc0 72 61 72 79 20 62 75 66 66 65 72 20 77 68 69 6c 65 20 64 65 63 6f 64 69 6e 67 20 6d 65 74 61 64 rary.buffer.while.decoding.metad
5be0 61 74 61 2e 20 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 0a 63 6f 6e 74 72 6f 6c 73 20 74 68 65 ata...This.variable.controls.the
5c00 20 6d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 74 68 61 74 20 62 75 66 66 65 72 3a 20 69 66 .maximum.size.of.that.buffer:.if
5c20 20 6d 6f 72 65 20 74 68 61 6e 0a 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 .more.than.`emms-info-native-fla
5c40 63 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 27 20 62 79 74 65 73 20 61 72 65 20 6e 65 65 64 c--max-peek-size'.bytes.are.need
5c60 65 64 2c 20 61 6e 20 65 72 72 6f 72 0a 69 73 20 73 69 67 6e 61 6c 65 64 2e 0a 0a 54 65 63 68 6e ed,.an.error.is.signaled...Techn
5c80 69 63 61 6c 6c 79 20 6d 65 74 61 64 61 74 61 20 62 6c 6f 63 6b 73 20 63 61 6e 20 68 61 76 65 20 ically.metadata.blocks.can.have.
5ca0 61 6c 6d 6f 73 74 20 61 72 62 69 74 72 61 72 79 20 6c 65 6e 67 74 68 73 2c 0a 62 75 74 20 69 6e almost.arbitrary.lengths,.but.in
5cc0 20 70 72 61 63 74 69 63 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6d 75 73 74 20 62 65 20 63 6f 6e .practice.processing.must.be.con
5ce0 73 74 72 61 69 6e 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6d 65 6d 6f 72 79 0a 65 78 68 61 75 strained.to.prevent.memory.exhau
5d00 73 74 69 6f 6e 20 69 6e 20 63 61 73 65 20 6f 66 20 67 61 72 62 6c 65 64 20 6f 72 20 6d 61 6c 69 stion.in.case.of.garbled.or.mali
5d20 63 69 6f 75 73 20 69 6e 70 75 74 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d cious.inputs.")..(defconst.emms-
5d40 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 6d 65 74 61 2d 68 65 61 64 65 72 2d 62 69 info-native-flac--meta-header-bi
5d60 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 ndat-spec...(if.(eval-when-compi
5d80 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 le.(fboundp.'bindat-type))......
5da0 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 66 6c 61 67 73 20 75 38 29 .(bindat-type.........(flags.u8)
5dc0 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 75 69 6e 74 20 32 34 29 0a 20 20 20 20 20 20 .........(length.uint.24).......
5de0 20 20 28 5f 20 75 6e 69 74 20 28 77 68 65 6e 20 28 6f 72 20 28 3e 20 6c 65 6e 67 74 68 20 65 6d ..(_.unit.(when.(or.(>.length.em
5e00 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 ms-info-native-flac--max-peek-si
5e20 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d ze)...........................(=
5e40 20 6c 65 6e 67 74 68 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 .length.0))...................(e
5e60 72 72 6f 72 20 22 46 4c 41 43 20 62 6c 6f 63 6b 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 69 6e rror."FLAC.block.length.%s.is.in
5e80 76 61 6c 69 64 22 20 6c 65 6e 67 74 68 29 29 29 29 0a 20 20 20 20 27 28 28 66 6c 61 67 73 20 75 valid".length)))).....'((flags.u
5ea0 38 29 0a 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 75 32 34 29 0a 20 20 20 20 20 20 28 65 76 61 8).......(length.u24).......(eva
5ec0 6c 20 28 77 68 65 6e 20 28 6f 72 20 28 3e 20 6c 61 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 l.(when.(or.(>.last.emms-info-na
5ee0 74 69 76 65 2d 66 6c 61 63 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 tive-flac--max-peek-size).......
5f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 6c 61 73 74 20 30 29 29 0a 20 20 20 20 ................(=.last.0)).....
5f20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 46 4c 41 43 20 62 6c 6f 63 6b 20 6c 65 6e ..........(error."FLAC.block.len
5f40 67 74 68 20 25 73 20 69 73 20 69 6e 76 61 6c 69 64 22 20 6c 61 73 74 29 29 29 29 29 0a 20 20 22 gth.%s.is.invalid".last)))))..."
5f60 46 4c 41 43 20 6d 65 74 61 64 61 74 61 20 62 6c 6f 63 6b 20 68 65 61 64 65 72 20 73 70 65 63 69 FLAC.metadata.block.header.speci
5f80 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f fication.")..(defconst.emms-info
5fa0 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 73 74 72 65 61 6d 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 2d -native-flac--stream-info-block-
5fc0 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d bindat-spec...(if.(eval-when-com
5fe0 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 pile.(fboundp.'bindat-type))....
6000 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 6d 69 6e 2d 62 6c 6f ...(bindat-type.........(min-blo
6020 63 6b 2d 73 69 7a 65 20 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 6d 61 78 2d 62 6c ck-size.uint.16).........(max-bl
6040 6f 63 6b 2d 73 69 7a 65 20 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 6d 69 6e 2d 66 ock-size.uint.16).........(min-f
6060 72 61 6d 65 2d 73 69 7a 65 20 75 69 6e 74 20 32 34 29 0a 20 20 20 20 20 20 20 20 28 6d 61 78 2d rame-size.uint.24).........(max-
6080 66 72 61 6d 65 2d 73 69 7a 65 20 75 69 6e 74 20 32 34 29 0a 20 20 20 20 20 20 20 20 28 73 61 6d frame-size.uint.24).........(sam
60a0 70 6c 65 2d 6d 65 74 61 64 61 74 61 20 76 65 63 20 38 29 0a 20 20 20 20 20 20 20 20 28 6d 64 35 ple-metadata.vec.8).........(md5
60c0 20 76 65 63 20 31 36 29 29 0a 20 20 20 20 27 28 28 6d 69 6e 2d 62 6c 6f 63 6b 2d 73 69 7a 65 20 .vec.16)).....'((min-block-size.
60e0 75 31 36 29 0a 20 20 20 20 20 20 28 6d 61 78 2d 62 6c 6f 63 6b 2d 73 69 7a 65 20 75 31 36 29 0a u16).......(max-block-size.u16).
6100 20 20 20 20 20 20 28 6d 69 6e 2d 66 72 61 6d 65 2d 73 69 7a 65 20 75 32 34 29 0a 20 20 20 20 20 ......(min-frame-size.u24)......
6120 20 28 6d 61 78 2d 66 72 61 6d 65 2d 73 69 7a 65 20 75 32 34 29 0a 20 20 20 20 20 20 28 73 61 6d .(max-frame-size.u24).......(sam
6140 70 6c 65 2d 6d 65 74 61 64 61 74 61 20 76 65 63 20 38 29 0a 20 20 20 20 20 20 28 6d 64 35 20 76 ple-metadata.vec.8).......(md5.v
6160 65 63 20 31 36 29 29 29 0a 20 20 22 46 4c 41 43 20 73 74 72 65 61 6d 20 69 6e 66 6f 20 62 6c 6f ec.16)))..."FLAC.stream.info.blo
6180 63 6b 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 ck.specification.")..(defconst.e
61a0 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 63 6f 6d 6d 65 6e 74 2d 62 6c mms-info-native-flac--comment-bl
61c0 6f 63 6b 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e ock-bindat-spec...(if.(eval-when
61e0 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 -compile.(fboundp.'bindat-type))
6200 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 76 65 6e .......(bindat-type.........(ven
6220 64 6f 72 2d 6c 65 6e 67 74 68 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 5f 20 dor-length.uintr.32).........(_.
6240 75 6e 69 74 20 28 77 68 65 6e 20 28 3e 20 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 28 6c 65 6e unit.(when.(>.vendor-length.(len
6260 67 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gth.bindat-raw))................
6280 20 20 20 28 65 72 72 6f 72 20 22 46 4c 41 43 20 76 65 6e 64 6f 72 20 6c 65 6e 67 74 68 20 25 73 ...(error."FLAC.vendor.length.%s
62a0 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .is.too.long"...................
62c0 20 20 20 20 20 20 20 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 .......vendor-length))).........
62e0 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e 67 20 73 74 72 20 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 (vendor-string.str.vendor-length
6300 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 ).........(user-comments-list-le
6320 6e 67 74 68 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 ngth.uintr.32).........(_.unit.(
6340 77 68 65 6e 20 28 3e 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 when.(>.user-comments-list-lengt
6360 68 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 h.(length.bindat-raw))..........
6380 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 46 4c 41 43 20 75 73 65 72 20 63 6f 6d 6d 65 .........(error."FLAC.user.comme
63a0 6e 74 20 6c 69 73 74 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 0a 20 nt.list.length.%s.is.too.long"..
63c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 63 6f 6d ........................user-com
63e0 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 ments-list-length))).........(us
6400 65 72 2d 63 6f 6d 6d 65 6e 74 73 20 72 65 70 65 61 74 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 er-comments.repeat.user-comments
6420 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -list-length....................
6440 20 20 20 20 74 79 70 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 ....type.emms-info-native-vorbis
6460 2d 2d 63 6f 6d 6d 65 6e 74 2d 66 69 65 6c 64 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 0a 20 20 --comment-field-bindat-spec))...
6480 20 20 27 28 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 ..'((vendor-length.u32r).......(
64a0 65 76 61 6c 20 28 77 68 65 6e 20 28 3e 20 6c 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 eval.(when.(>.last.(length.binda
64c0 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 46 4c t-raw))...............(error."FL
64e0 41 43 20 76 65 6e 64 6f 72 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 AC.vendor.length.%s.is.too.long"
6500 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e 67 20 73 74 .last))).......(vendor-string.st
6520 72 20 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 63 r.(vendor-length)).......(user-c
6540 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 omments-list-length.u32r).......
6560 28 65 76 61 6c 20 28 77 68 65 6e 20 28 3e 20 6c 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 (eval.(when.(>.last.(length.bind
6580 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 46 at-raw))...............(error."F
65a0 4c 41 43 20 75 73 65 72 20 63 6f 6d 6d 65 6e 74 20 6c 69 73 74 20 6c 65 6e 67 74 68 20 25 73 20 LAC.user.comment.list.length.%s.
65c0 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 is.too.long"....................
65e0 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 20 72 ..last))).......(user-comments.r
6600 65 70 65 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 epeat......................(user
6620 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 -comments-list-length)..........
6640 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 75 63 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 ............(struct.emms-info-na
6660 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 66 69 65 6c 64 2d 62 69 6e 64 61 tive-vorbis--comment-field-binda
6680 74 2d 73 70 65 63 29 29 29 29 0a 20 20 22 46 4c 41 43 20 56 6f 72 62 69 73 20 63 6f 6d 6d 65 6e t-spec))))..."FLAC.Vorbis.commen
66a0 74 20 62 6c 6f 63 6b 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 75 6e t.block.specification.")..(defun
66c0 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 64 65 63 6f 64 65 2d 6d 65 .emms-info-native-flac-decode-me
66e0 74 61 64 61 74 61 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 tadata.(filename)..."Read.and.de
6700 63 6f 64 65 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 46 4c 41 43 20 66 69 6c 65 20 46 49 4c code.metadata.from.FLAC.file.FIL
6720 45 4e 41 4d 45 2e 0a 52 65 74 75 72 6e 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 6c 69 73 74 ENAME..Return.comments.in.a.list
6740 20 6f 66 20 28 46 49 45 4c 44 20 2e 20 56 41 4c 55 45 29 20 63 6f 6e 73 20 63 65 6c 6c 73 2e 0a .of.(FIELD...VALUE).cons.cells..
6760 41 64 64 69 74 69 6f 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 73 74 72 65 61 6d 20 64 75 72 61 74 Additionally.return.stream.durat
6780 69 6f 6e 20 69 6e 20 60 70 6c 61 79 69 6e 67 2d 74 69 6d 65 27 20 66 69 65 6c 64 2e 0a 0a 53 65 ion.in.`playing-time'.field...Se
67a0 65 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 65 78 74 72 61 e.`emms-info-native-vorbis-extra
67c0 63 74 2d 63 6f 6d 6d 65 6e 74 73 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 75 6e ct-comments'.for.details."...(un
67e0 6c 65 73 73 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 68 61 73 less.(emms-info-native-flac--has
6800 2d 73 69 67 6e 61 74 75 72 65 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 28 65 72 72 6f 72 20 -signature.filename).....(error.
6820 22 49 6e 76 61 6c 69 64 20 46 4c 41 43 20 73 74 72 65 61 6d 22 29 29 0a 20 20 28 6c 65 74 2a 20 "Invalid.FLAC.stream"))...(let*.
6840 28 28 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 ((blocks...........(emms-info-na
6860 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 6d 65 74 61 2d 62 6c 6f 63 6b 73 0a 20 20 tive-flac--decode-meta-blocks...
6880 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d .........(emms-info-native-flac-
68a0 2d 66 69 6c 65 2d 69 6e 73 65 72 74 65 72 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 -file-inserter.filename)))......
68c0 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e ....(comment-block...........(an
68e0 64 20 28 63 61 72 20 62 6c 6f 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 d.(car.blocks)................(b
6900 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c indat-unpack.emms-info-native-fl
6920 61 63 2d 2d 63 6f 6d 6d 65 6e 74 2d 62 6c 6f 63 6b 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 ac--comment-block-bindat-spec...
6940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 ............................(car
6960 20 62 6c 6f 63 6b 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 2d 69 6e 66 .blocks))))..........(stream-inf
6980 6f 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 61 64 72 20 62 6c 6f o-block...........(and.(cadr.blo
69a0 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 cks)................(bindat-unpa
69c0 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 73 74 72 65 61 6d ck.emms-info-native-flac--stream
69e0 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 -info-block-bindat-spec.........
6a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 62 6c 6f 63 ......................(cadr.bloc
6a20 6b 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 0a 20 ks))))..........(user-comments..
6a40 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 63 6f 6d 6d 65 6e 74 2d 62 6c 6f 63 6b 0a 20 20 20 20 .........(and.comment-block.....
6a60 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 63 6f 6d ...........(bindat-get-field.com
6a80 6d 65 6e 74 2d 62 6c 6f 63 6b 20 27 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 29 29 29 0a 20 20 20 ment-block.'user-comments)))....
6aa0 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 75 ......(comments...........(and.u
6ac0 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d ser-comments................(emm
6ae0 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 65 78 74 72 61 63 74 2d 63 6f 6d s-info-native-vorbis-extract-com
6b00 6d 65 6e 74 73 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 ments.user-comments)))..........
6b20 28 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 73 74 72 (playing-time...........(and.str
6b40 65 61 6d 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 eam-info-block................(e
6b60 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 64 75 72 mms-info-native-flac--decode-dur
6b80 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 65 2d 74 ation.................(emms-be-t
6ba0 6f 2d 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 o-int..................(bindat-g
6bc0 65 74 2d 66 69 65 6c 64 20 73 74 72 65 61 6d 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 et-field.stream-info-block......
6be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 ..............................'s
6c00 61 6d 70 6c 65 2d 6d 65 74 61 64 61 74 61 29 29 29 29 29 29 0a 20 20 20 20 28 6e 63 6f 6e 63 20 ample-metadata)))))).....(nconc.
6c20 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 6c 61 79 69 6e comments............(when.playin
6c40 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 g-time..............(list.(cons.
6c60 22 70 6c 61 79 69 6e 67 2d 74 69 6d 65 22 20 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 29 29 29 29 "playing-time".playing-time)))))
6c80 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d )..(defun.emms-info-native-flac-
6ca0 2d 68 61 73 2d 73 69 67 6e 61 74 75 72 65 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 43 68 65 -has-signature.(filename)..."Che
6cc0 63 6b 20 66 6f 72 20 46 4c 41 43 20 73 74 72 65 61 6d 20 6d 61 72 6b 65 72 20 61 74 20 74 68 65 ck.for.FLAC.stream.marker.at.the
6ce0 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 46 49 4c 45 4e 41 4d 45 2e 0a 52 65 74 75 72 6e 20 74 .beginning.of.FILENAME..Return.t
6d00 20 69 66 20 74 68 65 72 65 20 69 73 20 61 20 76 61 6c 69 64 20 73 74 72 65 61 6d 20 6d 61 72 6b .if.there.is.a.valid.stream.mark
6d20 65 72 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 er,.nil.otherwise."...(with-temp
6d40 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 -buffer.....(set-buffer-multibyt
6d60 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 e.nil).....(insert-file-contents
6d80 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 30 20 34 29 0a 20 20 20 -literally.filename.nil.0.4)....
6da0 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 66 4c 61 43 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 .(looking-at."fLaC")))..(defun.e
6dc0 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 66 69 6c 65 2d 69 6e 73 65 72 mms-info-native-flac--file-inser
6de0 74 65 72 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 ter.(filename)..."Return.a.funct
6e00 69 6f 6e 20 66 6f 72 20 72 65 61 64 69 6e 67 20 62 79 74 65 73 20 66 72 6f 6d 20 46 49 4c 45 4e ion.for.reading.bytes.from.FILEN
6e20 41 4d 45 2e 0a 54 68 69 73 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 AME..This.is.meant.for.`emms-inf
6e40 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 6d 65 74 61 2d 62 6c 6f 63 6b o-native-flac--decode-meta-block
6e60 73 27 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 6f 66 66 73 65 74 20 65 6e 64 29 0a 20 20 20 20 s'."...(lambda.(offset.end).....
6e80 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 (insert-file-contents-literally.
6ea0 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 6f 66 66 73 65 74 20 65 6e 64 20 74 29 29 29 0a 0a 28 64 filename.nil.offset.end.t)))..(d
6ec0 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f efun.emms-info-native-flac--deco
6ee0 64 65 2d 6d 65 74 61 2d 62 6c 6f 63 6b 73 20 28 72 65 61 64 2d 66 75 6e 63 29 0a 20 20 22 44 65 de-meta-blocks.(read-func)..."De
6f00 63 6f 64 65 20 6d 65 74 61 64 61 74 61 20 62 6c 6f 63 6b 73 20 66 72 6f 6d 20 64 61 74 61 20 73 code.metadata.blocks.from.data.s
6f20 75 70 70 6c 69 65 64 20 62 79 20 52 45 41 44 2d 46 55 4e 43 2e 0a 47 6f 20 74 68 72 6f 75 67 68 upplied.by.READ-FUNC..Go.through
6f40 20 65 61 63 68 20 6d 65 74 61 64 61 74 61 20 62 6c 6f 63 6b 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 .each.metadata.block.looking.for
6f60 20 63 6f 6d 6d 65 6e 74 20 61 6e 64 20 73 74 72 65 61 6d 0a 69 6e 66 6f 20 62 6c 6f 63 6b 73 2e .comment.and.stream.info.blocks.
6f80 20 20 45 78 74 72 61 63 74 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 6d 20 69 6e 20 61 20 6c ..Extract.and.return.them.in.a.l
6fa0 69 73 74 2c 20 69 66 20 66 6f 75 6e 64 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 ist,.if.found."...(with-temp-buf
6fc0 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 fer.....(set-buffer-multibyte.ni
6fe0 6c 29 0a 20 20 20 20 28 6c 65 74 20 28 63 6f 6d 6d 65 6e 74 2d 62 6c 6f 63 6b 20 73 74 72 65 61 l).....(let.(comment-block.strea
7000 6d 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 20 6c 61 73 74 2d 66 6c 61 67 20 28 6f 66 66 73 65 74 20 34 m-info-block.last-flag.(offset.4
7020 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 6c 61 73 74 2d 66 6c 61 67 29 0a )).......(while.(not.last-flag).
7040 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 72 65 61 64 2d 66 75 6e 63 20 6f 66 66 73 65 ........(funcall.read-func.offse
7060 74 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 2b 20 6f 66 66 73 65 74 20 34 29 29 29 0a 20 20 t.(setq.offset.(+.offset.4)))...
7080 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 ......(let*.((header............
70a0 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 .....(bindat-unpack.emms-info-na
70c0 74 69 76 65 2d 66 6c 61 63 2d 2d 6d 65 74 61 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 tive-flac--meta-header-bindat-sp
70e0 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ec..............................
7100 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(buffer-string))).............
7120 20 20 20 28 65 6e 64 20 28 2b 20 6f 66 66 73 65 74 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 ...(end.(+.offset.(bindat-get-fi
7140 65 6c 64 20 68 65 61 64 65 72 20 27 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 eld.header.'length)))...........
7160 20 20 20 20 20 28 66 6c 61 67 73 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 .....(flags.(bindat-get-field.he
7180 61 64 65 72 20 27 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6c ader.'flags))................(bl
71a0 6f 63 6b 2d 74 79 70 65 20 28 6c 6f 67 61 6e 64 20 66 6c 61 67 73 20 23 78 37 46 29 29 29 0a 20 ock-type.(logand.flags.#x7F)))..
71c0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 61 73 74 2d 66 6c 61 67 20 28 3e 20 28 6c 6f 67 .........(setq.last-flag.(>.(log
71e0 61 6e 64 20 66 6c 61 67 73 20 23 78 38 30 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 and.flags.#x80).0))...........(w
7200 68 65 6e 20 28 3e 20 62 6c 6f 63 6b 2d 74 79 70 65 20 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 hen.(>.block-type.6)............
7220 20 28 65 72 72 6f 72 20 22 46 4c 41 43 20 62 6c 6f 63 6b 20 74 79 70 65 20 65 72 72 6f 72 3a 20 .(error."FLAC.block.type.error:.
7240 65 78 70 65 63 74 65 64 20 3c 3d 20 36 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 expected.<=.6,.got.%s"..........
7260 20 20 20 20 20 20 20 20 20 20 62 6c 6f 63 6b 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 ..........block-type))..........
7280 20 28 77 68 65 6e 20 28 3d 20 62 6c 6f 63 6b 2d 74 79 70 65 20 30 29 0a 20 20 20 20 20 20 20 20 .(when.(=.block-type.0).........
72a0 20 20 20 20 3b 3b 20 53 74 72 65 61 6d 20 69 6e 66 6f 20 62 6c 6f 63 6b 20 66 6f 75 6e 64 2c 20 ....;;.Stream.info.block.found,.
72c0 65 78 74 72 61 63 74 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c extract.it..............(funcall
72e0 20 72 65 61 64 2d 66 75 6e 63 20 6f 66 66 73 65 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 .read-func.offset.end)..........
7300 20 20 20 28 73 65 74 71 20 73 74 72 65 61 6d 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 20 28 62 75 66 66 ...(setq.stream-info-block.(buff
7320 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 er-string)))...........(when.(=.
7340 62 6c 6f 63 6b 2d 74 79 70 65 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6d block-type.4).............;;.Com
7360 6d 65 6e 74 20 62 6c 6f 63 6b 20 66 6f 75 6e 64 2c 20 65 78 74 72 61 63 74 20 69 74 2e 0a 20 20 ment.block.found,.extract.it....
7380 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 72 65 61 64 2d 66 75 6e 63 20 6f 66 66 ..........(funcall.read-func.off
73a0 73 65 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 65 set.end).............(setq.comme
73c0 6e 74 2d 62 6c 6f 63 6b 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 nt-block.(buffer-string)))......
73e0 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 .....(setq.offset.end))).......(
7400 6c 69 73 74 20 63 6f 6d 6d 65 6e 74 2d 62 6c 6f 63 6b 20 73 74 72 65 61 6d 2d 69 6e 66 6f 2d 62 list.comment-block.stream-info-b
7420 6c 6f 63 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 lock))))..(defun.emms-info-nativ
7440 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 64 75 72 61 74 69 6f 6e 20 28 73 61 6d 70 6c 65 2d e-flac--decode-duration.(sample-
7460 6d 65 74 61 29 0a 20 20 22 44 65 63 6f 64 65 20 73 74 72 65 61 6d 20 64 75 72 61 74 69 6f 6e 20 meta)..."Decode.stream.duration.
7480 66 72 6f 6d 20 53 41 4d 50 4c 45 2d 4d 45 54 41 2e 0a 53 41 4d 50 4c 45 2d 4d 45 54 41 20 73 68 from.SAMPLE-META..SAMPLE-META.sh
74a0 6f 75 6c 64 20 62 65 20 61 20 70 61 72 74 20 6f 66 20 73 74 72 65 61 6d 20 69 6e 66 6f 20 6d 65 ould.be.a.part.of.stream.info.me
74c0 74 61 64 61 74 61 20 62 6c 6f 63 6b 2e 20 20 53 65 65 0a 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 tadata.block...See.`emms-info-na
74e0 74 69 76 65 2d 66 6c 61 63 2d 2d 73 74 72 65 61 6d 2d 69 6e 66 6f 2d 62 6c 6f 63 6b 2d 62 69 6e tive-flac--stream-info-block-bin
7500 64 61 74 2d 73 70 65 63 27 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 64 75 72 61 74 69 6f 6e 20 dat-spec'...Return.the.duration.
7520 69 6e 20 73 65 63 6f 6e 64 73 2c 20 6f 72 20 6e 69 6c 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 in.seconds,.or.nil.if.it.is.not.
7540 61 76 61 69 6c 61 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 61 6d 70 6c 65 2d 72 61 74 65 available."...(let.((sample-rate
7560 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 73 61 6d 70 6c 65 2d 6d 65 74 61 20 .(emms-extract-bits.sample-meta.
7580 34 34 20 36 33 29 29 0a 20 20 20 20 20 20 20 20 28 6e 75 6d 2d 73 61 6d 70 6c 65 73 20 28 65 6d 44.63)).........(num-samples.(em
75a0 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 73 61 6d 70 6c 65 2d 6d 65 74 61 20 30 20 33 35 ms-extract-bits.sample-meta.0.35
75c0 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3e 20 73 61 6d 70 6c 65 2d 72 61 74 ))).....(when.(and.(>.sample-rat
75e0 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 6e 75 6d 2d 73 61 6d 70 6c e.0)................(>.num-sampl
7600 65 73 20 30 29 29 0a 20 20 20 20 20 20 28 2f 20 6e 75 6d 2d 73 61 6d 70 6c 65 73 20 73 61 6d 70 es.0)).......(/.num-samples.samp
7620 6c 65 2d 72 61 74 65 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f le-rate))))..(provide.'emms-info
7640 2d 6e 61 74 69 76 65 2d 66 6c 61 63 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 -native-flac)..;;;.emms-info-nat
7660 69 76 65 2d 66 6c 61 63 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 ive-flac.el.ends.here...........
7680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2e emms-24/emms-info-native-vorbis.
7820 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 el..............................
7840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
7880 30 30 32 31 32 34 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 30 33 00 20 30 00 00 00 0021241.00000000000.015703..0...
78a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
7920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
7940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2e 65 6c 20 2d ;;;.emms-info-native-vorbis.el.-
7a20 2d 2d 20 45 4d 4d 53 20 56 6f 72 62 69 73 20 69 6e 66 6f 20 73 75 70 70 6f 72 74 20 20 2d 2a 2d --.EMMS.Vorbis.info.support..-*-
7a40 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 .lexical-binding:.t;.-*-..;;.Cop
7a60 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 yright.(C).2020-2023.Free.Softwa
7a80 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 re.Foundation,.Inc...;;.Author:.
7aa0 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e Petteri.Hintsanen.<petterih@iki.
7ac0 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d fi>..;;.This.file.is.part.of.EMM
7ae0 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f S...;;.EMMS.is.free.software;.yo
7b00 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 u.can.redistribute.it.and/or.mod
7b20 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 ify.it.;;.under.the.terms.of.the
7b40 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 .GNU.General.Public.License.as.p
7b60 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ublished.by.;;.the.Free.Software
7b80 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f .Foundation;.either.version.3,.o
7ba0 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 r.(at.your.option).;;.any.later.
7bc0 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 version...;;.EMMS.is.distributed
7be0 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 .in.the.hope.that.it.will.be.use
7c00 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 ful,.but.WITHOUT.;;.ANY.WARRANTY
7c20 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 ;.without.even.the.implied.warra
7c40 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 nty.of.MERCHANTABILITY.;;.or.FIT
7c60 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 NESS.FOR.A.PARTICULAR.PURPOSE...
7c80 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 See.the.GNU.General.Public.;;.Li
7ca0 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 cense.for.more.details...;;.You.
7cc0 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 should.have.received.a.copy.of.t
7ce0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b he.GNU.General.Public.License.;;
7d00 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 .along.with.EMMS;.see.the.file.C
7d20 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 OPYING..If.not,.write.to.the.Fre
7d40 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 e.;;.Software.Foundation,.Inc.,.
7d60 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 51.Franklin.Street,.Fifth.Floor,
7d80 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a .Boston,.;;.MA.02110-1301,.USA..
7da0 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 63 .;;;.Commentary:..;;.This.file.c
7dc0 6f 6e 74 61 69 6e 73 20 56 6f 72 62 69 73 2d 73 70 65 63 69 66 69 63 20 63 6f 64 65 20 66 6f 72 ontains.Vorbis-specific.code.for
7de0 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 27 2e 0a 0a 3b 3b 3b 20 43 6f .`emms-info-native-ogg'...;;;.Co
7e00 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a 0a 28 64 65 66 76 61 72 20 de:..(require.'bindat)..(defvar.
7e20 62 69 6e 64 61 74 2d 72 61 77 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f bindat-raw)..(defconst.emms-info
7e40 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 61 63 63 65 70 74 65 64 2d 66 69 65 6c 64 73 0a -native-vorbis--accepted-fields.
7e60 20 20 27 28 22 61 6c 62 75 6d 22 0a 20 20 20 20 22 61 6c 62 75 6d 61 72 74 69 73 74 22 0a 20 20 ..'("album"....."albumartist"...
7e80 20 20 22 61 6c 62 75 6d 61 72 74 69 73 74 73 6f 72 74 22 0a 20 20 20 20 22 61 6c 62 75 6d 73 6f .."albumartistsort"....."albumso
7ea0 72 74 22 0a 20 20 20 20 22 61 72 74 69 73 74 22 0a 20 20 20 20 22 61 72 74 69 73 74 73 6f 72 74 rt"....."artist"....."artistsort
7ec0 22 0a 20 20 20 20 22 63 6f 6d 70 6f 73 65 72 22 0a 20 20 20 20 22 63 6f 6d 70 6f 73 65 72 73 6f "....."composer"....."composerso
7ee0 72 74 22 0a 20 20 20 20 22 64 61 74 65 22 0a 20 20 20 20 22 64 69 73 63 6e 75 6d 62 65 72 22 0a rt"....."date"....."discnumber".
7f00 20 20 20 20 22 67 65 6e 72 65 22 0a 20 20 20 20 22 6c 61 62 65 6c 22 0a 20 20 20 20 22 6f 72 69 ...."genre"....."label"....."ori
7f20 67 69 6e 61 6c 64 61 74 65 22 0a 20 20 20 20 22 6f 72 69 67 69 6e 61 6c 79 65 61 72 22 0a 20 20 ginaldate"....."originalyear"...
7f40 20 20 22 70 65 72 66 6f 72 6d 65 72 22 0a 20 20 20 20 22 74 69 74 6c 65 22 0a 20 20 20 20 22 74 .."performer"....."title"....."t
7f60 69 74 6c 65 73 6f 72 74 22 0a 20 20 20 20 22 74 72 61 63 6b 6e 75 6d 62 65 72 22 0a 20 20 20 20 itlesort"....."tracknumber".....
7f80 22 79 65 61 72 22 29 0a 20 20 22 45 4d 4d 53 20 69 6e 66 6f 20 66 69 65 6c 64 73 20 74 68 61 74 "year")..."EMMS.info.fields.that
7fa0 20 61 72 65 20 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 56 6f 72 62 69 73 20 63 6f 6d 6d 65 .are.extracted.from.Vorbis.comme
7fc0 6e 74 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 nts.")..(defconst.emms-info-nati
7fe0 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 20 ve-vorbis--header-magic-pattern.
8000 22 76 6f 72 62 69 73 22 0a 20 20 22 48 65 61 64 65 72 20 70 61 63 6b 65 74 20 6d 61 67 69 63 20 "vorbis"..."Header.packet.magic.
8020 70 61 74 74 65 72 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d pattern.")..(defconst.emms-info-
8040 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 69 64 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d native-vorbis--id-header-bindat-
8060 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 spec...(if.(eval-when-compile.(f
8080 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e boundp.'bindat-type)).......(bin
80a0 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 70 61 63 6b 65 74 2d 74 79 70 65 20 75 38 dat-type.........(packet-type.u8
80c0 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 61 63 ).........(_.unit.(unless.(=.pac
80e0 6b 65 74 2d 74 79 70 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 ket-type.1)...................(e
8100 72 72 6f 72 20 22 56 6f 72 62 69 73 20 68 65 61 64 65 72 20 74 79 70 65 20 6d 69 73 6d 61 74 63 rror."Vorbis.header.type.mismatc
8120 68 3a 20 65 78 70 65 63 74 65 64 20 31 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 h:.expected.1,.got.%s"..........
8140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 63 6b 65 74 2d 74 79 70 65 29 29 29 0a 20 ................packet-type)))..
8160 20 20 20 20 20 20 20 28 76 6f 72 62 69 73 20 73 74 72 20 36 29 0a 20 20 20 20 20 20 20 20 28 5f .......(vorbis.str.6).........(_
8180 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 76 6f 72 62 69 73 20 65 6d 6d 73 .unit.(unless.(equal.vorbis.emms
81a0 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d 6d 61 67 69 -info-native-vorbis--header-magi
81c0 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 c-pattern)...................(er
81e0 72 6f 72 20 22 56 6f 72 62 69 73 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 ror."Vorbis.framing.mismatch:.ex
8200 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 pected.`%s',.got.`%s'"..........
8220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 ................emms-info-native
8240 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 -vorbis--header-magic-pattern...
8260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 6f 72 62 69 73 29 29 29 .......................vorbis)))
8280 0a 20 20 20 20 20 20 20 20 28 76 6f 72 62 69 73 2d 76 65 72 73 69 6f 6e 20 75 69 6e 74 72 20 33 .........(vorbis-version.uintr.3
82a0 32 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 3d 20 76 6f 2).........(_.unit.(unless.(=.vo
82c0 72 62 69 73 2d 76 65 72 73 69 6f 6e 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rbis-version.0).................
82e0 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 76 65 72 73 69 6f 6e 20 6d 69 73 6d 61 74 63 ..(error."Vorbis.version.mismatc
8300 68 3a 20 65 78 70 65 63 74 65 64 20 30 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 h:.expected.0,.got.%s"..........
8320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 6f 72 62 69 73 2d 76 65 72 73 69 6f 6e 29 29 ................vorbis-version))
8340 29 0a 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 75 38 29 0a 20 20 20 ).........(channel-count.u8)....
8360 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 74 65 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 .....(sample-rate.uintr.32).....
8380 20 20 20 20 28 62 69 74 72 61 74 65 2d 6d 61 78 69 6d 75 6d 20 75 69 6e 74 72 20 33 32 29 0a 20 ....(bitrate-maximum.uintr.32)..
83a0 20 20 20 20 20 20 20 28 62 69 74 72 61 74 65 2d 6e 6f 6d 69 6e 61 6c 20 75 69 6e 74 72 20 33 32 .......(bitrate-nominal.uintr.32
83c0 29 0a 20 20 20 20 20 20 20 20 28 62 69 74 72 61 74 65 2d 6d 69 6e 69 6d 75 6d 20 75 69 6e 74 72 ).........(bitrate-minimum.uintr
83e0 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 62 6c 6f 63 6b 73 69 7a 65 20 75 38 29 0a 20 20 20 20 .32).........(blocksize.u8).....
8400 20 20 20 20 28 66 72 61 6d 69 6e 67 2d 66 6c 61 67 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 5f ....(framing-flag.u8).........(_
8420 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 3d 20 66 72 61 6d 69 6e 67 2d 66 6c 61 67 20 31 29 .unit.(unless.(=.framing-flag.1)
8440 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 ...................(error."Vorbi
8460 73 20 66 72 61 6d 69 6e 67 20 62 69 74 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 s.framing.bit.mismatch:.expected
8480 20 31 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .1,.got.%s".....................
84a0 20 20 20 20 20 66 72 61 6d 69 6e 67 2d 66 6c 61 67 29 29 29 29 0a 20 20 20 20 27 28 28 70 61 63 .....framing-flag)))).....'((pac
84c0 6b 65 74 2d 74 79 70 65 20 75 38 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 ket-type.u8).......(eval.(unless
84e0 20 28 3d 20 6c 61 73 74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 .(=.last.1)...............(error
8500 20 22 56 6f 72 62 69 73 20 68 65 61 64 65 72 20 74 79 70 65 20 6d 69 73 6d 61 74 63 68 3a 20 65 ."Vorbis.header.type.mismatch:.e
8520 78 70 65 63 74 65 64 20 31 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 xpected.1,.got.%s"..............
8540 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 76 6f 72 62 69 73 20 73 74 ........last))).......(vorbis.st
8560 72 20 36 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 r.6).......(eval.(unless.(equal.
8580 6c 61 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 last.emms-info-native-vorbis--he
85a0 61 64 65 72 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ader-magic-pattern).............
85c0 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 ..(error."Vorbis.framing.mismatc
85e0 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 h:.expected.`%s',.got.`%s'".....
8600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 .................emms-info-nativ
8620 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 e-vorbis--header-magic-pattern..
8640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 ....................last))).....
8660 20 20 28 76 6f 72 62 69 73 2d 76 65 72 73 69 6f 6e 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 65 ..(vorbis-version.u32r).......(e
8680 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 3d 20 6c 61 73 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 val.(unless.(=.last.0)..........
86a0 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 76 65 72 73 69 6f 6e 20 6d 69 73 6d .....(error."Vorbis.version.mism
86c0 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 30 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 atch:.expected.0,.got.%s".......
86e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 63 68 ...............last))).......(ch
8700 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 75 38 29 0a 20 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 annel-count.u8).......(sample-ra
8720 74 65 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 62 69 74 72 61 74 65 2d 6d 61 78 69 6d 75 6d 20 te.u32r).......(bitrate-maximum.
8740 75 33 32 72 29 0a 20 20 20 20 20 20 28 62 69 74 72 61 74 65 2d 6e 6f 6d 69 6e 61 6c 20 75 33 32 u32r).......(bitrate-nominal.u32
8760 72 29 0a 20 20 20 20 20 20 28 62 69 74 72 61 74 65 2d 6d 69 6e 69 6d 75 6d 20 75 33 32 72 29 0a r).......(bitrate-minimum.u32r).
8780 20 20 20 20 20 20 28 62 6c 6f 63 6b 73 69 7a 65 20 75 38 29 0a 20 20 20 20 20 20 28 66 72 61 6d ......(blocksize.u8).......(fram
87a0 69 6e 67 2d 66 6c 61 67 20 75 38 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 ing-flag.u8).......(eval.(unless
87c0 20 28 3d 20 6c 61 73 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 .(=.last.1)).............(error.
87e0 22 56 6f 72 62 69 73 20 66 72 61 6d 69 6e 67 20 62 69 74 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 "Vorbis.framing.bit.mismatch:.ex
8800 70 65 63 74 65 64 20 31 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pected.1,.got.%s"...............
8820 20 20 20 20 20 6c 61 73 74 29 29 29 29 0a 20 20 22 56 6f 72 62 69 73 20 69 64 65 6e 74 69 66 69 .....last))))..."Vorbis.identifi
8840 63 61 74 69 6f 6e 20 68 65 61 64 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a cation.header.specification.")..
8860 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 (defconst.emms-info-native-vorbi
8880 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 66 69 65 6c 64 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 s--comment-field-bindat-spec...(
88a0 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 if.(eval-when-compile.(fboundp.'
88c0 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 bindat-type)).......(bindat-type
88e0 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 .........(length.uintr.32)......
8900 20 20 20 28 5f 20 75 6e 69 74 20 28 77 68 65 6e 20 28 3e 20 6c 65 6e 67 74 68 20 28 6c 65 6e 67 ...(_.unit.(when.(>.length.(leng
8920 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th.bindat-raw)).................
8940 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 63 6f 6d 6d 65 6e 74 20 6c 65 6e 67 74 68 20 ..(error."Vorbis.comment.length.
8960 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %s.is.too.long".................
8980 20 20 20 20 20 20 20 20 20 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 .........length))).........(user
89a0 2d 63 6f 6d 6d 65 6e 74 20 73 74 72 20 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 27 28 28 6c 65 6e -comment.str.length)).....'((len
89c0 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 77 68 65 6e 20 28 3e 20 6c gth.u32r).......(eval.(when.(>.l
89e0 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 ast.(length.bindat-raw))........
8a00 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 63 6f 6d 6d 65 6e 74 20 6c 65 .......(error."Vorbis.comment.le
8a20 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 20 6c 61 73 74 29 29 29 0a 20 20 20 ngth.%s.is.too.long".last)))....
8a40 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 73 74 72 20 28 6c 65 6e 67 74 68 29 29 29 29 ...(user-comment.str.(length))))
8a60 0a 20 20 22 56 6f 72 62 69 73 20 63 6f 6d 6d 65 6e 74 20 66 69 65 6c 64 20 73 70 65 63 69 66 69 ..."Vorbis.comment.field.specifi
8a80 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e cation.")..(defconst.emms-info-n
8aa0 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 2d 62 69 6e ative-vorbis--comment-header-bin
8ac0 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c dat-spec...(if.(eval-when-compil
8ae0 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 e.(fboundp.'bindat-type)).......
8b00 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 70 61 63 6b 65 74 2d 74 79 70 (bindat-type.........(packet-typ
8b20 65 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 3d e.u8).........(_.unit.(unless.(=
8b40 20 70 61 63 6b 65 74 2d 74 79 70 65 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .packet-type.3).................
8b60 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 68 65 61 64 65 72 20 74 79 70 65 20 6d 69 73 ..(error."Vorbis.header.type.mis
8b80 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 33 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 match:.expected.3,.got.%s"......
8ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 63 6b 65 74 2d 74 79 70 65 29 ....................packet-type)
8bc0 29 29 0a 20 20 20 20 20 20 20 20 28 76 6f 72 62 69 73 20 73 74 72 20 36 29 0a 20 20 20 20 20 20 )).........(vorbis.str.6).......
8be0 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 76 6f 72 62 69 73 20 ..(_.unit.(unless.(equal.vorbis.
8c00 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d emms-info-native-vorbis--header-
8c20 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 magic-pattern)..................
8c40 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 .(error."Vorbis.framing.mismatch
8c60 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 :.expected.`%s',.got.`%s'"......
8c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 ....................emms-info-na
8ca0 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 tive-vorbis--header-magic-patter
8cc0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 6f 72 62 69 n..........................vorbi
8ce0 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 75 69 6e 74 s))).........(vendor-length.uint
8d00 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 77 68 65 6e 20 28 3e 20 76 r.32).........(_.unit.(when.(>.v
8d20 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 endor-length.(length.bindat-raw)
8d40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 )...................(error."Vorb
8d60 69 73 20 76 65 6e 64 6f 72 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 is.vendor.length.%s.is.too.long"
8d80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 65 6e 64 6f 72 ..........................vendor
8da0 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e -length))).........(vendor-strin
8dc0 67 20 73 74 72 20 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 28 75 73 g.str.vendor-length).........(us
8de0 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 75 69 6e 74 72 20 33 32 er-comments-list-length.uintr.32
8e00 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 77 68 65 6e 20 28 3e 20 75 73 65 72 2d ).........(_.unit.(when.(>.user-
8e20 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 20 62 69 6e comments-list-length.(length.bin
8e40 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 dat-raw))...................(err
8e60 6f 72 20 22 56 6f 72 62 69 73 20 75 73 65 72 20 63 6f 6d 6d 65 6e 74 20 6c 69 73 74 20 6c 65 6e or."Vorbis.user.comment.list.len
8e80 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 gth.%s.is.too.long".............
8ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d .............user-comments-list-
8ec0 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 length))).........(user-comments
8ee0 20 72 65 70 65 61 74 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 .repeat.user-comments-list-lengt
8f00 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 20 65 6d h........................type.em
8f20 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 66 ms-info-native-vorbis--comment-f
8f40 69 65 6c 64 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 28 66 72 61 6d 69 ield-bindat-spec).........(frami
8f60 6e 67 2d 62 69 74 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 ng-bit.u8).........(_.unit.(unle
8f80 73 73 20 28 3d 20 66 72 61 6d 69 6e 67 2d 62 69 74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 ss.(=.framing-bit.1)............
8fa0 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 66 72 61 6d 69 6e 67 20 62 69 .......(error."Vorbis.framing.bi
8fc0 74 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 31 2c 20 67 6f 74 20 25 73 22 0a t.mismatch:.expected.1,.got.%s".
8fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 61 6d 69 6e 67 .........................framing
9000 2d 62 69 74 29 29 29 29 0a 20 20 20 20 27 28 28 70 61 63 6b 65 74 2d 74 79 70 65 20 75 38 29 0a -bit)))).....'((packet-type.u8).
9020 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 3d 20 6c 61 73 74 20 33 29 0a 20 ......(eval.(unless.(=.last.3)..
9040 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 68 65 61 64 .............(error."Vorbis.head
9060 65 72 20 74 79 70 65 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 33 2c 20 67 6f er.type.mismatch:.expected.3,.go
9080 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 t.%s"......................last)
90a0 29 29 0a 20 20 20 20 20 20 28 76 6f 72 62 69 73 20 73 74 72 20 36 29 0a 20 20 20 20 20 20 28 65 )).......(vorbis.str.6).......(e
90c0 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6c 61 73 74 20 65 6d 6d 73 2d 69 6e 66 val.(unless.(equal.last.emms-inf
90e0 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 2d 6d 61 67 69 63 2d 70 61 o-native-vorbis--header-magic-pa
9100 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 ttern)...............(error."Vor
9120 62 69 73 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 bis.framing.mismatch:.expected.`
9140 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %s',.got.`%s'"..................
9160 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 ....emms-info-native-vorbis--hea
9180 64 65 72 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 der-magic-pattern...............
91a0 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 6c 65 6e .......last))).......(vendor-len
91c0 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 77 68 65 6e 20 28 3e 20 6c gth.u32r).......(eval.(when.(>.l
91e0 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 ast.(length.bindat-raw))........
9200 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 76 65 6e 64 6f 72 20 6c 65 6e .......(error."Vorbis.vendor.len
9220 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 20 6c 61 73 74 29 29 29 0a 20 20 20 20 gth.%s.is.too.long".last))).....
9240 20 20 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e 67 20 73 74 72 20 28 76 65 6e 64 6f 72 2d 6c 65 6e ..(vendor-string.str.(vendor-len
9260 67 74 68 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d gth)).......(user-comments-list-
9280 6c 65 6e 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 77 68 65 6e 20 28 length.u32r).......(eval.(when.(
92a0 3e 20 6c 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 >.last.(length.bindat-raw)).....
92c0 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 75 73 65 72 20 63 6f ..........(error."Vorbis.user.co
92e0 6d 6d 65 6e 74 20 6c 69 73 74 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 mment.list.length.%s.is.too.long
9300 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 "......................last)))..
9320 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 20 72 65 70 65 61 74 0a 20 20 20 20 20 .....(user-comments.repeat......
9340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c ................(user-comments-l
9360 69 73 74 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ist-length).....................
9380 20 28 73 74 72 75 63 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 .(struct.emms-info-native-vorbis
93a0 2d 2d 63 6f 6d 6d 65 6e 74 2d 66 69 65 6c 64 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 0a 20 20 --comment-field-bindat-spec))...
93c0 20 20 20 20 28 66 72 61 6d 69 6e 67 2d 62 69 74 20 75 38 29 0a 20 20 20 20 20 20 28 65 76 61 6c ....(framing-bit.u8).......(eval
93e0 20 28 75 6e 6c 65 73 73 20 28 3d 20 6c 61 73 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(unless.(=.last.1))............
9400 20 28 65 72 72 6f 72 20 22 56 6f 72 62 69 73 20 66 72 61 6d 69 6e 67 20 62 69 74 20 6d 69 73 6d .(error."Vorbis.framing.bit.mism
9420 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 31 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 atch:.expected.1,.got.%s".......
9440 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 29 0a 20 20 22 56 6f 72 62 69 73 20 .............last))))..."Vorbis.
9460 63 6f 6d 6d 65 6e 74 20 68 65 61 64 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a comment.header.specification.").
9480 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 .(defconst.emms-info-native-vorb
94a0 69 73 2d 2d 68 65 61 64 65 72 73 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 is--headers-bindat-spec...(if.(e
94c0 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 val-when-compile.(fboundp.'binda
94e0 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 t-type)).......(bindat-type.....
9500 20 20 20 20 28 5f 20 73 74 72 75 63 74 20 28 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 2d 68 65 ....(_.struct.(identification-he
9520 61 64 65 72 20 74 79 70 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 ader.type.emms-info-native-vorbi
9540 73 2d 2d 69 64 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 0a 20 20 20 20 20 20 s--id-header-bindat-spec).......
9560 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 20 74 79 70 65 ............(comment-header.type
9580 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e .emms-info-native-vorbis--commen
95a0 74 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 29 0a 20 20 20 20 27 28 28 69 t-header-bindat-spec))).....'((i
95c0 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 2d 68 65 61 64 65 72 20 73 74 72 75 63 74 20 65 6d 6d 73 dentification-header.struct.emms
95e0 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 69 64 2d 68 65 61 64 65 72 2d 62 -info-native-vorbis--id-header-b
9600 69 6e 64 61 74 2d 73 70 65 63 29 0a 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 indat-spec).......(comment-heade
9620 72 20 73 74 72 75 63 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 r.struct.emms-info-native-vorbis
9640 2d 2d 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 29 0a --comment-header-bindat-spec))).
9660 20 20 22 53 70 65 63 69 66 69 63 61 74 69 6f 6e 20 66 6f 72 20 66 69 72 73 74 20 74 77 6f 20 56 .."Specification.for.first.two.V
9680 6f 72 62 69 73 20 68 65 61 64 65 72 20 70 61 63 6b 65 74 73 2e 0a 54 68 65 79 20 61 72 65 20 61 orbis.header.packets..They.are.a
96a0 6c 77 61 79 73 20 61 6e 20 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 68 65 61 64 65 72 20 66 lways.an.identification.header.f
96c0 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 63 6f 6d 6d 65 6e 74 0a 68 65 61 64 65 72 2e 22 29 0a 0a ollowed.by.a.comment.header.")..
96e0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 65 (defun.emms-info-native-vorbis-e
9700 78 74 72 61 63 74 2d 63 6f 6d 6d 65 6e 74 73 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 29 0a xtract-comments.(user-comments).
9720 20 20 22 52 65 74 75 72 6e 20 61 20 64 65 63 6f 64 65 64 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d .."Return.a.decoded.list.of.comm
9740 65 6e 74 73 20 66 72 6f 6d 20 55 53 45 52 2d 43 4f 4d 4d 45 4e 54 53 2e 0a 55 53 45 52 2d 43 4f ents.from.USER-COMMENTS..USER-CO
9760 4d 4d 45 4e 54 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 56 6f 72 62 69 MMENTS.should.be.a.list.of.Vorbi
9780 73 20 63 6f 6d 6d 65 6e 74 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 0a 60 75 73 65 72 2d 63 6f s.comments.according.to.`user-co
97a0 6d 6d 65 6e 74 73 27 20 66 69 65 6c 64 20 69 6e 0a 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 mments'.field.in.`emms-info-nati
97c0 76 65 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 ve-vorbis--comment-header-bindat
97e0 2d 73 70 65 63 27 2e 0a 0a 52 65 74 75 72 6e 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 6c 69 -spec'...Return.comments.in.a.li
9800 73 74 20 6f 66 20 28 46 49 45 4c 44 20 2e 20 56 41 4c 55 45 29 20 63 6f 6e 73 20 63 65 6c 6c 73 st.of.(FIELD...VALUE).cons.cells
9820 2e 20 20 4f 6e 6c 79 0a 46 49 45 4c 44 73 20 74 68 61 74 20 61 72 65 20 6c 69 73 74 65 64 20 69 ...Only.FIELDs.that.are.listed.i
9840 6e 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 61 63 63 65 n.`emms-info-native-vorbis--acce
9860 70 74 65 64 2d 66 69 65 6c 64 73 27 20 61 72 65 0a 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 6c pted-fields'.are.returned."...(l
9880 65 74 20 28 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 75 73 65 72 2d et.(comments).....(dolist.(user-
98a0 63 6f 6d 6d 65 6e 74 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 28 6c 65 comment.user-comments).......(le
98c0 74 2a 20 28 28 63 6f 6d 6d 65 6e 74 20 28 61 6c 69 73 74 2d 67 65 74 20 27 75 73 65 72 2d 63 6f t*.((comment.(alist-get.'user-co
98e0 6d 6d 65 6e 74 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 mment.user-comment))............
9900 20 20 28 70 61 69 72 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 ..(pair.(emms-info-native-vorbis
9920 2d 2d 73 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20 20 20 20 --split-comment.comment)))......
9940 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 28 63 61 72 20 70 61 69 72 29 20 65 6d 6d 73 ...(when.(member.(car.pair).emms
9960 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 61 63 63 65 70 74 65 64 2d 66 69 -info-native-vorbis--accepted-fi
9980 65 6c 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 61 69 72 20 63 6f 6d 6d 65 elds)...........(push.pair.comme
99a0 6e 74 73 29 29 29 29 0a 20 20 20 20 63 6f 6d 6d 65 6e 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 nts)))).....comments))..(defun.e
99c0 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 70 6c 69 74 2d 63 6f mms-info-native-vorbis--split-co
99e0 6d 6d 65 6e 74 20 28 63 6f 6d 6d 65 6e 74 29 0a 20 20 22 53 70 6c 69 74 20 56 6f 72 62 69 73 20 mment.(comment)..."Split.Vorbis.
9a00 43 4f 4d 4d 45 4e 54 20 74 6f 20 61 20 66 69 65 6c 64 2d 76 61 6c 75 65 20 70 61 69 72 2e 0a 56 COMMENT.to.a.field-value.pair..V
9a20 6f 72 62 69 73 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6f 66 20 66 6f 72 6d 20 60 46 49 45 4c orbis.comments.are.of.form.`FIEL
9a40 44 3d 56 41 4c 55 45 27 2e 20 20 46 49 45 4c 44 20 69 73 20 61 0a 63 61 73 65 2d 69 6e 73 65 6e D=VALUE'...FIELD.is.a.case-insen
9a60 73 69 74 69 76 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 77 69 74 68 20 61 20 72 65 73 74 72 69 63 sitive.field.name.with.a.restric
9a80 74 65 64 20 73 65 74 20 6f 66 20 41 53 43 49 49 0a 63 68 61 72 61 63 74 65 72 73 2e 20 20 56 41 ted.set.of.ASCII.characters...VA
9aa0 4c 55 45 20 69 73 20 61 6e 20 61 72 62 69 74 72 61 72 79 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 LUE.is.an.arbitrary.UTF-8.encode
9ac0 64 20 6f 63 74 65 74 20 73 74 72 65 61 6d 2e 0a 43 6f 6d 6d 65 6e 74 73 20 77 69 74 68 20 65 6d d.octet.stream..Comments.with.em
9ae0 70 74 79 20 46 49 45 4c 44 20 6f 72 20 56 41 4c 55 45 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a pty.FIELD.or.VALUE.are.ignored..
9b00 0a 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 28 46 49 45 4c 44 20 2e 20 56 41 4c .Return.a.cons.cell.(FIELD...VAL
9b20 55 45 29 2c 20 77 68 65 72 65 20 46 49 45 4c 44 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 74 6f UE),.where.FIELD.is.converted.to
9b40 0a 6c 6f 77 65 72 20 63 61 73 65 20 61 6e 64 20 56 41 4c 55 45 20 69 73 20 74 68 65 20 64 65 63 .lower.case.and.VALUE.is.the.dec
9b60 6f 64 65 64 20 76 61 6c 75 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 65 6e 74 2d 73 74 oded.value."...(let.((comment-st
9b80 72 69 6e 67 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 63 6f 6d 6d 65 ring.(decode-coding-string.comme
9ba0 6e 74 20 27 75 74 66 2d 38 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d nt.'utf-8))).....(when.(string-m
9bc0 61 74 63 68 20 22 5e 5c 5c 28 2e 2b 3f 5c 5c 29 3d 5c 5c 28 2e 2b 5c 5c 29 24 22 20 63 6f 6d 6d atch."^\\(.+?\\)=\\(.+\\)$".comm
9be0 65 6e 74 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 64 6f 77 6e 63 61 73 ent-string).......(cons.(downcas
9c00 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 6f 6d 6d 65 6e 74 2d 73 74 72 69 6e 67 e.(match-string.1.comment-string
9c20 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 63 )).............(match-string.2.c
9c40 6f 6d 6d 65 6e 74 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d omment-string)))))..(provide.'em
9c60 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 ms-info-native-vorbis)..;;;.emms
9c80 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 -info-native-vorbis.el.ends.here
9ca0 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2e 65 6c 00 00 emms-24/emms-librefm-stream.el..
9e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
9e80 30 30 33 30 33 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 37 31 00 20 30 00 00 00 0030302.00000000000.015071..0...
9ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
9f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
9f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a000 3b 3b 3b 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2e 65 6c 20 2d 2d 2d 20 4c ;;;.emms-librefm-stream.el.---.L
a020 69 62 72 65 2e 46 4d 20 73 74 72 65 61 6d 69 6e 67 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 ibre.FM.streaming..-*-.lexical-b
a040 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
a060 20 32 30 31 34 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c .2014..Free.Software.Foundation,
a080 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 .Inc...;;.Author:.Yoni.Rabkin.<y
a0a0 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 rk@gnu.org>..;;.Keywords:.emms,.
a0c0 6c 69 62 72 65 2e 66 6d 2c 20 47 4e 55 20 46 4d 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 libre.fm,.GNU.FM..;;.EMMS.is.fre
a0e0 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software;.you.can.redistribute
a100 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.it.;;.under.th
a120 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
a140 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 c.License.as.published.by.;;.the
a160 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 .Free.Software.Foundation;.eithe
a180 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 r.version.3,.or.(at.your.option)
a1a0 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d .;;.any.later.version..;;.;;.EMM
a1c0 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 S.is.distributed.in.the.hope.tha
a1e0 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 t.it.will.be.useful,.but.WITHOUT
a200 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 .;;.ANY.WARRANTY;.without.even.t
a220 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 he.implied.warranty.of.MERCHANTA
a240 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 BILITY.;;.or.FITNESS.FOR.A.PARTI
a260 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 CULAR.PURPOSE...See.the.GNU.Gene
a280 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 ral.Public.;;.License.for.more.d
a2a0 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 etails..;;.;;.You.should.have.re
a2c0 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c ceived.a.copy.of.the.GNU.General
a2e0 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d .Public.License.;;.along.with.EM
a300 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f MS;.see.the.file.COPYING...If.no
a320 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 t,.write.to.the.Free.;;.Software
a340 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 .Foundation,.Inc.,.51.Franklin.S
a360 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d treet,.Fifth.Floor,.Boston,.;;.M
a380 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a A.02110-1301,.USA....;;;.Code:..
a3a0 28 72 65 71 75 69 72 65 20 27 78 6d 6c 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c (require.'xml).(require.'emms-pl
a3c0 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 62 72 aylist-mode).(require.'emms-libr
a3e0 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 efm-scrobbler)...(defvar.emms-li
a400 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 68 6f 73 74 2d 75 72 6c 0a 20 20 22 61 6c 70 68 61 2e 6c brefm-stream-host-url..."alpha.l
a420 69 62 72 65 2e 66 6d 22 0a 20 20 22 55 52 4c 20 66 6f 72 20 74 68 65 20 73 74 72 65 61 6d 69 6e ibre.fm"..."URL.for.the.streamin
a440 67 20 68 6f 73 74 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 g.host")..(defvar.emms-librefm-s
a460 74 72 65 61 6d 2d 68 6f 73 74 2d 62 61 73 65 2d 70 61 74 68 0a 20 20 22 22 0a 20 20 22 55 52 4c tream-host-base-path...""..."URL
a480 20 66 6f 72 20 74 68 65 20 73 74 72 65 61 6d 69 6e 67 20 68 6f 73 74 20 62 61 73 65 20 70 61 74 .for.the.streaming.host.base.pat
a4a0 68 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d h")..(defvar.emms-librefm-stream
a4c0 2d 73 65 73 73 69 6f 6e 2d 69 64 0a 20 20 22 22 0a 20 20 22 53 65 73 73 69 6f 6e 20 49 44 20 66 -session-id...""..."Session.ID.f
a4e0 6f 72 20 72 61 64 69 6f 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 or.radio.")..(defvar.emms-libref
a500 6d 2d 73 74 72 65 61 6d 2d 64 65 62 75 67 0a 20 20 22 22 0a 20 20 22 54 65 6d 70 6f 72 61 72 79 m-stream-debug...""..."Temporary
a520 20 64 65 62 75 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 .debug.information.")..(defvar.e
a540 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 73 74 61 74 69 6f 6e 2d 6e 61 6d 65 0a mms-librefm-stream-station-name.
a560 20 20 22 22 0a 20 20 22 4c 61 73 74 20 73 74 61 74 69 6f 6e 20 6e 61 6d 65 20 74 75 6e 65 64 20 ..""..."Last.station.name.tuned.
a580 74 6f 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 to.")..(defvar.emms-librefm-stre
a5a0 61 6d 2d 65 6d 6d 73 2d 74 72 61 63 6b 6c 69 73 74 0a 20 20 22 22 0a 20 20 22 4c 69 73 74 20 6f am-emms-tracklist...""..."List.o
a5c0 66 20 74 72 61 63 6b 73 20 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 2e 22 29 0a 0a 28 64 65 66 76 f.tracks.for.streaming.")..(defv
a5e0 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 70 6c 61 79 6c 69 73 74 2d ar.emms-librefm-stream-playlist-
a600 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 22 2a 45 6d 6d 73 20 47 4e 55 20 46 4d 2a 22 0a 20 20 buffer-name..."*Emms.GNU.FM*"...
a620 22 4e 61 6d 65 20 66 6f 72 20 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 45 6d 6d 73 20 47 "Name.for.non-interactive.Emms.G
a640 4e 55 20 46 4d 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 NU.FM.buffer.")..(defvar.emms-li
a660 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 6e 69 6c brefm-stream-playlist-buffer.nil
a680 0a 20 20 22 4e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 45 6d 6d 73 20 47 4e 55 20 46 4d 20 ..."Non-interactive.Emms.GNU.FM.
a6a0 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d buffer.")..(defvar.emms-librefm-
a6c0 73 74 72 65 61 6d 2d 63 6f 6e 6e 65 63 74 2d 6d 65 74 68 6f 64 20 22 68 74 74 70 73 3a 2f 2f 22 stream-connect-method."https://"
a6e0 0a 20 20 22 4d 65 74 68 6f 64 20 6f 66 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 6f 20 73 65 72 76 ..."Method.of.connecting.to.serv
a700 65 72 2e 22 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d er.")...;;;.--------------------
a720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
a740 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 48 54 54 50 0a 3b 3b 3b 20 2d 2d 2d 2d --------------.;;;.HTTP.;;;.----
a760 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
a780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a ------------------------------..
a7a0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 61 73 73 65 72 (defun.emms-librefm-stream-asser
a7c0 74 2d 68 74 74 70 20 28 29 0a 20 20 22 41 73 73 65 72 74 20 61 20 73 61 6e 65 20 48 54 54 50 20 t-http.()..."Assert.a.sane.HTTP.
a7e0 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 73 65 72 76 65 72 2e 0a 0a 54 68 69 73 20 response.from.the.server...This.
a800 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 69 6e 73 69 64 65 20 74 function.must.be.called.inside.t
a820 68 65 20 72 65 73 70 6f 6e 73 65 20 62 75 66 66 65 72 2e 20 4c 65 61 76 65 73 0a 70 6f 69 6e 74 he.response.buffer..Leaves.point
a840 20 61 66 74 65 72 20 74 68 65 20 48 54 54 50 20 68 65 61 64 65 72 73 2e 22 0a 20 20 28 67 6f 74 .after.the.HTTP.headers."...(got
a860 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 o-char.(point-min))...(when.(not
a880 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 2e 2a 32 30 30 20 4f 4b 24 22 .(re-search-forward."^.*200.OK$"
a8a0 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 29 0a 20 20 20 20 28 65 72 .(line-end-position).t)).....(er
a8c0 72 6f 72 20 22 62 61 64 20 48 54 54 50 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e 73 65 22 29 29 ror."bad.HTTP.server.response"))
a8e0 0a 20 20 3b 3b 20 67 6f 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 46 4d 20 ...;;.go.to.the.start.of.the.FM.
a900 72 65 73 70 6f 6e 73 65 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 72 65 2d 73 65 61 72 63 68 response...(when.(not.(re-search
a920 2d 66 6f 72 77 61 72 64 20 22 5c 6e 5c 6e 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 29 0a -forward."\n\n".(point-max).t)).
a940 20 20 20 20 28 65 72 72 6f 72 20 22 62 61 64 20 46 4d 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e ....(error."bad.FM.server.respon
a960 73 65 22 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d se")))...;;;.-------------------
a980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
a9a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 72 61 64 69 6f 20 68 61 6e 64 73 68 ---------------.;;;.radio.handsh
a9c0 61 6b 65 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ake.;;;.------------------------
a9e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
aa00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d ----------..(defun.emms-librefm-
aa20 73 74 72 65 61 6d 2d 74 75 6e 65 2d 68 61 6e 64 73 68 61 6b 65 2d 73 74 72 69 6e 67 20 28 29 0a stream-tune-handshake-string.().
aa40 20 20 22 43 72 65 61 74 65 20 74 68 65 20 74 75 6e 65 20 68 61 6e 64 73 68 61 6b 65 20 73 74 72 .."Create.the.tune.handshake.str
aa60 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 75 73 65 72 6e 61 6d 65 20 28 65 6d 6d 73 2d 6c 69 ing."...(let.((username.(emms-li
aa80 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 75 73 65 72 6e 61 6d 65 29 29 0a 09 28 70 61 brefm-scrobbler--username))..(pa
aaa0 73 73 77 6f 72 64 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 2d ssword.(emms-librefm-scrobbler--
aac0 70 61 73 73 77 6f 72 64 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 63 6f 6e 63 password))).....(let.((url.(conc
aae0 61 74 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 63 6f 6e 6e 65 63 74 2d 6d at.emms-librefm-stream-connect-m
ab00 65 74 68 6f 64 0a 09 09 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 ethod..........emms-librefm-stre
ab20 61 6d 2d 68 6f 73 74 2d 75 72 6c 0a 09 09 20 20 20 20 20 20 20 22 2f 72 61 64 69 6f 2f 68 61 6e am-host-url.........."/radio/han
ab40 64 73 68 61 6b 65 2e 70 68 70 3f 22 0a 09 09 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 3d 31 dshake.php?".........."version=1
ab60 2e 33 2e 30 2e 35 38 22 20 22 26 22 0a 09 09 20 20 20 20 20 20 20 22 70 6c 61 74 66 6f 72 6d 3d .3.0.58"."&".........."platform=
ab80 6c 69 6e 75 78 22 20 22 26 22 0a 09 09 20 20 20 20 20 20 20 22 75 73 65 72 6e 61 6d 65 3d 22 20 linux"."&".........."username=".
aba0 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 75 73 65 72 6e 61 6d 65 29 20 22 26 22 0a 09 09 (url-encode-url.username)."&"...
abc0 20 20 20 20 20 20 20 22 70 61 73 73 77 6f 72 64 6d 64 35 3d 22 20 28 6d 64 35 20 70 61 73 73 77 ......."passwordmd5=".(md5.passw
abe0 6f 72 64 29 20 22 26 22 0a 09 09 20 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 3d 65 6e 22 29 ord)."&".........."language=en")
ac00 29 29 0a 20 20 20 20 20 20 75 72 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 )).......url)))..(defun.emms-lib
ac20 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 2d 68 61 6e 64 73 68 61 6b 65 2d 63 61 6c 6c 20 refm-stream-tune-handshake-call.
ac40 28 29 0a 20 20 22 4d 61 6b 65 20 74 68 65 20 74 75 6e 65 20 68 61 6e 64 73 68 61 6b 65 20 63 61 ()..."Make.the.tune.handshake.ca
ac60 6c 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 ll."...(let.((url-request-method
ac80 20 22 50 4f 53 54 22 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 20 75 72 6c 2d 72 65 71 75 65 73 ."POST")).....(ignore.url-reques
aca0 74 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 0a 09 20 t-method).....(let.((response...
acc0 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 0a 09 20 ..(url-retrieve-synchronously...
ace0 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 2d 68 61 6e ...(emms-librefm-stream-tune-han
ad00 64 73 68 61 6b 65 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d dshake-string)))).......(setq.em
ad20 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 64 65 62 75 67 0a 09 20 20 20 20 28 77 69 ms-librefm-stream-debug......(wi
ad40 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 73 70 6f 6e 73 65 0a 09 20 20 20 20 th-current-buffer.response......
ad60 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 ..(buffer-substring-no-propertie
ad80 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 09 20 20 20 20 20 20 28 70 6f 69 6e 74 2d s.(point-min)............(point-
ada0 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 28 64 65 66 75 max)))).......response)))..(defu
adc0 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 68 61 6e 64 6c 65 2d 74 75 6e n.emms-librefm-stream-handle-tun
ade0 65 2d 68 61 6e 64 73 68 61 6b 65 2d 72 65 73 70 6f 6e 73 65 20 28 72 65 73 62 75 66 29 0a 20 20 e-handshake-response.(resbuf)...
ae00 22 48 61 6e 64 6c 65 20 74 68 65 20 74 75 6e 65 20 68 61 6e 64 73 68 61 6b 65 20 73 65 72 76 65 "Handle.the.tune.handshake.serve
ae20 72 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 62 75 66 66 65 r.response."...(when.(not.(buffe
ae40 72 70 20 72 65 73 62 75 66 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 72 65 73 70 6f 6e 73 65 rp.resbuf)).....(error."response
ae60 20 6e 6f 74 20 61 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 .not.a.buffer"))...(with-current
ae80 2d 62 75 66 66 65 72 20 72 65 73 62 75 66 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d -buffer.resbuf.....(emms-librefm
aea0 2d 73 74 72 65 61 6d 2d 61 73 73 65 72 74 2d 68 74 74 70 29 0a 20 20 20 20 28 6c 65 74 20 28 72 -stream-assert-http).....(let.(r
aec0 61 64 69 6f 2d 73 65 73 73 69 6f 6e 2d 69 64 0a 09 20 20 62 61 73 65 2d 75 72 6c 0a 09 20 20 62 adio-session-id....base-url....b
aee0 61 73 65 2d 70 61 74 68 0a 09 20 20 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 0a 20 20 ase-path....(start.(point)))....
af00 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 73 65 73 ....(if.(re-search-forward."^ses
af20 73 69 6f 6e 3d 5c 5c 28 2e 2a 5c 5c 29 24 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 09 sion=\\(.*\\)$".(point-max).t)..
af40 20 20 28 73 65 74 71 20 72 61 64 69 6f 2d 73 65 73 73 69 6f 6e 2d 69 64 20 28 6d 61 74 63 68 2d ..(setq.radio-session-id.(match-
af60 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 0a 09 28 65 72 72 6f 72 string-no-properties.1))..(error
af80 20 22 6e 6f 20 72 61 64 69 6f 20 73 65 73 73 69 6f 6e 20 49 44 20 66 72 6f 6d 20 73 65 72 76 65 ."no.radio.session.ID.from.serve
afa0 72 22 29 29 0a 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 29 0a 20 20 r"))........(goto-char.start)...
afc0 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 62 61 73 ....(if.(re-search-forward."^bas
afe0 65 5f 75 72 6c 3d 5c 5c 28 2e 2a 5c 5c 29 24 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a e_url=\\(.*\\)$".(point-max).t).
b000 09 20 20 28 73 65 74 71 20 62 61 73 65 2d 75 72 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d ...(setq.base-url.(match-string-
b020 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 0a 09 28 65 72 72 6f 72 20 22 6e 6f 20 62 61 no-properties.1))..(error."no.ba
b040 73 65 20 75 72 6c 20 66 72 6f 6d 20 73 65 72 76 65 72 22 29 29 0a 0a 20 20 20 20 20 20 28 67 6f se.url.from.server"))........(go
b060 74 6f 2d 63 68 61 72 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 to-char.start).......(if.(re-sea
b080 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 62 61 73 65 5f 70 61 74 68 3d 5c 5c 28 2e 2a 5c 5c 29 rch-forward."^base_path=\\(.*\\)
b0a0 24 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 09 20 20 28 73 65 74 71 20 62 61 73 65 2d $".(point-max).t)....(setq.base-
b0c0 70 61 74 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 path.(match-string-no-properties
b0e0 20 31 29 29 0a 09 28 65 72 72 6f 72 20 22 6e 6f 20 62 61 73 65 20 70 61 74 68 20 66 72 6f 6d 20 .1))..(error."no.base.path.from.
b100 73 65 72 76 65 72 22 29 29 0a 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 62 72 server"))........(setq.emms-libr
b120 65 66 6d 2d 73 74 72 65 61 6d 2d 73 65 73 73 69 6f 6e 2d 69 64 20 72 61 64 69 6f 2d 73 65 73 73 efm-stream-session-id.radio-sess
b140 69 6f 6e 2d 69 64 0a 09 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d ion-id......emms-librefm-stream-
b160 68 6f 73 74 2d 75 72 6c 20 62 61 73 65 2d 75 72 6c 0a 09 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 host-url.base-url......emms-libr
b180 65 66 6d 2d 73 74 72 65 61 6d 2d 68 6f 73 74 2d 62 61 73 65 2d 70 61 74 68 20 62 61 73 65 2d 70 efm-stream-host-base-path.base-p
b1a0 61 74 68 29 29 0a 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 72 61 64 69 6f 20 68 61 6e 64 73 ath))......(message."radio.hands
b1c0 68 61 6b 65 20 73 75 63 63 65 73 73 66 75 6c 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 hake.successful")))..(defun.emms
b1e0 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 2d 68 61 6e 64 73 68 61 6b 65 20 28 -librefm-stream-tune-handshake.(
b200 29 0a 20 20 22 4d 61 6b 65 20 61 6e 64 20 68 61 6e 64 6c 65 20 74 68 65 20 74 75 6e 65 20 68 61 )..."Make.and.handle.the.tune.ha
b220 6e 64 73 68 61 6b 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d ndshake."...(emms-librefm-stream
b240 2d 68 61 6e 64 6c 65 2d 74 75 6e 65 2d 68 61 6e 64 73 68 61 6b 65 2d 72 65 73 70 6f 6e 73 65 0a -handle-tune-handshake-response.
b260 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 2d 68 61 6e ...(emms-librefm-stream-tune-han
b280 64 73 68 61 6b 65 2d 63 61 6c 6c 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d dshake-call)))...;;;.-----------
b2a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b2c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 74 75 6e 69 -----------------------.;;;.tuni
b2e0 6e 67 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ng.;;;.-------------------------
b300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b320 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 ---------..(defun.emms-librefm-s
b340 74 72 65 61 6d 2d 74 75 6e 65 2d 73 74 72 69 6e 67 20 28 73 65 73 73 69 6f 6e 2d 69 64 20 73 74 tream-tune-string.(session-id.st
b360 61 74 69 6f 6e 29 0a 20 20 22 43 72 65 61 74 65 20 74 68 65 20 74 75 6e 65 20 73 74 72 69 6e 67 ation)..."Create.the.tune.string
b380 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 73 65 73 73 69 6f 6e 2d 69 64 29 0a 20 20 20 20 ."...(when.(not.session-id).....
b3a0 28 65 72 72 6f 72 20 22 6e 75 6c 6c 20 73 65 73 73 69 6f 6e 20 69 64 22 29 29 0a 20 20 28 77 68 (error."null.session.id"))...(wh
b3c0 65 6e 20 28 6e 6f 74 20 73 74 61 74 69 6f 6e 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 6e 75 6c en.(not.station).....(error."nul
b3e0 6c 20 73 74 61 74 69 6f 6e 22 29 29 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 63 6f 6e 63 61 l.station"))...(let.((url.(conca
b400 74 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 63 6f 6e 6e 65 63 74 2d 6d 65 t.emms-librefm-stream-connect-me
b420 74 68 6f 64 0a 09 09 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d thod........emms-librefm-stream-
b440 68 6f 73 74 2d 75 72 6c 0a 09 09 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 host-url........emms-librefm-str
b460 65 61 6d 2d 68 6f 73 74 2d 62 61 73 65 2d 70 61 74 68 0a 09 09 20 20 20 20 20 22 2f 61 64 6a 75 eam-host-base-path........"/adju
b480 73 74 2e 70 68 70 3f 22 0a 09 09 20 20 20 20 20 22 73 65 73 73 69 6f 6e 3d 22 20 73 65 73 73 69 st.php?"........"session=".sessi
b4a0 6f 6e 2d 69 64 20 22 26 22 0a 09 09 20 20 20 20 20 22 75 72 6c 3d 22 20 28 75 72 6c 2d 65 6e 63 on-id."&"........"url=".(url-enc
b4c0 6f 64 65 2d 75 72 6c 20 73 74 61 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 75 72 6c 29 29 0a 0a 28 ode-url.station)))).....url))..(
b4e0 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 2d 63 defun.emms-librefm-stream-tune-c
b500 61 6c 6c 20 28 73 65 73 73 69 6f 6e 2d 69 64 20 73 74 61 74 69 6f 6e 29 0a 20 20 22 4d 61 6b 65 all.(session-id.station)..."Make
b520 20 74 68 65 20 74 75 6e 65 20 63 61 6c 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 2d 72 65 .the.tune.call."...(let.((url-re
b540 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 quest-method."POST")).....(ignor
b560 65 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 28 6c 65 74 20 28 e.url-request-method).....(let.(
b580 28 72 65 73 70 6f 6e 73 65 0a 09 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 (response.....(url-retrieve-sync
b5a0 68 72 6f 6e 6f 75 73 6c 79 0a 09 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 hronously......(emms-librefm-str
b5c0 65 61 6d 2d 74 75 6e 65 2d 73 74 72 69 6e 67 0a 09 20 20 20 20 20 73 65 73 73 69 6f 6e 2d 69 64 eam-tune-string.......session-id
b5e0 20 73 74 61 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 .station)))).......(setq.emms-li
b600 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 64 65 62 75 67 0a 09 20 20 20 20 28 77 69 74 68 2d 63 75 brefm-stream-debug......(with-cu
b620 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 73 70 6f 6e 73 65 0a 09 20 20 20 20 20 20 28 62 75 rrent-buffer.response........(bu
b640 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f ffer-substring-no-properties.(po
b660 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 09 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 int-min)............(point-max))
b680 29 29 0a 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d )).......response)))..(defun.emm
b6a0 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 68 61 6e 64 6c 65 2d 74 75 6e 65 2d 72 65 73 s-librefm-stream-handle-tune-res
b6c0 70 6f 6e 73 65 20 28 72 65 73 62 75 66 29 0a 20 20 22 48 61 6e 64 6c 65 20 74 68 65 20 74 75 6e ponse.(resbuf)..."Handle.the.tun
b6e0 65 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 e.server.response."...(when.(not
b700 20 28 62 75 66 66 65 72 70 20 72 65 73 62 75 66 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 72 .(bufferp.resbuf)).....(error."r
b720 65 73 70 6f 6e 73 65 20 6e 6f 74 20 61 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 77 69 74 68 2d esponse.not.a.buffer"))...(with-
b740 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 73 62 75 66 0a 20 20 20 20 28 65 6d 6d 73 2d current-buffer.resbuf.....(emms-
b760 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 61 73 73 65 72 74 2d 68 74 74 70 29 0a 20 20 20 20 librefm-stream-assert-http).....
b780 28 6c 65 74 20 28 72 65 73 70 6f 6e 73 65 0a 09 20 20 73 74 61 74 69 6f 6e 6e 61 6d 65 0a 09 20 (let.(response....stationname...
b7a0 20 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 0a 20 20 20 20 20 20 28 69 66 20 28 72 65 .(start.(point)))........(if.(re
b7c0 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 72 65 73 70 6f 6e 73 65 3d 5c 5c 28 2e 2a -search-forward."^response=\\(.*
b7e0 5c 5c 29 24 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 09 20 20 28 73 65 74 71 20 72 65 \\)$".(point-max).t)....(setq.re
b800 73 70 6f 6e 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 sponse.(match-string-no-properti
b820 65 73 20 31 29 29 0a 09 28 65 72 72 6f 72 20 22 6e 6f 20 72 65 73 70 6f 6e 73 65 20 73 74 61 74 es.1))..(error."no.response.stat
b840 75 73 20 63 6f 64 65 22 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 us.code")).......(when.(not.(str
b860 69 6e 67 3d 20 72 65 73 70 6f 6e 73 65 20 22 4f 4b 22 29 29 0a 09 28 65 72 72 6f 72 20 22 74 75 ing=.response."OK"))..(error."tu
b880 6e 65 20 72 65 73 70 6f 6e 73 65 20 6e 6f 74 20 4f 4b 22 29 29 0a 0a 20 20 20 20 20 20 28 67 6f ne.response.not.OK"))........(go
b8a0 74 6f 2d 63 68 61 72 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 to-char.start).......(if.(re-sea
b8c0 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 73 74 61 74 69 6f 6e 6e 61 6d 65 3d 5c 5c 28 2e 2a 5c rch-forward."^stationname=\\(.*\
b8e0 5c 29 24 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 09 20 20 28 73 65 74 71 20 73 74 61 \)$".(point-max).t)....(setq.sta
b900 74 69 6f 6e 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 tionname.(match-string-no-proper
b920 74 69 65 73 20 31 29 29 0a 09 28 65 72 72 6f 72 20 22 6e 6f 20 73 74 61 74 69 6f 6e 6e 61 6d 65 ties.1))..(error."no.stationname
b940 20 66 72 6f 6d 20 73 65 72 76 65 72 22 29 29 0a 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d .from.server"))........(setq.emm
b960 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 73 74 61 74 69 6f 6e 2d 6e 61 6d 65 20 73 74 s-librefm-stream-station-name.st
b980 61 74 69 6f 6e 6e 61 6d 65 29 0a 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 73 75 63 63 ationname)........(message."succ
b9a0 65 73 73 66 75 6c 6c 79 20 74 75 6e 65 64 20 74 6f 3a 20 25 73 22 20 73 74 61 74 69 6f 6e 6e 61 essfully.tuned.to:.%s".stationna
b9c0 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 me))))..(defun.emms-librefm-stre
b9e0 61 6d 2d 74 75 6e 65 20 28 73 74 61 74 69 6f 6e 29 0a 20 20 22 4d 61 6b 65 20 61 6e 64 20 68 61 am-tune.(station)..."Make.and.ha
ba00 6e 64 6c 65 20 74 75 6e 65 20 63 61 6c 6c 2e 22 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d ndle.tune.call."...(emms-librefm
ba20 2d 73 74 72 65 61 6d 2d 68 61 6e 64 6c 65 2d 74 75 6e 65 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 -stream-handle-tune-response....
ba40 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 2d 63 61 6c 6c 0a 20 (emms-librefm-stream-tune-call..
ba60 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 73 65 73 73 69 6f 6e 2d 69 ...emms-librefm-stream-session-i
ba80 64 0a 20 20 20 20 73 74 61 74 69 6f 6e 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d d.....station)))...;;;.---------
baa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
bac0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 72 61 -------------------------.;;;.ra
bae0 64 69 6f 2e 67 65 74 50 6c 61 79 6c 69 73 74 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d dio.getPlaylist.;;;.------------
bb00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
bb20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 ----------------------..(defun.e
bb40 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 67 65 74 70 6c 61 79 6c 69 73 74 2d 73 mms-librefm-stream-getplaylist-s
bb60 74 72 69 6e 67 20 28 72 61 64 69 6f 2d 73 65 73 73 69 6f 6e 2d 69 64 29 0a 20 20 22 43 72 65 61 tring.(radio-session-id)..."Crea
bb80 74 65 20 74 68 65 20 67 65 74 70 6c 61 79 6c 69 73 74 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 77 te.the.getplaylist.string."...(w
bba0 68 65 6e 20 28 6e 6f 74 20 72 61 64 69 6f 2d 73 65 73 73 69 6f 6e 2d 69 64 29 0a 20 20 20 20 28 hen.(not.radio-session-id).....(
bbc0 65 72 72 6f 72 20 22 6e 75 6c 6c 20 72 61 64 69 6f 20 73 65 73 73 69 6f 6e 20 69 64 22 29 29 0a error."null.radio.session.id")).
bbe0 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 63 6f 6e 63 61 74 20 65 6d 6d 73 2d 6c 69 62 72 65 66 ..(let.((url.(concat.emms-libref
bc00 6d 2d 73 74 72 65 61 6d 2d 63 6f 6e 6e 65 63 74 2d 6d 65 74 68 6f 64 0a 09 09 20 20 20 20 20 65 m-stream-connect-method........e
bc20 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 68 6f 73 74 2d 75 72 6c 0a 09 09 20 20 mms-librefm-stream-host-url.....
bc40 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 68 6f 73 74 2d 62 61 73 65 ...emms-librefm-stream-host-base
bc60 2d 70 61 74 68 0a 09 09 20 20 20 20 20 22 2f 78 73 70 66 2e 70 68 70 3f 22 0a 09 09 20 20 20 20 -path........"/xspf.php?".......
bc80 20 22 73 6b 3d 22 20 72 61 64 69 6f 2d 73 65 73 73 69 6f 6e 2d 69 64 20 22 26 22 0a 09 09 20 20 ."sk=".radio-session-id."&".....
bca0 20 20 20 22 64 69 73 63 6f 76 65 72 79 3d 30 22 20 20 20 20 20 20 20 20 20 20 22 26 22 0a 09 09 ..."discovery=0".........."&"...
bcc0 20 20 20 20 20 22 64 65 73 6b 74 6f 70 3d 31 2e 33 2e 30 2e 35 38 22 29 29 29 0a 20 20 20 20 75 ....."desktop=1.3.0.58"))).....u
bce0 72 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d rl))..(defun.emms-librefm-stream
bd00 2d 67 65 74 70 6c 61 79 6c 69 73 74 2d 63 61 6c 6c 20 28 73 65 73 73 69 6f 6e 2d 69 64 29 0a 20 -getplaylist-call.(session-id)..
bd20 20 22 4d 61 6b 65 20 74 68 65 20 67 65 74 70 6c 61 79 6c 69 73 74 20 63 61 6c 6c 2e 22 0a 20 20 ."Make.the.getplaylist.call."...
bd40 28 6c 65 74 20 28 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 (let.((url-request-method."POST"
bd60 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f )).....(ignore.url-request-metho
bd80 64 29 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 0a 09 20 20 20 28 75 72 6c 2d d).....(let.((response.....(url-
bda0 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 0a 09 20 20 20 20 28 65 6d 6d retrieve-synchronously......(emm
bdc0 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 67 65 74 70 6c 61 79 6c 69 73 74 2d 73 74 72 s-librefm-stream-getplaylist-str
bde0 69 6e 67 20 73 65 73 73 69 6f 6e 2d 69 64 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 ing.session-id)))).......(setq.e
be00 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 64 65 62 75 67 0a 09 20 20 20 20 28 77 mms-librefm-stream-debug......(w
be20 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 73 70 6f 6e 73 65 0a 09 20 20 20 ith-current-buffer.response.....
be40 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 ...(buffer-substring-no-properti
be60 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 09 20 20 20 20 20 20 28 70 6f 69 6e 74 es.(point-min)............(point
be80 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 28 64 65 66 -max)))).......response)))..(def
bea0 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 68 61 6e 64 6c 65 2d 67 65 un.emms-librefm-stream-handle-ge
bec0 74 70 6c 61 79 6c 69 73 74 2d 72 65 73 70 6f 6e 73 65 20 28 72 65 73 62 75 66 29 0a 20 20 22 48 tplaylist-response.(resbuf)..."H
bee0 61 6e 64 6c 65 20 74 68 65 20 67 65 74 70 6c 61 79 6c 69 73 74 20 73 65 72 76 65 72 20 72 65 73 andle.the.getplaylist.server.res
bf00 70 6f 6e 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 62 75 66 66 65 72 70 20 72 65 ponse."...(when.(not.(bufferp.re
bf20 73 62 75 66 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 72 65 73 70 6f 6e 73 65 20 6e 6f 74 20 sbuf)).....(error."response.not.
bf40 61 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 a.buffer"))...(with-current-buff
bf60 65 72 20 72 65 73 62 75 66 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 er.resbuf.....(emms-librefm-stre
bf80 61 6d 2d 61 73 73 65 72 74 2d 68 74 74 70 29 0a 20 20 20 20 28 78 6d 6c 2d 70 61 72 73 65 2d 72 am-assert-http).....(xml-parse-r
bfa0 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 egion.(point).(point-max))))..(d
bfc0 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 67 65 74 70 6c 61 79 efun.emms-librefm-stream-getplay
bfe0 6c 69 73 74 20 28 29 0a 20 20 22 4d 61 6b 65 20 61 6e 64 20 68 61 6e 64 6c 65 20 72 61 64 69 6f list.()..."Make.and.handle.radio
c000 2e 67 65 74 50 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 .getPlaylist."...(emms-librefm-s
c020 74 72 65 61 6d 2d 68 61 6e 64 6c 65 2d 67 65 74 70 6c 61 79 6c 69 73 74 2d 72 65 73 70 6f 6e 73 tream-handle-getplaylist-respons
c040 65 0a 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 67 65 74 70 6c 61 e....(emms-librefm-stream-getpla
c060 79 6c 69 73 74 2d 63 61 6c 6c 0a 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 ylist-call.....emms-librefm-stre
c080 61 6d 2d 73 65 73 73 69 6f 6e 2d 69 64 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d am-session-id)))...;;;.---------
c0a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c0c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 58 53 -------------------------.;;;.XS
c0e0 50 46 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d PF.;;;.-------------------------
c100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c120 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 ---------.(defun.emms-librefm-st
c140 72 65 61 6d 2d 78 73 70 66 2d 66 69 6e 64 20 28 74 61 67 20 64 61 74 61 29 0a 20 20 22 52 65 74 ream-xspf-find.(tag.data)..."Ret
c160 75 72 6e 20 74 68 65 20 74 72 61 63 6b 6c 69 73 74 20 70 6f 72 74 69 6f 6e 20 6f 66 20 50 4c 41 urn.the.tracklist.portion.of.PLA
c180 59 4c 49 53 54 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 65 65 20 28 63 6f YLIST.or.nil."...(let.((tree.(co
c1a0 70 79 2d 74 72 65 65 20 64 61 74 61 29 29 0a 09 72 65 73 75 6c 74 29 0a 20 20 20 20 28 77 68 69 py-tree.data))..result).....(whi
c1c0 6c 65 20 28 61 6e 64 20 74 72 65 65 20 28 6e 6f 74 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 le.(and.tree.(not.result))......
c1e0 20 28 6c 65 74 20 28 28 74 68 69 73 20 28 63 61 72 20 74 72 65 65 29 29 29 0a 09 28 77 68 65 6e .(let.((this.(car.tree)))..(when
c200 20 28 61 6e 64 20 28 6c 69 73 74 70 20 74 68 69 73 29 0a 09 09 20 20 20 28 65 71 20 28 63 61 72 .(and.(listp.this)......(eq.(car
c220 20 74 68 69 73 29 20 74 61 67 29 29 0a 09 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 74 68 69 .this).tag))....(setq.result.thi
c240 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 20 28 63 64 72 20 74 72 65 65 29 s))).......(setq.tree.(cdr.tree)
c260 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 )).....result))..(defun.emms-lib
c280 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 74 72 61 63 6b 6c 69 73 74 20 28 70 6c 61 79 refm-stream-xspf-tracklist.(play
c2a0 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74 72 61 63 6b 6c 69 73 74 20 70 6f list)..."Return.the.tracklist.po
c2c0 72 74 69 6f 6e 20 6f 66 20 50 4c 41 59 4c 49 53 54 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 65 6d rtion.of.PLAYLIST.or.nil."...(em
c2e0 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 66 69 6e 64 20 27 74 72 61 ms-librefm-stream-xspf-find.'tra
c300 63 6b 4c 69 73 74 20 28 63 61 72 20 70 6c 61 79 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 ckList.(car.playlist)))..(defun.
c320 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 67 65 74 20 28 74 61 emms-librefm-stream-xspf-get.(ta
c340 67 20 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 61 74 61 20 61 73 73 6f g.track)..."Return.the.data.asso
c360 63 69 61 74 65 64 20 77 69 74 68 20 54 41 47 20 69 6e 20 54 52 41 43 4b 2e 22 0a 20 20 28 6e 74 ciated.with.TAG.in.TRACK."...(nt
c380 68 20 32 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 66 69 h.2.(emms-librefm-stream-xspf-fi
c3a0 6e 64 20 74 61 67 20 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 nd.tag.track)))..(defun.emms-lib
c3c0 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 63 6f 6e 76 65 72 74 2d 74 72 61 63 6b 20 28 refm-stream-xspf-convert-track.(
c3e0 74 72 61 63 6b 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 54 52 41 43 4b 20 74 6f 20 61 6e 20 45 6d track)..."Convert.TRACK.to.an.Em
c400 6d 73 20 74 72 61 63 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 74 69 6f 6e 20 28 65 6d ms.track."...(let.((location.(em
c420 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 67 65 74 20 27 6c 6f 63 61 ms-librefm-stream-xspf-get.'loca
c440 74 69 6f 6e 20 74 72 61 63 6b 29 29 0a 09 28 74 69 74 6c 65 20 20 20 20 28 65 6d 6d 73 2d 6c 69 tion.track))..(title....(emms-li
c460 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 67 65 74 20 27 74 69 74 6c 65 20 74 72 61 brefm-stream-xspf-get.'title.tra
c480 63 6b 29 29 0a 09 28 61 6c 62 75 6d 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 ck))..(album....(emms-librefm-st
c4a0 72 65 61 6d 2d 78 73 70 66 2d 67 65 74 20 27 61 6c 62 75 6d 20 74 72 61 63 6b 29 29 0a 09 28 63 ream-xspf-get.'album.track))..(c
c4c0 72 65 61 74 6f 72 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 reator..(emms-librefm-stream-xsp
c4e0 66 2d 67 65 74 20 27 63 72 65 61 74 6f 72 20 74 72 61 63 6b 29 29 0a 09 28 64 75 72 61 74 69 6f f-get.'creator.track))..(duratio
c500 6e 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 67 65 74 20 n.(emms-librefm-stream-xspf-get.
c520 27 64 75 72 61 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 65 6d 'duration.track))).....(let.((em
c540 6d 73 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 20 27 2a 74 72 61 63 ms-track.(emms-dictionary.'*trac
c560 6b 2a 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 65 6d 6d 73 k*))).......(emms-track-set.emms
c580 2d 74 72 61 63 6b 20 27 6e 61 6d 65 20 6c 6f 63 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 65 6d -track.'name.location).......(em
c5a0 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 65 6d 6d 73 2d 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 72 ms-track-set.emms-track.'info-ar
c5c0 74 69 73 74 20 63 72 65 61 74 6f 72 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d tist.creator).......(emms-track-
c5e0 73 65 74 20 65 6d 6d 73 2d 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 20 74 69 74 6c 65 set.emms-track.'info-title.title
c600 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 65 6d 6d 73 2d 74 72 61 ).......(emms-track-set.emms-tra
c620 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 20 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 28 65 6d 6d ck.'info-album.album).......(emm
c640 73 2d 74 72 61 63 6b 2d 73 65 74 20 65 6d 6d 73 2d 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 s-track-set.emms-track.'info-pla
c660 79 69 6e 67 2d 74 69 6d 65 0a 09 09 20 20 20 20 20 20 28 2f 20 28 73 74 72 69 6e 67 2d 74 6f 2d ying-time.........(/.(string-to-
c680 6e 75 6d 62 65 72 20 64 75 72 61 74 69 6f 6e 29 0a 09 09 09 20 31 30 30 30 29 29 0a 20 20 20 20 number.duration).....1000)).....
c6a0 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 65 6d 6d 73 2d 74 72 61 63 6b 20 27 74 79 ..(emms-track-set.emms-track.'ty
c6c0 70 65 20 27 75 72 6c 29 0a 20 20 20 20 20 20 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 0a 28 64 pe.'url).......emms-track)))..(d
c6e0 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 63 6f efun.emms-librefm-stream-xspf-co
c700 6e 76 65 72 74 2d 74 72 61 63 6b 6c 69 73 74 20 28 74 72 61 63 6b 6c 69 73 74 29 0a 20 20 22 43 nvert-tracklist.(tracklist)..."C
c720 6f 6e 76 65 72 74 20 54 52 41 43 4b 4c 49 53 54 20 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 45 6d onvert.TRACKLIST.to.a.list.of.Em
c740 6d 73 20 74 72 61 63 6b 73 2e 22 0a 20 20 28 6c 65 74 20 28 74 72 61 63 6b 73 29 0a 20 20 20 20 ms.tracks."...(let.(tracks).....
c760 28 6d 61 70 63 0a 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 65 29 0a 09 20 28 77 68 65 6e (mapc......#'(lambda.(e)...(when
c780 20 28 61 6e 64 20 28 6c 69 73 74 70 20 65 29 0a 09 09 20 20 20 20 28 65 71 20 27 74 72 61 63 6b .(and.(listp.e).......(eq.'track
c7a0 20 28 63 61 72 20 65 29 29 29 0a 09 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 73 0a 09 09 20 28 .(car.e))).....(setq.tracks....(
c7c0 61 70 70 65 6e 64 20 74 72 61 63 6b 73 0a 09 09 09 20 60 28 2c 28 65 6d 6d 73 2d 6c 69 62 72 65 append.tracks.....`(,(emms-libre
c7e0 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 63 6f 6e 76 65 72 74 2d 74 72 61 63 6b 20 65 29 29 fm-stream-xspf-convert-track.e))
c800 29 29 29 29 0a 20 20 20 20 20 74 72 61 63 6b 6c 69 73 74 29 0a 20 20 20 20 74 72 61 63 6b 73 29 ))))......tracklist).....tracks)
c820 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d )...;;;.------------------------
c840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c860 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 73 74 72 65 61 6d 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d ----------.;;;.stream.;;;.------
c880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c8a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 ----------------------------..(d
c8c0 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 73 65 74 2d 6c 69 62 efun.emms-librefm-stream-set-lib
c8e0 72 65 66 6d 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 65 74 75 70 refm-playlist-buffer.()..."Setup
c900 20 74 68 65 20 47 4e 55 20 46 4d 20 62 75 66 66 65 72 20 61 6e 64 20 6d 61 6b 65 20 69 74 20 60 .the.GNU.FM.buffer.and.make.it.`
c920 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 27 2e 22 0a 20 20 28 77 68 65 6e 20 emms-playlist-buffer'."...(when.
c940 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d (not.(buffer-live-p.emms-librefm
c960 2d 73 74 72 65 61 6d 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 73 -stream-playlist-buffer)).....(s
c980 65 74 71 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 70 6c 61 79 6c 69 73 74 etq.emms-librefm-stream-playlist
c9a0 2d 62 75 66 66 65 72 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 0a 09 20 -buffer....(emms-playlist-new...
c9c0 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 70 6c 61 79 6c 69 73 74 2d 62 ..emms-librefm-stream-playlist-b
c9e0 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c uffer-name)))...(setq.emms-playl
ca00 69 73 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 70 ist-buffer.emms-librefm-stream-p
ca20 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 laylist-buffer))..(defun.emms-li
ca40 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 71 75 65 75 65 20 28 29 0a 20 20 22 51 75 65 75 65 20 73 brefm-stream-queue.()..."Queue.s
ca60 74 72 65 61 6d 69 6e 67 20 74 72 61 63 6b 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b treaming.tracks."...(let.((track
ca80 6c 69 73 74 0a 09 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 list...(emms-librefm-stream-xspf
caa0 2d 74 72 61 63 6b 6c 69 73 74 0a 09 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 -tracklist....(emms-librefm-stre
cac0 61 6d 2d 67 65 74 70 6c 61 79 6c 69 73 74 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f am-getplaylist)))).....(when.(no
cae0 74 20 74 72 61 63 6b 6c 69 73 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 t.tracklist).......(setq.emms-li
cb00 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 65 6d 6d 73 2d 74 72 61 63 6b 6c 69 73 74 20 6e 69 6c 29 brefm-stream-emms-tracklist.nil)
cb20 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 72 .......(error."could.not.find.tr
cb40 61 63 6b 6c 69 73 74 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 62 72 65 66 acklist")).....(setq.emms-libref
cb60 6d 2d 73 74 72 65 61 6d 2d 65 6d 6d 73 2d 74 72 61 63 6b 6c 69 73 74 0a 09 20 20 28 65 6d 6d 73 m-stream-emms-tracklist....(emms
cb80 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 78 73 70 66 2d 63 6f 6e 76 65 72 74 2d 74 72 61 -librefm-stream-xspf-convert-tra
cba0 63 6b 6c 69 73 74 20 74 72 61 63 6b 6c 69 73 74 29 29 0a 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 69 cklist.tracklist))......(emms-li
cbc0 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 73 65 74 2d 6c 69 62 72 65 66 6d 2d 70 6c 61 79 6c 69 73 brefm-stream-set-librefm-playlis
cbe0 74 2d 62 75 66 66 65 72 29 0a 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d t-buffer)......(with-current-emm
cc00 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 s-playlist.......(goto-char.(poi
cc20 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 09 nt-max)).......(save-excursion..
cc40 28 6d 61 70 63 0a 09 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 09 20 20 20 20 20 (mapc...#'(lambda.(track).......
cc60 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 (emms-playlist-insert-track.trac
cc80 6b 29 29 0a 09 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 65 6d 6d 73 2d 74 k))...emms-librefm-stream-emms-t
cca0 72 61 63 6b 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 racklist)))))..(defun.emms-libre
ccc0 66 6d 2d 73 74 72 65 61 6d 2d 71 75 65 75 65 2d 6c 6f 61 64 65 72 20 28 29 0a 20 20 22 51 75 65 fm-stream-queue-loader.()..."Que
cce0 75 65 20 6d 6f 72 65 20 73 74 72 65 61 6d 69 6e 67 20 6d 75 73 69 63 20 69 66 20 6e 65 65 64 65 ue.more.streaming.music.if.neede
cd00 64 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 d."...(with-current-emms-playlis
cd20 74 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 t.....(goto-char.(if.emms-playli
cd40 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 0a 09 09 20 20 20 28 6f st-mode-selected-overlay......(o
cd60 76 65 72 6c 61 79 2d 73 74 61 72 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d verlay-start.emms-playlist-mode-
cd80 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 29 0a 09 09 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 selected-overlay)....(point-min)
cda0 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 )).....(when.(and.(eq.(current-b
cdc0 75 66 66 65 72 29 0a 09 09 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d uffer)......emms-librefm-stream-
cde0 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 09 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6e playlist-buffer).........(not.(n
ce00 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 6c 69 6e 65 ext-single-property-change.(line
ce20 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 09 09 09 09 09 09 20 27 65 6d 6d 73 2d 74 72 61 63 -end-position)........'emms-trac
ce40 6b 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d k))).......(emms-librefm-stream-
ce60 71 75 65 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 queue))))..(defun.emms-librefm-s
ce80 74 72 65 61 6d 20 28 73 74 61 74 69 6f 6e 29 0a 20 20 22 53 74 72 65 61 6d 20 53 54 41 54 49 4f tream.(station)..."Stream.STATIO
cea0 4e 20 66 72 6f 6d 20 61 20 47 4e 55 20 46 4d 20 73 65 72 76 65 72 2e 22 0a 20 20 28 69 6e 74 65 N.from.a.GNU.FM.server."...(inte
cec0 72 61 63 74 69 76 65 20 22 73 45 6e 74 65 72 20 73 74 61 74 69 6f 6e 20 55 52 4c 3a 20 22 29 0a ractive."sEnter.station.URL:.").
cee0 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 73 74 61 74 69 6f 6e 29 29 0a ..(when.(not.(stringp.station)).
cf00 20 20 20 20 28 65 72 72 6f 72 20 22 62 61 64 20 61 72 67 75 6d 65 6e 74 22 29 29 0a 0a 20 20 28 ....(error."bad.argument"))....(
cf20 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 add-hook.'emms-player-finished-h
cf40 6f 6f 6b 0a 09 20 20 20 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 71 75 ook......'emms-librefm-stream-qu
cf60 65 75 65 2d 6c 6f 61 64 65 72 29 0a 20 20 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 eue-loader)......(emms-librefm-s
cf80 74 72 65 61 6d 2d 74 75 6e 65 2d 68 61 6e 64 73 68 61 6b 65 29 0a 20 20 28 65 6d 6d 73 2d 6c 69 tream-tune-handshake)...(emms-li
cfa0 62 72 65 66 6d 2d 73 74 72 65 61 6d 2d 74 75 6e 65 20 73 74 61 74 69 6f 6e 29 0a 0a 20 20 28 6d brefm-stream-tune.station)....(m
cfc0 65 73 73 61 67 65 20 22 74 75 6e 65 64 20 74 6f 20 25 73 2c 20 67 65 74 74 69 6e 67 20 70 6c 61 essage."tuned.to.%s,.getting.pla
cfe0 79 6c 69 73 74 2e 2e 2e 22 0a 09 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 ylist...".....emms-librefm-strea
d000 6d 2d 73 74 61 74 69 6f 6e 2d 6e 61 6d 65 29 0a 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d m-station-name)....(emms-librefm
d020 2d 73 74 72 65 61 6d 2d 71 75 65 75 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 -stream-queue)...(with-current-e
d040 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d mms-playlist.....(emms-playlist-
d060 6d 6f 64 65 2d 70 6c 61 79 2d 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 29 29 29 0a 0a 0a 28 70 72 mode-play-current-track)))...(pr
d080 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 29 0a 0a 3b 3b 3b ovide.'emms-librefm-stream)..;;;
d0a0 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2e 65 6c 20 65 6e 64 73 20 68 65 72 .emms-librefm-stream.el.ends.her
d0c0 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d200 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 emms-24/emms-metaplaylist-mode.e
d220 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l...............................
d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
d280 30 30 32 30 35 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 31 37 00 20 30 00 00 00 0020560.00000000000.015617..0...
d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
d320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d400 3b 3b 3b 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 20 2d 2d ;;;.emms-metaplaylist-mode.el.--
d420 2d 20 41 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 6c 69 73 74 73 20 6f 66 20 45 6d 6d 73 -.A.major.mode.for.lists.of.Emms
d440 20 70 6c 61 79 6c 69 73 74 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a .playlists..-*-.lexical-binding:
d460 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 .t;.-*-..;;.Copyright.(C).2006-2
d480 30 32 31 2c 20 32 30 32 33 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 021,.2023..Free.Software.Foundat
d4a0 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 ion,.Inc...;;.Author:.Yoni.Rabki
d4c0 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 n.<yrk@gnu.org>..;;.This.file.is
d4e0 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 .part.of.EMMS...;;.EMMS.is.free.
d500 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 software;.you.can.redistribute.i
d520 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 t.and/or.;;.modify.it.under.the.
d540 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 terms.of.the.GNU.General.Public.
d560 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 License.;;.as.published.by.the.F
d580 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 ree.Software.Foundation;.either.
d5a0 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 version.3.;;.of.the.License,.or.
d5c0 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 (at.your.option).any.later.versi
d5e0 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 on...;;.EMMS.is.distributed.in.t
d600 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a he.hope.that.it.will.be.useful,.
d620 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 ;;.but.WITHOUT.ANY.WARRANTY;.wit
d640 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f hout.even.the.implied.warranty.o
d660 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 f.;;.MERCHANTABILITY.or.FITNESS.
d680 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 FOR.A.PARTICULAR.PURPOSE...See.t
d6a0 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 he.;;.GNU.General.Public.License
d6c0 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c .for.more.details...;;.You.shoul
d6e0 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e d.have.received.a.copy.of.the.GN
d700 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e U.General.Public.License.;;.alon
d720 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 g.with.EMMS;.if.not,.write.to.th
d740 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 e.Free.Software.;;.Foundation,.I
d760 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 nc.,.51.Franklin.St,.Fifth.Floor
d780 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 0a 3b 3b 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e ,.Boston,.MA.;;.02110-1301,.USA.
d7a0 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 60 65 6d 6d 73 2d 6d 65 ..;;;.Commentary:.;;.;;.`emms-me
d7c0 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 27 20 63 72 65 61 74 65 73 20 61 6e 20 69 6e 74 65 taplaylist-mode'.creates.an.inte
d7e0 72 61 63 74 69 76 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 74 68 65 0a 3b 3b 20 45 6d 6d 73 20 ractive.list.of.all.the.;;.Emms.
d800 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 2e 20 54 68 65 20 63 75 72 72 65 6e 74 6c 79 20 playlist.buffers..The.currently.
d820 61 63 74 69 76 65 20 62 75 66 66 65 72 20 69 73 0a 3b 3b 20 68 69 67 68 6c 69 67 68 74 65 64 2e active.buffer.is.;;.highlighted.
d840 20 59 6f 75 20 63 61 6e 20 63 68 6f 6f 73 65 20 61 20 62 75 66 66 65 72 20 66 72 6f 6d 20 74 68 .You.can.choose.a.buffer.from.th
d860 65 20 6c 69 73 74 20 77 69 74 68 20 52 45 54 20 61 6e 64 20 67 65 74 0a 3b 3b 20 74 61 6b 65 6e e.list.with.RET.and.get.;;.taken
d880 20 74 68 65 72 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d .there...;;;.Code:.(require.'emm
d8a0 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 s).(require.'emms-playlist-mode)
d8c0 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...;;;.-------------------------
d8e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
d900 3b 3b 3b 20 56 61 72 69 61 62 6c 65 73 2c 20 63 75 73 74 6f 6d 69 73 61 74 69 6f 6e 20 61 6e 64 ;;;.Variables,.customisation.and
d920 20 66 61 63 65 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .faces.;;;.---------------------
d940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
d960 2d 2d 2d 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d ---.(defgroup.emms-metaplaylist-
d980 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 2a 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 mode.nil..."*The.Emacs.Multimedi
d9a0 61 20 53 79 73 74 65 6d 20 6d 65 74 61 2d 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 2e 22 0a 20 20 a.System.meta-playlist.mode."...
d9c0 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d :prefix."emms-metaplaylist-mode-
d9e0 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 75 6c 74 69 6d 65 64 69 61 29 0a 0a 28 64 65 66 63 75 73 "...:group.'multimedia)..(defcus
da00 74 6f 6d 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 62 75 66 66 65 tom.emms-metaplaylist-mode-buffe
da20 72 2d 6e 61 6d 65 20 22 2a 45 6d 6d 73 20 50 6c 61 79 6c 69 73 74 20 42 75 66 66 65 72 73 2a 22 r-name."*Emms.Playlist.Buffers*"
da40 0a 20 20 22 4e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 69 6e 20 77 68 69 63 68 20 ..."Name.of.the.buffer.in.which.
da60 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 6c 69 73 74 65 64 2e 22 0a Emms.playlists.will.be.listed.".
da80 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d ..:type.'string)..(defcustom.emm
daa0 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 6e 69 6c 0a 20 20 s-metaplaylist-mode-hooks.nil...
dac0 22 4c 69 73 74 20 6f 66 20 68 6f 6f 6b 73 20 74 6f 20 72 75 6e 20 6f 6e 20 65 6e 74 72 79 20 74 "List.of.hooks.to.run.on.entry.t
dae0 6f 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 22 0a 20 20 3a 74 79 o.emms-metaplaylist-mode."...:ty
db00 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 66 61 63 65 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 pe.'hook)..(defface.emms-metapla
db20 79 6c 69 73 74 2d 6d 6f 64 65 2d 66 61 63 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c ylist-mode-face...'((((class.col
db40 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 28 3a 66 6f or).(background.dark))......(:fo
db60 72 65 67 72 6f 75 6e 64 20 22 41 6e 74 69 71 75 65 57 68 69 74 65 33 22 29 29 0a 20 20 20 20 28 reground."AntiqueWhite3")).....(
db80 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 ((class.color).(background.light
dba0 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65 64 33 22 29 29 0a 20 20 ))......(:foreground."red3"))...
dbc0 20 20 28 28 28 74 79 70 65 20 74 74 79 29 20 28 63 6c 61 73 73 20 6d 6f 6e 6f 29 29 0a 20 20 20 ..(((type.tty).(class.mono))....
dbe0 20 20 28 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 29 29 0a 20 20 20 20 28 74 20 28 3a 62 ..(:inverse-video.t)).....(t.(:b
dc00 61 63 6b 67 72 6f 75 6e 64 20 22 57 68 69 74 65 53 6d 6f 6b 65 22 29 29 29 0a 20 20 22 46 61 63 ackground."WhiteSmoke")))..."Fac
dc20 65 20 66 6f 72 20 74 68 65 20 62 75 66 66 65 72 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 70 6c e.for.the.buffer.names.in.the.pl
dc40 61 79 6c 69 73 74 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 66 61 63 65 20 65 6d 6d 73 aylists.buffer.")..(defface.emms
dc60 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 75 72 72 65 6e 74 2d 66 61 63 65 0a -metaplaylist-mode-current-face.
dc80 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 ..'((((class.color).(background.
dca0 64 61 72 6b 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65 64 32 22 29 dark))......(:foreground."red2")
dcc0 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e ).....(((class.color).(backgroun
dce0 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 72 65 64 d.light))......(:background."red
dd00 33 22 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 77 68 69 74 65 22 29 29 0a 20 20 20 20 28 28 28 3".:foreground."white")).....(((
dd20 74 79 70 65 20 74 74 79 29 20 28 63 6c 61 73 73 20 6d 6f 6e 6f 29 29 0a 20 20 20 20 20 28 3a 69 type.tty).(class.mono))......(:i
dd40 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 29 29 0a 20 20 20 20 28 74 20 28 3a 62 61 63 6b 67 72 nverse-video.t)).....(t.(:backgr
dd60 6f 75 6e 64 20 22 72 65 64 33 22 29 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 74 68 65 20 63 ound."red3")))..."Face.for.the.c
dd80 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 urrent.buffer.name.in.the.playli
dda0 73 74 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d sts.buffer.")...;;;.------------
ddc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
dde0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 4b 65 79 6d 61 70 0a 3b 3b 3b 20 2d 2d 2d 2d ------------.;;;.Keymap.;;;.----
de00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
de20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 76 61 72 20 65 6d 6d --------------------.(defvar.emm
de40 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 s-metaplaylist-mode-map...(let.(
de60 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 (map.(make-sparse-keymap))).....
de80 28 73 65 74 2d 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 6d 61 70 20 74 65 78 74 2d 6d 6f 64 65 (set-keymap-parent.map.text-mode
dea0 2d 6d 61 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 -map).....(define-key.map.(kbd."
dec0 6e 22 29 20 20 20 23 27 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b n")...#'next-line).....(define-k
dee0 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 20 20 23 27 70 72 65 76 69 6f 75 73 2d 6c 69 ey.map.(kbd."p")...#'previous-li
df00 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 ne).....(define-key.map.(kbd."RE
df20 54 22 29 20 23 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 74 T").#'emms-metaplaylist-mode-got
df40 6f 2d 63 75 72 72 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 o-current).....(define-key.map.(
df60 6b 62 64 20 22 53 50 43 22 29 20 23 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d kbd."SPC").#'emms-metaplaylist-m
df80 6f 64 65 2d 73 65 74 2d 61 63 74 69 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 ode-set-active).....(define-key.
dfa0 6d 61 70 20 28 6b 62 64 20 22 67 22 29 20 20 20 23 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c map.(kbd."g")...#'emms-metaplayl
dfc0 69 73 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 ist-mode-update).....(define-key
dfe0 20 6d 61 70 20 28 6b 62 64 20 22 43 22 29 20 20 20 23 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 .map.(kbd."C")...#'emms-metaplay
e000 6c 69 73 74 2d 6d 6f 64 65 2d 6e 65 77 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e list-mode-new-buffer).....(defin
e020 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 6b 22 29 20 23 27 65 6d 6d 73 2d 6d 65 74 e-key.map.(kbd."C-k").#'emms-met
e040 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 29 0a 20 20 20 20 aplaylist-mode-kill-buffer).....
e060 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 22 29 20 20 20 23 27 65 6d (define-key.map.(kbd."c")...#'em
e080 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 ms-metaplaylist-mode-center-curr
e0a0 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 ent).....(define-key.map.(kbd."q
e0c0 22 29 20 20 20 23 27 6b 69 6c 6c 2d 74 68 69 73 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 ")...#'kill-this-buffer).....(de
e0e0 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 76 22 29 20 20 20 23 27 65 6d 6d 73 2d fine-key.map.(kbd."v")...#'emms-
e100 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 74 6f 29 0a 20 20 20 20 28 64 65 66 metaplaylist-mode-goto).....(def
e120 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3f 22 29 20 20 20 23 27 64 65 73 63 72 69 ine-key.map.(kbd."?")...#'descri
e140 62 65 2d 6d 6f 64 65 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 be-mode).....map)..."Keymap.for.
e160 60 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 27 2e 22 29 0a 0a 0a 3b 3b `emms-metaplaylist-mode'.")...;;
e180 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.------------------------------
e1a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 4d --------------------------.;;;.M
e1c0 65 74 61 70 6c 61 79 6c 69 73 74 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d etaplaylist.;;;.----------------
e1e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
e200 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 --------.(defun.emms-metaplaylis
e220 74 2d 6d 6f 64 65 2d 67 6f 74 6f 2d 63 75 72 72 65 6e 74 20 28 29 0a 20 20 22 53 77 69 74 63 68 t-mode-goto-current.()..."Switch
e240 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 .to.the.buffer.at.point."...(int
e260 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 67 65 74 2d 62 eractive)...(let.((buffer.(get-b
e280 75 66 66 65 72 0a 09 09 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 uffer....(buffer-substring.(line
e2a0 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 09 09 09 09 20 20 20 28 6c 69 6e -beginning-position)........(lin
e2c0 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c e-end-position))))).....(emms-pl
e2e0 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 aylist-set-playlist-buffer.buffe
e300 72 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 r).....(switch-to-buffer.buffer)
e320 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 ))..(defun.emms-metaplaylist-mod
e340 65 2d 67 6f 74 6f 20 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 e-goto.()..."Visit.the.playlist.
e360 77 69 74 68 6f 75 74 20 6d 61 6b 69 6e 67 20 69 74 20 63 75 72 72 65 6e 74 2e 22 0a 20 20 28 69 without.making.it.current."...(i
e380 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 67 65 74 nteractive)...(let.((buffer.(get
e3a0 2d 62 75 66 66 65 72 0a 09 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 -buffer...........(buffer-substr
e3c0 69 6e 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 09 09 ing.(line-beginning-position)...
e3e0 09 09 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 29 0a 20 20 20 .....(line-end-position)))))....
e400 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 29 0a 0a 28 64 .(switch-to-buffer.buffer)))..(d
e420 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 77 72 69 74 efun.emms-metaplaylist-mode-writ
e440 65 20 28 70 6c 61 79 6c 69 73 74 73 29 0a 20 20 22 50 72 69 6e 74 20 74 68 65 20 73 6f 72 74 65 e.(playlists)..."Print.the.sorte
e460 64 20 6c 69 73 74 20 6f 66 20 50 4c 41 59 4c 49 53 54 53 2e 22 0a 20 20 28 64 65 6c 65 74 65 2d d.list.of.PLAYLISTS."...(delete-
e480 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a region.(point-min).(point-max)).
e4a0 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 62 75 66 29 0a 09 20 20 28 6c 65 74 20 28 28 ..(mapc.(lambda.(buf)....(let.((
e4c0 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 09 20 20 20 20 28 69 6e 73 65 inhibit-read-only.t))......(inse
e4e0 72 74 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 0a 09 20 20 20 20 28 61 64 64 2d rt.(buffer-name.buf))......(add-
e500 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 0a 09 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 text-properties.......(line-begi
e520 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 nning-position).(line-end-positi
e540 6f 6e 29 0a 09 20 20 20 20 20 28 6c 69 73 74 20 27 66 61 63 65 0a 09 09 20 20 20 28 69 66 20 28 on).......(list.'face......(if.(
e560 65 71 20 62 75 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 09 09 20 eq.buf.emms-playlist-buffer)....
e580 20 20 20 20 20 20 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 75 ......'emms-metaplaylist-mode-cu
e5a0 72 72 65 6e 74 2d 66 61 63 65 0a 09 09 20 20 20 20 20 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 rrent-face........'emms-metaplay
e5c0 6c 69 73 74 2d 6d 6f 64 65 2d 66 61 63 65 29 29 29 0a 09 20 20 20 20 28 6e 65 77 6c 69 6e 65 29 list-mode-face)))......(newline)
e5e0 29 29 0a 09 70 6c 61 79 6c 69 73 74 73 29 29 0a 0a 3b 3b 20 45 6d 6d 73 27 20 6c 69 73 74 20 63 ))..playlists))..;;.Emms'.list.c
e600 68 61 6e 67 65 73 20 6f 72 64 65 72 2c 20 61 6e 64 20 74 68 61 74 27 73 20 4f 4b 2c 20 62 75 74 hanges.order,.and.that's.OK,.but
e620 20 77 65 20 77 61 6e 74 20 73 6f 6d 65 74 68 69 6e 67 0a 3b 3b 20 73 74 61 62 6c 65 20 66 6f 72 .we.want.something.;;.stable.for
e640 20 64 69 73 70 6c 61 79 20 70 75 72 70 6f 73 65 73 2e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d .display.purposes..(defun.emms-m
e660 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 6f 72 74 65 64 2d 62 75 66 66 65 72 2d 6c etaplaylist-mode-sorted-buffer-l
e680 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 6f 72 74 65 64 20 6c 69 73 74 20 6f ist.()..."Return.a.sorted.list.o
e6a0 66 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 73 6f 72 74 0a 20 20 20 f.playlist.buffers."...(sort....
e6c0 28 63 6f 70 79 2d 74 72 65 65 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 (copy-tree.....(emms-playlist-bu
e6e0 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 ffer-list))....#'(lambda.(a.b)..
e700 20 20 20 20 20 20 28 73 74 72 69 6e 67 3c 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 61 29 0a 09 ......(string<.(buffer-name.a)..
e720 09 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d .(buffer-name.b)))))..(defun.emm
e740 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 s-metaplaylist-mode-center-curre
e760 6e 74 20 28 29 0a 20 20 22 43 65 6e 74 65 72 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 nt.()..."Center.on.the.current.p
e780 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a laylist.buffer"...(interactive).
e7a0 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 ..(when.(buffer-name.emms-playli
e7c0 73 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 20 6e 69 6c 29 29 0a 20 20 st-buffer).....(let.((p.nil))...
e7e0 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 09 28 67 6f 74 6f 2d 63 68 61 72 20 ....(save-excursion..(goto-char.
e800 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 28 73 65 74 71 20 70 20 28 73 65 61 72 63 68 2d 66 6f (point-min))..(setq.p.(search-fo
e820 72 77 61 72 64 2d 72 65 67 65 78 70 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 0a 09 09 09 09 09 rward-regexp.(regexp-quote......
e840 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 (buffer-name.emms-playlist-buffe
e860 72 29 29 0a 09 09 09 09 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 29 29 0a r))............(point-max).t))).
e880 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 70 29 20 28 65 72 72 6f 72 20 22 63 61 6e 6e ......(when.(not.p).(error."cann
e8a0 6f 74 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 ot.not.find.the.current.playlist
e8c0 20 62 75 66 66 65 72 22 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 29 0a 20 .buffer")).......(goto-char.p)..
e8e0 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d .....(goto-char.(line-beginning-
e900 70 6f 73 69 74 69 6f 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 position)))))..(defun.emms-metap
e920 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 72 65 61 74 65 20 28 29 0a 20 20 22 43 72 65 61 74 65 laylist-mode-create.()..."Create
e940 20 74 68 65 20 6d 65 74 61 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c .the.meta-playlist.buffer."...(l
e960 65 74 20 28 28 6e 61 6d 65 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 et.((name.emms-metaplaylist-mode
e980 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 09 28 70 6c 61 79 6c 69 73 74 73 20 28 65 6d 6d 73 2d -buffer-name)..(playlists.(emms-
e9a0 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 6f 72 74 65 64 2d 62 75 66 66 65 72 2d metaplaylist-mode-sorted-buffer-
e9c0 6c 69 73 74 29 29 29 0a 20 20 20 20 28 69 66 20 70 6c 61 79 6c 69 73 74 73 0a 09 28 77 69 74 68 list))).....(if.playlists..(with
e9e0 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 -current-buffer.(get-buffer-crea
ea00 74 65 20 6e 61 6d 65 29 0a 09 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d te.name)....(emms-metaplaylist-m
ea20 6f 64 65 29 0a 09 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d ode)....(emms-metaplaylist-mode-
ea40 77 72 69 74 65 20 70 6c 61 79 6c 69 73 74 73 29 0a 09 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c write.playlists)....(emms-metapl
ea60 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 29 0a 09 20 20 28 aylist-mode-center-current)....(
ea80 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e current-buffer)).......(error."N
eaa0 6f 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 22 29 29 29 29 0a 0a 28 64 o.Emms.playlist.buffers"))))..(d
eac0 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 61 73 73 65 efun.emms-metaplaylist-mode-asse
eae0 72 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 41 73 73 65 72 74 20 74 68 61 74 20 77 65 20 61 rt-buffer.()..."Assert.that.we.a
eb00 72 65 20 69 6e 20 74 68 65 20 6d 65 74 61 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 20 62 75 66 66 re.in.the.metaplaylist.mode.buff
eb20 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 er."...(when.(not.(eq.(current-b
eb40 75 66 66 65 72 29 0a 09 09 20 28 67 65 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 6d 65 74 61 70 uffer)....(get-buffer.emms-metap
eb60 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 laylist-mode-buffer-name))).....
eb80 28 65 72 72 6f 72 20 22 6e 6f 74 20 74 68 65 20 6d 65 74 61 6c 70 6c 61 79 6c 69 73 74 20 62 75 (error."not.the.metalplaylist.bu
eba0 66 66 65 72 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 ffer")))..(defun.emms-metaplayli
ebc0 73 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 20 st-mode-update.()..."Update.the.
ebe0 6d 65 74 61 6c 70 6c 61 79 6c 69 73 74 20 64 69 73 70 6c 61 79 2e 22 0a 20 20 28 69 6e 74 65 72 metalplaylist.display."...(inter
ec00 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 active)...(emms-metaplaylist-mod
ec20 65 2d 61 73 73 65 72 74 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 e-assert-buffer)...(let.((inhibi
ec40 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c t-read-only.t)).....(emms-metapl
ec60 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 77 72 69 74 65 0a 20 20 20 20 20 28 65 6d 6d 73 2d 6d 65 74 aylist-mode-write......(emms-met
ec80 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 6f 72 74 65 64 2d 62 75 66 66 65 72 2d 6c 69 73 aplaylist-mode-sorted-buffer-lis
eca0 74 29 29 29 0a 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 t)))...(emms-metaplaylist-mode-c
ecc0 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 enter-current))..(defun.emms-met
ece0 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 29 0a 20 20 aplaylist-mode-kill-buffer.()...
ed00 22 4b 69 6c 6c 20 74 68 65 20 62 75 66 66 65 72 20 61 74 20 70 6f 69 6e 74 22 0a 20 20 28 69 6e "Kill.the.buffer.at.point"...(in
ed20 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 67 65 74 2d teractive)...(let.((buffer.(get-
ed40 62 75 66 66 65 72 0a 09 09 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e buffer....(buffer-substring.(lin
ed60 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 09 09 09 09 20 20 20 28 6c 69 e-beginning-position)........(li
ed80 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 ne-end-position))))).....(when.(
eda0 6e 6f 74 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 61 6e 27 74 20 not.buffer).......(error."can't.
edc0 66 69 6e 64 20 62 75 66 66 65 72 20 61 74 20 70 6f 69 6e 74 22 29 29 0a 20 20 20 20 28 69 66 20 find.buffer.at.point")).....(if.
ede0 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 6b 69 6c 6c 20 70 6c 61 79 6c 69 73 74 (y-or-n-p.(format."kill.playlist
ee00 20 62 75 66 66 65 72 20 5c 22 25 73 5c 22 3f 22 0a 09 09 09 20 20 28 62 75 66 66 65 72 2d 6e 61 .buffer.\"%s\"?"......(buffer-na
ee20 6d 65 20 62 75 66 66 65 72 29 29 29 0a 09 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 66 65 me.buffer)))..(kill-buffer.buffe
ee40 72 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 75 66 66 65 72 20 6b 69 6c 6c 20 61 r).......(message."Buffer.kill.a
ee60 62 6f 72 74 65 64 2e 22 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 borted.")).....(emms-metaplaylis
ee80 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d t-mode-update)))...;;;.---------
eea0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
eec0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 50 6c 61 79 6c 69 73 74 20 4d 61 6e ---------------.;;;.Playlist.Man
eee0 61 67 65 6d 65 6e 74 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d agement.;;;.--------------------
ef00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
ef20 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f ----.(defun.emms-metaplaylist-mo
ef40 64 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 22 43 de-new-buffer.(buffer-name)..."C
ef60 72 65 61 74 65 73 20 61 20 6e 65 77 20 62 75 66 66 65 72 20 70 6c 61 79 6c 69 73 74 20 62 75 66 reates.a.new.buffer.playlist.buf
ef80 66 65 72 20 42 55 46 46 45 52 2d 4e 41 4d 45 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 fer.BUFFER-NAME."...(interactive
efa0 20 22 73 42 75 66 66 65 72 20 4e 61 6d 65 3a 20 22 29 0a 20 20 28 69 66 20 28 67 65 74 2d 62 75 ."sBuffer.Name:.")...(if.(get-bu
efc0 66 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 ffer.buffer-name).......(error."
efe0 42 75 66 66 65 72 20 6d 75 73 74 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 0a 20 20 20 20 28 6c 65 Buffer.must.not.exist.").....(le
f000 74 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 62 75 66 66 65 t.((buf.(get-buffer-create.buffe
f020 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 r-name))).......(with-current-bu
f040 66 66 65 72 20 62 75 66 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 09 ffer.buf..(emms-playlist-mode)..
f060 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 74 29 29 (setq.emms-playlist-buffer-p.t))
f080 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f ).....(emms-metaplaylist-mode-go
f0a0 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 70 ).....(emms-metaplaylist-mode-up
f0c0 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 date)))..(defun.emms-metaplaylis
f0e0 74 2d 6d 6f 64 65 2d 73 65 74 2d 61 63 74 69 76 65 20 28 29 0a 20 20 22 53 65 74 20 74 68 65 20 t-mode-set-active.()..."Set.the.
f100 62 75 66 66 65 72 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 62 65 20 74 68 65 20 61 63 74 69 76 65 buffer.at.point.to.be.the.active
f120 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 .playlist."...(interactive)...(e
f140 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 mms-playlist-set-playlist-buffer
f160 0a 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e ....(get-buffer.(buffer-substrin
f180 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e g.(line-beginning-position).(lin
f1a0 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 e-end-position))))...(emms-metap
f1c0 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d laylist-mode-update))...;;;.----
f1e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
f200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 4d 6f 64 65 20 65 6e --------------------.;;;.Mode.en
f220 74 72 79 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d try.;;;.------------------------
f240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
f260 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 .(defun.emms-metaplaylist-mode-g
f280 6f 20 28 29 0a 20 20 22 53 69 6e 67 6c 65 20 65 6e 74 72 79 20 70 6f 69 6e 74 20 74 6f 20 74 68 o.()..."Single.entry.point.to.th
f2a0 65 20 6d 65 74 61 70 6c 61 79 6c 69 73 74 20 69 6e 74 65 72 66 61 63 65 2e 22 0a 20 20 28 69 6e e.metaplaylist.interface."...(in
f2c0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6d 70 6d 2d 62 75 66 66 65 72 20 28 teractive)...(let.((mpm-buffer.(
f2e0 67 65 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 get-buffer.emms-metaplaylist-mod
f300 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 6d 70 6d 2d 62 75 66 e-buffer-name))).....(if.mpm-buf
f320 66 65 72 0a 09 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6d 70 6d 2d 62 75 fer..(with-current-buffer.mpm-bu
f340 66 66 65 72 0a 09 20 20 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d ffer....(emms-metaplaylist-mode-
f360 75 70 64 61 74 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 70 6d 2d 62 75 66 66 65 72 20 update)).......(setq.mpm-buffer.
f380 28 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 72 65 61 74 65 29 29 (emms-metaplaylist-mode-create))
f3a0 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 6d 70 6d 2d 62 75 66 66 ).....(switch-to-buffer.mpm-buff
f3c0 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d er)))..(defun.emms-metaplaylist-
f3e0 6d 6f 64 65 20 28 29 0a 20 20 22 41 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 45 6d 6d 73 mode.()..."A.major.mode.for.Emms
f400 20 70 6c 61 79 6c 69 73 74 73 2e 0a 0a 5c 5c 7b 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 .playlists...\\{emms-metaplaylis
f420 74 2d 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 3b 3b 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 t-mode-map}"...;;..(interactive)
f440 0a 20 20 28 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 29 0a 0a 20 ...(kill-all-local-variables)...
f460 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 .(use-local-map.emms-metaplaylis
f480 74 2d 6d 6f 64 65 2d 6d 61 70 29 0a 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 t-mode-map)...(setq.major-mode.'
f4a0 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 0a 09 6d 6f 64 65 2d 6e 61 6d emms-metaplaylist-mode..mode-nam
f4c0 65 20 22 45 6d 6d 73 2d 4d 65 74 61 50 6c 61 79 6c 69 73 74 22 29 0a 0a 20 20 28 73 65 74 71 20 e."Emms-MetaPlaylist")....(setq.
f4e0 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b buffer-read-only.t)....(run-hook
f500 73 20 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 29 s.'emms-metaplaylist-mode-hooks)
f520 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d )...(provide.'emms-metaplaylist-
f540 6d 6f 64 65 29 0a 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f mode)...;;;.emms-metaplaylist-mo
f560 64 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 de.el.ends.here.................
f580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6d 61 72 6b 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-mark.el............
f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
f680 30 30 32 33 36 32 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 32 32 00 20 30 00 00 00 0023623.00000000000.013122..0...
f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
f720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f800 3b 3b 3b 20 65 6d 6d 73 2d 6d 61 72 6b 2e 65 6c 20 2d 2d 2d 20 6d 61 72 6b 20 74 72 61 63 6b 20 ;;;.emms-mark.el.---.mark.track.
f820 6c 69 6b 65 20 64 69 72 65 64 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a like.dired..-*-.lexical-binding:
f840 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 .t;.-*-..;;.Copyright.(C).2006-2
f860 30 32 33 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 023..Free.Software.Foundation,.I
f880 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 65 20 57 65 6e 62 69 6e 20 3c 77 65 6e nc..;;.;;.Author:.Ye.Wenbin.<wen
f8a0 62 69 6e 79 65 40 31 36 33 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 binye@163.com>..;;.This.file.is.
f8c0 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 part.of.EMMS...;;.This.program.i
f8e0 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 s.free.software;.you.can.redistr
f900 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 ibute.it.and/or.modify.;;.it.und
f920 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 er.the.terms.of.the.GNU.General.
f940 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b Public.License.as.published.by.;
f960 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 ;.the.Free.Software.Foundation;.
f980 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 either.version.3,.or.(at.your.op
f9a0 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b tion).;;.any.later.version..;;.;
f9c0 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e ;.This.program.is.distributed.in
f9e0 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c .the.hope.that.it.will.be.useful
fa00 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 ,.;;.but.WITHOUT.ANY.WARRANTY;.w
fa20 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 ithout.even.the.implied.warranty
fa40 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 .of.;;.MERCHANTABILITY.or.FITNES
fa60 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 S.FOR.A.PARTICULAR.PURPOSE...See
fa80 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .the.;;.GNU.General.Public.Licen
faa0 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 se.for.more.details..;;.;;.You.s
fac0 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 hould.have.received.a.copy.of.th
fae0 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
fb00 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c along.with.this.program;.if.not,
fb20 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 .write.to.the.Free.Software.;;.F
fb40 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 oundation,.Inc.,.675.Mass.Ave,.C
fb60 61 6d 62 72 69 64 67 65 2c 20 4d 41 20 30 32 31 33 39 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f ambridge,.MA.02139,.USA...;;;.Co
fb80 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 50 72 6f 76 69 64 65 20 6d 61 72 6b 20 6f 70 65 72 61 mmentary:..;;.Provide.mark.opera
fba0 74 69 6f 6e 20 74 6f 20 74 72 61 63 6b 73 0a 0a 3b 3b 20 50 75 74 20 74 68 69 73 20 66 69 6c 65 tion.to.tracks..;;.Put.this.file
fbc0 20 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 61 64 2d 70 61 74 68 20 61 6e 64 20 74 68 65 20 66 6f 6c .into.your.load-path.and.the.fol
fbe0 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 73 3a 0a 3b 3b 20 20 20 lowing.into.your.~/.emacs:.;;...
fc00 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 29 0a 0a 3b 3b 20 54 6f 20 61 63 74 69 (require.'emms-mark)..;;.To.acti
fc20 76 61 74 65 20 69 74 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 6f vate.it.for.the.current.buffer.o
fc40 6e 6c 79 2c 20 64 6f 3a 0a 3b 3b 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 29 0a 0a nly,.do:.;;...(emms-mark-mode)..
fc60 3b 3b 20 54 6f 20 6d 61 6b 65 20 74 68 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 45 4d 4d 53 ;;.To.make.this.the.default.EMMS
fc80 20 6d 6f 64 65 2c 20 64 6f 3a 0a 3b 3b 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c .mode,.do:.;;...(setq.emms-playl
fca0 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6d 61 72 ist-default-major-mode.'emms-mar
fcc0 6b 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d k-mode)..;;;.Code:..(provide.'em
fce0 6d 73 2d 6d 61 72 6b 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 ms-mark).(require.'cl-lib).(requ
fd00 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 ire.'emms).(require.'emms-playli
fd20 73 74 2d 6d 6f 64 65 29 0a 0a 3b 3b 7b 7b 7b 20 20 73 65 74 20 6e 65 77 20 64 65 73 63 72 69 70 st-mode)..;;{{{..set.new.descrip
fd40 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 74 tion-function.(defun.emms-mark-t
fd60 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 rack-description.(track)..."Retu
fd80 72 6e 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 rn.a.description.of.the.current.
fda0 74 72 61 63 6b 2e 22 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e 6f 74 20 28 65 71 20 28 64 track."...(cl-assert.(not.(eq.(d
fdc0 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 efault-value.'emms-track-descrip
fde0 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 29 0a 09 09 20 20 20 20 20 20 27 65 6d 6d 73 2d 6d 61 72 tion-function).........'emms-mar
fe00 6b 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 29 29 0a 09 20 20 20 20 20 6e 69 6c 20 k-track-description)).......nil.
fe20 28 63 6f 6e 63 61 74 20 22 44 6f 20 6e 6f 74 20 73 65 74 20 60 65 6d 6d 73 2d 74 72 61 63 6b 2d (concat."Do.not.set.`emms-track-
fe40 73 65 6c 65 63 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 27 20 74 6f 20 62 65 22 0a 09 09 09 20 22 selection-function'.to.be"....."
fe60 20 65 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 29 29 .emms-mark-track-description."))
fe80 0a 20 20 28 63 6f 6e 63 61 74 20 22 20 20 22 20 28 66 75 6e 63 61 6c 6c 20 28 64 65 66 61 75 6c ...(concat."..".(funcall.(defaul
fea0 74 2d 76 61 6c 75 65 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2d t-value.'emms-track-description-
fec0 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 function).......................
fee0 20 20 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 75 70 64 ..track)))..(defun.emms-mark-upd
ff00 61 74 65 2d 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 ate-descriptions.()..."Update.th
ff20 65 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 63 75 72 72 e.track.descriptions.in.the.curr
ff40 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 ent.buffer."...(emms-with-inhibi
ff60 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e t-read-only-t....(save-excursion
ff80 0a 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
ffa0 20 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 28 65 6d 6d ...(emms-walk-tracks........(emm
ffc0 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 29 29 29 29 29 0a 3b 3b 7d s-playlist-update-track))))).;;}
ffe0 7d 7d 0a 0a 3b 3b 7b 7b 7b 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 6d 61 72 6b 20 74 72 61 63 }}..;;{{{.functions.to.mark.trac
10000 6b 73 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 68 61 72 20 3f 2a 29 0a 28 64 ks.(defvar.emms-mark-char.?*).(d
10020 65 66 76 61 72 20 65 6d 6d 73 2d 6d 61 72 6b 2d 66 61 63 65 2d 61 6c 69 73 74 0a 20 20 27 28 28 efvar.emms-mark-face-alist...'((
10040 3f 2a 20 2e 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 77 61 72 6e 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 ?*...font-lock-warning-face)....
10060 20 28 3f 5c 30 34 30 20 2e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 66 61 .(?\040...emms-playlist-track-fa
10080 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 20 28 26 ce)))..(defun.emms-mark-track.(&
100a0 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 4d 61 72 6b 20 74 68 65 20 63 75 72 72 65 6e optional.arg)..."Mark.the.curren
100c0 74 20 74 72 61 63 6b 2e 0a 49 66 20 41 52 47 20 69 73 20 70 6f 73 69 74 69 76 65 2c 20 61 6c 73 t.track..If.ARG.is.positive,.als
100e0 6f 20 6d 61 72 6b 20 74 68 65 20 6e 65 78 74 20 41 52 47 2d 31 20 74 72 61 63 6b 73 20 61 73 20 o.mark.the.next.ARG-1.tracks.as.
10100 77 65 6c 6c 2e 0a 49 66 20 41 52 47 20 69 73 20 6e 65 67 61 74 69 76 65 2c 20 61 6c 73 6f 20 6d well..If.ARG.is.negative,.also.m
10120 61 72 6b 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 41 52 47 2d 31 20 74 72 61 63 6b 73 2e 22 0a ark.the.previous.ARG-1.tracks.".
10140 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 6f 72 20 61 72 67 20 28 73 ..(interactive."p")...(or.arg.(s
10160 65 74 71 20 61 72 67 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 66 61 63 65 20 28 61 73 73 6f 63 etq.arg.1))...(let.((face.(assoc
10180 2d 64 65 66 61 75 6c 74 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 68 61 72 20 65 6d 6d 73 2d 6d 61 72 -default.emms-mark-char.emms-mar
101a0 6b 2d 66 61 63 65 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2d 72 65 k-face-alist)).........buffer-re
101c0 61 64 2d 6f 6e 6c 79 20 74 72 61 63 6b 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ad-only.track).....(save-excursi
101e0 6f 6e 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 on.......(beginning-of-line)....
10200 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 ...(while.(and.(not.(eobp)).....
10220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 61 72 67 20 30 29 29 0a 20 20 20 20 20 20 ..............(/=.arg.0)).......
10240 20 20 28 73 65 74 71 20 74 72 61 63 6b 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 ..(setq.track.(get-text-property
10260 20 28 70 6f 69 6e 74 29 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 28 .(point).'emms-track)).........(
10280 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 delete-char.1).........(insert.(
102a0 65 6d 6d 73 2d 70 72 6f 70 65 72 74 69 7a 65 20 28 73 74 72 69 6e 67 20 65 6d 6d 73 2d 6d 61 72 emms-propertize.(string.emms-mar
102c0 6b 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k-char).........................
102e0 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 29 0a 20 20 20 .........'emms-track.track))....
10300 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 0a 20 20 20 20 20 20 20 20 28 .....(backward-char.1).........(
10320 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 72 6f 70 if.(>.arg.0).............;;.Prop
10340 65 72 74 69 7a 69 6e 67 20 66 6f 72 77 61 72 64 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ertizing.forward................
10360 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 (put-text-property.(point)......
10380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e ..........................(progn
103a0 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 .(forward-line.1).(point))......
103c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 ..........................'face.
103e0 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2e 2e 2e 20 61 6e 64 20 62 61 63 6b 77 face)...........;;.....and.backw
10400 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 73 61 76 65 ard...........(let.((start.(save
10420 2d 65 78 63 75 72 73 69 6f 6e 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 20 28 70 6f 69 6e 74 29 -excursion.(end-of-line).(point)
10440 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 ))).............(put-text-proper
10460 74 79 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 20 28 70 ty.(progn.(beginning-of-line).(p
10480 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oint))..........................
104a0 20 20 20 20 20 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......start.....................
104c0 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 ...........'face.face)).........
104e0 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 ..(forward-line.-1)).........(se
10500 74 71 20 61 72 67 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 tq.arg.(if.(>.arg.0)............
10520 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........(1-.arg).............
10540 20 20 20 20 20 20 20 20 28 31 2b 20 61 72 67 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ........(1+.arg)))))))..(defun.e
10560 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b 2d 74 72 61 63 6b 20 28 26 6f 70 74 69 6f 6e 61 6c mms-mark-unmark-track.(&optional
10580 20 61 72 67 29 0a 20 20 22 55 6e 6d 61 72 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 .arg)..."Unmark.the.current.trac
105a0 6b 2e 0a 49 66 20 41 52 47 20 69 73 20 70 6f 73 69 74 69 76 65 2c 20 61 6c 73 6f 20 75 6e 6d 61 k..If.ARG.is.positive,.also.unma
105c0 72 6b 20 74 68 65 20 6e 65 78 74 20 41 52 47 2d 31 20 74 72 61 63 6b 73 20 61 73 20 77 65 6c 6c rk.the.next.ARG-1.tracks.as.well
105e0 2e 0a 49 66 20 41 52 47 20 69 73 20 6e 65 67 61 74 69 76 65 2c 20 61 6c 73 6f 20 75 6e 6d 61 72 ..If.ARG.is.negative,.also.unmar
10600 6b 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 41 52 47 2d 31 20 74 72 61 63 6b 73 2e 22 0a 20 20 k.the.previous.ARG-1.tracks."...
10620 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d (interactive."p")...(let.((emms-
10640 6d 61 72 6b 2d 63 68 61 72 20 3f 5c 30 34 30 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b mark-char.?\040)).....(emms-mark
10660 2d 74 72 61 63 6b 20 61 72 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d -track.arg)))..(defun.emms-mark-
10680 66 6f 72 77 61 72 64 20 28 61 72 67 29 0a 20 20 22 4d 61 72 6b 20 6f 6e 65 20 6f 72 20 6d 6f 72 forward.(arg)..."Mark.one.or.mor
106a0 65 20 74 72 61 63 6b 73 20 61 6e 64 20 6d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 20 70 61 73 74 e.tracks.and.move.the.point.past
106c0 20 74 68 65 20 6e 65 77 6c 79 2d 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 2e 0a 53 65 65 20 60 65 .the.newly-marked.tracks..See.`e
106e0 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 27 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 65 74 61 mms-mark-track'.for.further.deta
10700 69 6c 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 65 6d 6d ils."...(interactive."p")...(emm
10720 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 20 61 72 67 29 0a 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e s-mark-track.arg)...(forward-lin
10740 65 20 61 72 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b e.arg))..(defun.emms-mark-unmark
10760 2d 66 6f 72 77 61 72 64 20 28 61 72 67 29 0a 20 20 22 55 6e 6d 61 72 6b 20 6f 6e 65 20 6f 72 20 -forward.(arg)..."Unmark.one.or.
10780 6d 6f 72 65 20 74 72 61 63 6b 73 20 61 6e 64 20 6d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 20 70 more.tracks.and.move.the.point.p
107a0 61 73 74 20 74 68 65 20 74 72 61 63 6b 73 2e 0a 53 65 65 20 60 65 6d 6d 73 2d 6d 61 72 6b 2d 75 ast.the.tracks..See.`emms-mark-u
107c0 6e 6d 61 72 6b 2d 74 72 61 63 6b 27 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 nmark-track'.for.further.details
107e0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 65 6d 6d 73 2d 6d ."...(interactive."p")...(emms-m
10800 61 72 6b 2d 75 6e 6d 61 72 6b 2d 74 72 61 63 6b 20 61 72 67 29 0a 20 20 28 66 6f 72 77 61 72 64 ark-unmark-track.arg)...(forward
10820 2d 6c 69 6e 65 20 61 72 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 61 6c -line.arg))..(defun.emms-mark-al
10840 6c 20 28 29 0a 20 20 22 4d 61 72 6b 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 63 l.()..."Mark.all.tracks.in.the.c
10860 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a urrent.buffer."...(interactive).
10880 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 ..(save-excursion.....(goto-char
108a0 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 .(point-min)).....(emms-mark-tra
108c0 63 6b 20 28 63 6f 75 6e 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 ck.(count-lines.(point-min).(poi
108e0 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e nt-max)))))..(defun.emms-mark-un
10900 6d 61 72 6b 2d 61 6c 6c 20 28 29 0a 20 20 22 55 6e 6d 61 72 6b 20 61 6c 6c 20 74 72 61 63 6b 73 mark-all.()..."Unmark.all.tracks
10920 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 .in.the.current.buffer."...(inte
10940 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 ractive)...(emms-mark-do-with-ma
10960 72 6b 65 64 2d 74 72 61 63 6b 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b 2d 74 72 61 rked-track.'emms-mark-unmark-tra
10980 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 72 65 67 65 78 70 20 28 72 ck))..(defun.emms-mark-regexp.(r
109a0 65 67 65 78 70 20 61 72 67 29 0a 20 20 22 4d 61 72 6b 20 61 6c 6c 20 74 72 61 63 6b 73 20 6d 61 egexp.arg)..."Mark.all.tracks.ma
109c0 74 63 68 69 6e 67 20 52 45 47 45 58 50 2e 20 41 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 tching.REGEXP..A.prefix.argument
109e0 20 6d 65 61 6e 73 20 74 6f 0a 75 6e 6d 61 72 6b 20 74 68 65 6d 20 69 6e 73 74 65 61 64 2e 22 0a .means.to.unmark.them.instead.".
10a00 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 72 65 61 ..(interactive....(list.....(rea
10a20 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 d-from-minibuffer.(if.current-pr
10a40 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efix-arg........................
10a60 20 20 20 20 20 20 20 22 55 6e 6d 61 72 6b 20 74 72 61 63 6b 73 20 6d 61 74 63 68 69 6e 67 3a 20 ......."Unmark.tracks.matching:.
10a80 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4d "............................."M
10aa0 61 72 6b 20 74 72 61 63 6b 73 20 6d 61 74 63 68 69 6e 67 3a 20 22 29 29 0a 20 20 20 20 63 75 72 ark.tracks.matching:.")).....cur
10ac0 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d rent-prefix-arg))...(let.((emms-
10ae0 6d 61 72 6b 2d 63 68 61 72 20 28 69 66 20 61 72 67 20 3f 5c 30 34 30 20 3f 2a 29 29 29 0a 20 20 mark-char.(if.arg.?\040.?*)))...
10b00 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 ..(save-excursion.......(goto-ch
10b20 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 ar.(point-min)).......(while.(re
10b40 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 72 65 67 65 78 70 20 6e 69 6c 20 74 29 0a 20 20 -search-forward.regexp.nil.t)...
10b60 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 20 31 29 0a 20 20 20 20 20 20 ......(emms-mark-track.1).......
10b80 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ..(forward-line.1)))))..(defun.e
10ba0 6d 6d 73 2d 6d 61 72 6b 2d 74 6f 67 67 6c 65 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 61 6c 6c mms-mark-toggle.()..."Toggle.all
10bc0 20 6d 61 72 6b 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 .marks.in.the.current.buffer."..
10be0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e .(interactive)...(save-excursion
10c00 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
10c20 20 28 6c 65 74 20 28 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 29 0a 20 20 20 20 20 20 28 .(let.(buffer-read-only).......(
10c40 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 while.(not.(eobp)).........(if.(
10c60 65 71 20 3f 5c 30 34 30 20 28 66 6f 6c 6c 6f 77 69 6e 67 2d 63 68 61 72 29 29 0a 20 20 20 20 20 eq.?\040.(following-char))......
10c80 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 .......(emms-mark-track)........
10ca0 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b 2d 74 72 61 63 6b 29 29 0a 20 20 20 ...(emms-mark-unmark-track))....
10cc0 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 0a 0a 28 64 65 66 73 .....(forward-line.1)))))..(defs
10ce0 75 62 73 74 20 65 6d 6d 73 2d 6d 61 72 6b 2d 68 61 73 2d 6d 61 72 6b 65 64 70 20 28 29 0a 20 20 ubst.emms-mark-has-markedp.()...
10d00 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 "Return.non-nil.if.the.playlist.
10d20 68 61 73 20 61 20 6d 61 72 6b 65 64 20 6c 69 6e 65 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 has.a.marked.line,.nil.otherwise
10d40 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 ."...(save-excursion.....(goto-c
10d60 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d har.(point-min)).....(re-search-
10d80 66 6f 72 77 61 72 64 20 28 66 6f 72 6d 61 74 20 22 5e 5b 25 63 5d 22 20 65 6d 6d 73 2d 6d 61 72 forward.(format."^[%c]".emms-mar
10da0 6b 2d 63 68 61 72 29 20 6e 69 6c 20 74 29 29 29 0a 0a 3b 3b 7d 7d 7d 0a 0a 3b 3b 7b 7b 7b 20 66 k-char).nil.t)))..;;}}}..;;{{{.f
10dc0 75 6e 63 74 69 6f 6e 73 20 74 6f 20 6f 70 65 72 61 74 65 20 6d 61 72 6b 65 64 20 74 72 61 63 6b unctions.to.operate.marked.track
10de0 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 s.(defun.emms-mark-do-with-marke
10e00 64 2d 74 72 61 63 6b 20 28 66 75 6e 63 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f 76 65 29 0a 20 20 d-track.(func.&optional.move)...
10e20 22 43 61 6c 6c 20 46 55 4e 43 20 6f 6e 20 65 76 65 72 79 20 6d 61 72 6b 65 64 20 6c 69 6e 65 20 "Call.FUNC.on.every.marked.line.
10e40 69 6e 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f in.current.playlist..The.functio
10e60 6e 20 73 70 65 63 69 66 69 65 64 20 62 79 20 46 55 4e 43 20 74 61 6b 65 73 20 6e 6f 20 61 72 67 n.specified.by.FUNC.takes.no.arg
10e80 75 6d 65 6e 74 2c 20 73 6f 20 69 66 20 74 68 65 20 74 72 61 63 6b 0a 6f 6e 20 74 68 65 20 6d 61 ument,.so.if.the.track.on.the.ma
10ea0 72 6b 65 64 20 6c 69 6e 65 20 69 73 20 6e 65 65 64 65 64 2c 20 75 73 65 20 60 65 6d 6d 73 2d 70 rked.line.is.needed,.use.`emms-p
10ec0 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 27 20 74 6f 20 67 65 74 0a 69 74 2e 0a 0a 54 68 laylist-track-at'.to.get.it...Th
10ee0 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 61 6c 73 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 70 e.function.can.also.modify.the.p
10f00 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2c 20 73 75 63 68 20 61 73 0a 64 65 6c 65 74 69 6e 67 laylist.buffer,.such.as.deleting
10f20 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 20 20 49 66 20 74 68 65 20 66 75 6e 63 74 .the.current.line...If.the.funct
10f40 69 6f 6e 20 64 6f 65 73 6e 27 74 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 2c 0a 62 65 20 73 75 72 ion.doesn't.move.forward,.be.sur
10f60 65 20 74 6f 20 73 65 74 20 74 68 65 20 73 65 63 6f 6e 64 20 70 61 72 61 6d 65 74 65 72 20 4d 4f e.to.set.the.second.parameter.MO
10f80 56 45 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 20 20 4f 74 68 65 72 77 69 73 65 0a 74 68 65 20 66 75 VE.to.non-nil...Otherwise.the.fu
10fa0 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 6e 65 76 65 72 20 65 78 69 74 20 74 68 65 20 6c 6f 6f 70 2e nction.will.never.exit.the.loop.
10fc0 22 0a 20 20 28 6c 65 74 20 28 28 72 65 67 65 78 70 20 28 66 6f 72 6d 61 74 20 22 5e 5b 25 63 5d "...(let.((regexp.(format."^[%c]
10fe0 22 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 77 66 ".emms-mark-char)).........(newf
11000 75 6e 63 20 66 75 6e 63 29 29 0a 20 20 20 20 28 69 66 20 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 unc.func)).....(if.move.........
11020 28 73 65 74 71 20 6e 65 77 66 75 6e 63 20 28 6c 61 6d 62 64 61 20 28 29 20 28 66 75 6e 63 61 6c (setq.newfunc.(lambda.().(funcal
11040 6c 20 66 75 6e 63 29 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 0a 20 20 20 20 l.func).(forward-line.1)))).....
11060 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 (save-excursion.......(goto-char
11080 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 .(point-min)).......(while.(re-s
110a0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 72 65 67 65 78 70 20 6e 69 6c 20 74 29 0a 20 20 20 20 earch-forward.regexp.nil.t).....
110c0 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 20 20 20 20 20 20 20 20 20 20 20 ....(backward-char.1)...........
110e0 20 20 20 20 3b 20 6d 6f 76 65 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 0a ....;.move.to.beginning.of.line.
11100 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6e 65 77 66 75 6e 63 29 29 29 29 29 0a 0a 28 ........(funcall.newfunc)))))..(
11120 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 61 70 63 61 72 2d 6d 61 72 6b 65 64 2d 74 72 defun.emms-mark-mapcar-marked-tr
11140 61 63 6b 20 28 66 75 6e 63 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f 76 65 29 0a 20 20 22 54 68 69 ack.(func.&optional.move)..."Thi
11160 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 20 61 s.function.does.the.same.thing.a
11180 73 0a 60 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 s.`emms-mark-do-with-marked-trac
111a0 6b 27 2c 20 74 68 65 20 6f 6e 6c 79 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 69 6e 67 20 74 68 k',.the.only.difference.being.th
111c0 61 74 0a 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6c 6c 65 63 74 73 20 74 68 65 20 72 65 at.this.function.collects.the.re
111e0 73 75 6c 74 20 6f 66 20 46 55 4e 43 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 67 65 78 70 20 28 sult.of.FUNC."...(let.((regexp.(
11200 66 6f 72 6d 61 74 20 22 5e 5b 25 63 5d 22 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 68 61 72 29 29 0a format."^[%c]".emms-mark-char)).
11220 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 28 6e 65 77 66 75 6e 63 20 66 75 6e 63 29 29 0a 20 ........result.(newfunc.func))..
11240 20 20 20 28 69 66 20 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 66 75 6e ...(if.move.........(setq.newfun
11260 63 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6c 65 74 20 28 28 72 65 73 20 28 66 75 6e 63 61 6c 6c c.(lambda.().(let.((res.(funcall
11280 20 66 75 6e 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .func)))........................
112a0 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 72 65 73 ............(forward-line.1).res
112c0 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 )))).....(save-excursion.......(
112e0 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 goto-char.(point-min)).......(wh
11300 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 72 65 67 65 78 70 20 6e 69 ile.(re-search-forward.regexp.ni
11320 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 20 20 l.t).........(backward-char.1)..
11340 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6d 6f 76 65 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 .............;.move.to.beginning
11360 20 6f 66 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 .of.line.........(setq.result.(c
11380 6f 6e 73 20 28 66 75 6e 63 61 6c 6c 20 6e 65 77 66 75 6e 63 29 20 72 65 73 75 6c 74 29 29 29 0a ons.(funcall.newfunc).result))).
113a0 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 ......(nreverse.result))))..(def
113c0 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 64 65 6c 65 74 65 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b un.emms-mark-delete-marked-track
113e0 73 20 28 29 0a 20 20 22 44 65 6c 65 74 65 20 61 6c 6c 20 74 72 61 63 6b 73 20 74 68 61 74 20 68 s.()..."Delete.all.tracks.that.h
11400 61 76 65 20 62 65 65 6e 20 6d 61 72 6b 65 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 ave.been.marked.in.the.current.b
11420 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d uffer."...(interactive)...(emms-
11440 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 65 6d 6d with-inhibit-read-only-t....(emm
11460 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 20 20 20 20 s-mark-do-with-marked-track.....
11480 28 6c 61 6d 62 64 61 20 6e 69 6c 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e (lambda.nil.(delete-region.(poin
114a0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t)..............................
114c0 20 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 28 70 6f 69 6e 74 ..(progn.(forward-line.1).(point
114e0 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6b 69 6c 6c 2d 6d )))))))..(defun.emms-mark-kill-m
11500 61 72 6b 65 64 2d 74 72 61 63 6b 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 61 6c 6c 20 74 72 61 63 arked-tracks.()..."Kill.all.trac
11520 6b 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65 6e 20 6d 61 72 6b 65 64 20 69 6e 20 74 68 65 20 ks.that.have.been.marked.in.the.
11540 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 current.buffer."...(interactive)
11560 0a 20 20 28 6c 65 74 20 28 74 72 61 63 6b 73 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 ...(let.(tracks.buffer-read-only
11580 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d ).....(emms-mark-do-with-marked-
115a0 74 72 61 63 6b 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 28 73 track......(lambda.nil........(s
115c0 65 74 71 20 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 etq.tracks..............(concat.
115e0 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c tracks......................(del
11600 65 74 65 2d 61 6e 64 2d 65 78 74 72 61 63 74 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 0a 20 ete-and-extract-region.(point)..
11620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 2d 6c ...............(progn.(forward-l
11660 69 6e 65 20 31 29 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 6e ine.1).(point))))))).....(kill-n
11680 65 77 20 74 72 61 63 6b 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 ew.tracks)))..(defun.emms-mark-c
116a0 6f 70 79 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 20 28 29 0a 20 20 22 43 6f 70 79 20 61 6c 6c opy-marked-tracks.()..."Copy.all
116c0 20 74 72 61 63 6b 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65 6e 20 6d 61 72 6b 65 64 20 69 6e .tracks.that.have.been.marked.in
116e0 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 .the.current.buffer."...(interac
11700 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 74 72 61 63 6b 73 29 0a 20 20 20 20 28 65 6d 6d 73 2d tive)...(let.(tracks).....(emms-
11720 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 20 20 20 20 20 28 mark-do-with-marked-track......(
11740 6c 61 6d 62 64 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 73 0a 20 lambda.nil........(setq.tracks..
11760 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 74 72 61 63 6b 73 0a 20 20 20 20 20 ............(concat.tracks......
11780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e ................(buffer-substrin
117a0 67 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.(point).......................
117c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 .................(progn.(forward
117e0 2d 6c 69 6e 65 20 31 29 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 20 20 20 20 28 6b 69 6c 6c -line.1).(point))))))).....(kill
11800 2d 6e 65 77 20 74 72 61 63 6b 73 29 29 29 0a 3b 3b 7d 7d 7d 0a 0a 3b 3b 7b 7b 7b 20 6d 6f 64 65 -new.tracks))).;;}}}..;;{{{.mode
11820 20 73 74 75 66 66 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 2d 6d 61 .stuff.(defvar.emms-mark-mode-ma
11840 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d p...(let.((map.(make-sparse-keym
11860 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 57 22 20 23 27 ap))).....(define-key.map."W".#'
11880 65 6d 6d 73 2d 6d 61 72 6b 2d 63 6f 70 79 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 29 0a 20 20 emms-mark-copy-marked-tracks)...
118a0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 4b 22 20 23 27 65 6d 6d 73 2d 6d 61 72 ..(define-key.map."K".#'emms-mar
118c0 6b 2d 6b 69 6c 6c 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 29 0a 20 20 20 20 28 64 65 66 69 6e k-kill-marked-tracks).....(defin
118e0 65 2d 6b 65 79 20 6d 61 70 20 22 44 22 20 23 27 65 6d 6d 73 2d 6d 61 72 6b 2d 64 65 6c 65 74 65 e-key.map."D".#'emms-mark-delete
11900 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 -marked-tracks).....(define-key.
11920 6d 61 70 20 22 6d 22 20 23 27 65 6d 6d 73 2d 6d 61 72 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 20 map."m".#'emms-mark-forward)....
11940 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 75 22 20 23 27 65 6d 6d 73 2d 6d 61 72 6b .(define-key.map."u".#'emms-mark
11960 2d 75 6e 6d 61 72 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 -unmark-forward).....(define-key
11980 20 6d 61 70 20 22 55 22 20 23 27 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b 2d 61 6c 6c 29 .map."U".#'emms-mark-unmark-all)
119a0 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 74 22 20 23 27 65 6d 6d 73 2d .....(define-key.map."t".#'emms-
119c0 6d 61 72 6b 2d 74 6f 67 67 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 mark-toggle).....(define-key.map
119e0 20 22 25 6d 22 20 23 27 65 6d 6d 73 2d 6d 61 72 6b 2d 72 65 67 65 78 70 29 0a 20 20 20 20 6d 61 ."%m".#'emms-mark-regexp).....ma
11a00 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 p)..."Keymap.for.`emms-mark-mode
11a20 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 20 28 29 20 20 '.")..(defun.emms-mark-mode.()..
11a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 49 58 4d 45 3a 20 55 73 65 20 60 64 65 66 69 6e ..............;FIXME:.Use.`defin
11a60 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 27 2e 0a 20 20 22 41 6e 20 45 4d 4d 53 20 6d 61 6a 6f e-derived-mode'...."An.EMMS.majo
11a80 72 20 6d 6f 64 65 20 74 68 61 74 20 61 6c 6c 6f 77 73 20 74 72 61 63 6b 73 20 74 6f 20 62 65 20 r.mode.that.allows.tracks.to.be.
11aa0 6d 61 72 6b 65 64 20 6c 69 6b 65 20 64 69 72 65 64 2e 0a 5c 5c 7b 65 6d 6d 73 2d 6d 61 72 6b 2d marked.like.dired..\\{emms-mark-
11ac0 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 mode-map}"...(interactive)...(if
11ae0 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 29 .(eq.major-mode.'emms-mark-mode)
11b00 0a 20 20 20 20 20 20 3b 3b 20 64 6f 20 6e 6f 74 68 69 6e 67 20 69 66 20 77 65 27 72 65 20 61 6c .......;;.do.nothing.if.we're.al
11b20 72 65 61 64 79 20 69 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 0a 20 20 20 20 20 20 6e 69 ready.in.emms-mark-mode.......ni
11b40 6c 0a 0a 20 20 20 20 3b 3b 20 73 74 61 72 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f l......;;.start.emms-playlist-mo
11b60 64 65 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 de.exactly.once.....(unless.(eq.
11b80 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a major-mode.'emms-playlist-mode).
11ba0 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 ......(emms-playlist-mode)).....
11bc0 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 74 29 0a (setq.emms-playlist-buffer-p.t).
11be0 0a 20 20 20 20 3b 3b 20 75 73 65 20 69 6e 68 65 72 69 74 65 64 20 6b 65 79 6d 61 70 0a 20 20 20 .....;;.use.inherited.keymap....
11c00 20 28 73 65 74 2d 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f .(set-keymap-parent.emms-mark-mo
11c20 64 65 2d 6d 61 70 20 28 63 75 72 72 65 6e 74 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 0a 20 20 20 20 de-map.(current-local-map)).....
11c40 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 2d 6d 61 (use-local-map.emms-mark-mode-ma
11c60 70 29 0a 20 20 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6d 61 p).....(setq.major-mode.'emms-ma
11c80 72 6b 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 2d 6e 61 6d 65 20 22 45 6d 6d rk-mode...........mode-name."Emm
11ca0 73 2d 4d 61 72 6b 22 29 0a 0a 20 20 20 20 3b 3b 20 73 68 6f 77 20 61 20 62 6c 61 6e 6b 20 73 70 s-Mark")......;;.show.a.blank.sp
11cc0 61 63 65 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 65 61 63 68 20 6c 69 6e 65 0a 20 20 ace.at.beginning.of.each.line...
11ce0 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 65 6d 6d ..(set.(make-local-variable.'emm
11d00 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 s-track-description-function)...
11d20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 6d 61 72 6b 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 .......#'emms-mark-track-descrip
11d40 74 69 6f 6e 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 75 70 64 61 74 65 2d 64 65 73 63 tion).....(emms-mark-update-desc
11d60 72 69 70 74 69 6f 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f riptions)))..(defun.emms-mark-mo
11d80 64 65 2d 64 69 73 61 62 6c 65 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 60 65 6d 6d 73 2d 6d de-disable.()..."Disable.`emms-m
11da0 61 72 6b 2d 6d 6f 64 65 27 20 61 6e 64 20 72 65 74 75 72 6e 20 74 6f 20 60 65 6d 6d 73 2d 70 6c ark-mode'.and.return.to.`emms-pl
11dc0 61 79 6c 69 73 74 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 aylist-mode'."...(interactive)..
11de0 20 28 69 66 20 28 6e 6f 74 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6d .(if.(not.(eq.major-mode.'emms-m
11e00 61 72 6b 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 64 6f 20 6e 6f 74 68 69 6e 67 20 69 ark-mode)).......;;.do.nothing.i
11e20 66 20 77 65 27 72 65 20 6e 6f 74 20 69 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 0a 20 20 f.we're.not.in.emms-mark-mode...
11e40 20 20 20 20 6e 69 6c 0a 0a 20 20 20 20 3b 3b 20 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 ....nil......;;.call.emms-playli
11e60 73 74 2d 6d 6f 64 65 2c 20 73 61 76 69 6e 67 20 69 6d 70 6f 72 74 61 6e 74 20 76 61 72 69 61 62 st-mode,.saving.important.variab
11e80 6c 65 73 0a 20 20 20 20 28 6c 65 74 20 28 28 73 65 6c 65 63 74 65 64 20 65 6d 6d 73 2d 70 6c 61 les.....(let.((selected.emms-pla
11ea0 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 28 65 ylist-selected-marker)).......(e
11ec0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 mms-playlist-mode).......(setq.e
11ee0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 20 73 65 6c mms-playlist-selected-marker.sel
11f00 65 63 74 65 64 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 ected).......(emms-playlist-mode
11f20 2d 6f 76 65 72 6c 61 79 2d 73 65 6c 65 63 74 65 64 29 29 0a 0a 20 20 20 20 3b 3b 20 75 70 64 61 -overlay-selected))......;;.upda
11f40 74 65 20 64 69 73 70 6c 61 79 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 75 70 64 61 74 65 te.display.....(emms-mark-update
11f60 2d 64 65 73 63 72 69 70 74 69 6f 6e 73 29 29 29 0a 3b 3b 7d 7d 7d 0a 0a 3b 3b 3b 20 65 6d 6d 73 -descriptions))).;;}}}..;;;.emms
11f80 2d 6d 61 72 6b 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 -mark.el.ends.here..............
11fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 2e 65 6c 00 00 00 00 00 emms-24/emms-player-xine.el.....
12020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
12080 30 30 30 36 30 34 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 32 31 00 20 30 00 00 00 0006042.00000000000.014421..0...
120a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
12120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
12140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12200 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 2e 65 6c 20 2d 2d 2d 20 78 69 6e 65 ;;;.emms-player-xine.el.---.xine
12220 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 .support.for.EMMS..-*-.lexical-b
12240 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
12260 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 .2007,.2008,.2009.Free.Software.
12280 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 54 61 73 Foundation,.Inc...;;.Author:.Tas
122a0 73 69 6c 6f 20 48 6f 72 6e 20 3c 74 61 73 73 69 6c 6f 40 6d 65 6d 62 65 72 2e 66 73 66 2e 6f 72 silo.Horn.<tassilo@member.fsf.or
122c0 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 g>..;;.This.file.is.part.of.EMMS
122e0 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 ...;;.EMMS.is.free.software;.you
12300 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d .can.redistribute.it.and/or.;;.m
12320 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 odify.it.under.the.terms.of.the.
12340 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 GNU.General.Public.License.;;.as
12360 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 .published.by.the.Free.Software.
12380 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 Foundation;.either.version.3.;;.
123a0 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 of.the.License,.or.(at.your.opti
123c0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 on).any.later.version...;;.EMMS.
123e0 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 is.distributed.in.the.hope.that.
12400 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 it.will.be.useful,.;;.but.WITHOU
12420 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 T.ANY.WARRANTY;.without.even.the
12440 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 .implied.warranty.of.;;.MERCHANT
12460 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 ABILITY.or.FITNESS.FOR.A.PARTICU
12480 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e LAR.PURPOSE...See.the.;;.GNU.Gen
124a0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 eral.Public.License.for.more.det
124c0 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 ails...;;.You.should.have.receiv
124e0 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 ed.a.copy.of.the.GNU.General.Pub
12500 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 lic.License.;;.along.with.EMMS;.
12520 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 if.not,.write.to.the.Free.Softwa
12540 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b re.Foundation,.;;.Inc.,.51.Frank
12560 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 lin.St,.Fifth.Floor,.Boston,.MA.
12580 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 02110-1301,.USA...;;;.Commentary
125a0 3a 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 76 69 64 65 73 20 61 20 70 6c 61 79 65 72 20 74 68 61 :..;;.This.provides.a.player.tha
125c0 74 20 75 73 65 73 20 78 69 6e 65 2e 20 49 74 20 73 75 70 70 6f 72 74 73 20 70 61 75 73 65 20 61 t.uses.xine..It.supports.pause.a
125e0 6e 64 0a 3b 3b 20 73 65 65 6b 69 6e 67 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 54 4f nd.;;.seeking...;;;.Code:..;;.TO
12600 44 4f 3a 20 54 68 65 20 76 69 64 65 6f 20 77 69 6e 64 6f 77 20 63 61 6e 6e 6f 74 20 62 65 20 64 DO:.The.video.window.cannot.be.d
12620 69 73 61 62 6c 65 64 2e 20 49 20 61 73 6b 65 64 20 6f 6e 0a 3b 3b 20 67 6d 61 6e 65 2e 63 6f 6d isabled..I.asked.on.;;.gmane.com
12640 70 2e 76 69 64 65 6f 2e 78 69 6e 65 2e 75 73 65 72 20 28 3c 38 37 79 37 6f 68 71 63 62 71 2e 66 p.video.xine.user.(<87y7ohqcbq.f
12660 73 66 40 62 61 6c 64 75 72 2e 74 73 64 68 2e 64 65 3e 29 2e 2e 2e 0a 0a 3b 3b 20 54 4f 44 4f 3a sf@baldur.tsdh.de>).....;;.TODO:
12680 20 49 6d 70 6c 65 6d 65 6e 74 20 73 65 65 6b 2d 74 6f 20 77 69 74 68 20 22 53 65 74 50 6f 73 69 .Implement.seek-to.with."SetPosi
126a0 74 69 6f 6e 58 25 5c 6e 22 20 77 68 65 72 65 20 58 20 69 73 20 69 6e 20 7b 30 2c 31 30 2c 2e 2e tionX%\n".where.X.is.in.{0,10,..
126c0 2c 39 30 7d 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 ,90}..(require.'emms-player-simp
126e0 6c 65 29 0a 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 le)..(define-emms-simple-player.
12700 78 69 6e 65 20 27 28 66 69 6c 65 20 75 72 6c 29 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 60 5c xine.'(file.url)...(concat."\\`\
12720 5c 28 68 74 74 70 5b 73 5d 3f 5c 5c 7c 6d 6d 73 5c 5c 29 3a 2f 2f 5c 5c 7c 22 0a 20 20 20 20 20 \(http[s]?\\|mms\\)://\\|"......
12740 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 0a .....(emms-player-simple-regexp.
12760 20 20 20 20 20 20 20 20 20 20 20 22 6f 67 67 22 20 22 6d 70 33 22 20 22 77 61 76 22 20 22 6d 70 ..........."ogg"."mp3"."wav"."mp
12780 67 22 20 22 6d 70 65 67 22 20 22 77 6d 76 22 20 22 77 6d 61 22 0a 20 20 20 20 20 20 20 20 20 20 g"."mpeg"."wmv"."wma"...........
127a0 20 22 6d 6f 76 22 20 22 61 76 69 22 20 22 64 69 76 78 22 20 22 6f 67 6d 22 20 22 6f 67 76 22 20 ."mov"."avi"."divx"."ogm"."ogv".
127c0 22 61 73 66 22 20 22 6d 6b 76 22 0a 20 20 20 20 20 20 20 20 20 20 20 22 72 6d 22 20 22 72 6d 76 "asf"."mkv"............"rm"."rmv
127e0 62 22 20 22 6d 70 34 22 20 22 66 6c 61 63 22 20 22 76 6f 62 22 29 29 0a 20 20 22 78 69 6e 65 22 b"."mp4"."flac"."vob"))..."xine"
12800 20 22 2d 2d 6e 6f 2d 67 75 69 22 20 22 2d 2d 6e 6f 2d 6c 6f 67 6f 22 20 22 2d 2d 6e 6f 2d 73 70 ."--no-gui"."--no-logo"."--no-sp
12820 6c 61 73 68 22 20 22 2d 2d 6e 6f 2d 72 65 6c 6f 61 64 22 20 22 2d 2d 73 74 64 63 74 6c 22 29 0a lash"."--no-reload"."--stdctl").
12840 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 .(emms-player-set.emms-player-xi
12860 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 61 75 73 65 0a 20 20 20 20 20 ne..................'pause......
12880 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 2d 70 61 ............'emms-player-xine-pa
128a0 75 73 65 29 0a 0a 3b 3b 3b 20 50 61 75 73 65 20 69 73 20 61 6c 73 6f 20 72 65 73 75 6d 65 20 66 use)..;;;.Pause.is.also.resume.f
128c0 6f 72 20 78 69 6e 65 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c or.xine.(emms-player-set.emms-pl
128e0 61 79 65 72 2d 78 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 73 75 ayer-xine..................'resu
12900 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 0a 28 65 6d 6d 73 2d me..................nil)..(emms-
12920 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 0a 20 20 20 20 player-set.emms-player-xine.....
12940 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 65 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............'seek..............
12960 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 2d 73 65 65 6b 29 0a 0a 28 64 65 ....'emms-player-xine-seek)..(de
12980 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 2d 70 61 75 73 65 20 28 29 0a 20 20 fun.emms-player-xine-pause.()...
129a0 22 44 65 70 65 6e 64 73 20 6f 6e 20 78 69 6e 65 27 73 20 2d 2d 73 74 64 63 74 6c 20 6d 6f 64 65 "Depends.on.xine's.--stdctl.mode
129c0 2e 22 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 0a 20 20 20 65 6d 6d ."...(process-send-string....emm
129e0 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 70 61 s-player-simple-process-name."pa
12a00 75 73 65 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e use\n"))..(defun.emms-player-xin
12a20 65 2d 73 65 65 6b 20 28 73 65 63 73 29 0a 20 20 22 44 65 70 65 6e 64 73 20 6f 6e 20 78 69 6e 65 e-seek.(secs)..."Depends.on.xine
12a40 27 73 20 2d 2d 73 74 64 63 74 6c 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 78 69 6e 65 2d 75 69 27 's.--stdctl.mode."...;;.xine-ui'
12a60 73 20 73 74 64 63 74 6c 20 73 75 70 70 6f 72 74 73 20 6f 6e 6c 79 20 73 65 65 6b 69 6e 67 20 66 s.stdctl.supports.only.seeking.f
12a80 6f 72 77 61 72 64 2f 62 61 63 6b 77 61 72 64 20 69 6e 20 37 2f 31 35 2f 33 30 20 61 6e 64 20 36 orward/backward.in.7/15/30.and.6
12aa0 30 0a 20 20 3b 3b 20 73 65 63 6f 6e 64 20 73 74 65 70 73 2c 20 73 6f 20 77 65 20 74 61 6b 65 20 0...;;.second.steps,.so.we.take.
12ac0 74 68 65 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 6e 65 61 72 65 73 74 20 74 6f 20 53 45 43 the.value.that.is.nearest.to.SEC
12ae0 53 2e 0a 20 20 28 6c 65 74 20 28 28 73 20 28 65 6d 6d 73 2d 6e 65 61 72 65 73 74 2d 76 61 6c 75 S....(let.((s.(emms-nearest-valu
12b00 65 20 73 65 63 73 20 27 28 2d 36 30 20 2d 33 30 20 2d 31 35 20 2d 37 20 37 20 31 35 20 33 30 20 e.secs.'(-60.-30.-15.-7.7.15.30.
12b20 36 30 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 2f 3d 20 73 20 73 65 63 73 29 0a 20 20 20 60)))).....(when.(/=.s.secs)....
12b40 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 45 4d 4d 53 3a 20 58 69 6e 65 20 ...(message.(concat."EMMS:.Xine.
12b60 6f 6e 6c 79 20 73 75 70 70 6f 72 74 73 20 73 65 65 6b 69 6e 67 20 66 6f 72 20 5b 2b 2f 2d 5d 20 only.supports.seeking.for.[+/-].
12b80 37 2f 31 35 2f 33 30 2f 36 30 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7/15/30/60."....................
12ba0 20 20 20 20 22 73 65 63 6f 6e 64 73 2c 20 73 6f 20 77 65 20 73 65 65 6b 65 64 20 25 64 20 73 65 ...."seconds,.so.we.seeked.%d.se
12bc0 63 6f 6e 64 73 22 29 20 73 29 29 0a 20 20 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 conds").s)).....(process-send-st
12be0 72 69 6e 67 0a 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f ring......emms-player-simple-pro
12c00 63 65 73 73 2d 6e 61 6d 65 0a 20 20 20 20 20 28 69 66 20 28 3c 20 73 20 30 29 0a 20 20 20 20 20 cess-name......(if.(<.s.0)......
12c20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 53 65 65 6b 52 65 6c 61 74 69 76 65 25 64 5c 6e 22 20 73 ....(format."SeekRelative%d\n".s
12c40 29 0a 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 53 65 65 6b 52 65 6c 61 74 69 76 65 2b 25 )........(format."SeekRelative+%
12c60 64 5c 6e 22 20 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6e 65 61 72 65 73 74 d\n".s)))))..(defun.emms-nearest
12c80 2d 76 61 6c 75 65 20 28 76 61 6c 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 73 20 74 68 65 -value.(val.list)..."Returns.the
12ca0 20 76 61 6c 75 65 20 6f 66 20 4c 49 53 54 20 77 68 69 63 68 20 69 73 20 6e 65 61 72 65 73 74 20 .value.of.LIST.which.is.nearest.
12cc0 74 6f 20 56 41 4c 2e 0a 0a 4c 49 53 54 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f to.VAL...LIST.should.be.a.list.o
12ce0 66 20 69 6e 74 65 67 65 72 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 65 61 72 65 73 74 20 28 f.integers."...(let*.((nearest.(
12d00 63 61 72 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 69 73 74 20 28 61 62 73 20 28 car.list))..........(dist.(abs.(
12d20 2d 20 76 61 6c 20 6e 65 61 72 65 73 74 29 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6c -.val.nearest)))).....(dolist.(l
12d40 76 61 6c 20 28 63 64 72 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 64 69 val.(cdr.list)).......(let.((ndi
12d60 73 74 20 28 61 62 73 20 28 2d 20 76 61 6c 20 6c 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 st.(abs.(-.val.lval)))).........
12d80 28 77 68 65 6e 20 28 3c 20 6e 64 69 73 74 20 64 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 (when.(<.ndist.dist)...........(
12da0 73 65 74 71 20 6e 65 61 72 65 73 74 20 6c 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 setq.nearest.lval...............
12dc0 20 20 64 69 73 74 20 20 20 20 6e 64 69 73 74 29 29 29 29 0a 20 20 20 20 6e 65 61 72 65 73 74 29 ..dist....ndist)))).....nearest)
12de0 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 29 0a )...(provide.'emms-player-xine).
12e00 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 ;;;.emms-player-xine.el.ends.her
12e20 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
12e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2e 65 6c 00 00 00 00 00 00 00 00 emms-24/emms-later-do.el........
13020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13080 30 30 30 36 33 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 37 36 00 20 30 00 00 00 0006333.00000000000.013676..0...
130a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
130c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
130e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13200 3b 3b 3b 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2e 65 6c 20 2d 2d 2d 20 45 78 65 63 75 74 65 ;;;.emms-later-do.el.---.Execute
13220 20 4c 69 73 70 20 63 6f 64 65 20 2e 2e 2e 20 6c 61 74 65 72 20 2d 2a 2d 20 6c 65 78 69 63 61 6c .Lisp.code.....later.-*-.lexical
13240 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 -binding:.t;.-*-..;;.Copyright.(
13260 43 29 20 32 30 30 34 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e C).2004-2021..Free.Software.Foun
13280 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 72 67 65 6e 20 dation,.Inc...;;.Author:.Jorgen.
132a0 53 63 68 61 65 66 65 72 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 0a 3b 3b 20 Schaefer.<forcer@forcix.cx>..;;.
132c0 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 This.program.is.free.software;.y
132e0 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b ou.can.redistribute.it.and/or.;;
13300 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 .modify.it.under.the.terms.of.th
13320 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
13340 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 as.published.by.the.Free.Softwar
13360 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 0a 3b e.Foundation;.either.version.3.;
13380 3b 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 ;.of.the.License,.or.(at.your.op
133a0 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 tion).any.later.version...;;.Thi
133c0 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 s.program.is.distributed.in.the.
133e0 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 hope.that.it.will.be.useful,.;;.
13400 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 but.WITHOUT.ANY.WARRANTY;.withou
13420 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b t.even.the.implied.warranty.of.;
13440 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 ;.MERCHANTABILITY.or.FITNESS.FOR
13460 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a .A.PARTICULAR.PURPOSE...See.the.
13480 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f ;;.GNU.General.Public.License.fo
134a0 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 r.more.details...;;.You.should.h
134c0 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 ave.received.a.copy.of.the.GNU.G
134e0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 eneral.Public.License.;;.along.w
13500 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 ith.this.program;.if.not,.write.
13520 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 6e 64 61 74 69 to.the.Free.Software.;;.Foundati
13540 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 on,.Inc.,.51.Franklin.St,.Fifth.
13560 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 0a 3b 3b 20 30 32 31 31 30 2d 31 33 30 31 20 Floor,.Boston,.MA.;;.02110-1301.
13580 55 53 41 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c USA..;;;.Commentary..;;.This.fil
135a0 65 20 77 69 6c 6c 20 65 78 65 63 75 74 65 20 6c 69 73 70 20 63 6f 64 65 20 60 60 6c 61 74 65 72 e.will.execute.lisp.code.``later
135c0 20 6f 6e 27 27 2e 20 20 54 68 69 73 20 77 61 79 20 69 74 20 69 73 0a 3b 3b 20 70 6f 73 73 69 62 .on''...This.way.it.is.;;.possib
135e0 6c 65 20 74 6f 20 77 6f 72 6b 20 77 68 69 6c 65 20 65 6c 69 73 70 20 64 6f 65 73 20 73 6f 6d 65 le.to.work.while.elisp.does.some
13600 20 6c 6f 6e 67 65 72 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 2c 20 69 66 20 79 6f 75 0a 3b 3b 20 .longer.calculations,.if.you.;;.
13620 63 61 6e 20 63 6f 6e 76 65 72 74 20 74 68 6f 73 65 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 20 69 can.convert.those.calculations.i
13640 6e 74 6f 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 nto.a.sequence.of.function.calls
13660 2e 0a 0a 3b 3b 20 32 30 32 30 2d 30 39 2d 32 32 3a 20 4e 61 6d 65 20 63 68 61 6e 67 65 64 20 66 ...;;.2020-09-22:.Name.changed.f
13680 72 6f 6d 20 6c 61 74 65 72 2d 64 6f 20 74 6f 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 20 69 6e rom.later-do.to.emms-later-do.in
136a0 20 6f 72 64 65 72 20 74 6f 0a 3b 3b 20 61 76 6f 69 64 20 70 6f 6c 6c 75 74 69 6e 67 20 74 68 65 .order.to.;;.avoid.polluting.the
136c0 20 6e 61 6d 65 73 70 61 63 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 76 61 72 20 .namespace...;;;.Code:..(defvar.
136e0 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 76 65 72 73 69 6f 6e 20 22 30 2e 32 65 6d 6d 73 34 20 emms-later-do-version."0.2emms4.
13700 28 32 30 31 38 2d 30 34 2d 30 37 29 22 0a 20 20 22 56 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 (2018-04-07)"..."Version.string.
13720 6f 66 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 of.emms-later-do.")..(defgroup.e
13740 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 20 6e 69 6c 0a 20 20 22 2a 52 75 6e 6e 69 6e 67 20 66 75 6e mms-later-do.nil..."*Running.fun
13760 63 74 69 6f 6e 73 20 2e 2e 2e 20 6c 61 74 65 72 21 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d ctions.....later!"...:prefix."em
13780 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 22 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 76 65 6c 6f 70 6d ms-later-do-"...:group.'developm
137a0 65 6e 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 69 ent)..(defcustom.emms-later-do-i
137c0 6e 74 65 72 76 61 6c 20 30 2e 35 0a 20 20 22 48 6f 77 20 6d 61 6e 79 20 73 65 63 6f 6e 64 73 20 nterval.0.5..."How.many.seconds.
137e0 74 6f 20 77 61 69 74 20 62 65 74 77 65 65 6e 20 72 75 6e 6e 69 6e 67 20 65 76 65 6e 74 73 2e 22 to.wait.between.running.events."
13800 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 20 65 ...:type.'number)..(defcustom..e
13820 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 62 61 74 63 68 20 32 30 0a 20 20 22 48 6f 77 20 6d 61 6e mms-later-do-batch.20..."How.man
13840 79 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 70 72 6f 63 65 73 73 20 62 65 66 6f 72 65 20 77 61 y.functions.to.process.before.wa
13860 69 74 69 6e 67 20 60 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 69 6e 74 65 72 76 61 6c 27 2e 0a iting.`emms-later-do-interval'..
13880 54 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 70 72 6f 63 65 73 73 65 64 20 66 72 6f 6d The.functions.are.processed.from
138a0 20 60 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 6c 69 73 74 27 2e 20 20 4d 75 73 74 20 62 65 20 .`emms-later-do-list'...Must.be.
138c0 31 20 6f 72 0a 67 72 65 61 74 65 72 2e 20 20 54 6f 6f 20 68 69 67 68 20 61 20 76 61 6c 75 65 20 1.or.greater...Too.high.a.value.
138e0 6d 69 67 68 74 20 6d 61 6b 65 20 45 6d 61 63 73 20 73 6c 6f 77 65 72 20 77 68 69 6c 65 20 74 68 might.make.Emacs.slower.while.th
13900 65 0a 6c 69 73 74 20 69 73 20 62 65 69 6e 67 20 70 72 6f 63 65 73 73 65 64 2e 22 0a 20 20 3a 74 e.list.is.being.processed."...:t
13920 79 70 65 20 27 6e 75 6d 62 65 72 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 61 74 65 72 ype.'number)..(defvar.emms-later
13940 2d 64 6f 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 -do-list.nil..."A.list.of.functi
13960 6f 6e 73 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 6c 61 74 65 72 20 6f 6e 2e 22 29 0a 0a 28 64 ons.to.be.called.later.on.")..(d
13980 65 66 76 61 72 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 74 69 6d 65 72 20 6e 69 6c 0a 20 20 efvar.emms-later-do-timer.nil...
139a0 22 54 68 65 20 74 69 6d 65 72 20 74 68 61 74 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 20 75 73 "The.timer.that.emms-later-do.us
139c0 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 20 28 66 75 6e es.")..(defun.emms-later-do.(fun
139e0 63 74 69 6f 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 41 70 70 6c 79 20 46 55 4e 43 54 ction.&rest.args)..."Apply.FUNCT
13a00 49 4f 4e 20 74 6f 20 41 52 47 53 20 6c 61 74 65 72 20 6f 6e 2e 20 20 54 68 69 73 20 69 73 20 61 ION.to.ARGS.later.on...This.is.a
13a20 6e 20 75 6e 73 70 65 63 69 66 69 65 64 0a 61 6d 6f 75 6e 74 20 6f 66 20 74 69 6d 65 20 61 66 74 n.unspecified.amount.of.time.aft
13a40 65 72 20 74 68 69 73 20 63 61 6c 6c 2c 20 61 6e 64 20 64 65 66 69 6e 69 74 65 6c 79 20 6e 6f 74 er.this.call,.and.definitely.not
13a60 20 77 68 69 6c 65 20 6c 69 73 70 20 69 73 0a 73 74 69 6c 6c 20 65 78 65 63 75 74 69 6e 67 2e 20 .while.lisp.is.still.executing..
13a80 20 43 6f 64 65 20 61 64 64 65 64 20 75 73 69 6e 67 20 60 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f .Code.added.using.`emms-later-do
13aa0 27 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 0a 65 78 65 63 75 74 65 64 20 69 '.is.guaranteed.to.be.executed.i
13ac0 6e 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 69 74 20 77 61 73 20 61 64 64 65 64 2e 22 0a 20 20 n.the.sequence.it.was.added."...
13ae0 28 73 65 74 71 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 6c 69 73 74 20 28 6e 63 6f 6e 63 20 (setq.emms-later-do-list.(nconc.
13b00 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 emms-later-do-list..............
13b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 66 75 6e .................(list.(cons.fun
13b40 63 74 69 6f 6e 20 61 72 67 73 29 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 6c 61 ction.args))))...(unless.emms-la
13b60 74 65 72 2d 64 6f 2d 74 69 6d 65 72 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 61 74 65 ter-do-timer.....(setq.emms-late
13b80 72 2d 64 6f 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d 74 r-do-timer...........(run-with-t
13ba0 69 6d 65 72 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 69 6e 74 65 72 76 61 6c 20 6e 69 6c 20 imer.emms-later-do-interval.nil.
13bc0 27 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 74 69 6d 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 'emms-later-do-timer))))..(defun
13be0 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 74 69 6d 65 72 20 28 29 0a 20 20 22 52 75 6e 20 74 .emms-later-do-timer.()..."Run.t
13c00 68 65 20 6e 65 78 74 20 65 6c 65 6d 65 6e 74 20 69 6e 20 60 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 he.next.element.in.`emms-later-d
13c20 6f 2d 6c 69 73 74 27 2c 20 6f 72 20 64 6f 20 6e 6f 74 68 69 6e 67 20 69 66 20 69 74 27 73 0a 65 o-list',.or.do.nothing.if.it's.e
13c40 6d 70 74 79 2e 22 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f mpty."...(if.(null.emms-later-do
13c60 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f -list).......(setq.emms-later-do
13c80 2d 74 69 6d 65 72 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 74 20 28 72 65 73 29 0a 20 20 20 20 20 -timer.nil).....(let.(res)......
13ca0 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 69 .(unwind-protect...........(doti
13cc0 6d 65 73 20 28 5f 62 20 28 6d 69 6e 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 62 61 74 63 68 mes.(_b.(min.emms-later-do-batch
13ce0 20 28 6c 65 6e 67 74 68 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 6c 69 73 74 29 29 20 72 65 .(length.emms-later-do-list)).re
13d00 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6e 20 28 63 61 61 72 20 s).............(let.((fun.(caar.
13d20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 emms-later-do-list))............
13d40 20 20 20 20 20 20 20 28 61 72 67 73 20 28 63 64 61 72 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f .......(args.(cdar.emms-later-do
13d60 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d -list)))...............(setq.emm
13d80 73 2d 6c 61 74 65 72 2d 64 6f 2d 6c 69 73 74 20 28 63 64 72 20 65 6d 6d 73 2d 6c 61 74 65 72 2d s-later-do-list.(cdr.emms-later-
13da0 64 6f 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 do-list))...............(setq.re
13dc0 73 20 28 61 70 70 6c 79 20 66 75 6e 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 s.(apply.fun.args)))).........(s
13de0 65 74 71 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 74 69 6d 65 72 20 28 72 75 6e 2d 77 69 74 etq.emms-later-do-timer.(run-wit
13e00 68 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 69 6e 74 65 72 76 61 6c 0a 20 h-timer.emms-later-do-interval..
13e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 .................nil............
13e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13e80 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 74 69 6d 65 72 29 29 29 29 29 .......'emms-later-do-timer)))))
13ea0 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 29 0a 3b 3b 3b 20 )..(provide.'emms-later-do).;;;.
13ec0 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 emms-later-do.el.ends.here......
13ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2e 65 6c 00 emms-24/emms-info-native-ogg.el.
14020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
14080 30 30 33 33 36 31 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 36 33 00 20 30 00 00 00 0033615.00000000000.015163..0...
140a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
140c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
140e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
14120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
14140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
141a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
141c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
141e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14200 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2e 65 6c 20 2d 2d 2d 20 ;;;.emms-info-native-ogg.el.---.
14220 45 4d 4d 53 20 69 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 4f 67 67 20 66 69 6c 65 EMMS.info.functions.for.Ogg.file
14240 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a s..-*-.lexical-binding:.t;.-*-..
14260 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 33 20 46 72 65 65 20 ;;.Copyright.(C).2020-2023.Free.
14280 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 Software.Foundation,.Inc...;;.Au
142a0 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 thor:.Petteri.Hintsanen.<petteri
142c0 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 h@iki.fi>..;;.This.file.is.part.
142e0 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 of.EMMS...;;.EMMS.is.free.softwa
14300 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f re;.you.can.redistribute.it.and/
14320 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 or.modify.it.;;.under.the.terms.
14340 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
14360 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f e.as.published.by.;;.the.Free.So
14380 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f ftware.Foundation;.either.versio
143a0 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 n.3,.or.(at.your.option).;;.any.
143c0 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 later.version...;;.EMMS.is.distr
143e0 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 ibuted.in.the.hope.that.it.will.
14400 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 be.useful,.but.WITHOUT.;;.ANY.WA
14420 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 RRANTY;.without.even.the.implied
14440 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 .warranty.of.MERCHANTABILITY.;;.
14460 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 or.FITNESS.FOR.A.PARTICULAR.PURP
14480 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 OSE...See.the.GNU.General.Public
144a0 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b .;;.License.for.more.details...;
144c0 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 ;.You.should.have.received.a.cop
144e0 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 y.of.the.GNU.General.Public.Lice
14500 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 nse.;;.along.with.EMMS;.see.the.
14520 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 file.COPYING..If.not,.write.to.t
14540 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 he.Free.;;.Software.Foundation,.
14560 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 Inc.,.51.Franklin.Street,.Fifth.
14580 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c Floor,.Boston,.;;.MA.02110-1301,
145a0 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 .USA...;;;.Commentary:..;;.This.
145c0 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 65 78 74 72 file.contains.functions.for.extr
145e0 61 63 74 69 6e 67 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 4f 67 67 0a 3b 3b 20 66 69 6c 65 acting.metadata.from.Ogg.;;.file
14600 73 2c 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 66 72 6f 6d 20 65 6e 63 61 70 73 75 6c 61 74 65 s,.specifically.from.encapsulate
14620 64 20 56 6f 72 62 69 73 20 61 6e 64 20 4f 70 75 73 20 73 74 72 65 61 6d 73 2e 0a 3b 3b 20 4f 6e d.Vorbis.and.Opus.streams..;;.On
14640 6c 79 20 65 6c 65 6d 65 6e 74 61 72 79 20 73 74 72 65 61 6d 73 20 61 72 65 20 73 75 70 70 6f 72 ly.elementary.streams.are.suppor
14660 74 65 64 2e 0a 3b 3b 0a 3b 3b 20 4f 67 67 20 63 6f 64 65 20 69 73 20 62 61 73 65 64 20 6f 6e 20 ted..;;.;;.Ogg.code.is.based.on.
14680 69 74 73 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 76 its.programming.documentation.av
146a0 61 69 6c 61 62 6c 65 20 61 74 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 78 69 70 68 2e 6f 72 67 2f 6f ailable.at.;;.https://xiph.org/o
146c0 67 67 2f 64 6f 63 2f 2e 0a 3b 3b 0a 3b 3b 20 56 6f 72 62 69 73 20 63 6f 64 65 20 69 73 20 62 61 gg/doc/..;;.;;.Vorbis.code.is.ba
146e0 73 65 64 20 6f 6e 20 78 69 70 68 2e 6f 72 67 27 73 20 56 6f 72 62 69 73 20 49 20 73 70 65 63 69 sed.on.xiph.org's.Vorbis.I.speci
14700 66 69 63 61 74 69 6f 6e 2c 0a 3b 3b 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 68 74 74 70 73 3a fication,.;;.available.at.https:
14720 2f 2f 78 69 70 68 2e 6f 72 67 2f 76 6f 72 62 69 73 2f 64 6f 63 2f 56 6f 72 62 69 73 5f 49 5f 73 //xiph.org/vorbis/doc/Vorbis_I_s
14740 70 65 63 2e 68 74 6d 6c 2e 20 20 53 65 65 0a 3b 3b 20 61 6c 73 6f 20 65 6d 6d 73 2d 69 6e 66 6f pec.html...See.;;.also.emms-info
14760 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2e 65 6c 2e 0a 3b 3b 0a 3b 3b 20 4f 70 75 73 20 63 6f -native-vorbis.el..;;.;;.Opus.co
14780 64 65 20 69 73 20 62 61 73 65 64 20 6f 6e 20 52 46 43 20 37 38 34 35 3b 20 73 65 65 0a 3b 3b 20 de.is.based.on.RFC.7845;.see.;;.
147a0 68 74 74 70 73 3a 2f 2f 74 6f 6f 6c 73 2e 69 65 74 66 2e 6f 72 67 2f 68 74 6d 6c 2f 72 66 63 37 https://tools.ietf.org/html/rfc7
147c0 38 34 35 2e 68 74 6d 6c 20 61 6e 64 0a 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 845.html.and.;;.emms-info-native
147e0 2d 6f 70 75 73 2e 65 6c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 -opus.el...;;;.Code:..(require.'
14800 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 29 0a 28 72 65 71 75 69 72 65 20 emms-info-native-opus).(require.
14820 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 29 0a 28 72 65 71 75 69 'emms-info-native-vorbis).(requi
14840 72 65 20 27 62 69 6e 64 61 74 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f re.'bindat)..(defconst.emms-info
14860 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 73 69 7a 65 20 36 35 33 30 37 0a 20 20 22 -native-ogg--page-size.65307..."
14880 4d 61 78 69 6d 75 6d 20 73 69 7a 65 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 4f 67 67 20 63 6f Maximum.size.for.a.single.Ogg.co
148a0 6e 74 61 69 6e 65 72 20 70 61 67 65 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d ntainer.page.")..(defconst.emms-
148c0 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 20 28 info-native-ogg--max-peek-size.(
148e0 2a 20 31 36 20 31 30 32 34 20 31 30 32 34 29 0a 20 20 22 4d 61 78 69 6d 75 6d 20 62 75 66 66 65 *.16.1024.1024)..."Maximum.buffe
14900 72 20 73 69 7a 65 20 66 6f 72 20 6d 65 74 61 64 61 74 61 20 64 65 63 6f 64 69 6e 67 2e 0a 46 75 r.size.for.metadata.decoding..Fu
14920 6e 63 74 69 6f 6e 73 20 69 6e 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 nctions.in.`emms-info-native-ogg
14940 27 20 72 65 61 64 20 63 65 72 74 61 69 6e 20 61 6d 6f 75 6e 74 73 20 6f 66 20 64 61 74 61 0a 69 '.read.certain.amounts.of.data.i
14960 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 77 68 69 6c 65 20 64 65 63 nto.a.temporary.buffer.while.dec
14980 6f 64 69 6e 67 20 6d 65 74 61 64 61 74 61 2e 20 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 0a 63 oding.metadata...This.variable.c
149a0 6f 6e 74 72 6f 6c 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 74 68 61 74 ontrols.the.maximum.size.of.that
149c0 20 62 75 66 66 65 72 3a 20 69 66 20 6d 6f 72 65 20 74 68 61 6e 0a 60 65 6d 6d 73 2d 69 6e 66 6f .buffer:.if.more.than.`emms-info
149e0 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 27 20 62 79 74 65 -native-ogg--max-peek-size'.byte
14a00 73 20 61 72 65 20 6e 65 65 64 65 64 2c 20 61 6e 20 65 72 72 6f 72 0a 69 73 20 73 69 67 6e 61 6c s.are.needed,.an.error.is.signal
14a20 65 64 2e 0a 0a 54 65 63 68 6e 69 63 61 6c 6c 79 20 6d 65 74 61 64 61 74 61 20 62 6c 6f 63 6b 73 ed...Technically.metadata.blocks
14a40 20 63 61 6e 20 68 61 76 65 20 61 6c 6d 6f 73 74 20 61 72 62 69 74 72 61 72 79 20 6c 65 6e 67 74 .can.have.almost.arbitrary.lengt
14a60 68 73 2c 0a 62 75 74 20 69 6e 20 70 72 61 63 74 69 63 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6d hs,.but.in.practice.processing.m
14a80 75 73 74 20 62 65 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6d 65 ust.be.constrained.to.prevent.me
14aa0 6d 6f 72 79 0a 65 78 68 61 75 73 74 69 6f 6e 20 69 6e 20 63 61 73 65 20 6f 66 20 67 61 72 62 6c mory.exhaustion.in.case.of.garbl
14ac0 65 64 20 6f 72 20 6d 61 6c 69 63 69 6f 75 73 20 69 6e 70 75 74 73 2e 22 29 0a 0a 28 64 65 66 63 ed.or.malicious.inputs.")..(defc
14ae0 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 67 69 63 onst.emms-info-native-ogg--magic
14b00 2d 70 61 74 74 65 72 6e 20 22 4f 67 67 53 22 0a 20 20 22 4f 67 67 20 66 6f 72 6d 61 74 20 6d 61 -pattern."OggS"..."Ogg.format.ma
14b20 67 69 63 20 63 61 70 74 75 72 65 20 70 61 74 74 65 72 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 gic.capture.pattern.")..(defcons
14b40 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 62 69 6e t.emms-info-native-ogg--page-bin
14b60 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c dat-spec...(if.(eval-when-compil
14b80 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 e.(fboundp.'bindat-type)).......
14ba0 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 63 61 70 74 75 72 65 2d 70 61 (bindat-type.........(capture-pa
14bc0 74 74 65 72 6e 20 73 74 72 20 34 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e ttern.str.4).........(_.unit.(un
14be0 6c 65 73 73 20 28 65 71 75 61 6c 20 63 61 70 74 75 72 65 2d 70 61 74 74 65 72 6e 20 65 6d 6d 73 less.(equal.capture-pattern.emms
14c00 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 -info-native-ogg--magic-pattern)
14c20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 67 67 20 66 ...................(error."Ogg.f
14c40 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 raming.mismatch:.expected.`%s',.
14c60 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 got.`%s'".......................
14c80 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 67 69 63 2d 70 ...emms-info-native-ogg--magic-p
14ca0 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 attern..........................
14cc0 63 61 70 74 75 72 65 2d 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 65 capture-pattern))).........(stre
14ce0 61 6d 2d 73 74 72 75 63 74 75 72 65 2d 76 65 72 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 20 20 20 am-structure-version.u8)........
14d00 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 3d 20 73 74 72 65 61 6d 2d 73 74 72 75 63 .(_.unit.(unless.(=.stream-struc
14d20 74 75 72 65 2d 76 65 72 73 69 6f 6e 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ture-version.0).................
14d40 20 20 28 65 72 72 6f 72 20 22 4f 67 67 20 76 65 72 73 69 6f 6e 20 6d 69 73 6d 61 74 63 68 3a 20 ..(error."Ogg.version.mismatch:.
14d60 65 78 70 65 63 74 65 64 20 30 2c 20 67 6f 74 20 25 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 expected.0,.got.%d".............
14d80 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 65 61 6d 2d 73 74 72 75 63 74 75 72 65 2d 76 65 .............stream-structure-ve
14da0 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 2d 74 79 70 65 2d 66 6c rsion))).........(header-type-fl
14dc0 61 67 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 67 72 61 6e 75 6c 65 2d 70 6f 73 69 74 69 6f 6e ag.u8).........(granule-position
14de0 20 73 69 6e 74 20 36 34 20 27 6c 65 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 2d 73 65 .sint.64.'le).........(stream-se
14e00 72 69 61 6c 2d 6e 75 6d 62 65 72 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 70 rial-number.uintr.32).........(p
14e20 61 67 65 2d 73 65 71 75 65 6e 63 65 2d 6e 6f 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 20 age-sequence-no.uintr.32).......
14e40 20 20 28 70 61 67 65 2d 63 68 65 63 6b 73 75 6d 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 ..(page-checksum.uintr.32)......
14e60 20 20 20 28 70 61 67 65 2d 73 65 67 6d 65 6e 74 73 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 73 ...(page-segments.u8).........(s
14e80 65 67 6d 65 6e 74 2d 74 61 62 6c 65 20 76 65 63 20 70 61 67 65 2d 73 65 67 6d 65 6e 74 73 29 0a egment-table.vec.page-segments).
14ea0 20 20 20 20 20 20 20 20 28 70 61 79 6c 6f 61 64 20 73 74 72 20 28 73 65 71 2d 72 65 64 75 63 65 ........(payload.str.(seq-reduce
14ec0 20 23 27 2b 20 73 65 67 6d 65 6e 74 2d 74 61 62 6c 65 20 30 29 29 29 0a 20 20 20 20 3b 3b 20 46 .#'+.segment-table.0))).....;;.F
14ee0 6f 72 20 45 6d 61 63 73 65 6e 20 6f 6c 64 65 72 20 74 68 61 6e 20 32 38 0a 20 20 20 20 27 28 28 or.Emacsen.older.than.28.....'((
14f00 63 61 70 74 75 72 65 2d 70 61 74 74 65 72 6e 20 73 74 72 20 34 29 0a 20 20 20 20 20 20 28 65 76 capture-pattern.str.4).......(ev
14f20 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6c 61 73 74 20 65 6d 6d 73 2d 69 6e 66 6f al.(unless.(equal.last.emms-info
14f40 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 -native-ogg--magic-pattern).....
14f60 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 67 67 20 66 72 61 6d 69 6e 67 20 6d 69 ..........(error."Ogg.framing.mi
14f80 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 smatch:.expected.`%s',.got.`%s'"
14fa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d ......................emms-info-
14fc0 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 native-ogg--magic-pattern.......
14fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 73 74 ...............last))).......(st
15000 72 65 61 6d 2d 73 74 72 75 63 74 75 72 65 2d 76 65 72 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 20 ream-structure-version.u8)......
15020 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 3d 20 6c 61 73 74 20 30 29 0a 20 20 20 20 20 20 .(eval.(unless.(=.last.0).......
15040 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 67 67 20 76 65 72 73 69 6f 6e 20 6d 69 73 6d ........(error."Ogg.version.mism
15060 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 30 2c 20 67 6f 74 20 25 73 22 20 6c 61 73 74 29 29 atch:.expected.0,.got.%s".last))
15080 29 0a 20 20 20 20 20 20 28 68 65 61 64 65 72 2d 74 79 70 65 2d 66 6c 61 67 20 75 38 29 0a 20 20 ).......(header-type-flag.u8)...
150a0 20 20 20 20 28 67 72 61 6e 75 6c 65 2d 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 76 65 63 20 ....(granule-position-bytes.vec.
150c0 38 29 0a 20 20 20 20 20 20 28 67 72 61 6e 75 6c 65 2d 70 6f 73 69 74 69 6f 6e 20 65 76 61 6c 20 8).......(granule-position.eval.
150e0 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 0a 20 20 20 20 20 (emms-from-twos-complement......
15100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c .........................(emms-l
15120 65 2d 74 6f 2d 69 6e 74 20 6c 61 73 74 29 20 36 34 29 29 0a 20 20 20 20 20 20 28 73 74 72 65 61 e-to-int.last).64)).......(strea
15140 6d 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 70 61 67 m-serial-number.u32r).......(pag
15160 65 2d 73 65 71 75 65 6e 63 65 2d 6e 6f 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 70 61 67 65 2d e-sequence-no.u32r).......(page-
15180 63 68 65 63 6b 73 75 6d 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 70 61 67 65 2d 73 65 67 6d 65 checksum.u32r).......(page-segme
151a0 6e 74 73 20 75 38 29 0a 20 20 20 20 20 20 28 73 65 67 6d 65 6e 74 2d 74 61 62 6c 65 20 76 65 63 nts.u8).......(segment-table.vec
151c0 20 28 70 61 67 65 2d 73 65 67 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 28 70 61 79 6c 6f 61 64 .(page-segments)).......(payload
151e0 20 73 74 72 20 28 65 76 61 6c 20 28 73 65 71 2d 72 65 64 75 63 65 20 23 27 2b 20 6c 61 73 74 20 .str.(eval.(seq-reduce.#'+.last.
15200 30 29 29 29 29 29 0a 20 20 22 4f 67 67 20 70 61 67 65 20 73 74 72 75 63 74 75 72 65 20 73 70 65 0)))))..."Ogg.page.structure.spe
15220 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e cification.")..(defconst.emms-in
15240 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 63 72 63 2d 74 61 62 6c 65 0a 20 20 5b 23 78 30 30 fo-native-ogg--crc-table...[#x00
15260 30 30 30 30 30 30 20 23 78 30 34 43 31 31 44 42 37 20 23 78 30 39 38 32 33 42 36 45 20 23 78 30 000000.#x04C11DB7.#x09823B6E.#x0
15280 44 34 33 32 36 44 39 20 23 78 31 33 30 34 37 36 44 43 0a 20 20 20 23 78 31 37 43 35 36 42 36 42 D4326D9.#x130476DC....#x17C56B6B
152a0 20 23 78 31 41 38 36 34 44 42 32 20 23 78 31 45 34 37 35 30 30 35 20 23 78 32 36 30 38 45 44 42 .#x1A864DB2.#x1E475005.#x2608EDB
152c0 38 20 23 78 32 32 43 39 46 30 30 46 0a 20 20 20 23 78 32 46 38 41 44 36 44 36 20 23 78 32 42 34 8.#x22C9F00F....#x2F8AD6D6.#x2B4
152e0 42 43 42 36 31 20 23 78 33 35 30 43 39 42 36 34 20 23 78 33 31 43 44 38 36 44 33 20 23 78 33 43 BCB61.#x350C9B64.#x31CD86D3.#x3C
15300 38 45 41 30 30 41 0a 20 20 20 23 78 33 38 34 46 42 44 42 44 20 23 78 34 43 31 31 44 42 37 30 20 8EA00A....#x384FBDBD.#x4C11DB70.
15320 23 78 34 38 44 30 43 36 43 37 20 23 78 34 35 39 33 45 30 31 45 20 23 78 34 31 35 32 46 44 41 39 #x48D0C6C7.#x4593E01E.#x4152FDA9
15340 0a 20 20 20 23 78 35 46 31 35 41 44 41 43 20 23 78 35 42 44 34 42 30 31 42 20 23 78 35 36 39 37 ....#x5F15ADAC.#x5BD4B01B.#x5697
15360 39 36 43 32 20 23 78 35 32 35 36 38 42 37 35 20 23 78 36 41 31 39 33 36 43 38 0a 20 20 20 23 78 96C2.#x52568B75.#x6A1936C8....#x
15380 36 45 44 38 32 42 37 46 20 23 78 36 33 39 42 30 44 41 36 20 23 78 36 37 35 41 31 30 31 31 20 23 6ED82B7F.#x639B0DA6.#x675A1011.#
153a0 78 37 39 31 44 34 30 31 34 20 23 78 37 44 44 43 35 44 41 33 0a 20 20 20 23 78 37 30 39 46 37 42 x791D4014.#x7DDC5DA3....#x709F7B
153c0 37 41 20 23 78 37 34 35 45 36 36 43 44 20 23 78 39 38 32 33 42 36 45 30 20 23 78 39 43 45 32 41 7A.#x745E66CD.#x9823B6E0.#x9CE2A
153e0 42 35 37 20 23 78 39 31 41 31 38 44 38 45 0a 20 20 20 23 78 39 35 36 30 39 30 33 39 20 23 78 38 B57.#x91A18D8E....#x95609039.#x8
15400 42 32 37 43 30 33 43 20 23 78 38 46 45 36 44 44 38 42 20 23 78 38 32 41 35 46 42 35 32 20 23 78 B27C03C.#x8FE6DD8B.#x82A5FB52.#x
15420 38 36 36 34 45 36 45 35 0a 20 20 20 23 78 42 45 32 42 35 42 35 38 20 23 78 42 41 45 41 34 36 45 8664E6E5....#xBE2B5B58.#xBAEA46E
15440 46 20 23 78 42 37 41 39 36 30 33 36 20 23 78 42 33 36 38 37 44 38 31 20 23 78 41 44 32 46 32 44 F.#xB7A96036.#xB3687D81.#xAD2F2D
15460 38 34 0a 20 20 20 23 78 41 39 45 45 33 30 33 33 20 23 78 41 34 41 44 31 36 45 41 20 23 78 41 30 84....#xA9EE3033.#xA4AD16EA.#xA0
15480 36 43 30 42 35 44 20 23 78 44 34 33 32 36 44 39 30 20 23 78 44 30 46 33 37 30 32 37 0a 20 20 20 6C0B5D.#xD4326D90.#xD0F37027....
154a0 23 78 44 44 42 30 35 36 46 45 20 23 78 44 39 37 31 34 42 34 39 20 23 78 43 37 33 36 31 42 34 43 #xDDB056FE.#xD9714B49.#xC7361B4C
154c0 20 23 78 43 33 46 37 30 36 46 42 20 23 78 43 45 42 34 32 30 32 32 0a 20 20 20 23 78 43 41 37 35 .#xC3F706FB.#xCEB42022....#xCA75
154e0 33 44 39 35 20 23 78 46 32 33 41 38 30 32 38 20 23 78 46 36 46 42 39 44 39 46 20 23 78 46 42 42 3D95.#xF23A8028.#xF6FB9D9F.#xFBB
15500 38 42 42 34 36 20 23 78 46 46 37 39 41 36 46 31 0a 20 20 20 23 78 45 31 33 45 46 36 46 34 20 23 8BB46.#xFF79A6F1....#xE13EF6F4.#
15520 78 45 35 46 46 45 42 34 33 20 23 78 45 38 42 43 43 44 39 41 20 23 78 45 43 37 44 44 30 32 44 20 xE5FFEB43.#xE8BCCD9A.#xEC7DD02D.
15540 23 78 33 34 38 36 37 30 37 37 0a 20 20 20 23 78 33 30 34 37 36 44 43 30 20 23 78 33 44 30 34 34 #x34867077....#x30476DC0.#x3D044
15560 42 31 39 20 23 78 33 39 43 35 35 36 41 45 20 23 78 32 37 38 32 30 36 41 42 20 23 78 32 33 34 33 B19.#x39C556AE.#x278206AB.#x2343
15580 31 42 31 43 0a 20 20 20 23 78 32 45 30 30 33 44 43 35 20 23 78 32 41 43 31 32 30 37 32 20 23 78 1B1C....#x2E003DC5.#x2AC12072.#x
155a0 31 32 38 45 39 44 43 46 20 23 78 31 36 34 46 38 30 37 38 20 23 78 31 42 30 43 41 36 41 31 0a 20 128E9DCF.#x164F8078.#x1B0CA6A1..
155c0 20 20 23 78 31 46 43 44 42 42 31 36 20 23 78 30 31 38 41 45 42 31 33 20 23 78 30 35 34 42 46 36 ..#x1FCDBB16.#x018AEB13.#x054BF6
155e0 41 34 20 23 78 30 38 30 38 44 30 37 44 20 23 78 30 43 43 39 43 44 43 41 0a 20 20 20 23 78 37 38 A4.#x0808D07D.#x0CC9CDCA....#x78
15600 39 37 41 42 30 37 20 23 78 37 43 35 36 42 36 42 30 20 23 78 37 31 31 35 39 30 36 39 20 23 78 37 97AB07.#x7C56B6B0.#x71159069.#x7
15620 35 44 34 38 44 44 45 20 23 78 36 42 39 33 44 44 44 42 0a 20 20 20 23 78 36 46 35 32 43 30 36 43 5D48DDE.#x6B93DDDB....#x6F52C06C
15640 20 23 78 36 32 31 31 45 36 42 35 20 23 78 36 36 44 30 46 42 30 32 20 23 78 35 45 39 46 34 36 42 .#x6211E6B5.#x66D0FB02.#x5E9F46B
15660 46 20 23 78 35 41 35 45 35 42 30 38 0a 20 20 20 23 78 35 37 31 44 37 44 44 31 20 23 78 35 33 44 F.#x5A5E5B08....#x571D7DD1.#x53D
15680 43 36 30 36 36 20 23 78 34 44 39 42 33 30 36 33 20 23 78 34 39 35 41 32 44 44 34 20 23 78 34 34 C6066.#x4D9B3063.#x495A2DD4.#x44
156a0 31 39 30 42 30 44 0a 20 20 20 23 78 34 30 44 38 31 36 42 41 20 23 78 41 43 41 35 43 36 39 37 20 190B0D....#x40D816BA.#xACA5C697.
156c0 23 78 41 38 36 34 44 42 32 30 20 23 78 41 35 32 37 46 44 46 39 20 23 78 41 31 45 36 45 30 34 45 #xA864DB20.#xA527FDF9.#xA1E6E04E
156e0 0a 20 20 20 23 78 42 46 41 31 42 30 34 42 20 23 78 42 42 36 30 41 44 46 43 20 23 78 42 36 32 33 ....#xBFA1B04B.#xBB60ADFC.#xB623
15700 38 42 32 35 20 23 78 42 32 45 32 39 36 39 32 20 23 78 38 41 41 44 32 42 32 46 0a 20 20 20 23 78 8B25.#xB2E29692.#x8AAD2B2F....#x
15720 38 45 36 43 33 36 39 38 20 23 78 38 33 32 46 31 30 34 31 20 23 78 38 37 45 45 30 44 46 36 20 23 8E6C3698.#x832F1041.#x87EE0DF6.#
15740 78 39 39 41 39 35 44 46 33 20 23 78 39 44 36 38 34 30 34 34 0a 20 20 20 23 78 39 30 32 42 36 36 x99A95DF3.#x9D684044....#x902B66
15760 39 44 20 23 78 39 34 45 41 37 42 32 41 20 23 78 45 30 42 34 31 44 45 37 20 23 78 45 34 37 35 30 9D.#x94EA7B2A.#xE0B41DE7.#xE4750
15780 30 35 30 20 23 78 45 39 33 36 32 36 38 39 0a 20 20 20 23 78 45 44 46 37 33 42 33 45 20 23 78 46 050.#xE9362689....#xEDF73B3E.#xF
157a0 33 42 30 36 42 33 42 20 23 78 46 37 37 31 37 36 38 43 20 23 78 46 41 33 32 35 30 35 35 20 23 78 3B06B3B.#xF771768C.#xFA325055.#x
157c0 46 45 46 33 34 44 45 32 0a 20 20 20 23 78 43 36 42 43 46 30 35 46 20 23 78 43 32 37 44 45 44 45 FEF34DE2....#xC6BCF05F.#xC27DEDE
157e0 38 20 23 78 43 46 33 45 43 42 33 31 20 23 78 43 42 46 46 44 36 38 36 20 23 78 44 35 42 38 38 36 8.#xCF3ECB31.#xCBFFD686.#xD5B886
15800 38 33 0a 20 20 20 23 78 44 31 37 39 39 42 33 34 20 23 78 44 43 33 41 42 44 45 44 20 23 78 44 38 83....#xD1799B34.#xDC3ABDED.#xD8
15820 46 42 41 30 35 41 20 23 78 36 39 30 43 45 30 45 45 20 23 78 36 44 43 44 46 44 35 39 0a 20 20 20 FBA05A.#x690CE0EE.#x6DCDFD59....
15840 23 78 36 30 38 45 44 42 38 30 20 23 78 36 34 34 46 43 36 33 37 20 23 78 37 41 30 38 39 36 33 32 #x608EDB80.#x644FC637.#x7A089632
15860 20 23 78 37 45 43 39 38 42 38 35 20 23 78 37 33 38 41 41 44 35 43 0a 20 20 20 23 78 37 37 34 42 .#x7EC98B85.#x738AAD5C....#x774B
15880 42 30 45 42 20 23 78 34 46 30 34 30 44 35 36 20 23 78 34 42 43 35 31 30 45 31 20 23 78 34 36 38 B0EB.#x4F040D56.#x4BC510E1.#x468
158a0 36 33 36 33 38 20 23 78 34 32 34 37 32 42 38 46 0a 20 20 20 23 78 35 43 30 30 37 42 38 41 20 23 63638.#x42472B8F....#x5C007B8A.#
158c0 78 35 38 43 31 36 36 33 44 20 23 78 35 35 38 32 34 30 45 34 20 23 78 35 31 34 33 35 44 35 33 20 x58C1663D.#x558240E4.#x51435D53.
158e0 23 78 32 35 31 44 33 42 39 45 0a 20 20 20 23 78 32 31 44 43 32 36 32 39 20 23 78 32 43 39 46 30 #x251D3B9E....#x21DC2629.#x2C9F0
15900 30 46 30 20 23 78 32 38 35 45 31 44 34 37 20 23 78 33 36 31 39 34 44 34 32 20 23 78 33 32 44 38 0F0.#x285E1D47.#x36194D42.#x32D8
15920 35 30 46 35 0a 20 20 20 23 78 33 46 39 42 37 36 32 43 20 23 78 33 42 35 41 36 42 39 42 20 23 78 50F5....#x3F9B762C.#x3B5A6B9B.#x
15940 30 33 31 35 44 36 32 36 20 23 78 30 37 44 34 43 42 39 31 20 23 78 30 41 39 37 45 44 34 38 0a 20 0315D626.#x07D4CB91.#x0A97ED48..
15960 20 20 23 78 30 45 35 36 46 30 46 46 20 23 78 31 30 31 31 41 30 46 41 20 23 78 31 34 44 30 42 44 ..#x0E56F0FF.#x1011A0FA.#x14D0BD
15980 34 44 20 23 78 31 39 39 33 39 42 39 34 20 23 78 31 44 35 32 38 36 32 33 0a 20 20 20 23 78 46 31 4D.#x19939B94.#x1D528623....#xF1
159a0 32 46 35 36 30 45 20 23 78 46 35 45 45 34 42 42 39 20 23 78 46 38 41 44 36 44 36 30 20 23 78 46 2F560E.#xF5EE4BB9.#xF8AD6D60.#xF
159c0 43 36 43 37 30 44 37 20 23 78 45 32 32 42 32 30 44 32 0a 20 20 20 23 78 45 36 45 41 33 44 36 35 C6C70D7.#xE22B20D2....#xE6EA3D65
159e0 20 23 78 45 42 41 39 31 42 42 43 20 23 78 45 46 36 38 30 36 30 42 20 23 78 44 37 32 37 42 42 42 .#xEBA91BBC.#xEF68060B.#xD727BBB
15a00 36 20 23 78 44 33 45 36 41 36 30 31 0a 20 20 20 23 78 44 45 41 35 38 30 44 38 20 23 78 44 41 36 6.#xD3E6A601....#xDEA580D8.#xDA6
15a20 34 39 44 36 46 20 23 78 43 34 32 33 43 44 36 41 20 23 78 43 30 45 32 44 30 44 44 20 23 78 43 44 49D6F.#xC423CD6A.#xC0E2D0DD.#xCD
15a40 41 31 46 36 30 34 0a 20 20 20 23 78 43 39 36 30 45 42 42 33 20 23 78 42 44 33 45 38 44 37 45 20 A1F604....#xC960EBB3.#xBD3E8D7E.
15a60 23 78 42 39 46 46 39 30 43 39 20 23 78 42 34 42 43 42 36 31 30 20 23 78 42 30 37 44 41 42 41 37 #xB9FF90C9.#xB4BCB610.#xB07DABA7
15a80 0a 20 20 20 23 78 41 45 33 41 46 42 41 32 20 23 78 41 41 46 42 45 36 31 35 20 23 78 41 37 42 38 ....#xAE3AFBA2.#xAAFBE615.#xA7B8
15aa0 43 30 43 43 20 23 78 41 33 37 39 44 44 37 42 20 23 78 39 42 33 36 36 30 43 36 0a 20 20 20 23 78 C0CC.#xA379DD7B.#x9B3660C6....#x
15ac0 39 46 46 37 37 44 37 31 20 23 78 39 32 42 34 35 42 41 38 20 23 78 39 36 37 35 34 36 31 46 20 23 9FF77D71.#x92B45BA8.#x9675461F.#
15ae0 78 38 38 33 32 31 36 31 41 20 23 78 38 43 46 33 30 42 41 44 0a 20 20 20 23 78 38 31 42 30 32 44 x8832161A.#x8CF30BAD....#x81B02D
15b00 37 34 20 23 78 38 35 37 31 33 30 43 33 20 23 78 35 44 38 41 39 30 39 39 20 23 78 35 39 34 42 38 74.#x857130C3.#x5D8A9099.#x594B8
15b20 44 32 45 20 23 78 35 34 30 38 41 42 46 37 0a 20 20 20 23 78 35 30 43 39 42 36 34 30 20 23 78 34 D2E.#x5408ABF7....#x50C9B640.#x4
15b40 45 38 45 45 36 34 35 20 23 78 34 41 34 46 46 42 46 32 20 23 78 34 37 30 43 44 44 32 42 20 23 78 E8EE645.#x4A4FFBF2.#x470CDD2B.#x
15b60 34 33 43 44 43 30 39 43 0a 20 20 20 23 78 37 42 38 32 37 44 32 31 20 23 78 37 46 34 33 36 30 39 43CDC09C....#x7B827D21.#x7F43609
15b80 36 20 23 78 37 32 30 30 34 36 34 46 20 23 78 37 36 43 31 35 42 46 38 20 23 78 36 38 38 36 30 42 6.#x7200464F.#x76C15BF8.#x68860B
15ba0 46 44 0a 20 20 20 23 78 36 43 34 37 31 36 34 41 20 23 78 36 31 30 34 33 30 39 33 20 23 78 36 35 FD....#x6C47164A.#x61043093.#x65
15bc0 43 35 32 44 32 34 20 23 78 31 31 39 42 34 42 45 39 20 23 78 31 35 35 41 35 36 35 45 0a 20 20 20 C52D24.#x119B4BE9.#x155A565E....
15be0 23 78 31 38 31 39 37 30 38 37 20 23 78 31 43 44 38 36 44 33 30 20 23 78 30 32 39 46 33 44 33 35 #x18197087.#x1CD86D30.#x029F3D35
15c00 20 23 78 30 36 35 45 32 30 38 32 20 23 78 30 42 31 44 30 36 35 42 0a 20 20 20 23 78 30 46 44 43 .#x065E2082.#x0B1D065B....#x0FDC
15c20 31 42 45 43 20 23 78 33 37 39 33 41 36 35 31 20 23 78 33 33 35 32 42 42 45 36 20 23 78 33 45 31 1BEC.#x3793A651.#x3352BBE6.#x3E1
15c40 31 39 44 33 46 20 23 78 33 41 44 30 38 30 38 38 0a 20 20 20 23 78 32 34 39 37 44 30 38 44 20 23 19D3F.#x3AD08088....#x2497D08D.#
15c60 78 32 30 35 36 43 44 33 41 20 23 78 32 44 31 35 45 42 45 33 20 23 78 32 39 44 34 46 36 35 34 20 x2056CD3A.#x2D15EBE3.#x29D4F654.
15c80 23 78 43 35 41 39 32 36 37 39 0a 20 20 20 23 78 43 31 36 38 33 42 43 45 20 23 78 43 43 32 42 31 #xC5A92679....#xC1683BCE.#xCC2B1
15ca0 44 31 37 20 23 78 43 38 45 41 30 30 41 30 20 23 78 44 36 41 44 35 30 41 35 20 23 78 44 32 36 43 D17.#xC8EA00A0.#xD6AD50A5.#xD26C
15cc0 34 44 31 32 0a 20 20 20 23 78 44 46 32 46 36 42 43 42 20 23 78 44 42 45 45 37 36 37 43 20 23 78 4D12....#xDF2F6BCB.#xDBEE767C.#x
15ce0 45 33 41 31 43 42 43 31 20 23 78 45 37 36 30 44 36 37 36 20 23 78 45 41 32 33 46 30 41 46 0a 20 E3A1CBC1.#xE760D676.#xEA23F0AF..
15d00 20 20 23 78 45 45 45 32 45 44 31 38 20 23 78 46 30 41 35 42 44 31 44 20 23 78 46 34 36 34 41 30 ..#xEEE2ED18.#xF0A5BD1D.#xF464A0
15d20 41 41 20 23 78 46 39 32 37 38 36 37 33 20 23 78 46 44 45 36 39 42 43 34 0a 20 20 20 23 78 38 39 AA.#xF9278673.#xFDE69BC4....#x89
15d40 42 38 46 44 30 39 20 23 78 38 44 37 39 45 30 42 45 20 23 78 38 30 33 41 43 36 36 37 20 23 78 38 B8FD09.#x8D79E0BE.#x803AC667.#x8
15d60 34 46 42 44 42 44 30 20 23 78 39 41 42 43 38 42 44 35 0a 20 20 20 23 78 39 45 37 44 39 36 36 32 4FBDBD0.#x9ABC8BD5....#x9E7D9662
15d80 20 23 78 39 33 33 45 42 30 42 42 20 23 78 39 37 46 46 41 44 30 43 20 23 78 41 46 42 30 31 30 42 .#x933EB0BB.#x97FFAD0C.#xAFB010B
15da0 31 20 23 78 41 42 37 31 30 44 30 36 0a 20 20 20 23 78 41 36 33 32 32 42 44 46 20 23 78 41 32 46 1.#xAB710D06....#xA6322BDF.#xA2F
15dc0 33 33 36 36 38 20 23 78 42 43 42 34 36 36 36 44 20 23 78 42 38 37 35 37 42 44 41 20 23 78 42 35 33668.#xBCB4666D.#xB8757BDA.#xB5
15de0 33 36 35 44 30 33 0a 20 20 20 23 78 42 31 46 37 34 30 42 34 5d 0a 20 20 22 4c 6f 6f 6b 75 70 20 365D03....#xB1F740B4]..."Lookup.
15e00 74 61 62 6c 65 20 66 6f 72 20 63 61 6c 63 75 6c 61 74 69 6e 67 20 4f 67 67 20 63 68 65 63 6b 73 table.for.calculating.Ogg.checks
15e20 75 6d 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d ums.")..(defun.emms-info-native-
15e40 6f 67 67 2d 64 65 63 6f 64 65 2d 6d 65 74 61 64 61 74 61 20 28 66 69 6c 65 6e 61 6d 65 20 73 74 ogg-decode-metadata.(filename.st
15e60 72 65 61 6d 2d 74 79 70 65 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 6d 65 ream-type)..."Read.and.decode.me
15e80 74 61 64 61 74 61 20 66 72 6f 6d 20 4f 67 67 20 66 69 6c 65 20 46 49 4c 45 4e 41 4d 45 2e 0a 54 tadata.from.Ogg.file.FILENAME..T
15ea0 68 65 20 66 69 6c 65 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20 61 20 he.file.is.assumed.to.contain.a.
15ec0 73 69 6e 67 6c 65 20 73 74 72 65 61 6d 20 6f 66 20 74 79 70 65 0a 53 54 52 45 41 4d 2d 54 59 50 single.stream.of.type.STREAM-TYP
15ee0 45 2c 20 77 68 69 63 68 20 6d 75 73 74 20 65 69 74 68 65 72 20 60 76 6f 72 62 69 73 27 20 6f 72 E,.which.must.either.`vorbis'.or
15f00 20 60 6f 70 75 73 27 2e 0a 0a 52 65 74 75 72 6e 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 6c .`opus'...Return.comments.in.a.l
15f20 69 73 74 20 6f 66 20 28 46 49 45 4c 44 20 2e 20 56 41 4c 55 45 29 20 63 6f 6e 73 20 63 65 6c 6c ist.of.(FIELD...VALUE).cons.cell
15f40 73 2e 0a 41 64 64 69 74 69 6f 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 73 74 72 65 61 6d 20 64 75 s..Additionally.return.stream.du
15f60 72 61 74 69 6f 6e 20 69 6e 20 60 70 6c 61 79 69 6e 67 2d 74 69 6d 65 27 20 66 69 65 6c 64 2e 0a ration.in.`playing-time'.field..
15f80 0a 53 65 65 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 .See.`emms-info-native-vorbis--s
15fa0 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 6c plit-comment'.for.details."...(l
15fc0 65 74 2a 20 28 28 70 61 63 6b 65 74 73 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e et*.((packets...........(emms-in
15fe0 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 72 65 61 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 70 fo-native-ogg--read-and-decode-p
16000 61 63 6b 65 74 73 20 66 69 6c 65 6e 61 6d 65 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 ackets.filename.2))..........(he
16020 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 aders...........(emms-info-nativ
16040 65 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 68 65 61 64 65 72 73 20 70 61 63 6b 65 74 73 20 73 74 e-ogg--decode-headers.packets.st
16060 72 65 61 6d 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 ream-type))..........(user-comme
16080 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 nts...........(bindat-get-field.
160a0 68 65 61 64 65 72 73 20 27 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 20 27 75 73 65 72 2d 63 6f headers.'comment-header.'user-co
160c0 6d 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 mments))..........(comments.....
160e0 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 65 ......(emms-info-native-vorbis-e
16100 78 74 72 61 63 74 2d 63 6f 6d 6d 65 6e 74 73 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 29 29 0a xtract-comments.user-comments)).
16120 20 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d 70 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 28 65 .........(last-page...........(e
16140 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 72 65 61 64 2d 61 6e 64 2d 64 65 mms-info-native-ogg--read-and-de
16160 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 code-last-page.filename)).......
16180 20 20 20 28 67 72 61 6e 75 6c 65 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 ...(granule-pos...........(alist
161a0 2d 67 65 74 20 27 67 72 61 6e 75 6c 65 2d 70 6f 73 69 74 69 6f 6e 20 6c 61 73 74 2d 70 61 67 65 -get.'granule-position.last-page
161c0 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 74 65 0a 20 20 20 20 20 20 20 ))..........(sample-rate........
161e0 20 20 20 28 69 66 20 28 65 71 20 73 74 72 65 61 6d 2d 74 79 70 65 20 27 76 6f 72 62 69 73 29 0a ...(if.(eq.stream-type.'vorbis).
16200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 ..............(bindat-get-field.
16220 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 headers.........................
16240 20 20 20 20 20 20 20 20 27 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 2d 68 65 61 64 65 72 0a 20 ........'identification-header..
16260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 ...............................'
16280 73 61 6d 70 6c 65 2d 72 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 70 75 73 sample-rate).............;;.Opus
162a0 20 61 73 73 75 6d 65 73 20 61 20 66 69 78 65 64 20 73 61 6d 70 6c 65 20 72 61 74 65 20 6f 66 20 .assumes.a.fixed.sample.rate.of.
162c0 34 38 20 6b 48 7a 20 66 6f 72 20 67 72 61 6e 75 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 48.kHz.for.granule.............;
162e0 3b 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 34 38 30 30 30 29 29 0a ;.position..............48000)).
16300 20 20 20 20 20 20 20 20 20 28 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 .........(playing-time..........
16320 20 28 77 68 65 6e 20 28 61 6e 64 20 67 72 61 6e 75 6c 65 2d 70 6f 73 20 28 3e 20 67 72 61 6e 75 .(when.(and.granule-pos.(>.granu
16340 6c 65 2d 70 6f 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 67 72 61 6e 75 6c le-pos.0)).............(/.granul
16360 65 2d 70 6f 73 20 73 61 6d 70 6c 65 2d 72 61 74 65 29 29 29 29 0a 20 20 20 20 28 6e 63 6f 6e 63 e-pos.sample-rate)))).....(nconc
16380 20 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 6c 61 79 69 .comments............(when.playi
163a0 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 ng-time..............(list.(cons
163c0 20 22 70 6c 61 79 69 6e 67 2d 74 69 6d 65 22 20 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 29 29 29 ."playing-time".playing-time))))
163e0 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d ))..(defun.emms-info-native-ogg-
16400 2d 72 65 61 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 70 61 63 6b 65 74 73 20 28 66 69 6c 65 6e 61 -read-and-decode-packets.(filena
16420 6d 65 20 70 61 63 6b 65 74 73 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 50 me.packets)..."Read.and.decode.P
16440 41 43 4b 45 54 53 20 70 61 63 6b 65 74 73 20 66 72 6f 6d 20 4f 67 67 20 66 69 6c 65 20 46 49 4c ACKETS.packets.from.Ogg.file.FIL
16460 45 4e 41 4d 45 2e 0a 52 65 61 64 20 69 6e 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 73 74 61 ENAME..Read.in.data.from.the.sta
16480 72 74 20 6f 66 20 46 49 4c 45 4e 41 4d 45 2c 20 72 65 6d 6f 76 65 20 4f 67 67 20 70 61 63 6b 65 rt.of.FILENAME,.remove.Ogg.packe
164a0 74 0a 66 72 61 6d 65 73 2c 20 61 6e 64 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 70 61 79 6c 6f 61 t.frames,.and.concatenate.payloa
164c0 64 73 20 75 6e 74 69 6c 20 61 74 20 6c 65 61 73 74 20 50 41 43 4b 45 54 53 20 6e 75 6d 62 65 72 ds.until.at.least.PACKETS.number
164e0 20 6f 66 0a 70 61 63 6b 65 74 73 20 68 61 76 65 20 62 65 65 6e 20 64 65 63 6f 64 65 64 2e 20 20 .of.packets.have.been.decoded...
16500 52 65 74 75 72 6e 20 74 68 65 20 64 65 63 6f 64 65 64 20 70 61 63 6b 65 74 73 20 69 6e 20 61 0a Return.the.decoded.packets.in.a.
16520 73 74 72 69 6e 67 2c 20 63 6f 6e 63 61 74 65 6e 61 74 65 64 2e 0a 0a 52 65 61 64 20 64 61 74 61 string,.concatenated...Read.data
16540 20 69 6e 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d .in.`emms-info-native-ogg--page-
16560 73 69 7a 65 27 20 63 68 75 6e 6b 73 2e 20 20 49 66 20 6d 6f 72 65 0a 74 68 61 6e 20 60 65 6d 6d size'.chunks...If.more.than.`emm
16580 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 s-info-native-ogg--max-peek-size
165a0 27 20 62 79 74 65 73 20 6f 66 20 64 61 74 61 20 77 6f 75 6c 64 20 62 65 0a 72 65 61 64 2c 20 73 '.bytes.of.data.would.be.read,.s
165c0 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 4f 6e 6c 79 20 65 6c 65 6d 65 6e 74 61 72 79 ignal.an.error...Only.elementary
165e0 20 73 74 72 65 61 6d 73 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 2c 20 74 68 61 74 20 69 73 2c .streams.are.supported,.that.is,
16600 20 46 49 4c 45 4e 41 4d 45 20 73 68 6f 75 6c 64 0a 63 6f 6e 74 61 69 6e 20 6f 6e 6c 79 20 61 20 .FILENAME.should.contain.only.a.
16620 73 69 6e 67 6c 65 20 6c 6f 67 69 63 61 6c 20 73 74 72 65 61 6d 2e 20 20 4e 6f 74 65 20 74 68 61 single.logical.stream...Note.tha
16640 74 20 74 68 69 73 20 61 73 73 75 6d 70 74 69 6f 6e 0a 69 73 20 6e 6f 74 20 76 65 72 69 66 69 65 t.this.assumption.is.not.verifie
16660 64 3a 20 77 69 74 68 20 6e 6f 6e 2d 65 6c 65 6d 65 6e 74 61 72 79 20 73 74 72 65 61 6d 73 20 70 d:.with.non-elementary.streams.p
16680 61 63 6b 65 74 73 20 66 72 6f 6d 0a 64 69 66 66 65 72 65 6e 74 20 73 74 72 65 61 6d 73 20 77 69 ackets.from.different.streams.wi
166a0 6c 6c 20 62 65 20 6d 69 78 65 64 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 6f 75 74 20 61 6e 20 ll.be.mixed.together.without.an.
166c0 65 72 72 6f 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 75 6d 2d 70 61 63 6b 65 74 73 20 30 29 20 error."...(let.((num-packets.0).
166e0 28 6f 66 66 73 65 74 20 30 29 20 28 73 74 72 65 61 6d 20 28 6c 69 73 74 29 29 29 0a 20 20 20 20 (offset.0).(stream.(list))).....
16700 28 77 68 69 6c 65 20 28 3c 20 6e 75 6d 2d 70 61 63 6b 65 74 73 20 70 61 63 6b 65 74 73 29 0a 20 (while.(<.num-packets.packets)..
16720 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 6f 66 66 73 65 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e .....(when.(>.offset.emms-info-n
16740 61 74 69 76 65 2d 6f 67 67 2d 2d 6d 61 78 2d 70 65 65 6b 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 ative-ogg--max-peek-size).......
16760 20 20 28 65 72 72 6f 72 20 22 4f 67 67 20 70 61 79 6c 6f 61 64 20 69 73 20 74 6f 6f 20 6c 61 72 ..(error."Ogg.payload.is.too.lar
16780 67 65 22 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 67 65 20 28 65 6d 6d 73 2d 69 6e ge")).......(let.((page.(emms-in
167a0 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 72 65 61 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 70 fo-native-ogg--read-and-decode-p
167c0 61 67 65 20 66 69 6c 65 6e 61 6d 65 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 age.filename.offset))).........(
167e0 73 65 74 71 20 6e 75 6d 2d 70 61 63 6b 65 74 73 20 28 2b 20 6e 75 6d 2d 70 61 63 6b 65 74 73 0a setq.num-packets.(+.num-packets.
16800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d .............................(em
16820 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 6e 75 6d 2d 70 61 63 6b 65 74 73 20 ms-info-native-ogg--num-packets.
16840 70 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 2b 20 page))).........(setq.offset.(+.
16860 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 offset.........................(
16880 62 69 6e 64 61 74 2d 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bindat-length...................
168a0 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 .......emms-info-native-ogg--pag
168c0 65 2d 62 69 6e 64 61 74 2d 73 70 65 63 20 70 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 e-bindat-spec.page))).........(p
168e0 75 73 68 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 70 61 67 65 20 27 70 61 79 6c ush.(bindat-get-field.page.'payl
16900 6f 61 64 29 20 73 74 72 65 61 6d 29 29 29 0a 20 20 20 20 28 72 65 76 65 72 73 65 20 28 6d 61 70 oad).stream))).....(reverse.(map
16920 63 6f 6e 63 61 74 20 23 27 6e 72 65 76 65 72 73 65 20 73 74 72 65 61 6d 20 6e 69 6c 29 29 29 29 concat.#'nreverse.stream.nil))))
16940 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 72 ..(defun.emms-info-native-ogg--r
16960 65 61 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 70 61 67 65 20 28 66 69 6c 65 6e 61 6d 65 20 6f 66 ead-and-decode-page.(filename.of
16980 66 73 65 74 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 61 20 73 69 6e 67 6c fset)..."Read.and.decode.a.singl
169a0 65 20 4f 67 67 20 70 61 67 65 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 53 74 61 72 74 69 e.Ogg.page.from.FILENAME..Starti
169c0 6e 67 20 72 65 61 64 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 62 79 74 65 20 6f 66 66 73 65 74 ng.reading.data.from.byte.offset
169e0 20 4f 46 46 53 45 54 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 70 6c 69 73 74 20 66 72 6f 6d 20 .OFFSET...Return.the.plist.from.
16a00 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 70 61 `emms-info-native-ogg--decode-pa
16a20 67 65 27 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 ge'."...(with-temp-buffer.....(s
16a40 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e et-buffer-multibyte.nil).....(in
16a60 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 0a 20 20 20 sert-file-contents-literally....
16a80 20 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 6f 66 66 73 65 74 20 28 2b 20 6f 66 66 73 65 74 20 ..filename.nil.offset.(+.offset.
16aa0 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 73 69 7a 65 29 emms-info-native-ogg--page-size)
16ac0 29 0a 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e ).....(bindat-unpack.emms-info-n
16ae0 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 20 20 ative-ogg--page-bindat-spec.....
16b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 ...............(buffer-string)))
16b20 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d )..(defun.emms-info-native-ogg--
16b40 6e 75 6d 2d 70 61 63 6b 65 74 73 20 28 70 61 67 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 num-packets.(page)..."Return.the
16b60 20 6e 75 6d 62 65 72 20 6f 66 20 70 61 63 6b 65 74 73 20 69 6e 20 4f 67 67 20 70 61 67 65 20 50 .number.of.packets.in.Ogg.page.P
16b80 41 47 45 2e 0a 50 41 47 45 20 6d 75 73 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 60 65 6d AGE..PAGE.must.correspond.to.`em
16ba0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 62 69 6e 64 61 74 2d ms-info-native-ogg--page-bindat-
16bc0 73 70 65 63 27 2e 22 0a 20 20 3b 3b 20 45 76 65 72 79 20 65 6c 65 6d 65 6e 74 20 74 68 61 74 20 spec'."...;;.Every.element.that.
16be0 69 73 20 6c 65 73 73 20 74 68 61 6e 20 32 35 35 20 69 6e 20 74 68 65 20 73 65 67 6d 65 6e 74 20 is.less.than.255.in.the.segment.
16c00 74 61 62 6c 65 0a 20 20 3b 3b 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 70 61 63 6b 65 74 20 62 table...;;.represents.a.packet.b
16c20 6f 75 6e 64 61 72 79 2e 0a 20 20 28 6c 65 6e 67 74 68 20 28 73 65 71 2d 66 69 6c 74 65 72 20 28 oundary....(length.(seq-filter.(
16c40 6c 61 6d 62 64 61 20 28 65 6c 74 29 20 28 3c 20 65 6c 74 20 32 35 35 29 29 0a 20 20 20 20 20 20 lambda.(elt).(<.elt.255)).......
16c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c ................(bindat-get-fiel
16c80 64 20 70 61 67 65 20 27 73 65 67 6d 65 6e 74 2d 74 61 62 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 d.page.'segment-table))))..(defu
16ca0 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 68 n.emms-info-native-ogg--decode-h
16cc0 65 61 64 65 72 73 20 28 70 61 63 6b 65 74 73 20 73 74 72 65 61 6d 2d 74 79 70 65 29 0a 20 20 22 eaders.(packets.stream-type)..."
16ce0 44 65 63 6f 64 65 20 66 69 72 73 74 20 74 77 6f 20 73 74 72 65 61 6d 20 68 65 61 64 65 72 73 20 Decode.first.two.stream.headers.
16d00 66 72 6f 6d 20 50 41 43 4b 45 54 53 20 66 6f 72 20 53 54 52 45 41 4d 2d 54 59 50 45 2e 0a 53 54 from.PACKETS.for.STREAM-TYPE..ST
16d20 52 45 41 4d 2d 54 59 50 45 20 6d 75 73 74 20 62 65 20 65 69 74 68 65 72 20 60 76 6f 72 62 69 73 REAM-TYPE.must.be.either.`vorbis
16d40 27 20 6f 72 20 60 6f 70 75 73 27 2e 0a 0a 52 65 74 75 72 6e 20 61 20 73 74 72 75 63 74 75 72 65 '.or.`opus'...Return.a.structure
16d60 20 74 68 61 74 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 65 69 74 68 65 72 0a 60 65 6d 6d .that.corresponds.to.either.`emm
16d80 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 68 65 61 64 65 72 73 2d 62 69 6e 64 s-info-native-opus--headers-bind
16da0 61 74 2d 73 70 65 63 27 20 6f 72 0a 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f at-spec'.or.`emms-info-native-vo
16dc0 72 62 69 73 2d 2d 68 65 61 64 65 72 73 2d 62 69 6e 64 61 74 2d 73 70 65 63 27 2e 22 0a 20 20 28 rbis--headers-bindat-spec'."...(
16de0 63 6f 6e 64 20 28 28 65 71 20 73 74 72 65 61 6d 2d 74 79 70 65 20 27 76 6f 72 62 69 73 29 0a 20 cond.((eq.stream-type.'vorbis)..
16e00 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f ........(bindat-unpack.emms-info
16e20 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 68 65 61 64 65 72 73 2d 62 69 6e 64 61 74 2d 73 -native-vorbis--headers-bindat-s
16e40 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 63 6b pec.........................pack
16e60 65 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 28 65 71 20 73 74 72 65 61 6d 2d 74 79 70 65 20 27 ets)).........((eq.stream-type.'
16e80 6f 70 75 73 29 0a 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d opus)..........(bindat-unpack.em
16ea0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 68 65 61 64 65 72 73 2d 62 69 6e ms-info-native-opus--headers-bin
16ec0 64 61 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dat-spec........................
16ee0 20 70 61 63 6b 65 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 55 6e .packets)).........(t.(error."Un
16f00 6b 6e 6f 77 6e 20 73 74 72 65 61 6d 20 74 79 70 65 20 25 73 22 20 73 74 72 65 61 6d 2d 74 79 70 known.stream.type.%s".stream-typ
16f20 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f e))))..(defun.emms-info-native-o
16f40 67 67 2d 2d 72 65 61 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 20 28 66 gg--read-and-decode-last-page.(f
16f60 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 74 68 65 20 ilename)..."Read.and.decode.the.
16f80 6c 61 73 74 20 4f 67 67 20 70 61 67 65 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 52 65 74 last.Ogg.page.from.FILENAME..Ret
16fa0 75 72 6e 20 74 68 65 20 70 61 67 65 20 69 6e 20 62 69 6e 64 61 74 20 74 79 70 65 20 73 74 72 75 urn.the.page.in.bindat.type.stru
16fc0 63 74 75 72 65 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 cture."...(with-temp-buffer.....
16fe0 28 6c 65 74 2a 20 28 28 6c 65 6e 67 74 68 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 73 (let*.((length.(file-attribute-s
17000 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 61 74 ize.....................(file-at
17020 74 72 69 62 75 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 tributes......................(f
17040 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 ile-truename.filename)))).......
17060 20 20 20 20 20 28 62 65 67 69 6e 20 28 6d 61 78 20 30 20 28 2d 20 6c 65 6e 67 74 68 20 65 6d 6d .....(begin.(max.0.(-.length.emm
17080 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 73 69 7a 65 29 29 29 29 s-info-native-ogg--page-size))))
170a0 0a 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c .......(set-buffer-multibyte.nil
170c0 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 ).......(insert-file-contents-li
170e0 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 62 65 67 69 6e 20 6c 65 6e 67 74 terally.filename.nil.begin.lengt
17100 68 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d h).......(emms-info-native-ogg--
17120 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d decode-last-page))))..(defun.emm
17140 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 s-info-native-ogg--decode-last-p
17160 61 67 65 20 28 29 0a 20 20 22 46 69 6e 64 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 61 age.()..."Find.and.return.the.la
17180 73 74 20 76 61 6c 69 64 20 4f 67 67 20 70 61 67 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 st.valid.Ogg.page.from.the.curre
171a0 6e 74 20 62 75 66 66 65 72 2e 0a 45 6e 73 75 72 65 20 70 61 67 65 20 73 79 6e 63 68 72 6f 6e 69 nt.buffer..Ensure.page.synchroni
171c0 7a 61 74 69 6f 6e 20 62 79 20 76 65 72 69 66 79 69 6e 67 20 70 61 67 65 20 63 68 65 63 6b 73 75 zation.by.verifying.page.checksu
171e0 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 70 61 67 65 20 69 6e 20 62 69 6e 64 61 74 20 74 79 m...Return.the.page.in.bindat.ty
17200 70 65 20 73 74 72 75 63 74 75 72 65 2e 20 20 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 76 61 pe.structure...If.there.is.no.va
17220 6c 69 64 0a 4f 67 67 20 70 61 67 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2c 20 72 65 74 75 lid.Ogg.page.in.the.buffer,.retu
17240 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 70 61 67 65 29 0a 20 20 20 20 28 67 6f 74 6f rn.nil."...(let.(page).....(goto
17260 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 -char.(point-max)).....(while.(a
17280 6e 64 20 28 6e 6f 74 20 70 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 nd.(not.page).................(s
172a0 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d earch-backward.emms-info-native-
172c0 6f 67 67 2d 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 ogg--magic-pattern.nil.t))......
172e0 20 28 73 65 74 71 20 70 61 67 65 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 .(setq.page.(emms-info-native-og
17300 67 2d 2d 76 65 72 69 66 79 2d 70 61 67 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 g--verify-page))).....(when.(and
17320 20 70 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 6c 6f 67 61 6e 64 20 .page................(>.(logand.
17340 28 61 6c 69 73 74 2d 67 65 74 20 27 68 65 61 64 65 72 2d 74 79 70 65 2d 66 6c 61 67 20 70 61 67 (alist-get.'header-type-flag.pag
17360 65 29 20 23 78 30 34 29 20 30 29 29 0a 20 20 20 20 20 20 70 61 67 65 29 29 29 0a 0a 28 64 65 66 e).#x04).0)).......page)))..(def
17380 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 76 65 72 69 66 79 2d un.emms-info-native-ogg--verify-
173a0 70 61 67 65 20 28 29 0a 20 20 22 56 65 72 69 66 79 20 4f 67 67 20 70 61 67 65 20 73 74 61 72 74 page.()..."Verify.Ogg.page.start
173c0 69 6e 67 20 66 72 6f 6d 20 70 6f 69 6e 74 2e 0a 55 6e 70 61 63 6b 20 70 61 67 65 20 69 6e 74 6f ing.from.point..Unpack.page.into
173e0 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 62 69 6e .`emms-info-native-ogg--page-bin
17400 64 61 74 2d 73 70 65 63 27 0a 73 74 72 75 63 74 75 72 65 20 61 6e 64 20 63 61 6c 63 75 6c 61 74 dat-spec'.structure.and.calculat
17420 65 20 69 74 73 20 63 68 65 63 6b 73 75 6d 2e 20 20 52 65 74 75 72 6e 20 74 68 65 20 70 61 67 65 e.its.checksum...Return.the.page
17440 20 69 66 20 74 68 65 0a 63 68 65 63 6b 73 75 6d 20 69 73 20 63 6f 72 72 65 63 74 2c 20 6f 72 20 .if.the.checksum.is.correct,.or.
17460 6e 69 6c 20 69 66 20 74 68 65 20 63 68 65 63 6b 73 75 6d 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 nil.if.the.checksum.does.not.mat
17480 63 68 20 6f 72 20 74 68 65 0a 70 61 67 65 20 69 73 20 6f 74 68 65 72 77 69 73 65 20 69 6e 76 61 ch.or.the.page.is.otherwise.inva
174a0 6c 69 64 2e 22 0a 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 6c 65 74 2a lid."...(ignore-errors.....(let*
174c0 20 28 28 6f 66 66 73 65 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 .((offset.(point))............(p
174e0 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 age.............(bindat-unpack.e
17500 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 62 69 6e 64 61 74 mms-info-native-ogg--page-bindat
17520 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -spec...........................
17540 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(buffer-string)................
17560 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 ............(1-.offset))).......
17580 20 20 20 20 20 28 6e 75 6d 2d 62 79 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e .....(num-bytes.............(bin
175a0 64 61 74 2d 6c 65 6e 67 74 68 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d dat-length.emms-info-native-ogg-
175c0 2d 70 61 67 65 2d 62 69 6e 64 61 74 2d 73 70 65 63 20 70 61 67 65 29 29 0a 20 20 20 20 20 20 20 -page-bindat-spec.page))........
175e0 20 20 20 20 28 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 ....(buf.............(buffer-sub
17600 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 6f 66 66 73 65 74 0a 20 20 20 20 string-no-properties.offset.....
17620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17640 20 20 20 20 20 20 20 20 28 2b 20 6f 66 66 73 65 74 20 6e 75 6d 2d 62 79 74 65 73 29 29 29 0a 20 ........(+.offset.num-bytes)))..
17660 20 20 20 20 20 20 20 20 20 20 28 63 68 65 63 6b 73 75 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........(checksum.............
17680 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 63 68 65 63 6b 73 75 6d 20 (emms-info-native-ogg--checksum.
176a0 28 63 6f 6e 63 61 74 20 28 73 75 62 73 74 72 69 6e 67 20 62 75 66 20 30 20 32 32 29 0a 20 20 20 (concat.(substring.buf.0.22)....
176c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
176e0 20 20 20 20 20 20 20 20 20 20 5b 30 20 30 20 30 20 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........[0.0.0.0].............
17700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17720 20 28 73 75 62 73 74 72 69 6e 67 20 62 75 66 20 32 36 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 .(substring.buf.26))))).......(w
17740 68 65 6e 20 28 3d 20 28 61 6c 69 73 74 2d 67 65 74 20 27 70 61 67 65 2d 63 68 65 63 6b 73 75 6d hen.(=.(alist-get.'page-checksum
17760 20 70 61 67 65 29 20 63 68 65 63 6b 73 75 6d 29 20 70 61 67 65 29 29 29 29 0a 0a 28 64 65 66 75 .page).checksum).page))))..(defu
17780 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 63 68 65 63 6b 73 75 6d n.emms-info-native-ogg--checksum
177a0 20 28 62 79 74 65 73 29 0a 20 20 22 43 61 6c 63 75 6c 61 74 65 20 61 6e 64 20 72 65 74 75 72 6e .(bytes)..."Calculate.and.return
177c0 20 4f 67 67 20 63 68 65 63 6b 73 75 6d 20 66 6f 72 20 42 59 54 45 53 2e 0a 53 65 65 20 55 52 4c .Ogg.checksum.for.BYTES..See.URL
177e0 20 60 68 74 74 70 73 3a 2f 2f 78 69 70 68 2e 6f 72 67 2f 76 6f 72 62 69 73 2f 64 6f 63 2f 66 72 .`https://xiph.org/vorbis/doc/fr
17800 61 6d 69 6e 67 2e 68 74 6d 6c 27 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 0a 63 68 65 63 6b aming.html'.for.details.on.check
17820 73 75 6d 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 72 63 20 30 29 29 0a 20 20 20 20 28 64 6f 74 69 sum."...(let.((crc.0)).....(doti
17840 6d 65 73 20 28 6e 20 28 6c 65 6e 67 74 68 20 62 79 74 65 73 29 29 0a 20 20 20 20 20 20 28 73 65 mes.(n.(length.bytes)).......(se
17860 74 71 20 63 72 63 20 28 6c 6f 67 78 6f 72 20 28 6c 6f 67 61 6e 64 20 28 61 73 68 20 63 72 63 20 tq.crc.(logxor.(logand.(ash.crc.
17880 38 29 20 23 78 66 66 66 66 66 66 66 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 8).#xffffffff)..................
178a0 20 20 20 20 20 20 20 28 61 72 65 66 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 .......(aref.emms-info-native-og
178c0 67 2d 2d 63 72 63 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g--crc-table....................
178e0 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 78 6f 72 20 28 61 73 68 20 63 72 63 20 2d 32 34 29 ...........(logxor.(ash.crc.-24)
17900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17920 20 20 20 20 20 20 20 28 61 72 65 66 20 62 79 74 65 73 20 6e 29 29 29 29 29 29 0a 20 20 20 20 63 .......(aref.bytes.n)))))).....c
17940 72 63 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 rc))..(provide.'emms-info-native
17960 2d 6f 67 67 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2e -ogg)..;;;.emms-info-native-ogg.
17980 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 el.ends.here....................
179a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
179c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
179e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/test/...................
17a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a60 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
17a80 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 36 36 30 00 20 35 00 00 00 0000000.00000000000.011660..5...
17aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
17b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
17b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 74 65 emms-24/test/emms-info-native-te
17c20 73 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 sts.el..........................
17c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
17c80 30 30 30 35 30 34 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 32 31 00 20 30 00 00 00 0005042.00000000000.016521..0...
17ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
17d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
17d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 74 65 73 74 73 2e 65 6c 20 2d 2d ;;;.emms-info-native-tests.el.--
17e20 2d 20 54 65 73 74 20 73 75 69 74 65 20 66 6f 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 -.Test.suite.for.emms-info-nativ
17e40 65 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a e..-*-.lexical-binding:.t;.-*-..
17e60 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 ;;.Copyright.(C).2023.Free.Softw
17e80 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a are.Foundation,.Inc...;;.Author:
17ea0 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 .Petteri.Hintsanen.<petterih@iki
17ec0 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d .fi>..;;.This.file.is.part.of.EM
17ee0 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 MS...;;.EMMS.is.free.software;.y
17f00 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f ou.can.redistribute.it.and/or.mo
17f20 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 dify.it.;;.under.the.terms.of.th
17f40 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 e.GNU.General.Public.License.as.
17f60 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 published.by.;;.the.Free.Softwar
17f80 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 e.Foundation;.either.version.3,.
17fa0 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 or.(at.your.option).;;.any.later
17fc0 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 .version...;;.EMMS.is.distribute
17fe0 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 d.in.the.hope.that.it.will.be.us
18000 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 eful,.but.WITHOUT.;;.ANY.WARRANT
18020 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 Y;.without.even.the.implied.warr
18040 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 anty.of.MERCHANTABILITY.;;.or.FI
18060 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 TNESS.FOR.A.PARTICULAR.PURPOSE..
18080 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c .See.the.GNU.General.Public.;;.L
180a0 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 icense.for.more.details...;;.You
180c0 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 .should.have.received.a.copy.of.
180e0 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b the.GNU.General.Public.License.;
18100 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 ;.along.with.EMMS;.see.the.file.
18120 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 COPYING..If.not,.write.to.the.Fr
18140 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c ee.;;.Software.Foundation,.Inc.,
18160 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 .51.Franklin.Street,.Fifth.Floor
18180 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e ,.Boston,.;;.MA.02110-1301,.USA.
181a0 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 74 65 73 74 20 ..;;;.Commentary:..;;.This.test.
181c0 73 75 69 74 65 20 65 78 65 72 63 69 73 65 73 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 suite.exercises.`emms-info-nativ
181e0 65 27 20 77 69 74 68 20 76 61 72 69 6f 75 73 20 69 6e 70 75 74 0a 3b 3b 20 66 69 6c 65 73 2e 0a e'.with.various.input.;;.files..
18200 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d .;;;.Code:..(require.'emms-info-
18220 6e 61 74 69 76 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 72 74 29 0a 0a 28 65 72 74 2d 64 65 66 native).(require.'ert)..(ert-def
18240 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 20 28 test.emms-test-info-native-mp3.(
18260 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 )...(should.(equal.(emms-info-na
18280 74 69 76 65 2d 2d 64 65 63 6f 64 65 2d 69 6e 66 6f 2d 66 69 65 6c 64 73 0a 20 20 20 20 20 20 20 tive--decode-info-fields........
182a0 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 6f 75 72 63 65 73 2f 73 69 6e 65 2e 6d 70 33 22 29 ..........."resources/sine.mp3")
182c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 79 65 61 72 22 20 2e 20 22 32 ..................'(("year"..."2
182e0 30 32 33 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6c 62 75 6d 023")....................("album
18300 22 20 2e 20 22 54 65 73 74 20 44 61 74 61 20 e2 98 ba 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 "..."Test.Data....")............
18320 20 20 20 20 20 20 20 20 28 22 61 72 74 69 73 74 22 20 2e 20 22 45 4d 4d 53 20 70 72 6f 6a 65 63 ........("artist"..."EMMS.projec
18340 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 69 74 6c 65 22 20 t")....................("title".
18360 2e 20 22 34 34 30 20 48 7a 20 73 69 6e 65 20 77 61 76 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 .."440.Hz.sine.wave")...........
18380 20 20 20 20 20 20 20 20 20 28 22 70 6c 61 79 69 6e 67 2d 74 69 6d 65 22 20 2e 20 35 29 29 29 29 .........("playing-time"...5))))
183a0 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 69 6e 66 6f 2d 6e )..(ert-deftest.emms-test-info-n
183c0 61 74 69 76 65 2d 6f 67 67 20 28 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 ative-ogg.()...(should.(equal.(e
183e0 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 2d 64 65 63 6f 64 65 2d 69 6e 66 6f 2d 66 69 65 mms-info-native--decode-info-fie
18400 6c 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 6f 75 72 63 65 73 lds..................."resources
18420 2f 73 69 6e 65 2e 6f 67 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 /sine.ogg")..................'((
18440 22 61 72 74 69 73 74 22 20 2e 20 22 45 4d 4d 53 20 70 72 6f 6a 65 63 74 22 29 0a 20 20 20 20 20 "artist"..."EMMS.project")......
18460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 64 61 74 65 22 20 2e 20 22 32 30 32 33 2d 30 39 ..............("date"..."2023-09
18480 2d 30 32 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 69 74 6c 65 -02")....................("title
184a0 22 20 2e 20 22 34 34 30 20 48 7a 20 73 69 6e 65 20 77 61 76 65 22 29 0a 20 20 20 20 20 20 20 20 "..."440.Hz.sine.wave").........
184c0 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6c 62 75 6d 22 20 2e 20 22 54 65 73 74 20 44 61 74 61 ...........("album"..."Test.Data
184e0 20 e2 98 ba 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 70 6c 61 79 ....")....................("play
18500 69 6e 67 2d 74 69 6d 65 22 20 2e 20 35 29 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 ing-time"...5)))))..(ert-deftest
18520 20 65 6d 6d 73 2d 74 65 73 74 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 20 28 29 0a 20 .emms-test-info-native-flac.()..
18540 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 .(should.(equal.(emms-info-nativ
18560 65 2d 2d 64 65 63 6f 64 65 2d 69 6e 66 6f 2d 66 69 65 6c 64 73 0a 20 20 20 20 20 20 20 20 20 20 e--decode-info-fields...........
18580 20 20 20 20 20 20 20 20 22 72 65 73 6f 75 72 63 65 73 2f 73 69 6e 65 2e 66 6c 61 63 22 29 0a 20 ........"resources/sine.flac")..
185a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 61 72 74 69 73 74 22 20 2e 20 22 45 ................'(("artist"..."E
185c0 4d 4d 53 20 70 72 6f 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 MMS.project")...................
185e0 20 28 22 64 61 74 65 22 20 2e 20 22 32 30 32 33 2d 30 39 2d 30 32 22 29 0a 20 20 20 20 20 20 20 .("date"..."2023-09-02")........
18600 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 69 74 6c 65 22 20 2e 20 22 34 34 30 20 48 7a 20 73 ............("title"..."440.Hz.s
18620 69 6e 65 20 77 61 76 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 ine.wave")....................("
18640 61 6c 62 75 6d 22 20 2e 20 22 54 65 73 74 20 44 61 74 61 20 e2 98 ba 22 29 0a 20 20 20 20 20 20 album"..."Test.Data....").......
18660 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 70 6c 61 79 69 6e 67 2d 74 69 6d 65 22 20 2e 20 35 .............("playing-time"...5
18680 29 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 69 6e )))))..(ert-deftest.emms-test-in
186a0 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 20 28 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 fo-native-opus.()...(should.(equ
186c0 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 2d 64 65 63 6f 64 65 2d 69 6e 66 al.(emms-info-native--decode-inf
186e0 6f 2d 66 69 65 6c 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 6f o-fields..................."reso
18700 75 72 63 65 73 2f 73 69 6e 65 2e 6f 70 75 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urces/sine.opus")...............
18720 20 20 20 27 28 28 22 61 72 74 69 73 74 22 20 2e 20 22 45 4d 4d 53 20 70 72 6f 6a 65 63 74 22 29 ...'(("artist"..."EMMS.project")
18740 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 64 61 74 65 22 20 2e 20 22 32 ....................("date"..."2
18760 30 32 33 2d 30 39 2d 30 32 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 023-09-02")....................(
18780 22 74 69 74 6c 65 22 20 2e 20 22 34 34 30 20 48 7a 20 73 69 6e 65 20 77 61 76 65 22 29 0a 20 20 "title"..."440.Hz.sine.wave")...
187a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6c 62 75 6d 22 20 2e 20 22 54 65 73 .................("album"..."Tes
187c0 74 20 44 61 74 61 20 e2 98 ba 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.Data....")....................
187e0 28 22 70 6c 61 79 69 6e 67 2d 74 69 6d 65 22 20 2e 20 35 29 29 29 29 29 0a 0a 3b 3b 3b 20 65 6d ("playing-time"...5)))))..;;;.em
18800 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 74 65 73 74 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 ms-info-native-tests.el.ends.her
18820 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
18840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
188a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
188c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
188e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
189a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
189c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
189e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c emms-24/test/emms-info-native-fl
18a20 61 63 2d 74 65 73 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ac-tests.el.....................
18a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
18a80 30 30 30 34 37 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 34 32 36 00 20 30 00 00 00 0004702.00000000000.017426..0...
18aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
18b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
18b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 74 65 73 74 73 2e ;;;.emms-info-native-flac-tests.
18c20 65 6c 20 2d 2d 2d 20 54 65 73 74 20 73 75 69 74 65 20 66 6f 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d el.---.Test.suite.for.emms-info-
18c40 6e 61 74 69 76 65 2d 66 6c 61 63 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 native-flac..-*-.lexical-binding
18c60 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 :.t;.-*-..;;.Copyright.(C).2023.
18c80 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a Free.Software.Foundation,.Inc...
18ca0 3b 3b 20 41 75 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 ;;.Author:.Petteri.Hintsanen.<pe
18cc0 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 tterih@iki.fi>..;;.This.file.is.
18ce0 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 part.of.EMMS...;;.EMMS.is.free.s
18d00 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
18d20 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 .and/or.modify.it.;;.under.the.t
18d40 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
18d60 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 icense.as.published.by.;;.the.Fr
18d80 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 ee.Software.Foundation;.either.v
18da0 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b ersion.3,.or.(at.your.option).;;
18dc0 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 .any.later.version...;;.EMMS.is.
18de0 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 distributed.in.the.hope.that.it.
18e00 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 will.be.useful,.but.WITHOUT.;;.A
18e20 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d NY.WARRANTY;.without.even.the.im
18e40 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 plied.warranty.of.MERCHANTABILIT
18e60 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 Y.;;.or.FITNESS.FOR.A.PARTICULAR
18e80 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 .PURPOSE...See.the.GNU.General.P
18ea0 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c ublic.;;.License.for.more.detail
18ec0 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 s...;;.You.should.have.received.
18ee0 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 a.copy.of.the.GNU.General.Public
18f00 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 .License.;;.along.with.EMMS;.see
18f20 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 .the.file.COPYING..If.not,.write
18f40 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .to.the.Free.;;.Software.Foundat
18f60 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 ion,.Inc.,.51.Franklin.Street,.F
18f80 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d ifth.Floor,.Boston,.;;.MA.02110-
18fa0 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 1301,.USA...;;;.Code:..(require.
18fc0 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 29 0a 28 72 65 71 75 69 72 65 'emms-info-native-flac).(require
18fe0 20 27 65 72 74 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 74 65 73 74 2d 66 6c 61 63 .'ert)..(defmacro.emms-test-flac
19000 2d 6d 61 6b 65 2d 64 61 74 61 2d 66 75 6e 63 20 28 6e 61 6d 65 20 62 79 74 65 73 29 0a 20 20 22 -make-data-func.(name.bytes)..."
19020 4d 61 63 72 6f 20 66 6f 72 20 64 65 66 69 6e 69 6e 67 20 74 65 73 74 20 64 61 74 61 20 67 65 6e Macro.for.defining.test.data.gen
19040 65 72 61 74 6f 72 2e 0a 54 68 69 73 20 6d 61 63 72 6f 20 64 65 66 69 6e 65 73 20 61 20 73 75 69 erator..This.macro.defines.a.sui
19060 74 61 62 6c 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 4e 41 4d 45 20 74 68 61 74 20 6f 75 table.function.with.NAME.that.ou
19080 74 70 75 74 73 0a 42 59 54 45 53 20 61 66 74 65 72 20 46 4c 41 43 20 73 69 67 6e 61 74 75 72 65 tputs.BYTES.after.FLAC.signature
190a0 2e 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 4e 41 4d 45 20 63 61 6e 20 74 68 65 6e 20 62 65 ...The.function.NAME.can.then.be
190c0 20 70 61 73 73 65 64 0a 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c .passed.for.`emms-info-native-fl
190e0 61 63 2d 2d 64 65 63 6f 64 65 2d 6d 65 74 61 2d 62 6c 6f 63 6b 73 27 2e 22 0a 20 20 60 28 64 65 ac--decode-meta-blocks'."...`(de
19100 66 75 6e 20 2c 6e 61 6d 65 20 28 6f 66 66 73 65 74 20 65 6e 64 29 0a 20 20 20 20 20 28 6c 65 74 fun.,name.(offset.end)......(let
19120 20 28 28 62 79 74 65 73 20 28 63 6f 6e 63 61 74 20 22 66 4c 61 43 22 20 2c 62 79 74 65 73 29 29 .((bytes.(concat."fLaC".,bytes))
19140 29 0a 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 28 )........(erase-buffer)........(
19160 69 6e 73 65 72 74 20 28 73 75 62 73 74 72 69 6e 67 20 62 79 74 65 73 20 6f 66 66 73 65 74 20 65 insert.(substring.bytes.offset.e
19180 6e 64 29 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 74 65 73 74 2d 66 6c 61 63 2d 6d 61 6b 65 2d 64 61 nd)))))..(emms-test-flac-make-da
191a0 74 61 2d 66 75 6e 63 20 65 6d 6d 73 2d 74 65 73 74 2d 69 6e 76 61 6c 69 64 2d 66 6c 61 63 2d 62 ta-func.emms-test-invalid-flac-b
191c0 6c 6f 63 6b 2d 6c 65 6e 67 74 68 20 22 5c 78 30 31 5c 78 66 66 5c 78 66 66 5c 78 66 66 5c 78 30 lock-length."\x01\xff\xff\xff\x0
191e0 30 5c 78 30 31 5c 78 30 32 5c 78 30 33 22 29 0a 28 65 6d 6d 73 2d 74 65 73 74 2d 66 6c 61 63 2d 0\x01\x02\x03").(emms-test-flac-
19200 6d 61 6b 65 2d 64 61 74 61 2d 66 75 6e 63 20 65 6d 6d 73 2d 74 65 73 74 2d 69 6e 76 61 6c 69 64 make-data-func.emms-test-invalid
19220 2d 66 6c 61 63 2d 62 6c 6f 63 6b 2d 74 79 70 65 20 22 5c 78 30 39 5c 78 30 30 5c 78 30 30 5c 78 -flac-block-type."\x09\x00\x00\x
19240 30 30 5c 78 30 30 5c 78 30 31 5c 78 30 32 5c 78 30 33 22 29 0a 28 65 6d 6d 73 2d 74 65 73 74 2d 00\x00\x01\x02\x03").(emms-test-
19260 66 6c 61 63 2d 6d 61 6b 65 2d 64 61 74 61 2d 66 75 6e 63 20 65 6d 6d 73 2d 74 65 73 74 2d 76 61 flac-make-data-func.emms-test-va
19280 6c 69 64 2d 66 6c 61 63 2d 62 6c 6f 63 6b 20 22 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 38 lid-flac-block."\x00\x00\x00\x08
192a0 5c 78 31 30 5c 78 31 31 5c 78 31 32 5c 78 31 33 5c 78 31 34 5c 78 31 35 5c 78 31 36 5c 78 31 37 \x10\x11\x12\x13\x14\x15\x16\x17
192c0 5c 78 38 34 5c 78 30 30 5c 78 30 30 5c 78 30 34 5c 78 30 31 5c 78 30 32 5c 78 30 33 5c 78 30 34 \x84\x00\x00\x04\x01\x02\x03\x04
192e0 22 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 66 6c 61 63 2d ")..(ert-deftest.emms-test-flac-
19300 6d 65 74 61 2d 62 6c 6f 63 6b 73 20 28 29 0a 20 20 28 73 68 6f 75 6c 64 2d 65 72 72 6f 72 20 28 meta-blocks.()...(should-error.(
19320 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 6d 65 emms-info-native-flac--decode-me
19340 74 61 2d 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d ta-blocks..................#'emm
19360 73 2d 74 65 73 74 2d 69 6e 76 61 6c 69 64 2d 66 6c 61 63 2d 62 6c 6f 63 6b 2d 6c 65 6e 67 74 68 s-test-invalid-flac-block-length
19380 29 29 0a 20 20 28 73 68 6f 75 6c 64 2d 65 72 72 6f 72 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 ))...(should-error.(emms-info-na
193a0 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 6d 65 74 61 2d 62 6c 6f 63 6b 73 0a 20 20 tive-flac--decode-meta-blocks...
193c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 74 65 73 74 2d 69 6e 76 61 6c ...............#'emms-test-inval
193e0 69 64 2d 66 6c 61 63 2d 62 6c 6f 63 6b 2d 74 79 70 65 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 id-flac-block-type))...(should.(
19400 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 2d 64 65 equal.(emms-info-native-flac--de
19420 63 6f 64 65 2d 6d 65 74 61 2d 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 code-meta-blocks................
19440 20 20 20 23 27 65 6d 6d 73 2d 74 65 73 74 2d 76 61 6c 69 64 2d 66 6c 61 63 2d 62 6c 6f 63 6b 29 ...#'emms-test-valid-flac-block)
19460 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 5c 78 30 31 5c 78 30 ..................(list."\x01\x0
19480 32 5c 78 30 33 5c 78 30 34 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2\x03\x04"......................
194a0 20 20 22 5c 78 31 30 5c 78 31 31 5c 78 31 32 5c 78 31 33 5c 78 31 34 5c 78 31 35 5c 78 31 36 5c .."\x10\x11\x12\x13\x14\x15\x16\
194c0 78 31 37 22 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 x17"))))..(ert-deftest.emms-test
194e0 2d 66 6c 61 63 2d 64 65 63 6f 64 65 2d 64 75 72 61 74 69 6f 6e 20 28 29 0a 20 20 3b 3b 20 54 68 -flac-decode-duration.()...;;.Th
19500 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 61 6d 70 6c 65 20 6d 65 74 61 64 61 74 61 20 e.corresponding.sample.metadata.
19520 62 79 74 65 73 20 61 72 65 20 5b 31 30 20 31 39 36 20 36 36 20 32 34 30 20 31 20 38 20 33 36 20 bytes.are.[10.196.66.240.1.8.36.
19540 30 5d 2e 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 0]....(should.(=.(emms-info-nati
19560 76 65 2d 66 6c 61 63 2d 2d 64 65 63 6f 64 65 2d 64 75 72 61 74 69 6f 6e 20 37 37 35 38 31 38 36 ve-flac--decode-duration.7758186
19580 33 34 33 39 31 34 36 32 39 31 32 29 20 33 39 32 29 29 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 34391462912).392)))..;;;.emms-in
195a0 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 74 65 73 74 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 fo-native-flac-tests.el.ends.her
195c0 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
195e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19600 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 emms-24/test/emms-info-native-og
19620 67 2d 74 65 73 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 g-tests.el......................
19640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
19680 30 30 31 35 33 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 37 35 00 20 30 00 00 00 0015322.00000000000.017275..0...
196a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
196c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
196e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
19720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
19740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
197a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
197c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
197e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19800 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 2d 74 65 73 74 73 2e 65 6c 20 2d 2d 2d 20 54 ;;;.emms-info-ogg-tests.el.---.T
19820 65 73 74 20 73 75 69 74 65 20 66 6f 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 20 20 2d 2a 2d est.suite.for.emms-info-ogg..-*-
19840 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 .lexical-binding:.t;.-*-..;;.Cop
19860 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f yright.(C).2023.Free.Software.Fo
19880 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 50 65 74 74 65 undation,.Inc...;;.Author:.Pette
198a0 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a ri.Hintsanen.<petterih@iki.fi>..
198c0 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b ;;.This.file.is.part.of.EMMS...;
198e0 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e ;.EMMS.is.free.software;.you.can
19900 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 .redistribute.it.and/or.modify.i
19920 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 t.;;.under.the.terms.of.the.GNU.
19940 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 General.Public.License.as.publis
19960 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e hed.by.;;.the.Free.Software.Foun
19980 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 dation;.either.version.3,.or.(at
199a0 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 .your.option).;;.any.later.versi
199c0 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 on...;;.EMMS.is.distributed.in.t
199e0 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 he.hope.that.it.will.be.useful,.
19a00 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 but.WITHOUT.;;.ANY.WARRANTY;.wit
19a20 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f hout.even.the.implied.warranty.o
19a40 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 f.MERCHANTABILITY.;;.or.FITNESS.
19a60 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 FOR.A.PARTICULAR.PURPOSE...See.t
19a80 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 he.GNU.General.Public.;;.License
19aa0 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c .for.more.details...;;.You.shoul
19ac0 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e d.have.received.a.copy.of.the.GN
19ae0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e U.General.Public.License.;;.alon
19b00 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e g.with.EMMS;.see.the.file.COPYIN
19b20 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 G..If.not,.write.to.the.Free.;;.
19b40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
19b60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
19b80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301,.USA...;;;.
19ba0 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 Code:..(require.'emms).(require.
19bc0 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 29 0a 28 72 65 71 75 69 72 65 20 'emms-info-native-ogg).(require.
19be0 27 65 72 74 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 6f 67 'ert)..(ert-deftest.emms-test-og
19c00 67 2d 64 65 63 6f 64 65 2d 70 61 67 65 20 28 29 0a 20 20 28 6c 65 74 2a 20 28 28 62 79 74 65 73 g-decode-page.()...(let*.((bytes
19c20 20 22 5c 78 34 66 5c 78 36 37 5c 78 36 37 5c 78 35 33 5c 78 30 30 5c 78 30 32 5c 78 30 30 5c 78 ."\x4f\x67\x67\x53\x00\x02\x00\x
19c40 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 38 36 5c 78 00\x00\x00\x00\x00\x00\x00\x86\x
19c60 64 31 5c 78 39 65 5c 78 31 37 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 33 35 5c 78 d1\x9e\x17\x00\x00\x00\x00\x35\x
19c80 35 32 5c 78 66 62 5c 78 38 38 5c 78 30 31 5c 78 31 65 5c 78 30 31 5c 78 37 36 5c 78 36 66 5c 78 52\xfb\x88\x01\x1e\x01\x76\x6f\x
19ca0 37 32 5c 78 36 32 5c 78 36 39 5c 78 37 33 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 72\x62\x69\x73\x00\x00\x00\x00\x
19cc0 30 31 5c 78 34 34 5c 78 61 63 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 01\x44\xac\x00\x00\x00\x00\x00\x
19ce0 30 30 5c 78 38 30 5c 78 33 38 5c 78 30 31 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 00\x80\x38\x01\x00\x00\x00\x00\x
19d00 30 30 5c 78 62 38 5c 78 30 31 22 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 67 65 20 28 62 69 6e 00\xb8\x01")..........(page.(bin
19d20 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d dat-unpack.emms-info-native-ogg-
19d40 2d 70 61 67 65 2d 62 69 6e 64 61 74 2d 73 70 65 63 20 62 79 74 65 73 29 29 29 0a 20 20 20 20 28 -page-bindat-spec.bytes))).....(
19d60 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d should.(=.(emms-info-native-ogg-
19d80 2d 6e 75 6d 2d 70 61 63 6b 65 74 73 20 70 61 67 65 29 20 31 29 29 0a 20 20 20 20 28 73 68 6f 75 -num-packets.page).1)).....(shou
19da0 6c 64 20 28 3d 20 28 62 69 6e 64 61 74 2d 6c 65 6e 67 74 68 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e ld.(=.(bindat-length.emms-info-n
19dc0 61 74 69 76 65 2d 6f 67 67 2d 2d 70 61 67 65 2d 62 69 6e 64 61 74 2d 73 70 65 63 20 70 61 67 65 ative-ogg--page-bindat-spec.page
19de0 29 20 35 38 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 62 69 6e 64 61 ).58)).....(should.(equal.(binda
19e00 74 2d 67 65 74 2d 66 69 65 6c 64 20 70 61 67 65 20 27 70 61 79 6c 6f 61 64 29 0a 20 20 20 20 20 t-get-field.page.'payload)......
19e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 78 30 31 5c 78 37 36 5c 78 36 66 5c 78 37 32 5c .............."\x01\x76\x6f\x72\
19e40 78 36 32 5c 78 36 39 5c 78 37 33 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 31 5c x62\x69\x73\x00\x00\x00\x00\x01\
19e60 78 34 34 5c 78 61 63 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c x44\xac\x00\x00\x00\x00\x00\x00\
19e80 78 38 30 5c 78 33 38 5c 78 30 31 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c x80\x38\x01\x00\x00\x00\x00\x00\
19ea0 78 62 38 5c 78 30 31 22 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d xb8\x01"))))..(ert-deftest.emms-
19ec0 74 65 73 74 2d 6f 67 67 2d 64 65 63 6f 64 65 2d 76 6f 72 62 69 73 2d 68 65 61 64 65 72 73 20 28 test-ogg-decode-vorbis-headers.(
19ee0 29 0a 20 20 22 54 65 73 74 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 )..."Test.`emms-info-ogg--decode
19f00 2d 68 65 61 64 65 72 73 27 20 77 69 74 68 20 56 6f 72 62 69 73 20 64 61 74 61 2e 22 0a 20 20 28 -headers'.with.Vorbis.data."...(
19f20 6c 65 74 20 28 28 62 79 74 65 73 20 22 5c 78 30 31 5c 78 37 36 5c 78 36 66 5c 78 37 32 5c 78 36 let.((bytes."\x01\x76\x6f\x72\x6
19f40 32 5c 78 36 39 5c 78 37 33 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 31 5c 78 34 2\x69\x73\x00\x00\x00\x00\x01\x4
19f60 34 5c 78 61 63 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 38 4\xac\x00\x00\x00\x00\x00\x00\x8
19f80 30 5c 78 33 38 5c 78 30 31 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 62 0\x38\x01\x00\x00\x00\x00\x00\xb
19fa0 38 5c 78 30 31 5c 78 30 33 5c 78 37 36 5c 78 36 66 5c 78 37 32 5c 78 36 32 5c 78 36 39 5c 78 37 8\x01\x03\x76\x6f\x72\x62\x69\x7
19fc0 33 5c 78 33 34 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 35 38 5c 78 36 39 5c 78 37 30 5c 78 36 3\x34\x00\x00\x00\x58\x69\x70\x6
19fe0 38 5c 78 32 65 5c 78 34 66 5c 78 37 32 5c 78 36 37 5c 78 32 30 5c 78 36 63 5c 78 36 39 5c 78 36 8\x2e\x4f\x72\x67\x20\x6c\x69\x6
1a000 32 5c 78 35 36 5c 78 36 66 5c 78 37 32 5c 78 36 32 5c 78 36 39 5c 78 37 33 5c 78 32 30 5c 78 34 2\x56\x6f\x72\x62\x69\x73\x20\x4
1a020 39 5c 78 32 30 5c 78 33 32 5c 78 33 30 5c 78 33 32 5c 78 33 30 5c 78 33 30 5c 78 33 37 5c 78 33 9\x20\x32\x30\x32\x30\x30\x37\x3
1a040 30 5c 78 33 34 5c 78 32 30 5c 78 32 38 5c 78 35 32 5c 78 36 35 5c 78 36 34 5c 78 37 35 5c 78 36 0\x34\x20\x28\x52\x65\x64\x75\x6
1a060 33 5c 78 36 39 5c 78 36 65 5c 78 36 37 5c 78 32 30 5c 78 34 35 5c 78 36 65 5c 78 37 36 5c 78 36 3\x69\x6e\x67\x20\x45\x6e\x76\x6
1a080 39 5c 78 37 32 5c 78 36 66 5c 78 36 65 5c 78 36 64 5c 78 36 35 5c 78 36 65 5c 78 37 34 5c 78 32 9\x72\x6f\x6e\x6d\x65\x6e\x74\x2
1a0a0 39 5c 78 30 32 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 37 5c 78 30 30 5c 78 30 30 5c 78 30 9\x02\x00\x00\x00\x07\x00\x00\x0
1a0c0 30 5c 78 36 36 5c 78 36 66 5c 78 36 66 5c 78 33 64 5c 78 36 32 5c 78 36 31 5c 78 37 32 5c 78 31 0\x66\x6f\x6f\x3d\x62\x61\x72\x1
1a0e0 62 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 34 62 5c 78 36 35 5c 78 37 39 5c 78 33 64 5c 78 63 b\x00\x00\x00\x4b\x65\x79\x3d\xc
1a100 65 5c 78 39 66 5c 78 65 31 5c 78 62 64 5c 78 39 30 5c 78 63 66 5c 78 38 37 5c 78 65 31 5c 78 62 e\x9f\xe1\xbd\x90\xcf\x87\xe1\xb
1a120 64 5c 78 62 36 5c 78 32 30 5c 78 63 65 5c 78 61 34 5c 78 63 65 5c 78 62 31 5c 78 65 31 5c 78 62 d\xb6\x20\xce\xa4\xce\xb1\xe1\xb
1a140 64 5c 78 39 30 5c 78 63 66 5c 78 38 34 5c 78 65 31 5c 78 62 64 5c 78 62 30 5c 78 30 31 22 29 29 d\x90\xcf\x84\xe1\xbd\xb0\x01"))
1a160 0a 20 20 20 20 28 73 68 6f 75 6c 64 0a 20 20 20 20 20 28 65 6d 6d 73 2d 65 71 75 61 6c 2d 6c 69 .....(should......(emms-equal-li
1a180 73 74 73 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d sts.......(emms-info-native-ogg-
1a1a0 2d 64 65 63 6f 64 65 2d 68 65 61 64 65 72 73 20 62 79 74 65 73 20 27 76 6f 72 62 69 73 29 0a 20 -decode-headers.bytes.'vorbis)..
1a1c0 20 20 20 20 20 27 28 28 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 2d 68 65 61 64 65 72 0a 20 20 .....'((identification-header...
1a1e0 20 20 20 20 20 20 20 28 70 61 63 6b 65 74 2d 74 79 70 65 20 2e 20 31 29 0a 20 20 20 20 20 20 20 .......(packet-type...1)........
1a200 20 20 28 76 6f 72 62 69 73 20 2e 20 22 76 6f 72 62 69 73 22 29 0a 20 20 20 20 20 20 20 20 20 28 ..(vorbis..."vorbis")..........(
1a220 76 6f 72 62 69 73 2d 76 65 72 73 69 6f 6e 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 vorbis-version...0)..........(ch
1a240 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 2e 20 31 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c annel-count...1)..........(sampl
1a260 65 2d 72 61 74 65 20 2e 20 34 34 31 30 30 29 0a 20 20 20 20 20 20 20 20 20 28 62 69 74 72 61 74 e-rate...44100)..........(bitrat
1a280 65 2d 6d 61 78 69 6d 75 6d 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 62 69 74 72 61 74 65 e-maximum...0)..........(bitrate
1a2a0 2d 6e 6f 6d 69 6e 61 6c 20 2e 20 38 30 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 28 62 69 74 72 -nominal...80000)..........(bitr
1a2c0 61 74 65 2d 6d 69 6e 69 6d 75 6d 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 62 6c 6f 63 6b ate-minimum...0)..........(block
1a2e0 73 69 7a 65 20 2e 20 31 38 34 29 0a 20 20 20 20 20 20 20 20 20 28 66 72 61 6d 69 6e 67 2d 66 6c size...184)..........(framing-fl
1a300 61 67 20 2e 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 ag...1)).........(comment-header
1a320 0a 20 20 20 20 20 20 20 20 20 28 70 61 63 6b 65 74 2d 74 79 70 65 20 2e 20 33 29 0a 20 20 20 20 ..........(packet-type...3).....
1a340 20 20 20 20 20 28 76 6f 72 62 69 73 20 2e 20 22 76 6f 72 62 69 73 22 29 0a 20 20 20 20 20 20 20 .....(vorbis..."vorbis")........
1a360 20 20 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 2e 20 35 32 29 0a 20 20 20 20 20 20 20 20 20 ..(vendor-length...52)..........
1a380 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e 67 20 2e 20 22 58 69 70 68 2e 4f 72 67 20 6c 69 62 56 6f (vendor-string..."Xiph.Org.libVo
1a3a0 72 62 69 73 20 49 20 32 30 32 30 30 37 30 34 20 28 52 65 64 75 63 69 6e 67 20 45 6e 76 69 72 6f rbis.I.20200704.(Reducing.Enviro
1a3c0 6e 6d 65 6e 74 29 22 29 0a 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 nment)")..........(user-comments
1a3e0 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 2e 20 32 29 0a 20 20 20 20 20 20 20 20 20 28 75 73 65 72 -list-length...2)..........(user
1a400 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68 20 2e 20 37 -comments...........((length...7
1a420 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 66 6f )............(user-comment..."fo
1a440 6f 3d 62 61 72 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68 20 2e 20 32 37 o=bar"))...........((length...27
1a460 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 4b 65 )............(user-comment..."Ke
1a480 79 3d 5c 33 31 36 5c 32 33 37 5c 33 34 31 5c 32 37 35 5c 32 32 30 5c 33 31 37 5c 32 30 37 5c 33 y=\316\237\341\275\220\317\207\3
1a4a0 34 31 5c 32 37 35 5c 32 36 36 20 5c 33 31 36 5c 32 34 34 5c 33 31 36 5c 32 36 31 5c 33 34 31 5c 41\275\266.\316\244\316\261\341\
1a4c0 32 37 35 5c 32 32 30 5c 33 31 37 5c 32 30 34 5c 33 34 31 5c 32 37 35 5c 32 36 30 22 29 29 29 0a 275\220\317\204\341\275\260"))).
1a4e0 20 20 20 20 20 20 20 20 20 28 66 72 61 6d 69 6e 67 2d 62 69 74 20 2e 20 31 29 29 29 29 29 29 29 .........(framing-bit...1)))))))
1a500 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 6f 67 67 2d 64 65 63 ..(ert-deftest.emms-test-ogg-dec
1a520 6f 64 65 2d 6f 70 75 73 2d 68 65 61 64 65 72 73 20 28 29 0a 20 20 22 54 65 73 74 20 60 65 6d 6d ode-opus-headers.()..."Test.`emm
1a540 73 2d 69 6e 66 6f 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 68 65 61 64 65 72 73 27 20 77 69 74 68 s-info-ogg--decode-headers'.with
1a560 20 4f 70 75 73 20 64 61 74 61 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 79 74 65 73 20 22 5c 78 34 .Opus.data."...(let.((bytes."\x4
1a580 66 5c 78 37 30 5c 78 37 35 5c 78 37 33 5c 78 34 38 5c 78 36 35 5c 78 36 31 5c 78 36 34 5c 78 30 f\x70\x75\x73\x48\x65\x61\x64\x0
1a5a0 31 5c 78 30 31 5c 78 33 38 5c 78 30 31 5c 78 34 34 5c 78 61 63 5c 78 30 30 5c 78 30 30 5c 78 30 1\x01\x38\x01\x44\xac\x00\x00\x0
1a5c0 30 5c 78 30 30 5c 78 30 30 5c 78 34 66 5c 78 37 30 5c 78 37 35 5c 78 37 33 5c 78 35 34 5c 78 36 0\x00\x00\x4f\x70\x75\x73\x54\x6
1a5e0 31 5c 78 36 37 5c 78 37 33 5c 78 30 64 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 36 63 5c 78 36 1\x67\x73\x0d\x00\x00\x00\x6c\x6
1a600 39 5c 78 36 32 5c 78 36 66 5c 78 37 30 5c 78 37 35 5c 78 37 33 5c 78 32 30 5c 78 33 31 5c 78 32 9\x62\x6f\x70\x75\x73\x20\x31\x2
1a620 65 5c 78 33 33 5c 78 32 65 5c 78 33 31 5c 78 30 33 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 32 e\x33\x2e\x31\x03\x00\x00\x00\x2
1a640 36 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 34 35 5c 78 34 65 5c 78 34 33 5c 78 34 66 5c 78 34 6\x00\x00\x00\x45\x4e\x43\x4f\x4
1a660 34 5c 78 34 35 5c 78 35 32 5c 78 33 64 5c 78 36 66 5c 78 37 30 5c 78 37 35 5c 78 37 33 5c 78 36 4\x45\x52\x3d\x6f\x70\x75\x73\x6
1a680 35 5c 78 36 65 5c 78 36 33 5c 78 32 30 5c 78 36 36 5c 78 37 32 5c 78 36 66 5c 78 36 64 5c 78 32 5\x6e\x63\x20\x66\x72\x6f\x6d\x2
1a6a0 30 5c 78 36 66 5c 78 37 30 5c 78 37 35 5c 78 37 33 5c 78 32 64 5c 78 37 34 5c 78 36 66 5c 78 36 0\x6f\x70\x75\x73\x2d\x74\x6f\x6
1a6c0 66 5c 78 36 63 5c 78 37 33 5c 78 32 30 5c 78 33 30 5c 78 32 65 5c 78 33 31 5c 78 32 65 5c 78 33 f\x6c\x73\x20\x30\x2e\x31\x2e\x3
1a6e0 31 5c 78 33 30 5c 78 30 37 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 36 36 5c 78 36 66 5c 78 36 1\x30\x07\x00\x00\x00\x66\x6f\x6
1a700 66 5c 78 33 64 5c 78 36 32 5c 78 36 31 5c 78 37 32 5c 78 31 62 5c 78 30 30 5c 78 30 30 5c 78 30 f\x3d\x62\x61\x72\x1b\x00\x00\x0
1a720 30 5c 78 34 62 5c 78 36 35 5c 78 37 39 5c 78 33 64 5c 78 63 65 5c 78 39 66 5c 78 65 31 5c 78 62 0\x4b\x65\x79\x3d\xce\x9f\xe1\xb
1a740 64 5c 78 39 30 5c 78 63 66 5c 78 38 37 5c 78 65 31 5c 78 62 64 5c 78 62 36 5c 78 32 30 5c 78 63 d\x90\xcf\x87\xe1\xbd\xb6\x20\xc
1a760 65 5c 78 61 34 5c 78 63 65 5c 78 62 31 5c 78 65 31 5c 78 62 64 5c 78 39 30 5c 78 63 66 5c 78 38 e\xa4\xce\xb1\xe1\xbd\x90\xcf\x8
1a780 34 5c 78 65 31 5c 78 62 64 5c 78 62 30 22 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 65 71 75 61 6c 4\xe1\xbd\xb0")).....(emms-equal
1a7a0 2d 6c 69 73 74 73 0a 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 -lists......(emms-info-native-og
1a7c0 67 2d 2d 64 65 63 6f 64 65 2d 68 65 61 64 65 72 73 20 62 79 74 65 73 20 27 6f 70 75 73 29 0a 20 g--decode-headers.bytes.'opus)..
1a7e0 20 20 20 20 27 28 28 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 2d 68 65 61 64 65 72 0a 20 20 20 ....'((identification-header....
1a800 20 20 20 20 20 28 6f 70 75 73 2d 68 65 61 64 20 2e 20 22 4f 70 75 73 48 65 61 64 22 29 0a 20 20 .....(opus-head..."OpusHead")...
1a820 20 20 20 20 20 20 28 6f 70 75 73 2d 76 65 72 73 69 6f 6e 20 2e 20 31 29 0a 20 20 20 20 20 20 20 ......(opus-version...1)........
1a840 20 28 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 2e 20 31 29 0a 20 20 20 20 20 20 20 20 28 70 72 .(channel-count...1).........(pr
1a860 65 2d 73 6b 69 70 20 2e 20 33 31 32 29 0a 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 e-skip...312).........(sample-ra
1a880 74 65 20 2e 20 34 34 31 30 30 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 70 75 74 2d 67 61 69 6e te...44100).........(output-gain
1a8a0 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d 61 70 70 69 6e 67 2d 66 ...0).........(channel-mapping-f
1a8c0 61 6d 69 6c 79 20 2e 20 30 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 amily...0))........(comment-head
1a8e0 65 72 0a 20 20 20 20 20 20 20 20 28 6f 70 75 73 2d 74 61 67 73 20 2e 20 22 4f 70 75 73 54 61 67 er.........(opus-tags..."OpusTag
1a900 73 22 29 0a 20 20 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 2e 20 31 33 29 s").........(vendor-length...13)
1a920 0a 20 20 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e 67 20 2e 20 22 6c 69 62 6f 70 .........(vendor-string..."libop
1a940 75 73 20 31 2e 33 2e 31 22 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 us.1.3.1").........(user-comment
1a960 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 2e 20 33 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 s-list-length...3).........(user
1a980 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68 20 2e 20 33 38 -comments..........((length...38
1a9a0 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 45 4e 43 )...........(user-comment..."ENC
1a9c0 4f 44 45 52 3d 6f 70 75 73 65 6e 63 20 66 72 6f 6d 20 6f 70 75 73 2d 74 6f 6f 6c 73 20 30 2e 31 ODER=opusenc.from.opus-tools.0.1
1a9e0 2e 31 30 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68 20 2e 20 37 29 0a 20 20 .10"))..........((length...7)...
1aa00 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 66 6f 6f 3d 62 61 72 ........(user-comment..."foo=bar
1aa20 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68 20 2e 20 32 37 29 0a 20 20 20 20 "))..........((length...27).....
1aa40 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 4b 65 79 3d 5c 33 31 36 5c ......(user-comment..."Key=\316\
1aa60 32 33 37 5c 33 34 31 5c 32 37 35 5c 32 32 30 5c 33 31 37 5c 32 30 37 5c 33 34 31 5c 32 37 35 5c 237\341\275\220\317\207\341\275\
1aa80 32 36 36 20 5c 33 31 36 5c 32 34 34 5c 33 31 36 5c 32 36 31 5c 33 34 31 5c 32 37 35 5c 32 32 30 266.\316\244\316\261\341\275\220
1aaa0 5c 33 31 37 5c 32 30 34 5c 33 34 31 5c 32 37 35 5c 32 36 30 22 29 29 29 29 29 29 29 29 0a 0a 28 \317\204\341\275\260"))))))))..(
1aac0 64 65 66 75 6e 20 65 6d 6d 73 2d 74 65 73 74 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 74 defun.emms-test-ogg--decode-last
1aae0 2d 70 61 67 65 20 28 62 79 74 65 73 29 0a 20 20 22 43 61 6c 6c 20 60 65 6d 6d 73 2d 69 6e 66 6f -page.(bytes)..."Call.`emms-info
1ab00 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 27 20 77 69 74 68 20 42 59 54 -ogg--decode-last-page'.with.BYT
1ab20 45 53 20 69 6e 70 75 74 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 68 65 6c 70 65 72 20 66 75 6e 63 ES.input...This.is.a.helper.func
1ab40 74 69 6f 6e 20 66 6f 72 20 60 65 6d 6d 73 2d 74 65 73 74 2d 6f 67 67 2d 64 65 63 6f 64 65 2d 6c tion.for.`emms-test-ogg-decode-l
1ab60 61 73 74 2d 70 61 67 65 27 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a ast-page'."...(with-temp-buffer.
1ab80 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 ....(set-buffer-multibyte.nil)..
1aba0 20 20 20 28 69 6e 73 65 72 74 20 28 63 6f 6e 63 61 74 20 62 79 74 65 73 29 29 0a 20 20 20 20 28 ...(insert.(concat.bytes)).....(
1abc0 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 emms-info-native-ogg--decode-las
1abe0 74 2d 70 61 67 65 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 t-page)))..(ert-deftest.emms-tes
1ac00 74 2d 6f 67 67 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 28 29 0a 20 20 28 6c 65 74 20 t-ogg-decode-last-page()...(let.
1ac20 28 28 76 61 6c 69 64 20 22 5c 78 30 31 5c 78 30 32 5c 78 30 33 5c 78 30 34 5c 78 34 66 5c 78 36 ((valid."\x01\x02\x03\x04\x4f\x6
1ac40 37 5c 78 36 37 5c 78 35 33 5c 78 30 30 5c 78 30 34 5c 78 30 30 5c 78 32 34 5c 78 30 38 5c 78 30 7\x67\x53\x00\x04\x00\x24\x08\x0
1ac60 31 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 39 63 5c 78 33 39 5c 78 36 65 5c 78 34 1\x00\x00\x00\x00\x9c\x39\x6e\x4
1ac80 37 5c 78 34 30 5c 78 30 38 5c 78 30 30 5c 78 30 30 5c 78 31 39 5c 78 34 65 5c 78 61 63 5c 78 61 7\x40\x08\x00\x00\x19\x4e\xac\xa
1aca0 33 5c 78 30 31 5c 78 30 61 5c 78 34 66 5c 78 36 37 5c 78 36 37 5c 78 35 33 5c 78 33 31 5c 78 33 3\x01\x0a\x4f\x67\x67\x53\x31\x3
1acc0 32 5c 78 33 33 5c 78 33 34 5c 78 33 35 5c 78 33 36 22 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 74 2\x33\x34\x35\x36").........(not
1ace0 6c 61 73 74 20 22 5c 78 30 31 5c 78 30 32 5c 78 30 33 5c 78 30 34 5c 78 34 66 5c 78 36 37 5c 78 last."\x01\x02\x03\x04\x4f\x67\x
1ad00 36 37 5c 78 35 33 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 32 34 5c 78 30 38 5c 78 30 31 5c 78 67\x53\x00\x00\x00\x24\x08\x01\x
1ad20 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 39 63 5c 78 33 39 5c 78 36 65 5c 78 34 37 5c 78 00\x00\x00\x00\x9c\x39\x6e\x47\x
1ad40 34 30 5c 78 30 38 5c 78 30 30 5c 78 30 30 5c 78 31 39 5c 78 34 65 5c 78 61 63 5c 78 61 33 5c 78 40\x08\x00\x00\x19\x4e\xac\xa3\x
1ad60 30 31 5c 78 30 61 5c 78 34 66 5c 78 36 37 5c 78 36 37 5c 78 35 33 5c 78 33 31 5c 78 33 32 5c 78 01\x0a\x4f\x67\x67\x53\x31\x32\x
1ad80 33 33 5c 78 33 34 5c 78 33 35 5c 78 33 36 22 29 0a 20 20 20 20 20 20 20 20 28 69 6e 76 61 6c 69 33\x34\x35\x36").........(invali
1ada0 64 20 22 5c 78 30 31 5c 78 30 32 5c 78 30 33 5c 78 30 34 5c 78 34 66 5c 78 36 37 5c 78 36 37 5c d."\x01\x02\x03\x04\x4f\x67\x67\
1adc0 78 35 33 5c 78 30 30 5c 78 30 34 5c 78 30 30 5c 78 32 34 5c 78 30 38 5c 78 30 31 5c 78 30 30 5c x53\x00\x04\x00\x24\x08\x01\x00\
1ade0 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 39 63 5c 78 33 39 5c 78 36 65 5c 78 34 37 5c 78 34 30 5c x00\x00\x00\x9c\x39\x6e\x47\x40\
1ae00 78 30 38 5c 78 30 30 5c 78 30 30 5c 78 30 31 5c 78 30 32 5c 78 30 33 5c 78 30 34 5c 78 30 31 5c x08\x00\x00\x01\x02\x03\x04\x01\
1ae20 78 30 61 5c 78 34 66 5c 78 36 37 5c 78 36 37 5c 78 35 33 5c 78 33 31 5c 78 33 32 5c 78 33 33 5c x0a\x4f\x67\x67\x53\x31\x32\x33\
1ae40 78 33 34 5c 78 33 35 5c 78 33 36 22 29 0a 20 20 20 20 20 20 20 20 28 76 61 6c 69 64 2d 72 65 73 x34\x35\x36").........(valid-res
1ae60 75 6c 74 0a 20 20 20 20 20 20 20 20 20 28 71 75 6f 74 65 0a 20 20 20 20 20 20 20 20 20 20 28 28 ult..........(quote...........((
1ae80 63 61 70 74 75 72 65 2d 70 61 74 74 65 72 6e 20 2e 20 22 4f 67 67 53 22 29 0a 20 20 20 20 20 20 capture-pattern..."OggS").......
1aea0 20 20 20 20 20 28 73 74 72 65 61 6d 2d 73 74 72 75 63 74 75 72 65 2d 76 65 72 73 69 6f 6e 20 2e .....(stream-structure-version..
1aec0 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 2d 74 79 70 65 2d 66 6c 61 67 .0)............(header-type-flag
1aee0 20 2e 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 72 61 6e 75 6c 65 2d 70 6f 73 69 74 69 ...4)............(granule-positi
1af00 6f 6e 20 2e 20 31 37 33 31 30 37 32 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 on...17310720)............(strea
1af20 6d 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 20 2e 20 31 31 39 38 34 30 36 30 34 34 29 0a 20 20 m-serial-number...1198406044)...
1af40 20 20 20 20 20 20 20 20 20 28 70 61 67 65 2d 73 65 71 75 65 6e 63 65 2d 6e 6f 20 2e 20 32 31 31 .........(page-sequence-no...211
1af60 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 61 67 65 2d 63 68 65 63 6b 73 75 6d 20 2e 20 32 2)............(page-checksum...2
1af80 37 34 35 39 37 38 33 39 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 61 67 65 2d 73 65 67 6d 745978393)............(page-segm
1afa0 65 6e 74 73 20 2e 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 67 6d 65 6e 74 2d 74 61 ents...1)............(segment-ta
1afc0 62 6c 65 20 2e 20 5b 31 30 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 61 79 6c 6f 61 64 20 ble...[10])............(payload.
1afe0 2e 20 22 4f 67 67 53 31 32 33 34 35 36 22 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 .."OggS123456"))))).....(unless.
1b000 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e (eval-when-compile.(fboundp.'bin
1b020 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 27 67 72 dat-type)).......(push.(cons.'gr
1b040 61 6e 75 6c 65 2d 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 5b 30 20 33 36 20 38 20 31 20 30 anule-position-bytes.[0.36.8.1.0
1b060 20 30 20 30 20 30 5d 29 20 76 61 6c 69 64 2d 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 73 68 6f .0.0.0]).valid-result)).....(sho
1b080 75 6c 64 20 28 65 6d 6d 73 2d 65 71 75 61 6c 2d 6c 69 73 74 73 20 28 65 6d 6d 73 2d 74 65 73 74 uld.(emms-equal-lists.(emms-test
1b0a0 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 20 76 61 6c 69 64 29 0a 20 20 -ogg--decode-last-page.valid)...
1b0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 69 ............................vali
1b0e0 64 2d 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 d-result)).....(should.(equal.(e
1b100 6d 6d 73 2d 74 65 73 74 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 65 20 6e mms-test-ogg--decode-last-page.n
1b120 6f 74 6c 61 73 74 29 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c otlast).nil)).....(should.(equal
1b140 20 28 65 6d 6d 73 2d 74 65 73 74 2d 6f 67 67 2d 2d 64 65 63 6f 64 65 2d 6c 61 73 74 2d 70 61 67 .(emms-test-ogg--decode-last-pag
1b160 65 20 69 6e 76 61 6c 69 64 29 20 6e 69 6c 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 e.invalid).nil))))..(ert-deftest
1b180 20 65 6d 6d 73 2d 74 65 73 74 2d 6f 67 67 2d 63 61 6c 63 75 6c 61 74 65 2d 63 68 65 63 6b 73 75 .emms-test-ogg-calculate-checksu
1b1a0 6d 20 28 29 0a 20 20 28 6c 65 74 20 28 28 62 79 74 65 73 20 22 5c 78 30 31 5c 78 30 32 5c 78 30 m.()...(let.((bytes."\x01\x02\x0
1b1c0 33 5c 78 30 34 5c 78 34 66 5c 78 36 37 5c 78 36 37 5c 78 35 33 5c 78 30 30 5c 78 30 34 5c 78 30 3\x04\x4f\x67\x67\x53\x00\x04\x0
1b1e0 30 5c 78 32 34 5c 78 30 38 5c 78 30 31 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 39 0\x24\x08\x01\x00\x00\x00\x00\x9
1b200 63 5c 78 33 39 5c 78 36 65 5c 78 34 37 5c 78 34 30 5c 78 30 38 5c 78 30 30 5c 78 30 30 5c 78 31 c\x39\x6e\x47\x40\x08\x00\x00\x1
1b220 39 5c 78 34 65 5c 78 61 63 5c 78 61 33 5c 78 30 31 5c 78 30 61 5c 78 34 66 5c 78 36 37 5c 78 36 9\x4e\xac\xa3\x01\x0a\x4f\x67\x6
1b240 37 5c 78 35 33 5c 78 33 31 5c 78 33 32 5c 78 33 33 5c 78 33 34 5c 78 33 35 5c 78 33 36 22 29 29 7\x53\x31\x32\x33\x34\x35\x36"))
1b260 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 .....(should.(=.(emms-info-nativ
1b280 65 2d 6f 67 67 2d 2d 63 68 65 63 6b 73 75 6d 20 62 79 74 65 73 29 20 34 34 35 38 38 35 35 38 30 e-ogg--checksum.bytes).445885580
1b2a0 29 29 29 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 74 ))))..;;;.emms-info-native-ogg-t
1b2c0 65 73 74 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ests.el.ends.here...............
1b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b400 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 65 6d 6d 73 2d 74 65 73 74 73 2e 65 6c 00 00 00 00 00 00 emms-24/test/emms-tests.el......
1b420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
1b480 30 30 30 34 34 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 30 37 00 20 30 00 00 00 0004460.00000000000.014307..0...
1b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
1b520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
1b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b600 3b 3b 3b 20 65 6d 6d 73 2d 74 65 73 74 73 2e 65 6c 20 2d 2d 2d 20 54 65 73 74 20 73 75 69 74 65 ;;;.emms-tests.el.---.Test.suite
1b620 20 66 6f 72 20 45 4d 4d 53 20 63 6f 72 65 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 .for.EMMS.core..-*-.lexical-bind
1b640 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
1b660 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 23.Free.Software.Foundation,.Inc
1b680 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 ...;;.Author:.Petteri.Hintsanen.
1b6a0 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 <petterih@iki.fi>..;;.This.file.
1b6c0 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 is.part.of.EMMS...;;.EMMS.is.fre
1b6e0 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software;.you.can.redistribute
1b700 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.it.;;.under.th
1b720 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
1b740 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 c.License.as.published.by.;;.the
1b760 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 .Free.Software.Foundation;.eithe
1b780 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 r.version.3,.or.(at.your.option)
1b7a0 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 .;;.any.later.version...;;.EMMS.
1b7c0 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 is.distributed.in.the.hope.that.
1b7e0 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b it.will.be.useful,.but.WITHOUT.;
1b800 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 ;.ANY.WARRANTY;.without.even.the
1b820 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 .implied.warranty.of.MERCHANTABI
1b840 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 LITY.;;.or.FITNESS.FOR.A.PARTICU
1b860 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 LAR.PURPOSE...See.the.GNU.Genera
1b880 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 l.Public.;;.License.for.more.det
1b8a0 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 ails...;;.You.should.have.receiv
1b8c0 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 ed.a.copy.of.the.GNU.General.Pub
1b8e0 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 lic.License.;;.along.with.EMMS;.
1b900 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 see.the.file.COPYING..If.not,.wr
1b920 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e ite.to.the.Free.;;.Software.Foun
1b940 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 dation,.Inc.,.51.Franklin.Street
1b960 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 ,.Fifth.Floor,.Boston,.;;.MA.021
1b980 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 10-1301,.USA...;;;.Code:..(requi
1b9a0 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 72 74 29 0a 0a 28 65 72 74 2d 64 re.'emms).(require.'ert)..(ert-d
1b9c0 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 6c 65 2d 74 6f 2d 69 6e 74 20 28 29 0a 20 20 eftest.emms-test-le-to-int.()...
1b9e0 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 6c 65 2d 74 6f 2d 69 6e 74 20 6e 69 6c 29 20 (should.(=.(emms-le-to-int.nil).
1ba00 30 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 6c 65 2d 74 6f 2d 69 6e 74 0))...(should.(=.(emms-le-to-int
1ba20 20 5b 30 5d 29 20 30 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 6c 65 2d .[0]).0))...(should.(=.(emms-le-
1ba40 74 6f 2d 69 6e 74 20 5b 31 32 37 5d 29 20 31 32 37 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d to-int.[127]).127))...(should.(=
1ba60 20 28 65 6d 6d 73 2d 6c 65 2d 74 6f 2d 69 6e 74 20 5b 32 35 35 5d 29 20 32 35 35 29 29 0a 20 20 .(emms-le-to-int.[255]).255))...
1ba80 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 6c 65 2d 74 6f 2d 69 6e 74 20 5b 30 20 31 5d (should.(=.(emms-le-to-int.[0.1]
1baa0 29 20 32 35 36 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 6c 65 2d 74 6f ).256))...(should.(=.(emms-le-to
1bac0 2d 69 6e 74 20 5b 31 20 30 5d 29 20 31 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d -int.[1.0]).1))...(should.(=.(em
1bae0 6d 73 2d 6c 65 2d 74 6f 2d 69 6e 74 20 5b 30 20 31 32 38 5d 29 20 33 32 37 36 38 29 29 0a 20 20 ms-le-to-int.[0.128]).32768))...
1bb00 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 6c 65 2d 74 6f 2d 69 6e 74 20 5b 31 20 32 20 (should.(=.(emms-le-to-int.[1.2.
1bb20 34 20 38 5d 29 20 31 33 34 34 38 30 33 38 35 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 4.8]).134480385)))..(ert-deftest
1bb40 20 65 6d 6d 73 2d 74 65 73 74 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 .emms-test-from-twos-complement.
1bb60 28 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d ()...(should.(=.(emms-from-twos-
1bb80 63 6f 6d 70 6c 65 6d 65 6e 74 20 30 20 38 29 20 30 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d complement.0.8).0))...(should.(=
1bba0 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 31 20 38 29 .(emms-from-twos-complement.1.8)
1bbc0 20 31 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f .1))...(should.(=.(emms-from-two
1bbe0 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 31 32 37 20 38 29 20 31 32 37 29 29 0a 20 20 28 73 68 6f s-complement.127.8).127))...(sho
1bc00 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e uld.(=.(emms-from-twos-complemen
1bc20 74 20 31 32 38 20 38 29 20 2d 31 32 38 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d t.128.8).-128))...(should.(=.(em
1bc40 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 31 32 39 20 38 29 20 2d ms-from-twos-complement.129.8).-
1bc60 31 32 37 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 127))...(should.(=.(emms-from-tw
1bc80 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 32 35 34 20 38 29 20 2d 32 29 29 0a 20 20 28 73 68 6f os-complement.254.8).-2))...(sho
1bca0 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e uld.(=.(emms-from-twos-complemen
1bcc0 74 20 32 35 35 20 38 29 20 2d 31 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 t.255.8).-1))...(should.(=.(emms
1bce0 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 30 20 31 30 29 20 30 29 29 0a -from-twos-complement.0.10).0)).
1bd00 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d ..(should.(=.(emms-from-twos-com
1bd20 70 6c 65 6d 65 6e 74 20 35 31 31 20 31 30 29 20 35 31 31 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 plement.511.10).511))...(should.
1bd40 28 3d 20 28 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 35 31 (=.(emms-from-twos-complement.51
1bd60 32 20 31 30 29 20 2d 35 31 32 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 2.10).-512))...(should.(=.(emms-
1bd80 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 31 30 32 33 20 31 30 29 20 2d 31 from-twos-complement.1023.10).-1
1bda0 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 65 78 74 72 )))..(ert-deftest.emms-test-extr
1bdc0 61 63 74 2d 62 69 74 73 20 28 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 65 act-bits.()...(should.(=.(emms-e
1bde0 78 74 72 61 63 74 2d 62 69 74 73 20 31 32 38 20 37 29 20 31 29 29 0a 20 20 28 73 68 6f 75 6c 64 xtract-bits.128.7).1))...(should
1be00 20 28 3d 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 36 34 20 36 20 37 29 20 31 .(=.(emms-extract-bits.64.6.7).1
1be20 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 ))...(should.(=.(emms-extract-bi
1be40 74 73 20 31 32 38 20 36 20 37 29 20 32 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d ts.128.6.7).2))...(should.(=.(em
1be60 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 31 39 32 20 36 20 37 29 20 33 29 29 0a 20 20 28 ms-extract-bits.192.6.7).3))...(
1be80 73 68 6f 75 6c 64 20 28 65 71 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 31 39 should.(eq.(emms-extract-bits.19
1bea0 32 20 37 20 36 29 20 6e 69 6c 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 2.7.6).nil))...(should.(=.(emms-
1bec0 65 78 74 72 61 63 74 2d 62 69 74 73 20 31 32 38 20 33 32 29 20 30 29 29 0a 20 20 28 73 68 6f 75 extract-bits.128.32).0))...(shou
1bee0 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 34 32 39 34 36 38 38 ld.(=.(emms-extract-bits.4294688
1bf00 37 37 32 20 32 31 20 33 31 29 20 32 30 34 37 29 29 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 74 65 73 772.21.31).2047)))..;;;.emms-tes
1bf20 74 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ts.el.ends.here.................
1bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c000 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 emms-24/test/emms-info-native-mp
1c020 33 2d 74 65 73 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3-tests.el......................
1c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
1c080 30 30 31 34 32 35 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 32 32 00 20 30 00 00 00 0014253.00000000000.017222..0...
1c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
1c120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
1c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c200 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 74 65 73 74 73 2e 65 ;;;.emms-info-native-mp3-tests.e
1c220 6c 20 2d 2d 2d 20 54 65 73 74 20 73 75 69 74 65 20 66 6f 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e l.---.Test.suite.for.emms-info-n
1c240 61 74 69 76 65 2d 6d 70 33 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 ative-mp3..-*-.lexical-binding:.
1c260 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 46 72 t;.-*-..;;.Copyright.(C).2023.Fr
1c280 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b ee.Software.Foundation,.Inc...;;
1c2a0 20 41 75 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 .Author:.Petteri.Hintsanen.<pett
1c2c0 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 erih@iki.fi>..;;.This.file.is.pa
1c2e0 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 rt.of.EMMS...;;.EMMS.is.free.sof
1c300 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 tware;.you.can.redistribute.it.a
1c320 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 nd/or.modify.it.;;.under.the.ter
1c340 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 ms.of.the.GNU.General.Public.Lic
1c360 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 ense.as.published.by.;;.the.Free
1c380 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 .Software.Foundation;.either.ver
1c3a0 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 sion.3,.or.(at.your.option).;;.a
1c3c0 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 ny.later.version...;;.EMMS.is.di
1c3e0 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 stributed.in.the.hope.that.it.wi
1c400 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 ll.be.useful,.but.WITHOUT.;;.ANY
1c420 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c .WARRANTY;.without.even.the.impl
1c440 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a ied.warranty.of.MERCHANTABILITY.
1c460 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 ;;.or.FITNESS.FOR.A.PARTICULAR.P
1c480 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 URPOSE...See.the.GNU.General.Pub
1c4a0 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e lic.;;.License.for.more.details.
1c4c0 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ..;;.You.should.have.received.a.
1c4e0 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c copy.of.the.GNU.General.Public.L
1c500 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 icense.;;.along.with.EMMS;.see.t
1c520 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 he.file.COPYING..If.not,.write.t
1c540 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f o.the.Free.;;.Software.Foundatio
1c560 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 n,.Inc.,.51.Franklin.Street,.Fif
1c580 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 th.Floor,.Boston,.;;.MA.02110-13
1c5a0 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 01,.USA...;;;.Code:..(require.'e
1c5c0 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 29 0a 28 72 65 71 75 69 72 65 20 27 65 mms-info-native-mp3).(require.'e
1c5e0 72 74 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 69 64 33 76 rt)..(ert-deftest.emms-test-id3v
1c600 32 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 28 29 0a 20 20 28 6c 65 74 20 28 28 65 2-valid-frame-id-p.()...(let.((e
1c620 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 mms-info-native-id3v2--version.2
1c640 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 )).....(should.(emms-info-native
1c660 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 22 41 31 42 22 29 29 -id3v2--valid-frame-id-p."A1B"))
1c680 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 .....(should.(not.(emms-info-nat
1c6a0 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 22 7e 42 31 ive-id3v2--valid-frame-id-p."~B1
1c6c0 22 29 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 69 6e 66 6f "))).....(should.(not.(emms-info
1c6e0 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 -native-id3v2--valid-frame-id-p.
1c700 22 58 58 22 29 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 69 "XX"))).....(should.(not.(emms-i
1c720 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 nfo-native-id3v2--valid-frame-id
1c740 2d 70 20 22 58 58 58 58 22 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 69 6e 66 6f -p."XXXX"))))...(let.((emms-info
1c760 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 33 29 29 0a 20 20 20 20 28 -native-id3v2--version.3)).....(
1c780 73 68 6f 75 6c 64 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d should.(emms-info-native-id3v2--
1c7a0 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 22 41 42 43 39 22 29 29 0a 20 20 20 20 28 73 valid-frame-id-p."ABC9")).....(s
1c7c0 68 6f 75 6c 64 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 hould.(not.(emms-info-native-id3
1c7e0 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 22 7e 42 43 44 22 29 29 29 0a 20 v2--valid-frame-id-p."~BCD")))..
1c800 20 20 20 28 73 68 6f 75 6c 64 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 ...(should.(not.(emms-info-nativ
1c820 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 22 58 58 58 22 29 e-id3v2--valid-frame-id-p."XXX")
1c840 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e )).....(should.(not.(emms-info-n
1c860 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 22 58 ative-id3v2--valid-frame-id-p."X
1c880 58 58 58 58 22 29 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 XXXX")))))..(ert-deftest.emms-te
1c8a0 73 74 2d 69 64 33 76 32 2d 63 68 65 63 6b 65 64 2d 73 69 7a 65 20 28 29 0a 20 20 28 73 68 6f 75 st-id3v2-checked-size.()...(shou
1c8c0 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 ld.(=.(emms-info-native-id3v2--c
1c8e0 68 65 63 6b 65 64 2d 73 69 7a 65 20 27 74 61 67 20 5b 30 20 30 20 32 20 31 5d 29 20 32 35 37 29 hecked-size.'tag.[0.0.2.1]).257)
1c900 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 )...(should.(=.(emms-info-native
1c920 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 69 7a 65 20 27 74 61 67 20 5b 31 20 31 20 31 -id3v2--checked-size.'tag.[1.1.1
1c940 20 31 5d 29 20 32 31 31 33 36 36 35 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d .1]).2113665))...(should.(=.(emm
1c960 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 69 7a s-info-native-id3v2--checked-siz
1c980 65 20 27 74 61 67 20 5b 23 78 66 66 20 23 78 66 66 20 23 78 66 66 20 23 78 66 66 5d 29 0a 20 20 e.'tag.[#xff.#xff.#xff.#xff])...
1c9a0 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 2a 20 32 35 36 20 31 30 32 34 20 31 30 32 34 29 ...........(1-.(*.256.1024.1024)
1c9c0 29 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 )))...(should.(=.(emms-info-nati
1c9e0 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 69 7a 65 20 27 74 61 67 20 5b 23 78 37 ve-id3v2--checked-size.'tag.[#x7
1ca00 66 20 23 78 37 66 20 23 78 37 66 20 23 78 37 66 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 f.#x7f.#x7f.#x7f])..............
1ca20 28 31 2d 20 28 2a 20 32 35 36 20 31 30 32 34 20 31 30 32 34 29 29 29 29 0a 20 20 28 73 68 6f 75 (1-.(*.256.1024.1024))))...(shou
1ca40 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 ld.(=.(emms-info-native-id3v2--c
1ca60 68 65 63 6b 65 64 2d 73 69 7a 65 20 27 74 61 67 20 5b 23 78 31 32 20 23 78 33 34 20 23 78 35 36 hecked-size.'tag.[#x12.#x34.#x56
1ca80 20 23 78 37 38 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 33 38 36 31 31 38 33 32 29 29 0a .#x78])..............38611832)).
1caa0 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d ..(let.((emms-info-native-id3v2-
1cac0 2d 76 65 72 73 69 6f 6e 20 34 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d -version.4)).....(should.(=.(emm
1cae0 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 69 7a s-info-native-id3v2--checked-siz
1cb00 65 20 27 66 72 61 6d 65 20 5b 23 78 66 66 20 23 78 66 66 20 23 78 66 66 20 23 78 66 66 5d 29 0a e.'frame.[#xff.#xff.#xff.#xff]).
1cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 2a 20 32 35 36 20 31 30 32 34 20 31 ...............(1-.(*.256.1024.1
1cb40 30 32 34 29 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 024)))))...(let.((emms-info-nati
1cb60 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 33 29 29 0a 20 20 20 20 28 73 68 6f 75 6c ve-id3v2--version.3)).....(shoul
1cb80 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 d.(=.(emms-info-native-id3v2--ch
1cba0 65 63 6b 65 64 2d 73 69 7a 65 20 27 66 72 61 6d 65 20 5b 23 78 66 66 20 23 78 66 66 20 23 78 66 ecked-size.'frame.[#xff.#xff.#xf
1cbc0 66 20 23 78 66 66 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 2a 20 34 f.#xff])................(1-.(*.4
1cbe0 20 31 30 32 34 20 31 30 32 34 20 31 30 32 34 29 29 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 .1024.1024.1024))))))..(ert-deft
1cc00 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 69 64 33 76 32 2d 64 65 63 6f 64 65 2d 73 69 7a 65 20 est.emms-test-id3v2-decode-size.
1cc20 28 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 ()...(should.(=.(emms-info-nativ
1cc40 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 73 69 7a 65 20 5b 30 31 20 30 31 20 30 31 20 30 e-id3v2--decode-size.[01.01.01.0
1cc60 31 5d 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 31 36 38 34 33 30 30 39 29 29 0a 1].nil)..............16843009)).
1cc80 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 ..(should.(=.(emms-info-native-i
1cca0 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 73 69 7a 65 20 5b 30 31 20 30 31 20 30 31 20 30 31 5d 20 d3v2--decode-size.[01.01.01.01].
1ccc0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 32 31 31 33 36 36 35 29 29 0a 20 20 28 73 68 6f t)..............2113665))...(sho
1cce0 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d uld.(=.(emms-info-native-id3v2--
1cd00 64 65 63 6f 64 65 2d 73 69 7a 65 20 5b 30 30 20 30 30 20 30 32 20 30 31 5d 20 6e 69 6c 29 0a 20 decode-size.[00.00.02.01].nil)..
1cd20 20 20 20 20 20 20 20 20 20 20 20 20 35 31 33 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 3d 20 28 ............513))...(should.(=.(
1cd40 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 73 emms-info-native-id3v2--decode-s
1cd60 69 7a 65 20 5b 30 30 20 30 30 20 30 32 20 30 31 5d 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ize.[00.00.02.01].t)............
1cd80 20 20 32 35 37 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 ..257)))..(ert-deftest.emms-test
1cda0 2d 6d 70 33 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 68 65 61 64 65 -mp3-find-and-decode-frame-heade
1cdc0 72 20 28 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 r.()...(with-temp-buffer.....(se
1cde0 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 t-buffer-multibyte.nil).....(ins
1ce00 65 72 74 20 22 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 ert."\x00\x00\x00\x00\x00\x00\x0
1ce20 30 5c 78 66 66 5c 78 66 62 5c 78 62 30 5c 78 30 34 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\xff\xfb\xb0\x04\x00\x00\x00\x0
1ce40 30 5c 78 30 30 5c 78 36 39 5c 78 30 36 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x69\x06\x00\x00\x00\x00\x0
1ce60 30 5c 78 30 64 5c 78 32 30 5c 78 63 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x0d\x20\xc0\x00\x00\x00\x00\x0
1ce80 31 5c 78 61 34 5c 78 31 63 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 33 1\xa4\x1c\x00\x00\x00\x00\x00\x3
1cea0 34 5c 78 38 33 5c 78 38 30 5c 78 30 30 5c 78 30 30 5c 78 34 63 5c 78 34 31 5c 78 34 64 5c 78 34 4\x83\x80\x00\x00\x4c\x41\x4d\x4
1cec0 35 5c 78 33 33 5c 78 32 65 5c 78 33 39 5c 78 33 31 5c 78 35 35 5c 78 35 35 22 29 0a 20 20 20 20 5\x33\x2e\x39\x31\x55\x55").....
1cee0 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 (should.(equal.(emms-info-native
1cf00 2d 6d 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 68 65 61 64 -mp3--find-and-decode-frame-head
1cf20 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 76 65 72 73 69 6f er)....................'((versio
1cf40 6e 20 2e 20 6d 70 65 67 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n...mpeg1)......................
1cf60 28 6c 61 79 65 72 20 2e 20 6c 61 79 65 72 49 49 49 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (layer...layerIII)..............
1cf80 20 20 20 20 20 20 20 20 28 63 72 63 20 2e 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(crc...1)...............
1cfa0 20 20 20 20 20 20 20 28 62 69 74 2d 72 61 74 65 20 2e 20 31 39 32 29 0a 20 20 20 20 20 20 20 20 .......(bit-rate...192).........
1cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 74 65 20 2e 20 34 34 31 30 .............(sample-rate...4410
1cfe0 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 73 0)......................(samples
1d000 2d 70 65 72 2d 66 72 61 6d 65 20 2e 20 31 31 35 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -per-frame...1152)..............
1d020 20 20 20 20 20 20 20 20 28 70 61 64 64 69 6e 67 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 ........(padding...0)...........
1d040 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 76 61 74 65 20 2e 20 30 29 0a 20 20 20 20 20 20 20 ...........(private...0)........
1d060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d 6f 64 65 20 2e 20 73 74 ..............(channel-mode...st
1d080 65 72 65 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 ereo)......................(mode
1d0a0 2d 65 78 74 65 6e 73 69 6f 6e 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -extension...0).................
1d0c0 20 20 20 20 20 28 63 6f 70 79 72 69 67 68 74 20 2e 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 .....(copyright...0)............
1d0e0 20 20 20 20 20 20 20 20 20 20 28 65 6d 70 68 61 73 69 73 20 2e 20 30 29 0a 20 20 20 20 20 20 20 ..........(emphasis...0)........
1d100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 69 67 69 6e 61 6c 20 2e 20 31 29 29 29 29 29 ..............(original...1)))))
1d120 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 6d 70 33 2d 66 69 )..(ert-deftest.emms-test-mp3-fi
1d140 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 78 69 6e 67 2d 68 65 61 64 65 72 20 28 29 0a 20 20 28 nd-and-decode-xing-header.()...(
1d160 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 with-temp-buffer.....(set-buffer
1d180 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 78 66 -multibyte.nil).....(insert."\xf
1d1a0 66 5c 78 65 61 5c 78 39 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 f\xea\x90\x00\x00\x00\x00\x00\x0
1d1c0 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x00\x00\x00\x00\x00\x00\x0
1d1e0 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x00\x00\x00\x00\x00\x00\x0
1d200 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x00\x00\x00\x00\x00\x00\x0
1d220 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 35 38 5c 78 36 39 5c 78 36 65 5c 78 36 37 5c 78 30 0\x00\x00\x00\x58\x69\x6e\x67\x0
1d240 30 5c 78 30 30 5c 78 30 30 5c 78 30 66 5c 78 30 30 5c 78 30 30 5c 78 32 31 5c 78 35 39 5c 78 30 0\x00\x00\x0f\x00\x00\x21\x59\x0
1d260 30 5c 78 35 30 5c 78 31 64 5c 78 37 39 5c 78 30 30 5c 78 30 33 5c 78 30 36 5c 78 30 38 5c 78 30 0\x50\x1d\x79\x00\x03\x06\x08\x0
1d280 62 5c 78 30 65 5c 78 30 66 5c 78 31 32 5c 78 31 35 5c 78 31 37 5c 78 31 61 5c 78 31 64 5c 78 31 b\x0e\x0f\x12\x15\x17\x1a\x1d\x1
1d2a0 66 5c 78 32 32 5c 78 32 35 5c 78 32 37 5c 78 32 61 5c 78 32 64 5c 78 32 66 5c 78 33 32 5c 78 33 f\x22\x25\x27\x2a\x2d\x2f\x32\x3
1d2c0 35 5c 78 33 37 5c 78 33 39 5c 78 33 63 5c 78 33 65 5c 78 34 31 5c 78 34 34 5c 78 34 36 5c 78 34 5\x37\x39\x3c\x3e\x41\x44\x46\x4
1d2e0 39 5c 78 34 63 5c 78 34 65 5c 78 35 31 5c 78 35 34 5c 78 35 36 5c 78 35 39 5c 78 35 63 5c 78 35 9\x4c\x4e\x51\x54\x56\x59\x5c\x5
1d300 65 5c 78 36 31 5c 78 36 34 5c 78 36 35 5c 78 36 38 5c 78 36 62 5c 78 36 64 5c 78 37 30 5c 78 37 e\x61\x64\x65\x68\x6b\x6d\x70\x7
1d320 33 5c 78 37 35 5c 78 37 38 5c 78 37 61 5c 78 37 62 5c 78 37 64 5c 78 37 66 5c 78 38 32 5c 78 38 3\x75\x78\x7a\x7b\x7d\x7f\x82\x8
1d340 35 5c 78 38 37 5c 78 38 61 5c 78 38 64 5c 78 38 66 5c 78 39 32 5c 78 39 35 5c 78 39 37 5c 78 39 5\x87\x8a\x8d\x8f\x92\x95\x97\x9
1d360 61 5c 78 39 64 5c 78 39 66 5c 78 61 32 5c 78 61 35 5c 78 61 37 5c 78 61 61 5c 78 61 64 5c 78 61 a\x9d\x9f\xa2\xa5\xa7\xaa\xad\xa
1d380 65 5c 78 62 31 5c 78 62 34 5c 78 62 36 5c 78 62 39 5c 78 62 63 5c 78 62 65 5c 78 63 31 5c 78 63 e\xb1\xb4\xb6\xb9\xbc\xbe\xc1\xc
1d3a0 34 5c 78 63 36 5c 78 63 39 5c 78 63 63 5c 78 63 65 5c 78 64 31 5c 78 64 34 5c 78 64 36 5c 78 64 4\xc6\xc9\xcc\xce\xd1\xd4\xd6\xd
1d3c0 39 5c 78 64 63 5c 78 64 65 5c 78 65 31 5c 78 65 34 5c 78 65 36 5c 78 65 39 5c 78 65 63 5c 78 65 9\xdc\xde\xe1\xe4\xe6\xe9\xec\xe
1d3e0 65 5c 78 66 31 5c 78 66 34 5c 78 66 36 5c 78 66 39 5c 78 66 62 5c 78 66 64 5c 78 66 66 5c 78 30 e\xf1\xf4\xf6\xf9\xfb\xfd\xff\x0
1d400 30 5c 78 30 30 5c 78 30 30 5c 78 35 38 5c 78 34 63 5c 78 34 31 5c 78 34 64 5c 78 34 35 5c 78 33 0\x00\x00\x58\x4c\x41\x4d\x45\x3
1d420 33 5c 78 32 65 5c 78 33 38 5c 78 33 38 5c 78 32 30 5c 78 32 38 5c 78 36 31 5c 78 36 63 5c 78 37 3\x2e\x38\x38\x20\x28\x61\x6c\x7
1d440 30 5c 78 36 38 5c 78 36 31 5c 78 32 39 5c 78 30 30 5c 78 30 30 22 29 0a 20 20 20 20 28 73 68 6f 0\x68\x61\x29\x00\x00").....(sho
1d460 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 66 69 uld.(=.(emms-info-native-mp3--fi
1d480 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 78 69 6e 67 2d 68 65 61 64 65 72 29 20 38 35 33 37 29 nd-and-decode-xing-header).8537)
1d4a0 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 6d 70 33 2d )))..(ert-deftest.emms-test-mp3-
1d4c0 66 69 6e 64 2d 64 65 63 6f 64 65 2d 78 69 6e 67 2d 68 65 61 64 65 72 2d 32 20 28 29 0a 20 20 28 find-decode-xing-header-2.()...(
1d4e0 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 with-temp-buffer.....(set-buffer
1d500 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 78 66 -multibyte.nil).....(insert."\xf
1d520 66 5c 78 66 62 5c 78 35 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 f\xfb\x50\x00\x00\x00\x00\x00\x0
1d540 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x00\x00\x00\x00\x00\x00\x0
1d560 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x00\x00\x00\x00\x00\x00\x0
1d580 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 0\x00\x00\x00\x00\x00\x00\x00\x0
1d5a0 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 34 39 5c 78 36 65 5c 78 36 36 5c 78 36 66 5c 78 30 0\x00\x00\x00\x49\x6e\x66\x6f\x0
1d5c0 30 5c 78 30 30 5c 78 30 30 5c 78 30 66 5c 78 30 30 5c 78 30 30 5c 78 32 33 5c 78 64 38 5c 78 30 0\x00\x00\x0f\x00\x00\x23\xd8\x0
1d5e0 30 5c 78 33 61 5c 78 38 36 5c 78 30 39 5c 78 30 30 5c 78 30 32 5c 78 30 35 5c 78 30 38 5c 78 30 0\x3a\x86\x09\x00\x02\x05\x08\x0
1d600 61 5c 78 30 64 5c 78 31 30 5c 78 31 32 5c 78 31 34 5c 78 31 37 5c 78 31 39 5c 78 31 63 5c 78 31 a\x0d\x10\x12\x14\x17\x19\x1c\x1
1d620 66 5c 78 32 31 5c 78 32 34 5c 78 32 36 5c 78 32 39 5c 78 32 62 5c 78 32 65 5c 78 33 31 5c 78 33 f\x21\x24\x26\x29\x2b\x2e\x31\x3
1d640 33 5c 78 33 36 5c 78 33 38 5c 78 33 61 5c 78 33 64 5c 78 34 30 5c 78 34 32 5c 78 34 35 5c 78 34 3\x36\x38\x3a\x3d\x40\x42\x45\x4
1d660 38 5c 78 34 61 5c 78 34 63 5c 78 34 66 5c 78 35 32 5c 78 35 34 5c 78 35 37 5c 78 35 61 5c 78 35 8\x4a\x4c\x4f\x52\x54\x57\x5a\x5
1d680 62 5c 78 35 65 5c 78 36 31 5c 78 36 33 5c 78 36 36 5c 78 36 39 5c 78 36 63 5c 78 36 64 5c 78 37 b\x5e\x61\x63\x66\x69\x6c\x6d\x7
1d6a0 30 5c 78 37 33 5c 78 37 35 5c 78 37 38 5c 78 37 62 5c 78 37 64 5c 78 38 30 5c 78 38 32 5c 78 38 0\x73\x75\x78\x7b\x7d\x80\x82\x8
1d6c0 35 5c 78 38 37 5c 78 38 61 5c 78 38 64 5c 78 38 66 5c 78 39 32 5c 78 39 34 5c 78 39 36 5c 78 39 5\x87\x8a\x8d\x8f\x92\x94\x96\x9
1d6e0 39 5c 78 39 63 5c 78 39 65 5c 78 61 31 5c 78 61 34 5c 78 61 36 5c 78 61 38 5c 78 61 62 5c 78 61 9\x9c\x9e\xa1\xa4\xa6\xa8\xab\xa
1d700 65 5c 78 62 30 5c 78 62 33 5c 78 62 36 5c 78 62 37 5c 78 62 61 5c 78 62 64 5c 78 62 66 5c 78 63 e\xb0\xb3\xb6\xb7\xba\xbd\xbf\xc
1d720 32 5c 78 63 35 5c 78 63 37 5c 78 63 39 5c 78 63 63 5c 78 63 66 5c 78 64 31 5c 78 64 34 5c 78 64 2\xc5\xc7\xc9\xcc\xcf\xd1\xd4\xd
1d740 37 5c 78 64 39 5c 78 64 62 5c 78 64 65 5c 78 65 30 5c 78 65 33 5c 78 65 36 5c 78 65 39 5c 78 65 7\xd9\xdb\xde\xe0\xe3\xe6\xe9\xe
1d760 62 5c 78 65 64 5c 78 66 30 5c 78 66 32 5c 78 66 35 5c 78 66 38 5c 78 66 61 5c 78 66 64 5c 78 30 b\xed\xf0\xf2\xf5\xf8\xfa\xfd\x0
1d780 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 34 63 5c 78 36 31 5c 78 37 36 5c 78 36 33 5c 78 33 0\x00\x00\x00\x4c\x61\x76\x63\x3
1d7a0 35 5c 78 33 39 5c 78 32 65 5c 78 33 33 5c 78 33 37 5c 78 30 30 5c 78 30 30 22 29 0a 20 20 20 20 5\x39\x2e\x33\x37\x00\x00").....
1d7c0 28 73 68 6f 75 6c 64 20 28 3d 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 (should.(=.(emms-info-native-mp3
1d7e0 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 78 69 6e 67 2d 68 65 61 64 65 72 29 20 39 --find-and-decode-xing-header).9
1d800 31 37 36 29 29 29 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 176))))..(ert-deftest.emms-test-
1d820 6d 70 33 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 76 62 72 69 2d 68 65 61 64 65 72 20 mp3-find-and-decode-vbri-header.
1d840 28 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d ()...(with-temp-buffer.....(set-
1d860 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 72 buffer-multibyte.nil).....(inser
1d880 74 20 22 5c 78 66 66 5c 78 66 62 5c 78 61 31 5c 78 30 34 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c t."\xff\xfb\xa1\x04\x00\x00\x00\
1d8a0 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c x00\x00\x00\x00\x00\x00\x00\x00\
1d8c0 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c x00\x00\x00\x00\x00\x00\x00\x00\
1d8e0 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c x00\x00\x00\x00\x00\x00\x00\x00\
1d900 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 30 30 5c 78 35 36 5c 78 34 32 5c 78 35 32 5c x00\x00\x00\x00\x00\x56\x42\x52\
1d920 78 34 39 5c 78 30 30 5c 78 30 31 5c 78 30 64 5c 78 62 31 5c 78 30 30 5c 78 36 34 5c 78 30 30 5c x49\x00\x01\x0d\xb1\x00\x64\x00\
1d940 78 36 32 5c 78 64 62 5c 78 39 31 5c 78 30 30 5c 78 30 30 5c 78 32 31 5c 78 33 61 5c 78 30 30 5c x62\xdb\x91\x00\x00\x21\x3a\x00\
1d960 78 38 34 5c 78 30 30 5c 78 30 31 5c 78 30 30 5c 78 30 32 5c 78 30 30 5c 78 34 30 5c 78 39 38 5c x84\x00\x01\x00\x02\x00\x40\x98\
1d980 78 62 31 5c 78 62 64 5c 78 61 38 5c 78 62 62 5c 78 33 36 5c 78 62 61 5c 78 63 65 5c 78 62 62 5c xb1\xbd\xa8\xbb\x36\xba\xce\xbb\
1d9a0 78 33 37 5c 78 62 61 5c 78 63 66 5c 78 62 61 5c 78 36 37 5c 78 62 62 5c 78 33 37 5c 78 62 63 5c x37\xba\xcf\xba\x67\xbb\x37\xbc\
1d9c0 78 64 37 5c 78 62 62 5c 78 39 66 5c 78 62 61 5c 78 63 66 5c 78 62 39 5c 78 32 63 5c 78 62 62 5c xd7\xbb\x9f\xba\xcf\xb9\x2c\xbb\
1d9e0 78 33 35 5c 78 62 62 5c 78 33 38 5c 78 62 63 5c 78 30 38 5c 78 62 62 5c 78 39 66 5c 78 62 39 5c x35\xbb\x38\xbc\x08\xbb\x9f\xb9\
1da00 78 39 35 5c 78 62 65 5c 78 65 30 5c 78 62 63 5c 78 30 38 5c 78 62 39 5c 78 66 61 5c 78 62 61 5c x95\xbe\xe0\xbc\x08\xb9\xfa\xba\
1da20 78 36 33 5c 78 62 38 5c 78 35 61 5c 78 62 36 22 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 3d x63\xb8\x5a\xb6").....(should.(=
1da40 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 .(emms-info-native-mp3--find-and
1da60 2d 64 65 63 6f 64 65 2d 76 62 72 69 2d 68 65 61 64 65 72 29 20 38 35 30 36 29 29 29 29 0a 0a 3b -decode-vbri-header).8506))))..;
1da80 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 74 65 73 74 73 2e 65 6c ;;.emms-info-native-mp3-tests.el
1daa0 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ends.here......................
1dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f emms-24/test/emms-info-native-vo
1dc20 72 62 69 73 2d 74 65 73 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 rbis-tests.el...................
1dc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
1dc80 30 30 30 35 32 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 32 30 30 33 31 00 20 30 00 00 00 0005273.00000000000.020031..0...
1dca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
1dd20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
1dd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 74 65 73 74 ;;;.emms-info-native-vorbis-test
1de20 73 2e 65 6c 20 2d 2d 2d 20 54 65 73 74 20 73 75 69 74 65 20 66 6f 72 20 65 6d 6d 73 2d 69 6e 66 s.el.---.Test.suite.for.emms-inf
1de40 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e o-native-vorbis..-*-.lexical-bin
1de60 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
1de80 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 023.Free.Software.Foundation,.In
1dea0 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e c...;;.Author:.Petteri.Hintsanen
1dec0 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 .<petterih@iki.fi>..;;.This.file
1dee0 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 .is.part.of.EMMS...;;.EMMS.is.fr
1df00 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 ee.software;.you.can.redistribut
1df20 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 e.it.and/or.modify.it.;;.under.t
1df40 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c he.terms.of.the.GNU.General.Publ
1df60 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 ic.License.as.published.by.;;.th
1df80 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 e.Free.Software.Foundation;.eith
1dfa0 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e er.version.3,.or.(at.your.option
1dfc0 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 ).;;.any.later.version...;;.EMMS
1dfe0 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 .is.distributed.in.the.hope.that
1e000 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a .it.will.be.useful,.but.WITHOUT.
1e020 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 ;;.ANY.WARRANTY;.without.even.th
1e040 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 e.implied.warranty.of.MERCHANTAB
1e060 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 ILITY.;;.or.FITNESS.FOR.A.PARTIC
1e080 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 ULAR.PURPOSE...See.the.GNU.Gener
1e0a0 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 al.Public.;;.License.for.more.de
1e0c0 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 tails...;;.You.should.have.recei
1e0e0 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 ved.a.copy.of.the.GNU.General.Pu
1e100 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b blic.License.;;.along.with.EMMS;
1e120 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 .see.the.file.COPYING..If.not,.w
1e140 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 rite.to.the.Free.;;.Software.Fou
1e160 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 ndation,.Inc.,.51.Franklin.Stree
1e180 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 t,.Fifth.Floor,.Boston,.;;.MA.02
1e1a0 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 110-1301,.USA...;;;.Code:..(requ
1e1c0 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 29 0a 28 72 ire.'emms-info-native-vorbis).(r
1e1e0 65 71 75 69 72 65 20 27 65 72 74 29 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d equire.'ert)..(ert-deftest.emms-
1e200 74 65 73 74 2d 76 6f 72 62 69 73 2d 65 78 74 72 61 63 74 2d 63 6f 6d 6d 65 6e 74 73 20 28 29 0a test-vorbis-extract-comments.().
1e220 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 28 71 75 6f 74 ..(let.((comments..........(quot
1e240 65 20 28 28 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 4d 55 53 49 43 42 52 41 49 4e 5a e.(((user-comment..."MUSICBRAINZ
1e260 5f 52 45 4c 45 41 53 45 47 52 4f 55 50 49 44 3d 39 62 33 30 37 32 39 33 2d 64 32 65 36 2d 33 34 _RELEASEGROUPID=9b307293-d2e6-34
1e280 61 39 2d 61 32 38 39 2d 31 36 31 63 35 62 61 66 31 38 37 66 22 29 0a 20 20 20 20 20 20 20 20 20 a9-a289-161c5baf187f")..........
1e2a0 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 2e 20 36 33 29 29 0a 20 20 20 20 20 20 20 20 .........(length...63)).........
1e2c0 20 20 20 20 20 20 20 20 20 28 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 4f 52 49 47 49 .........((user-comment..."ORIGI
1e2e0 4e 41 4c 44 41 54 45 3d 31 39 39 37 2d 30 33 2d 33 31 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 NALDATE=1997-03-31")............
1e300 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 2e 20 32 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 .......(length...23))...........
1e320 20 20 20 20 20 20 20 28 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 4f 52 49 47 49 4e 41 .......((user-comment..."ORIGINA
1e340 4c 59 45 41 52 3d 31 39 39 37 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 LYEAR=1997")...................(
1e360 6c 65 6e 67 74 68 20 2e 20 31 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 length...17))..................(
1e380 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 20 2e 20 22 52 45 4c 45 41 53 45 54 59 50 45 3d 61 6c 62 (user-comment..."RELEASETYPE=alb
1e3a0 75 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 2e um")...................(length..
1e3c0 20 31 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 73 65 72 2d 63 6f .17))..................((user-co
1e3e0 6d 6d 65 6e 74 20 2e 20 22 42 41 52 43 4f 44 45 3d 37 36 39 32 33 33 30 30 34 37 32 37 22 29 0a mment..."BARCODE=769233004727").
1e400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 2e 20 32 30 29 29 ..................(length...20))
1e420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 ..................((user-comment
1e440 20 2e 20 22 41 4c 42 55 4d 3d 41 20 74 6f 64 61 20 43 75 62 61 20 6c 65 20 67 75 73 74 61 22 29 ..."ALBUM=A.toda.Cuba.le.gusta")
1e460 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 2e 20 32 36 29 ...................(length...26)
1e480 29 29 29 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 ))))).....(should.(equal.(emms-i
1e4a0 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 65 78 74 72 61 63 74 2d 63 6f 6d 6d 65 6e nfo-native-vorbis-extract-commen
1e4c0 74 73 20 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ts.comments)....................
1e4e0 28 71 75 6f 74 65 20 28 28 22 61 6c 62 75 6d 22 20 2e 20 22 41 20 74 6f 64 61 20 43 75 62 61 20 (quote.(("album"..."A.toda.Cuba.
1e500 6c 65 20 67 75 73 74 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le.gusta")......................
1e520 20 20 20 20 20 20 28 22 6f 72 69 67 69 6e 61 6c 79 65 61 72 22 20 2e 20 22 31 39 39 37 22 29 0a ......("originalyear"..."1997").
1e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6f 72 69 ...........................("ori
1e560 67 69 6e 61 6c 64 61 74 65 22 20 2e 20 22 31 39 39 37 2d 30 33 2d 33 31 22 29 29 29 29 29 29 29 ginaldate"..."1997-03-31")))))))
1e580 0a 0a 28 65 72 74 2d 64 65 66 74 65 73 74 20 65 6d 6d 73 2d 74 65 73 74 2d 76 6f 72 62 69 73 2d ..(ert-deftest.emms-test-vorbis-
1e5a0 73 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 28 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 split-comment.()...(should.(equa
1e5c0 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 70 6c 69 l.(emms-info-native-vorbis--spli
1e5e0 74 2d 63 6f 6d 6d 65 6e 74 20 22 22 29 20 6e 69 6c 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 t-comment."").nil))...(should.(e
1e600 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 qual.(emms-info-native-vorbis--s
1e620 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 22 78 22 29 20 6e 69 6c 29 29 0a 20 20 28 73 68 6f 75 6c plit-comment."x").nil))...(shoul
1e640 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 d.(equal.(emms-info-native-vorbi
1e660 73 2d 2d 73 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 22 78 3d 22 29 20 6e 69 6c 29 29 0a 20 20 28 s--split-comment."x=").nil))...(
1e680 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d should.(equal.(emms-info-native-
1e6a0 76 6f 72 62 69 73 2d 2d 73 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 22 3d 78 22 29 20 6e 69 6c 29 vorbis--split-comment."=x").nil)
1e6c0 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 )...(should.(equal.(emms-info-na
1e6e0 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 22 61 3d 42 22 tive-vorbis--split-comment."a=B"
1e700 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 61 22 20 22 42 22 )..................(cons."a"."B"
1e720 29 29 29 0a 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d )))...(should.(equal.(emms-info-
1e740 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 70 6c 69 74 2d 63 6f 6d 6d 65 6e 74 20 22 61 62 native-vorbis--split-comment."ab
1e760 63 3d 41 42 43 3d 31 32 33 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f c=ABC=123")..................(co
1e780 6e 73 20 22 61 62 63 22 20 22 41 42 43 3d 31 32 33 22 29 29 29 0a 20 20 28 6c 65 74 20 28 28 63 ns."abc"."ABC=123")))...(let.((c
1e7a0 6f 6d 6d 65 6e 74 20 22 4b 65 79 3d 5c 33 31 36 5c 32 33 37 5c 33 34 31 5c 32 37 35 5c 32 32 30 omment."Key=\316\237\341\275\220
1e7c0 5c 33 31 37 5c 32 30 37 5c 33 34 31 5c 32 37 35 5c 32 36 36 20 5c 33 31 36 5c 32 34 34 5c 33 31 \317\207\341\275\266.\316\244\31
1e7e0 36 5c 32 36 31 5c 33 34 31 5c 32 37 35 5c 32 32 30 5c 33 31 37 5c 32 30 34 5c 33 34 31 5c 32 37 6\261\341\275\220\317\204\341\27
1e800 35 5c 32 36 30 22 29 29 0a 20 20 20 20 28 73 68 6f 75 6c 64 20 28 65 71 75 61 6c 20 28 65 6d 6d 5\260")).....(should.(equal.(emm
1e820 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 73 70 6c 69 74 2d 63 6f 6d 6d s-info-native-vorbis--split-comm
1e840 65 6e 74 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent.comment)....................
1e860 28 63 6f 6e 73 20 22 6b 65 79 22 20 22 ce 9f e1 bd 90 cf 87 e1 bd b6 20 ce a4 ce b1 e1 bd 90 cf (cons."key"."...................
1e880 84 e1 bd b0 22 29 29 29 29 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 ....")))))..;;;.emms-info-native
1e8a0 2d 76 6f 72 62 69 73 2d 74 65 73 74 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 -vorbis-tests.el.ends.here......
1e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 72 65 73 6f 75 72 63 65 73 2f 00 00 00 00 00 00 00 00 00 emms-24/test/resources/.........
1ea20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea60 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
1ea80 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 37 32 00 20 35 00 00 00 0000000.00000000000.013672..5...
1eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eb00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
1eb20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
1eb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 72 65 73 6f 75 72 63 65 73 2f 73 69 6e 65 2e 6f 67 67 00 emms-24/test/resources/sine.ogg.
1ec20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
1ec80 30 30 31 35 31 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 33 34 31 00 20 30 00 00 00 0015177.00000000000.015341..0...
1eca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ecc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ece0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
1ed20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
1ed40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ed80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1eda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1edc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ede0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee00 4f 67 67 53 00 02 00 00 00 00 00 00 00 00 94 aa b6 1a 00 00 00 00 76 f1 72 59 01 1e 01 76 6f 72 OggS..................v.rY...vor
1ee20 62 69 73 00 00 00 00 01 40 1f 00 00 00 00 00 00 b0 36 00 00 00 00 00 00 99 01 4f 67 67 53 00 00 bis.....@........6........OggS..
1ee40 00 00 00 00 00 00 00 00 94 aa b6 1a 01 00 00 00 9e 9b 96 46 10 ff ff ff ff ff 7c ff ff ff ff ff ...................F......|.....
1ee60 ff ff ff ff b5 03 76 6f 72 62 69 73 34 00 00 00 58 69 70 68 2e 4f 72 67 20 6c 69 62 56 6f 72 62 ......vorbis4...Xiph.Org.libVorb
1ee80 69 73 20 49 20 32 30 32 30 30 37 30 34 20 28 52 65 64 75 63 69 6e 67 20 45 6e 76 69 72 6f 6e 6d is.I.20200704.(Reducing.Environm
1eea0 65 6e 74 29 0a 00 00 00 13 00 00 00 41 4c 42 55 4d 3d 54 65 73 74 20 44 61 74 61 20 e2 98 ba 1e ent)........ALBUM=Test.Data.....
1eec0 00 00 00 52 45 50 4c 41 59 47 41 49 4e 5f 41 4c 42 55 4d 5f 47 41 49 4e 3d 2d 34 2e 34 38 20 64 ...REPLAYGAIN_ALBUM_GAIN=-4.48.d
1eee0 42 16 00 00 00 54 49 54 4c 45 3d 34 34 30 20 48 7a 20 73 69 6e 65 20 77 61 76 65 0f 00 00 00 44 B....TITLE=440.Hz.sine.wave....D
1ef00 41 54 45 3d 32 30 32 33 2d 30 39 2d 30 32 25 00 00 00 52 45 50 4c 41 59 47 41 49 4e 5f 52 45 46 ATE=2023-09-02%...REPLAYGAIN_REF
1ef20 45 52 45 4e 43 45 5f 4c 4f 55 44 4e 45 53 53 3d 38 39 2e 30 20 64 42 20 00 00 00 52 45 50 4c 41 ERENCE_LOUDNESS=89.0.dB....REPLA
1ef40 59 47 41 49 4e 5f 41 4c 42 55 4d 5f 50 45 41 4b 3d 30 2e 32 35 30 30 33 30 35 32 20 00 00 00 52 YGAIN_ALBUM_PEAK=0.25003052....R
1ef60 45 50 4c 41 59 47 41 49 4e 5f 54 52 41 43 4b 5f 50 45 41 4b 3d 30 2e 32 35 30 30 33 30 35 32 13 EPLAYGAIN_TRACK_PEAK=0.25003052.
1ef80 00 00 00 41 52 54 49 53 54 3d 45 4d 4d 53 20 70 72 6f 6a 65 63 74 1a 00 00 00 50 52 4f 44 55 43 ...ARTIST=EMMS.project....PRODUC
1efa0 45 52 3d 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 1e 00 00 00 52 45 50 4c 41 59 47 41 ER=Petteri.Hintsanen....REPLAYGA
1efc0 49 4e 5f 54 52 41 43 4b 5f 47 41 49 4e 3d 2d 34 2e 34 38 20 64 42 01 00 00 00 00 00 00 00 00 00 IN_TRACK_GAIN=-4.48.dB..........
1efe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 76 6f 72 .............................vor
1f3e0 62 69 73 12 42 43 56 01 00 00 01 00 0c 52 14 21 25 19 53 4a 63 08 95 52 52 29 05 1d 63 50 5b 47 bis.BCV......R.!%.SJc..RR)..cP[G
1f400 1d 63 d4 39 46 21 64 10 53 88 49 19 a5 7b 4f 2a 95 58 4a c8 11 52 58 29 45 1d 53 4c 53 49 95 52 .c.9F!d.S.I..{O*.XJ..RX)E.SLSI.R
1f420 96 29 45 1d 63 14 53 48 21 53 d6 31 65 a1 73 14 4b 86 49 09 25 6c 4d ae 74 16 4b e8 99 63 96 31 .)E.c.SH!S.1e.s.K.I.%lM.t.K..c.1
1f440 46 1d 63 ce 5a 4a 9d 63 d6 31 45 1d 63 52 52 49 a1 73 18 3a 66 25 64 14 3a 46 c5 e8 62 7c 30 3a F.c.ZJ.c.1E.cRRI.s.:f%d.:F..b|0:
1f460 95 a2 42 28 be c7 de 52 e9 2d 85 8a 5b 8a bd d7 1a 53 eb 2d 84 18 4b 69 c1 08 61 73 ed b5 d5 dc ..B(...R.-..[....S.-..Ki..as....
1f480 4a 6a c5 18 63 8c 31 c6 c5 e2 53 28 82 d0 90 55 00 00 01 00 00 40 04 01 42 43 56 01 00 0a 00 00 Jj..c.1...S(...U.....@..BCV.....
1f4a0 c2 50 0c 45 51 80 d0 90 55 00 40 06 00 80 00 14 45 71 14 c7 71 1c 47 92 24 cb 02 42 43 56 01 00 .P.EQ...U.@.....Eq..q.G.$..BCV..
1f4c0 40 00 00 02 00 00 28 8e e1 28 92 23 49 92 64 59 96 65 59 96 a6 79 96 a8 b9 aa 2f fb ae 2e eb ae @.....(..(.#I.dY.eY..y..../.....
1f4e0 ed ea ba 0e 84 86 ac 04 00 c8 00 00 18 86 21 87 de 49 cc 90 53 90 49 26 29 55 cc 39 08 a1 f5 0e ..............!..I..S.I&)U.9....
1f500 39 e5 14 64 d2 52 c6 98 62 8c 51 ce 90 53 0c 31 05 31 86 d0 29 85 10 d4 4e 39 a5 0c 22 08 43 48 9..d.R..b.Q..S.1.1..)...N9..".CH
1f520 9d 64 ce 20 4b 3d e8 e0 62 e7 38 10 1a b2 22 00 88 02 00 00 8c 41 8c 21 c6 90 73 0c 4a 06 21 72 .d..K=..b.8..."......A.!..s.J.!r
1f540 8e 49 c8 20 44 ce 39 29 9d 94 4c 4a 28 ad b4 96 49 09 2d 95 d6 22 e7 9c 94 4e 4a 26 a5 b4 16 52 .I..D.9)..LJ(...I.-.."...NJ&...R
1f560 cb a4 94 d6 42 2b 05 00 00 04 38 00 00 04 58 08 85 86 ac 08 00 a2 00 00 10 83 90 52 48 29 c4 94 ....B+....8...X............RH)..
1f580 62 4e 31 87 94 52 8e 29 c7 90 52 cc 39 c5 98 72 8c 31 e8 20 54 cc 31 c8 1c 84 48 29 c5 18 73 4e bN1..R.)..R.9..r.1..T.1...H)..sN
1f5a0 39 e6 20 64 0c 2a e6 1c 84 0c 32 01 00 00 01 0e 00 00 01 16 42 a1 21 2b 02 80 38 01 00 83 24 69 9..d.*....2.........B.!+..8...$i
1f5c0 9a a5 69 a2 68 69 9a 28 7a a6 a8 aa a2 28 aa aa e5 79 a6 e9 99 a6 aa 7a a2 a9 aa a6 aa ba ae a9 ..i.hi.(z....(...y.....z........
1f5e0 aa ae 6c 79 9e 69 7a a6 a8 aa 9e 29 aa aa a9 aa ae 6b aa aa eb 8a aa 6a cb a6 ab da b6 e9 aa b6 ..ly.iz....).....k.....j........
1f600 ec ca b2 6e bb b2 ac db 9e aa ca b6 a9 ba b2 6e aa ae 6d bb b2 6c eb ae 2c db ba e4 79 aa ea 99 ...n...........n..m..l..,...y...
1f620 a6 eb 7a a6 e9 ba aa eb da b2 ea ba b2 ed 99 a6 eb 8a aa 2b db a6 eb ca b2 eb ca b6 ad ca b2 ae ..z................+............
1f640 6b a6 e9 ba a2 ab da ae a9 ba b2 ed ca ae 6d bb b2 ac fb a6 eb ea b6 ea ca ba ae ca b2 ee db b6 k.............m.................
1f660 ae fb b2 ad 0b bb e8 ba b6 ae ca ae ae ab b2 ac eb b2 2d eb b6 6c db 42 c9 f3 54 d5 33 4d d7 f5 ..................-..l.B..T.3M..
1f680 4c d3 75 55 d7 b5 6d d5 75 6d 5b 33 4d d7 35 5d 57 96 45 d5 75 65 d5 95 75 5d 75 65 5b f7 4c d3 L.uU..m.um[3M.5]W.E.ue..u]ue[.L.
1f6a0 75 4d 57 95 65 d3 55 65 59 95 65 dd 76 65 57 97 45 d7 b5 6d 55 96 7d 5d 75 65 5f 97 6d dd f7 65 uMW.e.UeY.e.veW.E..mU.}]ue_.m..e
1f6c0 59 d7 7d d3 75 75 5b 95 65 db 57 65 59 f7 65 5d f7 85 59 b7 7d dd 53 55 5b 37 5d 57 d7 4d d7 d5 Y.}.uu[.e.WeY.e]..Y.}.SU[7]W.M..
1f6e0 7d 5b d7 7d 61 b6 6d df 17 5d 57 d7 55 d9 d6 85 55 96 75 df d6 7d 65 98 75 9d 30 ba ae ae ab b6 }[.}a.m..]W.U...U.u..}e.u.0.....
1f700 ec eb aa 2c eb be ae eb c6 30 eb ba 30 ac ba 6d fc ae ad 0b c3 ab eb c6 b1 eb be ae dc be 8f 6a ...,.....0..0..m...............j
1f720 db be f0 ea b6 31 bc ba 6e 1c bb b0 1b bf ed fb c6 b1 a9 aa 6d 9b ae ab eb a6 2b eb ba 6c eb be .....1..n...........m.....+..l..
1f740 6f eb ba 71 8c ae ab eb aa 2c fb ba ea ca be 6f eb ba f0 eb be 2f 0c a3 eb ea ba 2a cb ba b0 da o..q.....,.....o...../.....*....
1f760 b2 af cb ba 2e 0c bb ae 1b c3 6a db c2 ee da ba 70 cc b2 2e 0c b7 ef 2b c7 af 0b 43 d5 b6 85 e1 ..........j.....p......+...C....
1f780 d5 75 a3 ab db c6 6f 0b c3 d2 37 76 be 00 00 80 01 07 00 80 00 13 ca 40 a1 21 2b 02 80 38 01 00 .u....o...7v...........@.!+..8..
1f7a0 06 21 08 15 63 10 2a c6 20 84 10 52 0a 21 a4 54 31 06 21 63 0e 4a c6 1c 94 10 4a 49 21 94 d2 2a .!..c.*....R.!.T1.!c.J....JI!..*
1f7c0 c6 20 64 8e 49 c8 1c 93 10 4a 68 a9 94 d0 4a 28 a5 a5 50 4a 4b a1 94 d6 52 6a 2d a6 d4 5a 0c a1 ..d.I....Jh...J(..PJK...Rj-..Z..
1f7e0 b4 14 4a 69 ad 94 d2 5a 6a 29 b6 d4 52 6c 15 63 10 32 e7 a4 64 8e 49 28 a5 b4 56 4a 69 29 73 4c ..Ji...Zj)..Rl.c.2..d.I(..VJi)sL
1f800 4a c6 a0 a4 0e 42 2a a5 a4 d2 4a 49 ad 65 ce 49 c9 a0 a3 d2 39 48 a9 a4 d2 52 49 a9 b5 50 4a 6b J....B*...JI.e.I....9H...RI..PJk
1f820 a1 94 d6 4a 4a b1 a5 d2 4a 6d ad c5 1a 4a 69 2d a4 d2 5a 49 a9 b5 d4 52 6d ad b5 5a 23 c6 20 64 ...JJ...Jm...Ji-..ZI...Rm..Z#..d
1f840 8c 41 c9 9c 93 52 4a 49 a9 94 d2 5a e6 9c 94 0e 3a 2a 99 83 92 4a 29 a9 95 92 52 ac 98 93 d2 41 .A...RJI...Z....:*...J)...R....A
1f860 28 25 83 8c 4a 49 a5 b5 92 4a 2b a1 94 d6 4a 4a b1 85 52 5a 6b ad d5 98 52 4b 35 94 92 5a 49 a9 (%..JI...J+...JJ..RZk...RK5..ZI.
1f880 c5 50 4a 6b ad b5 1a 53 2b 35 85 50 52 0b a5 b4 16 4a 69 ad b5 56 6b 6a 2d b6 50 42 6b a1 a4 16 .PJk...S+5.PR....Ji..Vkj-.PBk...
1f8a0 4b 2a 31 b5 16 63 6d ad c5 18 4a 69 ad a4 12 5b 29 a9 c5 16 5b 8d ad b5 58 53 4b 35 96 92 62 6c K*1..cm...Ji...[)...[...XSK5..bl
1f8c0 ad d5 d8 4a 2d 39 d6 5a 6b 4a 2d d6 d2 52 8c ad b5 98 5b 4c b9 c5 58 6b 0d 25 b4 16 4a 69 ad 94 ...J-9.ZkJ-..R....[L..Xk.%..Ji..
1f8e0 d2 5a 4a ad c5 d6 5a ad a1 94 d6 4a 2a b1 95 92 5a 6c ad d5 d8 5a 8c 35 94 d2 62 29 29 b5 90 4a .ZJ...Z....J*...Zl...Z.5..b))..J
1f900 6c ad b5 58 5b 6c 35 a6 96 62 6c b1 d5 58 52 8b 31 c6 58 73 4b b5 d5 94 5a 8b ad b5 58 4b 2b 35 l..X[l5..bl..XR.1.XsK...Z...XK+5
1f920 c6 18 6b 6e 35 e5 52 00 00 c0 80 03 00 40 80 09 65 a0 d0 90 95 00 40 14 00 00 60 0c 63 8c 41 68 ..kn5.R......@..e.....@...`.c.Ah
1f940 14 72 cc 39 29 8d 52 ce 39 27 25 73 0e 42 08 29 65 ce 41 08 21 a5 ce 39 08 a5 b4 d4 39 07 a1 94 .r.9).R.9'%s.B.)e.A.!..9....9...
1f960 94 42 29 29 a5 14 5b 28 25 a5 d6 5a 2c 00 00 a0 c0 01 00 20 c0 06 4d 89 c5 01 0a 0d 59 09 00 44 .B))..[(%..Z,.........M.....Y..D
1f980 01 00 20 c6 28 c5 18 84 c6 20 a5 18 83 d0 18 a3 14 63 10 2a a5 18 73 0e 42 a5 14 63 ce 41 c8 18 ....(............c.*..s.B..c.A..
1f9a0 73 ce 41 29 19 63 ce 41 27 25 84 10 42 29 a5 84 10 42 28 a5 94 02 00 00 0a 1c 00 00 02 6c d0 94 s.A).c.A'%..B)...B(..........l..
1f9c0 58 1c a0 d0 90 15 01 40 14 00 00 60 0c 62 0c 31 86 20 74 52 3a 29 11 84 4c 4a 27 a5 91 12 5a 0b X......@...`.b.1..tR:)..LJ'...Z.
1f9e0 29 65 96 4a 8a 25 c6 cc 5a 89 ad c4 d8 48 09 ad 85 d6 32 6b 25 c6 d2 62 46 ad c4 58 62 2a 00 00 )e.J.%..Z....H....2k%..bF..Xb*..
1fa00 ec c0 01 00 ec c0 42 28 34 64 25 00 90 07 00 40 18 a3 14 63 ce 39 67 10 62 cc 39 08 21 34 08 31 ......B(4d%....@...c.9g.b.9.!4.1
1fa20 e6 1c 84 10 2a c6 9c 73 0e 42 08 15 63 ce 39 07 21 84 ce 39 e7 20 84 10 42 e7 9c 73 10 42 08 a1 ....*..s.B..c.9.!..9....B..s.B..
1fa40 83 10 42 08 a5 94 d2 41 08 21 84 52 4a e9 20 84 10 42 29 a5 74 10 42 08 a1 94 52 0a 00 00 2a 70 ..B....A.!.RJ....B).t.B...R...*p
1fa60 00 00 08 b0 51 64 73 82 91 a0 42 43 56 02 00 79 00 00 80 31 4a 39 27 25 a5 46 29 c6 20 a4 14 5b ....Qds...BCV..y...1J9'%.F)....[
1fa80 a3 14 63 10 52 6a ad 62 0c 42 4a ad c5 58 31 06 21 a5 d6 62 ec 20 a4 d4 5a 8c b5 76 10 52 6a 2d ..c.Rj.b.BJ..X1.!..b....Z..v.Rj-
1faa0 c6 5a 43 4a ad c5 58 6b ce 21 a5 d6 62 ac 35 d7 d4 5a 8c b5 e6 dc 7b 6a 2d c6 5a 73 ce b9 00 00 .ZCJ..Xk.!..b.5..Z....{j-.Zs....
1fac0 dc 05 07 00 b0 03 1b 45 36 27 18 09 2a 34 64 25 00 90 07 00 40 20 a4 14 63 8c 39 87 94 62 8c 31 .......E6'..*4d%....@...c.9..b.1
1fae0 e7 9c 43 4a 31 c6 98 73 ce 29 c6 18 73 ce 39 e7 14 63 8c 39 e7 9c 73 8c 31 e7 9c 73 ce 39 c6 98 ..CJ1..s.)..s.9..c.9..s.1..s.9..
1fb00 73 ce 39 e7 9c 73 ce 39 e7 a0 83 90 39 e7 9c 73 d0 41 e8 9c 73 ce 39 08 21 74 ce 39 e7 1c 84 10 s.9..s.9....9..s.A..s.9.!t.9....
1fb20 0a 00 00 2a 70 00 00 08 b0 51 64 73 82 91 a0 42 43 56 02 00 e1 00 00 80 31 94 52 4a 29 a5 94 52 ...*p....Qds...BCV......1.RJ)..R
1fb40 4a a8 a3 94 52 4a 29 a5 94 52 02 21 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 J...RJ)..R.!..RJ)..RJ)..RJ)..RJ)
1fb60 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 ..RJ)..RJ)..RJ)..RJ)..RJ)..RJ)..
1fb80 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a RJ)..RJ)..RJ)..RJ)..RJ)..RJ)..RJ
1fba0 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 95 52 4a 29 a5 94 52 4a 29 a5 94 )..RJ)..RJ)..RJ)..RJ).RJ)..RJ)..
1fbc0 52 4a 29 a5 00 20 df 0a 07 00 ff 07 1b 67 58 49 3a 2b 1c 0d 2e 34 64 25 00 10 0e 00 00 18 c3 18 RJ)..........gXI:+...4d%........
1fbe0 84 8c 39 27 25 a5 86 31 08 a5 74 4e 4a 49 25 35 8c 41 28 a5 73 12 52 4a 29 83 d0 5a 6a a5 a4 d2 ..9'%..1..tNJI%5.A(.s.RJ)..Zj...
1fc00 52 4a 19 84 94 62 0b 21 95 94 5a 0a a5 b4 56 6b 29 a9 b5 94 52 28 29 c5 1a 4b 4a a9 a5 d6 32 e7 RJ...b.!..Z...Vk)...R()..KJ...2.
1fc20 24 a4 92 5a 4b ad b6 98 39 07 a5 a4 d6 5a 6a ad c5 10 42 4a b1 b5 d6 52 6b b1 75 52 52 49 ad b5 $..ZK...9....Zj...BJ...Rk.uRRI..
1fc40 d6 5a 6d 2d a4 94 5a 6b 2d c6 d6 62 6c 25 a5 96 5a 6b a9 c5 d6 5a 4c a9 b5 16 5b 4b 2d c6 d6 62 .Zm-..Zk-..bl%..Zk...ZL...[K-..b
1fc60 4b ad c5 d8 62 8b 31 c6 1a 0b 00 e0 6e 70 00 80 48 b0 71 86 95 a4 b3 c2 d1 e0 42 43 56 02 00 21 K...b.1.....np..H.q.......BCV..!
1fc80 01 00 04 32 4a 39 e7 9c 83 10 42 08 21 52 8a 31 e7 a0 83 10 42 08 21 44 4a 31 e6 9c 83 10 42 08 ...2J9....B.!R.1....B.!DJ1....B.
1fca0 21 84 8c 31 e7 20 84 10 42 08 a1 94 90 31 e6 1c 84 10 42 08 21 84 52 3a e7 20 84 50 4a 09 a5 94 !..1....B....1....B.!.R:...PJ...
1fcc0 52 4a e7 1c 84 10 42 08 a5 94 52 4a 09 21 84 10 42 28 a5 94 52 4a 29 21 84 10 4a 29 a5 94 52 4a RJ....B...RJ.!..B(..RJ)!..J)..RJ
1fce0 29 25 84 10 42 28 a5 94 52 4a 29 a5 84 10 42 28 a5 94 52 4a 29 a5 94 10 42 28 a5 94 52 4a 29 a5 )%..B(..RJ)...B(..RJ)...B(..RJ).
1fd00 94 12 42 08 a1 94 52 4a 29 a5 94 52 42 08 a5 94 52 4a 29 a5 94 52 4a 28 21 84 52 4a 29 a5 94 52 ..B...RJ)..RB...RJ)..RJ(!.RJ)..R
1fd20 4a 09 25 94 52 4a 29 a5 94 52 4a 29 21 94 52 4a 29 a5 94 52 4a 29 a5 00 00 80 03 07 00 80 00 23 J.%.RJ)..RJ)!.RJ)..RJ).........#
1fd40 e8 24 a3 ca 22 6c 34 e1 c2 03 10 00 00 00 02 00 02 4c 00 81 01 82 82 51 08 02 84 11 08 00 00 00 .$.."l4..........L.....Q........
1fd60 00 00 08 00 f8 00 00 48 0a 80 88 88 68 e6 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 00 00 00 00 00 .......H....h............"$.....
1fd80 00 00 00 00 00 00 00 04 4f 67 67 53 00 04 40 9c 00 00 00 00 00 00 94 aa b6 1a 02 00 00 00 80 e2 ........OggS..@.................
1fda0 83 6e 9e 12 11 10 11 11 10 11 11 10 11 11 10 10 10 10 11 10 10 10 11 11 10 11 10 10 11 11 10 11 .n..............................
1fdc0 11 10 11 11 10 11 11 10 11 10 10 11 10 10 10 11 11 10 11 11 10 11 11 10 11 11 10 11 11 10 11 11 ................................
1fde0 10 11 10 10 11 10 10 10 11 11 10 11 10 10 11 11 10 11 11 10 11 11 10 11 11 10 11 10 11 11 10 10 ................................
1fe00 10 11 11 10 11 11 10 11 11 10 11 11 10 11 11 10 11 11 10 11 10 11 11 10 10 10 11 11 10 11 11 10 ................................
1fe20 11 11 10 11 11 10 11 11 10 11 11 10 10 10 10 11 10 10 10 11 11 10 11 11 10 11 11 10 11 11 10 13 ................................
1fe40 14 aa 9b 99 b3 93 37 b0 af 00 00 00 88 1a 1a 9a 71 e9 37 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 ......7.........q.7.....W.......
1fe60 88 ac 47 00 ae 9c 99 6d e5 15 00 28 00 00 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 ..G....m...(......R......W......
1fe80 00 30 6d b7 00 b2 9c 99 b3 93 57 00 70 05 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 .0m.......W.p..............W.p..
1fea0 00 00 00 7d 3b 03 b2 9c 99 b3 93 57 00 70 25 00 00 00 00 c8 eb b9 04 b2 9c 99 b3 93 57 00 d0 25 ...};......W.p%.............W..%
1fec0 00 00 00 00 c8 6d 97 04 ae 9c 99 6d e5 15 00 28 01 00 00 00 80 cc 85 04 b2 9c 99 b3 93 57 00 b0 .....m.....m...(.............W..
1fee0 25 00 00 00 00 88 73 b7 04 b2 9c 99 73 27 af 00 e0 49 00 00 00 00 30 eb 8f 4b ae 9c 99 b3 93 57 %.....s.....s'...I....0..K.....W
1ff00 00 f0 00 00 00 00 00 33 c6 01 b2 9c 99 73 27 af 00 e0 09 00 00 00 00 30 63 1c b2 9c 99 b3 93 37 .......3.....s'........0c......7
1ff20 f0 01 00 00 00 00 cb e3 2c 01 ae 9c 99 6d e5 15 00 28 00 00 00 00 40 f4 ee 08 b2 9c 99 b3 93 57 ........,....m...(....@........W
1ff40 00 d0 05 00 00 00 00 30 4f 09 01 b2 9c 99 b3 93 37 70 01 00 00 00 00 c3 db 16 01 ae 9c 99 b3 93 .......0O.......7p..............
1ff60 57 00 70 05 00 00 00 00 e8 b3 09 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 36 01 b2 9c 99 b3 93 W.p.............W.p.....}6......
1ff80 57 00 70 25 00 00 00 00 c8 df 3b 25 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 70 4e 7e 09 ae 9c 99 W.p%......;%.....W..%....pN~....
1ffa0 6d e5 15 00 28 01 00 00 00 80 3c 99 12 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 a8 67 55 12 b2 9c m...(.....<.......W..%.....gU...
1ffc0 99 73 27 af 00 e0 49 00 00 00 00 30 63 04 ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 46 00 b2 9c .s'...I....0c......W.......3F...
1ffe0 99 73 27 af 00 e0 09 00 00 00 00 30 cb 47 04 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 88 ac 47 00 .s'........0.G......W.........G.
20000 ae 9c 99 6d e5 15 00 28 00 00 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 6d b7 ...m...(......R......W.......0m.
20020 00 b2 9c 99 b3 93 57 00 70 05 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d ......W.p..............W.p.....}
20040 3b 03 b2 9c 99 b3 93 57 00 70 25 00 00 00 00 c8 eb b9 04 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 ;......W.p%.............W..%....
20060 c8 6d 97 04 ae 9c 99 6d e5 15 00 28 01 00 00 00 80 cc 85 04 b2 9c 99 b3 93 57 00 b0 25 00 00 00 .m.....m...(.............W..%...
20080 00 88 73 b7 04 b2 9c 99 73 27 af 00 e0 49 00 00 00 00 30 eb 8f 4b ae 9c 99 b3 93 57 00 f0 00 00 ..s.....s'...I....0..K.....W....
200a0 00 00 00 33 c6 01 ae 9c 99 b3 93 57 00 f0 04 00 00 00 00 98 d9 71 00 b2 9c 99 b3 93 37 f0 01 00 ...3.......W.........q......7...
200c0 00 00 00 cb e3 2c 01 ae 9c 99 6d e5 15 00 28 00 00 00 00 40 f4 ee 08 b2 9c 99 b3 93 57 00 d0 05 .....,....m...(....@........W...
200e0 00 00 00 00 30 4f 09 01 b2 9c 99 b3 93 37 70 01 00 00 00 00 c3 db 16 01 ae 9c 99 b3 93 57 00 70 ....0O.......7p..............W.p
20100 05 00 00 00 00 e8 b3 09 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 36 01 b2 9c 99 b3 93 57 00 70 .............W.p.....}6......W.p
20120 25 00 00 00 00 c8 df 3b 25 ae 9c 99 6d e5 15 00 74 09 00 00 00 00 9c 93 5f 02 ae 9c 99 6d e5 15 %......;%...m...t......._....m..
20140 00 28 01 00 00 00 80 3c 99 12 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 a8 67 55 12 ae 9c 99 b3 93 .(.....<.......W..%.....gU......
20160 57 00 f0 24 00 00 00 00 98 d9 31 00 ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 46 00 b2 9c 99 73 W..$......1......W.......3F....s
20180 27 af 00 e0 09 00 00 00 00 30 cb 47 04 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 88 ac 47 00 ae 9c '........0.G......W.........G...
201a0 99 6d e5 15 00 28 00 00 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 6d b7 00 b2 .m...(......R......W.......0m...
201c0 9c 99 b3 93 57 00 70 05 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 3b 03 ....W.p..............W.p.....};.
201e0 b2 9c 99 b3 93 57 00 70 25 00 00 00 00 c8 eb b9 04 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 c8 6d .....W.p%.............W..%.....m
20200 97 04 ae 9c 99 6d e5 15 00 28 01 00 00 00 80 cc 85 04 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 88 .....m...(.............W..%.....
20220 73 b7 04 b2 9c 99 73 27 af 00 e0 49 00 00 00 00 30 eb 8f 4b ae 9c 99 b3 93 57 00 f0 00 00 00 00 s.....s'...I....0..K.....W......
20240 00 33 c6 01 ae 9c 99 b3 93 57 00 f0 04 00 00 00 00 98 d9 71 00 b2 9c 99 b3 93 37 f0 01 00 00 00 .3.......W.........q......7.....
20260 00 cb e3 2c 01 ae 9c 99 6d e5 15 00 28 00 00 00 00 40 f4 ee 08 b2 9c 99 b3 93 57 00 d0 05 00 00 ...,....m...(....@........W.....
20280 00 00 30 4f 09 01 b2 9c 99 b3 93 37 70 01 00 00 00 00 c3 db 16 01 ae 9c 99 b3 93 57 00 70 05 00 ..0O.......7p..............W.p..
202a0 00 00 00 e8 b3 09 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 36 01 b2 9c 99 b3 93 57 00 70 25 00 ...........W.p.....}6......W.p%.
202c0 00 00 00 c8 df 3b 25 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 70 4e 7e 09 ae 9c 99 6d e5 15 00 28 .....;%.....W..%....pN~....m...(
202e0 01 00 00 00 80 3c 99 12 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 a8 67 55 12 b2 9c 99 73 27 af 00 .....<.......W..%.....gU....s'..
20300 e0 49 00 00 00 00 30 63 04 ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 46 00 b2 9c 99 73 27 af 00 .I....0c......W.......3F....s'..
20320 e0 09 00 00 00 00 30 cb 47 04 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 88 ac 47 00 ae 9c 99 6d e5 ......0.G......W.........G....m.
20340 15 00 28 00 00 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 6d b7 00 b2 9c 99 b3 ..(......R......W.......0m......
20360 93 57 00 70 05 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 3b 03 b2 9c 99 .W.p..............W.p.....};....
20380 b3 93 57 00 70 25 00 00 00 00 c8 eb b9 04 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 c8 6d 97 04 ae ..W.p%.............W..%.....m...
203a0 9c 99 6d e5 15 00 28 01 00 00 00 80 cc 85 04 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 88 73 b7 04 ..m...(.............W..%.....s..
203c0 b2 9c 99 73 27 af 00 e0 49 00 00 00 00 30 eb 8f 4b ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 c6 ...s'...I....0..K.....W.......3.
203e0 01 ae 9c 99 b3 93 57 00 f0 04 00 00 00 00 98 d9 71 00 b2 9c 99 b3 93 37 f0 01 00 00 00 00 cb e3 ......W.........q......7........
20400 2c 01 b2 9c 99 73 27 af 00 40 01 00 00 00 00 a2 77 2b 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 ,....s'..@......w+......W.......
20420 30 4f 09 01 b2 9c 99 b3 93 37 70 01 00 00 00 00 c3 db 16 01 ae 9c 99 b3 93 57 00 70 05 00 00 00 0O.......7p..............W.p....
20440 00 e8 b3 09 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 36 01 b2 9c 99 73 27 af 00 e0 4a 00 00 00 .........W.p.....}6....s'...J...
20460 00 90 9f ba 25 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 70 4e 7e 09 ae 9c 99 6d e5 15 00 28 01 00 ....%.....W..%....pN~....m...(..
20480 00 00 80 3c 99 12 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 a8 67 55 12 ae 9c 99 b3 93 57 00 f0 24 ...<.......W..%.....gU......W..$
204a0 00 00 00 00 98 d9 31 00 ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 46 00 b2 9c 99 73 27 af 00 e0 ......1......W.......3F....s'...
204c0 09 00 00 00 00 30 cb 47 04 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 88 ac 47 00 ae 9c 99 6d e5 15 .....0.G......W.........G....m..
204e0 00 28 00 00 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 6d b7 00 b2 9c 99 b3 93 .(......R......W.......0m.......
20500 57 00 70 05 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 3b 03 b2 9c 99 b3 W.p..............W.p.....};.....
20520 93 57 00 70 25 00 00 00 00 c8 eb b9 04 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 c8 6d 97 04 ae 9c .W.p%.............W..%.....m....
20540 99 6d e5 15 00 28 01 00 00 00 80 cc 85 04 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 88 73 b7 04 b2 .m...(.............W..%.....s...
20560 9c 99 73 27 af 00 e0 49 00 00 00 00 30 eb 8f 4b ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 c6 01 ..s'...I....0..K.....W.......3..
20580 ae 9c 99 b3 93 57 00 f0 04 00 00 00 00 98 d9 71 00 b2 9c 99 b3 93 37 f0 01 00 00 00 00 cb e3 2c .....W.........q......7........,
205a0 01 b2 9c 99 73 27 af 00 40 01 00 00 00 00 a2 77 2b 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 ....s'..@......w+......W.......0
205c0 4f 09 01 b2 9c 99 b3 93 37 70 01 00 00 00 00 c3 db 16 01 ae 9c 99 b3 93 57 00 70 05 00 00 00 00 O.......7p..............W.p.....
205e0 e8 b3 09 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 36 01 b2 9c 99 73 27 af 00 e0 4a 00 00 00 00 ........W.p.....}6....s'...J....
20600 90 9f ba 25 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 70 4e 7e 09 b2 9c 99 73 27 af 00 40 09 00 00 ...%.....W..%....pN~....s'..@...
20620 00 00 e2 93 95 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 a8 67 55 12 ae 9c 99 b3 93 57 00 f0 24 00 ..........W..%.....gU......W..$.
20640 00 00 00 98 d9 31 00 ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 46 00 b2 9c 99 73 27 af 00 e0 09 .....1......W.......3F....s'....
20660 00 00 00 00 30 cb 47 04 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 88 ac 47 00 ae 9c 99 6d e5 15 00 ....0.G......W.........G....m...
20680 28 00 00 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 6d b7 00 b2 9c 99 b3 93 57 (......R......W.......0m.......W
206a0 00 70 05 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 3b 03 b2 9c 99 b3 93 .p..............W.p.....};......
206c0 57 00 70 25 00 00 00 00 c8 eb b9 04 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 c8 6d 97 04 ae 9c 99 W.p%.............W..%.....m.....
206e0 6d e5 15 00 28 01 00 00 00 80 cc 85 04 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 88 73 b7 04 b2 9c m...(.............W..%.....s....
20700 99 73 27 af 00 e0 49 00 00 00 00 30 eb 8f 4b ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 c6 01 b2 .s'...I....0..K.....W.......3...
20720 9c 99 73 27 af 00 e0 09 00 00 00 00 30 63 1c b2 9c 99 b3 93 37 f0 01 00 00 00 00 cb e3 2c 01 ae ..s'........0c......7........,..
20740 9c 99 6d e5 15 00 28 00 00 00 00 40 f4 ee 08 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 4f 09 01 ..m...(....@........W.......0O..
20760 b2 9c 99 b3 93 37 70 01 00 00 00 00 c3 db 16 01 ae 9c 99 b3 93 57 00 70 05 00 00 00 00 e8 b3 09 .....7p..............W.p........
20780 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 36 01 b2 9c 99 b3 93 57 00 70 25 00 00 00 00 c8 df 3b .....W.p.....}6......W.p%......;
207a0 25 b2 9c 99 b3 93 57 00 d0 25 00 00 00 00 70 4e 7e 09 ae 9c 99 6d e5 15 00 28 01 00 00 00 80 3c %.....W..%....pN~....m...(.....<
207c0 99 12 b2 9c 99 b3 93 57 00 b0 25 00 00 00 00 a8 67 55 12 ae 9c 99 b3 93 57 00 f0 24 00 00 00 00 .......W..%.....gU......W..$....
207e0 98 d9 31 00 ae 9c 99 b3 93 57 00 f0 00 00 00 00 00 33 46 00 b2 9c 99 73 27 af 00 e0 09 00 00 00 ..1......W.......3F....s'.......
20800 00 30 cb 47 04 b2 9c 99 b3 93 57 00 b0 05 00 00 00 00 88 ac 47 00 ae 9c 99 6d e5 15 00 28 00 00 .0.G......W.........G....m...(..
20820 00 00 80 b0 52 00 b2 9c 99 b3 93 57 00 d0 05 00 00 00 00 30 6d b7 00 b2 9c 99 b3 93 57 00 70 05 ....R......W.......0m.......W.p.
20840 00 00 00 00 c8 eb 99 00 ae 9c 99 b3 93 57 00 70 01 00 00 00 00 7d 3b 03 aa d3 50 78 cd 2b 00 b8 .............W.p.....};...Px.+..
20860 12 00 00 00 b1 35 89 fb f3 b9 04 8e ce 93 60 2f eb 15 00 dc 06 00 00 00 20 90 8d ad 8f bf 2a 00 .....5........`/..............*.
20880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
208a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
208c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
208e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
209a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
209c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
209e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20a00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 72 65 73 6f 75 72 63 65 73 2f 73 69 6e 65 2e 6f 70 75 73 emms-24/test/resources/sine.opus
20a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
20a80 30 30 31 37 36 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 34 37 00 20 30 00 00 00 0017621.00000000000.015547..0...
20aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
20b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
20b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20c00 4f 67 67 53 00 02 00 00 00 00 00 00 00 00 da f0 af 6a 00 00 00 00 2a 9f e6 a2 01 13 4f 70 75 73 OggS.............j....*.....Opus
20c20 48 65 61 64 01 01 38 01 40 1f 00 00 85 f6 00 4f 67 67 53 00 00 00 00 00 00 00 00 00 00 da f0 af Head..8.@......OggS.............
20c40 6a 01 00 00 00 cc 7a f4 c9 04 ff ff ff fe 4f 70 75 73 54 61 67 73 1f 00 00 00 6c 69 62 6f 70 75 j.....z.......OpusTags....libopu
20c60 73 20 31 2e 33 2e 31 2c 20 6c 69 62 6f 70 75 73 65 6e 63 20 30 2e 32 2e 31 08 00 00 00 13 00 00 s.1.3.1,.libopusenc.0.2.1.......
20c80 00 41 4c 42 55 4d 3d 54 65 73 74 20 44 61 74 61 20 e2 98 ba 16 00 00 00 54 49 54 4c 45 3d 34 34 .ALBUM=Test.Data........TITLE=44
20ca0 30 20 48 7a 20 73 69 6e 65 20 77 61 76 65 1c 00 00 00 45 4e 43 4f 44 45 52 5f 4f 50 54 49 4f 4e 0.Hz.sine.wave....ENCODER_OPTION
20cc0 53 3d 2d 2d 62 69 74 72 61 74 65 20 31 30 0f 00 00 00 44 41 54 45 3d 32 30 32 33 2d 30 39 2d 30 S=--bitrate.10....DATE=2023-09-0
20ce0 32 23 00 00 00 45 4e 43 4f 44 45 52 3d 6f 70 75 73 65 6e 63 20 66 72 6f 6d 20 6f 70 75 73 2d 74 2#...ENCODER=opusenc.from.opus-t
20d00 6f 6f 6c 73 20 30 2e 32 11 00 00 00 52 31 32 38 5f 54 52 41 43 4b 5f 47 41 49 4e 3d 30 13 00 00 ools.0.2....R128_TRACK_GAIN=0...
20d20 00 41 52 54 49 53 54 3d 45 4d 4d 53 20 70 72 6f 6a 65 63 74 1a 00 00 00 50 52 4f 44 55 43 45 52 .ARTIST=EMMS.project....PRODUCER
20d40 3d 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =Petteri.Hintsanen..............
20d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21040 00 00 00 00 00 00 00 00 00 4f 67 67 53 00 00 80 bb 00 00 00 00 00 00 da f0 af 6a 02 00 00 00 05 .........OggS.............j.....
21060 e1 21 5a 32 2a 1c 1a 1a 19 18 17 17 17 18 18 18 17 18 18 18 18 17 18 18 19 19 19 18 19 19 19 18 .!Z2*...........................
21080 19 19 19 1a 18 19 19 1a 1a 1a 19 19 1a 19 19 18 19 1a 1a 19 1a 19 b8 b4 ef a1 be 6a 0b 8b f7 3c ...........................j...<
210a0 0d 2a 8a 87 7a ad 0c 68 a1 61 54 6e 0c 39 ad 44 d6 c1 b4 39 a1 6b 1c 1c bf 3b a5 6d 03 d2 71 6d .*..z..h.aTn.9.D...9.k...;.m..qm
210c0 b8 b3 59 8d 96 32 fd 90 7f 3c ab 42 ad c1 a8 50 53 f2 ce c6 62 ca 15 87 77 93 d5 ae b8 ad 68 e2 ..Y..2...<.B...PS...b...w.....h.
210e0 72 54 2b da c5 a6 43 63 f2 a1 d1 1a 30 60 2c 19 9a 4d 28 56 b1 ae b8 ad 7f 44 90 e2 66 f4 b3 6c rT+...Cc....0`,..M(V.....D..f..l
21100 85 62 0c 78 69 95 b8 d5 2d 5d e6 4d 54 68 47 ae b8 ac a9 fd 42 33 31 3a 86 3b 69 ae 2f 33 87 60 .b.xi...-].MThG.....B31:.;i./3.`
21120 f4 09 d1 46 15 da f8 99 ae b8 ad b4 28 e9 3f 1d 1e f5 c5 0a 33 5e c5 c2 6b 7e 43 c0 ed 79 94 25 ...F........(.?.....3^..k~C..y.%
21140 ae 98 ac aa 10 3d 25 c1 df ce a7 19 4b 26 eb 73 57 e2 d9 44 f9 d3 ff ae 98 ad 7f 00 a8 69 39 7a .....=%.....K&.sW..D.........i9z
21160 69 30 6f 94 7d be 6d 52 14 80 7b 55 7c c5 ae 98 ad 6d 4b ba 20 5b bb 0d 15 8b ad 63 03 38 b8 88 i0o.}.mR..{U|....mK..[.....c.8..
21180 a3 3b aa dc 7f ae 98 ac aa 0d 3a d2 38 f2 34 88 7c db 5a 12 13 61 08 2c 68 c2 ea cc d9 ae 98 ad .;........:.8.4.|.Z..a.,h.......
211a0 b4 28 e9 3b cb 6a 4d 6d 9f 4e 5a 78 68 21 20 f8 06 76 bc d4 13 ae 98 ac aa 00 2c 31 6b 10 76 7a .(.;.jMm.NZxh!...v........,1k.vz
211c0 65 d5 c2 d0 6d f4 e1 e2 9b a5 c3 b5 bd ae 98 ad 66 02 99 30 5e fb c8 53 b7 d5 ed cc 66 b1 f4 af e...m...........f..0^..S....f...
211e0 36 aa fb 99 ae 98 ad 7f 44 96 35 cd b6 cc 28 4b f3 33 b1 67 81 76 07 19 dd 55 b4 4f ae 98 ac a9 6.......D.5...(K.3.g.v...U.O....
21200 fd 4b 7d 5c 2b 5a de d3 a5 0e ae 97 d8 79 cb 28 c2 ea ee 99 ae 98 ad b4 28 e9 3a 48 62 6d e6 06 .K}\+Z.......y.(........(.:Hbm..
21220 6c 52 d6 bd 7a ee 48 33 b6 69 9c 25 ae 98 ac aa 10 3d 25 c1 e2 41 3b 77 63 80 35 97 c8 7d 0a 5b lR..z.H3.i.%.....=%..A;wc.5..}.[
21240 a5 c3 9b fd ae 98 ad 66 01 9d f5 79 8e 15 44 e7 74 19 d9 00 69 48 8f 36 aa cb 99 ae 98 ad 7f 45 .......f...y..D.t...iH.6.......E
21260 5c 51 94 df e5 e1 8d 9a 99 e8 f2 01 52 c3 bc ee aa eb 4f ae 98 ac a9 fd 4e 5c ba 05 c8 61 c8 43 \Q..........R.....O.....N\...a.C
21280 34 a2 a2 ad 89 3e e8 c2 ea ce 99 ae 98 ad b4 28 e7 61 53 a7 c9 7e a1 6a cf 4d 6f e3 7b a4 27 39 4....>.........(.aS..~.j.Mo.{.'9
212a0 79 a4 36 25 ae 98 ac aa 10 3d 5e 35 3e 80 a9 f9 92 e1 41 28 30 37 cc 12 97 4b 87 5d fd ae 98 ad y.6%.....=^5>.....A(07...K.]....
212c0 7f 00 ab 1a ac cf 04 18 77 ac ba 2b e6 69 07 cc 03 33 66 94 07 89 ae 98 ad 6d 4c ba 9c 4e 5b 2b ........w..+.i...3f......mL..N[+
212e0 c5 d4 d3 04 f2 4a 48 d1 14 19 dd 55 fc 7f ae 98 ac aa 0d 33 d5 f9 6b b2 d4 c4 52 b6 90 85 19 a8 .....JH....U.......3..k...R.....
21300 63 5d 19 85 d5 d6 d9 ae 98 ad b4 28 a9 5e 61 f4 34 13 8f 65 88 81 ef 95 5e 34 9f b9 79 a4 38 25 c].........(.^a.4..e....^4..y.8%
21320 ae 98 ac aa 00 30 69 a3 fa d4 7e 4b 1f 9c f3 4c 3d f4 3a 7d b9 87 23 ed bd ae 98 ad 66 02 b6 56 .....0i...~K...L=.:}..#.....f..V
21340 a7 b8 59 52 e6 e9 41 b3 bd 65 25 5d 99 b3 55 ff 99 ae 98 ad 7f 44 96 35 c2 7a 01 e2 81 25 3f 30 ..YR..A..e%]..U......D.5.z...%?0
21360 66 79 36 27 ec cc 9a 96 c0 4f ae 98 ac a9 fd 4b 34 e4 a2 7c 87 e2 36 1d 60 ea 37 d3 64 58 cc 2b fy6'.....O.....K4..|..6.`.7.dX.+
21380 b5 88 99 ae 98 ad b4 28 e8 fe 21 27 92 7c ff 89 67 86 5b 94 eb 48 27 ee d9 a4 60 25 ae 98 ac aa .......(..!'.|..g.[..H'...`%....
213a0 10 3d 4f 18 55 96 1b 65 a1 81 11 b1 72 a9 74 91 64 b9 87 3f a5 fd ae 98 ad 66 02 b6 56 a7 b8 59 .=O.U..e....r.t.d..?.....f..V..Y
213c0 52 e6 c3 c5 3c a4 f1 1d 01 99 b3 55 db 99 ae 98 ad 7f 44 8e f0 8e 9c 06 74 54 bb 32 56 8c 35 1e R...<......U......D.....tT.2V.5.
213e0 b8 38 33 ba 96 e8 4f ae 98 ac a9 fd 41 aa 86 6e 79 4f 52 34 8f a6 db 81 28 65 46 8c 2b b5 f2 99 .83...O.....A..nyOR4....(eF.+...
21400 ae 98 ad b4 28 e9 3a 48 0a ce 8e 2b 16 7b 08 91 dd e3 fc 24 ff 72 f3 48 f4 45 ae 98 ac aa 10 38 ....(.:H...+.{.....$.r.H.E.....8
21420 f4 65 b2 36 6d d0 a7 fa 36 cd 19 33 3e 03 04 b9 87 3f b9 fd ae 98 ad 7f 00 a9 41 19 49 3a 52 1a .e.6m...6..3>....?........A.I:R.
21440 6b 84 a7 b6 a7 61 af 87 19 9a 4d 28 87 11 ae 98 ad 6d 53 03 b2 59 c0 57 76 78 df 21 e9 5c 64 16 k....a....M(.....mS..Y.Wvx.!.\d.
21460 c7 19 99 35 2d ac f7 ae 98 ac aa 0d 30 52 31 a5 00 19 dd 0b 9d ef 9d 89 0c ea d8 cc 2b b5 b2 d9 ...5-.......0R1.............+...
21480 ae 98 ad b4 28 e9 3a 48 0a ce 8e 2b 16 7b 08 91 f0 94 bf 24 ff 72 f3 48 74 45 ae 98 ac aa 00 2c ....(.:H...+.{.....$.r.HtE.....,
214a0 31 a1 1f 2e da 5c 7f 1d 84 2b 52 79 61 59 b9 87 3f 81 bd ae 98 ad 7f 00 a5 74 3e 87 ec 02 90 4a 1....\...+RyaY..?........t>....J
214c0 bc 0a 70 f0 06 e6 0c cd 26 94 03 89 ae 98 ad 6d 4c b6 7c 5a 8f e1 17 52 41 34 91 5b 23 c7 03 33 ..p.....&......mL.|Z...RA4.[#..3
214e0 ba 96 e6 77 ae 98 ac aa 0d 3a 86 de a1 96 1d 38 83 c8 dd d8 26 81 e6 38 cc 2b b5 fc d9 ae 98 ad ...w.....:.....8....&..8.+......
21500 b4 28 e5 a1 39 af b5 fe 8f 95 7c 28 31 c0 47 6c 9d ff b9 79 a4 1e 25 ae 98 ac aa 00 30 89 2d 8f .(..9.....|(1.Gl...y..%.....0.-.
21520 86 c4 13 a7 93 77 61 79 0a a3 d5 3d 2e 97 3f 95 bd ae 98 ad 66 02 99 f6 64 e7 bf eb 24 d1 ff 2e .....way...=..?.....f...d...$...
21540 45 42 02 57 ec cd 26 94 73 99 ae 98 ad 80 75 d3 1c 3e d0 57 7f b3 c1 70 60 6b 25 71 be be 01 99 EB.W..&.s.....u..>.W...p`k%q....
21560 35 2d a0 cf ae 98 ac aa 0d 30 9b b7 bf b0 35 62 c2 4b 2f cd 72 65 cd ba 8c 2b b5 f0 d9 ae 4f 67 5-.......0....5b.K/.re...+....Og
21580 67 53 00 00 00 77 01 00 00 00 00 00 da f0 af 6a 03 00 00 00 58 ef 3c b4 32 19 1a 19 19 19 1a 19 gS...w.........j....X.<.2.......
215a0 19 18 19 1a 1a 19 19 1a 1a 1a 1a 19 19 1a 1a 1a 19 19 1a 1a 19 1a 1a 1a 1a 1a 19 1a 1b 1a 19 1b ................................
215c0 1a 1a 1a 19 19 19 1a 1a 1a 1a 1a 98 ad b4 28 a9 79 04 9d fb a7 5d 28 ee 44 57 c8 62 44 27 ee d9 ..............(.y....](.DW.bD'..
215e0 a4 38 25 ae 98 ac aa 00 2c 91 9c bf 22 28 e7 2a 16 8b ec 47 a5 73 0a c0 b9 87 3f 99 bd ae 98 ad .8%.....,..."(.*...G.s....?.....
21600 66 02 ca 7c dc 5b 76 cd 51 c1 41 ce 5b d4 fc 12 03 33 66 94 6f 99 ae 98 ad 7f 44 96 54 55 8a 54 f..|.[v.Q.A.[....3f.o.....D.TU.T
21620 1c 27 cf c5 2e 4d e7 95 a0 00 33 ba 96 c4 4f ae 98 ac a9 fd 41 aa 86 6e 79 4f 52 34 8f a4 dc cc .'...M....3...O.....A..nyOR4....
21640 ab 01 9e 8c 2b b5 f2 99 ae 98 ad b4 28 e9 07 6f e4 86 92 b3 eb c5 ab b2 47 e0 54 12 7f b9 79 a4 ....+.......(..o........G.T...y.
21660 32 25 ae 98 ac aa 10 38 c2 37 d3 d2 e0 da 48 06 a2 7a f9 ee 9d 91 2e 97 23 c1 fd ae 98 ad 7f 00 2%.....8.7....H..z......#.......
21680 a8 57 14 1a 3e f8 cf 5c 18 2c fc 0e c4 74 ec cd 26 94 33 89 ae 98 ad 6d 4c b6 7c 5a 8f e1 17 52 .W..>..\.,...t..&.3....mL.|Z...R
216a0 40 65 de 6c b0 af 3b 33 ba 96 f4 77 ae 98 ac aa 0d 3a 86 de a1 96 1d 38 84 99 95 06 20 4f e3 d8 @e.l..;3...w.....:.....8.....O..
216c0 cc 2b b5 aa d9 ae 98 ad b4 28 e9 4f 0e 4d c1 12 c9 c9 87 08 8b 8c 67 05 e0 9f b9 79 a4 5a 25 ae .+.......(.O.M........g....y.Z%.
216e0 98 ac aa 00 30 a6 9d c6 cc 41 ba fb a0 4e ce 59 f3 07 27 c4 b9 87 3f ad bd ae 98 ad 66 02 9d be ....0....A...N.Y..'...?.....f...
21700 76 79 09 5d 86 7e 49 4e 04 5f f6 23 8c cd 26 94 1f 99 ae 98 ad 7f 44 96 35 c2 7a 01 e2 7c e9 8a vy.].~IN._.#..&.......D.5.z..|..
21720 3d 46 e3 75 40 d0 cc 9a 96 c4 4f ae 98 ac a9 fd 4e a9 9f 43 d5 b8 a4 f0 14 8c f1 fa a5 99 da 18 =F.u@.....O.....N..C............
21740 cc 2b b5 98 99 ae 98 ad b4 28 e9 43 cb 2d f8 e5 5a 6d 31 e7 25 3e e2 1f 9a 7f b9 79 a4 3a 25 ae .+.......(.C.-..Zm1.%>.....y.:%.
21760 98 ac aa 10 3d 46 58 d1 2e 1b 65 a1 81 11 77 d2 3e 3d f1 04 b9 87 3f 9d fd ae 98 ad 66 02 c9 3c ....=FX...e...w.>=....?.....f..<
21780 b9 e7 65 8a 78 de d8 e6 c3 dd de ca 40 19 9a 4d 28 97 31 ae 98 ad 7f 44 96 35 c2 7a 01 e2 81 25 ..e.x.......@..M(.1....D.5.z...%
217a0 28 0a 50 9a 90 80 ec cc 9a 96 dc 4f ae 98 ac a9 fd 4b 34 e4 a2 7c 87 e2 36 1e 14 62 eb d1 69 58 (.P........O.....K4..|..6..b..iX
217c0 cc 2b b5 fe 99 ae 98 ad b4 28 e9 3a 48 0a ce 8e 2b 16 7b 08 99 f3 dc c1 34 ff 72 f3 48 94 45 ae .+.......(.:H...+.{.....4.r.H.E.
217e0 98 ac aa 00 30 6b 29 95 05 26 0d 37 6c 3b 09 c1 52 af c0 c4 b9 87 3f ad bd ae 98 ad 7f 00 a7 04 ....0k)..&.7l;..R.....?.........
21800 cf 7f 60 46 fb 8b ab 30 1f e1 50 30 00 39 9a 4d 28 c7 11 ae 98 ad 6d 4b b6 70 d2 fe 97 33 1f 71 ..`F...0..P0.9.M(.....mK.p...3.q
21820 35 0b b8 a3 11 c7 01 99 35 2d 40 f7 ae 98 ac aa 0d 3a 86 de a1 96 1d 38 83 c8 e2 bf 7d 4e ec 78 5.......5-@......:.....8....}N.x
21840 cc 2b b5 fa d9 ae 98 ad b4 28 e9 3a 48 0a ce 8e 2b 16 7b 08 91 ec 64 ca 04 ff 72 f3 48 24 45 ae .+.......(.:H...+.{...d...r.H$E.
21860 98 ac aa 00 2c 31 a1 1f 2e e4 d8 cd 6c 42 aa ea 09 4d 60 25 db 0e 7f f3 75 ae 98 ad 66 02 99 31 ....,1......lB...M`%....u...f..1
21880 b4 fc 81 19 ae c3 3f 54 ae 2c bf 93 8c cd 26 94 73 99 ae 98 ad 80 75 d9 d7 e5 74 34 f7 9d 56 1e ......?T.,....&.s.....u...t4..V.
218a0 72 f9 4a 38 16 8f 01 99 35 2d 88 d7 ae 98 ac aa 0d 3f 85 72 f2 bd 58 2d 33 61 1c a9 0f fd 51 1a r.J8....5-.......?.r..X-3a....Q.
218c0 38 cc 2b b5 f4 d9 ae 98 ad b4 28 a5 ad 86 b6 d7 1f fc 91 1f 85 61 8a 4d 46 13 fc e2 f3 48 e0 45 8.+.......(..........a.MF....H.E
218e0 ae 98 ac aa 00 30 7d b2 c5 8c 3c 3f 83 a5 8b 84 b2 52 77 a0 f0 b9 87 3f d5 bd ae 98 ad 7f 00 a8 .....0}...<?.....Rw....?........
21900 57 14 1a 3e b0 86 22 2e 88 93 a7 da 1a 1c 67 72 4d 28 ef 11 ae 98 ad 6d 4c b6 7c 5a 92 07 f3 bb W..>..".......grM(.....mL.|Z....
21920 fe 37 17 63 da 16 d7 01 99 35 2d e8 f7 ae 98 ac a9 fd 50 d6 4f 0b a4 c9 07 09 2c 8b 52 ae 0f 39 .7.c.....5-.......P.O.....,.R..9
21940 ca 58 cc 2b b5 9a 99 ae 98 ad b4 28 e9 64 60 49 03 7c 4d 55 7e 10 aa fb 38 9a be 53 fc e2 f3 48 .X.+.......(.d`I.|MU~...8..S...H
21960 94 45 ae 98 ac aa 10 3d 25 d4 4f 39 76 a0 50 20 0f d0 0f 7e 7c 56 09 73 0e 7f 9b f5 ae 98 ad 7f .E.....=%.O9v.P....~|V.s........
21980 00 ab 08 15 8a 0e 84 90 36 db f5 04 e0 d0 4c 0c cd 26 94 7b 89 ae 98 ad 6d 67 0d 48 d8 6e a9 04 ........6.....L..&.{....mg.H.n..
219a0 67 22 4a e7 86 4b 65 41 ab 82 07 71 35 2d 2a ef ae 98 ac a9 fd 4d f1 0e bd 61 b8 a4 f0 14 8a fa g"J..KeA...q5-*......M...a......
219c0 e3 f5 dd db 18 cc 2b b5 be 99 ae 98 ad b4 28 e5 98 83 72 bd 5e 1c 3f 1a 6b 64 f1 49 6a 93 fc e2 ......+.......(...r.^.?.kd.Ij...
219e0 f3 48 cc 45 ae 98 ac aa 10 3d 25 d4 4f 39 76 a0 50 08 0b de 2c 3b 76 c2 49 73 0e 7f fb f5 ae 98 .H.E.....=%.O9v.P...,;v.Is......
21a00 ad 66 02 82 05 a7 32 bb 80 b9 05 f0 94 7a 95 5f cb 8c cd 26 94 47 99 ae 98 ad 80 75 d9 bc 16 7c .f....2......z._...&.G.....u...|
21a20 b6 fa 85 b8 72 41 e6 e2 3d c0 ec cc 9a 96 e4 6f ae 98 ac aa 0d 3a 86 de a1 96 1d 38 84 9a 7c e6 ....rA..=......o.....:.....8..|.
21a40 12 08 ea 98 cc 2b b5 f8 d9 ae 98 ad b4 28 a5 3d bf 1e 88 b0 2a bf ca f0 a9 f0 56 0e 13 fd cb cd .....+.......(.=....*.....V.....
21a60 96 e0 45 ae 98 ac aa 00 2c 44 ad 24 63 77 db 89 ea 8b 36 8f 09 57 44 89 73 0e 7f d3 75 ae 98 ad ..E.....,D.$cw....6..WD.s...u...
21a80 66 02 99 2f 93 0d 89 e5 7d 18 2b 1b 45 c1 5e 7f 71 9d c9 35 e2 ef 31 ae 98 ad 7f 44 9b b0 21 57 f../....}.+.E.^.q..5..1....D..!W
21aa0 f1 4a ef 91 da b1 4f 9e eb 31 07 01 99 35 2d a8 97 ae 98 ac aa 0d 3a 87 3f a7 0b 75 5d a3 dc cf .J....O..1...5-.......:.?..u]...
21ac0 fe 31 d7 9b 7b 18 e1 5c 89 f1 b1 ae 4f 67 67 53 00 00 80 32 02 00 00 00 00 00 da f0 af 6a 04 00 .1..{..\....OggS...2.........j..
21ae0 00 00 a8 2a f5 f3 32 1a 1a 1a 1a 1b 1b 1b 1a 1a 1a 1a 1b 1a 1b 1b 1b 1b 1a 1a 1a 1b 1b 1a 1a 1b ...*..2.........................
21b00 1b 1b 1a 1b 1b 1b 1b 1a 1a 1b 1b 1b 1a 1b 1b 1b 1b 1a 1b 1b 1b 1a 1a 1a 1a 98 ad b4 28 a9 5e 58 ............................(.^X
21b20 28 fd 98 32 c1 a3 f6 2f 90 a7 0b af fd cb cd 96 d0 45 ae 98 ac aa 00 09 f6 11 cd 7a 64 9f e3 83 (..2.../.........E.........zd...
21b40 58 5d d6 79 91 dc 25 db 0e 7f 6f 75 ae 98 ad 66 02 99 2f 93 0d 89 e5 7d 18 2a f9 6a ed a3 4a 01 X].y..%...ou...f../....}.*.j..J.
21b60 9d c9 35 e2 e7 31 ae 98 ad 7f 45 5c 51 91 4d cb 32 d5 ca 7b 3b 47 09 54 80 9c 07 71 35 2d be 97 ..5..1....E\Q.M.2..{;G.T...q5-..
21b80 ae 98 ac a9 fd 4d e9 74 0e a1 c1 1f 87 03 8d 70 8d 67 39 15 ec 63 84 61 12 fa 71 ae 98 ad b4 28 .....M.t.......p.g9..c.a..q....(
21ba0 e6 03 8d 85 3c 6f 1f f2 90 57 f3 ff 68 19 a4 9f e7 17 9b 2c 3c 85 ae 98 ac aa 10 3d 46 58 d3 1a ....<o...W..h......,<......=FX..
21bc0 b0 9d 16 4d f5 fe 43 c0 ff 94 f8 97 6c 38 c6 ab f5 ae 98 ad 66 02 82 03 e9 bb 74 ab 8b 44 00 ca ...M..C.....l8......f.....t..D..
21be0 c4 61 bc 4c 71 9d c9 35 e2 8f 31 ae 98 ad 80 76 88 5b e4 04 93 6a 82 15 50 8f c2 37 2c 8e 1c 07 .a.Lq..5..1....v.[...j..P..7,...
21c00 71 35 2d 42 d7 ae 98 ac aa 0d 2b 13 cd 6b a0 fa 73 3e 86 a6 99 04 bd 5e 43 18 e1 5c 89 81 b1 ae q5-B......+..k..s>.....^C..\....
21c20 98 ad b4 28 e5 98 83 72 bd 5e 1c 3f 2b 1c a3 0b 04 ce 13 fc e2 f3 48 ec 45 ae 98 ac aa 00 30 69 ...(...r.^.?+.........H.E.....0i
21c40 b7 78 f9 bd 7a 81 a3 44 f7 68 a5 20 29 11 2e d8 71 8d f6 f5 ae 98 ad 66 02 b7 21 0c 1e 20 72 12 .x..z..D.h..)...q......f..!...r.
21c60 64 cc 74 50 6c 2a 79 80 67 72 4d 28 7f 31 ae 98 ad 7f 44 8e f0 91 99 3e 07 d7 1b 87 d2 3c 42 6d d.tPl*y.grM(.1....D....>.....<Bm
21c80 77 6e e0 3b 89 a9 4e a1 17 ae 98 ac a9 fd 41 aa 8f 35 32 86 00 cb d9 c4 c0 03 ea 61 d5 bc 63 84 wn.;..N.......A..52........a..c.
21ca0 61 13 4a 71 ae 98 ad b4 28 e5 a1 39 61 9a ef 37 e4 6e 2f 17 05 0a 00 1d 7f e7 15 cd 96 5c 45 ae a.Jq....(..9a..7.n/..........\E.
21cc0 98 ac aa 10 38 c7 0c 9a 69 cb c0 99 b4 47 5c 12 05 15 57 60 97 6c 38 c6 d3 f5 ae 98 ad 66 02 b7 ....8...i....G\...W`.l8......f..
21ce0 21 0c 1e 20 72 12 64 cc 74 3c 36 5b e1 00 67 72 4d 28 bf 31 ae 98 ad 7f 44 96 35 e5 c4 47 67 11 !...r.d.t<6[..grM(.1....D.5..Gg.
21d00 bf de 3d d7 62 75 01 dc 06 64 d4 a7 a8 97 ae 98 ac a9 fd 4b 35 41 f0 77 a1 61 a1 b2 07 67 84 c6 ..=.bu...d.........K5A.w.a...g..
21d20 66 8f 18 e1 5c 89 71 31 ae 98 ad b4 28 e9 5a ca 25 97 cb 98 b5 a1 e8 44 9b 75 90 5b 4f f3 8b cd f...\.q1....(.Z.%......D.u.[O...
21d40 96 f4 45 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 42 97 a5 c9 42 af 3a 91 2e d8 71 8d 77 f5 ae 98 ..E.....=%.^...>B...B.:...q.w...
21d60 ad 66 02 99 2f 93 0d 89 e5 7d 18 2b 12 52 6b b1 51 71 9d c9 35 e2 ef 31 ae 98 ad 7f 44 96 35 e5 .f../....}.+.Rk.Qq..5..1....D.5.
21d80 c4 47 67 18 6a 18 85 4d 10 56 4d ce 66 64 d4 a7 28 97 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 1e 0e .Gg.j..M.VM.fd..(......K}+.W....
21da0 94 f9 a3 dc 51 ca 3c 63 84 61 13 a2 71 ae 98 ad b4 28 a5 57 d2 53 37 41 97 40 bb 33 e7 c2 6b 69 ....Q.<c.a..q....(.W.S7A.@.3..ki
21dc0 eb 7f e7 17 9b 2c 40 85 ae 98 ac aa 10 15 43 22 80 d0 d8 7f 72 a3 d0 38 52 b5 23 52 c5 2e d8 71 .....,@.......C"....r..8R.#R...q
21de0 8d 9f f5 ae 98 ad 66 02 99 f6 64 e7 bf a0 92 21 da 68 52 f0 af 89 9c 67 72 4d 28 e7 31 ae 98 ad ......f...d....!.hR....grM(.1...
21e00 7f 44 95 1e bd 1c e7 4b 7e 79 30 c5 fe 05 52 9e e4 34 06 64 d4 a7 90 97 ae 98 ac a9 fd 39 d0 a9 .D.....K~y0...R..4.d.........9..
21e20 3f 35 c1 1d 2d 80 de fa b7 aa dd da 2c 63 84 61 13 02 71 ae 98 ad b4 28 e9 63 88 60 3b cb 98 b5 ?5..-.......,c.a..q....(.c.`;...
21e40 a1 e8 42 97 e6 be 58 4f f3 8b cd 96 94 45 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 42 9f ae 8e 21 ..B...XO.....E.....=%.^...>B...!
21e60 37 58 c1 2e d8 71 8c d7 f5 ae 98 ad 66 02 99 2f 93 0d 89 e5 7d 18 2a fa ed 76 b6 48 01 9d c9 35 7X...q......f../....}.*..v.H...5
21e80 e2 4f 31 ae 98 ad 7f 44 c4 b9 5f 0c d7 69 af 27 73 2f be 19 ea 4c 9c 67 71 35 2d ac 97 ae 98 ac .O1....D.._..i.'s/...L.gq5-.....
21ea0 a9 fd 41 aa 8f 35 32 86 00 cb d9 c4 d1 5d 07 a5 7d 9c 63 84 61 13 ca 71 ae 98 ad b4 28 a9 79 03 ..A..52......]..}.c.a..q....(.y.
21ec0 af 2c f3 a1 44 51 f5 ff 73 5e 81 b4 9f e7 17 9b 2c a0 85 ae 98 ac aa 10 3d 27 55 2d 34 d0 46 70 .,..DQ..s^......,.......='U-4.Fp
21ee0 70 7c 87 e9 dc b0 b5 74 94 0c 38 c6 6b f5 ae 98 ad 66 02 99 f6 64 e7 bf a0 92 21 da 66 b5 ad 23 p|.....t..8.k....f...d....!.f..#
21f00 21 00 67 72 4d 28 ef 31 ae 98 ad 7f 44 9a 1e 1a 27 b1 fc 27 af fa d3 65 df 0d b1 2e 70 1d c4 d4 !.grM(.1....D...'..'...e....p...
21f20 a7 b8 97 ae 98 ac a9 fd 3c 96 37 ff 13 6c b5 72 8b 2c e0 b6 42 d5 a1 9c 63 84 61 13 ca 71 ae 98 ........<.7..l.r.,..B...c.a..q..
21f40 ad b4 28 e8 fe 20 9c 30 a5 19 01 ad 7b e7 3a 4b eb 82 9f e7 17 9b 2c 88 85 ae 98 ac aa 10 3d 65 ..(....0....{.:K......,.......=e
21f60 27 1c 56 f2 1e 79 10 23 cb 60 5b 04 ba 70 17 6c 38 c6 5b f5 ae 98 ad 66 02 9d fc 59 47 6d aa 80 '.V..y.#.`[..p.l8.[....f...YGm..
21f80 6e 4f 27 44 31 97 99 00 67 72 4d 28 27 31 ae 98 ad 80 75 da 9b 35 84 6a 32 65 b6 5f 5a d1 a9 33 nO'D1...grM('1....u..5.j2e._Z..3
21fa0 02 a3 70 1d c4 d4 a7 e8 d7 ae 98 ac aa 0d 33 87 ad f4 f3 2b ba 57 dc ba 97 97 cc 43 88 be 31 c2 ..p...........3....+.W.....C..1.
21fc0 b9 12 03 71 ae 98 ad b4 28 e9 3b cb 58 04 f5 58 f6 9f 2e 2e 7e 69 09 18 bf f3 8b cd 96 d4 45 ae ...q....(.;.X..X....~i........E.
21fe0 98 ac aa 00 2c 31 a1 1f 2e e4 d8 cd 6c 47 06 3d d1 cd 1c 25 db 0e 7f e3 75 ae 98 ad 66 02 8a 33 ....,1......lG.=...%....u...f..3
22000 42 0a 0c 76 60 82 8d 0a bf 4f 9a 57 71 9d c9 35 e2 87 31 ae 98 ad 7f 44 96 35 e5 c4 47 67 18 69 B..v`....O.Wq..5..1....D.5..Gg.i
22020 e3 10 9c 4e ea 20 5c 66 64 d4 a7 c8 97 ae 98 ac a9 fd 41 64 39 f0 8a 57 14 e4 dd cc 19 21 b0 7f ...N..\fd.........Ad9..W.....!..
22040 0b 18 e1 5c 89 a1 31 ae 4f 67 67 53 00 00 00 ee 02 00 00 00 00 00 da f0 af 6a 05 00 00 00 13 38 ...\..1.OggS.............j.....8
22060 9a 68 32 1a 1b 1a 1b 1b 1a 1a 1a 1a 1b 1b 1a 1a 1a 1a 1a 1b 1a 1a 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b .h2.............................
22080 1b 1b 1b 1a 1b 1a 1b 1b 1a 1b 1b 1b 1b 1a 1b 1b 1c 1c 1a 1b 1b 98 ad b4 28 a9 5e 58 28 fd 98 32 ........................(.^X(..2
220a0 c1 e9 9a d4 fe bb 08 93 fd cb cd 96 b0 45 ae 98 ac aa 10 3d 3a 9b 49 ec cd ca 1d 16 cc 65 98 93 .............E.....=:.I......e..
220c0 8a f4 62 97 6c 38 c6 cb f5 ae 98 ad 66 02 99 f6 64 e7 bf a0 92 21 da 65 82 54 4c f1 fc 67 72 4d ..b.l8......f...d....!.e.TL..grM
220e0 28 27 31 ae 98 ad 7f 44 8e f0 91 99 3e 07 d7 1b 87 d1 df 7d 08 99 2f e0 3b 89 a9 4e e9 17 ae 98 ('1....D....>......}../.;..N....
22100 ac a9 fd 4c e0 2b 4a 4b 2f f2 ae f8 55 b3 03 aa 40 dc be 31 c2 b9 12 e2 71 ae 98 ad b4 28 e5 98 ...L.+JK/...U...@..1....q....(..
22120 83 72 bd 5e 1c 3f 19 64 85 09 ba 3a 93 fc e2 f3 48 fc 45 ae 98 ac aa 10 38 c2 75 87 de 16 55 fc .r.^.?.d...:....H.E.....8.u...U.
22140 32 70 77 a2 b7 d9 92 25 db 0e 7f d3 f5 ae 98 ad 66 02 b6 55 d5 05 28 2b 61 ef f9 7b 89 d3 42 76 2pw....%........f..U..(+a..{..Bv
22160 71 9d c9 35 e2 d7 31 ae 98 ad 80 75 d9 bc 16 7c b6 92 cc 34 98 89 02 3a 26 9e 1c 07 71 35 2d 38 q..5..1....u...|...4...:&...q5-8
22180 d7 ae 98 ac aa 0d 3e 1e 8f 35 6a cd d3 6e 5e 7c 64 9c 22 ff c1 73 18 e1 5c 89 8d b1 ae 98 ad b4 ......>..5j..n^|d."..s..\.......
221a0 28 e6 9b b9 89 7a d7 1f fc 91 20 3e 4a f5 e0 46 13 fc e2 f3 48 dc 45 ae 98 ac aa 00 2c 31 a1 1f (....z.....>J..F....H.E.....,1..
221c0 2e e4 d8 cd 6c 38 20 82 92 71 12 25 db 0e 7f 03 75 ae 98 ad 66 02 b6 55 d5 05 28 2b 61 ef f9 76 ....l8...q.%....u...f..U..(+a..v
221e0 f1 71 01 4a 71 9d c9 35 e2 d7 31 ae 98 ad 7f 44 8e d5 5d e6 01 5d 2c aa ce 81 4d de 9b 94 1c 07 .q.Jq..5..1....D..]..],...M.....
22200 71 35 2d e0 97 ae 98 ac aa 0d 30 52 90 9a 85 61 51 a0 a5 7d 9d fb 48 ec 4b 18 e1 5c 89 61 b1 ae q5-.......0R...aQ..}..H.K..\.a..
22220 98 ad b4 28 a9 5e 58 28 fd 98 32 c1 a1 de c7 13 0e 63 93 fd cb cd 96 d0 45 ae 98 ac aa 00 2c 31 ...(.^X(..2......c......E.....,1
22240 a1 4a a4 aa 72 38 db 76 23 16 12 24 1e 91 28 18 71 8c e6 f5 ae 98 ad 66 02 99 2f 93 0d 89 e5 7d .J..r8.v#..$..(.q......f../....}
22260 18 2b 12 f0 2c 4f 48 71 9d c9 35 e2 67 31 ae 98 ad 7f 44 96 35 e5 c4 47 67 18 6a 33 76 27 68 65 .+..,OHq..5.g1....D.5..Gg.j3v'he
22280 8c 1c 66 64 d4 a7 68 97 ae 98 ac a9 fd 4d e9 74 0e a1 c1 1f 87 03 a5 e6 41 a2 49 21 ec 63 84 61 ..fd..h......M.t........A.I!.c.a
222a0 12 aa 71 ae 98 ad b4 28 e6 10 26 61 8b 02 cd be 15 59 e8 e7 a9 de 90 9f e7 17 9b 2d 78 85 ae 98 ..q....(..&a.....Y.........-x...
222c0 ac aa 10 38 c2 75 f7 41 6a 55 6c 1b 7b 70 36 4f c6 f1 82 5d b1 1d 8d 07 f5 ae 98 ad 66 02 99 f6 ...8.u.AjUl.{p6O...]........f...
222e0 2f 3a 2b 9f b1 cb 78 3f 25 07 0d b0 40 1e 77 25 6b c5 4e 71 ae 98 ad 7f 44 8e f0 91 99 3e 07 d7 /:+...x?%...@.w%k.Nq....D....>..
22300 1b 7f b9 57 95 a5 39 00 e0 3b 89 a9 4e 21 17 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 1e 0e 92 ed 2d ...W..9..;..N!......K}+.W......-
22320 6c 39 bd 5c 63 84 61 13 ea 71 ae 98 ad b4 28 e9 3a 47 7c 60 52 4a 48 60 0a 1a ec 96 8d 80 9f e7 l9.\c.a..q....(.:G|`RJH`........
22340 17 9b 2c 88 85 ae 98 ac aa 10 38 0a e1 28 ae bb bc d9 f7 e8 44 d1 49 02 31 c2 50 31 1d 8d 47 f5 ..,.......8..(......D.I.1.P1..G.
22360 ae 98 ad 66 02 a3 2d 92 03 a5 dd b9 69 ac 74 c5 1c 91 f0 67 73 3b 92 6b c5 4e 71 ae 98 ad 7f 44 ...f..-.....i.t....gs;.k.Nq....D
22380 9a 98 a5 40 72 aa 68 a6 b1 ef 5e 06 d7 32 31 18 1d c4 d4 a7 88 97 ae 98 ac a9 fd 4b 7d 2b 81 57 ...@r.h...^..21............K}+.W
223a0 96 b6 1e 0e 9c 5f 2c 57 99 39 5c 63 84 61 13 72 71 ae 98 ad b4 28 a6 a2 be 1b bd 2d 07 07 04 54 ....._,W.9\c.a.rq....(.....-...T
223c0 2f a4 fc 51 dd 7f e7 17 9b 2d 40 85 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 42 96 62 12 96 85 22 /..Q.....-@......=%.^...>B.b..."
223e0 11 2e d8 71 8d 57 f5 ae 98 ad 66 02 82 03 e9 bb 74 ab 8b 43 06 36 1a 30 49 6e f1 9d c9 35 e2 8f ...q.W....f.....t..C.6.0In...5..
22400 31 ae 98 ad 80 75 db c9 47 3e 63 9a 63 c8 63 e4 2f 8d df e0 ba 40 3b 89 a9 4f 51 97 ae 98 ac a9 1....u..G>c.c.c./....@;..OQ.....
22420 fd 4b 35 41 f0 77 a1 61 a3 29 bc e4 b8 e0 65 63 18 e1 5c 89 59 31 ae 98 ad b4 28 e6 86 07 01 9f .K5A.w.a.)....ec..\.Y1....(.....
22440 0c b2 6d 81 1b ee 23 12 f2 dc 9f e7 17 9b 2d 38 85 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 4b 9b ..m...#.......-8......=%.^...>K.
22460 a8 60 2d 27 16 e1 2e d8 71 8d 97 f5 ae 98 ad 66 01 b7 ac a4 bc 83 d5 37 6a c8 52 af 4e cd 69 b9 .`-'....q......f.......7j.R.N.i.
22480 9d c9 35 e2 fb 31 ae 98 ad 7f 44 96 54 58 e6 ca d9 b8 2a e5 dd eb b1 fd 81 6c 80 3b 89 a9 4f 31 ..5..1....D.TX....*......l.;..O1
224a0 17 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 1e 27 ad ed 89 f3 19 b1 cc 63 84 61 12 e2 71 ae 98 ad b4 ......K}+.W...'.......c.a..q....
224c0 28 e9 3a 47 7c 60 52 4a 48 60 0a 1a ea c6 19 c0 9f e7 17 9b 2d 28 85 ae 98 ac aa 10 38 c2 75 f7 (.:G|`RJH`..........-(......8.u.
224e0 41 6a 55 6c 1b 7b 70 e3 e1 2e 25 82 50 31 1d 8d 87 f5 ae 98 ad 66 02 b6 55 d5 05 28 2b 61 ef fd AjUl.{p...%.P1.......f..U..(+a..
22500 02 32 0c b1 69 b9 9d c9 35 e2 37 31 ae 98 ad 7f 44 96 35 e6 17 0b 3c 30 24 df 80 07 df 3e 0a 97 .2..i...5.71....D.5...<0$....>..
22520 1a 77 13 65 4f f1 17 ae 98 ac a9 fd 41 aa 8f 35 32 86 00 cb d9 ca cb f6 69 81 b1 7c 63 84 61 13 .w.eO.......A..52.......i..|c.a.
22540 8a 71 ae 98 ad b4 28 e9 a3 92 7d 9b b8 c0 3b 27 f0 1a ac d2 a1 40 db bf f3 8b cd 96 74 45 ae 98 .q....(...}...;'.....@......tE..
22560 ac aa 10 3d 3a c4 04 60 d2 db 04 2f 7d d2 a6 21 01 91 00 e1 2e d8 71 8d 77 f5 ae 98 ad 66 02 99 ...=:..`.../}..!......q.w....f..
22580 f6 64 e7 bf a0 92 21 da 67 d4 1f a4 f9 dc 67 72 4d 28 ef 31 ae 98 ad 7f 44 96 54 58 e6 ca d9 b8 .d....!.g.....grM(.1....D.TX....
225a0 2a e5 da e1 bd 7c a5 49 e0 3b 89 a9 4e 91 17 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 1e 0e 92 ff ae *....|.I.;..N.......K}+.W.......
225c0 bf cd c9 9c 63 84 61 13 42 71 ae 4f 67 67 53 00 00 80 a9 03 00 00 00 00 00 da f0 af 6a 06 00 00 ....c.a.Bq.OggS.............j...
225e0 00 84 bc 58 6e 32 1b 1b 1a 1b 1a 1b 1b 1a 1b 1b 1a 1b 1a 1a 1b 1b 1b 1a 1b 1a 1b 1a 1a 1a 1b 1b ...Xn2..........................
22600 1b 1a 1b 1b 1b 1b 1a 1a 1a 1a 1b 1a 1b 1b 1c 1c 1b 1c 1b 1c 1c 1a 1a 1a 98 ad b4 28 e8 fe 20 9c ...........................(....
22620 30 a5 19 01 ad 58 aa 7d b9 19 86 9f e7 17 9b 2d 08 85 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 42 0....X.}.......-.......=%.^...>B
22640 97 af da 89 4d 1a 91 2e d8 71 8c b7 f5 ae 98 ad 66 02 b6 55 d5 05 28 2b 61 ef f9 65 a4 ed f1 57 ....M....q......f..U..(+a..e...W
22660 01 9d c9 35 e2 f7 31 ae 98 ad 7f 45 5d 3a 48 dd 37 d6 85 12 34 82 5e 16 4a f4 52 20 3b 89 a9 4f ...5..1....E]:H.7...4.^.J.R.;..O
22680 9d 17 ae 98 ac a9 fd 4b 35 41 f0 77 a1 61 a1 b2 6a 7a 2b 1c 6e 47 18 e1 5c 89 55 31 ae 98 ad b4 .......K5A.w.a..jz+.nG..\.U1....
226a0 28 e9 3a 47 7c 60 52 4a 48 5f e6 25 98 24 01 dc 9f e7 17 9b 2d 6c 85 ae 98 ac aa 10 3d 25 d4 5e (.:G|`RJH_.%.$......-l......=%.^
226c0 09 b0 99 3e 42 97 b0 05 1a 29 54 95 2e d8 71 8d 97 f5 ae 98 ad 66 02 82 03 e9 bb 74 ab 8b 43 06 ...>B....)T...q......f.....t..C.
226e0 56 6f f6 4a 6b 71 9d c9 35 e2 a7 31 ae 98 ad 80 75 d4 d7 fa c7 cc f3 50 3f f5 0f c0 a8 6d 2c f8 Vo.Jkq..5..1....u......P?....m,.
22700 e3 3b 89 a9 4e 61 97 ae 98 ac a9 fd 43 05 b5 5c f3 6b 28 f3 1d 43 14 10 56 24 a2 86 31 c2 b9 12 .;..Na......C..\.k(..C..V$..1...
22720 c2 71 ae 98 ad b4 28 a9 5e 58 28 fd 98 32 c1 a6 08 17 d6 70 82 d3 fd cb cd 96 20 45 ae 98 ac aa .q....(.^X(..2.....p.......E....
22740 10 3d 25 d4 5e 09 b0 99 3e 42 97 a5 72 62 fb 6e 91 2e d8 71 8d 37 f5 ae 98 ad 66 02 b6 55 d5 05 .=%.^...>B..rb.n...q.7....f..U..
22760 28 2b 61 ef f9 76 f3 2b d1 44 71 9d c9 35 e2 f7 31 ae 98 ad 7f 44 96 35 e5 c4 47 67 18 6a 2e 3d (+a..v.+.Dq..5..1....D.5..Gg.j.=
22780 c7 99 2f ca 5c 66 64 d4 a7 d8 97 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 1e 0e 95 07 b1 e3 2d b2 3c ../.\fd.........K}+.W........-.<
227a0 63 84 61 12 ba 71 ae 98 ad b4 28 e6 87 28 bc e1 be 8b 6f 65 27 5f 82 8e ff a4 2f fd cb cd 96 cc c.a..q....(..(....oe'_..../.....
227c0 45 ae 98 ac aa 00 30 6b 29 96 60 83 f6 61 3a b9 a6 2c bc c3 c6 8a 97 6c 38 c6 cb 75 ae 98 ad 66 E.....0k).`..a:..,.....l8..u...f
227e0 02 99 f6 64 e7 bf a0 92 21 da 66 48 dd 3c 41 c0 67 72 4d 28 2f 31 ae 98 ad 7f 44 9a 98 a5 40 72 ...d....!.fH.<A.grM(/1....D...@r
22800 aa 68 a6 b3 4f c1 ba 1b 52 90 18 1d c4 d4 a7 d8 97 ae 98 ac a9 fd 3c 96 30 54 b1 94 e3 9c 60 b1 .h..O...R.............<.0T....`.
22820 73 35 48 f5 8f c6 38 57 6b 41 31 ae 98 ad b4 28 e9 4f 0e 3e ac 30 b1 62 52 8e 88 cc 14 95 98 4f s5H...8WkA1....(.O.>.0.bR......O
22840 f3 8b cd 96 b4 45 ae 98 ac aa 10 38 c2 75 87 de 16 55 fc 32 81 5e 14 ab cf a2 25 db 0e 7f 93 f5 .....E.....8.u...U.2.^....%.....
22860 ae 98 ad 66 02 99 2f 93 0d 89 e5 7d 18 2b 00 54 b4 13 73 01 9d c9 35 e2 e7 31 ae 98 ad 7f 44 96 ...f../....}.+.T..s...5..1....D.
22880 35 e5 c4 47 67 11 c0 13 81 fb 9d ef 0a c6 06 64 d4 a7 48 97 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 5..Gg..........d..H......K}+.W..
228a0 1e 0e 92 ec 89 68 d1 94 fc 63 84 61 13 b2 71 ae 98 ad b4 28 e9 3a 47 7c 60 52 4a 48 5f e6 5b 1c .....h...c.a..q....(.:G|`RJH_.[.
228c0 c3 49 c1 9f e7 17 9b 2c e8 85 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 42 9d 4c 9b 50 71 05 81 2e .I.....,.......=%.^...>B.L.Pq...
228e0 d8 71 8d 17 f5 ae 98 ad 66 02 99 2f 93 0d 89 e5 7d 18 2b 14 71 a0 ae 68 71 9d c9 35 e2 e7 31 ae .q......f../....}.+.q..hq..5..1.
22900 98 ad 7f 44 96 35 e6 17 0b 3c 30 24 df 80 01 d7 b7 09 07 1a 77 13 65 4f 91 17 ae 98 ac a9 fd 4b ...D.5...<0$........w.eO.......K
22920 7d 2b 81 57 96 b6 1e 27 ad c0 b0 c2 6d b9 cc 63 84 61 12 6a 71 ae 98 ad b4 28 e8 fe 20 9c 30 a5 }+.W...'....m..c.a.jq....(....0.
22940 19 01 ad 58 ac a8 18 89 9c 9f e7 17 9b 2d 88 85 ae 98 ac aa 10 3d 25 d4 5e 09 b0 99 3e 42 9d 46 ...X.........-.......=%.^...>B.F
22960 5f ed 53 68 e1 2e d8 71 8c 17 f5 ae 98 ad 66 02 8a 33 42 0a 0c 76 60 81 11 55 30 b5 a2 49 71 9d _.Sh...q......f..3B..v`..U0..Iq.
22980 c9 35 e2 cf 31 ae 98 ad 7f 44 96 35 e5 c4 47 67 18 6a 33 8b a6 ac 6f e4 50 66 64 d4 a7 c8 97 ae .5..1....D.5..Gg.j3...o.Pfd.....
229a0 98 ac a9 fd 43 84 1d 77 18 f9 84 f5 bc 7e 1c 4b b9 0b 14 c6 38 57 6b e1 31 ae 98 ad b4 28 aa a4 ....C..w.....~.K....8Wk.1....(..
229c0 ec 27 07 34 78 8c 4a f1 ad aa 5f 1a 13 fc e2 f3 48 30 45 ae 98 ac aa 00 0a 0c 80 0e 94 2a ff 76 .'.4x.J..._.....H0E..........*.v
229e0 25 24 f2 23 5e 7c 51 04 28 18 71 8d 9e f5 ae 98 ad 66 02 8a e0 de 57 48 6f 18 5f 4d a7 84 f7 88 %$.#^|Q.(.q......f....WHo._M....
22a00 09 00 67 72 4d 28 5f 31 ae 98 ad 7f 45 57 f1 93 78 4d f8 e7 f8 76 8f f8 d4 29 b1 3e 70 1d c4 d4 ..grM(_1....EW..xM...v...).>p...
22a20 a7 0a 97 ae 98 ac a9 fd 4e 5c a9 a1 1c 54 c1 3d 7c 3c 7c c2 e7 56 e6 8e 31 c2 b9 12 32 71 ae 98 ........N\...T.=|<|..V..1...2q..
22a40 ad b4 28 a5 57 d9 65 79 da f2 7b 9c 2f 38 bf f2 f1 60 a7 27 1c 5f 20 d6 44 85 ae 98 ac aa 00 30 ..(.W.ey..{./8...`.'._..D......0
22a60 6b 29 98 5c a8 aa cf d6 f5 88 59 44 e3 e0 e6 40 5d b1 1d 8d d6 f5 ae 98 ad 66 02 99 f6 2f 3a 2b k).\......YD...@]........f.../:+
22a80 9f b1 cb 78 8d d1 9b 1d 21 7a 9e 77 25 6b c5 9e 71 ae 98 ad 7f 45 58 b7 65 7e cf d9 5c 77 3e 8e ...x....!z.w%k..q....EX.e~..\w>.
22aa0 99 f3 5d 7e be 41 c0 77 13 65 4f 95 17 ae 98 ac a9 fd 4b 7d 2b 81 57 96 b6 1e 0e 92 f7 55 e7 bd ..]~.A.w.eO.......K}+.W......U..
22ac0 cc fc 63 84 61 13 62 71 ae 98 ad b4 28 e9 5a fc 7c bd 3f d9 e0 76 e8 f0 a9 2e 04 af fa ff ce 2f ..c.a.bq....(.Z.|.?..v........./
22ae0 93 2d 68 85 ae 98 ac aa 10 3d 27 55 2f 45 21 b2 49 d8 b7 21 97 d3 b6 ea 27 20 5d b1 1d 8d d7 f5 .-h......='U/E!.I..!....'.].....
22b00 ae 98 ad 66 02 82 a6 25 2b ea bd 72 8a 4f 43 ef 7d fd a1 00 67 72 4d 28 0f 31 ae 98 ad 7f 44 96 ...f...%+..r.OC.}...grM(.1....D.
22b20 54 55 8a 55 a1 e3 50 a5 63 17 dc ed a9 37 01 99 35 2d a8 97 ae 98 ac a9 fd 4b 7d 22 88 6b 09 6f TU.U..P.c....7..5-.......K}".k.o
22b40 27 1f b3 1e f0 b8 4f d1 c6 38 57 6b 55 31 ae 4f 67 67 53 00 04 b8 aa 03 00 00 00 00 00 da f0 af '.....O..8WkU1.OggS.............
22b60 6a 07 00 00 00 d5 9e c9 dc 01 26 98 b4 2f 48 12 b7 61 ec 95 b6 03 74 ef 34 94 71 d2 ed c1 c2 26 j.........&../H..a....t.4.q....&
22b80 ec fe 86 16 66 dd f1 1d d4 75 5d 60 3a 06 78 bf ac 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....f....u]`:.x.................
22ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c00 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 72 65 73 6f 75 72 63 65 73 2f 73 69 6e 65 2e 66 6c 61 63 emms-24/test/resources/sine.flac
22c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
22c80 30 30 37 32 31 36 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 34 37 30 00 20 30 00 00 00 0072163.00000000000.015470..0...
22ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
22d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
22d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e00 66 4c 61 43 00 00 00 22 10 00 10 00 00 05 33 00 0a 27 01 f4 00 f0 00 00 9c 40 28 13 83 a7 c6 f7 fLaC..."......3..'.......@(.....
22e20 f2 dd 41 67 8b fd ce c9 c1 65 03 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 ..Ag.....e......................
22e40 04 00 01 56 20 00 00 00 72 65 66 65 72 65 6e 63 65 20 6c 69 62 46 4c 41 43 20 31 2e 34 2e 32 20 ...V....reference.libFLAC.1.4.2.
22e60 32 30 32 32 31 30 32 32 0a 00 00 00 13 00 00 00 41 4c 42 55 4d 3d 54 65 73 74 20 44 61 74 61 20 20221022........ALBUM=Test.Data.
22e80 e2 98 ba 1e 00 00 00 52 45 50 4c 41 59 47 41 49 4e 5f 41 4c 42 55 4d 5f 47 41 49 4e 3d 2d 34 2e .......REPLAYGAIN_ALBUM_GAIN=-4.
22ea0 34 38 20 64 42 16 00 00 00 54 49 54 4c 45 3d 34 34 30 20 48 7a 20 73 69 6e 65 20 77 61 76 65 0f 48.dB....TITLE=440.Hz.sine.wave.
22ec0 00 00 00 44 41 54 45 3d 32 30 32 33 2d 30 39 2d 30 32 25 00 00 00 52 45 50 4c 41 59 47 41 49 4e ...DATE=2023-09-02%...REPLAYGAIN
22ee0 5f 52 45 46 45 52 45 4e 43 45 5f 4c 4f 55 44 4e 45 53 53 3d 38 39 2e 30 20 64 42 20 00 00 00 52 _REFERENCE_LOUDNESS=89.0.dB....R
22f00 45 50 4c 41 59 47 41 49 4e 5f 41 4c 42 55 4d 5f 50 45 41 4b 3d 30 2e 32 35 30 30 33 30 35 32 20 EPLAYGAIN_ALBUM_PEAK=0.25003052.
22f20 00 00 00 52 45 50 4c 41 59 47 41 49 4e 5f 54 52 41 43 4b 5f 50 45 41 4b 3d 30 2e 32 35 30 30 33 ...REPLAYGAIN_TRACK_PEAK=0.25003
22f40 30 35 32 13 00 00 00 41 52 54 49 53 54 3d 45 4d 4d 53 20 70 72 6f 6a 65 63 74 1a 00 00 00 50 52 052....ARTIST=EMMS.project....PR
22f60 4f 44 55 43 45 52 3d 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 1e 00 00 00 52 45 50 4c ODUCER=Petteri.Hintsanen....REPL
22f80 41 59 47 41 49 4e 5f 54 52 41 43 4b 5f 47 41 49 4e 3d 2d 34 2e 34 38 20 64 42 81 00 1f 90 00 00 AYGAIN_TRACK_GAIN=-4.48.dB......
22fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
230a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
230c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
230e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
231a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
231c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
231e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
232a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
232c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
232e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
233a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
233c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
233e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
234a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
234c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
234e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
235a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
235c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
235e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
236a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
236c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
236e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
237a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
237c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
237e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
238a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
238c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
238e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
239a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
239c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
239e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
240a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
240c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
240e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
241a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
241c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
241e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
242a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
242c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
242e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
243a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
243c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
243e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
244a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
244c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
244e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
245a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
245c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
245e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
246a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
246c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
246e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
247a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
247c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
247e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
248a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
248c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
248e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
249a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
249c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
249e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff f8 c4 08 00 04 4a 00 00 0a d7 14 66 1b 8a 1f 6f 1f ....................J.....f...o.
24f40 9c b4 a5 1f 00 6d a0 4f 11 0f 6a 00 4b 2d 2b fc f4 cd 04 11 b3 25 eb 4e b6 dc 46 36 10 89 52 f3 .....m.O..j.K-+......%.N..F6..R.
24f60 ad af 31 0c 84 33 12 74 77 ea be 24 21 08 42 6c 9f ba ad 3a 22 51 8c 68 64 b6 aa aa ad 6a c2 31 ..1..3.tw..$!.Bl...:"Q.hd....j.1
24f80 0d 89 7c a7 5f 1f 22 10 c4 43 24 dd 55 7f bd 98 98 c6 26 4b 94 ab 0a a8 99 0c 43 21 26 bd d5 ef ..|._."..C$.U.....&K......C!&...
24fa0 54 26 21 84 84 25 ff af 5f f3 63 18 8c 8d 51 5d 6b 97 48 23 61 8c da 6a 2c a5 59 23 09 98 66 d9 T&!..%.._.c...Q]k.H#a..j,.Y#..f.
24fc0 16 bf 2c 59 88 44 10 84 44 a8 55 7f fd 42 62 10 46 4a df ba bd ff 12 88 42 31 12 5e aa aa fb 6c ..,Y.D..D.U..Bb.FJ......B1.^...l
24fe0 c3 1b 11 2e bc f5 5e a5 62 19 0c 86 b7 3b d7 5b a2 10 84 23 12 6a 5f dc ba 68 41 0d 8c d9 1e a9 ......^.b....;.[...#.j_..hA.....
25000 7f 7d 58 8c c6 36 69 d6 39 57 7a 86 cc 62 21 22 ce 7b d6 d2 42 18 84 25 4d 4a fe f2 c2 22 20 43 .}X..6i.9Wz..b!".{..B..%MJ...".C
25020 42 27 b5 d5 56 cc 8c 46 1a 1b 4f d5 69 fe 6a 22 08 86 26 f2 bb c2 aa 6d 88 31 33 12 5e f5 d4 b9 B'..V..F..O.i.j"..&....m.13.^...
25040 92 88 66 63 37 f9 79 57 de 46 46 11 91 09 55 ea f5 56 90 83 09 08 c6 5f 4b df be c8 42 31 04 4a ..fc7.yW.FF...U..V....._K...B1.J
25060 91 eb ba d8 91 06 6c 33 6b 2b fe e5 37 84 12 08 24 26 85 8a ae f1 a9 0c 88 18 97 4d ca 5b 2b 99 ......l3k+..7...$&.........M.[+.
25080 10 62 22 09 72 c2 aa fe 91 30 c6 66 64 f3 97 f5 fd 08 c8 63 13 24 c5 fd 54 a8 99 18 42 21 9b ca .b".r....0.fd......c.$..T...B!..
250a0 bc bf da cc 46 21 04 9a e3 af 7f d2 10 8c c2 36 d9 7a aa c5 90 c8 62 11 0d 75 2f e5 f7 54 63 08 ....F!.........6.z....b..u/..Tc.
250c0 4c 4c 8f 7a 96 2e 88 46 21 0d 93 5e a5 58 f6 21 08 44 31 b4 b1 d6 95 64 64 36 30 84 9a d5 55 55 LL.z...F!..^.X.!.D1....dd60...UU
250e0 9a b1 08 46 41 2e 2e 75 7a 56 4c c2 33 19 34 f5 79 56 ed 0c 42 30 92 34 72 da 7f a4 33 18 88 62 ...FA..uzVL.3.4.yV..B0.4r...3..b
25100 3e 8e a5 fe d6 62 20 84 4c d5 55 57 bc 89 8c c6 61 34 88 77 f0 f2 b3 32 08 46 c9 2f ee f1 d2 22 >....b..L.UW....a4.w...2.F./..."
25120 08 46 22 13 c7 af de cc 8c 63 61 19 2d 9c a5 d5 63 63 09 88 cd 6c 53 df d7 21 10 84 11 12 27 3e .F"......ca.-...cc...lS..!....'>
25140 77 f2 e3 63 18 d9 09 56 3b fa f9 18 88 63 1b 5c c7 2d 55 f1 32 18 c4 42 4d 79 56 d1 73 46 13 10 w..c...V;....c.\.-U.2..BMyV.sF..
25160 cc 92 f5 55 55 91 19 88 62 51 25 5a ea bf e8 42 10 cc 24 c9 df 9e fc ec c6 c4 19 12 31 f2 9d 6a ...UU...bQ%Z...B..$.........1..j
25180 c2 29 84 62 11 b4 f4 b8 55 92 a1 18 c4 36 69 6a a9 63 ca c4 62 09 99 b2 c5 2d eb 75 10 88 62 34 .).b....U....6ij.c..b....-.u..b4
251a0 68 f5 4b 6a c2 41 b0 c8 6a 6c fd 55 f1 66 21 11 84 12 e6 7b 45 f5 e4 62 22 0c 4c 9a 1e d5 7f b4 h.Kj.A..jl.U.f!....{E..b".L.....
251c0 23 18 84 cd 2d 77 7c fe 13 20 c8 24 46 c5 8e eb 3c 86 44 18 d0 c8 b6 3a bd b1 21 84 64 10 8b 37 #...-w|....$F...<.D....:..!.d..7
251e0 2d 2a c9 10 cc 46 21 37 ca f5 45 4b 19 10 21 13 1a 7e f4 fe ce 44 21 91 8d a4 5a aa 79 ac 21 b1 -*...F!7..EK..!..~...D!...Z.y.!.
25200 88 c8 95 7f 75 b5 50 cc c6 66 44 8a f8 ab ec d8 cc c3 34 44 75 85 7f 2d 63 21 84 46 49 7a bd 2f ....u.P..fD.......4Du..-c!.FIz./
25220 a9 0c cc 63 64 d1 55 55 f3 c2 34 18 68 c4 4f de 3a ae db 08 86 63 6d ba aa fa f4 c8 c8 62 09 22 ...cd.UU..4.h.O.:....cm......b."
25240 52 c7 2d 47 cc c4 33 21 ad d0 57 9c b9 11 18 41 31 1a 95 a8 af 9e c6 c2 21 8c 89 2c 52 ad f6 a1 R.-G..3!..W....A1.......!..,R...
25260 90 46 21 1b 7f ea 8b 74 a4 41 90 d0 89 ed 16 af f2 b0 88 44 1b 69 1e ba f9 e1 11 8c 42 35 4a ef .F!....t.A.........D.i......B5J.
25280 39 fb 6d 88 20 91 09 af 55 e5 aa 4a 44 21 88 da c4 3b d5 79 59 90 84 61 ba 6e 78 ef 6d 44 21 88 9.m.....U..JD!...;.yY..a.nx.mD!.
252a0 64 66 8f e3 95 6a 44 61 b1 84 da 2c e5 55 fb 22 11 86 64 44 7b d5 de 7a 46 63 11 09 b5 a5 8e af df...jDa...,.U."..dD{..zFc......
252c0 62 21 08 64 62 6b 0b 54 b2 5c 84 19 18 c8 9d 63 96 73 b2 26 19 06 82 69 ff 57 59 aa 10 c4 33 62 b!.dbk.T.\.....c.s.&...i.WY...3b
252e0 23 f5 ea ab 51 19 0c 21 29 ae 75 78 ef 32 23 18 c8 46 b5 0e f5 fd a8 cc 43 21 19 1f c5 75 5f 19 #...Q..!).ux.2#..F......C!...u_.
25300 a1 84 c4 35 b9 4b e9 e6 88 c4 21 90 9a ca ea 59 e5 46 19 10 66 df 42 96 3f bb 10 84 61 1a 68 f7 ...5.K....!....Y.F..f.B.?...a.h.
25320 8b 3a c1 12 0c 46 21 3e fd 5f bf 69 44 21 04 88 d5 61 5f fb 32 31 18 6c 99 9f f7 ff cc 8c 66 63 .:...F!>._.iD!...a_.21.l......fc
25340 12 4b 0b 4b fd c4 a2 31 88 90 cf e3 9e d7 64 46 21 88 98 8b d7 a9 6f 48 46 36 19 36 d5 4b d7 d9 .K.K...1......dF!.....oHF6.6.K..
25360 90 86 32 31 13 fe bd cb b5 44 10 c8 64 d3 16 b9 6c 58 44 20 88 46 4d 0b 61 ca 91 50 cc 4c 11 36 ..21.....D..d...lXD..FM.a..P.L.6
25380 8f 55 eb c9 90 c4 23 1a 25 ae af 5e e8 c4 21 10 44 9d 38 b6 9f 49 86 46 10 91 35 7a eb 6b 91 90 .U....#.%..^..!.D.8..I.F..5z.k..
253a0 82 11 18 97 fe fd 5f 54 21 10 c6 24 9f c7 77 9d 20 88 c6 09 f1 2f 2f 7e bf 12 31 86 46 c9 23 97 ......_T!..$..w......//~..1.F.#.
253c0 ad 74 84 43 20 8c d2 da fd cb b7 21 30 86 46 da f2 d2 f5 d9 b1 84 46 36 97 15 d6 bb 29 11 0c 32 .t.C.......!0.F.......F6....)..2
253e0 33 7d 54 bd ef a4 6c c3 12 33 57 bd fa aa 22 31 98 c9 89 56 d2 af 92 b1 18 c4 cc 6e ab 55 ff 89 3}T...l..3W..."1...V.......n.U..
25400 90 83 21 36 48 55 a5 f7 e6 43 11 08 36 f2 aa f3 eb b6 31 98 8c c8 b7 f5 2f 93 08 8c 61 11 ac ae ..!6HU...C..6.....1...../...a...
25420 bf af d0 8c c6 33 6c 9d 7a bc 5d 48 c4 31 a9 9b de ef 7f f8 99 86 13 31 22 a3 bb cf e2 31 0c 86 .....3l.z.]H.1.........1"....1..
25440 36 96 3f 2f be b1 11 84 22 34 5d cf eb fc 84 42 19 89 92 7f ca be 5c 8c c2 63 12 59 5d 5f c8 a4 6.?/...."4]....B......\..c.Y]_..
25460 36 10 d9 89 3f 77 bd 7a 34 61 99 89 ae 5a ea 5b 52 33 19 84 4d 98 ab d7 bc ac cc c2 32 21 2a bd 6...?w.z4a...Z.[R3..M.......2!*.
25480 5e f2 56 19 08 46 43 2a fc 72 cf 72 10 88 32 26 96 bb ad 59 99 18 41 1b 22 55 f4 ef ac c4 61 19 ^.V..FC*.r.r..2&...Y..A."U....a.
254a0 9b 26 e7 f5 d6 a5 31 08 42 13 6b 7b aa ff b6 60 88 cc d1 16 a9 6a dd 20 86 42 09 26 43 c2 f2 a5 .&....1.B.k{...`.....j...B.&C...
254c0 a8 62 10 c8 c4 ae c5 7f 4f 19 31 8c cc 46 97 aa f3 eb a1 a0 86 42 6d 3a d7 2d d5 21 0c 66 64 4a .b......O.1..F.......Bm:.-.!.fdJ
254e0 f3 95 fc 9b 10 c4 32 33 5f d5 7b f4 88 81 10 8c 44 9d ff 75 93 91 8c 8c 23 6b 2b f5 79 e3 21 0c ......23_.{.....D..u....#k+.y.!.
25500 44 62 45 9c aa b1 51 33 18 4c 8d a3 c7 2d f2 53 11 88 46 46 59 4a f5 6c c8 44 31 b1 92 fe b4 f6 DbE...Q3.L...-.S..FFYJ.l.D1.....
25520 cd 98 c4 22 63 47 f5 dd 7c 8c 4c 41 b1 b4 9d d5 55 64 64 63 10 8d 92 d5 52 ac b5 b1 04 42 1a a6 ..."cG..|.LA....Uddc....R....B..
25540 55 85 5f 66 82 18 88 4c 6f 5e 16 9e 6a c4 62 0d 10 d1 ff e5 5e 95 08 44 11 91 11 56 f2 ad f9 18 U._f...Lo^..j.b.....^..D...V....
25560 c8 63 34 d9 5e a9 f7 d9 88 26 20 9a 5d ce f3 ac cc 66 66 23 4d cb 7b ac 9c 82 62 10 88 97 72 aa .c4.^....&..]....ff#M.{...b...r.
25580 ff d9 18 82 22 19 3c a5 57 90 54 11 a0 82 12 32 2c e5 7f 7a 53 31 98 c6 91 95 fa f7 a9 18 86 c2 ....".<.W.T....2,..zS1..........
255a0 1a 49 69 7d 3d 4d 88 26 31 92 4b f9 6d 2a 68 c3 62 19 13 2d ea 79 3c 46 31 08 8c d3 fa 55 f4 a8 .Ii}=M.&1.K.m*h.b..-.y<F1....U..
255c0 4c 41 08 c8 9a 72 ad 75 a9 a0 82 32 1a 37 ff bb ac 88 8c 86 11 32 4f 1c f6 fb 10 24 31 09 91 15 LA...r.u...2.7.......2O....$1...
255e0 7b ae 2e 8c cc c2 33 11 51 54 ab fe b8 83 41 08 d1 27 3f fc fb 22 10 86 42 35 ca ab dd 75 84 23 {.....3.QT....A..'?.."..B5...u.#
25600 19 88 4b 6f 75 ff e8 c2 21 18 c8 97 bc 72 f9 63 21 08 64 26 8b 8b cb 6d 88 42 31 84 c9 3c 55 2a ..Kou...!....r.c!.d&...m.B1..<U*
25620 d4 b0 82 63 19 a2 78 a5 8f e3 29 06 6c 21 ab 7b 5c f3 ba 26 31 10 46 4d 3d a7 2c 42 a1 19 06 44 ...c..x...).l!.{\..&1.FM=.,B...D
25640 36 b6 29 7a cb 10 84 66 13 68 85 55 a5 b6 b1 19 0c 21 27 65 52 c2 cb 50 98 41 13 1a 4a 55 8e 54 6.)z...f.h.U.....!'eR..P.A..JU.T
25660 b0 8c 66 23 12 d8 ea f4 f9 2b 21 88 46 6b a2 96 97 ae 4c 86 11 99 1a 47 5f 47 d5 21 10 64 1a 34 ..f#.....+!.Fk....L....G_G.!.d.4
25680 ab 0a b5 fb 64 21 08 46 25 8b cb 5f ae 42 23 08 46 8d 6a 97 af 45 82 11 8c 82 24 b1 5d 55 6c d8 ....d!.F%.._.B#.F.j..E....$.]Ul.
256a0 46 41 0d b6 f0 fd 56 dd 8c c4 63 35 d8 af 5f bd 24 62 0d 04 64 b2 bb f7 fb 46 31 88 cc 9b 77 5e FA....V...c5.._.$b..d....F1...w^
256c0 af 12 b1 08 66 32 4d 4b e9 7d 89 0c 61 1a 19 96 aa d2 af c9 90 c2 36 13 2c 8e fd 7a 4c 41 18 98 ....f2MK.}..a.........6.,..zLA..
256e0 c9 ea de 57 aa d9 08 66 21 36 bf bf e5 9b 31 10 64 22 65 45 77 58 b5 89 44 10 99 b5 94 5b de ec ...W...f!6....1.d"eEwX..D....[..
25700 8c c2 22 10 85 b1 cb 6a d6 c8 63 11 19 a7 ee f7 af 44 66 61 8d 80 62 a0 ff f8 c4 08 01 03 4a 1f .."....j..c......Dfa..b.......J.
25720 6f 1b 8c 14 66 0a d7 00 00 f5 29 b4 a4 ef 0c ec 70 59 91 1f 68 00 65 ac 9b a4 71 85 14 51 08 8b o...f.....).....pY..h.e...q..Q..
25740 d7 96 f2 5b 37 84 30 c1 44 29 4a 4e 92 b2 d6 5d ef 38 85 1c 21 0e ed f4 92 f2 d6 98 cc 30 82 8c ...[7.0.D)JN...].8..!........0..
25760 31 15 5a b2 4b 6b 5b b4 47 18 61 44 11 d5 e9 7b c9 7a 66 d4 c7 08 20 e4 32 21 eb 25 a4 af 6a 9c 1.Z.Kk[.G.aD...{.zf.....2!.%..j.
25780 73 8a 31 ca 8b d2 5e d2 df 1b cc 61 47 18 e4 74 35 6b 2c 95 ec c3 0a 20 e2 08 62 37 7d e7 b5 a9 s.1...^....aG..t5k,.......b7}...
257a0 88 e3 0a 20 a3 b9 18 92 7d 67 93 7b 94 c3 8c 20 a7 75 7f b4 92 da bf ce 51 44 1c 53 11 52 92 5e ........}g.{.....u......QD.S.R.^
257c0 d2 5b f9 88 28 e2 8c 62 32 16 b2 5e 4a fe 71 8c 30 a3 88 46 4f ad e6 b5 6d b5 73 0a 28 c2 19 d3 .[..(..b2..^J.q.0..FO...m.s.(...
257e0 6d 69 af 4a ee 18 c2 8c 71 ca c8 a7 b4 b6 93 ff d4 c3 1c 29 dc ee 6d 92 d2 5e d9 9a 28 83 0c 21 mi.J....q..........)..m..^..(..!
25800 8e 99 4b 5e f2 5b 37 4e 20 83 88 21 99 7e 97 92 7e ef e2 8a 20 e7 1d c8 bd 27 cb 7b 53 7c 87 10 ..K^.[7N...!.~..~........'.{S|..
25820 61 85 2b a2 de 4a de 4b 62 18 c6 18 20 84 2b 13 e9 34 b4 af 6b 18 51 47 10 a4 65 12 f5 bc 96 de a.+..J.Kb.....+..4..k.QG..e.....
25840 a1 8e 28 a1 0e cc af 7b cb 6a ef 7b 8e 20 c2 0e ea af 7b da f6 b6 39 4a 30 c3 1c ee 9b 59 6d 6b ..(....{.j.{......{...9J0....Ymk
25860 d3 36 c2 18 71 8e 23 ae 7c b2 5e df 6a 10 a7 08 31 8e 56 7f a4 d2 d2 dd 8e 61 45 18 43 99 37 af .6..q.#.|.^.j...1.V......aE.C.7.
25880 2c 96 af ed 0a 20 a2 8c 71 17 5a f7 ac f5 cd d2 9c 61 85 14 c8 ab 7b c9 6b d3 38 87 18 51 8e 23 ,.......q.Z......a....{.k.8..Q.#
258a0 27 d2 d7 9a bf dc e6 1c 41 04 15 d3 69 79 2b 79 33 99 c7 18 53 0c 66 df ac 97 92 bf cc 41 47 18 '.......A...iy+y3...S.f......AG.
258c0 e2 bb ad 24 b5 a5 b7 67 18 a3 8c 20 8e cc 49 2f 6b da da 85 14 51 05 14 44 5c 34 97 bc 95 e4 72 ...$...g......I/k....Q..D\4....r
258e0 84 38 c3 19 28 d6 b5 62 57 bf 08 71 05 14 e3 33 35 6d 69 6d f5 e2 10 e1 46 10 c4 2b 5a b6 96 5e .8..(..bW..q...35mim....F..+Z..^
25900 a6 50 c5 18 61 8e 55 52 da d2 49 5e de 29 87 1c c2 08 8a f6 b5 a6 ad 37 4a 71 06 1c 42 bb 92 d5 .P..a.UR..I^.).........7Jq..B...
25920 bc b6 ae 23 0a 28 c2 0c 52 22 56 d7 b4 bf d9 e2 1c 51 c7 21 5d a9 49 ed 6b 53 d4 c2 9c 61 ce cc ...#.(..R"V......Q.!].I.kS...a..
25940 84 bd 65 bd b2 9e 61 4c 10 e3 95 33 6b 69 eb 7e de 21 c5 18 51 4c a8 fd 2c 97 a5 f3 dc e3 0a 28 ..e...aL...3ki.~.!..QL..,......(
25960 c4 2a 6d 6f 25 6d 5f e5 10 73 88 10 ca cd f2 5a 5b 53 f6 e5 10 40 82 9c 8c dd 2d ef 59 3b 18 c2 .*mo%m_..s.....Z[S...@....-.Y;..
25980 0a 10 e7 21 16 94 bc f6 ea f6 9c 41 07 38 c5 64 ea da 6b 5a 9b 47 30 83 0e 2b 3a a5 ef 25 25 a6 ...!.......A.8.d..kZ.G0..+:..%%.
259a0 fa 88 28 a3 0a 62 22 d6 f5 bc d4 c4 a1 45 08 21 c6 74 d2 cd 5a cb 6e ca 98 c3 0c 29 ca cd 4a 49 ..(..b"......E.!.t..Z.n....)..JI
259c0 2d be b9 a6 10 61 05 14 c8 a4 b5 6f 3d 3f 34 a4 08 28 a7 11 93 6d 7b de 4a 62 54 e2 0a 39 c5 64 -....a.....o=?4..(...m{.JbT..9.d
259e0 26 c9 24 96 a7 63 88 61 42 9c cc ed f2 4b 6b 56 98 43 94 20 a2 8a 44 6d bc 92 49 4e cd 10 a3 0c &.$..c.aB....KkV.C....Dm..IN....
25a00 31 8e 88 d6 96 d7 bf ee 9c a3 8a 20 a5 2b ff de 5b 5e 98 cc 20 c1 08 30 aa 8b 25 6b 3d fb b4 a6 1............+..[^.....0..%k=...
25a20 38 41 8c 21 15 6d 7b da f6 ed 51 06 10 41 85 65 4a 49 59 6f 5e cf 10 81 44 1c a2 b6 12 b2 de d6 8A.!.m{...Q..A.eJIYo^...D.......
25a40 a6 79 4a 38 c7 18 8a 9d 69 2f 2d 7f b8 e5 14 61 8e 77 42 7d e4 9a bf 9a c7 14 71 8e 53 27 5a d2 .yJ8....i/-....a.wB}......q.S'Z.
25a60 5e f5 a5 1c c2 8e 28 87 2a 76 de 6b d6 bd 9c 51 c7 28 43 bb 2f da 49 69 7d ea 98 c2 8e 31 ca c8 ^.....(.*v.k...Q.(C./.Ii}....1..
25a80 5b 52 49 6d db c5 10 e2 84 11 d9 cb 6b 4b 7b 53 3d ca 10 61 0e 21 14 bf 69 6b 2f 6e 30 c7 18 41 [RIm........kK{S=..a.!..ik/n0..A
25aa0 8a ec d4 92 b2 4b 5c d7 20 c3 9c 71 55 50 92 56 6a df 7a a5 18 e3 0c 2b aa 16 97 9e bf 5d a1 4a .....K\....qUP.Vj.z....+.....].J
25ac0 38 e6 10 e9 af 59 6d 2d 2b 8c c2 8a 31 c7 76 66 b4 b7 b5 eb 9a 41 04 10 20 86 57 7a cb 5b cb 4c 8....Ym-+...1.vf.....A....Wz.[.L
25ae0 df 18 c2 06 39 48 52 56 b6 89 f7 ec a1 84 10 20 a7 76 6d b4 4a de 96 f7 29 85 18 61 59 d0 b6 ac ....9HRV.........vm.J...)..aY...
25b00 d7 a5 3a 84 14 51 05 18 ae dd f2 4b 7a d7 79 ce 30 e2 1c e6 6e f9 24 b5 eb 88 e7 10 71 46 29 15 ..:..Q.....Kz.y.0...n.$.....qF).
25b20 e9 49 a4 ad f3 14 c1 05 10 51 48 98 5b 5e d2 ff e7 88 71 44 1c 57 44 7b 5e 59 29 d9 86 14 61 05 .I.......QH.[^....qD.WD{^Y)...a.
25b40 14 ae 9f 59 24 92 b4 de 31 85 1c e3 95 93 0f 37 cb 36 e2 d4 e2 0a 38 c4 74 7f bc b2 52 fb ce 61 ...Y$...1......7.6....8.t...R..a
25b60 45 10 73 32 b7 de 59 2b 5e df 38 c7 1c 63 11 90 b6 bc 96 b7 63 b8 c2 0c 39 c8 eb d5 92 5b d6 99 E.s2..Y+^.8..c......c...9....[..
25b80 e5 20 e3 04 20 8e bb 69 2d 69 7b 74 a7 10 71 04 10 89 d4 bc 95 b5 be 8c 71 07 10 63 32 a1 af 25 .......i-i{t..q.........q..c2..%
25ba0 6f 7d d7 10 c2 8c 39 08 e9 25 6d 24 94 a7 21 85 18 51 8e 65 6e bd 65 bd bb 28 c2 8e 28 82 95 d3 o}....9..%m$..!..Q.en.e..(..(...
25bc0 eb 25 e5 b6 fe 98 43 88 10 43 33 6f de 59 2b 5c cb 90 51 85 14 54 4d eb cb 2d 7b f0 85 10 28 86 .%....C..C3o.Y+\..Q..TM..-{...(.
25be0 39 d0 9d 69 ad 6a d7 8a 41 05 1c 63 11 90 b6 92 d2 52 b8 52 94 71 02 1d dd 44 a5 66 96 bd 99 21 9..i.j..A..c.....R.R.q...D.f...!
25c00 c5 14 63 14 ab d6 96 d6 bd 73 4a 61 85 18 e2 32 ed 6f 2d ed 6c 56 30 a2 8e 21 88 8b 6a 49 2d a9 ..c......sJa...2.o-.lV0..!..jI-.
25c20 d8 41 0a 10 63 1c e9 95 bd ad 35 37 14 e2 0a 30 82 15 33 2f 35 eb 6a ea 98 c2 0e 39 8c c9 5e 96 .A..c.....57...0..3/5.j....9..^.
25c40 f7 a5 77 8a 20 83 8a 73 91 76 d7 bd e4 a6 73 1c 61 45 18 ae ad 6a cb 79 3a 98 51 0e 28 c2 94 c9 ..w....s.v....s.aE...j.y:.Q.(...
25c60 85 bc 97 bd 3b 7c e3 08 20 e7 75 42 da 4b 49 5e ea 9c c2 05 14 a5 75 a7 cd 6b da ba a5 38 a3 88 ....;|....uB.KI^......u..k...8..
25c80 21 99 5e 4b 56 5b 53 78 86 18 60 87 23 90 b5 92 b2 c9 fb cc 71 c4 10 41 5d 36 97 92 b7 b5 38 87 !.^KV[Sx..`.#.......q..A]6....8.
25ca0 28 a1 45 33 32 16 f6 96 f5 dc f2 88 30 83 8a e8 8d 79 6f 6b f6 a9 04 08 28 82 15 d2 9d 3c 95 ac (.E32.......0....yok....(....<..
25cc0 9e c4 30 e2 8c 61 59 b2 93 5a d7 ff c2 88 71 86 14 84 4c 12 b2 5a 5f ed 63 88 28 83 94 8e f6 ad ..0..aY..Z....q...L..Z_.c.(.....
25ce0 66 b5 b3 3c e2 0a 28 c7 2a 35 3a 59 af f4 d6 31 c6 18 41 0c cd b5 92 6a 5a d9 52 94 40 c2 b8 a4 f..<..(.*5:Y...1..A....jZ.R.@...
25d00 6f ad a5 bd 6b de e2 0a 28 c2 94 8a f4 bc 92 56 b9 b5 38 e7 14 61 19 32 97 bd ed 5f e7 28 81 0e o...k...(......V..8..a.2..._.(..
25d20 28 8a c8 59 2f 6a c9 5f 72 88 28 c2 08 ee df 79 2f 7a fe 21 85 18 41 44 3b 2f f4 93 49 4f dd 28 (..Y/j._r.(....y/z.!..AD;/..IO.(
25d40 a2 0e 29 cc 65 a5 69 12 92 7e fa 9c 71 4e 38 c9 98 59 2d 24 9d d9 53 1c 61 86 33 2a d6 f6 bd ed ..).e.i..~..qN8..Y-$..S.a.3*....
25d60 fc 52 14 20 c3 10 8c a6 bd ad 3f f6 69 c4 1c c3 88 56 6e b5 a5 bd bb 78 a7 18 61 45 2b 23 5e f6 .R........?.i....Vn....x..aE+#^.
25d80 92 df fe 41 04 14 20 8c 64 69 29 24 b7 ca 6d ca 28 e2 98 42 a2 d2 5b 56 5b 66 38 85 1c 21 c4 22 ...A....di)$..m.(..B..[V[f8..!."
25da0 30 95 b4 97 ae ef 94 51 8e 39 c8 cb f6 bc 96 bd 32 8c 30 a3 0a 2b 95 ba f5 96 f6 a7 54 86 18 61 0......Q.9......2.0..+......T..a
25dc0 4e 62 21 2b 6b cb 6f cd 63 8a 38 c6 15 97 1e 7a 49 2f ee d4 c7 1c 41 45 74 5b 52 f7 9f 77 e8 21 Nb!+k.o.c.8....zI/....AEt[R..w.!
25de0 47 14 72 91 92 b5 92 f7 af e3 10 41 87 10 c5 23 f5 ad 2d ed d9 86 14 51 06 39 88 dd 5b de 5a 57 G.r........A...#..-....Q.9..[.ZW
25e00 b8 c7 28 e1 04 21 11 6b 24 b5 bd 37 08 20 82 8c 39 0c 8d 49 24 a4 92 ea 39 47 10 71 0e ee df 59 ..(..!.k$..7....9..I$...9G.q...Y
25e20 ad 7a 57 9c a2 0e 31 c5 22 ae de 5b de d9 fc 21 ce 14 e7 11 50 df 59 65 af ef 39 c7 14 62 88 ea .zW...1."..[...!....P.Ye..9..b..
25e40 f7 bd a4 b5 3b 0e 51 44 10 21 19 de f4 9a b2 7d 38 c4 38 e1 0c 72 2a fc b7 b5 ef fc 52 18 60 82 ....;.QD.!.....}8.8..r*.....R.`.
25e60 95 c8 97 a4 97 9b ab ac 73 88 30 43 b3 ab 4d 6b cb 4a 52 a7 28 a3 0a 29 59 1f e6 bd eb 6c e7 38 ........s.0C..Mk.JR.(..)Y....l.8
25e80 e2 08 29 99 9a d2 5e f7 a7 69 0e 20 a3 88 76 54 ad a5 b5 eb ba a7 14 61 02 19 99 0d 59 25 bf 5b ..)...^..i....vT.......a....Y%.[
25ea0 18 e7 14 51 84 76 6e f9 a6 a5 6b 8a 61 0e 38 42 18 8b f4 bc d6 b5 37 88 20 e7 10 72 32 2d 26 bc ...Q.vn...k.a.8B......7....r2-&.
25ec0 94 a7 64 85 10 61 85 31 11 ab 59 a4 a5 bf dc c2 8a 28 87 22 21 ed 7b cb 4e d6 39 c7 18 52 08 c4 ..d..a.1..Y......(."!.{.N.9..R..
25ee0 eb 5e 59 2d 99 a5 18 41 86 31 5d 7e d2 49 4b df 4c a2 0e 20 e2 91 94 94 bc 92 5b 69 c5 31 c2 0c .^Y-...A.1]~.IK.L.........[i.1..
25f00 72 95 2b b6 9a 4b 7f e9 4c 29 c7 18 ac 46 bd ad 25 a9 4d 29 84 10 71 4a 64 6e ac f2 5a 9f 9e 63 r.+..K..L)...F..%.M)..qJdn..Z..c
25f20 8a 30 c7 32 25 2b 25 e5 ea 6f 98 41 06 18 e6 66 ca c9 25 eb fb a6 30 a3 0c 73 ba 75 24 96 d7 a7 .0.2%+%..o.A...f..%...0..s.u$...
25f40 7b 9c 51 85 18 84 72 5e 92 de f5 de 63 0a 28 a2 1c 8a ff 49 a5 ad 29 ae e3 8a 39 cc 75 5a 52 6b {.Q...r^....c.(....I..)...9.uZRk
25f60 d6 f5 f6 61 86 14 73 91 d3 ed 79 6d 5f dd 30 a2 0c 31 ca e8 f7 b4 b7 ad 7b dc e3 0c 28 a4 67 59 ...a..s...ym_.0..1......{...(.gY
25f80 ab 69 6d ff 8e 30 c6 14 63 11 1b ef 2d eb 6f e2 38 a1 05 39 c8 eb 5b c9 59 2b bb c2 08 28 a3 1c .im..0..c...-.o.8..9..[.Y+...(..
25fa0 aa 84 92 f7 b4 9b bc 51 8e 30 c2 15 51 6b 35 ef 6d ec 28 c2 08 28 c5 54 7e 96 4b 49 f9 84 39 c2 .......Q.0..Qk5.m.(..(.T~.KI..9.
25fc0 0a 21 48 88 69 64 ad 64 da 29 46 18 53 8c ca 96 92 b6 9a db 86 21 82 8a 21 ca 88 5b 5a 6b d3 b3 .!H.id.d.)F.S........!..!..[Zk..
25fe0 88 30 83 04 33 95 09 7a c9 2d 3a be 20 86 14 50 84 65 cb 5e f7 97 3f 88 71 07 14 e7 2b 75 2d 2c .0..3..z.-:....P.e.^..?.q...+u-,
26000 95 a6 6d 06 39 c2 0c 47 65 ac b6 b5 ef 9a ce 30 e2 98 43 23 7d a4 bc 95 dc 43 8c 71 c5 39 91 7e ..m.9..Ge......0..C#}....C.q.9.~
26020 d6 96 f5 fc f2 94 60 a7 31 88 b4 f9 26 92 9f ba 51 45 10 61 0c cc 4b 56 f2 d6 9d 82 38 c2 8e 73 ......`.1...&...QE.a..KV....8..s
26040 91 1e 95 9a f2 53 17 85 14 41 85 33 3b 52 f2 da d6 ec e3 8a 28 e7 39 5d a9 7b c9 5b f6 31 85 38 .....S...A.3;R......(.9].{.[.1.8
26060 c1 0c 47 4f b4 b5 92 4e c7 61 07 10 61 48 ca f7 92 92 4d ba d6 38 e7 18 63 32 7f de 5b c9 d9 9e ..GO...N.a..aH....M..8..c2..[...
26080 71 45 1c e6 2b 3d be 49 a9 6e e6 38 c7 18 62 95 9a 96 96 d5 97 b1 8e 20 a2 8c 72 aa 16 b2 5e 4a qE..+=.I.n.8..b...........r...^J
260a0 fe 71 8c 28 e3 18 ca a6 a4 b6 bd af 8e 52 8a 10 41 0c cb 82 da d2 5f ff ca 71 07 14 c2 19 69 4b .q.(.........R..A....._..q....iK
260c0 5a 7a f7 e1 4a 28 e2 0c 76 55 ad eb 24 b5 cc 23 9c 30 a7 15 d9 69 5b 4d 5b 76 31 46 14 41 c4 77 Zz..J(..vU..$..#.0...i[M[v1F.A.w
260e0 42 de d2 52 6f c7 71 4c 14 53 1d d2 bd 69 a4 fa f7 18 a3 0a 39 ce c8 d6 a4 93 5b 2b ae 71 84 38 B..Ro.qL.S...i......9.....[+.q.8
26100 e2 32 65 2f 7b df ff 2a 51 45 14 41 9d 17 a4 b4 d5 a5 36 a4 18 63 0c 33 22 35 e5 92 b5 b6 14 a5 .2e/{..*QE.A......6..c.3"5......
26120 14 21 c4 2b 23 de d2 49 5f dd 31 84 1c 63 95 d1 eb 25 e4 b5 37 0a 73 84 14 e7 2a f7 de 66 33 ff .!.+#..I_.1..c...%..7.s...*..f3.
26140 f8 c4 08 02 0a 4a f4 38 ea d6 e3 f5 e0 64 e0 91 e4 75 b4 a5 2e f7 6f 28 30 92 37 65 80 44 31 86 .....J.8.....d...u....o(0.7e.D1.
26160 11 13 57 e7 75 79 a3 04 61 04 25 68 a7 57 2a db 98 43 08 66 64 a5 ee 57 2d 48 cc 31 8c 22 6b d4 ..W.uy..a.%h.W*..C.fd..W-H.1."k.
26180 a5 57 2e 26 61 8c 61 11 a2 d2 9d d5 53 e0 86 63 04 64 bf b9 f9 5f e2 11 88 08 46 cd 4e ae a7 78 .W.&a.a.....S..c.d..._....F.N..x
261a0 94 86 18 c2 21 19 55 d4 ef ff 22 08 c4 0c 6d 32 ab 95 4b 7b 31 98 63 10 d7 ea 1d 79 5f 68 31 84 ....!.U..."...m2..K{1.c....y_h1.
261c0 10 8c 4b d5 4e 5e f7 33 08 61 08 22 5b ca 55 57 f8 8c c2 08 23 26 c5 77 e7 2f 6c 64 10 61 11 93 ..K.N^.3.a."[.UW....#&.w./ld.a..
261e0 d7 39 69 fe 48 20 82 10 84 d7 ba 8a e5 47 46 11 06 20 82 5d f9 d4 ea ba 11 06 10 82 1a 74 2f 39 .9i.H........GF....].........t/9
26200 4b 7f 31 0c c2 08 27 d6 1c a5 78 fa 0c 83 30 46 4a 8e e5 29 6a ec 82 0d 82 09 59 1d d4 ea eb c4 K.1...'...x...0FJ..)j.....Y.....
26220 44 18 62 08 c9 e1 4a aa 5b 62 0c 41 08 62 35 ea e7 75 79 99 86 61 84 64 d5 5c aa aa e8 64 30 82 D.b...J.[b.A.b5..uy..a.d.\...d0.
26240 10 c4 bf ab b9 ea a4 20 82 30 83 24 b0 aa 77 5f 11 18 61 88 83 4f f9 cb d5 f9 31 8c 33 10 c9 69 .........0.$..w_..a..O....1.3..i
26260 5f 94 f2 44 20 c4 30 8c 96 29 4a ae b7 23 30 43 08 8d ab ba b9 7b e2 21 84 31 8c 89 d7 b8 5f d5 _..D..0..)J..#0C.....{.!.1...._.
26280 2b 08 13 06 22 24 75 e3 f7 bf 19 82 30 84 12 7c e5 3f 57 e4 c6 30 c2 10 9b 42 95 df bd cc c3 10 +..."$u.....0..|.?W..0...B......
262a0 83 1a e9 4e 17 15 dc 98 82 08 62 0c cb 29 5c a7 bf 51 98 c2 0c 8c 95 df 9c ab e6 21 90 31 04 8d ...N......b..)\..Q.........!.1..
262c0 3f 39 55 56 b2 10 63 10 86 4a b5 c7 ef f9 29 84 31 86 25 99 4e ea ff e6 43 04 21 11 88 a5 e5 77 ?9UV..c..J....).1.%.N...C.!....w
262e0 75 66 46 18 42 1b 4c ae 57 57 fa 90 46 10 42 36 8f 4a 52 be ca 40 84 31 82 25 d5 45 e7 a5 a8 42 ufF.B.L.WW..F.B6.JR..@.1.%.E...B
26300 18 81 18 c9 69 6b 8a 59 78 8c 61 88 22 12 52 ab 95 fa a2 11 84 18 68 88 87 e2 ab aa ec 62 18 61 ....ik.Yx.a.".R.......h......b.a
26320 11 0d ca aa 75 2f d9 0c 61 08 22 37 ef ce a7 f1 19 06 10 83 35 d5 4a 57 55 e8 44 60 81 93 11 b9 ....u/..a."7........5.JWU.D`....
26340 5d 4a 55 93 18 c4 30 44 69 fb b8 bd 7f 33 20 41 99 0c 9f a9 df 97 c6 c2 10 61 30 9b d5 3b b9 6e ]JU...0Di....3.A.........a0..;.n
26360 88 61 88 21 09 ad e2 ba ba e8 cc 61 84 62 19 7f 77 3a bc 88 63 10 41 18 8a 8e e5 77 2c cd 03 10 .a.!.......a.b..w:..c.A....w,...
26380 83 19 2e 55 3b 96 be 66 30 c6 20 90 95 dd ca af eb 31 0c 31 98 c9 5d 4a a7 7b 38 84 30 c6 63 37 ...U;..f0........1.1..]J.{8.0.c7
263a0 5a e3 f5 3a 64 33 08 31 90 99 ea 94 a5 b7 63 18 46 08 88 45 2f 50 bd 6d 64 20 43 30 c9 7e 71 5d Z..:d3.1......c.F..E/P.md.C0.~q]
263c0 5c a4 4a 30 c6 33 11 23 f1 54 bd 62 63 04 31 08 6d 3b 95 5c b7 e6 31 0c 60 8c 96 ab 94 bc ae 62 \.J0.3.#.T.bc.1.m;.\..1.`......b
263e0 63 0c 62 08 cb 3b 94 ae b2 e1 8c c6 08 c9 b1 5d 4a a7 9d 0c 43 08 43 36 f8 52 bb ac 7c 21 88 20 c.b..;.........]J...C.C6.R..|!..
26400 86 6e ca ea 71 7c f4 43 30 c1 31 22 2b ab 8b e9 70 84 21 02 10 db 7e 57 2b ff 99 04 18 8c 22 33 .n..q|.C0.1"+...p.!...~W+....."3
26420 f5 2b bb ea 8c 21 86 63 21 39 ea 8a eb 62 31 04 30 4c 4c 8a e3 f7 75 d4 62 10 81 0c 4d 57 b8 aa .+...!.c!9...b1.0LL...u.b...MW..
26440 55 89 8c 62 0c 26 c8 aa a5 1d 6d ac 41 0c 36 19 aa e3 95 cb 6b 99 8c 31 08 26 a8 aa 29 56 16 31 U..b.&....m.A.6.....k..1.&..)V.1
26460 18 61 8c 8c 9e 95 dc af 76 32 08 31 98 d1 1f 8a ef ce 88 c8 30 c6 c4 37 f4 55 72 fd 10 82 04 66 .a......v2.1........0..7.Ur....f
26480 1b 74 29 55 dd e4 62 08 41 04 64 d1 4e ee ee b8 48 41 04 33 12 75 a3 97 ba ea 62 18 81 89 33 2b .t)U..b.A.d.N...HA.3.u....b...3+
264a0 b9 5d 56 63 30 86 31 99 2a f7 1e ba ab 10 8c 30 84 62 55 85 29 fa fc 46 30 82 19 9a 7e ee 3f 5b .]Vc0.1.*......0.bU.)..F0...~.?[
264c0 11 84 10 c6 62 4f 4a a5 3a eb 98 c3 18 8c 46 5f ce ea 57 34 42 04 30 84 69 a9 54 52 fb 2a 18 63 ....bOJ.:.....F_..W4B.0.i.TR.*.c
264e0 08 cd 92 b9 d4 a5 9e 10 c4 20 43 33 48 ee 57 2f e9 04 31 88 31 13 ca e7 2f 57 c4 c6 19 86 34 6a ..........C3H.W/..1.1.../W....4j
26500 ea 52 aa fe 44 08 cc 10 4d 32 f1 5d 5e aa 18 84 08 66 33 3f ae 29 55 d2 21 06 10 46 26 4e 55 77 .R..D...M2.]^....f3?.)U.!..F&NUw
26520 16 48 8c 10 84 31 b2 2a a9 cb 4f 32 30 cc 10 86 c9 55 dc ab df 11 08 19 8c 42 48 a7 ae 2f bd 98 .H...1.*..O20....U.......BH../..
26540 86 08 64 43 57 7e 51 56 7d 86 21 8c 22 6d f9 4a a5 5c 9c 43 18 62 13 6a ea 77 75 9d 04 10 c8 30 ..dCW~QV}.!."m.J.\.C.b.j.wu....0
26560 c9 e2 97 9c bf ec c6 18 c4 42 25 72 bf 29 ee cc 41 88 21 89 bf 5e 73 95 22 90 21 0c 21 9b 2e e3 .........B%r.)..A.!..^s.".!.!...
26580 9e 15 79 20 84 18 c2 36 96 0e 55 52 e8 8c 21 84 33 22 72 f7 39 77 ec 42 04 33 18 de 7e 3b fe 7c ..y....6..UR..!.3"r.9w.B.3..~;.|
265a0 44 30 c6 20 9b 23 95 dd df 2a 30 86 19 86 69 7d 14 aa ab 51 8c 63 18 c2 5b 94 7e e7 bf 20 c8 60 D0...#...*0...i}...Q.c..[.~....`
265c0 86 84 ca aa 2a aa aa 21 0c 61 98 d4 95 d4 a7 7f 3b 10 82 0c 43 69 94 aa 52 ff cd 8c 21 86 24 6b ....*..!.a......;...Ci..R...!.$k
265e0 dd ca 5f e6 22 04 30 d8 8d 1d 5c bc f5 51 8c 61 08 31 2e ca 2a 9e f7 82 31 84 10 c8 6a b4 ae a7 .._.".0...\..Q.a.1..*...1...j...
26600 5e 98 82 18 41 b1 12 96 14 e5 78 9c 46 18 c2 21 09 45 5a 51 56 56 42 06 41 0c 48 85 e5 51 56 ce ^...A.....x.F..!.EZQVVB.A.H..QV.
26620 61 0c c2 08 8d 61 54 e5 5f e0 8c c1 8c 46 27 aa ea 3b cf 20 86 31 02 23 4a f4 ea 2d b3 18 c6 30 a....aT._....F'..;...1.#J..-...0
26640 cd 89 d4 aa 75 2d 88 c6 20 84 30 91 ec 1d dd 5d 11 08 63 04 c4 22 fe a7 29 67 44 20 82 30 86 cb ....u-....0....]..c.."..)gD..0..
26660 a0 e2 c5 16 34 31 86 63 09 a7 a7 2b d3 ab 13 18 c3 18 91 2d 2b 8f 7b c2 21 84 19 02 64 bc ae 57 ....41.c...+.......-+.{.!...d..W
26680 5f d0 82 31 82 11 22 75 1d 4b de 66 20 86 31 84 b7 28 fc ae bf 13 18 60 88 84 95 cb dc 7e d1 46 _..1.."u.K.f..1..(.....`.....~.F
266a0 31 84 11 13 58 29 54 ff 2a 08 62 10 21 23 43 c2 94 ff c8 42 0c 41 0c c9 e1 f8 bd 56 a1 18 41 06 1...X)T.*.b.!#C....B.A.....V..A.
266c0 6c d9 4b ce a5 2e 24 60 86 18 8c 88 ee ea 2a af c4 61 08 30 8d 9b 97 94 bc f5 1a 06 61 88 c4 d5 l.K...$`......*..a.0........a...
266e0 79 dd d5 5a 30 c6 30 8c 86 e5 7e 51 6a cc 63 30 c2 11 09 d5 d5 dc 79 12 8c 21 08 63 6c ae aa e7 y..Z0.0...~Qj.c0......y..!.cl...
26700 7d 88 83 18 66 36 cb 8e 2f 77 e9 88 61 90 c2 27 8a a5 71 67 ec 21 08 20 82 46 aa aa 39 77 f4 66 }...f6../w..a..'..qg.!...F..9w.f
26720 18 86 30 8f a1 4e a5 2d 88 c2 30 c2 09 91 1d f8 a5 f5 51 84 c1 02 33 22 72 f3 ba bd 46 21 04 18 ..0..N.-..0.......Q...3"r...F!..
26740 48 6d f9 4f dc b7 21 0c 20 82 63 6f dc ae 5f f9 08 40 8c 66 12 d5 55 39 7b a4 21 04 30 84 66 8e Hm.O..!...co.._..@.f..U9{.!.0.f.
26760 e5 77 72 e3 54 0c 36 10 8c b1 4a 55 52 c4 c2 30 c3 11 19 3a 95 ca 5b 6e 10 66 20 42 49 94 ea 75 .wr.T.6...JUR..0...:..[n.f.BI..u
26780 55 d8 c6 31 06 42 4f dc ea e7 b9 30 84 18 46 cd 9d dc aa ee 8c c8 20 c6 22 37 ae e5 77 fb b0 c6 U..1.BO....0..F........."7..w...
267a0 21 82 12 a5 72 f3 9e 49 04 20 84 10 93 57 2b ba ab a1 9b 06 30 88 8d d4 a5 75 75 c8 41 0c c2 0c !...r..I.....W+.....0....uu.A...
267c0 92 c7 39 7b ac 4c 61 04 23 09 3f e7 75 2a ec cc 31 8c 62 54 ae 52 97 ff 90 62 18 c6 32 78 aa 3d ..9{.La.#.?.u*..1.bT.R...b..2x.=
267e0 2a ab 22 0c 62 04 c4 91 dc aa 75 b3 10 43 08 c2 12 fb ce 2f ef 49 86 10 cc 31 22 ce e3 ba db 90 *.".b.....u..C...../.I...1".....
26800 c3 10 c3 6d a9 5d dc b7 e2 11 02 02 6c 44 e5 72 a9 e3 b3 61 02 19 86 a9 5d dd cb ea 42 08 20 84 ...m.]......lD.r...a....]...B...
26820 43 32 95 fb 8f fe 46 30 83 20 84 47 55 52 9d ee c4 33 0c 21 10 9d ea 9c f5 f6 c4 10 21 90 8d 61 C2....F0...GUR...3.!........!..a
26840 5c ae 5b 66 10 c3 20 44 26 7f ce fc f7 63 18 86 0d 93 67 73 f3 d7 cc c6 10 c2 31 25 75 72 97 ae \.[f...D&....c....gs......1%ur..
26860 cc 62 0c 23 1a ca a3 af 29 da 11 8c 10 4c 66 8b 4e ee eb a2 10 66 10 66 89 dd dd 4e f8 9c 86 10 .b.#....)....Lf.N....f.f...N....
26880 41 34 6e eb c2 af b5 88 41 08 31 b5 67 3a a9 ea e6 61 08 61 88 89 0b 4e 7e fd 2b 08 62 0c 64 9a A4n.....A.1.g:...a.a...N~.+.b.d.
268a0 b9 dd 5d e1 21 86 21 0c 25 b9 ca 52 af 54 62 18 42 0c 6b 2a a9 4e f5 72 19 86 20 8c 97 29 4f ca ..].!.!.%..R.Tb.B.k*.N.r.....)O.
268c0 f3 66 20 c2 10 da 4a 2f 3b bc ad 8c 10 84 1b 69 0a 57 2d 74 a4 31 8c 21 9a 4e ae 52 bd 52 21 18 .f....J/;......i.W-t.1.!.N.R.R!.
268e0 21 8c 89 aa 94 5f cf 31 08 43 08 11 a9 97 9f 9f 9f b2 20 82 10 41 26 aa ea 52 bf 68 43 10 61 09 !...._.1.C...........A&..R.hC.a.
26900 92 f7 57 17 cb 08 31 08 10 98 95 df 8b ca b9 10 86 30 62 66 97 9c ef d7 e4 10 c2 10 42 6d 55 5c ..W...1..........0bf........BmU\
26920 7f 16 99 88 21 88 43 2a 15 ca a7 eb 90 84 31 84 13 4c a5 52 bb dd 4c c3 10 42 12 45 e2 bf 2a e4 ....!.C*......1..L.R..L..B.E..*.
26940 43 0c 41 0c 99 8a fc e2 ce a8 46 10 66 19 89 55 d5 d4 5b f3 19 8c 10 44 4d 5f 94 ef 1f 1b 30 41 C.A.......F.f..U..[....DM_....0A
26960 98 d9 27 3a bb bf 44 66 08 61 18 9d 9c af ce f3 90 d8 c1 06 42 6b 0a 75 72 bb 64 20 cc 10 d9 b3 ..':..Df.a..........Bk.ur.d.....
26980 f5 14 f0 b5 10 c3 30 c2 32 27 52 b9 eb ae 63 30 83 19 13 45 29 d7 8b f3 11 0c 11 8c 6f 94 aa a2 ......0.2'R...c0...E).......o...
269a0 f5 6d 46 08 86 09 1a 3b ba 95 d7 43 30 84 08 c4 45 ab c7 77 8a 84 62 06 23 19 2f 85 14 b5 d5 08 .mF....;...C0...E..w..b.#./.....
269c0 c6 19 84 12 a4 3b d1 4a bb 66 18 c6 30 91 96 95 ca 5e a9 0c c1 8c 43 13 42 ad 14 af 72 41 06 21 .....;.J.f..0....^....C.B...rA.!
269e0 03 6a dc e7 a5 3a a4 41 08 61 84 c8 8e f0 51 63 c8 1c 31 ff f8 c4 08 03 0d 4a e4 fb ec 63 f6 1c .j...:.A.a....Qc..1......J...c..
26a00 01 01 0b c7 15 29 b4 a5 26 fa 6e d0 35 92 0f 66 00 55 d5 56 ae 4c 46 11 99 37 8b 4e b2 f4 42 19 .....)..&.n.5..f.U.V.LF..7.N..B.
26a20 08 c2 48 b9 df af b9 99 88 26 44 dd 56 9d 66 e6 c6 31 19 92 5a fc b7 fc 4c c3 21 04 9d ba bf 5f ..H......&D.V.f..1..Z...L.!...._
26a40 53 90 4c 41 32 6c fd 55 6a d4 36 20 d0 84 de 7e 75 b3 e4 21 88 46 6a 65 55 e7 cf 33 33 19 88 c9 S.LA2l.Uj.6....~u..!.FjeU..33...
26a60 6f a7 ef 7a 42 31 8c 8c 4b ea aa f5 b1 1b 10 22 32 24 fc ab f1 79 99 0c 42 21 24 8e fd 7f d1 0c o..zB1..K......"2$...y..B!$.....
26a80 62 32 09 bc 75 87 7d 29 10 c4 66 36 95 7a 97 fd 1b 10 41 32 12 55 e5 fd f5 64 32 08 46 4e 8f 5d b2..u.})..f6.z....A2.U...d2.FN.]
26aa0 5e dd a1 88 46 34 4b 1d d5 6f b8 84 46 19 92 a5 77 5a fe 26 63 10 8c d1 3f 55 52 a5 88 42 30 48 ^...F4K..o..F...wZ.&c...?UR..B0H
26ac0 cd 96 3d 75 f2 31 10 82 32 36 f5 55 7f 54 64 42 18 8d 1a 2a d7 55 b1 b1 04 21 11 9b fb dc b9 6e ..=u.1..26.U.TdB...*.U...!.....n
26ae0 22 19 06 68 89 4a ab 55 62 32 31 0c cc 91 e7 7e ab 5a 98 8c c6 26 b2 95 57 d5 cc 4c 63 1b 36 8f "..h.J.Ub21....~.Z...&..W..Lc.6.
26b00 d5 55 55 91 18 86 36 6d 3a bf 57 da a1 8c 84 36 6f 17 bd 7f 5b 31 90 43 27 4c ae ab d7 64 81 10 .UU...6m:.W....6o...[1.C'L...d..
26b20 c8 69 2c 72 d5 78 db 10 43 66 25 ff af 2b b6 a4 32 18 cd 1a d7 e5 cf e1 21 98 46 62 6f 56 9f ff .i,r.x..Cf%..+..2.......!.FboV..
26b40 1a 31 88 64 44 cf 7a bb a4 e8 23 13 0c 4b 37 2f 5f e4 83 64 18 99 24 fd d5 7d 68 82 33 18 da a5 .1.dD.z...#..K7/_..d..$..}h.3...
26b60 2a d5 ea d4 84 61 09 19 aa c2 97 2a c4 62 31 98 89 35 ee f7 be 44 62 19 18 8d 57 f7 ef e6 c6 63 *....a.....*.b1..5...Db...W....c
26b80 31 a3 4a b8 7a b5 5a 11 8c 64 22 4b 4b 7b af 68 cc 36 20 99 49 cb fb ca ac 64 62 10 d5 37 2c 57 1.J.z.Z..d"KK{.h.6..I....db..7,W
26ba0 7d 62 19 88 86 6d 3d 55 2f b7 62 10 84 24 6d fa f1 77 f0 88 82 09 88 d6 fe 5a ea 97 19 98 4c 42 }b...m=U/.b..$m..w.......Z....LB
26bc0 2c aa aa f6 f1 22 08 6c 66 9e 29 57 be 99 18 86 21 34 48 57 9c b6 26 41 08 84 34 ab 95 de fa 88 ,....".lf.)W....!4HW..&A..4.....
26be0 84 21 19 92 2e 2f 7e fb 62 61 04 44 35 fe bb bc 54 d0 62 31 0d 53 72 ad 52 b5 a6 33 10 8d 88 b2 .!.../~.ba.D5...T.b1.Sr.R..3....
26c00 95 eb d4 a8 c6 21 19 aa 62 97 fa 54 44 83 08 8c 44 f1 d6 f2 ba 46 64 30 84 c8 9f f7 ff f4 a6 22 .....!..b..TD...D....Fd0......."
26c20 10 48 8d fb d7 75 4f 8d 86 62 36 68 a5 45 2b cc 98 88 20 8d 32 7e ef 0b 63 64 30 84 c6 9b f5 57 .H...uO..b6h.E+.....2~..cd0....W
26c40 eb 1a 61 08 46 64 9e ab af 76 ec c4 c1 09 09 ba de 52 ee 91 8c 64 32 66 ff 97 af b9 31 04 23 11 ..a.Fd...v.......R...d2f....1.#.
26c60 a5 b0 af 8a b8 8d 8c c2 32 6b 29 fb ba 5e c2 11 b0 4d a6 2f 58 2f 25 c6 62 08 cc 96 52 aa d2 b2 ........2k)..^...M./X/%.b...R...
26c80 b6 09 84 22 63 2a fa 57 4f 73 10 d8 63 7c 8a aa f5 fd 22 23 08 46 64 5b 0a bd fe 8c 84 31 31 a4 ..."c*.WOs..c|...."#.Fd[.....11.
26ca0 8a fc bf 4e 84 31 10 86 fb 3a f3 ae aa c6 64 21 08 d7 ce 57 95 69 10 cc c2 1a 5c b5 fb f7 44 64 ...N.1...:....d!...W.i....\...Dd
26cc0 31 08 44 d6 f2 af 7a 97 08 6c c2 26 b1 63 b9 52 6d 84 11 a8 d1 17 bd 7a f1 31 31 8c 68 d2 2f 75 1.D...z..l.&.c.Rm......z.11.h./u
26ce0 5f 22 21 04 36 42 22 fb ca b6 cc cc 62 19 b9 ba fe 57 8b 11 08 cc 33 6d 96 bb d5 f5 93 18 46 63 _"!.6B".....b....W....3m......Fc
26d00 6f 3b fa 2a 9a e3 31 0c 84 49 55 ff 55 99 19 88 c4 36 b3 f2 d2 d5 6a 42 19 88 46 9f ae 1d 6c b9 o;.*..1..IU.U....6....jB..F...l.
26d20 08 11 33 09 67 57 87 8b a9 10 43 21 09 e6 e7 5a aa 91 10 42 61 0d e6 e5 eb ef c8 42 11 8c 9b 62 ..3.gW....C!...Z...Ba......B...b
26d40 aa c2 b9 3c 31 a0 c4 cd af 75 eb fe c8 62 30 8d 1a ab c2 bd 9d 10 cc c3 12 42 29 6d 1e cb 48 6c ...<1....u...b0..........B)m..Hl
26d60 61 11 11 1f bd 75 e8 ac 63 33 10 dd 2a f5 2f aa 48 46 33 09 09 ab c2 d2 fd 50 88 63 21 a4 45 2d a....u..c3..*./.HF3......P.c!.E-
26d80 7a fe 36 33 30 88 89 15 6f 16 e5 a6 62 19 90 89 63 aa d7 b5 31 08 42 33 25 b0 af 6b ed 8c c6 62 z.630...o...b...c...1.B3%..k...b
26da0 22 32 f5 e5 af b9 30 d8 44 13 4f 1f 9f cb 51 0c 42 31 13 5a fd 69 7e 6d 8c 21 92 36 5e fd 69 61 "2....0.D.O...Q.B1.Z.i~m.!.6^.ia
26dc0 11 08 66 32 24 fd 69 5f 74 44 61 99 b3 32 af 52 df 69 30 8c 64 6c 4e 5a bc be 68 64 31 89 89 f4 ..f2$.i_tDa..2.R.i0.dlNZ..hd1...
26de0 75 2d f7 99 10 c6 21 1a 59 df f5 56 88 83 21 18 91 8b 55 5e 2f 44 21 08 46 24 cb 15 fa ad 68 46 u-....!.Y..V..!...U^/D!.F$....hF
26e00 33 0d 31 3b c5 3f be 23 10 98 42 6a ca a5 bd 5c 91 88 46 21 1b cb ca be be cc 42 11 99 9b be 75 3.1;.?.#..Bj...\..F!......B....u
26e20 57 92 63 31 84 46 88 fe 9f f5 ec 88 42 11 9b 27 7f 5d 56 62 46 10 c4 84 d5 7a aa e5 a8 43 21 88 W.c1.F......B..'.]VbF....z...C!.
26e40 d8 8b ea 96 fa a2 64 31 98 8d 2c ef d6 be 64 c2 08 84 27 88 52 d7 5b ab 33 0c 84 42 45 f9 c5 dd ......d1..,...d...'.R.[.3..BE...
26e60 53 08 84 32 11 a2 da 55 ef ab 21 90 6c 44 cb 15 eb af c8 46 63 1b 32 55 aa aa b6 66 21 10 42 46 S..2...U..!.lD.....Fc.2U...f!.BF
26e80 9e ba f7 fa 32 10 c4 c4 6b 5e bb ff b6 66 33 11 92 df 4a eb 3e c4 23 10 84 6f 2a 97 ac f3 10 44 ....2...k^...f3...J.>.#..o*....D
26ea0 20 99 9b 97 29 57 fd 10 c6 62 11 a5 b1 cf 6a f2 26 30 88 44 6a b5 7b df 72 30 8c c6 46 df aa af ....)W...b....j.&0.Dj.{.r0..F...
26ec0 f2 b1 99 90 46 a9 8a bd fa f3 6e 31 08 64 49 6c 3d ef c9 b1 08 41 a9 35 ff bb cb f1 19 88 64 46 ....F.....n1.dIl=....A.5......dF
26ee0 fe 3b af b5 a1 90 c6 64 d1 6f 57 5d e3 31 08 46 6d b1 56 ab fe c8 84 36 10 d2 5a af fb ca 48 21 .;.....d.oW].1.Fm.V....6..Z...H!
26f00 88 84 6c b6 95 7a f3 72 21 86 48 62 3f f0 ff da 88 42 30 88 d3 47 3e 2b c9 33 08 c4 46 24 5e ab ..l..z.r!.Hb?....B0..G>+.3..F$^.
26f20 cb 62 52 19 84 c8 d2 57 7e f2 d4 43 08 8c 42 2d 8a 52 a2 f8 d8 8c 21 32 25 5a aa ab d2 21 99 84 .bR....W~..C..B-.R....!2%Z...!..
26f40 6c 4f d5 7f 2f 24 84 21 89 84 91 50 f4 bd 73 76 31 88 c4 4f a9 5f 17 d4 c8 c1 b3 19 2c 85 2d ef lO../$.!...P..sv1..O._......,.-.
26f60 2b 33 20 c8 cc 8b ff 75 5b 1a 08 66 63 24 b1 69 d6 5b 08 c6 21 19 12 f8 e7 ca 5c c8 84 63 33 64 +3.....u[..fc$.i.[..!.....\..c3d
26f80 5a aa 5f ea 6c 21 90 44 da ad 72 de e4 4c 41 10 84 6c be f2 af df 11 88 62 22 24 5c 7e 58 a9 49 Z._.l!.D..r..LA..l......b"$\~X.I
26fa0 8c 21 33 1b f5 5a 5f 64 64 13 08 8d 19 f3 97 af 89 c4 1b 31 9b 59 0a 5f de 62 68 18 4a 46 97 af .!3..Z_dd..........1.Y._.bh.JF..
26fc0 57 58 94 88 66 31 19 6e a5 7b 5f 12 88 82 13 13 2f 42 9e ff a6 19 b0 46 86 fe 39 6a fb 99 08 36 WX..f1.n.{_...../B.....F..9j...6
26fe0 61 25 9f a9 7d b3 10 c4 c2 32 5d dd 79 6c b8 cc cc 33 54 47 5f cf 3c cc 42 10 8d 9a 72 f5 ef 64 a%..}....2].yl...3TG_.<.B...r..d
27000 61 31 8d 91 af fc af e5 8c 6c 62 0d 34 ab df bd e8 8c 43 21 09 b7 ea ae bf 4c 86 31 b3 12 fa ab a1.......lb.4.....C!.....L.1....
27020 d5 6a 26 63 30 89 9a 3f a5 85 95 10 84 32 09 b5 8a ff bd da 18 86 62 22 54 2f 7e f6 35 62 04 84 .j&c0..?.....2........b"T/~.5b..
27040 42 58 79 4e bf 26 c4 18 88 6b 24 72 fa 5a 48 8c 33 11 8c b3 aa ba cf 1b 10 64 23 24 9e 94 b2 bf BXyN.&...k$r.ZH.3........d#$....
27060 33 23 08 c8 c9 23 bd 7f db 99 0c 43 62 34 5e b4 f6 2a 33 20 86 25 26 ff ba ad a9 48 32 61 8d 64 3#...#.....Cb4^..*3..%&....H2a.d
27080 87 af d7 54 43 31 8d b3 21 5e 15 64 5c c2 21 98 d1 2a 17 96 ff b2 20 84 36 66 f6 f2 bf d6 1b 19 ...TC1..!^.d\.!..*......6f......
270a0 84 62 76 aa ae b1 e9 36 20 c6 84 26 2f 47 16 7e 84 a4 30 c8 d9 22 ad 2d 2e 91 84 46 19 b6 b6 14 .bv....6...&/G.~..0..".-...F....
270c0 ff 2c 8c 43 21 0c 92 67 55 57 db e2 08 46 43 49 14 b7 96 74 6c c6 33 36 d1 5f f5 5d 30 c8 c4 32 .,.C!..gUW...FCI...tl.36._.]0..2
270e0 13 c9 c5 b7 ae 42 21 88 46 c9 1e f7 2c 5c d9 84 36 33 23 a2 ba d7 54 68 c6 32 18 96 c8 57 eb e5 .....B!.F...,\..63#...Th.2...W..
27100 23 19 90 cc 91 6f 52 ff 52 31 88 c6 69 a7 ea 7b 7e 66 41 18 d9 12 3a d7 7b 64 11 18 26 26 4c eb #....oR.R1..i..{~fA...:.{d..&&L.
27120 4b fd a4 cc c2 23 12 c8 e5 c7 f6 52 1b 18 c2 52 5b fa f7 76 8c 88 61 04 b1 22 bd 2f f1 44 63 41 K....#.....R...R[..v..a.."./.DcA
27140 98 99 17 bc 72 da 90 84 21 0c d1 10 bf ba d7 cc c8 41 09 19 a2 f5 ea be 64 32 20 46 84 c5 9c bf ....r...!........A......d2.F....
27160 bc 42 43 30 84 48 95 5f ad 78 88 88 33 10 9a 45 a5 5f ee c4 63 08 8c 89 39 7a d5 74 24 21 88 46 .BC0.H._.x..3..E._..c...9z.t$!.F
27180 cd 1f 1d e2 ac 22 62 08 64 d9 3a f2 f5 b1 33 08 84 66 4c be 9d 6a e9 0c 22 10 88 4a b7 96 1f d2 ....."b.d.:...3..fL..j.."..J....
271a0 42 20 8c 46 69 3a ac 2a cd 98 88 11 b2 25 ae af 85 b9 b1 10 c2 24 4c fd 7b ad 4a 8c 62 11 09 2e B..Fi:.*.....%.......$L.{.J.b...
271c0 52 c5 5f 76 11 98 84 69 25 73 ce bc 99 08 31 19 29 21 ec 17 f9 a9 08 42 33 34 03 d4 ff f8 c4 08 R._v...i%s....1.)!.....B34......
271e0 04 18 4a 15 e7 1c 83 1f bf 1f 3b 1b 05 13 9d b4 a5 07 08 6c a0 5e 10 a7 6b 00 5e 9d cb fa b1 10 ..J.......;........l.^..k.^.....
27200 c4 0c c8 d9 d5 5c a5 56 88 83 08 64 11 10 ab dd dc bb 23 0c 83 08 23 92 72 f3 96 ce cc 21 04 42 .....\.V...d......#...#.r....!.B
27220 09 7d 51 57 95 73 62 08 21 18 89 55 55 c5 b1 d0 c6 31 98 64 4b f9 54 ae ba b6 18 26 10 89 3f 72 .}QW.sb.!..UU....1.dK.T....&..?r
27240 bf eb 98 44 10 63 66 95 68 55 ef 34 31 04 20 88 65 42 aa a9 cb 23 33 10 60 9b 13 1d 61 ca ab 89 ...D.cf.hU.41...eB...#3.`...a...
27260 08 20 84 66 6a bc e5 ee 56 44 21 8c 63 36 45 72 aa 95 6e 63 10 c6 61 13 aa 14 e7 ab e2 18 82 10 ...fj...VD!.c6Er..nc..a.........
27280 c4 69 15 dc b4 ff 1b 30 c3 21 9b 45 75 2b bf 8d 88 21 84 44 c8 aa 75 77 78 4c 42 18 41 36 b7 a8 .i.....0.!.Eu+...!.D..uwxLB.A6..
272a0 58 ee 9a 08 11 0c 23 26 e5 a5 3f fe 90 84 30 c4 c4 65 55 73 aa f8 84 31 8c 23 36 5a aa 2a fa 51 X.....#&..?...0..eUs...1.#6Z.*.Q
272c0 09 8c 10 c8 4b 2f 14 f1 d7 64 10 46 11 84 54 ae 55 3c 7b 44 31 08 20 99 b2 f5 29 57 f8 44 10 82 ....K/...d.F..T.U<{D1.....)W.D..
272e0 10 99 21 d5 54 ef b2 30 86 10 46 8d d5 f9 cb 17 88 c8 40 c4 43 48 ea ae ef f6 c1 0c 43 11 b6 e7 ..!.T..0..F.......@.CH......C...
27300 55 29 6b 2b 08 41 88 41 25 aa ee ef e5 20 8c 41 8c 88 ca 7a a3 bc f3 08 43 08 62 6d d5 78 5b ef U)k+.A.A%......A...z....C.bm.x[.
27320 33 10 41 08 48 c8 77 57 77 ed 19 84 18 84 6d e2 94 bc be 26 30 82 30 98 90 b5 4a 75 96 90 c4 30 3.A.H.wWw.....m....&0.0...Ju...0
27340 8c 44 dd ca 5a e2 e4 46 10 c2 08 91 2f 3a a9 fa b4 23 0c 21 19 b5 7e 52 bd bd 88 62 18 43 44 9d .D..Z..F..../:...#.!..~R...b.CD.
27360 ce a5 85 8c 46 61 86 24 c9 d4 ae 5e b3 32 08 11 98 db 41 e1 5d 5f 23 61 0c 61 11 35 2f 53 9e ee ....Fa.$...^.2....A.]_#a.a.5/S..
27380 44 10 c6 10 91 2b f2 95 4e 89 b0 62 10 c2 36 eb 5c eb 56 a1 88 41 0c 64 4b dd ca fd d3 98 84 10 D....+..N..b..6.\.V..A.dK.......
273a0 35 23 5e a5 55 53 c1 23 04 60 84 c6 ab ca f4 eb c8 c8 c1 04 46 25 b8 72 af 7b 1b 06 32 18 6c 9d 5#^.US.#.`..........F%.r.{..2.l.
273c0 55 c7 ab d2 10 83 08 46 44 45 3a a9 d6 4c 46 30 c6 66 68 fc aa ee e9 a0 c3 31 04 26 9d 4b ca e5 U......FDE:..LF0.fh......1.&.K..
273e0 24 c4 19 86 33 6d fb b9 4b 75 c2 18 46 19 09 63 f3 ab be 4e 21 8c 61 11 a5 ee ee 55 8a 82 31 84 $...3m..Ku..F..c...N!.a....U..1.
27400 21 89 72 ab b8 b6 3b 10 86 19 8c 46 eb 5c ef ef a4 33 0c 23 23 47 aa 2b d7 52 23 30 c6 11 32 77 !.r...;....F.\...3.##G.+.R#0..2w
27420 7e 72 db 11 8c 31 0c 6c 9f 9e 94 b5 73 33 0c 21 10 6f e7 14 af 9f a0 c8 41 04 66 22 af e3 af 5d ~r...1.l....s3.!.o......A.f"...]
27440 b1 84 20 c8 42 3c ae 3d 7f d9 18 41 0c 46 6c b4 aa 55 fe 31 88 63 08 8d 2a f3 9d 7f 8c 8c 18 cc ....B<.=...A.Fl..U.1.c..*.......
27460 c6 f2 0a fc af 62 33 18 11 19 93 fe e7 57 f1 11 82 18 86 26 8a 5f 47 79 e0 98 c3 18 84 93 14 aa .....b3......W.....&._Gy........
27480 55 5b 99 84 61 08 24 91 4a 5e 52 c6 84 11 04 08 4e d7 a9 4a be f2 21 86 21 0c da 3a a9 5d fe 84 U[..a.$.J^R.....N..J..!.!..:.]..
274a0 60 98 61 12 48 55 51 ed 54 36 10 42 10 da 75 77 77 f7 31 08 40 c4 48 4a e7 75 2a ca c6 31 0c 33 `.a.HUQ.T6.B..uww.1.@.HJ.u*..1.3
274c0 4d 9c af ca aa 88 44 18 82 32 25 78 77 55 a9 10 41 04 32 09 23 f7 73 ac dc 42 10 c3 10 96 63 95 M.....D..2%xwU..A.2.#.s..B....c.
274e0 e8 b5 2e 10 c6 11 98 4e f5 d4 aa f4 8d 04 08 c4 12 44 3b aa 8b ea 41 10 c1 0d 88 8a aa a5 2f bd .......N.........D;...A......./.
27500 88 62 18 c3 76 b4 7a ea 5b a1 08 41 86 cc 99 54 ae 79 5d 04 41 04 21 99 32 ba a8 b5 66 c4 18 cc .b..v.z.[..A...T.y].A.!.2...f...
27520 33 44 85 e7 e5 7c 99 84 20 c4 24 4f ca 57 e5 b0 8c 41 88 41 13 ca 57 77 2c d8 86 20 86 33 6b fb 3D...|....$O.W...A.A..Ww,....3k.
27540 94 ab 24 21 90 61 0d b2 71 7a 95 fc 4c 61 0c 41 b3 4a aa 2a f5 f8 99 82 08 44 4b 29 c5 ae 5d 9a ..$!.a..qz..La.A.J.*.....DK)..].
27560 08 10 c8 62 54 73 aa b9 6a 43 10 c2 10 c4 54 87 2a aa ad 36 31 84 21 1b 23 96 94 af 24 c1 04 62 ...bTs..jC....T.*..61.!.#...$..b
27580 0c 89 95 de 8a 59 bb 10 c3 19 0c d5 61 4a ff ae 63 10 46 10 4c ac ee 55 7b 64 20 64 30 cc 9a f7 .....Y......aJ..c.F.L..U{d.d0...
275a0 53 bf f5 90 c2 10 c2 24 bd 78 a5 fe c2 10 41 91 06 cb e9 dc bd 77 31 88 41 98 88 85 ea e7 55 dd S......$.x....A......w1.A.....U.
275c0 04 10 84 31 36 ea a5 75 7d 50 82 18 86 32 48 ae 5e 75 b9 9b 06 10 8c 6f 95 4b c7 b3 e3 10 c2 10 ...16..u}P...2H.^u.....o.K......
275e0 46 9a 9f 95 d5 62 23 10 33 19 91 65 15 d7 bd 84 21 84 10 c9 9a 97 94 a5 b5 21 06 61 06 4c d4 ab F....b#.3..e....!........!.a.L..
27600 ce af 2b 60 8c 41 8d 12 aa 95 5d 55 a1 0c c3 08 48 4f df b8 be 2c 30 84 20 86 c9 ba a9 4f ff 64 ..+`.A....]U....HO...,0......O.d
27620 80 82 33 19 bd 75 3b ad 54 42 10 22 08 44 ec 72 d2 8b 2c 42 30 43 08 84 d5 dd dc be f6 21 0c 20 ..3..u;.TB.".D.r..,B0C.......!..
27640 88 89 1d 54 ae ab 4c 8c 20 86 34 6a bc a2 ad 5b 4c 43 0c c6 24 95 dd cb de 62 20 86 31 8d 6c ae ...T..L...4j...[LC..$....b..1.l.
27660 2b bd b0 88 c3 08 c4 6d d6 8e fd 55 31 08 20 84 42 6b d4 ea eb 7a 08 46 10 62 42 57 ee ee 7d bb +......m...U1...Bk...z.F.bBW..}.
27680 18 62 18 c6 cb 61 c7 8f fb 62 0c 42 10 cd 55 55 c5 a5 99 98 64 10 c4 cc aa ea e7 f3 24 30 63 21 .b...a...b.B..UU....d.......$0c!
276a0 89 2a bb b9 57 48 43 08 21 18 dd 1e 8a eb ca d8 8c 61 0c 66 9b a9 4a f0 b2 31 84 63 18 9a 52 aa .*..WHC.!........a.f..J..1.c..R.
276c0 b9 6c a6 41 0c 21 11 34 3f 29 56 be 22 08 62 0c cd 95 69 45 5f 79 08 c1 08 26 35 bf 8b cf 7c c2 .l.A.!.4?)V.".b...iE_y...&5...|.
276e0 21 84 11 b3 62 af 1d ea f6 66 30 86 21 24 78 e7 2c 5a 98 c6 10 c4 46 8a bc e5 ef d9 18 c2 04 44 !...b....f0.!$x.,Z....F........D
27700 66 55 7e 2f 7d d0 c4 20 c4 43 45 bc e5 e5 db 40 86 18 8c c9 5d 54 ae fe 34 10 c6 61 19 1e ba a8 fU~/}....CE....@....]T..4..a....
27720 af ac 62 30 62 32 13 f7 a5 15 65 e6 11 88 31 91 b7 2f 51 5e 3b 61 90 62 0d 8c b9 78 aa eb f2 21 ..b0b2....e...1../Q^;a.b...x...!
27740 06 11 8d 92 f7 57 2a d8 88 63 08 c3 24 b0 aa ee be 53 18 cc 21 89 2d a7 2a ab c4 c6 19 84 20 9b .....W*..c..$....S..!.-.*.......
27760 c5 75 2b df 08 c4 30 86 64 ca b0 ee 5b 75 10 22 10 22 26 87 ea 2a fb c9 8c 20 8c 42 27 87 57 52 .u+...0.d...[u."."&..*.....B'.WR
27780 ce 4c 21 04 61 93 5b ce 7e af 13 10 c3 31 0c cf 9d 45 ea f1 b2 04 11 88 6d 22 8a 55 fd 61 8d 84 .L!.a.[.~....1...E......m".U.a..
277a0 0d 88 d9 7f 71 57 de 42 18 86 18 89 31 55 5c fe c4 c3 10 c4 11 26 55 2d 15 e2 74 10 46 30 84 9f ....qW.B....1U\......&U-..t.F0..
277c0 29 4b cf 6b 41 88 42 0c 9b 7e 72 aa bc 8c c2 08 64 1b 65 e5 52 ba d4 68 20 46 33 34 dc 55 a7 15 )K.kA.B..~r.....d.e.R..h.F34.U..
277e0 b5 61 04 11 84 9b 2b 94 aa ff 93 08 41 08 46 c8 5e 55 2b cb 4c 66 10 c6 35 ec 72 aa 9e dc c4 61 .a....+.....A.F.^U+.Lf..5.r....a
27800 84 22 12 72 d2 9f ff 48 42 08 62 10 9f 2a 94 aa bb c2 04 32 08 64 b2 9d 68 eb 12 90 86 10 c6 6d .".r...HB.b..*.....2.d..h......m
27820 e2 94 bc b7 b2 18 c2 08 44 6a bd 4a 57 ba 31 8c 63 19 b6 a7 57 39 66 28 84 61 02 22 09 ef 73 af ........Dj.JW.1.c...W9f(.a."..s.
27840 3d 86 c4 30 46 23 22 f5 72 a9 65 46 33 04 21 91 1f 29 54 ab d1 10 86 20 c6 8d 79 7a 8a b3 b6 30 =..0F#".r.eF3.!..)T.......yz...0
27860 86 61 09 ac 51 7b ba a2 b1 86 43 04 4d 22 9c bc ab 2b 18 86 19 99 91 57 b8 ab ef 23 08 63 18 88 .a..Q{....C.M"...+.....W...#.c..
27880 df 9f a9 4a 9d 90 83 08 82 12 5f dc a5 fe b2 18 86 10 4d a5 3d 39 e9 73 66 10 83 09 09 55 68 a7 ...J......_.......M.=9.sf....Uh.
278a0 c7 e4 46 20 42 30 9a 7e e5 52 f9 30 84 61 8c 86 8b 79 cb de b5 61 04 31 10 c4 3f c5 1f ad b8 c4 ..F.B0.~.R.0.a...y...a.1..?.....
278c0 20 86 33 6b 79 cf df f2 22 0c 33 10 d1 15 d5 4a fe a2 31 82 1b 19 b7 7e 53 ff e9 08 43 0c cc 8c ..3ky...".3....J..1....~S...C...
278e0 aa a5 77 ab 10 c6 11 86 22 59 dd 4e f4 a8 8c c6 10 44 42 42 f5 2b aa c4 23 08 33 08 4b 73 b9 e9 ..w....."Y.N.....DBB.+..#.3.Ks..
27900 e4 8c 23 04 21 19 aa d5 1f aa b9 1b 0c 62 08 89 bf 72 bb fe 9b 04 10 c4 23 6f 0f ca e5 d5 b0 86 ..#.!........b...r......#o......
27920 31 06 8c f5 54 5e f7 93 18 22 30 c6 59 78 aa ee f9 a8 86 20 c6 8c 8a a5 2b ff 6a 0c 41 08 36 6d 1...T^..."0.Yx..........+.j.A.6m
27940 f9 54 aa b2 a1 8c 23 08 24 97 94 aa ef 52 98 66 10 c8 c9 7a 9d 54 f5 a9 84 63 08 8d a7 73 d1 56 .T....#.$....R.f...z.T...c...s.V
27960 ea 42 08 21 0c 84 8e bd dd 4f 0c 8c c3 08 64 4d 4e fc af 7c 61 10 41 04 44 97 b9 4a f6 cc 23 0c .B.!.....O....dMN..|a.A.D..J..#.
27980 22 10 4e b8 a5 75 2d c4 44 10 41 91 32 2b 94 be 15 4c 6c 61 04 62 4b 60 e5 aa 5c 88 83 08 43 32 ".N..u-.D.A.2+...Lla.bK`..\...C2
279a0 65 53 f2 bf bb 18 81 10 c4 27 8a ee 55 f7 b1 84 21 0c 64 df bb 9d 5f 5c 41 90 41 08 d1 ec 39 df eS.......'..U...!.d..._\A.A...9.
279c0 f9 8c 42 18 26 46 f7 8a 2d ea e4 22 0c 62 18 88 b8 aa e7 5b 61 90 41 0c c2 6a b8 e7 5e bf 11 0c ..B.&F..-..".b.....[a.A..j..^...
279e0 21 08 24 d5 5c af cf 53 30 c4 10 83 59 21 ca ef 7e a6 30 cc 62 32 2a f7 51 57 a3 66 18 c6 34 44 !.$.\..S0...Y!..~.0.b2*.QW.f..4D
27a00 3a f7 1f fd d8 41 10 62 36 cf 4a 57 5f 53 18 c6 61 19 ae 2a f1 4b b1 48 21 90 33 1b 21 67 15 7b :....A.b6.JW_S..a..*.K.H!.3.!g.{
27a20 f6 8c 61 0c 66 69 7b ba 8b 55 b6 20 c6 10 9a 23 ab 95 df cc c4 20 84 21 b7 42 bb ab fd 48 66 18 ..a.fi{..U.....#.......!.B...Hf.
27a40 c4 24 d0 e5 ee 2d 4b 84 63 04 23 24 f8 a2 f5 75 34 41 04 13 0c 9b af 51 69 f7 22 10 c3 19 89 3c .$...-K.c.#$...u4A.....Qi."....<
27a60 3b ba bf a6 46 10 43 1b 40 49 b1 ff f8 c4 08 05 1f 4a 12 d0 08 ee fd fe f3 4b ea 18 e3 7d b4 a5 ;...F.C.@I.......J.......K...}..
27a80 16 fe 6e 18 48 11 27 6a 80 56 b0 88 60 c4 62 48 aa 72 ab f4 4c 61 04 33 11 3a d2 9d 55 f2 11 04 ..n.H.'j.V..`.bH.r..La.3.:..U...
27aa0 18 64 34 47 75 72 ab c4 62 18 c3 19 92 d5 e7 17 db c8 61 90 41 99 35 77 52 bb c8 c6 61 06 11 19 .d4Gur..b.........a.A.5wR...a...
27ac0 17 94 aa 52 ed 48 11 8c 31 13 47 e7 72 96 e4 c6 18 c4 23 34 75 2b bb fe 8c 62 0c 61 11 2c 2a 9c ...R.H..1.G.r.....#4u+...b.a.,*.
27ae0 b0 f5 08 83 10 c3 34 d7 b9 4f d6 a4 30 c4 20 64 4a 85 52 b9 7e e8 61 18 61 89 12 f7 15 d5 e7 c2 ......4..O..0..dJ.R.~.a.a.......
27b00 10 c2 10 86 47 fc ee 52 ce 8c 61 84 43 08 dc b1 45 2d 7d 10 41 30 43 24 47 a5 29 57 c8 84 08 c2 ....G..R..a.C...E-}.A0C$G.)W....
27b20 18 8d 15 54 ee eb 14 c6 41 04 61 9a 2c 71 7b 96 6c 42 08 31 0c 45 dd 45 75 7f d8 4c 20 cc 21 bf ...T....A.a.,q{.lB.1.E.Eu..L..!.
27b40 ce 2a a9 55 ab 10 43 04 cc d8 b5 45 2f 5b 99 86 21 84 37 cc e3 f7 52 a7 23 0c 41 08 34 96 b8 bc .*.U..C....E/[..!.7...R.#.A.4...
27b60 ab 63 30 82 18 c6 44 bc b4 77 f9 58 8c 30 cc 21 bc aa e2 af 78 44 61 84 31 99 29 61 ce a5 b6 20 .c0...D..w.X.0.!....xDa.1.)a....
27b80 44 20 c2 64 dc ae a5 2c e9 02 31 8c 32 35 9c ea 77 ab 18 cc 30 cc c4 4e 7e e5 16 da 86 61 04 19 D..d...,..1.25..w...0..N~....a..
27ba0 1b 67 e5 3b bc ec 82 10 41 8d 09 57 a8 ea b6 ec 21 84 31 8d be 51 55 ca ed 50 c4 18 c2 26 91 d4 .g.;....A..W....!.1..QU..P...&..
27bc0 ae 5b f3 20 82 18 c4 84 55 77 2a bd 8c c2 10 23 31 11 57 94 aa 5e 4d 04 18 c3 11 12 d5 3a 94 b6 .[......Uw*....#1.W..^M......:..
27be0 64 10 43 08 c4 d6 bb b8 be da c2 08 63 31 92 2f 77 17 d5 86 31 10 30 99 11 69 5c 55 bf b1 84 20 d.C.........c1./w...1.0..i\U....
27c00 cc 62 42 c7 73 af bd 98 c6 10 c4 64 55 a5 1f aa d2 21 8c 21 0c da 3b ab 9d fe c4 43 04 23 1b 6e .bB.s......dU....!.!..;....C.#.n
27c20 2d 71 7a fc 46 20 c3 21 1a 52 b9 5f 97 e3 20 86 10 c4 84 e5 ee 2f ee 98 82 18 82 09 aa 1d d5 c5 -qz.F..!.R._........./..........
27c40 54 f8 42 18 c1 33 13 bd 51 cb 95 70 44 30 83 33 64 55 29 5d fd cc 66 18 42 32 4f ce ea a5 99 08 T.B..3..Q..pD0.3dU)]..f.B2O.....
27c60 31 06 33 42 72 97 95 cb b6 21 88 30 c8 8c bd ce 5a ef 88 82 10 61 18 4a e8 a2 9e 0b 63 63 0c 41 1.3Br....!.0....Z....a.J....cc.A
27c80 90 89 14 bf 8a 74 b5 86 20 82 30 d6 c8 15 54 b6 56 11 04 0c c8 8c a5 7e 73 fd 50 86 10 64 19 27 .....t....0...T.V......~s.P..d.'
27ca0 8e 73 c2 f8 44 10 c2 30 c9 bd 71 e1 d7 a6 62 04 20 84 44 8a 5e 72 ac b9 04 10 c2 13 32 0b d5 ce .s..D..0..q...b...D.^r......2...
27cc0 fe b2 10 82 08 66 db ab 95 d5 ee 43 10 43 08 8d 3f 53 95 ef b8 62 18 66 31 3a e7 14 b4 bd 13 08 .....f.....C.C..?S...b.f1:......
27ce0 20 88 31 2d fc a7 2f f2 30 86 20 c6 da 52 95 ca b6 e4 10 c2 08 46 6b e8 a7 ef 5d 30 c2 11 06 12 ..1-../.0....R.......Fk...]0....
27d00 d9 ce ea e7 69 88 10 42 18 c9 11 c5 ae 2f 9c 88 10 c4 20 cd 7d 72 95 de 5c 83 0c 86 10 df 3f 3a ....i..B...../......}r..\.....?:
27d20 b9 7e 44 20 c2 18 c4 96 3b 94 ab fe 23 08 43 04 6b bd 71 cb 17 e6 31 04 31 8c 97 d5 39 5f d8 cc .~D.....;...#.C.k.q...1.1...9_..
27d40 20 84 10 49 33 97 9c b5 d1 99 02 0d 84 25 b4 a5 e7 5f 10 cc 40 82 32 26 7e e7 3f f7 33 0c 23 0c ...I3........%..._..@.2&~.?.3.#.
27d60 49 2b f1 79 4a da 18 20 88 61 a2 a3 94 aa 5f 22 30 c6 31 88 96 d7 1f 9e fa c2 10 c4 0c d9 31 5f I+.yJ....a...._"0.1...........1_
27d80 b8 ab 76 33 08 11 98 c9 d5 4a 7e ef 99 04 21 8c 23 25 a5 2f 1f ac 44 61 8c 61 12 91 4a ee ee 5c ..v3.....J~...!.#%./..Da.a..J..\
27da0 99 86 20 c4 32 45 82 f2 97 cb 86 33 0c 32 34 aa a2 aa 9e e4 41 0c 21 04 6f d8 e5 2a ba a2 21 88 ....2E.....3.24.....A.!.o..*..!.
27dc0 20 84 86 aa bc 53 fb f2 08 61 04 23 26 e7 52 bb fb 90 42 18 43 11 25 75 71 ef b5 88 61 0c 66 25 .....S...a.#&.R...B.C.%uq...a.f%
27de0 c5 52 b9 6a a4 31 86 31 99 92 95 54 ae 5a 89 88 10 82 11 a6 e5 75 16 ff 06 21 98 31 19 2f 57 53 .R.j.1.1...T.Z.......u...!.1./WS
27e00 bf b8 c8 40 82 11 1b 75 16 94 fd 2a 18 82 10 63 76 bc ea 55 3a 54 31 0c 31 88 dd 14 ea 52 fb d8 ...@...u...*...cv..U:T1.1....R..
27e20 84 20 41 18 97 77 29 55 fe a6 31 86 36 11 3b c2 8a bd f9 a1 8c 36 19 b5 af ce 55 f5 20 c6 33 04 ..A..w)U..1.6.;......6....U...3.
27e40 6d 23 a9 4b fa e3 21 82 11 86 dd 1c aa a2 d7 6c 22 08 61 89 a2 29 d4 ee b6 36 30 83 10 cd 22 f1 m#.K..!........l".a..)...60...".
27e60 5d e9 6e 10 d8 40 c8 cc b3 94 ea ef 10 98 21 02 13 64 ea 2a 9d 7f c4 61 04 20 8c d6 2b 9f 97 ab ].n..@........!..d.*...a....+...
27e80 66 30 c2 31 0d 67 17 b9 56 3b 0c 6c 30 cc 9a c2 9d 55 dd 11 0c 41 04 26 4c ae a5 77 f5 19 02 08 f0.1.g..V;.l0....U...A.&L..w....
27ea0 c4 13 75 bc 2a f3 c6 46 10 c1 10 c9 9d 54 a5 77 91 84 62 0c 63 69 1f b8 fd 7a 32 10 61 18 86 8b ..u.*..F.....T.w..b.ci...z2.a...
27ec0 f8 aa 57 93 20 c2 10 82 22 42 bd 39 ff 8c 8c 30 c8 21 13 f3 c5 1d e5 c4 63 0c 86 34 4e 5a 29 7f ..W....."B.9...0.!......c..4NZ).
27ee0 39 91 98 21 8c 64 b5 4a ae 3d 9d 84 62 08 63 44 f0 57 7a 7b 4d 8c 20 44 13 12 b9 e1 ca 5d 36 10 9..!.d.J.=..b.cD.Wz{M..D.....]6.
27f00 63 08 42 5d 4a 55 2f 58 88 63 18 23 23 4a ea 77 7a a8 42 18 86 19 ab 57 2b f1 7e e8 11 88 31 8d c.B]JU/X.c.##J.wz.B....W+.~...1.
27f20 36 29 69 cf f4 44 10 23 18 44 fa 9d 5c 55 4b 4c 21 88 61 1a 45 e2 a9 e1 62 21 88 20 82 4c d4 ee 6)i..D.#.D..\UKL!.a.E...b!...L..
27f40 ee 5b d9 08 43 06 35 26 e5 72 ab bf 22 61 02 10 86 d9 6b 9d f9 7b 34 18 22 08 66 b6 14 a7 e5 95 .[..C.5&.r.."a....k..{4.".f.....
27f60 90 42 06 c2 12 7a 57 3a a9 60 91 01 0c 43 26 94 fc ee ab 19 08 10 cc 23 68 bd 45 3c 7f 88 c6 30 .B...zW:.`...C&........#h.E<...0
27f80 46 64 dd f8 aa eb 2e 10 43 08 66 c4 e5 55 2b af 44 62 0c 23 19 37 a5 2d 15 6e 84 31 86 32 31 39 Fd......C.f..U+.Db.#.7.-.n.1.219
27fa0 69 dc aa b3 10 82 0c 42 11 2d 73 bf 2f 99 88 61 0c 46 64 72 c2 8f e3 e3 21 02 10 66 a4 82 aa 9c i......B.-s./..a.Fdr....!..f....
27fc0 b5 71 10 c6 18 44 46 ee a5 3a d2 c2 31 04 10 83 6b 2a 9c ef 4a d1 0c 19 98 21 3f c5 2b b9 f2 91 .q...DF..:..1...k*..J....!?.+...
27fe0 10 c1 88 64 33 d8 29 4b de a3 61 01 19 08 6f 4a a5 2b fb cc 82 18 43 13 6f 45 53 ab fc cc 41 8c ...d3.)K..a...oJ.+....C.oES...A.
28000 22 22 55 75 15 7a d6 c2 08 63 11 36 ee 7e 57 f3 10 83 10 41 a6 63 af 39 7b c4 66 10 43 10 9a 75 ""Uu.z...c.6.~W....A.c.9{.f.C..u
28020 72 ba bc ac 21 08 30 d3 11 55 ce fc bd 90 d8 20 44 23 67 85 2b ba fe 42 19 86 10 88 8a b4 e5 2f r...!.0..U......D#g.+..B......./
28040 7c c8 41 0c 31 1a 5b ce 7a 7f 11 08 20 c6 42 22 16 9d 4f 4b 21 18 c6 08 cc 9b ba 95 dc a9 58 84 |.A.1.[.z.....B"..OK!.........X.
28060 18 c6 35 d9 4e ae a2 a6 84 10 46 10 8d 32 95 d4 af 2e 61 0c 21 08 6b 1f 94 aa ea 99 98 41 98 44 ..5.N.....F..2....a.!.k......A.D
28080 6f 5d ce 5a ae c4 41 06 21 08 9e d1 f9 d7 fc 42 10 82 0c 8d ed e1 5f ba 93 33 06 61 18 9d 1d ce o].Z..A.!......B......_..3.a....
280a0 ea a5 43 64 08 21 88 93 2f 39 55 ff 63 11 86 10 4c 93 8b 4a 2a cf 90 c3 19 84 6d 29 55 dd ff 8c ..Cd.!../9U.c...L..J*.....m)U...
280c0 20 8c 60 8d 34 53 a9 de de 62 30 81 10 42 5f d5 4e 7b f3 61 04 19 8c db bc 29 cb 56 26 18 83 10 ..`.4S...b0..B_.N{.a.....).V&...
280e0 4a 25 77 a7 29 65 86 11 8c 30 90 8b 6b 8e af ea 40 8c 21 03 56 b6 94 e7 ab 63 18 cc 18 44 a6 e7 J%w.)e...0..k...@.!.V....c...D..
28100 e5 73 c5 c8 66 18 41 10 97 3b 8b dc f7 63 18 86 08 99 b0 aa ae 7f d4 84 63 04 43 1a 2c 51 55 de .s..f.A..;...c..........c.C.,QU.
28120 f8 61 08 60 88 64 8f 85 77 55 a9 86 21 88 23 13 c7 52 a9 f2 e8 11 06 31 99 19 5e 9c fd 7b 4c 30 .a.`.d..wU..!.#..R.....1..^..{L0
28140 43 30 99 97 b8 b4 eb d2 19 84 18 44 34 9d dd 45 f6 71 0c 36 18 84 4b d5 4e 55 5d 18 83 11 84 34 C0.........D4..E.q.6..K.NU]....4
28160 b9 ca e5 2d 91 08 31 88 23 22 72 bf 29 56 44 31 04 10 44 24 f0 a5 3a fb d0 46 18 46 20 4a ab d4 ...-..1.#"r.)VD1..D$..:..F.F.J..
28180 53 c5 a4 6c 10 62 21 19 6b b9 d5 fd 44 30 c6 63 09 2a d2 94 ea b2 31 08 30 84 42 4e ea a5 3f d7 S..l.b!.k...D0.c.*....1.0.BN..?.
281a0 08 43 08 13 23 2b d7 14 a8 b5 0c c3 18 4c 4d 4f 78 52 cf 50 cc 20 46 21 34 5e 72 bd 5b 98 41 30 .C..#+.......LMOxR.P..F!4^r.[.A0
281c0 61 a4 4a 52 f1 4b 25 21 98 61 08 c9 16 94 a5 5b f3 10 41 08 21 26 aa e5 2b df c8 63 08 c1 19 23 a.JR.K%!.a.....[..A.!&..+..c...#
281e0 15 ca a7 8b 18 84 10 66 31 12 15 e9 cf 63 91 08 20 86 21 25 8e e3 f5 f6 30 c6 20 46 46 ce aa e5 .......f1....c....!%....0..FF...
28200 3d da 0c c1 98 c4 31 65 29 dd 55 51 18 41 84 63 32 3d 3a bb 96 e4 61 88 61 08 9b d3 ba bb f9 88 =.....1e).UQ.A.c2=:...a.a.......
28220 63 0c 43 32 2d 77 71 6a c4 64 18 41 10 c8 b6 0a 57 2d f8 86 61 06 32 35 f4 a2 f3 db 10 42 08 63 c.C2-wqj.d.A....W-..a.25.....B.c
28240 19 3e 2a a8 fe be 64 18 c3 36 31 1d d5 4e 75 9b 20 c4 10 c2 69 15 5c a2 fb 28 c8 31 06 26 44 29 .>*...d..61..Nu.....i.\..(.1.&D)
28260 7b 8b d6 22 08 c3 0c 4c 89 dc f4 57 92 a0 86 08 82 31 3d 7e 77 77 a8 86 63 04 63 34 ae ea e5 7d {.."...L...W.....1=~ww..c.c4...}
28280 20 83 30 c2 21 ad 78 51 4b 6c cc 21 86 61 93 78 57 2b ad f8 82 10 c6 1b 69 1c ee aa b2 88 c6 20 ..0.!.xQKl.!.a.xW+......i.......
282a0 66 44 8b 8a 73 fb eb 18 43 10 42 56 a7 55 39 6f e6 21 0c 21 0c 9b aa 9d 5d 7c 42 10 81 04 66 d1 fD..s...C.BV.U9o.!.!....]|B...f.
282c0 5c bc a7 d3 61 86 63 18 92 c7 2b b9 e4 d8 43 0c c6 12 4a a5 3f ee ac 66 20 c4 10 9b 2f 77 77 f6 \...a.c...+...C...J.?..f..../ww.
282e0 b0 86 61 04 24 68 e5 29 7a ad 21 90 c1 06 84 62 ee 1f ab f9 88 41 88 21 1b 5a ee e7 5b d9 90 41 ..a.$h.)z.!....b.....A.!.Z..[..A
28300 8c 62 4b 1d dc 5f 7e 43 10 63 19 09 e1 d5 d4 ab 72 18 82 18 46 da 15 4a ee ad 7b ff f8 c4 08 06 .bK.._~C.c......r...F..J..{.....
28320 16 4a e3 0c e0 24 e1 02 e5 89 ed 31 f7 12 b4 a4 e7 11 eb c0 63 90 df 68 80 42 19 8c 21 32 ca e2 .J...$.....1........c..h.B..!2..
28340 a9 e5 44 c1 06 63 19 27 5e 77 2d d7 08 c2 08 66 68 bd 4a fc f7 21 90 c2 08 86 b5 69 4a fe 5d 86 ..D..c.'^w-....fh.J..!.....iJ.].
28360 10 84 1b 4b 14 ef 45 e8 98 c2 11 86 44 9c aa fc 5d d1 98 c6 11 88 97 f7 2b f7 89 0c 61 08 32 6b ...K..E.....D...].......+...a.2k
28380 9f 9d dd 66 c8 30 86 32 1a fa a7 e7 5d 50 84 10 6c 21 2d 82 f3 f7 f5 88 43 19 86 4d 1f 95 4f 1e ...f.0.2....]P..l!-.....C..M..O.
283a0 e2 19 04 31 18 9f ab ba ba cc c4 31 8c 43 4c f5 4e 5e b6 20 8c 20 86 26 d7 97 8b de 4c c3 10 c6 ...1.......1.CL.N^.....&....L...
283c0 22 11 d5 54 5e ab 0c 8c 10 c4 23 44 2b f7 77 fb 61 84 21 08 6d 56 a8 af ff 83 23 04 32 19 96 f7 "..T^.....#D+.w.a.!.mV....#.2...
283e0 2b f5 b4 c4 33 08 62 44 a5 e5 29 62 d2 11 8c 33 33 22 f7 53 ab eb 08 21 98 63 64 bc f4 ae b6 b2 +...3.bD..)b...33".S...!.cd.....
28400 18 42 08 c6 9f ab a9 d7 e4 c6 20 c6 34 35 ef cf dd 51 58 63 10 c6 6c 8a f4 a5 5a b8 8c c1 18 c2 .B..........45...QXc..l...Z.....
28420 49 7b b9 ff f1 0c 43 0c c6 c9 e1 4b dc fa 23 19 86 21 9a ea ee e7 5d f1 0c 61 18 46 d1 6b 9c b5 I{....C....K..#..!....]..a.F.k..
28440 75 61 90 c3 32 08 f7 a8 f5 d7 76 10 88 18 4d 1a aa 9d d5 55 99 08 31 04 64 e8 aa 75 52 c8 d8 43 ua..2.....v...M....U..1.d..uR..C
28460 08 84 12 3a d7 29 7d 98 82 31 8c 34 c8 ae a5 77 b6 18 4c 30 86 d9 39 de 94 fa c4 61 8c c2 13 6a ...:.)}..1.4...w..L0..9....a...j
28480 55 ee 2c e9 84 81 04 23 69 94 aa 5a f7 62 18 86 10 dd aa b9 55 4b 50 94 c3 18 86 c4 a5 ee 57 ea U.,....#i..Z.b......UKP.......W.
284a0 ac 64 20 c6 66 68 fc bc eb e4 41 98 43 19 34 ca 2f 77 f6 11 84 21 06 24 95 d5 4e 79 e2 18 82 30 .d..fh....A.C.4./w...!.$..Ny...0
284c0 c8 4d fa b9 4b e4 46 20 c2 31 0d ed e7 77 eb 9b 30 66 21 09 32 95 e0 a5 e8 98 82 18 6c 4c 8f ca .M..K.F..1...w..0f!.2.......lL..
284e0 52 d5 b1 84 61 08 64 32 d5 2b c1 4b 0d cc 41 8c c6 4d e9 d5 d4 e9 a3 18 41 88 cd aa ba b9 7a a2 R...a.d2.+.K..A..M......A.....z.
28500 21 04 61 08 6b 9f 97 95 6e 88 61 0c c6 22 2f aa 3f 2c 9b 08 23 08 23 59 9d 4e 57 bd 31 06 66 18 !.a.k...n.a.."/.?,..#.#Y.NW.1.f.
28520 99 51 dd 5c be c3 61 0c 61 0d da 29 5d 5d e4 83 30 86 31 13 21 5e 9d d6 cc c2 19 84 21 2e 5a 73 .Q.\..a.a..)]]..0.1.!^......!.Zs
28540 f8 7a 4c c3 10 83 26 9f b8 bd 7f 8c 41 18 6c 26 cb 4a fc ef 91 18 83 18 cc d2 f2 a9 df d8 44 33 .zL...&.....A.l&.J............D3
28560 04 41 92 78 a2 f5 3e 4b 83 20 86 22 25 75 57 29 52 d3 18 86 08 89 93 9f b8 aa 8b 44 33 18 23 32 .A.x..>K..."%uW)R..........D3.#2
28580 65 57 77 7f 29 0c c4 10 46 d7 2b 8b 5c bb 23 18 43 10 8d 96 ab 94 b7 cc 63 10 c6 13 32 d5 e1 6a eWw.)...F.+.\.#.C.......c...2..j
285a0 ad 62 10 82 18 cd af ea 3f eb 59 98 41 88 42 25 aa 52 ab fa d4 82 08 81 a2 27 5e 71 d3 97 31 84 .b......?.Y.A.B%.R.......'^q..1.
285c0 33 08 69 af 77 2b df b1 88 41 04 4c d1 ca ae 5a f9 98 82 18 c2 69 15 54 ae ae 99 84 36 08 22 25 3.i.w+...A.L...Z.....i.T....6."%
285e0 7c e2 bc 2c 8c 61 10 62 32 5a ea ee 5b 23 10 c6 21 88 d7 15 79 4f 15 20 d8 63 10 84 ca ff 8a ff |..,.a.b2Z..[#..!...yO...c......
28600 e8 83 10 46 21 11 56 bb 8b 16 63 20 c6 21 89 25 72 bf 2f d1 04 31 8c 82 27 f0 a7 55 f2 31 0c 63 ...F!.V...c..!.%r./..1..'..U.1.c
28620 19 09 eb aa 8a f3 c4 21 84 21 88 97 a0 a5 55 ea 88 6c 30 8c 46 62 c2 f1 7b cb 88 c3 0c 86 84 bd .......!.!....U..l0.Fb..{.......
28640 ca 55 ef 21 88 61 0c 42 6b d7 8a fd 74 41 90 c3 33 34 8e e7 ef 4a 26 21 0c 31 93 37 2a f3 9e c8 .U.!.a.Bk...tA..34...J&!.1.7*...
28660 8c 61 88 63 37 9c a5 ee f7 63 31 84 32 36 bd 4e a5 ab 59 88 40 8c 6c d3 aa 9d 5f ea 43 10 83 13 .a.c7....c1.26.N..Y.@.l..._.C...
28680 24 8a 2b d3 aa 64 21 06 21 a0 91 de b9 df ca 86 31 8c 46 26 7f ca a5 f2 a1 0c 66 19 92 47 57 39 $.+..d!.!.......1.F&......f..GW9
286a0 67 b8 86 31 84 22 4d 4e 5a 7f 55 88 c4 0c d8 4d 1d 5d dd ed 4a 20 cc 63 23 47 ef ca 7f 33 31 84 g..1."MNZ.U....M.]..J..c#G...31.
286c0 31 09 b7 a7 7e 2d d6 08 23 10 23 44 85 55 51 e5 90 44 30 86 46 d7 bb b9 5f 5c c2 10 43 31 13 de 1...~-..#.#D.UQ..D0.F..._\..C1..
286e0 52 af ff 19 84 21 8c 6a 9f 9d d5 4a 89 88 41 03 22 12 78 2b ab af 68 63 10 c3 66 45 5e 55 2f 95 R....!.j...J..A.".x+..hc..fE^U/.
28700 08 63 10 c6 c9 5d 4a e5 8a a8 31 18 c3 1b 6c bc aa 7b e4 61 08 20 88 6d 7f 53 ba da 94 62 10 41 .c...]J...1...l..{.a...m.S...b.A
28720 b4 67 5e e2 f5 a9 8c c6 10 44 45 45 15 5c ab 39 0c 82 06 44 22 2f 75 3a af 8c 84 18 6c 23 6f d4 .g^......DEE.\.9...D"/u:....l#o.
28740 aa a7 bb 10 84 10 c6 69 95 5c ae f7 b2 08 82 0c 4a 44 72 f7 75 78 48 43 18 c2 26 d4 bc aa 79 f6 .......i.\......JDr.uxHC..&...y.
28760 31 8c 61 12 26 77 52 ff e9 08 46 0c 42 12 fa 5e 53 fb 11 06 23 08 64 d6 bb 95 5f c4 66 30 c4 33 1.a.&wR...F.B..^S...#.d..._.f0.3
28780 4d d4 a5 55 7d 19 86 33 0c 91 29 55 dd 5e 34 60 8c 41 09 aa 28 ab 07 fd a8 86 41 02 46 45 ea 55 M..U}..3..)U.^4`.A..(.....A.FE.U
287a0 77 95 98 cc 31 8d a4 a5 77 72 c8 48 c1 88 c3 37 45 57 73 ac d5 8c 62 04 66 d2 ba a9 cb 53 42 0c w...1...wr.H...7EWs...b.f....SB.
287c0 c6 19 a2 52 af 2b df 08 c4 10 c4 22 5a bd 47 5b fb 18 8c 31 99 b7 aa 72 af f4 88 43 08 41 a5 4e ...R.+....."Z.G[...1...r...C.A.N
287e0 5e 72 c5 a4 82 18 86 09 a5 8e 52 ad 2d 64 20 84 21 88 9f e2 9d 55 65 21 90 41 08 84 b5 54 ef ff ^r........R.-d..!....Ue!.A...T..
28800 98 c2 31 02 34 d9 cf d4 eb da 10 83 31 88 c9 79 ff 14 a9 11 90 41 98 82 5b 8e 5e 57 f9 31 04 11 ..1.4.......1..y.....A..[.^W.1..
28820 84 44 a8 52 ba 97 c8 c6 62 0c 22 25 8e a7 53 d4 56 20 c4 21 06 4f 55 54 75 8f 48 66 31 84 23 7b .D.R....b."%..S.V..!.OUTu.Hf1.#{
28840 14 aa 75 e9 90 86 18 cc c9 ea 9d d7 bc cc 61 08 32 11 a2 ab ba 96 d4 84 18 46 32 13 d7 a2 f3 da ..u...........a.2........F2.....
28860 90 43 10 43 36 d8 a2 d5 3b a4 84 10 86 11 11 31 55 ce be dc c3 11 82 36 68 a5 57 e5 ed 10 46 20 .C.C6...;......1U......6h.W...F.
28880 c6 d1 39 d7 9d e6 a8 20 8c 61 1b 67 ee 52 d5 b0 84 31 8c 66 4b 14 ff 8b 64 41 18 81 0c d4 90 eb ..9......a.g.R...1.fK...dA......
288a0 ce 5b 6c 30 84 31 04 4e 9c ea a5 59 68 86 61 0c 46 98 bd d4 aa ed a0 c2 10 83 64 8a a5 52 ff e1 .[l0.1.N...Yh.a.F.........d..R..
288c0 84 61 18 42 69 55 dc b4 b5 8d 0c 60 cd 9b 55 72 f3 fd 32 02 32 0c 6d 25 77 72 f9 31 88 43 04 6d .a.BiU.....`..Ur..2.2.m%wr.1.C.m
288e0 b3 97 a9 d6 c4 43 18 43 31 34 ee 55 2b c9 90 86 10 44 32 5f 0e e5 5b b9 18 62 08 c6 9b aa b8 b5 .....C.C14.U+....D2_..[..b......
28900 66 86 08 cc 21 b2 2d 72 95 7f c8 86 30 84 22 37 77 e5 77 52 46 30 84 10 9b 48 2a ba 96 c4 66 10 f...!.-r....0."7w.wRF0...H*...f.
28920 86 11 27 47 71 7b db 99 84 10 84 13 ea ae 75 5f db 18 c4 10 86 9b d2 a9 fa fc 64 31 04 33 1a ac ..'Gq{........u_..........d1.3..
28940 e2 bf 7c a6 66 30 c6 cc 4e 58 53 bf b3 21 04 10 8c c9 e2 9d 54 ae d9 18 61 18 46 4f 5d dd 4b 6c ..|.f0..NXS..!......T...a.FO].Kl
28960 21 18 61 91 99 1d 55 dd 7f 4c 61 08 20 98 89 5d 4a aa bf 63 10 c3 10 90 ca af ce eb 2c 21 86 21 !.a...U..La....]J..c........,!.!
28980 88 da 3a ba 94 b2 42 08 c4 18 da 6c 72 af 2d 95 86 33 10 66 49 d5 4a ef ea 23 08 33 10 44 b7 bb ..:...B....lr.-..3.fI.J..#.3.D..
289a0 bf 77 66 66 10 c4 11 bd 87 e7 52 cd 98 86 10 cd 09 8e bc a7 8f 10 cc 41 0c 43 58 b4 e7 f0 f5 88 .wff......R............A.CX.....
289c0 c2 10 46 22 42 d2 a9 fa c8 42 18 83 11 11 20 eb 4e 79 e3 19 06 23 18 95 6a b9 55 66 a2 08 43 10 ..F"B....B......Ny...#..j.Uf..C.
289e0 c4 8f 39 ca 5b 65 10 8c 20 cd 12 55 3a bb d9 98 c4 31 98 8c ff 95 54 f3 a2 10 63 18 84 d9 54 bc ..9.[e.....U:....1....T...c...T.
28a00 a5 7c 8c c4 10 82 33 45 ea e7 ef 51 19 86 08 88 44 55 e5 73 f9 51 84 31 8c 44 6a af ce aa b8 99 .|....3E...Q....DU.s.Q.1.Dj.....
28a20 82 19 84 26 b5 df b9 7c 23 61 02 31 9b 22 a9 54 af f5 40 88 61 84 49 35 1d 55 d6 c2 20 86 61 99 ...&...|#a.1.".T..@.a.I5.U....a.
28a40 37 5e e5 7b 7b 18 84 30 46 4e 8b ca 57 b7 a1 08 61 98 86 c5 90 52 ab da 84 66 04 62 23 4e 7e ee 7^.{{..0FN..W...a....R...f.b#N~.
28a60 fe a3 31 86 21 1b 6e aa 75 5f d1 98 42 18 cc 88 eb 54 7e aa 44 82 04 42 09 25 5e 52 bb ee 8c 31 ..1.!.n.u_..B....T~.D..B.%^R...1
28a80 04 43 12 57 55 72 96 6c c3 31 8c 62 45 dc e5 ee b1 b1 84 20 c4 46 ab 5c 5e bf ec 60 84 61 09 b7 .C.WUr.l.1.bE........F.\^..`.a..
28aa0 e7 3c 52 c4 a3 19 84 19 23 75 7e 2f 79 33 0c 66 20 db dc 72 bb ad e8 42 18 22 10 4b 7a 97 8f ec .<R.....#u~/y3.f...r...B.".Kz...
28ac0 a6 19 10 10 91 25 2f 3b aa ed 8c 21 06 64 32 da 71 63 be cd 86 19 88 24 f2 1c fd 5e e2 20 cc 63 .....%/;...!.d2.qc.....$...^...c
28ae0 1a 11 57 94 f9 4e 84 22 08 61 8d 72 72 94 bd 5f 32 08 c4 08 68 d8 ab c5 3c af 06 32 10 40 95 25 ..W..N.".a.rr.._2...h...<..2.@.%
28b00 2f 3d 2f 52 22 0c 42 08 24 bf f2 9d 6d 82 63 0c 66 13 76 72 d2 8b 2c 44 11 86 32 12 75 a5 2b f9 /=/R".B.$...m.c.f.vr..,D..2.u.+.
28b20 61 04 61 8c cc 95 f9 5d 5d 62 32 08 31 10 89 57 94 58 a7 cc 8c 63 08 64 89 d5 dd df d4 46 10 c1 a.a....]]b2.1..W.X...c.d.....F..
28b40 10 8d ef 52 a8 be 6c c6 18 82 34 27 75 e7 55 f1 08 62 18 46 6d 7a 94 bd fc 48 10 86 20 99 96 ab ...R..l...4'u.U..b.Fmz...H......
28b60 95 d7 d4 c2 0c 82 08 d5 2b 95 4f fd 8c 32 18 61 32 23 d7 2a ba a2 b1 8c c1 18 84 ee 8e 29 6a f8 ........+.O..2.a2#.*.........)j.
28b80 c8 30 8c 41 12 47 ee 57 be 36 10 c2 31 89 3f ea 52 d5 a8 5c 47 ff f8 c4 08 07 11 4a f8 0b 03 03 .0.A.G.W.6..1.?.R..\G......J....
28ba0 0d a0 16 a1 1c f4 1f db b4 a5 2e ff ed 50 57 10 cf 6a 80 6c 9a f5 a5 24 b6 66 b9 c4 38 85 39 1f .............PW..j.l...$.f..8.9.
28bc0 3a 49 3a b5 c6 52 8a 71 0e 56 54 f9 69 6a 5b 12 84 38 82 18 c5 5c 6b da d5 a7 65 4a 41 06 31 88 :I:..R.q.VT.ij[..8...\k...eJA.1.
28be0 89 ff 6a c9 d9 de 53 0a 73 9c 88 c4 a5 2f 6f dc cb 1c e5 14 a7 45 7a d6 b6 af 6d 10 e6 14 e2 3b ..j...S.s..../o......Ez...m....;
28c00 b1 3a f4 b5 29 89 e7 28 82 08 46 54 f9 29 7a d7 11 4c 61 44 20 ae ab f6 a5 fe 4c e4 a0 c5 10 42 .:..)..(..FT.)z..LaD......L....B
28c20 b9 56 b4 a5 6d 6e c6 21 44 14 e4 31 1f f6 f6 a5 bb 56 a6 10 c2 94 85 6d fb 5a d4 af 2d 48 71 45 .V..mn.!D..1.....V.....m.Z..-HqE
28c40 20 8a cd 6a f4 f4 dd ea 90 62 88 73 11 1b 6d 6b 7c 9c 99 61 d8 61 0c e9 af 49 2b 4a fe d0 c7 31 ...j.....b.s..mk|..a.a...I+J...1
28c60 ce 62 aa 12 95 ad ff f1 dc a7 1c e6 77 4c a4 96 fa d7 3d c8 71 44 29 88 9f d5 bd 7e b9 86 29 8e .b..........wL....=.qD)....~..).
28c80 31 4c 56 dc b4 b4 a5 2b e4 21 06 14 42 3a a7 52 f6 af f6 f9 44 39 c4 3b 23 12 b6 ad bf fb ca 63 1LV....+.!..B:.R....D9.;#......c
28ca0 9c 52 b9 10 96 fa de df 8c c7 31 c6 33 99 69 95 96 bd 4d c2 08 61 0e 2b 91 56 dd 7b 5b bb 90 c2 .R........1.3.i...M..a.+.V.{[...
28cc0 0a 63 08 e8 dd 6a df ed bc ae 30 87 29 ca ab d4 92 94 b7 fa 10 e7 38 ee 46 56 bd 69 7b 62 e1 8c .c...j....0.).........8.FV.i{b..
28ce0 71 88 71 11 32 b6 ac 9b fd ae 61 0e 61 0a cc f5 fb d6 b4 cd 63 98 c3 1c 8e ef f5 f9 69 fb 9c 61 q.q.2.....a.a.......c.......i..a
28d00 04 30 a4 22 29 a9 6a cb bb 8a 53 98 63 94 8e 94 a5 2f 5a ef 50 a4 14 52 9c e9 8b 4a c9 5f a6 7b .0.").j...S.c..../Z.P..R...J._.{
28d20 18 43 0a 62 b2 25 a9 59 2d 8b b4 30 82 1c c5 22 3f d2 d7 b6 ff 20 ae 20 a2 ba bb 1e fb 59 29 9c .C.b.%.Y-..0..."?............Y).
28d40 84 18 52 08 2b a6 35 64 a5 69 4e 52 98 e2 08 42 15 a9 d4 bd ad da ca 71 4a 29 c8 e9 fd 59 2d d4 ..R.+.5d.iNR...B.......qJ)...Y-.
28d60 dd 33 88 28 85 21 51 6b f7 a5 bf 7d 04 30 82 18 87 4f ea 49 4b 7e 35 0e 43 8c 21 18 8b d6 ad ab .3.(.!Qk...}.0...O.IK~5.C.!.....
28d80 4d df 31 84 14 a7 22 ae d6 b7 a5 29 85 62 8a 29 4e 56 4f a5 2f 27 6f 6b 88 21 45 11 d1 90 4b 52 M.1..."....).b.)NVO./'ok.!E...KR
28da0 b7 ed e6 30 82 18 e5 22 6f de f5 fa 6e 54 a7 28 e6 29 11 1a d2 f5 6d 9a ce 28 87 39 9d d6 94 bd ...0..."o...nT.(.)....m..(.9....
28dc0 6b 4f d4 b9 ca 28 a4 77 5d ad 24 b7 53 3c a5 30 82 9c aa 99 4a de 9f 7c 72 14 e3 18 c5 22 e5 2f kO...(.w].$.S<.0....J..|r...."./
28de0 4a 49 fa 9e 51 44 10 82 ba e3 5e b4 bd 37 90 e7 39 85 33 a2 ed ab 25 3f b3 ca 61 8c 73 15 57 ab JI..QD....^..7..9.3...%?..a.s.W.
28e00 5b d2 bb bc 43 9c e2 95 ca b4 fa de d4 fd 47 10 c7 14 e4 22 7f fc dd 6e fe 21 c8 30 86 2b aa d7 [...C.........G...."...n.!.0.+..
28e20 eb 25 70 9c c5 38 a2 18 a4 67 fa da 92 53 17 ca 51 84 31 4c 89 f4 92 94 b7 fa a8 82 98 e2 11 53 .%p..8...g...S..Q.1L...........S
28e40 ba 4a da 94 d7 63 08 21 c8 77 5e a5 a9 7a e6 e5 4c 29 cc 71 15 3f 24 ad 6f d9 aa 20 87 30 a4 22 .J...c.!.w^..z..L).q.?$.o....0."
28e60 bd 29 49 2b 4c 46 20 87 10 43 31 1e 9d 59 2b dd be 51 48 28 86 77 5e a4 96 a7 57 68 41 0e 73 9c .)I+LF...C1..Y+..QH(.w^...WhA.s.
28e80 8c 8d 6b f4 95 fc 52 14 c3 08 67 2a 13 ab 6b d3 3b 08 63 88 71 5d d5 ba d2 75 bf f8 ae 41 46 73 ..k...R...g*..k.;.c.q]...u...AFs
28ea0 ba b7 5a d5 ad 73 3c e5 38 a7 33 b2 fd 2f 5a d2 9c a6 71 c5 31 88 ef b4 b5 fe db ba 41 48 28 86 ..Z..s<.8.3../Z...q.1.......AH(.
28ec0 2a a2 1e 97 a5 72 9a 63 14 43 88 ea e9 7b 56 b5 fe d2 1c a6 18 ee 56 27 fd eb 6e fc 2b 0a 20 86 *....r.c.C...{V.......V'..n.+...
28ee0 11 55 8b 5a da dd db 47 38 c6 31 ca a9 4f 93 ef 5d e4 71 47 73 0a 65 c5 a5 ab 7f de d2 08 21 8a .U.Z...G8.1..O..].qGs.e.......!.
28f00 31 51 12 f4 ad ad db ce 41 45 31 8c 44 cb 52 97 ae d3 d8 c4 18 53 95 99 b2 f7 a5 29 f8 43 18 c2 1Q......AE1.D.R......S.....).C..
28f20 08 57 23 57 be 49 37 73 0c 61 05 39 0a ed 96 b5 a9 6a 6b 94 87 14 53 10 8f b4 fb c9 5c 5c a9 85 .W#W.I7s.a.9.....jk...S.....\\..
28f40 39 84 32 b3 5f fe 4b 6f 61 0e 53 0c 72 3b 25 2d 5b 56 99 9e 52 8a 21 cc 44 d6 97 eb 7f dc 62 98 9.2._.Koa.S.r;%-[V..R.!.D.....b.
28f60 51 4a 72 2a 75 af f5 bf 6b 10 a2 08 29 9d 93 69 6b 56 fb 9e e7 28 82 08 ee ad 5a d6 4f af 27 94 QJr*u...k...)..ikV...(....Z.O.'.
28f80 41 4c 73 3a 6d 2d f7 af ee 90 87 14 c7 3a a2 52 b4 bd 7f b5 48 28 c5 39 d8 88 5b ed ef fb be 52 ALs:m-.......:.R....H(.9..[....R
28fa0 0e 21 c8 74 c5 a5 eb 6a ee 69 4c 21 86 31 1d 3f ad 6b ff e6 b1 c4 39 84 2b 2b 7d ed 4a 53 fc 84 .!.t...j.iL!.1.?.k....9.++}.JS..
28fc0 38 a2 98 ae c8 7a d2 d6 fe c2 14 82 0c 62 91 52 9f 59 69 fd 8c 41 0c 31 ca 47 4a 52 b5 b5 b7 38 8....z.......b.R.Yi..A.1.GJR...8
28fe0 86 18 c2 14 aa af 4a d6 d5 dc d7 10 83 1c c5 74 fc 92 d4 ad 31 2a 72 88 21 ca eb a6 a5 ab 6f fa ......J........t....1*r.!.....o.
29000 29 04 30 a6 3b 33 75 ab 7a ef 75 0e 63 08 21 5d 90 b5 ad ab ff 9e 43 9c 53 94 ae bd 5a da d4 ec ).0.;3u.z.u.c.!]......C.S...Z...
29020 d2 94 51 4e e2 32 3d 6d f2 53 f3 08 21 8c 31 dd 99 6b 6b 75 6f 9a 43 94 a3 9c 8e c9 5f bd a9 fd ..QN.2=m.S..!.1..kkuo.C....._...
29040 ac 73 0a 61 4e cb cd 6b 49 4e fc f2 98 63 90 52 a2 75 29 7a d7 7a ac 21 ce 21 ca 8a b5 b5 69 6e .s.aN..kIN...c.R.u)z.z.!.!....in
29060 c4 a9 cc 71 8a 46 57 a5 6b 25 71 7a c7 31 c4 29 dd 3f ab 7a 5f f1 3c c6 10 43 18 8a b6 eb 5a fb ...q.FW.k%qz.1.).?.z_.<..C....Z.
29080 f9 42 98 e2 0c 47 46 25 6d 6e af 66 90 41 4e 63 9d 31 fa f7 a7 53 34 82 98 c2 0c 44 4c eb da 94 .B...GF%mn.f.ANc.1...S4....DL...
290a0 ae 32 8a 23 8c 2b a3 36 de f5 fa e6 10 83 18 43 99 d3 76 92 52 df bc ec 20 a2 18 85 65 ae c9 5b .2.#.+.6.......C..v.R.......e..[
290c0 ee ef 1d c6 38 a4 23 36 d2 d2 52 bd 88 41 88 70 85 52 a1 69 f2 57 e9 9e c7 30 87 14 a9 a9 5b 5b ....8.#6..R..A.p.R.i.W...0....[[
290e0 ed 4d e7 31 45 1c a4 76 6e 92 97 fb 62 50 87 10 43 18 8a df 5a de 94 dd a1 04 10 c6 10 a9 94 fb .M.1E..vn...bP..C...Z...........
29100 5a f4 ee 56 10 43 88 67 64 7f b5 af ff a8 42 8a 29 8c 62 2d 7b a6 b7 53 78 86 38 87 11 88 af d7 Z..V.C.gd.....B.).b-{..Sx.8.....
29120 b7 d2 f9 ea 73 08 71 5c cb 8f 6a d6 b6 c5 a9 4e 61 8c 62 2a f5 6b 7a db 9b 4e 72 88 21 ca 8b bd ....s.q\..j....Na.b*.kz..Nr.!...
29140 79 29 4e ca 28 82 08 61 0a ef b5 fb de 99 b8 43 14 73 08 c5 47 af 4b 5e fa 71 8a 71 04 31 dd 1f y)N.(..a.......C.s..G.K^.q.q.1..
29160 ab 6b db 7b 2a 62 8c 41 4c ca 94 a5 25 af 67 79 8e 51 8c 52 b3 f7 c9 d6 af 6a 98 c6 14 e7 2a 66 .k.{*b.AL...%.gy.Q.R.....j....*f
29180 f4 b6 fa d7 95 ca 31 8e 73 26 b5 6d f7 bf 62 10 c7 38 c7 57 76 b5 be d5 ae 69 5c 51 0a 21 d9 1b ......1.s&.m..b..8.Wv....i\Q.!..
291a0 eb 5b d6 9b 8c 61 0e 21 cc 45 4f b5 29 7b fa f3 88 20 a5 31 59 7a b5 bd 2b d9 ee 73 88 71 1d 57 .[...a.!.EO.){.....1Yz..+..s.q.W
291c0 2d 4b d6 9f 9e e4 10 62 1c ca 99 f6 96 9d df 97 29 45 1d cc 44 7e a4 97 eb 6e b1 07 20 a7 33 32 -K.....b........)E..D~...n....32
291e0 52 d6 a5 ad 88 a6 30 86 14 a4 44 fa d2 4a ff 66 94 e2 9c c7 33 13 2b 5b 52 d4 d2 31 06 30 82 11 R.....0...D..J.f....3.+[R..1.0..
29200 33 09 6b 5f fb 78 aa 38 ce 21 d9 37 eb 7a 5f b7 08 53 1c 21 5c c8 fd 5a de db d9 53 10 51 0e 53 3.k_.x.8.!.7.z_..S.!\..Z...S.Q.S
29220 26 d3 af 7b 75 39 5c e2 1c e2 a2 b9 2f f6 b5 7b 3c 85 10 53 94 ae bd d7 93 af b8 c8 71 84 29 ce &..{u9\...../..{<..S........q.).
29240 a8 f9 2d 2d 4a e2 10 43 98 51 0a ce 4d b5 24 eb 67 31 8c 71 4e 67 4c ea da d5 b6 27 18 a7 14 42 ..--J..C.Q..M.$.g1.qNgL....'...B
29260 15 53 ad 7e 92 9b 8c 52 88 28 84 3a 66 f5 ed 27 6f f9 8a 71 44 31 55 37 eb 7b 57 77 58 52 88 20 .S.~...R.(.:f..'o..qD1U7.{WwXR..
29280 8c 65 ed b4 9f 6a 62 79 8e 71 8c 52 23 75 a9 25 3f 73 8c 20 86 10 c6 5c db 5a 96 a6 ef 98 c2 0a .e...jby.q.R#u.%?s.....\.Z......
292a0 53 19 17 fe d5 b5 bb 96 82 08 71 0c 42 27 d6 96 a5 69 a8 42 8a 73 9c 8c ad 5a da df 5c d2 b8 82 S.........q.B'...i.B.s...Z..\...
292c0 0a 51 15 11 ef 5b 5b f7 08 62 0a 39 0c 54 dc b5 e9 5a 56 8e a2 0e 53 08 46 6f a5 af 4f ef f3 98 .Q...[[..b.9.T...ZV...S.Fo..O...
292e0 a3 1c ee e8 4a 52 d7 ff c7 63 0a 63 8a ea 8d 4a 5a 4f ec d7 20 a2 98 e5 74 6a 7c 96 a7 7e 94 82 ....JR...c.c...JZO......tj|..~..
29300 0a 21 04 2a fe 1a d7 a5 37 08 41 0a 28 ce 45 4f a5 ad 6f dc d3 9c e2 1c ce e8 4a d2 f5 af 67 b9 .!.*....7.A.(.EO..o.......J...g.
29320 ce 71 8a ee 9d f5 9b ab bd cc 28 86 30 86 54 ca da b4 ad 73 88 41 05 30 a4 74 43 5a b5 a5 7f c8 .q........(.0.T....s.A.0.tCZ....
29340 e6 1c 82 99 95 3e b6 a4 94 cc 73 10 e1 0c e5 65 fa d6 b5 b6 2f 90 e6 10 42 95 11 2d 6a 49 ff de .....>....s....e..../...B..-jI..
29360 23 1c 61 48 55 67 fb 5a db 5e f3 10 e7 1c 85 57 5b 5b ed 7f cd 73 08 51 4c 23 2e 3d 24 a5 fb 72 #.aHUg.Z.^.....W[[...s.QL#.=$..r
29380 8e 20 a6 31 dd 13 eb 5b 56 db ac 41 0e 71 0a 65 6d a5 af 4a f6 2b 98 73 94 42 aa ef c9 5a 56 9a ...1...[V..A.q.em..J.+.s.B...ZV.
293a0 ce 41 44 31 8e a8 d4 ad ab 6c ed 61 0c 71 04 2b 3b d3 e9 25 f3 f9 4a 61 cc 72 11 9a 94 a4 b5 ec .AD1.....l.a.q.+;..%..Ja.r......
293c0 dd 10 c7 10 47 33 2d be 96 bf ee 71 8c 61 4e 72 2a 25 e4 a5 2b dd 42 18 e2 0a e6 74 2e d2 d2 57 ....G3-....q.aNr*%..+.B....t...W
293e0 3b 48 21 4e 20 84 74 ca d6 b6 b7 76 b9 46 39 06 32 b2 d2 96 b5 29 d8 56 38 c2 10 e5 44 fa d6 d5 ;H!N..t....v.F9.2....).V8...D...
29400 b6 eb 10 e2 8a 62 95 54 96 ad 2b 6d da 14 c4 18 63 32 b3 52 f6 b7 fe 69 88 73 8a 33 32 2e c9 6b .....b.T..+m....c2.R...i.s.32..k
29420 53 f7 0a 63 1c 53 95 99 be b5 93 eb 99 42 08 51 84 23 3b 7d 6d 6f b7 eb 90 e7 10 42 91 52 9f 6b S..c.S.......B.Q.#;}mo.....B.R.k
29440 5b fb 12 42 98 73 10 ae bd f6 bd 7a b8 c5 28 82 18 e6 54 ef ad 24 a7 ef 11 c6 15 c5 3b 2e 16 b4 [..B.s.....z..(...T..$......;...
29460 96 b9 db 72 94 41 48 72 b6 75 6f 5a d3 79 9c 41 4c 73 ba 6b d6 f5 af 53 2a e6 14 52 98 ae f4 c1 ...r.AHr.uoZ.y.ALs.k...S*..R....
29480 6b 6a 6e 69 4e 71 0c 23 91 bb eb 7b 57 71 ae 53 0a 2b 94 a9 4f f9 69 4f ee 29 0e 29 85 2a 2a 52 kjniNq.#...{Wq.S.+..O.iO.).).**R
294a0 97 bf 5b b9 dc e2 08 72 3b b7 d6 b6 bf ee 29 8e 71 0e 23 32 fd 7e 4a ff 75 88 c1 04 28 85 4d 7a ..[....r;.....).q.#2.~J.u...(.Mz
294c0 56 d5 af 63 b1 c4 10 e5 21 92 db 5b 49 ff 98 41 0e e3 8a cc a4 ea 4b 6f ff d2 18 42 8a 72 15 3a V..c....!..[I..A......Ko...B.r.:
294e0 9f 7a d7 e9 ce 53 9c e2 95 d5 09 6a 56 d6 c5 4a 8a 63 08 23 ae 21 ad 6a 57 77 9c 53 94 e2 91 9b .z...S.....jV..J.c.#.!.jWw.S....
29500 b6 d2 7d 77 f8 87 39 cc 31 51 5f ab 7a 7d b2 8c 41 44 10 e4 22 b5 2b 6b 52 9b 8e 41 8c 28 8e 45 ..}w..9.1Q_.z}..AD..".+kR..A.(.E
29520 5e b5 ad 4a 76 54 a4 10 63 1d 1d 3a 5f b5 2b 4d 2b 98 e1 1c 81 57 ff f8 c4 08 08 3c 4a 1f f0 1e ^..JvT..c..:_.+M+....W.....<J...
29540 bb 19 e3 11 fd 07 f5 fc fd b4 a5 2e fb 6e 48 43 91 77 68 80 4a a5 f2 62 10 86 26 36 ff bf 77 89 .............nHC.wh.J..b..&6..w.
29560 18 84 21 08 93 52 f5 3d ce 8c 46 20 8c 49 23 f2 f7 93 43 08 44 21 26 ae fd de ca c6 42 18 84 d2 ..!..R.=..F..I#...C.D!&.....B...
29580 e3 f5 5f 14 cc 82 08 88 49 ed 77 5f f6 36 20 86 8c 8b b9 5e bd 88 cc 66 31 11 22 d2 f7 af 51 98 .._.....I.w_.6.....^...f1."...Q.
295a0 84 32 23 5f 4b f9 5d 9a b1 84 32 31 33 da 75 fe e4 43 10 cc 44 99 79 f9 67 d1 8c 22 19 92 6a 72 .2#_K.]...213.u..C..D.y.g.."..jr
295c0 c7 5b 09 18 43 20 91 2c 77 7e bf 46 62 08 6c 8d 7f 52 f5 7d 93 0c c6 62 69 7b bd 72 c2 73 10 c8 .[..C..,w~.Fb.l..R.}...bi{.r.s..
295e0 23 37 91 cb 5f ca 84 23 0c 90 8c b1 dd 6a ae 24 60 c8 c6 27 67 ae ab fc 6c 62 10 cc db c7 ef df #7.._..#.....j.$`..'g...lb......
29600 78 43 41 88 42 54 a5 ef 5d 6a 32 31 8c c8 d2 3d 52 da b1 98 46 c3 1a a5 7b 45 59 79 19 18 21 21 xCA.BT..]j21...=R...F...{EYy..!!
29620 13 fe ae fd 1d 18 c4 33 1b 13 bc e7 a5 ed b8 c6 42 19 ae 58 ee 59 ed 23 10 86 12 a6 85 a5 e5 8e .......3........B..X.Y.#........
29640 86 6a 10 cc db 67 7e ea b6 23 31 0c 66 89 97 ab 95 3a b1 91 84 63 25 90 bf ab d4 4c 81 99 98 d3 .j...g~..#1.f....:...c%....L....
29660 75 57 55 95 28 86 42 19 36 ef f9 5d 1f 11 08 22 21 93 75 ea 5f 7c 64 31 0c 44 64 eb 55 cb 27 c4 uWU.(.B.6..]..."!.u._|d1.Dd.U.'.
29680 13 08 46 6d ed 72 ff 61 29 06 66 11 25 8e aa ff c4 22 10 82 26 69 f9 ed 3f 4d 46 33 30 88 4a f6 ..Fm.r.a).f.%...."..&i..?MF30.J.
296a0 9d 7f b2 18 c8 21 91 12 97 14 b7 d9 8c c6 22 11 11 f2 ba ab c4 d8 c6 63 1b 5d d5 e9 55 1f 08 cc .....!........"........c.]..U...
296c0 63 12 26 ee aa be ae 62 19 88 44 22 ce 5e 5a b7 33 18 84 32 64 ea bd 55 54 84 c8 61 18 89 32 f3 c.&....b..D".^Z.3..2d..UT..a..2.
296e0 ad eb 91 0c 43 31 09 3c 57 ee fa 62 11 8c 64 25 45 57 eb 5e a3 11 04 43 33 3d ae af de 32 63 08 ....C1.<W..b..d%EW.^...C3=...2c.
29700 83 6d 31 6b ba e7 46 64 19 88 c9 23 d7 5f ca 6d 08 31 19 a9 23 aa 97 ac b0 82 32 08 c9 bf aa 2d .m1k..Fd...#._.m.1..#.....2....-
29720 f7 a1 11 86 62 64 9f b9 56 ac 98 22 18 84 44 ca b4 bc b2 c4 31 30 82 26 d7 aa aa be d9 88 c4 11 ....bd..V.."..D.....10.&........
29740 b6 8b d4 bd 67 23 32 04 64 42 1d 1f 96 9e 22 42 04 64 21 a2 ca 57 ee ad 11 04 20 99 1a c5 72 ff ....g#2.dB...."B.d!..W........r.
29760 ec 23 30 c8 c4 4d 5c b8 a5 e9 d9 b0 c6 42 25 8a bd 4b f5 cc 66 1b 13 11 6b bd 2a d6 a4 23 08 22 .#0..M\......B%..K..f...k.*..#."
29780 42 5e aa fd f5 cc 43 31 88 d3 a3 a9 7b c9 50 42 10 84 44 b1 f9 7b ef 18 4c 41 19 89 d5 14 ef 57 B^....C1....{.PB..D..{..LA.....W
297a0 5c 62 08 84 32 79 4b dd 5e 46 c6 11 88 84 97 f7 5a eb 99 98 84 10 95 91 ff 51 67 98 c8 c3 10 99 \b..2yK.^F......Z........Qg.....
297c0 2e 52 fe 5f 58 db 0c 21 34 6a ea 58 eb 62 30 8c 44 36 95 57 bb cb f0 88 62 21 1a ee fc ab 7c 42 .R._X..!4j.X.b0.D6.W....b!....|B
297e0 11 08 31 a4 cb 5d d6 be 66 62 10 42 64 9d 55 e1 7c 25 61 88 44 33 47 aa a7 8b d3 10 42 61 19 2c ..1..]..fb.Bd.U.|%a.D3G.....Ba.,
29800 fc aa f7 69 82 1b 10 49 af 77 ea b5 23 08 cc 22 36 bd 69 5d 64 cc 43 60 88 99 8a af 5f bb 64 61 ...i...I.w..#.."6.i]d.C`...._.da
29820 30 46 cc 85 fd ca b2 e4 43 08 c4 24 d4 b5 4b d6 53 36 20 84 44 d1 eb af 5f 9b 10 42 11 9a 7b 0e 0F......C..$..K.S6..D..._..B..{.
29840 ab 7c cc 23 10 66 84 5e b5 d5 f2 b1 a1 06 46 37 91 5d 7a ae 25 21 08 62 26 91 4b df fb 91 8c 42 .|.#.f.^......F7.]z.%!.b&.K....B
29860 10 d3 7e f4 fd d3 37 08 43 21 a2 47 5a 2f aa 89 8c 22 30 c8 b3 29 ea bd 48 82 33 19 91 bd 55 e2 ..~...7.C!.GZ/..."0..)..H.3...U.
29880 e5 d9 10 21 91 88 cb ea 95 d7 7c 86 41 18 84 93 3b f5 3d 89 98 8c 21 11 ac fc ea b5 74 21 84 86 ...!......|.A...;.=...!.....t!..
298a0 23 4b e9 4b f2 f3 62 18 88 62 48 b1 dd 7f 88 c4 43 0d 99 23 de 77 cf 59 b1 84 63 62 75 9d c5 de #K.K..b..bH.....C..#.w.Y..cbu...
298c0 e6 63 10 84 36 8b 39 5d f2 e6 66 31 90 69 ad 75 7a f2 e6 1b 08 c2 26 29 0b cf de a6 a6 11 0c cd .c..6.9]..f1.i.uz.....&)........
298e0 aa e2 97 df d3 08 46 31 31 2a c7 2c 52 a6 44 11 08 63 2b 42 f5 e5 e9 71 8c c4 21 aa 7a fd df cd ......F11*.,R.D..c+B...q..!.z...
29900 4c 42 18 c8 da bd a7 5f 2a 20 88 33 33 25 5c 2a fe e8 90 46 21 8d b5 9d d5 ea dc 64 61 08 cc 92 LB....._*..33%\*...F!......da...
29920 29 7b ff 22 30 c6 c2 22 68 ae eb 7a e2 68 18 4c cd 72 aa bb c5 e6 66 33 31 9a db f8 be d5 22 10 ){."0.."h..z.h.L.r....f31.....".
29940 d8 43 27 4f dd de 75 46 41 98 8c 84 ab 55 55 fc 6c c6 21 99 92 7b ca fe fd 8c cc 43 1a 48 ab dd .C'O..uFA....UU.l.!..{.....C.H..
29960 56 54 62 0c c4 66 99 d5 79 7d 99 8c 43 19 19 3f ae eb 7d 86 32 18 cc 9b 7e a5 5e ba 33 10 cc 64 VTb..f..y}..C..?..}.2...~.^.3..d
29980 da ab d5 75 db 11 08 13 43 21 7f 5e 57 24 a4 21 88 44 24 c5 8a 2d bf 42 18 88 63 69 2b ba f5 5d ...u....C!.^W$.!.D$..-.B..ci+..]
299a0 98 84 61 1b 24 7b ce b1 6b 22 0c cc 26 d9 57 97 bc f8 84 81 04 cd b5 87 78 a7 24 cc 23 10 4c 89 ..a.${..k"..&.W.........x.$.#.L.
299c0 4f 14 ef aa 90 84 c1 10 9b 7a ae ea b3 56 10 84 32 32 7f 5d fa f4 c8 c2 32 19 b5 5f f8 f3 7e 1a O........z...V..22.]....2.._..~.
299e0 30 82 26 6c bf a9 7f b9 90 84 19 09 35 e5 55 57 db 33 18 84 c6 dc b0 ab 57 a4 62 08 66 22 6b d5 0.&l........5.UW.3......W.b.f"k.
29a00 5c e9 ee 62 18 8c 66 b5 0e 79 c5 9a 20 88 c3 13 13 da 57 c7 93 98 8c 62 31 35 8b e9 4b 2b 24 10 \..b..f..y........W....b15..K+$.
29a20 44 11 26 cf 5d 7a fc 8c c4 31 9b 46 2f 7a 7b da b1 88 43 23 6b 5d de aa d2 66 11 88 64 4b 55 df D.&.]z...1.F/z{...C#k]...f..dKU.
29a40 f2 c2 44 10 c6 c6 d2 3b d7 7b db 33 08 22 23 23 da 2a de ad 19 86 34 21 a7 5e aa 5f 26 21 90 86 ..D....;.{.3."##.*....4!.^._&!..
29a60 1a d9 0f d4 af a6 23 60 88 21 15 59 4e bd 7e 8c 83 31 99 a2 72 ad 77 b2 11 88 41 19 92 7b ca fe ......#`.!.YN.~..1..r.w...A..{..
29a80 2c 32 10 82 20 9d 22 ba f2 db 10 88 41 08 88 47 ce ef 1f 5a 31 31 84 44 23 ac a2 af 92 99 98 42 ,2....".....A..G...Z11.D#......B
29aa0 13 37 8a a5 eb f9 a2 04 6c 33 5d 55 5f bd b9 04 43 18 99 13 aa fe 7b b5 20 84 23 11 37 8a e7 ea .7......l3]U_...C.....{...#.7...
29ac0 9e 10 cc 66 62 4f 15 d7 af e2 66 31 8c cd af fc af 56 a1 31 84 26 31 39 77 77 3e 9d 06 66 10 d1 ...fbO....f1.....V.1.&19ww>..f..
29ae0 b7 fc aa 59 36 21 08 42 10 8f 21 57 bb c4 4c 63 61 8d 2c 85 ee 5e 97 20 88 20 88 8c bb 95 5d 64 ...Y6!.B..!W..Lca.,..^........]d
29b00 e6 32 18 c8 44 f7 ba bd 7d 0d 08 31 11 13 75 55 2f f7 32 30 82 43 26 7c 5e ef 5b e6 10 cc 43 6b .2..D...}..1..uU/.20.C&|^.[...Ck
29b20 7f 52 f5 a9 10 64 31 09 13 a1 5c b1 56 91 a0 83 33 36 bd 7a 95 65 4c 21 18 cc 49 97 ab ad 2c cc .R...d1...\.V...36.z.eL!..I...,.
29b40 84 10 4a 46 45 7a fd de 22 33 31 02 69 a7 53 af be a3 08 cc 22 23 2a d5 75 5d d1 8c c6 21 12 b2 ..JFEz.."31.i.S....."#*.u]...!..
29b60 ab bd fe 64 11 8c 44 34 9e a9 fd 5a 98 83 13 18 48 e9 d4 bf be cc 84 31 90 89 6f a7 3e 85 a2 33 ...d..D4...Z....H......1..o.>..3
29b80 10 c6 68 98 ab dd 56 5c c2 31 98 84 95 56 14 aa d6 b0 98 83 34 4b 1d 5e aa c2 66 31 0c c9 93 bb ..h...V\.1...V......4K.^..f1....
29ba0 d7 55 48 cc c6 19 b1 32 af a7 eb ab 11 04 21 11 a4 7f d4 fa d6 46 10 cc 88 d5 fa bb f9 13 10 62 .UH....2......!......F.........b
29bc0 21 09 2c 77 55 eb 91 30 43 22 33 4e f7 95 ec cc 64 23 08 9b 55 78 75 fb b1 8c c6 21 b5 b5 f9 56 !.,wU..0C"3N....d#..Uxu....!...V
29be0 da c8 62 10 c8 d7 2d 3f 7a ad 4c 86 31 10 97 72 d7 77 6b 20 26 21 9b 35 5f 4a 54 2e a6 41 08 42 ..b...-?z.L.1..r.wk.&!.5_JT..A.B
29c00 34 d1 dd 55 56 22 63 08 c4 35 92 1d 55 55 15 84 6c 10 89 5a 3b f7 55 95 18 c4 33 23 6f 55 de aa 4..UV"c..5..UU..l..Z;.U...3#oU..
29c20 a4 63 10 cc 48 48 2c ea 79 f5 31 08 42 32 26 a7 f0 5f 2c 23 19 84 23 4b 15 5f ba b5 44 19 8d 04 .c..HH,.y.1.B2&.._,#..#K._..D...
29c40 4b f1 5d 7f 8a 46 22 04 44 26 7d 45 5b 4a 88 84 11 08 64 96 15 57 bf 44 cc 21 99 89 3a c7 77 f6 K.]..F".D&}E[J....d..W.D.!..:.w.
29c60 a6 31 88 cc c9 e2 b9 69 6c 88 42 10 42 66 93 95 fa fb b1 99 04 36 4d 3b 96 bf bb 31 98 c4 6c 45 .1.....il.B.Bf.......6M;...1..lE
29c80 ef 0a 5b 22 21 0c 44 11 ac 8e 5b cb 62 33 10 c4 66 ad c5 c5 57 df 33 08 84 21 37 dc f5 4f 74 44 ..["!.D...[.b3..f...W.3..!7..OtD
29ca0 30 cc 82 6d fb f5 52 a1 3e 08 42 31 13 78 eb ca ed 23 0d 84 61 ae 97 95 eb fc d9 8c 22 31 13 bc 0..m..R.>.B1.x...#..a......."1..
29cc0 e7 eb 2a 63 10 46 26 49 7a 95 69 66 64 31 90 6d a6 2d 77 59 e1 11 04 11 11 a4 e5 57 85 d1 a1 8c ..*c.F&Iz.ifd1.m.-wY.......W....
29ce0 64 32 5d 4f 5d e2 d6 66 21 8c 8d 19 4f e1 fa b6 46 20 82 46 44 3d a5 2e 5e cc c4 33 33 26 55 ae d2]O]..f!...O...F..FD=..^..33&U.
29d00 7f 64 c3 20 84 22 32 7e 55 aa b7 63 21 88 44 26 58 57 ea b5 22 08 c4 11 22 67 ef cb 7e 84 21 08 .d..."2~U..c!.D&XW.."..."g..~.!.
29d20 42 35 97 bb af fa 33 18 cc 22 4e 8a e5 ae b5 19 08 66 21 35 8b 5c b6 aa 62 18 c4 64 6d 5c 52 34 B5....3.."N......f!5.\..b..dm\R4
29d40 ff f8 74 08 09 0c 3f ee 4a fb fd f1 79 e8 ac e2 a3 e0 10 e1 45 b4 a5 ae f1 ed e8 46 92 57 5f 00 ..t...?.J...y.......E......F.W_.
29d60 21 2c 44 b9 36 c5 b2 21 62 12 24 4e 73 e9 48 15 02 4a be 69 c8 26 22 82 13 45 ed 89 f0 91 11 0a !,D.6..!b.$Ns.H..J.i.&"..E......
29d80 82 8e be e1 44 42 85 0a dc d7 e2 84 88 82 94 cb 32 cc 93 20 a2 24 a5 cd 35 a4 28 82 51 04 6e 59 ....DB..........2....$..5.(.Q.nY
29da0 ad 09 61 05 88 91 c5 9a 7a 48 a1 09 22 fa 77 68 8b 20 85 e5 73 31 72 88 48 91 08 d2 7d c9 a2 0a ..a.....zH..".wh....s1r.H...}...
29dc0 22 58 93 77 b2 99 08 92 44 4f ad da 91 14 09 49 3d 37 93 42 28 09 64 13 c8 f7 74 24 48 45 09 1b "X.w....DO.....I=7.B(.d...t$HE..
29de0 13 38 b6 22 42 28 89 39 1e a3 25 08 2b 08 21 a4 f4 7c 2c 58 14 28 2d 53 d3 d1 62 42 16 25 59 a2 .8."B(.9..%.+.!..|,X.(-S..bB.%Y.
29e00 1b 14 44 48 88 4e 16 6b da 50 42 68 11 72 4f 6c b9 09 0a 20 b9 74 de 57 02 48 25 2a a7 6b 24 44 ..DH.N.k.PBh.rOl.....t.W.H%*.k$D
29e20 28 48 b6 91 8d 15 44 0a 45 05 ec 46 d2 64 a1 05 91 4b be f4 54 22 12 0b 5a 7b a5 a1 24 21 16 85 (H....D.E..F.d...K..T"..Z{..$!..
29e40 9a 47 aa 12 14 88 48 d3 9e c9 31 04 b0 44 4d 57 b9 68 a1 04 89 2c 8e f1 8b 49 10 4c 25 21 07 68 .G....H...1..DMW.h...,...I.L%!.h
29e60 65 c8 50 90 94 93 4c 64 b6 16 42 28 85 75 67 25 22 12 12 c8 9f fd c4 49 10 96 24 dc d7 b0 59 21 e.P...Ld..B(.ug%"......I..$...Y!
29e80 20 93 15 1d 79 70 2c 88 25 28 c9 fe 89 88 2a 02 d4 4f 4d d3 10 a6 01 2d 24 ee 32 a8 48 85 08 aa ....yp,.%(....*..OM....-$.2.H...
29ea0 d9 0d 5c 0b 80 8a 22 69 de 31 70 a2 24 84 46 93 ee 4c 91 09 61 13 e4 e8 c8 b2 11 16 41 79 31 d2 ..\..."i.1p.$.F..L..a.......Ay1.
29ec0 69 41 12 44 4b 23 e4 fe 08 a2 40 93 84 df d6 82 c8 25 85 a4 f6 a6 c8 4a 08 a2 45 3c 8d 97 91 12 iA.DK#....@......%.....J..E<....
29ee0 12 45 4f 4d da 25 02 c2 2a 5f b4 ec 90 4c 48 2c 5b 23 f4 ca 88 44 49 21 0e 4c 70 9a 60 85 91 02 .EOM.%..*_...LH,[#...DI!.Lp.`...
29f00 da 08 37 27 85 a0 54 21 6a d1 f9 35 05 85 82 5a 11 b2 7f 22 d0 22 44 a5 df dc 48 89 41 14 a7 b2 ..7'..T!j..5...Z..."."D...H.A...
29f20 3a 16 90 28 b1 48 64 de 23 c2 28 24 28 88 eb b1 89 26 08 8b 05 c9 e9 86 0a 32 0b 10 94 45 99 36 :..(.Hd.#.($(....&.......2...E.6
29f40 ca 32 22 22 44 4b e9 eb 64 51 05 05 17 e2 1b 95 c2 09 28 25 e9 ef 4d 04 b0 91 09 79 4c d2 68 a2 .2""DK..dQ........(%..M....yL.h.
29f60 09 24 91 1c e3 95 91 09 11 58 9b e7 32 2c 84 89 14 bd a9 b1 48 a1 02 f2 28 e4 c6 16 c4 48 91 04 .$.......X..2,......H...(....H..
29f80 b8 e1 19 91 34 42 84 89 65 9e 8d 89 94 24 12 58 53 e7 46 52 22 84 09 a8 8f 6b d8 49 11 22 05 a7 ....4B..e....$.XS.FR"....k.I."..
29fa0 70 c9 ca 21 24 22 b2 73 e7 10 8c 82 15 09 35 37 a5 c4 81 26 05 4b 99 89 e8 98 40 a8 12 62 df 3d p..!$".s......57...&.K....@..b.=
29fc0 68 28 84 24 c4 46 a3 ea 45 88 88 8a e8 80 c8 8f 28 48 84 52 94 ce 27 a8 82 4c 20 8c 88 de 43 a2 h(.$.F..E.......(H.R..'..L....C.
29fe0 92 24 42 95 ad e6 2b 20 b1 09 22 f4 7a f5 84 48 84 4b 45 e3 5a a8 90 42 d0 a3 a9 f5 05 92 08 a2 .$B...+...".z..H.KE.Z..B........
2a000 26 4f 9c 4d 0b 0a 0a 2d 62 1b 53 22 d0 22 44 b1 37 3a 4c b0 85 40 5e 28 69 19 92 58 85 04 b1 27 &O.M...-b.S"."D.7:L..@^(i..X...'
2a020 6f 47 12 13 08 4a 12 32 f6 43 42 a2 10 94 2a 32 66 5e a4 12 22 25 61 07 59 89 92 22 24 28 b4 64 oG...J.2.CB...*2f^.."%a.Y.."$(.d
2a040 cc 91 a2 28 12 48 9a dd 1c 51 22 24 2c 59 7f af 44 c1 12 45 16 98 c8 87 91 45 02 88 84 32 fa 38 ...(.H...Q"$,Y..D..E.....E...2.8
2a060 85 30 41 58 12 1c 4d d3 14 90 45 11 16 b6 9e 9a 08 b1 08 54 a3 c9 9e 44 c8 84 41 72 65 0f 27 50 .0AX..M...E........T...D..Are.'P
2a080 2c 42 51 13 27 3b d1 24 50 22 e0 83 2d e4 e4 48 88 90 ba bd ae 29 08 2c 24 98 9b bc ca 16 21 12 ,BQ.';.$P"..-..H.....).,$.....!.
2a0a0 44 65 3d 0d 25 88 a0 4a 20 8d 94 75 69 04 50 84 ba bb 6a 48 88 49 09 21 c2 0e a5 90 59 09 12 69 De=.%..J...ui.P...jH.I.!....Y..i
2a0c0 06 53 30 a8 24 88 13 29 0c 9b bb 12 21 14 45 44 1c 8f 92 14 41 42 a4 f4 7a 98 8a 10 a1 54 10 6e .S0.$..)....!.ED....AB..z....T.n
2a0e0 21 c8 b1 21 20 a5 c8 f5 ea 24 21 16 45 3d 43 d0 8e 08 26 11 12 47 53 e9 44 85 0a 2b 53 7a 4d 0b !..!.....$!.E=C...&..GS.D..+SzM.
2a100 10 45 92 23 9c fc 85 92 10 84 64 5b e3 56 82 64 21 49 16 da 43 c2 4d 01 24 90 91 b2 de ca 24 22 .E.#......d[.V.d!I..C.M.$.....$"
2a120 41 44 9a e1 89 e8 26 12 09 12 27 88 cd 1a 26 84 24 89 26 4d b5 98 b8 41 45 85 59 06 2c 68 4d 04 AD....&...'...&.$.&M...AE.Y.,hM.
2a140 2c 42 2f 44 38 c9 94 a0 50 89 28 9c f7 11 58 82 28 8a 62 63 5c e2 24 90 51 5b 13 83 14 b2 42 28 ,B/D8...P.(...X.(.bc\.$.Q[....B(
2a160 2c bb 46 c5 b1 28 12 84 4c 46 5b 62 38 89 44 21 29 89 c7 dd 90 92 04 a2 23 28 da 4e 22 24 24 50 ,.F..(..LF[b8.D!).......#(.N"$$P
2a180 b6 bc d4 98 88 2c 88 5f 92 06 84 e4 89 11 0a 5c 8e d3 45 21 08 92 2d 39 a7 26 21 13 08 22 e5 21 .....,._.......\..E!..-9.&!..".!
2a1a0 b4 46 91 10 58 8a 49 a3 69 1a 28 81 68 82 e7 68 d3 84 50 88 52 49 dc 71 38 44 84 89 16 b6 9c ca .F..X.I.i.(.h..h..P.RI.q8D......
2a1c0 44 16 10 93 49 1b b6 13 88 24 84 49 ca 1d 99 13 20 49 84 29 a4 74 32 27 08 89 10 5a 8b 39 1c 26 D...I....$.I.....I.).t2'...Z.9.&
2a1e0 41 44 12 2a 46 5e ca 90 88 51 09 aa 3e 26 c4 88 88 8a 0b 72 1c bd 44 88 54 08 d4 fa 78 49 88 09 AD.*F^...Q..>&.....r..D.T...xI..
2a200 a1 17 48 f5 e4 46 04 8a 05 8b eb 9e 25 11 10 a2 23 22 0d 5e a0 b2 09 44 a4 72 3e 2c 48 48 48 2b ..H..F......%...#".^...D.r>,HHH+
2a220 53 43 93 84 50 91 21 4d 88 ce 5e 14 44 90 52 a7 5b c4 4a 12 04 c8 51 90 c9 b8 99 08 58 84 5d 27 SC..P.!M..^.D.R.[.J...Q.....X.]'
2a240 66 58 a8 81 30 94 88 da 6b b1 20 5a 04 4d 56 cd 56 88 58 45 45 f3 99 1c 22 50 44 92 23 e6 b6 4a fX..0...k..Z.MV.V.XEE..."PD.#..J
2a260 24 0a 48 97 37 97 94 42 44 42 53 b4 c6 2c 98 25 04 3a 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 $.H.7..BDBS..,.%.:..............
2a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a400 65 6d 6d 73 2d 32 34 2f 74 65 73 74 2f 72 65 73 6f 75 72 63 65 73 2f 73 69 6e 65 2e 6d 70 33 00 emms-24/test/resources/sine.mp3.
2a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2a480 30 30 31 35 37 32 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 32 36 33 00 20 30 00 00 00 0015725.00000000000.015263..0...
2a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2a520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a600 49 44 33 03 00 00 00 00 0d 33 54 49 54 32 00 00 00 25 00 00 01 ff fe 34 00 34 00 30 00 20 00 48 ID3......3TIT2...%.....4.4.0...H
2a620 00 7a 00 20 00 73 00 69 00 6e 00 65 00 20 00 77 00 61 00 76 00 65 00 00 00 54 50 45 31 00 00 00 .z...s.i.n.e...w.a.v.e...TPE1...
2a640 1d 00 00 01 ff fe 45 00 4d 00 4d 00 53 00 20 00 70 00 72 00 6f 00 6a 00 65 00 63 00 74 00 00 00 ......E.M.M.S...p.r.o.j.e.c.t...
2a660 54 41 4c 42 00 00 00 1b 00 00 01 ff fe 54 00 65 00 73 00 74 00 20 00 44 00 61 00 74 00 61 00 20 TALB.........T.e.s.t...D.a.t.a..
2a680 00 3a 26 00 00 54 44 41 54 00 00 00 0d 00 00 01 ff fe 30 00 32 00 30 00 39 00 00 00 54 59 45 52 .:&..TDAT.........0.2.0.9...TYER
2a6a0 00 00 00 0d 00 00 01 ff fe 32 00 30 00 32 00 33 00 00 00 54 53 53 45 00 00 00 1f 00 00 01 ff fe .........2.0.2.3...TSSE.........
2a6c0 4c 00 61 00 76 00 66 00 35 00 39 00 2e 00 32 00 37 00 2e 00 31 00 30 00 30 00 00 00 54 58 58 58 L.a.v.f.5.9...2.7...1.0.0...TXXX
2a6e0 00 00 00 3b 00 00 01 ff fe 50 00 52 00 4f 00 44 00 55 00 43 00 45 00 52 00 00 00 ff fe 50 00 65 ...;.....P.R.O.D.U.C.E.R.....P.e
2a700 00 74 00 74 00 65 00 72 00 69 00 20 00 48 00 69 00 6e 00 74 00 73 00 61 00 6e 00 65 00 6e 00 00 .t.t.e.r.i...H.i.n.t.s.a.n.e.n..
2a720 00 54 58 58 58 00 00 00 43 00 00 01 ff fe 52 00 45 00 50 00 4c 00 41 00 59 00 47 00 41 00 49 00 .TXXX...C.....R.E.P.L.A.Y.G.A.I.
2a740 4e 00 5f 00 41 00 4c 00 42 00 55 00 4d 00 5f 00 47 00 41 00 49 00 4e 00 00 00 ff fe 2d 00 34 00 N._.A.L.B.U.M._.G.A.I.N.....-.4.
2a760 2e 00 34 00 38 00 20 00 64 00 42 00 00 00 54 58 58 58 00 00 00 43 00 00 01 ff fe 52 00 45 00 50 ..4.8...d.B...TXXX...C.....R.E.P
2a780 00 4c 00 41 00 59 00 47 00 41 00 49 00 4e 00 5f 00 54 00 52 00 41 00 43 00 4b 00 5f 00 47 00 41 .L.A.Y.G.A.I.N._.T.R.A.C.K._.G.A
2a7a0 00 49 00 4e 00 00 00 ff fe 2d 00 34 00 2e 00 34 00 38 00 20 00 64 00 42 00 00 00 54 58 58 58 00 .I.N.....-.4...4.8...d.B...TXXX.
2a7c0 00 00 47 00 00 01 ff fe 52 00 45 00 50 00 4c 00 41 00 59 00 47 00 41 00 49 00 4e 00 5f 00 41 00 ..G.....R.E.P.L.A.Y.G.A.I.N._.A.
2a7e0 4c 00 42 00 55 00 4d 00 5f 00 50 00 45 00 41 00 4b 00 00 00 ff fe 30 00 2e 00 32 00 35 00 30 00 L.B.U.M._.P.E.A.K.....0...2.5.0.
2a800 30 00 33 00 30 00 35 00 32 00 00 00 54 58 58 58 00 00 00 47 00 00 01 ff fe 52 00 45 00 50 00 4c 0.3.0.5.2...TXXX...G.....R.E.P.L
2a820 00 41 00 59 00 47 00 41 00 49 00 4e 00 5f 00 54 00 52 00 41 00 43 00 4b 00 5f 00 50 00 45 00 41 .A.Y.G.A.I.N._.T.R.A.C.K._.P.E.A
2a840 00 4b 00 00 00 ff fe 30 00 2e 00 32 00 35 00 30 00 30 00 33 00 30 00 35 00 32 00 00 00 54 58 58 .K.....0...2.5.0.0.3.0.5.2...TXX
2a860 58 00 00 00 51 00 00 01 ff fe 52 00 45 00 50 00 4c 00 41 00 59 00 47 00 41 00 49 00 4e 00 5f 00 X...Q.....R.E.P.L.A.Y.G.A.I.N._.
2a880 52 00 45 00 46 00 45 00 52 00 45 00 4e 00 43 00 45 00 5f 00 4c 00 4f 00 55 00 44 00 4e 00 45 00 R.E.F.E.R.E.N.C.E._.L.O.U.D.N.E.
2a8a0 53 00 53 00 00 00 ff fe 38 00 39 00 2e 00 30 00 20 00 64 00 42 00 00 00 00 00 00 00 00 00 00 00 S.S.....8.9...0...d.B...........
2a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e3 38 ...............................8
2acc0 c0 00 00 00 00 00 00 00 00 00 49 6e 66 6f 00 00 00 0f 00 00 00 48 00 00 15 18 00 0d 11 14 14 17 ..........Info.......H..........
2ace0 1b 1e 1e 22 25 25 28 2c 2f 2f 33 36 36 3a 3d 40 40 44 47 4b 4b 4e 51 51 55 58 5c 5c 5f 62 62 66 ..."%%(,//366:=@@DGKKNQQUX\\_bbf
2ad00 69 6d 6d 70 74 74 77 7a 7e 7e 81 85 88 88 8b 8f 8f 92 96 99 99 9d a0 a0 a3 a7 aa aa ae b1 b1 b4 immpttwz~~......................
2ad20 b8 bb bb bf c2 c5 c5 c9 cc cc d0 d3 d7 d7 da dd dd e1 e4 e8 e8 eb ee ee f2 f5 f9 f9 fc ff 00 00 ................................
2ad40 00 00 4c 61 76 63 35 39 2e 33 37 00 00 00 20 00 fc 22 2c 42 2c 00 00 24 03 80 00 00 00 00 00 00 ..Lavc59.37......",B,..$........
2ad60 15 18 42 2b ea 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..B+.l..........................
2ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e3 18 c4 00 0b b0 96 bd 19 48 ...............................H
2ada0 00 00 e0 cf ff fc 07 77 77 77 bf 84 44 44 ff 77 7b fd 24 b0 ec 15 80 b8 2f 0f cf a8 20 73 13 87 .......www..DD.w{.$...../....s..
2adc0 f8 20 eb b9 7f 0c 70 1b f4 86 38 0d fc e7 4f bb a5 03 08 30 00 03 22 f1 34 63 fe 5d 20 ff e3 18 ......p...8...O....0..".4c.]....
2ade0 c4 0c 10 00 fa b4 51 94 28 00 24 d1 02 ff 10 98 72 40 d6 02 06 e7 4d 00 0a d0 d0 94 c0 d2 1d 1d ......Q.(.$.....r@....M.........
2ae00 e0 28 02 00 89 07 83 df fe 11 00 40 11 20 f0 78 a1 df f0 90 34 25 09 03 5f f8 94 24 0d 15 ff ff .(.........@...x....4%.._..$....
2ae20 fe 4d 07 44 0d ff e3 18 c4 07 0c 98 a6 54 01 d6 00 00 82 83 a6 02 20 00 0c 0d 84 20 30 b6 12 80 .M.D.........T..............0...
2ae40 c3 08 f6 03 18 ff e0 0c a9 0e 80 31 42 0f 80 c1 48 2a 01 40 2e 17 cc 05 00 28 64 51 c0 ea ff ff ...........1B...H*.@.....(dQ....
2ae60 f6 92 80 a0 00 59 87 88 19 39 41 9e 22 ff e3 18 c4 0f 0b b8 a6 38 00 06 fc 44 9b bc 81 89 40 fb .....Y...9A."........8...D....@.
2ae80 9d 18 f7 19 ad 80 c3 98 7b 83 71 82 c0 0e 94 01 51 50 00 c0 a0 08 5b 14 4e b1 ff ff f6 40 23 00 ........{.q.....QP....[.N....@#.
2aea0 10 b0 04 21 f8 f0 0a 18 1d 80 f9 84 70 3a 18 ba 8e 19 e5 c6 c2 ff e3 18 c4 1b 0c 68 a6 34 00 07 ...!........p:.............h.4..
2aec0 b2 48 9b 90 8b 49 8a 10 3c 18 45 82 19 82 40 1a 1b 51 19 a9 81 02 2f 3d 2a ff ff ec 9d a0 a0 70 .H...I..<.E...@..Q..../=*......p
2aee0 18 24 c2 06 cc 05 08 11 3a 01 08 c0 c0 98 42 48 c0 45 06 e8 90 08 90 60 07 06 00 18 02 ff e3 18 .$......:.....BH.E.....`........
2af00 c4 24 0b 70 a6 40 00 06 fe 44 a1 00 05 91 00 20 81 35 c3 7e ff ff f6 62 82 20 60 69 84 87 19 29 .$.p.@...D.......5.~...b..`i...)
2af20 01 a1 18 9c 2b 11 8a 70 b1 9d b4 d5 c9 b3 10 88 98 8c 82 11 83 60 00 81 81 2c 2e 01 a2 a0 10 5e ....+..p.............`...,.....^
2af40 54 8e c2 ff ff ff e3 18 c4 31 0b b0 a6 38 00 06 fc 44 e3 80 8f 65 a8 53 70 a0 00 18 10 81 99 83 T........1...8...D...e.Sp.......
2af60 20 47 18 8c 90 99 ce 57 e1 9a bd 8d 39 87 a0 45 18 34 82 39 81 c0 17 1d b0 6f 49 66 12 1e cd ff .G.....W....9..E.4.9.....oIf....
2af80 ff ec 59 82 97 68 c1 80 4c 38 74 c4 50 ff e3 18 c4 3d 0b a8 a6 38 00 07 b0 48 8c 7a 64 c0 59 08 ..Y..h..L8t.P....=...8...H.zd.Y.
2afa0 80 c3 86 40 50 c1 ef 06 a8 c0 3e 02 0c 02 01 90 84 00 b4 23 1e 00 25 0b 97 ad f5 ff ff f6 8a 87 ...@P.....>........#..%.........
2afc0 c2 20 d3 01 0c 32 11 23 42 15 38 b2 83 16 20 a3 3c 11 54 73 6c ff e3 18 c4 49 0b a0 a6 40 00 06 .....2.#B.8.....<.Tsl....I...@..
2afe0 fe 44 00 75 31 2d 00 60 c0 f0 30 31 00 f3 00 10 13 1c 00 c2 00 01 49 6a 8a ff ff f7 f1 77 a5 62 .D.u1-.`..01..........Ij.....w.b
2b000 ae 21 00 63 00 30 2f 30 30 08 23 0a 31 e3 36 0a e5 d3 35 d1 7d 30 8e 07 83 03 b0 37 30 ff e3 18 .!.c.0/00.#.1.6...5.}0.....70...
2b020 c4 55 0c 18 a6 38 00 06 fc 44 1e 01 e3 52 01 4f 40 62 eb b3 ff ff f7 f9 62 96 98 c1 81 4c 50 74 .U...8...D...R.O@b......b....LPt
2b040 c7 4f 8c e2 34 c2 64 7c 8d 66 3b 38 cc 6c 61 8c 1e 01 cc c0 74 09 8b ea af 83 80 05 1c 95 cd b5 .O..4.d|.f;8.la.....t...........
2b060 ff ff fe 25 e1 ff e3 18 c4 5f 0b 78 a6 40 00 07 b0 48 00 08 20 08 80 48 30 0c 3e 08 01 a4 a8 1a ...%....._.x.@...H.....H0.>.....
2b080 84 0a 63 30 0e 87 ba e8 24 6f 84 0c 06 2b e0 42 61 24 03 86 08 a0 4a 71 f8 12 83 25 24 05 c5 ff ..c0....$o...+.Ba$....Jq...%$...
2b0a0 ff f8 71 93 a7 01 7e 81 a0 20 2a 07 66 ff e3 18 c4 6c 0a e0 a6 40 00 06 fc 44 02 41 24 60 ca 42 ..q...~...*.f....l...@...D.A$`.B
2b0c0 e6 83 1f aa 64 8a 34 e6 0b 81 08 60 4a 07 66 02 c0 38 6a 10 64 d0 81 7b d9 ff ff eb b4 97 a0 50 ....d.4....`J.f..8j.d..{.......P
2b0e0 43 0a 0b 31 c2 33 2f 40 35 a8 b3 0e b1 ea 38 34 e8 c3 49 31 7e ff e3 18 c4 7b 0c 60 a6 34 00 af C..1.3/@5.....84..I1~....{.`.4..
2b100 b0 80 30 c0 06 f3 04 10 20 12 00 d4 f6 2d 2a 00 94 06 da ff ff f5 96 28 00 c2 30 13 19 00 80 e0 ..0..........-*........(..0.....
2b120 32 30 4e 01 23 0a f0 65 31 c0 19 83 f1 dc 58 38 7a 14 83 18 50 71 30 a6 04 23 05 70 3b ff e3 18 20N.#..e1.....X8z...Pq0..#.p;...
2b140 c4 84 0b 40 a6 40 00 07 b0 48 37 eb 33 1a 04 92 22 0a 9a ff ff fd 85 b0 2e 38 12 0e 81 86 c1 00 ...@.@...H7.3..."........8......
2b160 61 91 d0 18 09 06 05 23 46 01 88 78 26 14 c3 7b e6 0b 78 5f 26 01 e0 1f 86 01 28 0e e6 01 30 07 a......#F..x&..{..x_&.....(...0.
2b180 86 f1 81 a3 8f ff e3 18 c4 92 0b 28 a6 3c 00 06 fc 44 48 44 3c 86 ff ff fd 30 c8 40 20 16 06 07 ...........(.<...DHD<....0.@....
2b1a0 0f 01 87 84 e0 64 62 28 19 b4 c8 06 c8 61 98 3c a1 47 1a 03 89 94 19 21 20 fe 18 32 c0 49 98 14 .....db(.....a.<.G.....!...2.I..
2b1c0 20 12 02 80 74 10 60 01 93 0a 81 85 a7 ff e3 18 c4 a0 0c b0 a6 30 00 07 b2 48 ff ff fe 8f ff fb ....t.`..............0...H......
2b1e0 bf fb 7f fe ca ff ff fd 20 e4 c0 40 18 00 42 21 60 00 c1 a0 10 32 51 18 0d 66 c3 30 73 82 be 33 ...........@..B!`....2Q..f.0s..3
2b200 e8 54 a2 32 31 82 32 30 65 40 c1 30 2d 00 6a 30 19 40 51 3b f5 ff e3 18 c4 a8 0d 70 a6 30 00 af .T.21.20e@.0-.j0.@Q;.......p.0..
2b220 f2 80 37 9c 32 4b 04 09 2e ff ff e3 ca 9f 40 e0 d3 11 06 31 92 c3 12 61 31 bd 43 01 20 2d b3 0b ..7.2K........@....1...a1.C..-..
2b240 c5 55 73 06 60 24 13 00 ac 0b 81 80 13 cc 00 20 07 02 00 14 28 00 98 88 00 d4 e2 a2 ff ff e3 18 .Us.`$..............(...........
2b260 c4 ad 10 60 a6 2c 00 af f0 80 ff f6 14 30 06 15 12 30 a1 53 2a 23 35 12 c3 a0 55 31 8f 13 43 d7 ...`.,.......0...0.S*#5...U1..C.
2b280 69 5a 37 8b 0e 83 15 00 31 16 10 e3 03 60 0c 00 00 b1 00 08 88 c0 11 06 6b d5 ff ff f7 6d 40 10 iZ7.....1....`..........k....m@.
2b2a0 7d 50 0e 80 29 ff e3 18 c4 a6 0d c0 a6 2c 00 af f2 80 80 80 19 18 24 84 59 86 c1 00 1b e6 f9 a1 }P..)........,........$.Y.......
2b2c0 a2 d0 cb 18 5f 84 19 82 80 1f 18 15 81 39 c6 26 a0 16 fd 41 2d 2a ff ff f7 75 4d 80 c0 26 1a 0c ...._........9.&...A-*...uM..&..
2b2e0 63 24 86 3c 9e 66 f5 86 04 80 4b 66 2a ff e3 18 c4 aa 0c c0 a6 38 00 06 fe 44 4a 36 e6 17 60 3b c$.<.f....Kf*........8...DJ6..`;
2b300 26 03 78 12 06 00 a0 06 e5 40 02 90 24 24 00 90 b0 00 2a 5d 7a ff ff f5 1a 24 09 15 18 30 41 73 &.x......@..$$....*]z....$...0As
2b320 2c 19 35 d0 e3 be 0b 31 d9 03 03 fd 21 fc 38 e1 01 00 71 94 18 ff e3 18 c4 b2 0c 08 a6 34 00 06 ,.5....1....!.8...q..........4..
2b340 fc 44 54 80 89 82 60 13 18 08 01 20 54 06 c9 00 28 a8 00 b7 6a ff ff fd c6 6c 36 c0 24 03 02 c0 .DT...`.....T...(...j....l6.$...
2b360 90 10 19 03 00 13 80 c6 ab f3 02 d0 2a 03 1a bd 3b c3 0e e8 21 43 02 8c 0a f3 01 18 05 ff e3 18 ............*...;...!C..........
2b380 c4 bc 0b 88 a6 3c 00 07 b0 48 23 00 b4 02 f3 bc 40 68 0c 5a 38 4f 55 ff ff f6 b2 89 c6 04 0e 62 .....<...H#.....@h.Z8OU........b
2b3a0 21 c6 4a 58 66 8a 66 c3 64 60 79 04 ca 64 33 a4 12 62 57 03 c2 60 62 81 20 60 1f 00 66 02 00 09 !.JXf.f.d`y..d3..bW..`b..`..f...
2b3c0 21 40 c0 05 04 ff e3 18 c4 c8 0c 70 a6 3c 00 06 fe 44 00 02 8a 53 8a ff ff fe 1f c0 4c 0e 0d 02 !@.........p.<...D...S......L...
2b3e0 80 20 1a 06 20 00 80 52 ac 0d 6c 3a 31 cf 11 d3 f8 a8 d9 38 b9 0e 73 18 e0 4e 30 ab 03 53 05 40 .......R..l:1......8..s..N0..S.@
2b400 34 36 aa 31 db 0b 10 32 2d 5a ff ff fd ff e3 18 c4 d1 0c 90 a6 30 00 06 fc 44 c4 e6 08 80 80 b0 46.1...2-Z...........0...D......
2b420 a8 0c 3c 07 03 0b 10 40 aa 48 0c 3b 41 30 24 84 38 31 6b df 46 30 ca 83 5a 30 23 c1 21 30 12 00 ..<....@.H.;A0$.81k.F0..Z0#.!0..
2b440 8c 30 0f 40 4f 3a db 01 b0 1d 98 b1 92 2e ff ff ff a7 ff ff ff ff e3 18 c4 d9 0d 08 a6 38 00 af .0.@O:.......................8..
2b460 f0 80 ff fe 9a ff ff fd 41 fa 80 90 10 18 18 2e 06 1b 0f 01 8e c7 80 65 83 18 1a 8d 84 60 c5 05 ........A..............e.....`..
2b480 2a 66 9f a6 ae 63 b5 04 06 60 a4 81 30 60 3e 00 5e 50 02 51 51 a6 37 18 06 5a a9 65 ff ff e3 18 *f...c...`..0`>.^P.QQ.7..Z.e....
2b4a0 c4 df 0c 98 a6 38 00 06 fe 44 db bf f6 0c 80 03 c1 20 18 14 06 a0 70 44 2c 03 2a 8c 40 d8 09 e3 .....8...D............pD,.*.@...
2b4c0 07 b4 25 33 42 21 19 13 25 24 1d d3 06 b0 0a 43 02 f4 05 f3 01 98 04 c3 ab 43 66 13 10 c0 a8 f4 ..%3B!..%$.....C.........Cf.....
2b4e0 bf ff f4 77 ff ff e3 18 c4 e7 0c a0 a6 30 00 af b2 80 fd 7f ff e8 ff ff fd c5 48 2e d0 0e 11 01 ...w.........0............H.....
2b500 87 01 a0 62 02 08 18 55 08 06 0a 8e 98 02 61 e2 18 22 4d f9 18 11 21 7d 10 01 f6 60 03 00 e4 60 ...b...U......a.."M...!}...`...`
2b520 0d 80 6e 6d 8a 36 21 5a 65 02 c9 d5 ff ff e3 18 c4 ef 10 20 aa 2c 00 af f2 80 ff f5 81 10 83 00 ..nm.6!Ze............,..........
2b540 06 4c 54 70 ce 4c 8d 79 1c ed 62 0c 6e 87 5c fb 57 7b ce 14 05 a4 c5 d4 17 8c 25 00 24 c0 e4 01 .LTp.L.y..b.n.\.W{........%.$...
2b560 41 20 32 21 01 40 60 03 88 40 0a 91 ff ff fd 10 ba 00 0a 09 03 ff e3 18 c4 e9 0d a8 a6 30 00 af A.2!.@`..@...................0..
2b580 f0 80 04 04 00 38 0e 06 02 0a 01 92 cd 20 6b c8 21 83 d6 1c 89 a1 18 d4 a9 92 96 16 d9 83 60 07 .....8........k.!.............`.
2b5a0 e1 81 8a 04 59 80 e4 03 21 f5 e1 d7 19 a4 61 86 3c 57 fe cb 7f ff ff 4f dc cf fd 2a fe ff e3 18 ....Y...!.....a.<W.....O...*....
2b5c0 c4 ed 10 00 a6 2c 00 af f2 80 9a 7f b9 ff ff af dc 47 c0 28 05 03 0b 82 00 c5 01 d0 31 b1 4c 0c .....,...........G.(........1.L.
2b5e0 72 9a 03 2a 50 4c 0c 51 0b 0c 6d a7 b9 8c 3c f0 d3 0c 09 20 45 4c 01 90 1e 80 20 18 86 66 1e 48 r..*PL.Q..m...<.....EL.......f.H
2b600 75 c2 46 c8 d5 ff e3 18 c4 e8 0d 50 a6 30 00 af f2 80 ff fb 7f a8 37 20 84 18 02 04 20 61 11 00 u.F........P.0........7......a..
2b620 18 f4 54 06 70 16 81 b6 c9 06 10 d0 1f e6 8e f8 fb 26 50 40 17 66 0e 58 03 00 20 5f 0c 05 70 09 ..T.p............&P@.f.X..._..p.
2b640 4c fa c5 20 18 3c 74 8a 9b ff ff fd 10 ff e3 18 c4 ed 0c b0 a6 30 00 06 fc 44 f8 01 b3 60 04 18 L....<t..............0...D...`..
2b660 05 03 c0 54 4c 06 21 3b 81 9d a2 86 0a 88 76 e6 5d 53 73 a6 34 58 5e a6 09 60 20 06 04 58 10 a6 ...TL.!;......v.]Ss.4X^..`...X..
2b680 02 b0 0a 87 85 47 4a 66 a0 00 61 e2 bf ff ff fe 9f f4 ff ff fe ff e3 18 c4 f5 11 b0 a6 28 00 af .....GJf..a..................(..
2b6a0 f2 80 ff ff ed ff ff eb 12 2d a9 87 86 19 00 d9 9a 22 9a 1b e1 b9 7f 98 22 a1 ad 19 2f cc 7d 18 .........-......."......".../.}.
2b6c0 a9 a1 52 18 1b c0 6b 98 08 a0 2b 02 00 13 12 00 28 04 01 48 38 01 a2 de cf aa ff df ea ff e3 18 ..R...k...+.....(..H8...........
2b6e0 c4 e9 0d d0 a6 2c 00 af f2 80 fa 83 27 08 01 80 d0 3e 06 01 0c 01 8c 42 40 28 d5 03 6c 83 cc 21 .....,......'....>.....B@(..l..!
2b700 c0 27 8d 1f b1 54 0c a1 80 21 8c 1c f0 0c cc 0c 60 0b 0c 06 10 0e 4d dc cc 28 84 67 90 11 5a ff .'...T...!......`.....M..(.g..Z.
2b720 ff fd 84 78 03 ff e3 18 c4 ec 0d c0 aa 2c 00 af f2 80 40 30 44 24 00 21 90 18 34 74 01 a8 b0 31 ...x.........,....@0D$.!..4t...1
2b740 f4 d0 c0 db 10 6c c7 f2 79 bc c4 73 0d 0c c0 ca 04 68 c0 63 02 34 c0 46 01 40 ee 80 ed 1c 23 00 .....l..y..s.....h.c.4.F.@....#.
2b760 c3 e4 2e ff ff ff ff fb bf ff ff a6 ff ff e3 18 c4 f0 10 80 a6 2c 00 af f2 80 ff fd c4 06 00 c0 .....................,..........
2b780 08 18 24 24 06 1c 0f 81 8e 08 20 65 33 60 1a 51 b6 60 b4 85 c4 66 16 2b 10 63 68 84 84 60 95 01 ..$$.......e3`.Q.`...f.+.ch..`..
2b7a0 62 60 36 80 78 0e 00 c4 42 43 52 4c e0 2d 8c bf ff ff ff ff ff ff e3 18 c4 e9 0d 08 a6 30 00 06 b`6.x...BCRL.-...............0..
2b7c0 fe 44 ff ff ff fa 2a ff ff d2 cb 14 00 61 18 09 8c 80 40 70 19 18 27 00 91 85 78 32 98 e0 0c c1 .D....*......a....@p..'...x2....
2b7e0 f8 ee 2c 1c 3d 0a 41 8c 28 38 98 53 02 11 82 b8 1d 9b f5 99 8d 02 49 11 05 4d ff ff fd ff e3 18 ..,.=.A.(8.S..........I..M......
2b800 c4 ef 0d f0 a6 2c 00 af f2 80 84 90 28 07 01 a1 68 18 8c 18 06 21 24 01 81 93 20 42 8c 60 1d 88 .....,......(...h....!$....B.`..
2b820 96 61 7c 3f 82 60 d2 86 ce 60 24 02 44 60 16 81 16 60 17 00 90 74 24 12 d8 d6 04 47 c1 ce ff ff .a|?.`...`$.D`...`...t$....G....
2b840 ff ff fd 2a ff ff e3 18 c4 f2 0f f0 a6 2c 00 af f2 80 ff f5 a4 16 05 30 31 63 18 1f 33 83 93 5d ...*.........,.........01c..3..]
2b860 54 3a ca 93 06 94 23 a3 38 81 0c e3 1f ac 1b a3 05 80 07 f3 02 24 01 c0 80 17 04 40 09 01 00 13 T:....#.8............$.....@....
2b880 02 80 08 14 00 06 9e ff ff fd c3 93 01 ff e3 18 c4 ed 10 10 a6 30 00 af f0 80 00 60 01 08 85 80 .....................0.....`....
2b8a0 03 06 80 40 c9 44 60 35 9b 0c c1 ce 0a f8 cf a1 52 88 c8 c6 08 c8 c1 95 03 04 c0 b4 01 a8 c0 65 ...@.D`5........R..............e
2b8c0 01 44 ef d4 de 70 c9 2c 10 24 bb ff bf ff ff ff ff ff ff ff ff ff e3 18 c4 e7 0c b8 a6 30 00 07 .D...p.,.$...................0..
2b8e0 b2 48 dd ff ff fd 84 fa 04 80 c0 61 60 18 18 9c 30 06 31 28 01 8a 93 a0 63 5a 31 80 f0 22 29 88 .H.........a`...0.1(....cZ1..").
2b900 ce fc 89 84 d4 1b 09 80 9a 08 e0 88 08 33 00 48 03 a3 78 02 74 86 b1 1a 3a 4d ff ec ff ff e3 18 .............3.H..x.t...:M......
2b920 c4 ef 0f 18 a6 2c 00 af f2 80 ff f5 94 28 12 09 18 31 01 b3 34 2b 35 f3 63 ba 65 31 cb 16 23 f5 .....,.......(...1..4+5.c.e1..#.
2b940 8a aa 38 9b 10 c3 18 40 3d 16 13 e3 04 00 10 30 02 01 e2 00 17 10 80 40 a0 01 d7 fd 5f ff ad c3 ..8....@=......0.......@...._...
2b960 2f 80 20 00 0c ff e3 18 c4 ed 0d 70 a6 30 00 06 fe 44 12 05 05 01 80 54 3a 06 30 34 01 a3 df a6 /..........p.0...D.....T:.04....
2b980 0c 00 6e 06 69 9b 34 c6 3b 30 57 c6 0a a8 1e 26 04 d0 0f c6 02 e8 0a a7 8d e7 32 c6 88 a0 20 25 ..n.i.4.;0W....&..........2....%
2b9a0 df fe 9d aa d7 ff f1 4d 40 40 e3 0e 05 ff e3 18 c4 f2 10 78 a6 2c 00 af f2 80 4c 66 28 32 49 88 .......M@@.........x.,....Lf(2I.
2b9c0 ca 8b 13 41 d9 0c 12 e1 27 4c a3 b8 81 cc 5b 40 e9 4c 0e f0 4c 0c 04 40 21 49 00 2e 28 00 b0 04 ...A....'L....[@.L..L..@!I..(...
2b9e0 02 90 28 03 90 70 02 d0 87 7f 4e ff fe cf ff f5 7f ff d1 ff ff ff e3 18 c4 eb 0e 40 a6 2c 00 af ..(..p....N................@.,..
2ba00 f2 80 a2 af d3 ff ab ed fc 32 60 80 1a 04 43 c0 60 80 e8 18 e0 42 06 6f 0a 01 b7 02 26 10 f8 07 .........2`...C.`....B.o....&...
2ba20 86 90 40 48 c6 50 f8 02 c0 60 e8 0c 0c 50 05 cc 05 c0 0b 8d 6b 81 31 92 1c 54 26 bf ee ff e3 18 ..@H.P...`...P......k.1..T&.....
2ba40 c4 ed 0c 80 a6 30 00 06 fc 44 ff ff fd c4 a6 0d 8e 00 d0 5c 06 83 a0 10 29 03 04 1b 80 c9 ef f3 .....0...D.........\....).......
2ba60 03 c8 37 03 22 cd 9a 23 13 78 2b c3 03 74 0e b3 01 90 07 43 01 0c 04 73 9d f3 88 60 74 61 80 4f ..7."..#.x+..t.....C...s...`ta.O
2ba80 7f e8 ff ff f4 ff e3 18 c4 f6 0e d8 a6 2c 00 af f2 80 fa 55 ff ff c1 86 96 78 c3 04 4c 7c 70 ce .............,.....U.....x..L|p.
2baa0 50 8d 31 d4 e1 7b 8c 14 20 c9 4c ae d5 da cc 61 a0 9d cc 10 70 31 0c 05 a0 12 cc 00 b0 01 8b 92 P.1..{....L....a....p1..........
2bac0 60 08 80 08 06 00 44 b6 d3 9c b6 00 05 ff e3 18 c4 f5 11 b8 a6 28 00 07 3e 44 92 08 1c f5 a3 53 `.....D..............(..>D.....S
2bae0 f5 fc 0c 67 ea a0 b0 25 f9 1a 5e 71 05 18 62 83 99 b8 81 ff 99 f7 82 d9 85 30 0a 18 1f 80 49 80 ...g...%..^q..b..........0....I.
2bb00 b0 04 01 00 09 01 6b c1 9f b7 db df fd 5a bf ff ff b3 ff ff ff ff e3 18 c4 e9 0e 00 a6 2c 00 af ......k......Z...............,..
2bb20 f2 80 ff 73 3e a5 ff ff fd c6 4c 36 00 70 48 00 84 20 60 a1 68 21 35 01 84 5e 26 03 50 67 46 22 ...s>.....L6.pH...`.h!5..^&.PgF"
2bb40 db 03 06 13 50 51 c6 03 38 1a e6 01 80 0c 86 01 38 06 a7 b6 83 e8 2d b4 20 9e f6 ff ff ff e3 18 ....PQ..8.......8.....-.........
2bb60 c4 ec 0f 10 a6 30 00 af f2 80 c3 f5 01 20 20 30 30 5c 0c 36 1e 03 1d 8f 00 cb 06 30 35 1b 08 c1 .....0.........00\.6.......05...
2bb80 8a 0a 54 cd 3f 4d 5c c7 6a 08 0c c1 49 02 60 c0 7c 00 bc a0 04 a2 a3 4c 6e 31 0c b5 52 cf ff ff ..T.?M\.j...I.`.|......Ln1..R...
2bba0 ff ff 52 ff ff ff e3 18 c4 ea 0d 80 aa 30 00 06 fe 44 f5 e0 23 00 50 a0 07 10 80 18 d0 10 18 23 ..R..........0...D..#.P........#
2bbc0 81 49 85 20 44 18 d6 90 39 f4 07 b4 9c 11 8c f9 8b a0 46 18 51 82 79 82 b0 20 1c 55 1a 6c 98 03 .I..D...9.........F.Q.y....U.l..
2bbe0 05 c3 a5 ff ff ff ff fd f5 fe af ff dc ff e3 18 c4 ef 10 60 a2 4a 58 3e bc 60 4c 81 40 28 05 0b ...................`.JX>.`L.@(..
2bc00 80 c4 81 30 31 41 34 0c 36 9a 03 08 52 4c 01 91 13 8c 13 e7 f6 0c 0a 10 da 07 01 23 30 02 80 88 ...01A4.6...RL.............#0...
2bc20 30 08 c0 43 38 cb 17 50 ad 92 84 64 ff ff ff ff fd 7f ff ff ff ff e3 18 c4 e8 0d 00 a6 34 00 af 0..C8..P...d.................4..
2bc40 f0 80 ff fe a5 ff fd e0 a1 a1 70 a3 02 21 31 b2 43 45 3c 37 05 53 d3 a0 30 7f 02 1b 34 3a 4f e3 ..........p..!1.CE<7.S..0...4:O.
2bc60 32 5f 01 9f 30 6b 40 70 30 2b 00 0f 30 11 40 0b 00 80 42 15 00 70 10 00 68 5c 00 6a 45 ff e3 18 2_..0k@p0+..0.@...B..p..h\.jE...
2bc80 c4 ef 0e e8 a6 30 00 af f0 80 ff ff fd 84 70 0d be 06 00 02 05 b3 00 40 40 18 cc 96 06 8a 61 18 .....0........p........@@.....a.
2bca0 2e a1 5d 99 97 8a 3c 98 e4 a1 16 98 28 c0 5e 18 12 20 31 98 0a 40 23 1c d4 1b 69 99 01 16 7e 5a ..]...<.....(.^...1..@#...i...~Z
2bcc0 ff ff fd c5 2c ff e3 18 c4 ee 0e 18 a6 30 00 07 b2 48 0d 89 03 08 81 00 c4 01 50 31 61 14 0c 5e ....,........0...H........P1a..^
2bce0 84 03 23 45 cc 0a 90 e9 8c 60 06 c7 8c 35 30 b8 8c 07 c0 3b cc 01 30 1a 00 a0 13 87 8c 4f 22 62 ..#E.....`...50....;..0......O"b
2bd00 16 2c 8f ff ff fb bf ff ff df ff ff fd ff e3 18 c4 f0 10 60 a6 2c 00 af f2 80 00 dc 82 10 60 08 .,.................`.,........`.
2bd20 10 81 84 44 00 63 d1 50 19 c0 5a 06 db 24 18 43 00 7f 9a 3b e3 ec 99 41 00 5d 98 39 60 0c 00 81 ...D.c.P..Z..$.C...;...A.].9`...
2bd40 7c 30 15 c0 25 33 eb 14 80 60 f1 d2 2a 7f ff ff ff ff ff ff ff ff e3 18 c4 e9 0d e0 a6 2c 00 06 |0..%3...`..*................,..
2bd60 fe 44 f6 aa ff ff fe 28 00 b4 70 0e 02 02 c0 a0 42 18 03 09 95 40 ca 8c e3 03 f4 2d 73 23 e1 54 .D.....(..p.....B....@.....-s#.T
2bd80 53 14 14 24 13 03 80 0c 03 01 94 05 f3 00 f0 03 a3 f6 8f 27 05 41 00 73 b5 ff ff eb 12 ff e3 18 S..$...............'.A.s........
2bda0 c4 ec 0d 78 a6 30 00 af f2 80 2d a9 87 86 19 00 d9 9a 22 9a 1b e1 b9 7f 98 22 a1 ad 19 2f cc 7d ...x.0....-......."......".../.}
2bdc0 18 a9 a1 52 18 1b c0 6b 98 08 a0 2b 02 00 13 12 00 18 04 01 48 38 01 a2 de cf aa b6 80 04 92 c9 ...R...k...+........H8..........
2bde0 24 a6 9d 3e a4 ff e3 18 c4 f1 0f 38 a6 30 00 af f0 80 5f c1 d0 49 62 4e b2 e1 22 78 18 64 39 dc $..>.......8.0...._..IbN.."x.d9.
2be00 a8 05 55 82 c2 98 d0 08 ae dc 38 02 6e 83 bb d5 e2 bf d4 a3 65 15 6d 3a bf fe c4 7f fd 1a 34 ea ..U.......8.n.......e.m:......4.
2be20 ff 77 b2 ff fa bf d8 47 80 34 03 04 42 ff e3 18 c4 ef 0f c8 a6 2c 00 af f2 80 40 02 19 01 83 47 .w.....G.4..B........,....@....G
2be40 40 12 8b 03 1f 4d 0c 0d b1 06 cc 7f 27 9b cc 47 30 d0 cc 0c a0 46 8c 06 30 23 4c 04 60 14 0e e8 @....M......'..G0....F..0#L.`...
2be60 0e d1 c2 30 0e 3e 43 ff ff ff ff ff ff fe ea ff ff fd c3 2f 00 ff e3 18 c4 ea 0d 18 a6 34 00 af ...0.>C............/.........4..
2be80 f0 80 20 14 0c 1e 1a 03 13 09 c0 c8 c4 f0 33 19 f8 0d 58 fd 30 67 c3 4c 33 78 98 8a 31 f1 c2 96 ..............3...X.0g.L3x..1...
2bea0 30 55 80 cd 30 1f c0 4a 03 00 82 17 41 c1 e6 b2 00 03 2f 5f f6 df ed 5d ab ff ff e1 7e ff e3 18 0U..0..J....A...../_...]....~...
2bec0 c4 f0 0d 08 a6 30 00 06 fe 44 c0 70 40 05 c4 20 54 24 02 85 60 33 70 88 0d da 8b 30 93 82 1c 34 .....0...D.p@...T$..`3p....0...4
2bee0 e8 d0 0c 32 c2 01 b2 30 80 40 9b 30 38 00 5e 30 1e 40 55 36 30 4c c2 a3 06 54 2c 32 55 ff fe df ...2...0.@.08.^0.@U60L...T,2U...
2bf00 ff ff ff ff fe ff e3 18 c4 f6 0e b0 a2 6a 58 16 3a 62 63 dd ff 53 15 ff ff fd 85 10 2e 38 12 0e .............jX.:bc..S.......8..
2bf20 81 86 c1 00 61 91 d0 18 09 02 05 23 46 01 88 78 26 14 c3 7b e6 0b 78 5f 26 01 e0 1f 86 01 28 0e ....a......#F..x&..{..x_&.....(.
2bf40 e6 01 30 07 86 f1 81 a3 8f 48 44 3c 9b ff e3 18 c4 f6 0f a0 a6 2c 00 af f2 80 8a ff ff ea f2 0b ..0......HD<.........,..........
2bf60 02 98 18 b1 8c 0f 99 c1 c9 ae aa 1d 65 49 83 4a 11 d1 9c 40 86 71 8f d6 0d d1 82 c0 03 f9 81 12 ............eI.J...@.q..........
2bf80 00 e0 40 0b 82 20 04 80 80 09 81 40 04 0a 00 03 4f ff ff fd 41 ff e3 18 c4 f2 0e e8 a6 2c 00 af ..@........@....O...A........,..
2bfa0 f0 80 fb 80 b0 08 02 41 61 6b 80 0c 0f 03 1f 0e 80 d3 2a 73 06 48 26 63 36 dd 21 c3 1e c0 1e a3 .......Aak........*s.H&c6.!.....
2bfc0 05 84 0a 73 02 68 05 a3 01 54 04 33 96 b3 59 63 14 50 60 14 ca ff ff ff ff ff ff c3 ff ff e3 18 ...s.h...T.3..Yc.P`.............
2bfe0 c4 f1 11 10 a6 28 00 af f4 80 ff ff f7 fc 5c 80 00 08 0c 03 00 01 84 80 0f 06 00 38 60 19 81 ee .....(........\............8`...
2c000 60 a6 82 22 60 aa 86 5a 60 8a b4 5e 61 e5 06 d6 61 33 82 96 60 8f 82 12 60 48 80 36 60 04 80 a2 `.."`..Z`..^a...a3..`...`H.6`...
2c020 60 31 80 76 60 ff e3 18 c4 e7 0d 98 aa 30 00 af f2 80 10 80 3a 1c 00 94 9a fa 48 24 b7 dc 30 7f `1.v`........0......:.....H$..0.
2c040 60 28 6d fe ff df de ce 9e d3 a2 e0 39 2b cb f5 ae cb 19 41 ca 90 c7 92 dc 1a 18 04 39 45 ea e3 `(m.........9+.....A........9E..
2c060 cd a8 f1 ba 6e 80 2b c0 ac 88 00 f1 12 ff e3 18 c4 eb 0d 78 a6 30 00 06 fe 44 e1 fd 16 f4 19 d3 ....n.+............x.0...D......
2c080 b2 13 61 ea 4c 62 f1 d7 2e ff df fc e1 66 84 8b 37 ff 58 48 88 b8 c2 2d ff f5 8c 22 b7 31 7f ff ..a.Lb.......f..7.XH...-...".1..
2c0a0 f6 2e 0f ff fe 52 95 8c 63 54 30 10 13 85 01 13 0c 02 02 25 83 ff e3 18 c4 f0 0d 98 a6 30 00 af .....R..cT0........%.........0..
2c0c0 f2 80 01 0a 50 a1 8c 70 29 a1 20 b9 0d e8 51 d1 5d 04 57 06 e2 15 f8 d5 4c 41 4d 45 33 2e 31 30 ....P..p).....Q.].W.....LAME3.10
2c0e0 30 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 ff e3 18 0UUUUUUUUUUUUUUUUUUUUUUUUUUUU...
2c100 c4 f4 12 a0 a6 30 01 5f 00 00 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 .....0._..UUUUUUUUUUUUUUUUUUUUUU
2c120 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
2c140 55 55 55 55 55 ff e3 18 c4 e4 16 b1 66 a4 29 9a 68 00 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUU.......f.).h.UUUUUUUUUUUUUU
2c160 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
2c180 55 55 55 55 55 55 55 55 55 55 55 55 55 ff e3 18 c4 c4 0a 08 bd a0 21 c2 08 01 55 55 55 55 55 55 UUUUUUUUUUUUU.........!...UUUUUU
2c1a0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
2c1c0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 00 00 00 00 00 00 00 00 00 00 00 UUUUUUUUUUUUUUUUUUUUU...........
2c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c200 65 6d 6d 73 2d 32 34 2f 41 55 54 48 4f 52 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/AUTHORS.................
2c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2c280 30 30 30 36 31 35 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 37 36 31 00 20 30 00 00 00 0006156.00000000000.011761..0...
2c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2c320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c400 54 68 69 73 20 66 69 6c 65 20 6c 69 73 74 73 20 61 6c 6c 20 70 65 6f 70 6c 65 20 77 68 6f 20 63 This.file.lists.all.people.who.c
2c420 6f 6e 74 72 69 62 75 74 65 64 20 6d 6f 72 65 20 74 68 61 6e 20 61 20 66 65 77 20 6c 69 6e 65 73 ontributed.more.than.a.few.lines
2c440 20 74 6f 0a 65 6d 6d 73 2e 20 20 54 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 .to.emms...This.is.necessary.to.
2c460 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 70 65 6f 70 6c 65 20 77 68 6f 20 68 61 76 65 20 63 6f keep.track.of.people.who.have.co
2c480 70 79 72 69 67 68 74 0a 63 6c 61 69 6d 73 20 6f 6e 20 73 6f 75 72 63 65 73 2c 20 73 6f 20 70 6c pyright.claims.on.sources,.so.pl
2c4a0 65 61 73 65 20 64 6f 6e 27 74 20 62 65 20 74 6f 6f 20 68 75 6d 62 6c 65 20 61 6e 64 20 61 64 64 ease.don't.be.too.humble.and.add
2c4c0 20 79 6f 75 72 73 65 6c 66 2e 0a 0a 0a 41 6c 65 78 20 4b 6f 73 74 20 20 20 20 20 09 20 20 20 20 .yourself....Alex.Kost..........
2c4e0 20 20 20 20 20 3c 61 6c 65 7a 6f 73 74 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 41 6b 69 74 6f 20 4d .....<alezost@gmail.com>.Akito.M
2c500 69 6b 61 6d 69 09 09 20 3c 6d 65 40 61 36 34 2e 77 6f 72 6b 3e 0a 42 72 61 6d 20 76 61 6e 20 64 ikami...<me@a64.work>.Bram.van.d
2c520 65 72 20 4b 72 6f 65 66 20 20 20 20 20 20 20 3c 62 72 61 6d 40 66 6f 72 74 66 72 61 6e 63 65 73 er.Kroef.......<bram@fortfrances
2c540 2e 63 6f 6d 3e 0a 42 72 75 6e 6f 20 46 c3 a9 6c 69 78 20 52 2e 20 52 69 62 65 69 72 6f 09 20 3c .com>.Bruno.F..lix.R..Ribeiro..<
2c560 6f 69 74 6f 66 65 6c 69 78 40 67 6e 75 2e 6f 72 67 3e 0a 44 61 69 6d 72 6f 64 20 20 20 20 20 20 oitofelix@gnu.org>.Daimrod......
2c580 09 09 20 3c 64 61 69 6d 72 6f 64 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 44 61 6d 69 65 6e 20 45 6c ...<daimrod@gmail.com>.Damien.El
2c5a0 6d 65 73 09 09 20 3c 65 6d 61 63 73 40 72 65 70 6f 73 65 2e 63 78 3e 0a 44 61 6e 69 65 6c 20 42 mes...<emacs@repose.cx>.Daniel.B
2c5c0 72 6f 63 6b 6d 61 6e 09 09 20 3c 64 61 6e 69 65 6c 40 62 72 6f 63 6b 6d 61 6e 2e 73 65 3e 0a 44 rockman...<daniel@brockman.se>.D
2c5e0 61 6e 69 65 6c 20 44 65 68 65 6e 6e 69 6e 20 20 20 20 20 20 20 20 20 20 3c 64 61 6e 69 65 6c 2e aniel.Dehennin..........<daniel.
2c600 64 65 68 65 6e 6e 69 6e 40 62 61 62 79 2d 67 6e 75 2e 6f 72 67 3e 0a 44 61 6e 69 65 6c 20 53 65 dehennin@baby-gnu.org>.Daniel.Se
2c620 6d 79 6f 6e 6f 76 20 20 20 20 20 20 20 20 20 20 3c 64 61 6e 69 65 6c 40 64 73 65 6d 79 2e 63 6f myonov..........<daniel@dsemy.co
2c640 6d 3e 0a 44 61 76 69 64 20 45 6e 67 73 74 65 72 09 09 20 3c 64 65 6e 67 40 72 61 6e 64 6f 6d 73 m>.David.Engster...<deng@randoms
2c660 61 6d 70 6c 65 2e 64 65 3e 0a 45 72 69 63 61 20 4c 69 6e 61 20 51 69 09 09 20 3c 45 72 69 63 61 ample.de>.Erica.Lina.Qi...<Erica
2c680 4c 69 6e 61 51 69 40 70 72 6f 74 6f 6e 2e 6d 65 3e 0a 46 65 6e 67 20 53 68 75 20 20 20 20 20 20 LinaQi@proton.me>.Feng.Shu......
2c6a0 20 20 20 20 20 20 20 20 20 20 20 3c 74 75 6d 61 73 68 75 40 31 36 33 2e 63 6f 6d 3e 0a 47 72 61 ...........<tumashu@163.com>.Gra
2c6c0 6e 74 20 53 68 61 6e 67 72 65 61 75 78 09 20 3c 67 72 61 6e 74 40 63 68 75 72 6c 73 2e 77 6f 72 nt.Shangreaux..<grant@churls.wor
2c6e0 6c 64 3e 0a 49 61 6e 20 45 75 72 65 09 09 20 3c 69 61 6e 40 72 65 74 72 6f 73 70 65 63 2e 74 76 ld>.Ian.Eure...<ian@retrospec.tv
2c700 3e 0a 4a 65 61 6e 2d 50 68 69 6c 69 70 70 65 20 54 68 65 62 65 72 67 65 09 20 3c 6a 70 68 69 6c >.Jean-Philippe.Theberge..<jphil
2c720 74 68 65 62 65 72 67 65 40 76 69 64 65 6f 74 72 6f 6e 2e 63 61 3e 0a 4a 6f 72 67 65 6e 20 53 63 theberge@videotron.ca>.Jorgen.Sc
2c740 68 61 65 66 65 72 09 09 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 4a 6f 73 65 haefer...<forcer@forcix.cx>.Jose
2c760 20 41 6e 74 6f 6e 69 6f 20 4f 72 74 65 67 61 20 52 75 69 7a 20 3c 6a 61 6f 40 67 6e 75 2e 6f 72 .Antonio.Ortega.Ruiz.<jao@gnu.or
2c780 67 3e 0a 4c 61 77 72 65 6e 63 65 20 4d 69 74 63 68 65 6c 6c 09 20 3c 77 65 6e 63 65 40 67 6d 78 g>.Lawrence.Mitchell..<wence@gmx
2c7a0 2e 6c 69 3e 0a 4c 75 63 61 73 20 42 6f 6e 6e 65 74 09 09 20 3c 6c 75 63 61 73 40 72 69 6e 63 65 .li>.Lucas.Bonnet...<lucas@rince
2c7c0 76 65 6e 74 2e 6e 65 74 3e 0a 4d 61 72 69 6f 20 44 6f 6d 67 c3 b6 72 67 65 6e 09 09 20 3c 6b 61 vent.net>.Mario.Domg..rgen...<ka
2c7e0 6e 61 6c 64 72 61 63 68 65 40 67 6d 78 2e 64 65 3e 0a 4d 61 72 69 6f 20 4c 61 6e 67 09 09 20 3c naldrache@gmx.de>.Mario.Lang...<
2c800 6d 6c 61 6e 67 40 64 65 6c 59 73 69 64 2e 6f 72 67 3e 0a 4d 61 72 74 69 6e 20 53 63 68 6f 65 6e mlang@delYsid.org>.Martin.Schoen
2c820 6d 61 6b 65 72 73 09 20 3c 61 69 76 69 72 75 40 64 69 61 6d 6f 6e 64 2d 61 67 65 2e 6e 65 74 3e makers..<aiviru@diamond-age.net>
2c840 0a 4d 61 74 74 68 65 77 20 4b 65 6e 6e 65 64 79 09 09 20 3c 6d 6b 65 6e 6e 65 64 79 40 67 65 6e .Matthew.Kennedy...<mkennedy@gen
2c860 74 6f 6f 2e 6f 72 67 3e 0a 4d 69 63 68 61 65 6c 20 4f 6c 73 6f 6e 09 09 20 3c 6d 77 6f 6c 73 6f too.org>.Michael.Olson...<mwolso
2c880 6e 40 67 6e 75 2e 6f 72 67 3e 0a 4d 6f 72 67 61 6e 20 53 6d 69 74 68 20 20 20 20 20 20 20 20 20 n@gnu.org>.Morgan.Smith.........
2c8a0 20 20 20 20 3c 4d 6f 72 67 61 6e 2e 4a 2e 53 6d 69 74 68 40 6f 75 74 6c 6f 6f 6b 2e 63 6f 6d 3e ....<Morgan.J.Smith@outlook.com>
2c8c0 0a 4e 69 63 6b 20 41 6c 63 6f 63 6b 20 09 09 20 3c 6e 69 78 40 65 73 70 65 72 69 2e 6f 72 67 2e .Nick.Alcock....<nix@esperi.org.
2c8e0 75 6b 3e 0a 4f 6d 61 72 20 50 6f 6c 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f 70 uk>.Omar.Polo................<op
2c900 40 6f 6d 61 72 70 6f 6c 6f 2e 63 6f 6d 3e 0a 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e @omarpolo.com>.Petteri.Hintsanen
2c920 20 20 20 20 20 20 20 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 50 69 65 72 72 65 ........<petterih@iki.fi>.Pierre
2c940 20 4e 65 69 64 68 61 72 64 74 09 20 3c 6d 61 69 6c 40 61 6d 62 72 65 76 61 72 2e 78 79 7a 3e 0a .Neidhardt..<mail@ambrevar.xyz>.
2c960 73 74 61 72 64 69 76 69 6e 65 72 20 09 09 20 3c 6e 75 6d 62 63 68 69 6c 64 40 67 6d 61 69 6c 2e stardiviner....<numbchild@gmail.
2c980 63 6f 6d 3e 0a 54 61 73 73 69 6c 6f 20 48 6f 72 6e 09 09 20 3c 74 61 73 73 69 6c 6f 40 6d 65 6d com>.Tassilo.Horn...<tassilo@mem
2c9a0 62 65 72 2e 66 73 66 2e 6f 72 67 3e 0a 54 68 69 65 72 72 79 20 56 6f 6c 70 69 61 74 74 6f 0a 54 ber.fsf.org>.Thierry.Volpiatto.T
2c9c0 72 65 6e 74 20 42 75 63 6b 09 09 20 3c 74 72 65 6e 74 62 75 63 6b 40 67 6d 61 69 6c 2e 63 6f 6d rent.Buck...<trentbuck@gmail.com
2c9e0 3e 0a 55 6c 72 69 6b 20 4a 65 6e 73 65 6e 09 09 20 3c 74 65 72 72 79 70 40 64 61 69 6d 69 2e 61 >.Ulrik.Jensen...<terryp@daimi.a
2ca00 75 2e 64 6b 3e 0a 57 61 72 72 65 6e 20 57 69 6c 6b 69 6e 73 6f 6e 20 20 20 20 20 20 20 20 20 3c u.dk>.Warren.Wilkinson.........<
2ca20 77 61 72 72 65 6e 77 69 6c 6b 69 6e 73 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 57 69 6c 6c 69 warrenwilkinson@gmail.com>.Willi
2ca40 61 6d 20 58 75 09 09 20 3c 77 69 6c 6c 69 61 6d 2e 78 77 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a am.Xu...<william.xwl@gmail.com>.
2ca60 59 65 20 57 65 6e 62 69 6e 09 09 20 3c 77 65 6e 62 69 6e 79 65 40 67 6d 61 69 6c 2e 63 6f 6d 3e Ye.Wenbin...<wenbinye@gmail.com>
2ca80 0a 59 6f 6e 69 20 28 4a 6f 68 6e 61 74 68 61 6e 29 20 52 61 62 6b 69 6e 20 20 3c 79 72 6b 40 67 .Yoni.(Johnathan).Rabkin..<yrk@g
2caa0 6e 75 2e 6f 72 67 3e 0a 6d 61 74 68 69 61 73 2e 64 61 68 6c 20 09 09 20 3c 6d 61 74 68 69 61 73 nu.org>.mathias.dahl....<mathias
2cac0 2e 64 61 68 6c 3e 0a 52 61 73 6d 75 73 20 50 61 6e 6b 20 52 6f 75 6c 75 6e 64 20 20 20 20 20 20 .dahl>.Rasmus.Pank.Roulund......
2cae0 3c 65 6d 61 63 73 40 70 61 6e 6b 2e 65 75 3e 0a 52 69 63 68 61 72 64 20 53 65 6e 74 09 09 20 3c <emacs@pank.eu>.Richard.Sent...<
2cb00 72 69 63 68 61 72 64 40 66 72 65 61 6b 69 6e 67 70 65 6e 67 75 69 6e 2e 63 6f 6d 3e 0a 53 65 61 richard@freakingpenguin.com>.Sea
2cb20 6e 20 4d 63 41 66 65 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 65 65 66 61 63 6d 40 67 6d n.McAfee..............<eefacm@gm
2cb40 61 69 6c 2e 63 6f 6d 3e 0a 5a 48 41 4e 47 20 57 65 69 79 69 20 09 09 20 3c 64 6f 63 68 61 6e 67 ail.com>.ZHANG.Weiyi....<dochang
2cb60 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 4d 69 6b 65 20 4b 61 7a 61 6e 74 73 65 76 20 20 20 20 20 20 @gmail.com>.Mike.Kazantsev......
2cb80 20 20 20 20 20 3c 6d 6b 2e 66 72 61 67 67 6f 64 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 46 72 61 6e .....<mk.fraggod@gmail.com>.Fran
2cba0 20 42 75 72 73 74 61 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 3c 66 72 61 6e 2e 62 75 72 73 74 .Burstall............<fran.burst
2cbc0 61 6c 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 all@gmail.com>...The.following.i
2cbe0 73 20 61 20 6c 69 73 74 20 6f 66 20 70 65 6f 70 6c 65 20 77 68 6f 20 63 6f 6e 74 72 69 62 75 74 s.a.list.of.people.who.contribut
2cc00 65 64 20 74 72 69 76 69 61 6c 20 70 61 74 63 68 65 73 2c 0a 77 68 69 63 68 20 69 73 20 74 6f 20 ed.trivial.patches,.which.is.to.
2cc20 73 61 79 2c 20 73 69 6d 70 6c 65 20 70 61 74 63 68 65 73 20 61 6e 64 20 74 68 6f 73 65 20 77 69 say,.simple.patches.and.those.wi
2cc40 74 68 20 74 6f 74 61 6c 20 6f 66 20 31 32 20 6c 69 6e 65 73 20 6f 72 0a 66 65 77 65 72 2e 20 57 th.total.of.12.lines.or.fewer..W
2cc60 65 20 73 74 61 72 74 65 64 20 72 65 63 6f 72 64 69 6e 67 20 74 72 69 76 69 61 6c 20 70 61 74 63 e.started.recording.trivial.patc
2cc80 68 65 73 20 74 68 69 73 20 77 61 79 20 69 6e 20 4a 75 6e 65 20 6f 66 20 32 30 31 37 2c 0a 73 6f hes.this.way.in.June.of.2017,.so
2cca0 20 74 72 69 76 69 61 6c 20 70 61 74 63 68 65 73 20 62 65 66 6f 72 65 20 74 68 61 74 20 64 61 74 .trivial.patches.before.that.dat
2ccc0 65 20 77 6f 75 6c 64 20 6e 6f 74 20 61 70 70 65 61 72 20 62 65 6c 6f 77 2e 0a 0a 41 6c 65 78 69 e.would.not.appear.below...Alexi
2cce0 73 20 09 09 09 20 3c 66 6c 65 78 69 62 65 61 73 74 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 41 6c 66 s.....<flexibeast@gmail.com>.Alf
2cd00 72 65 64 20 4d 2e 20 53 7a 6d 69 64 74 20 20 20 20 20 20 09 20 3c 61 6d 73 40 67 6e 75 2e 6f 72 red.M..Szmidt........<ams@gnu.or
2cd20 67 3e 0a 42 72 69 61 6e 20 4c 65 75 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 65 75 g>.Brian.Leung..............<leu
2cd40 6e 67 62 6b 40 70 6f 73 74 65 6f 2e 6e 65 74 3e 0a 43 68 72 69 73 74 69 61 6e 20 46 61 75 6c 68 ngbk@posteo.net>.Christian.Faulh
2cd60 61 6d 6d 65 72 20 09 20 3c 66 61 75 6c 69 40 67 65 6e 74 6f 6f 2e 6f 72 67 3e 0a 44 61 6e 69 65 ammer...<fauli@gentoo.org>.Danie
2cd80 6c 20 43 65 72 71 75 65 69 72 61 20 20 20 20 20 20 20 20 20 3c 64 61 6e 2e 67 69 74 40 6c 69 73 l.Cerqueira.........<dan.git@lis
2cda0 70 63 6c 75 62 2e 63 6f 6d 3e 0a 44 61 76 69 64 20 4d 69 63 68 61 65 6c 0a 44 69 65 74 65 72 20 pclub.com>.David.Michael.Dieter.
2cdc0 44 65 79 6b 65 09 09 20 3c 64 65 79 6b 65 40 79 61 68 6f 6f 2e 63 6f 6d 3e 0a 44 69 72 6b 2d 4a Deyke...<deyke@yahoo.com>.Dirk-J
2cde0 61 6e 20 43 2e 20 42 69 6e 6e 65 6d 61 20 09 20 3c 64 6a 63 62 2e 62 75 6c 6b 40 67 6d 61 69 6c an.C..Binnema...<djcb.bulk@gmail
2ce00 2e 63 6f 6d 3e 0a 65 72 69 63 61 6c 69 6e 61 67 20 20 09 09 20 3c 65 72 69 63 61 6c 69 6e 61 67 .com>.ericalinag.....<ericalinag
2ce20 65 62 68 61 72 74 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 68 69 65 63 61 71 20 20 20 20 20 20 20 20 ebhart@gmail.com>.hiecaq........
2ce40 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 69 73 40 68 69 65 63 61 71 2e 6f 72 67 3e 0a 49 61 6e ...........<this@hiecaq.org>.Ian
2ce60 20 44 20 09 09 09 20 3c 64 75 6e 6e 69 40 67 6e 75 2e 6f 72 67 3e 0a 49 61 6e 20 44 75 6e 6e 0a .D.....<dunni@gnu.org>.Ian.Dunn.
2ce80 49 73 61 61 63 20 48 61 6c 6c 65 72 09 09 20 3c 69 73 61 61 63 40 68 6c 6c 72 2e 78 79 7a 3e 0a Isaac.Haller...<isaac@hllr.xyz>.
2cea0 4a 65 73 73 65 20 57 65 69 6e 73 74 65 69 6e 09 09 20 3c 6a 65 73 73 77 40 6e 65 74 77 6f 6f 64 Jesse.Weinstein...<jessw@netwood
2cec0 2e 6e 65 74 3e 0a 4b 61 74 68 65 72 69 6e 65 20 57 68 69 74 6c 6f 63 6b 0a 4b 69 65 72 69 6e 20 .net>.Katherine.Whitlock.Kierin.
2cee0 42 65 6c 6c 0a 4c 65 6f 20 4f 6b 61 77 61 20 45 72 69 63 73 6f 6e 0a 4c 75 63 61 20 43 61 70 65 Bell.Leo.Okawa.Ericson.Luca.Cape
2cf00 6c 6c 6f 20 09 09 20 3c 6c 75 63 61 40 70 63 61 2e 69 74 3e 0a 4d 61 6e 64 61 72 20 4d 69 74 72 llo....<luca@pca.it>.Mandar.Mitr
2cf20 61 0a 4d 61 78 69 6d 20 43 6f 75 72 6e 6f 79 65 72 0a 50 61 76 65 6c 20 4b 6f 72 79 74 6f 76 0a a.Maxim.Cournoyer.Pavel.Korytov.
2cf40 52 65 68 61 6e 20 44 61 70 68 65 64 61 72 0a 52 75 66 75 73 20 53 65 67 61 72 20 20 20 20 20 20 Rehan.Daphedar.Rufus.Segar......
2cf60 20 20 20 20 20 20 20 20 3c 72 68 73 40 72 69 73 65 75 70 2e 6e 65 74 3e 0a 52 79 61 6e 20 56 61 ........<rhs@riseup.net>.Ryan.Va
2cf80 6e 20 57 61 67 6f 6e 65 72 0a 53 61 73 63 68 61 20 57 69 6c 64 65 20 09 09 20 3c 77 69 6c 64 65 n.Wagoner.Sascha.Wilde....<wilde
2cfa0 40 73 68 61 2d 62 61 6e 67 2e 64 65 3e 0a 53 65 72 67 65 79 20 54 72 6f 66 69 6d 6f 76 20 20 20 @sha-bang.de>.Sergey.Trofimov...
2cfc0 20 20 20 20 20 20 20 3c 73 61 72 67 40 73 61 72 67 2e 6f 72 67 2e 72 75 3e 0a 53 63 61 72 6c 65 .......<sarg@sarg.org.ru>.Scarle
2cfe0 74 74 20 4d 63 41 6c 6c 69 73 74 65 72 0a 54 6f 6d 20 52 61 75 63 68 65 6e 77 61 6c 64 20 09 20 tt.McAllister.Tom.Rauchenwald...
2d000 3c 69 74 73 2e 73 65 63 40 67 6d 78 2e 6e 65 74 3e 0a 66 6c 65 64 65 72 6d 61 75 73 20 61 74 20 <its.sec@gmx.net>.fledermaus.at.
2d020 23 65 6d 61 63 73 0a 69 6e 64 69 6f 20 6f 6e 20 23 65 6d 61 63 73 0a 74 75 6d 61 73 68 75 0a 0a #emacs.indio.on.#emacs.tumashu..
2d040 0a 3b 3b 20 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 63 6f 64 69 6e 67 3a 20 .;;.Local.variables:.;;.coding:.
2d060 75 74 66 2d 38 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 utf-8.;;.End:...................
2d080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d200 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2e 65 6c 00 00 00 emms-24/emms-lyrics-lrclib.el...
2d220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2d280 30 30 31 32 32 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 33 32 00 20 30 00 00 00 0012221.00000000000.014732..0...
2d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2d320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d400 3b 3b 3b 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2e 65 6c 20 2d 2d 2d 20 46 65 ;;;.emms-lyrics-lrclib.el.---.Fe
2d420 74 63 68 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 6c 79 72 69 63 73 20 74 68 72 6f 75 67 68 20 tch.synchronized.lyrics.through.
2d440 4c 52 43 4c 49 42 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d LRCLIB.-*-.lexical-binding:.t;.-
2d460 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 34 20 46 72 65 65 20 53 *-..;;.Copyright.(C).2024.Free.S
2d480 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 oftware.Foundation,.Inc...;;.Aut
2d4a0 68 6f 72 3a 20 44 61 6e 69 65 6c 20 53 65 6d 79 6f 6e 6f 76 20 3c 64 61 6e 69 65 6c 40 64 73 65 hor:.Daniel.Semyonov.<daniel@dse
2d4c0 6d 79 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 my.com>..;;.This.file.is.part.of
2d4e0 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 .EMMS...;;.EMMS.is.free.software
2d500 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 ;.you.can.redistribute.it.and/or
2d520 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 .modify.it.;;.under.the.terms.of
2d540 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 .the.GNU.General.Public.License.
2d560 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 as.published.by.;;.the.Free.Soft
2d580 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 ware.Foundation;.either.version.
2d5a0 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 3,.or.(at.your.option).;;.any.la
2d5c0 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 ter.version...;;.EMMS.is.distrib
2d5e0 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 uted.in.the.hope.that.it.will.be
2d600 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 .useful,.but.WITHOUT.;;.ANY.WARR
2d620 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 ANTY;.without.even.the.implied.w
2d640 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 arranty.of.MERCHANTABILITY.;;.or
2d660 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 .FITNESS.FOR.A.PARTICULAR.PURPOS
2d680 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b E...See.the.GNU.General.Public.;
2d6a0 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 ;.License.for.more.details...;;.
2d6c0 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 You.should.have.received.a.copy.
2d6e0 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
2d700 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 e.;;.along.with.EMMS;.see.the.fi
2d720 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 le.COPYING..If.not,.write.to.the
2d740 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e .Free.;;.Software.Foundation,.In
2d760 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c c.,.51.Franklin.Street,.Fifth.Fl
2d780 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 oor,.Boston,.;;.MA.02110-1301,.U
2d7a0 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 SA...;;;.Commentary:..;;.This.fi
2d7c0 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 63 6f 6d 6d 61 6e 64 2f 74 72 61 63 6b 20 69 6e 69 74 le.provides.a.command/track.init
2d7e0 69 61 6c 69 7a 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 0a 3b 3b 20 61 75 74 ialization.function.which.;;.aut
2d800 6f 6d 61 74 69 63 61 6c 6c 79 20 66 65 74 63 68 65 73 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 omatically.fetches.synchronized.
2d820 6c 79 72 69 63 73 20 66 6f 72 20 74 72 61 63 6b 73 20 28 74 68 65 20 63 75 72 72 65 6e 74 0a 3b lyrics.for.tracks.(the.current.;
2d840 3b 20 74 72 61 63 6b 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 29 20 74 68 72 6f 75 67 68 20 61 ;.track.interactively).through.a
2d860 6e 20 4c 52 43 4c 49 42 20 73 65 72 76 65 72 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 n.LRCLIB.server...;;;.Code:..(ev
2d880 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 al-when-compile...(declare-funct
2d8a0 69 6f 6e 20 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 22 6a 73 6f 6e 2e 63 22 29 29 ion.json-parse-buffer."json.c"))
2d8c0 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 29 0a 28 72 65 71 75 69 72 ..(require.'emms-lyrics).(requir
2d8e0 65 20 27 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d e.'emms-later-do)..(defgroup.emm
2d900 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 20 6e 69 6c 0a 20 20 22 45 4d 4d 53 20 6d 6f 64 75 s-lyrics-lrclib.nil..."EMMS.modu
2d920 6c 65 20 66 6f 72 20 66 65 74 63 68 69 6e 67 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 6c 79 72 le.for.fetching.synchronized.lyr
2d940 69 63 73 20 74 68 72 6f 75 67 68 20 4c 52 43 4c 49 42 20 73 65 72 76 65 72 73 2e 22 0a 20 20 3a ics.through.LRCLIB.servers."...:
2d960 67 72 6f 75 70 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d group.'emms-lyrics...:prefix."em
2d980 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 ms-lyrics-lrclib-")..(defcustom.
2d9a0 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f emms-lyrics-lrclib-url."https://
2d9c0 6c 72 63 6c 69 62 2e 6e 65 74 2f 61 70 69 2f 22 0a 20 20 22 42 61 73 65 20 55 52 4c 20 66 6f 72 lrclib.net/api/"..."Base.URL.for
2d9e0 20 4c 52 43 4c 49 42 20 41 50 49 20 72 65 71 75 65 73 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 .LRCLIB.API.requests."...:type.'
2da00 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c string)..(defconst.emms-lyrics-l
2da20 72 63 6c 69 62 2d 6d 61 78 2d 72 65 71 75 65 73 74 73 20 32 35 30 0a 20 20 22 4d 61 78 69 6d 75 rclib-max-requests.250..."Maximu
2da40 6d 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6e 63 75 72 72 65 6e 74 20 72 65 71 75 65 73 74 73 20 m.number.of.concurrent.requests.
2da60 74 6f 20 4c 52 43 4c 49 42 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 to.LRCLIB.")..(defvar.emms-lyric
2da80 73 2d 6c 72 63 6c 69 62 2d 72 65 71 75 65 73 74 73 20 30 0a 20 20 22 43 75 72 72 65 6e 74 20 6e s-lrclib-requests.0..."Current.n
2daa0 75 6d 62 65 72 20 6f 66 20 63 6f 6e 63 75 72 72 65 6e 74 20 72 65 71 75 65 73 74 73 20 74 6f 20 umber.of.concurrent.requests.to.
2dac0 4c 52 43 4c 49 42 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 LRCLIB.")..(defun.emms-lyrics-lr
2dae0 63 6c 69 62 2d 65 6e 63 6f 64 65 2d 6e 61 6d 65 20 28 6e 61 6d 65 29 0a 20 20 22 45 6e 63 6f 64 clib-encode-name.(name)..."Encod
2db00 65 20 28 61 72 74 69 73 74 2f 61 6c 62 75 6d 2f 74 72 61 63 6b 29 20 4e 41 4d 45 20 66 6f 72 20 e.(artist/album/track).NAME.for.
2db20 61 6e 20 4c 52 43 4c 49 42 20 73 65 61 72 63 68 2e 22 0a 20 20 28 61 6e 64 20 28 73 74 72 69 6e an.LRCLIB.search."...(and.(strin
2db40 67 70 20 6e 61 6d 65 29 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 20 22 20 22 2b 22 gp.name).(string-replace."."."+"
2db60 20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 .name)))..(defun.emms-lyrics-lrc
2db80 6c 69 62 2d 70 61 72 73 65 20 28 5f 20 66 69 6c 65 20 74 72 61 63 6b 20 69 6e 74 65 72 61 63 74 lib-parse.(_.file.track.interact
2dba0 69 76 65 29 0a 20 20 22 50 61 72 73 65 20 61 6e 64 20 73 61 76 65 20 73 79 6e 63 65 64 20 6c 79 ive)..."Parse.and.save.synced.ly
2dbc0 72 69 63 73 20 69 6e 20 46 49 4c 45 2e 0a 49 66 20 54 52 41 43 4b 20 69 73 20 74 68 65 20 73 65 rics.in.FILE..If.TRACK.is.the.se
2dbe0 6c 65 63 74 65 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 lected.track.in.the.current.play
2dc00 6c 69 73 74 2c 20 63 61 74 63 68 20 75 70 2e 0a 57 68 65 6e 20 49 4e 54 45 52 41 43 54 49 56 45 list,.catch.up..When.INTERACTIVE
2dc20 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 69 73 70 6c 61 79 20 6d 65 73 73 61 67 65 73 20 61 6e .is.non-nil,.display.messages.an
2dc40 64 20 63 6f 6e 66 69 72 6d 20 6f 76 65 72 77 72 69 74 65 2e 22 0a 20 20 28 75 6e 77 69 6e 64 2d d.confirm.overwrite."...(unwind-
2dc60 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 28 6c 65 74 20 28 6c 79 72 69 63 73 29 0a 20 20 20 20 protect.......(let.(lyrics).....
2dc80 20 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 ....(search-forward."\n\n").....
2dca0 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 28 66 75 6e 63 74 69 6f 6e 70 20 27 6a 73 6f 6e 2d ....(if-let*.(((functionp.'json-
2dcc0 61 76 61 69 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 available-p))...................
2dce0 20 28 28 6a 73 6f 6e 2d 61 76 61 69 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 .((json-available-p))...........
2dd00 20 20 20 20 20 20 20 20 20 28 70 20 28 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 3a .........(p.(json-parse-buffer.:
2dd20 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 null-object.nil))).............(
2dd40 61 6e 64 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 70 29 20 28 73 65 74 71 20 6c 79 72 69 63 and.(hash-table-p.p).(setq.lyric
2dd60 73 20 28 67 65 74 68 61 73 68 20 22 73 79 6e 63 65 64 4c 79 72 69 63 73 22 20 70 29 29 29 0a 20 s.(gethash."syncedLyrics".p)))..
2dd80 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 62 65 67 20 28 73 65 61 72 63 .........(when-let*.((beg.(searc
2dda0 68 2d 66 6f 72 77 61 72 64 20 22 5c 22 73 79 6e 63 65 64 4c 79 72 69 63 73 5c 22 3a 5c 22 22 20 h-forward."\"syncedLyrics\":\"".
2ddc0 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 nil.t)).......................(e
2dde0 6e 64 20 28 31 2d 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 22 5b nd.(1-.(search-forward-regexp."[
2de00 5e 5c 5c 5d 5c 22 22 20 6e 69 6c 20 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 ^\\]\"".nil.t)))).............(r
2de20 65 70 6c 61 63 65 2d 73 74 72 69 6e 67 2d 69 6e 2d 72 65 67 69 6f 6e 20 22 5c 5c 6e 22 20 22 5c eplace-string-in-region."\\n"."\
2de40 6e 22 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 79 n".beg.end).............(setq.ly
2de60 72 69 63 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 rics.(buffer-substring-no-proper
2de80 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 ties...........................b
2dea0 65 67 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 6e 64 eg.(1-.(point)))))).........(and
2dec0 20 6c 79 72 69 63 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 .lyrics.interactive.(file-exists
2dee0 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 79 2d 6f 72 -p.file)..............(not.(y-or
2df00 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 4f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 -n-p.(format."Overwrite.existing
2df20 20 66 69 6c 65 20 28 5c 22 25 73 5c 22 29 3f 22 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 .file.(\"%s\")?".file)))........
2df40 20 20 20 20 20 20 28 73 65 74 71 20 6c 79 72 69 63 73 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 ......(setq.lyrics.nil))........
2df60 20 28 77 68 65 6e 20 6c 79 72 69 63 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 .(when.lyrics...........(with-te
2df80 6d 70 2d 66 69 6c 65 20 66 69 6c 65 20 28 69 6e 73 65 72 74 20 6c 79 72 69 63 73 29 29 0a 20 20 mp-file.file.(insert.lyrics))...
2dfa0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 28 6d 65 73 73 61 ........(when.interactive.(messa
2dfc0 67 65 20 22 53 61 76 65 64 20 73 79 6e 63 65 64 20 6c 79 72 69 63 73 20 61 74 20 5c 22 25 73 5c ge."Saved.synced.lyrics.at.\"%s\
2dfe0 22 22 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 "".file))...........(and.(boundp
2e000 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 70 29 0a 20 20 20 20 20 20 20 .'emms-lyrics-display-p)........
2e020 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 70 20 65 6d ........emms-lyrics-display-p.em
2e040 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 ms-player-playing-p.............
2e060 20 20 20 28 65 71 75 61 6c 20 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 ...(equal.track.(emms-playlist-c
2e080 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 urrent-selected-track)).........
2e0a0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 61 74 63 68 75 70 20 66 69 6c 65 .......(emms-lyrics-catchup.file
2e0c0 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 )))).....(setq.emms-lyrics-lrcli
2e0e0 62 2d 72 65 71 75 65 73 74 73 20 28 31 2d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 b-requests.(1-.emms-lyrics-lrcli
2e100 62 2d 72 65 71 75 65 73 74 73 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 b-requests))))..;;;###autoload.(
2e120 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 67 65 74 20 28 26 6f defun.emms-lyrics-lrclib-get.(&o
2e140 70 74 69 6f 6e 61 6c 20 74 72 61 63 6b 20 66 6f 72 63 65 20 69 6e 74 65 72 61 63 74 69 76 65 29 ptional.track.force.interactive)
2e160 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 6c 79 72 69 ..."Search.for.synchronized.lyri
2e180 63 73 20 66 6f 72 20 54 52 41 43 4b 20 74 68 72 6f 75 67 68 20 4c 52 43 4c 49 42 27 73 20 41 50 cs.for.TRACK.through.LRCLIB's.AP
2e1a0 49 2e 0a 49 66 20 54 52 41 43 4b 20 69 73 20 6f 6d 69 74 74 65 64 20 6f 72 20 6e 69 6c 2c 20 75 I..If.TRACK.is.omitted.or.nil,.u
2e1c0 73 65 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 se.the.selected.track.in.the.cur
2e1e0 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 65 20 6c 79 72 69 63 73 20 61 72 65 20 73 61 rent.playlist..The.lyrics.are.sa
2e200 76 65 64 20 69 6e 20 61 6e 20 5c 22 2e 6c 72 63 5c 22 20 66 69 6c 65 20 61 6c 6f 6e 67 73 69 64 ved.in.an.\".lrc\".file.alongsid
2e220 65 20 74 68 65 20 74 72 61 63 6b 2c 20 75 6e 6c 65 73 73 20 74 68 65 0a 66 69 6c 65 20 61 6c 72 e.the.track,.unless.the.file.alr
2e240 65 61 64 79 20 65 78 69 73 74 73 20 28 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 73 eady.exists.(in.which.case.the.s
2e260 65 61 72 63 68 20 69 73 6e 27 74 20 70 65 72 66 6f 72 6d 65 64 29 2e 0a 57 68 65 6e 20 63 61 6c earch.isn't.performed)..When.cal
2e280 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 28 6e 6f 6e 2d 6e 69 6c 20 49 4e 54 45 52 led.interactively.(non-nil.INTER
2e2a0 41 43 54 49 56 45 29 2c 20 64 69 73 70 6c 61 79 20 69 6e 66 6f 72 6d 61 74 69 76 65 0a 6d 65 73 ACTIVE),.display.informative.mes
2e2c0 73 61 67 65 73 2c 20 61 6e 64 20 77 69 74 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 sages,.and.with.prefix.argument.
2e2e0 46 4f 52 43 45 2c 20 61 73 6b 20 74 6f 20 6f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 FORCE,.ask.to.overwrite.existing
2e300 0a 5c 22 2e 6c 72 63 5c 22 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 .\".lrc\".files."...(interactive
2e320 20 28 6c 69 73 74 20 6e 69 6c 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 74 29 .(list.nil.current-prefix-arg.t)
2e340 29 0a 20 20 28 69 66 20 28 3e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 72 65 )...(if.(>.emms-lyrics-lrclib-re
2e360 71 75 65 73 74 73 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 6d 61 78 2d 72 65 quests.emms-lyrics-lrclib-max-re
2e380 71 75 65 73 74 73 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 20 23 27 65 quests).......(emms-later-do.#'e
2e3a0 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 67 65 74 20 74 72 61 63 6b 20 66 6f 72 63 mms-lyrics-lrclib-get.track.forc
2e3c0 65 20 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 e.interactive).....(when-let*.((
2e3e0 74 72 61 63 6b 20 28 6f 72 20 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 track.(or.track.(emms-playlist-c
2e400 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 urrent-selected-track)))........
2e420 20 20 20 20 20 20 20 20 20 28 28 65 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 .........((eq.(emms-track-type.t
2e440 72 61 63 6b 29 20 27 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 rack).'file)).................(f
2e460 69 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 ile.(emms-track-name.track))....
2e480 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 72 63 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 .............(lrc.(replace-regex
2e4a0 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 2e 5b 5e 2e 5d 2b 5c 5c 27 22 20 22 2e 6c 72 63 22 p-in-string."\\.[^.]+\\'".".lrc"
2e4c0 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 66 6f 72 .file)).................((or.for
2e4e0 63 65 20 28 6e 6f 74 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 6c 72 63 29 29 29 29 0a 20 ce.(not.(file-exists-p.lrc))))..
2e500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 ...............((file-writable-p
2e520 20 6c 72 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 74 6c 65 20 28 65 .lrc)).................(title.(e
2e540 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 65 6e 63 6f 64 65 2d 6e 61 6d 65 0a 20 20 mms-lyrics-lrclib-encode-name...
2e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 ......................(emms-trac
2e580 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 0a 20 20 20 20 20 k-get.track.'info-title)))......
2e5a0 20 20 20 20 20 20 20 20 20 20 20 28 61 72 74 69 73 74 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d ...........(artist.(emms-lyrics-
2e5c0 6c 72 63 6c 69 62 2d 65 6e 63 6f 64 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 lrclib-encode-name..............
2e5e0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 ............(emms-track-get.trac
2e600 6b 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k.'info-artist)))...............
2e620 20 20 28 61 6c 62 75 6d 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 65 6e 63 ..(album.(emms-lyrics-lrclib-enc
2e640 6f 64 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode-name........................
2e660 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 .(emms-track-get.track.'info-alb
2e680 75 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 20 28 65 6d 6d um))).................(time.(emm
2e6a0 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d s-track-get.track.'info-playing-
2e6c0 74 69 6d 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d time))).......(setq.emms-lyrics-
2e6e0 6c 72 63 6c 69 62 2d 72 65 71 75 65 73 74 73 20 28 31 2b 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d lrclib-requests.(1+.emms-lyrics-
2e700 6c 72 63 6c 69 62 2d 72 65 71 75 65 73 74 73 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e lrclib-requests)).......(when.in
2e720 74 65 72 61 63 74 69 76 65 20 28 6d 65 73 73 61 67 65 20 22 53 65 61 72 63 68 69 6e 67 20 66 6f teractive.(message."Searching.fo
2e740 72 20 6c 79 72 69 63 73 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 r.lyrics...")).......(url-retrie
2e760 76 65 0a 20 20 20 20 20 20 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 0a 20 20 20 20 20 20 ve........(url-encode-url.......
2e780 20 20 28 66 6f 72 6d 61 74 20 22 25 73 67 65 74 3f 61 72 74 69 73 74 5f 6e 61 6d 65 3d 25 73 26 ..(format."%sget?artist_name=%s&
2e7a0 74 72 61 63 6b 5f 6e 61 6d 65 3d 25 73 26 61 6c 62 75 6d 5f 6e 61 6d 65 3d 25 73 26 64 75 72 61 track_name=%s&album_name=%s&dura
2e7c0 74 69 6f 6e 3d 25 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 tion=%d".................emms-ly
2e7e0 72 69 63 73 2d 6c 72 63 6c 69 62 2d 75 72 6c 20 61 72 74 69 73 74 20 74 69 74 6c 65 20 61 6c 62 rics-lrclib-url.artist.title.alb
2e800 75 6d 20 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c um.time))........#'emms-lyrics-l
2e820 72 63 6c 69 62 2d 70 61 72 73 65 20 28 6c 69 73 74 20 6c 72 63 20 74 72 61 63 6b 20 69 6e 74 65 rclib-parse.(list.lrc.track.inte
2e840 72 61 63 74 69 76 65 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6c 79 72 ractive)))))..(provide.'emms-lyr
2e860 69 63 73 2d 6c 72 63 6c 69 62 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 ics-lrclib)..;;;.emms-lyrics-lrc
2e880 6c 69 62 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 lib.el.ends.here................
2e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ea00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 63 6f 72 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-score.el...........
2ea20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ea60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2ea80 30 30 32 31 33 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 30 30 00 20 30 00 00 00 0021361.00000000000.013300..0...
2eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2eb00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2eb20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2eb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2eb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ec00 3b 3b 3b 20 65 6d 6d 73 2d 73 63 6f 72 65 2e 65 6c 20 2d 2d 2d 20 53 63 6f 72 69 6e 67 20 73 79 ;;;.emms-score.el.---.Scoring.sy
2ec20 73 74 65 6d 20 66 6f 72 20 6d 70 33 70 6c 61 79 65 72 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d stem.for.mp3player..-*-.lexical-
2ec40 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
2ec60 29 20 32 30 30 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 ).2003-2021..Free.Software.Found
2ec80 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 4a 65 61 6e 2d 50 68 ation,.Inc...;;.Authors:.Jean-Ph
2eca0 69 6c 69 70 70 65 20 54 68 65 62 65 72 67 65 20 3c 6a 70 68 69 6c 74 68 65 62 65 72 67 65 40 76 ilippe.Theberge.<jphiltheberge@v
2ecc0 69 64 65 6f 74 72 6f 6e 2e 63 61 3e 2c 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 59 6f 6e 69 20 52 ideotron.ca>,.;;..........Yoni.R
2ece0 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 abkin.<yrk@gnu.org>.;;.;;.Keywor
2ed00 64 73 3a 20 65 6d 6d 73 2c 20 6d 70 33 2c 20 6d 70 65 67 2c 20 6d 75 6c 74 69 6d 65 64 69 61 0a ds:.emms,.mp3,.mpeg,.multimedia.
2ed20 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a .;;.This.file.is.part.of.EMMS...
2ed40 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 ;;.EMMS.is.free.software;.you.ca
2ed60 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a n.redistribute.it.and/or.modify.
2ed80 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 ;;.it.under.the.terms.of.the.GNU
2eda0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 .General.Public.License.as.publi
2edc0 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 shed.by.;;.the.Free.Software.Fou
2ede0 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 ndation;.either.version.3,.or.(a
2ee00 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 t.your.option).;;.any.later.vers
2ee20 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 ion..;;.;;.EMMS.is.distributed.i
2ee40 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 n.the.hope.that.it.will.be.usefu
2ee60 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 l,.;;.but.WITHOUT.ANY.WARRANTY;.
2ee80 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 without.even.the.implied.warrant
2eea0 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 y.of.;;.MERCHANTABILITY.or.FITNE
2eec0 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
2eee0 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 e.the.;;.GNU.General.Public.Lice
2ef00 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 nse.for.more.details..;;.;;.You.
2ef20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 should.have.received.a.copy.of.t
2ef40 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b he.GNU.General.Public.License.;;
2ef60 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 .along.with.EMMS;.see.the.file.C
2ef80 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b OPYING...If.not,.write.to.the.;;
2efa0 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c .Free.Software.Foundation,.Inc.,
2efc0 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 .51.Franklin.Street,.Fifth.Floor
2efe0 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e ,.;;.Boston,.MA.02110-1301,.USA.
2f000 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 54 68 69 73 ..;;;.Commentary:..;;.NOTE:.This
2f020 20 69 73 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 74 75 66 66 20 2d 20 63 6f 6d 6d 65 6e 74 .is.experimental.stuff.-.comment
2f040 73 20 77 65 6c 63 6f 6d 65 21 20 20 54 68 65 72 65 0a 3b 3b 20 73 68 6f 75 6c 64 6e 27 74 20 77 s.welcome!..There.;;.shouldn't.w
2f060 6f 72 6b 79 20 61 6e 79 74 68 69 6e 67 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 2e 2e 20 73 63 orky.anything.in.that.file....sc
2f080 6f 72 65 73 20 61 72 65 6e 27 74 20 73 61 76 65 64 2c 20 74 68 65 79 0a 3b 3b 20 65 76 65 6e 20 ores.aren't.saved,.they.;;.even.
2f0a0 64 6f 6e 27 74 20 68 61 76 65 20 61 6e 79 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 6e 20 70 6c don't.have.any.consequence.on.pl
2f0c0 61 79 69 6e 67 20 6f 72 64 65 72 20 61 6e 64 20 74 68 65 72 65 27 73 20 6a 75 73 74 0a 3b 3b 20 aying.order.and.there's.just.;;.
2f0e0 6f 6e 65 20 6d 6f 6f 64 20 69 6e 20 74 68 65 20 6d 6f 6d 65 6e 74 2e 20 42 75 74 20 69 74 27 73 one.mood.in.the.moment..But.it's
2f100 20 61 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 79 6f 75 20 63 61 6e 20 73 63 6f 72 65 20 64 .a.beginning.and.you.can.score.d
2f120 6f 77 6e 0a 3b 3b 20 6f 72 20 75 70 20 74 72 61 63 6b 73 2e 2e 2e 20 3a 29 0a 3b 3b 0a 3b 3b 20 own.;;.or.up.tracks....:).;;.;;.
2f140 2a 20 48 6f 77 20 74 6f 20 75 73 65 20 73 63 6f 72 69 6e 67 20 69 6e 20 65 6d 6d 73 0a 3b 3b 0a *.How.to.use.scoring.in.emms.;;.
2f160 3b 3b 20 57 68 65 6e 20 79 6f 75 20 6c 6f 61 64 20 65 6d 6d 73 2c 20 79 6f 75 20 61 72 65 20 73 ;;.When.you.load.emms,.you.are.s
2f180 65 74 20 74 6f 20 61 20 64 65 66 61 75 6c 74 20 6d 6f 6f 64 0a 3b 3b 20 27 65 6d 6d 73 2d 64 65 et.to.a.default.mood.;;.'emms-de
2f1a0 66 61 75 6c 74 2d 6d 6f 6f 64 27 20 41 20 6d 6f 6f 64 20 69 73 20 61 20 6f 6e 65 20 77 6f 72 64 fault-mood'.A.mood.is.a.one.word
2f1c0 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 68 6f 77 0a 3b 3b 20 79 6f 75 20 66 65 .string.describing.how.;;.you.fe
2f1e0 65 6c 20 28 6c 69 6b 65 20 22 66 75 6e 6e 79 22 2c 20 22 74 69 72 65 64 22 2c 20 22 61 67 67 72 el.(like."funny",."tired",."aggr
2f200 65 73 69 76 65 22 2e 2e 2e 29 20 20 45 61 63 68 20 6d 6f 6f 64 20 68 61 76 65 20 69 73 0a 3b 3b esive"...)..Each.mood.have.is.;;
2f220 20 6f 77 6e 20 73 65 74 20 6f 66 20 73 63 6f 72 69 6e 67 20 72 75 6c 65 73 2e 0a 3b 3b 0a 3b 3b .own.set.of.scoring.rules..;;.;;
2f240 20 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 79 6f 75 72 20 6d 6f 6f 64 20 77 69 74 68 20 4d .You.can.change.your.mood.with.M
2f260 2d 78 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 61 6e 67 65 2d 6d 6f 6f 64 2e 0a 3b 3b 0a 3b 3b -x.emms-score-change-mood..;;.;;
2f280 20 45 76 65 72 79 20 6d 75 73 69 63 20 66 69 6c 65 20 73 74 61 72 74 20 77 69 74 68 20 61 20 64 .Every.music.file.start.with.a.d
2f2a0 65 66 61 75 6c 74 20 73 63 6f 72 65 20 6f 66 20 30 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 3b 3b efault.score.of.0.the.command.;;
2f2c0 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 75 70 2d 70 6c 61 79 69 6e 67 20 61 6e 64 20 65 6d 6d 73 2d .emms-score-up-playing.and.emms-
2f2e0 73 63 6f 72 65 2d 64 6f 77 6e 2d 70 6c 61 79 69 6e 67 20 6d 6f 64 69 66 79 20 74 68 65 0a 3b 3b score-down-playing.modify.the.;;
2f300 20 73 63 6f 72 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 79 6f 75 20 61 72 65 20 63 75 72 65 6e .score.of.the.file.you.are.curen
2f320 74 6c 79 20 6c 69 73 74 65 6e 69 6e 67 20 62 79 20 31 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 0a tly.listening.by.1.In.addition,.
2f340 3b 3b 20 73 6b 69 70 70 69 6e 67 20 61 20 66 69 6c 65 20 28 77 69 74 68 20 65 6d 6d 73 2d 73 6b ;;.skipping.a.file.(with.emms-sk
2f360 69 70 29 20 61 75 74 6f 6d 61 74 69 63 61 6c 79 20 73 63 6f 72 65 20 74 68 65 20 66 69 6c 65 0a ip).automaticaly.score.the.file.
2f380 3b 3b 20 64 6f 77 6e 2e 0a 3b 3b 0a 3b 3b 20 57 69 74 68 20 73 63 6f 72 69 6e 67 20 6f 6e 20 28 ;;.down..;;.;;.With.scoring.on.(
2f3a0 74 68 69 73 20 6d 65 61 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 65 6d 6d 73 2d 75 73 65 2d this.mean.the.variable.emms-use-
2f3c0 73 63 6f 72 69 6e 67 20 69 73 20 74 29 2c 0a 3b 3b 20 65 6d 6d 73 20 77 69 6c 6c 20 63 6f 6d 70 scoring.is.t),.;;.emms.will.comp
2f3e0 61 72 65 20 74 68 65 20 73 63 6f 72 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 79 are.the.score.of.the.file.with.y
2f400 6f 75 72 20 74 6f 6c 65 72 61 6e 63 65 20 74 6f 0a 3b 3b 20 64 65 63 69 64 65 20 69 66 20 69 74 our.tolerance.to.;;.decide.if.it
2f420 20 69 73 20 70 6c 61 79 65 64 20 6f 72 20 6e 6f 74 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 64 65 66 .is.played.or.not..;;.;;.The.def
2f440 61 75 6c 74 20 74 6f 6c 65 72 61 6e 63 65 20 6c 65 76 65 6c 20 69 73 20 30 20 28 6f 72 20 74 68 ault.tolerance.level.is.0.(or.th
2f460 65 20 76 61 72 69 61 62 6c 65 0a 3b 3b 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f e.variable.;;.emms-score-min-sco
2f480 72 65 29 2e 20 20 54 68 69 73 20 6d 65 61 6e 20 66 69 6c 65 73 20 77 69 74 68 20 61 20 73 63 6f re)...This.mean.files.with.a.sco
2f4a0 72 65 20 6f 66 20 30 20 6f 72 20 6d 6f 72 65 20 77 69 6c 6c 0a 3b 3b 20 62 65 20 70 6c 61 79 65 re.of.0.or.more.will.;;.be.playe
2f4c0 64 20 61 6e 64 20 66 69 6c 65 73 20 77 69 74 68 20 61 20 73 63 6f 72 65 20 6f 66 20 2d 31 20 6f d.and.files.with.a.score.of.-1.o
2f4e0 72 20 6c 65 73 73 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 2e 0a 3b 3b 0a 3b 3b 20 59 6f r.less.will.be.skipped..;;.;;.Yo
2f500 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 65 20 74 6f 6c 65 72 61 6e 63 65 20 28 62 79 20 31 u.can.change.the.tolerance.(by.1
2f520 29 20 77 69 74 68 20 4d 2d 78 0a 3b 3b 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6c 6f 77 65 72 2d 74 ).with.M-x.;;.emms-score-lower-t
2f540 6f 6c 65 72 61 6e 63 65 20 61 6e 64 20 4d 2d 78 0a 3b 3b 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 62 olerance.and.M-x.;;.emms-score-b
2f560 65 2d 6d 6f 72 65 2d 74 6f 6c 65 72 61 6e 74 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 e-more-tolerant..;;;.Code:..(req
2f580 75 69 72 65 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 63 6f 72 65 73 uire.'emms)..(defvar.emms-scores
2f5a0 2d 6c 69 73 74 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 -list.nil).(defvar.emms-score-cu
2f5c0 72 72 65 6e 74 2d 6d 6f 6f 64 20 27 64 65 66 61 75 6c 74 29 0a 28 64 65 66 76 61 72 20 65 6d 6d rrent-mood.'default).(defvar.emm
2f5e0 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f 72 65 20 30 29 0a 28 64 65 66 76 61 72 20 65 6d 6d s-score-min-score.0).(defvar.emm
2f600 73 2d 73 63 6f 72 65 2d 64 65 66 61 75 6c 74 2d 73 63 6f 72 65 20 30 29 0a 28 64 65 66 76 61 72 s-score-default-score.0).(defvar
2f620 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 68 61 73 68 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c .emms-score-hash.(make-hash-tabl
2f640 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 63 e.:test.'equal)).(defvar.emms-sc
2f660 6f 72 65 2d 65 6e 61 62 6c 65 64 2d 70 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c ore-enabled-p.nil..."If.non-nil,
2f680 20 65 6d 6d 73 20 73 63 6f 72 65 20 69 73 20 61 63 74 69 76 65 2e 22 29 0a 0a 28 64 65 66 63 75 .emms.score.is.active.")..(defcu
2f6a0 73 74 6f 6d 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 66 69 6c 65 20 28 63 6f 6e 63 61 74 20 28 66 69 stom.emms-score-file.(concat.(fi
2f6c0 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 64 69 72 65 63 74 le-name-as-directory.emms-direct
2f6e0 6f 72 79 29 20 22 73 63 6f 72 65 73 22 29 0a 20 20 22 2a 44 69 72 65 63 74 6f 72 79 20 74 6f 20 ory)."scores")..."*Directory.to.
2f700 73 74 6f 72 65 20 74 68 65 20 73 63 6f 72 65 20 66 69 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 store.the.score.file."...:type.'
2f720 64 69 72 65 63 74 6f 72 79 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 0c 0a 3b 3b 3b directory...:group.'emms)....;;;
2f740 20 55 73 65 72 20 49 6e 74 65 72 66 61 63 65 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 .User.Interfaces..(defun.emms-sc
2f760 6f 72 65 20 28 61 72 67 29 0a 20 20 22 54 75 72 6e 20 6f 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 20 ore.(arg)..."Turn.on.emms-score.
2f780 69 66 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 69 73 20 61 20 70 6f 73 69 if.prefix.argument.ARG.is.a.posi
2f7a0 74 69 76 65 20 69 6e 74 65 67 65 72 2c 0a 6f 66 66 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 tive.integer,.off.otherwise."...
2f7c0 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 61 6e 64 20 61 72 67 (interactive."p")...(if.(and.arg
2f7e0 20 28 3e 20 61 72 67 20 30 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 73 65 74 71 20 .(>.arg.0)).......(progn..(setq.
2f800 65 6d 6d 73 2d 73 63 6f 72 65 2d 65 6e 61 62 6c 65 64 2d 70 20 74 29 0a 09 28 65 6d 6d 73 2d 73 emms-score-enabled-p.t)..(emms-s
2f820 63 6f 72 65 2d 6c 6f 61 64 2d 68 61 73 68 29 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 6f 6b 2d 74 core-load-hash)..(setq.emms-ok-t
2f840 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 73 63 6f 72 65 2d 6f 6b 2d 74 72 rack-function.#'emms-score-ok-tr
2f860 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f ack-function).........(unless.no
2f880 6e 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b ninteractive...........(add-hook
2f8a0 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 .'kill-emacs-hook.#'emms-score-s
2f8c0 61 76 65 2d 68 61 73 68 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 73 63 6f 72 65 ave-hash))).....(setq.emms-score
2f8e0 2d 65 6e 61 62 6c 65 64 2d 70 20 6e 69 6c 29 0a 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d -enabled-p.nil).....(emms-score-
2f900 73 61 76 65 2d 68 61 73 68 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6f 6b 2d 74 72 61 save-hash).....(setq.emms-ok-tra
2f920 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 64 65 66 61 75 6c 74 2d 6f 6b 2d 74 72 ck-function.#'emms-default-ok-tr
2f940 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 ack-function).....(remove-hook.'
2f960 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 61 76 kill-emacs-hook.#'emms-score-sav
2f980 65 2d 68 61 73 68 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e e-hash)))..;;;###autoload.(defun
2f9a0 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 54 75 72 6e 20 6f 6e .emms-score-enable.()..."Turn.on
2f9c0 20 65 6d 6d 73 2d 73 63 6f 72 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 .emms-score."...(interactive)...
2f9e0 28 65 6d 6d 73 2d 73 63 6f 72 65 20 31 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 65 6d 6d 73 20 (emms-score.1)...(message."emms.
2fa00 73 63 6f 72 65 20 65 6e 61 62 6c 65 64 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 score.enabled"))..;;;###autoload
2fa20 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 64 69 73 61 62 6c 65 20 28 29 0a 20 20 .(defun.emms-score-disable.()...
2fa40 22 54 75 72 6e 20 6f 66 66 20 65 6d 6d 73 2d 73 63 6f 72 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 "Turn.off.emms-score."...(intera
2fa60 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 20 2d 31 29 0a 20 20 28 6d 65 73 73 ctive)...(emms-score.-1)...(mess
2fa80 61 67 65 20 22 65 6d 6d 73 20 73 63 6f 72 65 20 64 69 73 61 62 6c 65 64 22 29 29 0a 0a 3b 3b 3b age."emms.score.disabled"))..;;;
2faa0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 74 6f ###autoload.(defun.emms-score-to
2fac0 67 67 6c 65 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 6d 6d 73 2d 73 63 6f 72 65 2e 22 0a 20 ggle.()..."Toggle.emms-score."..
2fae0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 73 63 6f 72 65 2d .(interactive)...(if.emms-score-
2fb00 65 6e 61 62 6c 65 64 2d 70 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 64 69 73 61 enabled-p.......(emms-score-disa
2fb20 62 6c 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 65 6e 61 62 6c 65 29 29 29 0a 0a ble).....(emms-score-enable)))..
2fb40 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 61 6e 67 65 2d 6d 6f 6f 64 20 28 6d (defun.emms-score-change-mood.(m
2fb60 6f 6f 64 29 0a 20 20 22 43 68 61 6e 67 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 4d 4f 4f 44 2e ood)..."Change.the.current.MOOD.
2fb80 0a 54 68 65 20 73 63 6f 72 65 20 68 61 73 68 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 .The.score.hash.is.automatically
2fba0 20 73 61 76 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 73 4d 6f 6f 64 3a 20 .saved."...(interactive."sMood:.
2fbc0 22 29 0a 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 61 76 65 2d 68 61 73 68 29 0a 20 20 28 73 ")...(emms-score-save-hash)...(s
2fbe0 65 74 71 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 65 6e 74 2d 6d 6f 6f 64 20 28 69 6e 74 etq.emms-score-current-mood.(int
2fc00 65 72 6e 20 28 64 6f 77 6e 63 61 73 65 20 6d 6f 6f 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ern.(downcase.mood))))..(defun.e
2fc20 6d 6d 73 2d 73 63 6f 72 65 2d 75 70 2d 70 6c 61 79 69 6e 67 20 28 29 0a 20 20 28 69 6e 74 65 72 mms-score-up-playing.()...(inter
2fc40 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e active)...(if.emms-player-playin
2fc60 67 2d 70 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 61 6e 67 65 2d 73 63 6f g-p.......(emms-score-change-sco
2fc80 72 65 20 31 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 re.1.(emms-score-current-selecte
2fca0 64 2d 74 72 61 63 6b 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4e d-track-filename)).....(error."N
2fcc0 6f 20 74 72 61 63 6b 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 22 29 29 29 0a 0a 28 o.track.currently.playing")))..(
2fce0 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 64 6f 77 6e 2d 70 6c 61 79 69 6e 67 20 28 29 defun.emms-score-down-playing.()
2fd00 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 ...(interactive)...(if.emms-play
2fd20 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 er-playing-p.......(emms-score-c
2fd40 68 61 6e 67 65 2d 73 63 6f 72 65 20 2d 31 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 65 hange-score.-1.(emms-score-curre
2fd60 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 nt-selected-track-filename))....
2fd80 20 28 65 72 72 6f 72 20 22 4e 6f 20 74 72 61 63 6b 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 .(error."No.track.currently.play
2fda0 69 6e 67 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 75 70 2d 66 69 ing")))..(defun.emms-score-up-fi
2fdc0 6c 65 2d 6f 6e 2d 6c 69 6e 65 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 le-on-line.()...(interactive)...
2fde0 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 61 6e 67 65 2d 73 63 6f 72 65 20 31 20 28 65 6d 6d 73 (emms-score-change-score.1.(emms
2fe00 2d 73 63 6f 72 65 2d 74 72 61 63 6b 2d 61 74 2d 66 69 6c 65 6e 61 6d 65 29 29 29 0a 0a 28 64 65 -score-track-at-filename)))..(de
2fe20 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 64 6f 77 6e 2d 66 69 6c 65 2d 6f 6e 2d 6c 69 6e 65 fun.emms-score-down-file-on-line
2fe40 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 73 63 6f 72 .()...(interactive)...(emms-scor
2fe60 65 2d 63 68 61 6e 67 65 2d 73 63 6f 72 65 20 2d 31 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 74 72 e-change-score.-1.(emms-score-tr
2fe80 61 63 6b 2d 61 74 2d 66 69 6c 65 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ack-at-filename)))..(defun.emms-
2fea0 73 63 6f 72 65 2d 6c 65 73 73 2d 74 6f 6c 65 72 61 6e 74 20 28 29 0a 20 20 22 4f 6e 6c 79 20 70 score-less-tolerant.()..."Only.p
2fec0 6c 61 79 20 6d 70 33 20 77 69 74 68 20 61 20 68 69 67 68 65 72 20 73 63 6f 72 65 22 0a 20 20 28 lay.mp3.with.a.higher.score"...(
2fee0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 73 63 6f 72 65 2d interactive)...(setq.emms-score-
2ff00 6d 69 6e 2d 73 63 6f 72 65 20 28 2b 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f 72 min-score.(+.emms-score-min-scor
2ff20 65 20 31 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 20 73 6f 6e 67 e.1))...(message."Will.play.song
2ff40 73 20 77 69 74 68 20 61 20 73 63 6f 72 65 20 3e 3d 20 25 64 22 20 65 6d 6d 73 2d 73 63 6f 72 65 s.with.a.score.>=.%d".emms-score
2ff60 2d 6d 69 6e 2d 73 63 6f 72 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d -min-score))..(defun.emms-score-
2ff80 6d 6f 72 65 2d 74 6f 6c 65 72 61 6e 74 20 28 29 0a 20 20 22 41 6c 6c 6f 77 20 70 6c 61 79 69 6e more-tolerant.()..."Allow.playin
2ffa0 67 20 6f 66 20 6d 70 33 20 77 69 74 68 20 61 20 6c 6f 77 65 72 20 73 63 6f 72 65 2e 22 0a 20 20 g.of.mp3.with.a.lower.score."...
2ffc0 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 73 63 6f 72 65 (interactive)...(setq.emms-score
2ffe0 2d 6d 69 6e 2d 73 63 6f 72 65 20 28 2d 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f -min-score.(-.emms-score-min-sco
30000 72 65 20 31 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 20 73 6f 6e re.1))...(message."Will.play.son
30020 67 73 20 77 69 74 68 20 61 20 73 63 6f 72 65 20 3e 3d 20 25 64 22 20 65 6d 6d 73 2d 73 63 6f 72 gs.with.a.score.>=.%d".emms-scor
30040 65 2d 6d 69 6e 2d 73 63 6f 72 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 e-min-score))..(defun.emms-score
30060 2d 73 65 74 2d 70 6c 61 79 69 6e 67 20 28 73 63 6f 72 65 29 0a 20 20 22 53 65 74 20 73 63 6f 72 -set-playing.(score)..."Set.scor
30080 65 20 66 6f 72 20 63 75 72 72 65 6e 74 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 2e 22 0a 20 20 e.for.current.playing.track."...
300a0 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 6e 53 65 74 20 73 63 6f 72 65 20 66 6f 72 20 70 6c 61 (interactive."nSet.score.for.pla
300c0 79 69 6e 67 20 74 72 61 63 6b 3a 20 22 29 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 ying.track:.")...(let.((filename
300e0 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 .(emms-score-current-selected-tr
30100 61 63 6b 2d 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 ack-filename))).....(if.emms-pla
30120 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 09 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 61 6e 67 yer-playing-p..(emms-score-chang
30140 65 2d 73 63 6f 72 65 0a 09 20 28 2d 20 73 63 6f 72 65 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 e-score...(-.score.(emms-score-g
30160 65 74 2d 73 63 6f 72 65 20 66 69 6c 65 6e 61 6d 65 29 29 0a 09 20 66 69 6c 65 6e 61 6d 65 29 0a et-score.filename))...filename).
30180 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 74 72 61 63 6b 20 63 75 72 72 65 6e 74 6c 79 ......(error."No.track.currently
301a0 20 70 6c 61 79 69 6e 67 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 .playing"))))..(defun.emms-score
301c0 2d 73 65 74 2d 66 69 6c 65 2d 6f 6e 2d 6c 69 6e 65 20 28 73 63 6f 72 65 29 0a 20 20 22 53 65 74 -set-file-on-line.(score)..."Set
301e0 20 73 63 6f 72 65 20 66 6f 72 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 65 6d 6d .score.for.track.at.point.in.emm
30200 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 s-playlist.buffer."...(interacti
30220 76 65 20 22 6e 53 65 74 20 73 63 6f 72 65 20 66 6f 72 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e ve."nSet.score.for.track.at.poin
30240 74 3a 20 22 29 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 20 28 65 6d 6d 73 2d 73 63 t:.")...(let.((filename.(emms-sc
30260 6f 72 65 2d 74 72 61 63 6b 2d 61 74 2d 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 ore-track-at-filename))).....(if
30280 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 09 28 65 6d 6d 73 2d 73 63 .emms-player-playing-p..(emms-sc
302a0 6f 72 65 2d 63 68 61 6e 67 65 2d 73 63 6f 72 65 0a 09 20 28 2d 20 73 63 6f 72 65 20 28 65 6d 6d ore-change-score...(-.score.(emm
302c0 73 2d 73 63 6f 72 65 2d 67 65 74 2d 73 63 6f 72 65 20 66 69 6c 65 6e 61 6d 65 29 29 0a 09 20 66 s-score-get-score.filename))...f
302e0 69 6c 65 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 ilename))))..(defun.emms-score-s
30300 65 74 2d 74 6f 6c 65 72 61 6e 63 65 20 28 74 6f 6c 65 72 61 6e 63 65 29 0a 20 20 22 41 6c 6c 6f et-tolerance.(tolerance)..."Allo
30320 77 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 73 20 77 69 74 68 20 61 20 73 63 6f 72 65 20 3e 3d w.playing.tracks.with.a.score.>=
30340 20 74 6f 6c 65 72 61 6e 63 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 6e 53 65 .tolerance."...(interactive."nSe
30360 74 20 74 6f 6c 65 72 61 6e 63 65 3a 20 22 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 73 63 6f t.tolerance:.")...(setq.emms-sco
30380 72 65 2d 6d 69 6e 2d 73 63 6f 72 65 20 74 6f 6c 65 72 61 6e 63 65 29 0a 20 20 28 6d 65 73 73 61 re-min-score.tolerance)...(messa
303a0 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 20 73 6f 6e 67 73 20 77 69 74 68 20 61 20 73 63 6f 72 65 ge."Will.play.songs.with.a.score
303c0 20 3e 3d 20 25 64 22 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f 72 65 29 29 0a 0a .>=.%d".emms-score-min-score))..
303e0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 68 6f 77 2d 70 6c 61 79 69 6e 67 20 28 (defun.emms-score-show-playing.(
30400 29 0a 20 20 22 53 68 6f 77 20 73 63 6f 72 65 20 66 6f 72 20 63 75 72 72 65 6e 74 20 70 6c 61 79 )..."Show.score.for.current.play
30420 69 6e 67 20 74 72 61 63 6b 20 69 6e 20 6d 69 6e 69 62 75 66 2e 22 0a 20 20 28 69 6e 74 65 72 61 ing.track.in.minibuf."...(intera
30440 63 74 69 76 65 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 74 72 61 63 6b 2f 74 6f 6c 65 72 61 6e ctive)...(message."track/toleran
30460 63 65 20 73 63 6f 72 65 3a 20 25 64 2f 25 64 22 0a 09 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 ce.score:.%d/%d".....(emms-score
30480 2d 67 65 74 2d 73 63 6f 72 65 0a 09 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 -get-score......(emms-score-curr
304a0 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 09 20 ent-selected-track-filename))...
304c0 20 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f 72 65 29 29 0a 0a 28 64 65 66 75 6e ..emms-score-min-score))..(defun
304e0 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 68 6f 77 2d 66 69 6c 65 2d 6f 6e 2d 6c 69 6e 65 20 28 29 .emms-score-show-file-on-line.()
30500 0a 20 20 22 53 68 6f 77 20 73 63 6f 72 65 20 66 6f 72 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e ..."Show.score.for.track.at.poin
30520 74 20 69 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 t.in.emms-playlist.buffer."...(i
30540 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 74 72 61 63 6b 2f 74 6f nteractive)...(message."track/to
30560 6c 65 72 61 6e 63 65 20 73 63 6f 72 65 3a 20 25 64 2f 25 64 22 0a 09 20 20 20 28 65 6d 6d 73 2d lerance.score:.%d/%d".....(emms-
30580 73 63 6f 72 65 2d 67 65 74 2d 73 63 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d score-get-score.............(emm
305a0 73 2d 73 63 6f 72 65 2d 74 72 61 63 6b 2d 61 74 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 09 20 20 20 s-score-track-at-filename)).....
305c0 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f 72 65 29 29 0a 0a 0c 0a 3b 3b 3b 20 49 6e emms-score-min-score))....;;;.In
305e0 74 65 72 6e 61 6c 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 ternal.Functions..(defun.emms-sc
30600 6f 72 65 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 2d 66 69 6c 65 6e ore-current-selected-track-filen
30620 61 6d 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 63 75 72 ame.()..."Return.filename.of.cur
30640 72 65 6e 74 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 22 0a 20 20 28 65 6d 6d 73 2d 74 72 rent.selected.track."...(emms-tr
30660 61 63 6b 2d 67 65 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 ack-get.(emms-playlist-current-s
30680 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 20 27 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 elected-track).'name))..(defun.e
306a0 6d 6d 73 2d 73 63 6f 72 65 2d 74 72 61 63 6b 2d 61 74 2d 66 69 6c 65 6e 61 6d 65 20 28 29 0a 20 mms-score-track-at-filename.()..
306c0 20 22 52 65 74 75 72 6e 20 66 69 6c 65 20 6f 66 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 ."Return.file.of.track.at.point.
306e0 69 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d in.emms-playlist.buffer."...(emm
30700 73 2d 74 72 61 63 6b 2d 67 65 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b s-track-get.(emms-playlist-track
30720 2d 61 74 29 20 27 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d -at).'name))..(defun.emms-score-
30740 6f 6b 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 28 74 72 61 63 6b 29 0a 20 20 22 44 65 63 ok-track-function.(track)..."Dec
30760 69 64 65 20 69 66 20 74 6f 20 73 6b 69 70 20 6f 72 20 70 6c 61 79 20 54 52 41 43 4b 2e 22 0a 20 ide.if.to.skip.or.play.TRACK."..
30780 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 65 63 6b 2d 73 63 6f 72 65 20 28 65 6d 6d 73 2d 74 .(emms-score-check-score.(emms-t
307a0 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 rack-get.track.'name)))..(defun.
307c0 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 61 76 65 2d 68 61 73 68 20 28 29 0a 20 20 22 53 61 76 65 20 emms-score-save-hash.()..."Save.
307e0 73 63 6f 72 65 20 68 61 73 68 20 69 6e 20 60 65 6d 6d 73 2d 73 63 6f 72 65 2d 66 69 6c 65 27 2e score.hash.in.`emms-score-file'.
30800 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c "...(interactive)...(unless.(fil
30820 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f e-directory-p.(file-name-directo
30840 72 79 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 6d 61 6b 65 2d 64 ry.emms-score-file)).....(make-d
30860 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 65 6d irectory.(file-name-directory.em
30880 6d 73 2d 73 63 6f 72 65 2d 66 69 6c 65 29 29 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 66 69 ms-score-file)))...(with-temp-fi
308a0 6c 65 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 66 69 6c 65 0a 20 20 20 20 28 6c 65 74 20 28 28 73 74 le.emms-score-file.....(let.((st
308c0 61 6e 64 61 72 64 2d 6f 75 74 70 75 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 andard-output.(current-buffer)))
308e0 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 20 20 20 20 28 6d 61 70 68 61 .......(insert."(").......(mapha
30900 73 68 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 76 61 6c 75 65 29 0a 09 09 20 28 70 72 69 6e 31 sh.(lambda.(key.value)....(prin1
30920 20 28 63 6f 6e 73 20 6b 65 79 20 76 61 6c 75 65 29 29 29 0a 09 20 20 20 20 20 20 20 65 6d 6d 73 .(cons.key.value))).........emms
30940 2d 73 63 6f 72 65 2d 68 61 73 68 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 22 29 29 -score-hash).......(insert.")"))
30960 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6c 6f 61 64 2d 68 61 73 68 20 ))..(defun.emms-score-load-hash.
30980 28 29 0a 20 20 22 4c 6f 61 64 20 73 63 6f 72 65 20 68 61 73 68 20 66 72 6f 6d 20 60 65 6d 6d 73 ()..."Load.score.hash.from.`emms
309a0 2d 73 63 6f 72 65 2d 66 69 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 -score-file'."...(interactive)..
309c0 20 28 69 66 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 66 .(if.(file-exists-p.emms-score-f
309e0 69 6c 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 63 6f 72 65 2d 73 74 72 69 6e 67 20 28 ile).......(let.((score-string.(
30a00 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 09 09 09 20 20 20 20 28 65 6d 6d 73 2d 69 6e with-temp-buffer........(emms-in
30a20 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 66 69 sert-file-contents.emms-score-fi
30a40 6c 65 29 0a 09 09 09 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 09 28 le)........(buffer-string))))..(
30a60 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 63 6f 72 65 2d 73 74 72 69 6e 67 29 20 30 29 0a 09 if.(>.(length.score-string).0)..
30a80 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 29 0a 09 09 20 20 20 20 28 70 ....(mapc.(lambda.(elt).......(p
30aa0 75 74 68 61 73 68 20 28 63 61 72 20 65 6c 74 29 20 28 63 64 72 20 65 6c 74 29 20 65 6d 6d 73 2d uthash.(car.elt).(cdr.elt).emms-
30ac0 73 63 6f 72 65 2d 68 61 73 68 29 29 0a 09 09 20 20 28 72 65 61 64 20 73 63 6f 72 65 2d 73 74 72 score-hash)).....(read.score-str
30ae0 69 6e 67 29 29 29 0a 09 3b 3b 20 77 68 65 6e 20 66 69 6c 65 20 6e 6f 74 20 65 78 69 73 74 73 2c ing)))..;;.when.file.not.exists,
30b00 20 6d 61 6b 65 20 65 6d 70 74 79 20 62 75 74 20 76 61 6c 69 64 20 73 63 6f 72 65 20 66 69 6c 65 .make.empty.but.valid.score.file
30b20 0a 09 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 73 61 76 65 2d 68 61 73 68 29 29 29 29 0a 0a 28 64 65 ..(emms-score-save-hash))))..(de
30b40 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 65 74 2d 70 6c 69 73 74 20 28 66 69 6c 65 6e 61 fun.emms-score-get-plist.(filena
30b60 6d 65 29 0a 20 20 28 67 65 74 68 61 73 68 20 66 69 6c 65 6e 61 6d 65 20 65 6d 6d 73 2d 73 63 6f me)...(gethash.filename.emms-sco
30b80 72 65 2d 68 61 73 68 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 68 61 re-hash))..(defun.emms-score-cha
30ba0 6e 67 65 2d 73 63 6f 72 65 20 28 73 63 6f 72 65 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 28 6c 65 nge-score.(score.filename)...(le
30bc0 74 20 28 28 73 70 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 65 74 2d 70 6c 69 73 74 20 66 69 6c t.((sp.(emms-score-get-plist.fil
30be0 65 6e 61 6d 65 29 20 29 0a 09 28 73 63 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 65 74 2d 73 63 ename).)..(sc.(emms-score-get-sc
30c00 6f 72 65 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 66 69 6c ore.filename))).....(puthash.fil
30c20 65 6e 61 6d 65 0a 09 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 73 70 20 65 6d 6d 73 2d 73 ename.......(plist-put.sp.emms-s
30c40 63 6f 72 65 2d 63 75 72 72 65 6e 74 2d 6d 6f 6f 64 20 28 2b 20 73 63 20 73 63 6f 72 65 29 29 0a core-current-mood.(+.sc.score)).
30c60 09 20 20 20 20 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 68 61 73 68 29 0a 20 20 20 20 28 6d 65 73 73 ......emms-score-hash).....(mess
30c80 61 67 65 20 22 4e 65 77 20 73 63 6f 72 65 20 69 73 20 25 73 22 20 28 2b 20 73 63 6f 72 65 20 73 age."New.score.is.%s".(+.score.s
30ca0 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 72 65 61 74 65 2d c))))..(defun.emms-score-create-
30cc0 65 6e 74 72 79 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 28 70 75 74 68 61 73 68 20 66 69 6c 65 entry.(filename)...(puthash.file
30ce0 6e 61 6d 65 0a 09 20 20 20 60 28 2c 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 65 6e 74 2d 6d name.....`(,emms-score-current-m
30d00 6f 6f 64 20 2c 65 6d 6d 73 2d 73 63 6f 72 65 2d 64 65 66 61 75 6c 74 2d 73 63 6f 72 65 29 0a 09 ood.,emms-score-default-score)..
30d20 20 20 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 68 61 73 68 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ...emms-score-hash))..(defun.emm
30d40 73 2d 73 63 6f 72 65 2d 67 65 74 2d 73 63 6f 72 65 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 s-score-get-score.(filename)..."
30d60 52 65 74 75 72 6e 20 73 63 6f 72 65 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 Return.score.of.TRACK."...(let.(
30d80 28 70 6c 69 73 74 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 65 74 2d 70 6c 69 73 74 20 66 69 6c (plist.(emms-score-get-plist.fil
30da0 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 65 6d 6d 73 2d 73 63 ename))).....(if.(member.emms-sc
30dc0 6f 72 65 2d 63 75 72 72 65 6e 74 2d 6d 6f 6f 64 20 70 6c 69 73 74 29 0a 09 28 70 6c 69 73 74 2d ore-current-mood.plist)..(plist-
30de0 67 65 74 20 70 6c 69 73 74 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 75 72 72 65 6e 74 2d 6d 6f 6f get.plist.emms-score-current-moo
30e00 64 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 63 72 65 61 74 65 2d 65 6e 74 72 d).......(emms-score-create-entr
30e20 79 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 65 y.filename).......(emms-score-ge
30e40 74 2d 73 63 6f 72 65 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d t-score.filename))))..(defun.emm
30e60 73 2d 73 63 6f 72 65 2d 63 68 65 63 6b 2d 73 63 6f 72 65 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 s-score-check-score.(filename)..
30e80 20 28 3e 3d 20 28 65 6d 6d 73 2d 73 63 6f 72 65 2d 67 65 74 2d 73 63 6f 72 65 20 66 69 6c 65 6e .(>=.(emms-score-get-score.filen
30ea0 61 6d 65 29 20 65 6d 6d 73 2d 73 63 6f 72 65 2d 6d 69 6e 2d 73 63 6f 72 65 29 29 0a 0a 28 70 72 ame).emms-score-min-score))..(pr
30ec0 6f 76 69 64 65 20 27 65 6d 6d 73 2d 73 63 6f 72 65 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 73 63 6f ovide.'emms-score)..;;;.emms-sco
30ee0 72 65 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 res.el.ends.here................
30f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 emms-24/emms-player-mpg321-remot
31020 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e.el............................
31040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
31080 30 30 32 30 33 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 36 32 00 20 30 00 00 00 0020336.00000000000.015762..0...
310a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
310c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
310e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
31120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
31140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
311a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
311c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
311e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31200 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2e 65 6c ;;;.emms-player-mpg321-remote.el
31220 20 2d 2d 2d 20 70 6c 61 79 20 66 69 6c 65 73 20 77 69 74 68 20 6d 70 67 33 32 31 20 2d 52 20 20 .---.play.files.with.mpg321.-R..
31240 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 -*-.lexical-binding:.t;.-*-..;;.
31260 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f Copyright.(C).2006-2021..Free.So
31280 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 ftware.Foundation,.Inc...;;.Auth
312a0 6f 72 3a 20 44 61 6d 69 65 6e 20 45 6c 6d 65 73 20 3c 65 6d 61 63 73 40 72 65 70 6f 73 65 2e 63 or:.Damien.Elmes.<emacs@repose.c
312c0 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6d 70 33 2c 20 6d 70 65 67 2c x>.;;.Keywords:.emms,.mp3,.mpeg,
312e0 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 66 72 65 .multimedia..;;.This.file.is.fre
31300 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software;.you.can.redistribute
31320 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.;;.it.under.th
31340 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
31360 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 c.License.as.published.by.;;.the
31380 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 .Free.Software.Foundation;.eithe
313a0 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 r.version.3,.or.(at.your.option)
313c0 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 .;;.any.later.version...;;.This.
313e0 66 69 6c 65 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 file.is.distributed.in.the.hope.
31400 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 that.it.will.be.useful,.;;.but.W
31420 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 ITHOUT.ANY.WARRANTY;.without.eve
31440 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 n.the.implied.warranty.of.;;.MER
31460 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 CHANTABILITY.or.FITNESS.FOR.A.PA
31480 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e RTICULAR.PURPOSE...See.the.;;.GN
314a0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 U.General.Public.License.for.mor
314c0 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 e.details...;;.You.should.have.r
314e0 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 eceived.a.copy.of.the.GNU.Genera
31500 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 l.Public.License.;;.along.with.G
31520 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 NU.Emacs;.see.the.file.COPYING..
31540 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f .If.not,.write.to.;;.the.Free.So
31560 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 39 20 54 65 6d 70 ftware.Foundation,.Inc.,.59.Temp
31580 6c 65 20 50 6c 61 63 65 20 2d 20 53 75 69 74 65 20 33 33 30 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c le.Place.-.Suite.330,.;;.Boston,
315a0 20 4d 41 20 30 32 31 31 31 2d 31 33 30 37 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e .MA.02111-1307,.USA...;;;.Commen
315c0 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 6e 20 tary:..;;.This.file.provides.an.
315e0 65 6d 6d 73 2d 70 6c 61 79 65 72 20 77 68 69 63 68 20 75 73 65 73 20 6d 70 67 33 32 31 27 73 20 emms-player.which.uses.mpg321's.
31600 72 65 6d 6f 74 65 20 6d 6f 64 65 0a 3b 3b 20 74 6f 20 70 6c 61 79 20 66 69 6c 65 73 2e 20 54 68 remote.mode.;;.to.play.files..Th
31620 69 73 20 69 73 20 61 20 70 65 72 73 69 73 74 65 6e 74 20 70 72 6f 63 65 73 73 20 77 68 69 63 68 is.is.a.persistent.process.which
31640 20 69 73 6e 27 74 20 6b 69 6c 6c 65 64 20 65 61 63 68 0a 3b 3b 20 74 69 6d 65 20 61 20 6e 65 77 .isn't.killed.each.;;.time.a.new
31660 20 66 69 6c 65 20 69 73 20 70 6c 61 79 65 64 2e 0a 0a 3b 3b 20 54 68 65 20 72 65 6d 6f 74 65 20 .file.is.played...;;.The.remote.
31680 70 72 6f 63 65 73 73 20 63 6f 70 65 73 20 67 72 61 63 69 6f 75 73 6c 79 20 77 69 74 68 20 65 72 process.copes.graciously.with.er
316a0 72 6f 72 73 20 69 6e 20 6d 75 73 69 63 20 66 69 6c 65 73 2c 20 61 6e 64 0a 3b 3b 20 61 6c 6c 6f rors.in.music.files,.and.;;.allo
316c0 77 73 20 79 6f 75 20 74 6f 20 73 65 65 6b 20 69 6e 20 66 69 6c 65 73 2e 0a 0a 3b 3b 20 54 6f 20 ws.you.to.seek.in.files...;;.To.
316e0 65 6e 61 62 6c 65 20 74 68 69 73 20 63 6f 64 65 2c 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 enable.this.code,.add.the.follow
31700 69 6e 67 20 74 6f 20 79 6f 75 72 20 65 6d 61 63 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a ing.to.your.emacs.configuration:
31720 0a 0a 3b 3b 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 ..;;.(require.'emms-player-mpg32
31740 31 2d 72 65 6d 6f 74 65 29 0a 3b 3b 20 28 70 75 73 68 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 1-remote).;;.(push.'emms-player-
31760 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 0a mpg321-remote.emms-player-list).
31780 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 .;;;.Code:..(require.'emms).(req
317a0 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 0a 3b 3b 20 2d 2d uire.'emms-player-simple)..;;.--
317c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
317e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 56 61 72 69 61 62 6c 65 73 20 61 6e ----------------.;;.Variables.an
31800 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d d.configuration.;;.-------------
31820 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
31840 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 -----..(defgroup.emms-player-mpg
31860 33 32 31 2d 72 65 6d 6f 74 65 20 6e 69 6c 0a 20 20 22 2a 45 4d 4d 53 20 70 6c 61 79 65 72 20 75 321-remote.nil..."*EMMS.player.u
31880 73 69 6e 67 20 6d 70 67 33 32 31 27 73 20 72 65 6d 6f 74 65 20 6d 6f 64 65 2e 22 0a 20 20 3a 67 sing.mpg321's.remote.mode."...:g
318a0 72 6f 75 70 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d roup.'emms-player...:prefix."emm
318c0 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 22 29 0a 0a 28 64 65 66 63 75 s-player-mpg321-remote")..(defcu
318e0 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 63 stom.emms-player-mpg321-remote-c
31900 6f 6d 6d 61 6e 64 20 22 6d 70 67 33 32 31 22 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e ommand."mpg321"..."The.command.n
31920 61 6d 65 20 6f 66 20 6d 70 67 33 32 31 2e 22 0a 20 20 3a 74 79 70 65 20 20 27 73 74 72 69 6e 67 ame.of.mpg321."...:type..'string
31940 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 )..(defcustom.emms-player-mpg321
31960 2d 72 65 6d 6f 74 65 2d 70 61 72 61 6d 65 74 65 72 73 20 6e 69 6c 0a 20 20 22 45 78 74 72 61 20 -remote-parameters.nil..."Extra.
31980 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 73 20 74 6f 20 6d 70 67 33 32 31 20 77 68 65 6e arguments.to.pass.to.mpg321.when
319a0 20 75 73 69 6e 67 20 72 65 6d 6f 74 65 20 6d 6f 64 65 0a 46 6f 72 20 65 78 61 6d 70 6c 65 3a 20 .using.remote.mode.For.example:.
319c0 28 6c 69 73 74 20 5c 22 2d 6f 5c 22 20 5c 22 61 6c 73 61 5c 22 29 22 0a 20 20 3a 74 79 70 65 20 (list.\"-o\".\"alsa\")"...:type.
319e0 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 .'(repeat.string))..(defcustom.e
31a00 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 0a 20 20 28 65 6d 6d 73 mms-player-mpg321-remote...(emms
31a20 2d 70 6c 61 79 65 72 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d -player.#'emms-player-mpg321-rem
31a40 6f 74 65 2d 73 74 61 72 74 2d 70 6c 61 79 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ote-start-playing...............
31a60 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f .#'emms-player-mpg321-remote-sto
31a80 70 2d 70 6c 61 79 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d p-playing................#'emms-
31aa0 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 6c 61 79 61 62 6c 65 2d 70 29 player-mpg321-remote-playable-p)
31ac0 0a 20 20 22 41 20 70 6c 61 79 65 72 20 66 6f 72 20 45 4d 4d 53 2e 22 0a 20 20 3a 74 79 70 65 20 ..."A.player.for.EMMS."...:type.
31ae0 27 28 63 6f 6e 73 20 73 79 6d 62 6f 6c 20 61 6c 69 73 74 29 29 0a 0a 28 64 65 66 76 61 72 20 65 '(cons.symbol.alist))..(defvar.e
31b00 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 69 6e 69 74 69 61 6c mms-player-mpg321-remote-initial
31b20 2d 61 72 67 73 0a 20 20 28 6c 69 73 74 20 22 2d 2d 73 6b 69 70 2d 70 72 69 6e 74 69 6e 67 2d 66 -args...(list."--skip-printing-f
31b40 72 61 6d 65 73 3d 31 30 22 20 22 2d 52 22 20 22 2d 22 29 0a 20 20 22 49 6e 69 74 69 61 6c 20 61 rames=10"."-R"."-")..."Initial.a
31b60 72 67 73 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 6d 70 67 33 32 31 20 70 72 6f 63 65 73 rgs.to.pass.to.the.mpg321.proces
31b80 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 s.")..(defvar.emms-player-mpg321
31ba0 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 65 6d 6d 73 2d 70 6c 61 79 65 -remote-process-name."emms-playe
31bc0 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 22 0a 20 20 22 54 68 65 20 6e 61 6d r-mpg321-remote-proc"..."The.nam
31be0 65 20 6f 66 20 74 68 65 20 6d 70 67 33 32 31 20 72 65 6d 6f 74 65 20 70 6c 61 79 65 72 20 70 72 e.of.the.mpg321.remote.player.pr
31c00 6f 63 65 73 73 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 ocess")..(defvar.emms-player-mpg
31c20 33 32 31 2d 72 65 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 20 30 0a 20 20 22 4e 75 6d 62 321-remote-ignore-stop.0..."Numb
31c40 65 72 20 6f 66 20 73 74 6f 70 20 6d 65 73 73 61 67 65 73 20 74 6f 20 69 67 6e 6f 72 65 2c 20 64 er.of.stop.messages.to.ignore,.d
31c60 75 65 20 74 6f 20 75 73 65 72 20 61 63 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 ue.to.user.action.")..(defmacro.
31c80 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 61 64 64 20 28 63 emms-player-mpg321-remote-add.(c
31ca0 6d 64 20 66 75 6e 63 29 0a 20 20 60 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 27 65 6d md.func)...`(emms-player-set.'em
31cc0 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 0a 20 20 20 20 20 20 20 20 ms-player-mpg321-remote.........
31ce0 20 20 20 20 20 20 20 20 20 20 20 20 2c 63 6d 64 20 2c 66 75 6e 63 29 29 0a 0a 28 65 6d 6d 73 2d ............,cmd.,func))..(emms-
31d00 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 61 64 64 0a 20 27 72 65 67 65 78 player-mpg321-remote-add..'regex
31d20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 6d 70 33 .(emms-player-simple-regexp."mp3
31d40 22 20 22 6d 70 32 22 29 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 "."mp2")).(emms-player-mpg321-re
31d60 6d 6f 74 65 2d 61 64 64 0a 20 27 70 61 75 73 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 mote-add..'pause.'emms-player-mp
31d80 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 61 75 73 65 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d g321-remote-pause).(emms-player-
31da0 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 61 64 64 0a 20 27 72 65 73 75 6d 65 20 27 65 6d 6d 73 mpg321-remote-add..'resume.'emms
31dc0 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 61 75 73 65 29 0a 28 65 6d -player-mpg321-remote-pause).(em
31de0 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 61 64 64 0a 20 27 73 65 ms-player-mpg321-remote-add..'se
31e00 65 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 ek.'emms-player-mpg321-remote-se
31e20 65 6b 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ek)..;;.------------------------
31e40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 50 72 --------------------------.;;.Pr
31e60 6f 63 65 73 73 20 6d 61 69 6e 74 65 6e 65 6e 63 65 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ocess.maintenence.;;.-----------
31e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
31ea0 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 -------..(defun.emms-player-mpg3
31ec0 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 72 74 2d 70 72 6f 63 65 73 73 20 28 29 0a 20 20 22 53 74 21-remote-start-process.()..."St
31ee0 61 72 74 20 61 20 6e 65 77 20 72 65 6d 6f 74 65 20 70 72 6f 63 65 73 73 2c 20 61 6e 64 20 72 65 art.a.new.remote.process,.and.re
31f00 74 75 72 6e 20 74 68 65 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 turn.the.process."...(let.((proc
31f20 65 73 73 20 28 61 70 70 6c 79 20 23 27 73 74 61 72 74 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 ess.(apply.#'start-process......
31f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ...................emms-player-m
31f60 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 0a 20 20 20 20 20 20 pg321-remote-process-name.......
31f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 ..................nil...........
31fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 ..............emms-player-mpg321
31fc0 2d 72 65 6d 6f 74 65 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -remote-command.................
31fe0 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 ........(append.emms-player-mpg3
32000 32 31 2d 72 65 6d 6f 74 65 2d 69 6e 69 74 69 61 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 21-remote-initial-args..........
32020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 .......................emms-play
32040 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 61 72 61 6d 65 74 65 72 73 29 29 29 29 0a er-mpg321-remote-parameters)))).
32060 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 65 73 ....(set-process-sentinel.proces
32080 73 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 s.#'emms-player-mpg321-remote-se
320a0 6e 74 69 6e 65 6c 29 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 65 72 20 ntinel).....(set-process-filter.
320c0 70 72 6f 63 65 73 73 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d process.#'emms-player-mpg321-rem
320e0 6f 74 65 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 70 72 6f 63 65 73 73 29 29 0a 0a 28 64 65 66 75 ote-filter).....process))..(defu
32100 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 n.emms-player-mpg321-remote-stop
32120 20 28 29 0a 20 20 22 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e .()..."Stop.the.currently.playin
32140 67 20 70 72 6f 63 65 73 73 2c 20 69 66 20 69 6e 64 65 65 64 20 74 68 65 72 65 20 69 73 20 6f 6e g.process,.if.indeed.there.is.on
32160 65 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 65 73 73 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 e"...(let.((process.(emms-player
32180 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 28 77 -mpg321-remote-process))).....(w
321a0 68 65 6e 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 70 72 6f 63 65 73 73 20 hen.process.......(kill-process.
321c0 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 70 72 6f 63 65 73 73 20 70 process).......(delete-process.p
321e0 72 6f 63 65 73 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d rocess))))..(defun.emms-player-m
32200 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 20 28 29 0a 20 20 22 52 65 74 75 72 pg321-remote-process.()..."Retur
32220 6e 20 74 68 65 20 72 65 6d 6f 74 65 20 70 72 6f 63 65 73 73 2c 20 69 66 20 69 74 20 65 78 69 73 n.the.remote.process,.if.it.exis
32240 74 73 2e 22 0a 20 20 28 67 65 74 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ts."...(get-process.emms-player-
32260 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 29 29 0a 0a 28 64 mpg321-remote-process-name))..(d
32280 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 72 efun.emms-player-mpg321-remote-r
322a0 75 6e 6e 69 6e 67 2d 70 20 28 29 0a 20 20 22 54 72 75 65 20 69 66 20 74 68 65 20 72 65 6d 6f 74 unning-p.()..."True.if.the.remot
322c0 65 20 70 72 6f 63 65 73 73 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 72 75 6e 6e 69 6e 67 2e e.process.exists.and.is.running.
322e0 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 "...(let.((proc.(emms-player-mpg
32300 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 28 61 6e 64 20 70 321-remote-process))).....(and.p
32320 72 6f 63 0a 20 20 20 20 20 20 20 20 20 28 65 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 roc..........(eq.(process-status
32340 20 70 72 6f 63 29 20 27 72 75 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 .proc).'run))))..(defun.emms-pla
32360 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 yer-mpg321-remote-sentinel.(proc
32380 20 73 74 72 29 0a 20 20 22 53 65 6e 74 69 6e 65 6c 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e .str)..."Sentinel.for.determinin
323a0 67 20 74 68 65 20 65 6e 64 20 6f 66 20 70 72 6f 63 65 73 73 22 0a 20 20 28 69 67 6e 6f 72 65 20 g.the.end.of.process"...(ignore.
323c0 73 74 72 29 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 20 28 70 72 6f 63 65 73 73 2d 73 74 str)...(when.(or.(eq.(process-st
323e0 61 74 75 73 20 70 72 6f 63 29 20 27 65 78 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 atus.proc).'exit).............(e
32400 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 20 27 73 69 67 6e 61 6c 29 q.(process-status.proc).'signal)
32420 29 0a 20 20 20 20 3b 3b 20 72 65 73 65 74 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c ).....;;.reset.....(setq.emms-pl
32440 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 20 30 ayer-mpg321-remote-ignore-stop.0
32460 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 6d 6f 74 65 20 70 72 6f 63 65 73 73 20 64 ).....(message."Remote.process.d
32480 69 65 64 21 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 ied!")))..(defun.emms-player-mpg
324a0 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 6e 64 20 28 74 65 78 74 29 0a 20 20 22 53 65 6e 64 20 54 321-remote-send.(text)..."Send.T
324c0 45 58 54 20 74 6f 20 74 68 65 20 6d 70 67 33 32 31 20 72 65 6d 6f 74 65 20 70 72 6f 63 65 73 73 EXT.to.the.mpg321.remote.process
324e0 2c 20 61 6e 64 20 61 64 64 20 61 20 6e 65 77 6c 69 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 70 72 ,.and.add.a.newline."...(let.(pr
32500 6f 63 29 0a 20 20 20 20 3b 3b 20 77 65 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 20 74 72 79 69 6e oc).....;;.we.shouldn't.be.tryin
32520 67 20 74 6f 20 73 65 6e 64 20 74 6f 20 61 20 64 65 61 64 20 70 72 6f 63 65 73 73 0a 20 20 20 20 g.to.send.to.a.dead.process.....
32540 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f (unless.(emms-player-mpg321-remo
32560 74 65 2d 72 75 6e 6e 69 6e 67 2d 70 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 te-running-p).......(emms-player
32580 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 72 74 2d 70 72 6f 63 65 73 73 29 29 0a 20 -mpg321-remote-start-process))..
325a0 20 20 20 28 73 65 74 71 20 70 72 6f 63 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 ...(setq.proc..(emms-player-mpg3
325c0 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 29 29 0a 20 20 20 20 28 70 72 6f 63 65 73 73 21-remote-process)).....(process
325e0 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 70 72 6f 63 20 28 63 6f 6e 63 61 74 20 74 65 78 74 20 22 -send-string.proc.(concat.text."
32600 5c 6e 22 29 29 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d \n"))))..;;.--------------------
32620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b ------------------------------.;
32640 3b 20 49 6e 74 65 72 66 61 63 69 6e 67 20 77 69 74 68 20 65 6d 6d 73 0a 3b 3b 20 2d 2d 2d 2d 2d ;.Interfacing.with.emms.;;.-----
32660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
32680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 -------------..(defun.emms-playe
326a0 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 20 73 74 72 r-mpg321-remote-filter.(proc.str
326c0 29 0a 20 20 28 69 67 6e 6f 72 65 20 70 72 6f 63 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 )...(ignore.proc)...(let*.((data
326e0 2d 6c 69 6e 65 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 73 74 72 20 22 5c 6e 22 20 74 29 -lines.(split-string.str."\n".t)
32700 29 0a 20 20 20 20 20 20 20 20 20 64 61 74 61 0a 09 20 63 6d 64 29 0a 20 20 20 20 28 64 6f 6c 69 )..........data...cmd).....(doli
32720 73 74 20 28 6c 69 6e 65 20 64 61 74 61 2d 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 st.(line.data-lines).......(setq
32740 20 64 61 74 61 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 .data.(split-string.line))......
32760 20 28 73 65 74 71 20 63 6d 64 20 28 63 61 72 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 63 6f .(setq.cmd.(car.data)).......(co
32780 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 73 74 6f 70 20 6e 6f 74 69 63 65 0a 20 20 20 20 20 20 20 nd........;;.stop.notice........
327a0 28 28 61 6e 64 20 28 73 74 72 69 6e 67 3d 20 63 6d 64 20 22 40 50 22 29 0a 20 20 20 20 20 20 20 ((and.(string=.cmd."@P")........
327c0 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 3d 20 28 63 61 64 72 20 64 61 74 61 29 20 22 ......(or.(string=.(cadr.data)."
327e0 30 22 29 0a 09 09 20 28 73 74 72 69 6e 67 3d 20 28 63 61 64 72 20 64 61 74 61 29 20 22 33 22 29 0")....(string=.(cadr.data)."3")
32800 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 )).........(emms-player-mpg321-r
32820 65 6d 6f 74 65 2d 6e 6f 74 69 66 79 2d 65 6d 6d 73 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 66 72 emote-notify-emms))........;;.fr
32840 61 6d 65 20 6e 6f 74 69 63 65 0a 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 63 6d 64 20 ame.notice........((string=.cmd.
32860 22 40 46 22 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 65 76 65 6e 20 74 68 6f 75 67 68 20 61 20 74 "@F").........;;.even.though.a.t
32880 69 6d 65 72 20 69 73 20 63 6f 6e 73 74 61 6e 74 6c 79 20 75 70 64 61 74 69 6e 67 20 74 68 69 73 imer.is.constantly.updating.this
328a0 20 76 61 72 69 61 62 6c 65 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 75 70 64 61 74 69 6e 67 20 69 .variable,.........;;.updating.i
328c0 74 20 68 65 72 65 20 77 69 6c 6c 20 63 61 75 73 65 20 69 74 20 74 6f 20 73 74 61 79 20 70 72 65 t.here.will.cause.it.to.stay.pre
328e0 74 74 79 20 6d 75 63 68 20 69 6e 20 73 79 6e 63 2e 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 tty.much.in.sync..........(run-h
32900 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 74 69 6d 65 2d ook-with-args.'emms-player-time-
32920 73 65 74 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 set-functions...................
32940 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e ..........(truncate.(string-to-n
32960 75 6d 62 65 72 20 28 6e 74 68 20 33 20 64 61 74 61 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 umber.(nth.3.data)))))))))..(def
32980 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 un.emms-player-mpg321-remote-sta
329a0 72 74 2d 70 6c 61 79 69 6e 67 20 28 74 72 61 63 6b 29 0a 20 20 22 53 74 61 72 74 20 70 6c 61 79 rt-playing.(track)..."Start.play
329c0 69 6e 67 20 61 20 73 6f 6e 67 20 62 79 20 74 65 6c 6c 69 6e 67 20 74 68 65 20 72 65 6d 6f 74 65 ing.a.song.by.telling.the.remote
329e0 20 70 72 6f 63 65 73 73 20 74 6f 20 70 6c 61 79 20 69 74 2e 0a 49 66 20 74 68 65 20 72 65 6d 6f .process.to.play.it..If.the.remo
32a00 74 65 20 70 72 6f 63 65 73 73 20 69 73 20 6e 6f 74 20 72 75 6e 6e 69 6e 67 2c 20 6c 61 75 6e 63 te.process.is.not.running,.launc
32a20 68 20 69 74 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 h.it."...(unless.(emms-player-mp
32a40 67 33 32 31 2d 72 65 6d 6f 74 65 2d 72 75 6e 6e 69 6e 67 2d 70 29 0a 20 20 20 20 28 65 6d 6d 73 g321-remote-running-p).....(emms
32a60 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 72 74 2d 70 72 6f 63 -player-mpg321-remote-start-proc
32a80 65 73 73 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f ess))...(emms-player-mpg321-remo
32aa0 74 65 2d 70 6c 61 79 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 29 0a 0a 28 64 65 66 76 61 72 20 65 te-play-track.track))..(defvar.e
32ac0 6d 6d 73 2d 70 6c 61 79 65 72 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 29 0a 0a 28 64 65 66 75 6e 20 mms-player-ignore-stop)..(defun.
32ae0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 6e 6f 74 69 66 79 emms-player-mpg321-remote-notify
32b00 2d 65 6d 6d 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 75 73 65 72 2d 61 63 74 69 6f 6e 29 0a 20 20 -emms.(&optional.user-action)...
32b20 22 54 65 6c 6c 20 65 6d 6d 73 20 74 68 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 6f 6e 67 "Tell.emms.that.the.current.song
32b40 20 68 61 73 20 66 69 6e 69 73 68 65 64 2e 0a 49 66 20 55 53 45 52 2d 41 43 54 49 4f 4e 2c 20 73 .has.finished..If.USER-ACTION,.s
32b60 65 74 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 69 67 et.`emms-player-mpg321-remote-ig
32b80 6e 6f 72 65 2d 73 74 6f 70 27 20 73 6f 20 74 68 61 74 20 77 65 0a 69 67 6e 6f 72 65 20 74 68 65 nore-stop'.so.that.we.ignore.the
32ba0 20 6e 65 78 74 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 6d 70 67 33 32 31 2e 22 0a 20 20 28 69 .next.message.from.mpg321."...(i
32bc0 66 20 75 73 65 72 2d 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d f.user-action.......(let.((emms-
32be0 70 6c 61 79 65 72 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 20 74 29 29 0a 20 20 20 20 20 20 20 20 3b player-ignore-stop.t)).........;
32c00 3b 20 73 6f 20 77 65 20 69 67 6e 6f 72 65 20 74 68 65 20 6e 65 78 74 20 73 74 6f 70 20 6d 65 73 ;.so.we.ignore.the.next.stop.mes
32c20 73 61 67 65 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d sage.........(setq.emms-player-m
32c40 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 0a 20 20 20 20 20 20 20 pg321-remote-ignore-stop........
32c60 20 20 20 20 20 20 20 28 31 2b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 .......(1+.emms-player-mpg321-re
32c80 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 mote-ignore-stop)).........(emms
32ca0 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 0a 20 20 20 20 3b 3b 20 6e 6f 74 20 61 20 75 -player-stopped)).....;;.not.a.u
32cc0 73 65 72 20 61 63 74 69 6f 6e 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 65 ser.action.....(if.(not.(zerop.e
32ce0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d mms-player-mpg321-remote-ignore-
32d00 73 74 6f 70 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 stop)).........(setq.emms-player
32d20 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 0a 20 20 20 20 20 -mpg321-remote-ignore-stop......
32d40 20 20 20 20 20 20 20 20 20 28 31 2d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d .........(1-.emms-player-mpg321-
32d60 72 65 6d 6f 74 65 2d 69 67 6e 6f 72 65 2d 73 74 6f 70 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 remote-ignore-stop)).......(emms
32d80 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 -player-stopped))))..(defun.emms
32da0 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 2d 70 6c 61 79 69 -player-mpg321-remote-stop-playi
32dc0 6e 67 20 28 29 0a 20 20 22 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 6f 6e 67 20 70 ng.()..."Stop.the.current.song.p
32de0 6c 61 79 69 6e 67 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 laying."...(emms-player-mpg321-r
32e00 65 6d 6f 74 65 2d 6e 6f 74 69 66 79 2d 65 6d 6d 73 20 74 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 emote-notify-emms.t)...(emms-pla
32e20 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 6e 64 20 22 73 74 6f 70 22 29 29 0a yer-mpg321-remote-send."stop")).
32e40 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 .(defun.emms-player-mpg321-remot
32e60 65 2d 70 6c 61 79 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 29 0a 20 20 22 53 65 6e 64 20 61 20 70 e-play-track.(track)..."Send.a.p
32e80 6c 61 79 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 72 65 6d 6f 74 65 2c 20 62 61 73 65 64 lay.command.to.the.remote,.based
32ea0 20 6f 6e 20 54 52 41 43 4b 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 .on.TRACK."...(emms-player-mpg32
32ec0 31 2d 72 65 6d 6f 74 65 2d 73 65 6e 64 0a 20 20 20 28 63 6f 6e 63 61 74 20 22 6c 6f 61 64 20 22 1-remote-send....(concat."load."
32ee0 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 29 0a .(emms-track-get.track.'name))).
32f00 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 20 27 65 6d 6d 73 2d 70 6c 61 ..(emms-player-started.'emms-pla
32f20 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 yer-mpg321-remote))..(defun.emms
32f40 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 6c 61 79 61 62 6c 65 2d 70 -player-mpg321-remote-playable-p
32f60 20 28 74 72 61 63 6b 29 0a 20 20 3b 3b 20 75 73 65 20 74 68 65 20 73 69 6d 70 6c 65 20 64 65 66 .(track)...;;.use.the.simple.def
32f80 69 6e 69 74 69 6f 6e 2e 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 70 inition....(emms-player-mpg321-p
32fa0 6c 61 79 61 62 6c 65 2d 70 20 74 72 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 layable-p.track))..(defun.emms-p
32fc0 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 61 75 73 65 20 28 29 0a 20 20 22 layer-mpg321-remote-pause.()..."
32fe0 50 61 75 73 65 20 74 68 65 20 70 6c 61 79 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 Pause.the.player."...(emms-playe
33000 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 6e 64 20 22 70 61 75 73 65 22 29 29 0a 0a r-mpg321-remote-send."pause"))..
33020 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 (defun.emms-player-mpg321-remote
33040 2d 72 65 73 75 6d 65 20 28 29 0a 20 20 22 52 65 73 75 6d 65 20 74 68 65 20 70 6c 61 79 65 72 2e -resume.()..."Resume.the.player.
33060 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 "...(emms-player-mpg321-remote-s
33080 65 6e 64 20 22 70 61 75 73 65 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 end."pause"))..(defun.emms-playe
330a0 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 65 65 6b 20 28 73 65 63 6f 6e 64 73 29 0a 20 r-mpg321-remote-seek.(seconds)..
330c0 20 22 53 65 65 6b 20 66 6f 72 77 61 72 64 20 6f 72 20 62 61 63 6b 77 61 72 64 20 69 6e 20 74 68 ."Seek.forward.or.backward.in.th
330e0 65 20 66 69 6c 65 2e 22 0a 20 20 3b 3b 20 73 69 6e 63 65 20 6d 70 67 33 32 31 20 6f 6e 6c 79 20 e.file."...;;.since.mpg321.only.
33100 73 75 70 70 6f 72 74 73 20 73 65 65 6b 69 6e 67 20 62 79 20 66 72 61 6d 65 73 2c 20 6e 6f 74 20 supports.seeking.by.frames,.not.
33120 73 65 63 6f 6e 64 73 2c 20 77 65 0a 20 20 3b 3b 20 6d 61 6b 65 20 61 20 76 65 72 79 20 72 6f 75 seconds,.we...;;.make.a.very.rou
33140 67 68 20 67 75 65 73 73 20 61 73 20 74 6f 20 68 6f 77 20 6d 75 63 68 20 61 20 73 65 63 6f 6e 64 gh.guess.as.to.how.much.a.second
33160 20 63 6f 6e 73 74 69 74 75 74 65 73 0a 20 20 28 6c 65 74 20 28 28 66 72 61 6d 65 2d 73 74 72 69 .constitutes...(let.((frame-stri
33180 6e 67 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 2a 20 33 35 20 73 65 63 6f 6e ng.(number-to-string.(*.35.secon
331a0 64 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 69 66 20 77 65 27 72 65 20 6e 6f 74 20 67 6f 69 6e 67 ds)))).....;;.if.we're.not.going
331c0 20 62 61 63 6b 77 61 72 64 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 61 64 64 20 61 20 27 2b 27 .backwards,.we.need.to.add.a.'+'
331e0 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 3f 2d 20 28 73 74 72 69 6e 67 2d 74 6f 2d 63 .....(unless.(eq.?-.(string-to-c
33200 68 61 72 20 66 72 61 6d 65 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 har.frame-string)).......(setq.f
33220 72 61 6d 65 2d 73 74 72 69 6e 67 20 28 63 6f 6e 63 61 74 20 22 2b 22 20 66 72 61 6d 65 2d 73 74 rame-string.(concat."+".frame-st
33240 72 69 6e 67 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d ring))).....(emms-player-mpg321-
33260 72 65 6d 6f 74 65 2d 73 65 6e 64 20 28 63 6f 6e 63 61 74 20 22 6a 75 6d 70 20 22 20 66 72 61 6d remote-send.(concat."jump.".fram
33280 65 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 70 6c 61 e-string))))..(provide.'emms-pla
332a0 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 yer-mpg321-remote).;;;.emms-play
332c0 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 er-mpg321-remote.el.ends.here...
332e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
333a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
333c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
333e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33400 65 6d 6d 73 2d 32 34 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/Makefile................
33420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
33480 30 30 31 30 33 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 34 32 00 20 30 00 00 00 0010316.00000000000.012342..0...
334a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
334c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
334e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
33520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
33540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
335a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
335c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
335e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33600 23 23 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2c 20 32 30 30 38 2c 20 32 30 31 ##.Copyright.(C).2006,.2008,.201
33620 30 2c 20 32 30 31 32 2c 20 32 30 31 34 2c 20 32 30 31 36 2d 32 30 32 33 20 20 46 72 65 65 20 53 0,.2012,.2014,.2016-2023..Free.S
33640 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 23 23 0a 23 23 20 54 oftware.Foundation,.Inc..##.##.T
33660 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 23 23 0a 23 23 20 his.file.is.part.of.EMMS..##.##.
33680 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 EMMS.is.free.software;.you.can.r
336a0 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 23 23 20 edistribute.it.and/or.modify.##.
336c0 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 it.under.the.terms.of.the.GNU.Ge
336e0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 neral.Public.License.as.publishe
33700 64 20 62 79 0a 23 23 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 d.by.##.the.Free.Software.Founda
33720 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 tion;.either.version.3,.or.(at.y
33740 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 23 23 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e our.option).##.any.later.version
33760 2e 0a 23 23 0a 23 23 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 ..##.##.EMMS.is.distributed.in.t
33780 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a he.hope.that.it.will.be.useful,.
337a0 23 23 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 ##.but.WITHOUT.ANY.WARRANTY;.wit
337c0 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f hout.even.the.implied.warranty.o
337e0 66 0a 23 23 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 f.##.MERCHANTABILITY.or.FITNESS.
33800 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 FOR.A.PARTICULAR.PURPOSE...See.t
33820 68 65 0a 23 23 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 he.##.GNU.General.Public.License
33840 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 23 23 0a 23 23 20 59 6f 75 20 73 68 6f .for.more.details..##.##.You.sho
33860 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 uld.have.received.a.copy.of.the.
33880 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 23 23 20 61 6c GNU.General.Public.License.##.al
338a0 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 ong.with.EMMS;.if.not,.write.to.
338c0 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 23 23 the.Free.Software.Foundation,.##
338e0 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f .Inc.,.51.Franklin.St,.Fifth.Flo
33900 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a or,.Boston,.MA.02110-1301,.USA..
33920 0a 23 23 20 52 65 6c 65 61 73 65 20 74 65 73 74 69 6e 67 0a 23 23 0a 23 23 20 41 73 20 61 20 70 .##.Release.testing.##.##.As.a.p
33940 6f 6c 69 63 79 2c 20 65 61 63 68 20 72 65 6c 65 61 73 65 20 6f 66 20 45 6d 6d 73 20 73 68 6f 75 olicy,.each.release.of.Emms.shou
33960 6c 64 20 62 65 20 74 65 73 74 65 64 20 74 6f 20 63 6f 6d 70 69 6c 65 20 61 6e 64 0a 23 23 20 72 ld.be.tested.to.compile.and.##.r
33980 75 6e 20 77 65 6c 6c 20 6f 6e 20 74 68 65 20 74 77 6f 20 6c 61 74 65 73 74 20 45 6d 61 63 73 20 un.well.on.the.two.latest.Emacs.
339a0 72 65 6c 65 61 73 65 73 2e 0a 0a 0a 23 23 20 43 6f 64 65 3a 0a 47 5a 49 50 3d 67 7a 69 70 0a 4d releases....##.Code:.GZIP=gzip.M
339c0 41 4e 31 50 41 47 45 53 3d 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 31 0a 44 AN1PAGES=emms-print-metadata.1.D
339e0 4f 43 44 49 52 3d 64 6f 63 2f 0a 53 52 43 44 49 52 3d 73 72 63 0a 53 49 54 45 46 4c 41 47 3d 2d OCDIR=doc/.SRCDIR=src.SITEFLAG=-
33a00 2d 6e 6f 2d 73 69 74 65 2d 66 69 6c 65 0a 45 4d 41 43 53 3d 65 6d 61 63 73 0a 0a 41 4c 4c 53 4f -no-site-file.EMACS=emacs..ALLSO
33a20 55 52 43 45 3d 24 28 77 69 6c 64 63 61 72 64 20 2a 2e 65 6c 29 0a 53 4f 55 52 43 45 3d 24 28 66 URCE=$(wildcard.*.el).SOURCE=$(f
33a40 69 6c 74 65 72 2d 6f 75 74 20 24 28 53 50 45 43 49 41 4c 29 2c 24 28 41 4c 4c 53 4f 55 52 43 45 ilter-out.$(SPECIAL),$(ALLSOURCE
33a60 29 29 0a 54 41 52 47 45 54 3d 24 28 70 61 74 73 75 62 73 74 20 25 2e 65 6c 2c 25 2e 65 6c 63 2c )).TARGET=$(patsubst.%.el,%.elc,
33a80 24 28 53 4f 55 52 43 45 29 29 0a 41 4c 4c 43 4f 4d 50 49 4c 45 44 3d 24 28 77 69 6c 64 63 61 72 $(SOURCE)).ALLCOMPILED=$(wildcar
33aa0 64 20 2a 2e 65 6c 63 29 0a 0a 44 45 53 54 44 49 52 3d 0a 50 52 45 46 49 58 3d 24 28 44 45 53 54 d.*.elc)..DESTDIR=.PREFIX=$(DEST
33ac0 44 49 52 29 2f 75 73 72 2f 6c 6f 63 61 6c 0a 49 4e 46 4f 44 49 52 3d 24 28 50 52 45 46 49 58 29 DIR)/usr/local.INFODIR=$(PREFIX)
33ae0 2f 69 6e 66 6f 0a 4d 41 4e 31 44 49 52 3d 24 28 50 52 45 46 49 58 29 2f 73 68 61 72 65 2f 6d 61 /info.MAN1DIR=$(PREFIX)/share/ma
33b00 6e 2f 6d 61 6e 31 0a 42 49 4e 44 49 52 3d 24 28 50 52 45 46 49 58 29 2f 62 69 6e 0a 53 49 54 45 n/man1.BINDIR=$(PREFIX)/bin.SITE
33b20 4c 49 53 50 3d 24 28 50 52 45 46 49 58 29 2f 73 68 61 72 65 2f 65 6d 61 63 73 2f 73 69 74 65 2d LISP=$(PREFIX)/share/emacs/site-
33b40 6c 69 73 70 2f 65 6d 6d 73 0a 0a 23 20 74 65 73 74 69 6e 67 20 61 67 61 69 6e 73 74 20 70 72 65 lisp/emms..#.testing.against.pre
33b60 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 0a 52 45 4c 45 41 53 45 5f 42 49 4e 3d 24 28 45 4d 41 vious.versions.RELEASE_BIN=$(EMA
33b80 43 53 29 0a 50 52 45 56 5f 52 45 4c 45 41 53 45 5f 42 49 4e 3d 24 28 45 4d 41 43 53 29 0a 0a 47 CS).PREV_RELEASE_BIN=$(EMACS)..G
33ba0 49 4e 53 54 41 4c 4c 49 4e 46 4f 20 3d 20 2f 75 73 72 2f 62 69 6e 2f 67 69 6e 73 74 61 6c 6c 2d INSTALLINFO.=./usr/bin/ginstall-
33bc0 69 6e 66 6f 20 2d 2d 69 6e 66 6f 2d 64 69 72 3d 24 28 49 4e 46 4f 44 49 52 29 0a 23 20 46 6f 72 info.--info-dir=$(INFODIR).#.For
33be0 20 73 79 73 74 65 6d 73 20 77 69 74 68 6f 75 74 20 67 69 6e 73 74 61 6c 6c 2d 69 6e 66 6f 0a 49 .systems.without.ginstall-info.I
33c00 4e 53 54 41 4c 4c 49 4e 46 4f 20 3d 20 2f 75 73 72 2f 62 69 6e 2f 69 6e 73 74 61 6c 6c 2d 69 6e NSTALLINFO.=./usr/bin/install-in
33c20 66 6f 20 2d 2d 69 6e 66 6f 2d 64 69 72 3d 24 28 49 4e 46 4f 44 49 52 29 0a 43 48 41 4e 47 45 4c fo.--info-dir=$(INFODIR).CHANGEL
33c40 4f 47 5f 43 4d 44 20 3d 20 67 69 74 20 6c 6f 67 20 2d 2d 70 72 65 74 74 79 3d 6d 65 64 69 75 6d OG_CMD.=.git.log.--pretty=medium
33c60 20 2d 2d 6e 6f 2d 6d 65 72 67 65 73 0a 0a 23 20 54 68 65 20 63 75 72 72 65 6e 74 6c 79 20 72 65 .--no-merges..#.The.currently.re
33c80 6c 65 61 73 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 45 4d 4d 53 20 28 6e 6f 20 6c 6f 6e 67 65 leased.version.of.EMMS.(no.longe
33ca0 72 20 69 6e 20 75 73 65 29 0a 56 45 52 53 49 4f 4e 3d 31 30 30 2e 30 30 0a 0a 2e 50 48 4f 4e 59 r.in.use).VERSION=100.00...PHONY
33cc0 3a 20 61 6c 6c 20 69 6e 73 74 61 6c 6c 20 64 6f 63 73 20 63 6c 65 61 6e 0a 2e 50 52 45 43 49 4f :.all.install.docs.clean..PRECIO
33ce0 55 53 3a 20 25 2e 65 6c 63 0a 61 6c 6c 3a 20 73 68 6f 77 5f 76 65 72 73 69 6f 6e 20 65 6d 6d 73 US:.%.elc.all:.show_version.emms
33d00 2d 61 75 74 6f 2e 65 6c 20 24 28 54 41 52 47 45 54 29 20 64 6f 63 73 0a 0a 65 6d 6d 73 2d 61 75 -auto.el.$(TARGET).docs..emms-au
33d20 74 6f 2e 65 6c 3a 20 65 6d 6d 73 2d 61 75 74 6f 2e 69 6e 20 24 28 53 4f 55 52 43 45 29 0a 09 63 to.el:.emms-auto.in.$(SOURCE)..c
33d40 70 20 65 6d 6d 73 2d 61 75 74 6f 2e 69 6e 20 65 6d 6d 73 2d 61 75 74 6f 2e 65 6c 0a 09 2d 72 6d p.emms-auto.in.emms-auto.el..-rm
33d60 20 2d 66 20 65 6d 6d 73 2d 61 75 74 6f 2e 65 6c 63 0a 09 40 24 28 45 4d 41 43 53 29 20 2d 71 20 .-f.emms-auto.elc..@$(EMACS).-q.
33d80 24 28 53 49 54 45 46 4c 41 47 29 20 2d 62 61 74 63 68 20 5c 0a 09 09 2d 6c 20 65 6d 6d 73 2d 6d $(SITEFLAG).-batch.\...-l.emms-m
33da0 61 69 6e 74 2e 65 6c 20 5c 0a 09 09 2d 6c 20 65 6d 6d 73 2d 61 75 74 6f 2e 65 6c 20 5c 0a 09 09 aint.el.\...-l.emms-auto.el.\...
33dc0 2d 66 20 65 6d 6d 73 2d 67 65 6e 65 72 61 74 65 2d 61 75 74 6f 6c 6f 61 64 73 20 5c 0a 09 09 24 -f.emms-generate-autoloads.\...$
33de0 28 73 68 65 6c 6c 20 70 77 64 29 2f 65 6d 6d 73 2d 61 75 74 6f 2e 65 6c 20 2e 0a 0a 25 2e 65 6c (shell.pwd)/emms-auto.el....%.el
33e00 63 3a 20 25 2e 65 6c 0a 09 40 24 28 45 4d 41 43 53 29 20 2d 71 20 24 28 53 49 54 45 46 4c 41 47 c:.%.el..@$(EMACS).-q.$(SITEFLAG
33e20 29 20 2d 62 61 74 63 68 20 5c 0a 09 09 2d 6c 20 65 6d 6d 73 2d 6d 61 69 6e 74 2e 65 6c 20 5c 0a ).-batch.\...-l.emms-maint.el.\.
33e40 09 09 2d 66 20 62 61 74 63 68 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 20 24 3c 0a 0a 64 6f 63 73 ..-f.batch-byte-compile.$<..docs
33e60 3a 0a 09 24 28 4d 41 4b 45 29 20 2d 43 20 24 28 44 4f 43 44 49 52 29 0a 0a 2e 50 48 4f 4e 59 3a :..$(MAKE).-C.$(DOCDIR)...PHONY:
33e80 20 73 68 6f 77 5f 76 65 72 73 69 6f 6e 0a 73 68 6f 77 5f 76 65 72 73 69 6f 6e 3a 0a 09 40 24 28 .show_version.show_version:..@$(
33ea0 45 4d 41 43 53 29 20 24 28 53 49 54 45 46 4c 41 47 29 20 2d 62 61 74 63 68 20 2d 2d 65 76 61 6c EMACS).$(SITEFLAG).-batch.--eval
33ec0 3d 27 28 6d 65 73 73 61 67 65 20 22 5c 6e 25 73 22 20 28 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e ='(message."\n%s".(emacs-version
33ee0 29 29 27 0a 0a 2e 50 48 4f 4e 59 3a 0a 74 65 73 74 5f 72 65 6c 65 61 73 65 73 3a 0a 09 28 24 28 ))'...PHONY:.test_releases:..($(
33f00 4d 41 4b 45 29 20 45 4d 41 43 53 3d 24 28 52 45 4c 45 41 53 45 5f 42 49 4e 29 3b 20 24 28 4d 41 MAKE).EMACS=$(RELEASE_BIN);.$(MA
33f20 4b 45 29 20 63 6c 65 61 6e 29 0a 09 28 24 28 4d 41 4b 45 29 20 45 4d 41 43 53 3d 24 28 50 52 45 KE).clean)..($(MAKE).EMACS=$(PRE
33f40 56 5f 52 45 4c 45 41 53 45 5f 42 49 4e 29 3b 20 24 28 4d 41 4b 45 29 20 63 6c 65 61 6e 29 0a 0a V_RELEASE_BIN);.$(MAKE).clean)..
33f60 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 3a 20 24 28 53 52 43 44 49 52 29 2f 65 emms-print-metadata:.$(SRCDIR)/e
33f80 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 63 70 70 0a 09 24 28 43 58 58 29 20 24 mms-print-metadata.cpp..$(CXX).$
33fa0 28 43 50 50 46 4c 41 47 53 29 20 24 28 43 58 58 46 4c 41 47 53 29 20 24 28 4c 44 46 4c 41 47 53 (CPPFLAGS).$(CXXFLAGS).$(LDFLAGS
33fc0 29 20 2d 6f 20 24 28 53 52 43 44 49 52 29 2f 24 40 20 24 3c 20 60 74 61 67 6c 69 62 2d 63 6f 6e ).-o.$(SRCDIR)/$@.$<.`taglib-con
33fe0 66 69 67 20 2d 2d 63 66 6c 61 67 73 20 2d 2d 6c 69 62 73 60 0a 0a 69 6e 73 74 61 6c 6c 3a 0a 09 fig.--cflags.--libs`..install:..
34000 74 65 73 74 20 2d 64 20 24 28 53 49 54 45 4c 49 53 50 29 20 7c 7c 20 6d 6b 64 69 72 20 2d 70 20 test.-d.$(SITELISP).||.mkdir.-p.
34020 24 28 53 49 54 45 4c 49 53 50 29 0a 09 74 65 73 74 20 2d 64 20 24 28 49 4e 46 4f 44 49 52 29 20 $(SITELISP)..test.-d.$(INFODIR).
34040 7c 7c 20 69 6e 73 74 61 6c 6c 20 2d 64 20 24 28 49 4e 46 4f 44 49 52 29 0a 09 69 6e 73 74 61 6c ||.install.-d.$(INFODIR)..instal
34060 6c 20 2d 6d 20 36 34 34 20 24 28 41 4c 4c 53 4f 55 52 43 45 29 20 24 28 53 49 54 45 4c 49 53 50 l.-m.644.$(ALLSOURCE).$(SITELISP
34080 29 0a 09 69 6e 73 74 61 6c 6c 20 2d 6d 20 36 34 34 20 24 28 41 4c 4c 43 4f 4d 50 49 4c 45 44 29 )..install.-m.644.$(ALLCOMPILED)
340a0 20 24 28 53 49 54 45 4c 49 53 50 29 0a 09 69 6e 73 74 61 6c 6c 20 2d 6d 20 30 36 34 34 20 24 28 .$(SITELISP)..install.-m.0644.$(
340c0 44 4f 43 44 49 52 29 65 6d 6d 73 2e 69 6e 66 6f 20 24 28 49 4e 46 4f 44 49 52 29 2f 65 6d 6d 73 DOCDIR)emms.info.$(INFODIR)/emms
340e0 2e 69 6e 66 6f 0a 09 66 6f 72 20 70 20 69 6e 20 24 28 4d 41 4e 31 50 41 47 45 53 29 20 3b 20 64 .info..for.p.in.$(MAN1PAGES).;.d
34100 6f 20 24 28 47 5a 49 50 29 20 2d 39 63 20 24 24 70 20 3e 20 24 28 4d 41 4e 31 44 49 52 29 2f 24 o.$(GZIP).-9c.$$p.>.$(MAN1DIR)/$
34120 24 70 2e 67 7a 20 3b 20 64 6f 6e 65 0a 09 69 66 20 5b 20 2d 78 20 2f 75 73 72 2f 62 69 6e 2f 67 $p.gz.;.done..if.[.-x./usr/bin/g
34140 69 6e 73 74 61 6c 6c 2d 69 6e 66 6f 20 5d 3b 20 74 68 65 6e 20 5c 0a 09 09 24 28 47 49 4e 53 54 install-info.];.then.\...$(GINST
34160 41 4c 4c 49 4e 46 4f 29 20 24 28 44 4f 43 44 49 52 29 65 6d 6d 73 2e 69 6e 66 6f 3b 20 5c 0a 09 ALLINFO).$(DOCDIR)emms.info;.\..
34180 65 6c 73 65 20 5c 0a 09 09 24 28 49 4e 53 54 41 4c 4c 49 4e 46 4f 29 20 24 28 44 4f 43 44 49 52 else.\...$(INSTALLINFO).$(DOCDIR
341a0 29 65 6d 6d 73 2e 69 6e 66 6f 3b 20 5c 0a 09 66 69 0a 09 69 66 20 5b 20 2d 78 20 20 24 28 53 52 )emms.info;.\..fi..if.[.-x..$(SR
341c0 43 44 49 52 29 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 5d 3b 20 74 68 65 CDIR)/emms-print-metadata.];.the
341e0 6e 20 5c 0a 09 09 65 63 68 6f 20 22 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 n.\...echo."emms-print-metadata.
34200 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 69 6e 67 22 3b 20 5c 0a 09 09 69 6e 73 74 61 6c 6c 20 found,.installing";.\...install.
34220 2d 6d 20 37 35 35 20 24 28 53 52 43 44 49 52 29 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 -m.755.$(SRCDIR)/emms-print-meta
34240 64 61 74 61 20 24 28 42 49 4e 44 49 52 29 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 data.$(BINDIR)/emms-print-metada
34260 74 61 3b 20 5c 0a 09 65 6c 73 65 20 5c 0a 09 09 65 63 68 6f 20 22 73 6b 69 70 70 69 6e 67 20 65 ta;.\..else.\...echo."skipping.e
34280 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 69 6e 73 74 61 6c 6c 22 3b 20 5c 0a 09 mms-print-metadata.install";.\..
342a0 66 69 0a 0a 72 65 6d 6f 76 65 2d 69 6e 66 6f 3a 0a 09 69 66 20 5b 20 2d 78 20 2f 75 73 72 2f 62 fi..remove-info:..if.[.-x./usr/b
342c0 69 6e 2f 67 69 6e 73 74 61 6c 6c 2d 69 6e 66 6f 20 5d 3b 20 74 68 65 6e 20 5c 0a 09 09 24 28 47 in/ginstall-info.];.then.\...$(G
342e0 49 4e 53 54 41 4c 4c 49 4e 46 4f 29 20 2d 2d 72 65 6d 6f 76 65 20 24 28 44 4f 43 44 49 52 29 65 INSTALLINFO).--remove.$(DOCDIR)e
34300 6d 6d 73 2e 69 6e 66 6f 3b 20 5c 0a 09 65 6c 73 65 20 5c 0a 09 09 24 28 49 4e 53 54 41 4c 4c 49 mms.info;.\..else.\...$(INSTALLI
34320 4e 46 4f 29 20 2d 2d 72 65 6d 6f 76 65 20 24 28 44 4f 43 44 49 52 29 65 6d 6d 73 2e 69 6e 66 6f NFO).--remove.$(DOCDIR)emms.info
34340 3b 20 5c 0a 09 66 69 0a 0a 43 68 61 6e 67 65 4c 6f 67 3a 0a 09 24 28 43 48 41 4e 47 45 4c 4f 47 ;.\..fi..ChangeLog:..$(CHANGELOG
34360 5f 43 4d 44 29 20 3e 20 24 40 0a 0a 63 6c 65 61 6e 3a 0a 09 2d 72 6d 20 2d 66 20 2a 7e 20 24 28 _CMD).>.$@..clean:..-rm.-f.*~.$(
34380 44 4f 43 44 49 52 29 65 6d 6d 73 2e 69 6e 66 6f 20 24 28 44 4f 43 44 49 52 29 65 6d 6d 73 2e 68 DOCDIR)emms.info.$(DOCDIR)emms.h
343a0 74 6d 6c 20 24 28 53 52 43 44 49 52 29 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 tml.$(SRCDIR)/emms-print-metadat
343c0 61 0a 09 2d 72 6d 20 2d 66 20 2a 7e 20 2a 2e 65 6c 63 20 65 6d 6d 73 2d 61 75 74 6f 2e 65 6c 0a a..-rm.-f.*~.*.elc.emms-auto.el.
343e0 0a 64 69 73 74 3a 20 63 6c 65 61 6e 20 65 6d 6d 73 2d 61 75 74 6f 2e 65 6c 0a 09 67 69 74 20 61 .dist:.clean.emms-auto.el..git.a
34400 72 63 68 69 76 65 20 2d 2d 66 6f 72 6d 61 74 3d 74 61 72 20 2d 2d 70 72 65 66 69 78 3d 65 6d 6d rchive.--format=tar.--prefix=emm
34420 73 2d 24 28 56 45 52 53 49 4f 4e 29 2f 20 48 45 41 44 20 7c 20 5c 0a 09 20 20 28 63 64 20 2e 2e s-$(VERSION)/.HEAD.|.\....(cd...
34440 20 26 26 20 74 61 72 20 78 66 20 2d 29 0a 09 72 6d 20 2d 66 20 2e 2e 2f 65 6d 6d 73 2d 24 28 56 .&&.tar.xf.-)..rm.-f.../emms-$(V
34460 45 52 53 49 4f 4e 29 2f 2e 67 69 74 69 67 6e 6f 72 65 0a 09 63 70 20 65 6d 6d 73 2d 61 75 74 6f ERSION)/.gitignore..cp.emms-auto
34480 2e 65 6c 20 2e 2e 2f 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 0a 09 24 28 43 48 41 4e 47 45 .el.../emms-$(VERSION)..$(CHANGE
344a0 4c 4f 47 5f 43 4d 44 29 20 3e 20 2e 2e 2f 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 2f 43 68 LOG_CMD).>.../emms-$(VERSION)/Ch
344c0 61 6e 67 65 4c 6f 67 0a 0a 72 65 6c 65 61 73 65 3a 20 64 69 73 74 0a 09 28 63 64 20 2e 2e 20 26 angeLog..release:.dist..(cd....&
344e0 26 20 74 61 72 20 2d 63 7a 66 20 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 2e 74 61 72 2e 67 &.tar.-czf.emms-$(VERSION).tar.g
34500 7a 20 5c 0a 09 20 20 20 20 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 20 3b 20 5c 0a 09 20 20 z.\......emms-$(VERSION).;.\....
34520 67 70 67 20 2d 2d 64 65 74 61 63 68 20 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 2e 74 61 72 gpg.--detach.emms-$(VERSION).tar
34540 2e 67 7a 29 0a 0a 75 70 6c 6f 61 64 3a 0a 09 28 63 64 20 2e 2e 20 26 26 20 65 63 68 6f 20 22 76 .gz)..upload:..(cd....&&.echo."v
34560 65 72 73 69 6f 6e 3a 20 31 2e 32 5c 6e 64 69 72 65 63 74 6f 72 79 3a 20 65 6d 6d 73 5c 6e 66 69 ersion:.1.2\ndirectory:.emms\nfi
34580 6c 65 6e 61 6d 65 3a 20 22 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 2e 74 61 72 2e 67 7a 22 lename:."emms-$(VERSION).tar.gz"
345a0 5c 6e 63 6f 6d 6d 65 6e 74 3a 20 6e 65 77 20 76 65 72 73 69 6f 6e 20 6f 66 20 45 6d 6d 73 22 20 \ncomment:.new.version.of.Emms".
345c0 7c 20 67 70 67 20 2d 2d 63 6c 65 61 72 73 69 67 6e 20 3e 20 65 6d 6d 73 2d 24 28 56 45 52 53 49 |.gpg.--clearsign.>.emms-$(VERSI
345e0 4f 4e 29 2e 74 61 72 2e 67 7a 2e 64 69 72 65 63 74 69 76 65 2e 61 73 63 20 26 26 20 65 63 68 6f ON).tar.gz.directive.asc.&&.echo
34600 20 6f 70 65 6e 20 66 74 70 3a 2f 2f 66 74 70 2d 75 70 6c 6f 61 64 2e 67 6e 75 2e 6f 72 67 20 3e .open.ftp://ftp-upload.gnu.org.>
34620 20 75 70 6c 6f 61 64 2e 6c 66 74 70 20 3b 20 65 63 68 6f 20 63 64 20 2f 69 6e 63 6f 6d 69 6e 67 .upload.lftp.;.echo.cd./incoming
34640 2f 66 74 70 20 3e 3e 20 75 70 6c 6f 61 64 2e 6c 66 74 70 20 3b 20 65 63 68 6f 20 6d 70 75 74 20 /ftp.>>.upload.lftp.;.echo.mput.
34660 65 6d 6d 73 2d 24 28 56 45 52 53 49 4f 4e 29 2e 74 61 72 2e 67 7a 2a 20 3e 3e 20 75 70 6c 6f 61 emms-$(VERSION).tar.gz*.>>.uploa
34680 64 2e 6c 66 74 70 20 3b 20 65 63 68 6f 20 63 6c 6f 73 65 20 3e 3e 20 75 70 6c 6f 61 64 2e 6c 66 d.lftp.;.echo.close.>>.upload.lf
346a0 74 70 20 3b 20 6c 66 74 70 20 2d 66 20 75 70 6c 6f 61 64 2e 6c 66 74 70 20 3b 20 72 6d 20 2d 66 tp.;.lftp.-f.upload.lftp.;.rm.-f
346c0 20 75 70 6c 6f 61 64 2e 6c 66 74 70 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .upload.lftp)...................
346e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
347a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
347c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
347e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2e 65 6c 00 00 00 00 emms-24/emms-info-mp3info.el....
34820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
34880 30 30 30 37 30 37 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 37 34 00 20 30 00 00 00 0007072.00000000000.014474..0...
348a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
348c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
348e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
34920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
34940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
349a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
349c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
349e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34a00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2e 65 6c 20 2d 2d 2d 20 49 6e 66 ;;;.emms-info-mp3info.el.---.Inf
34a20 6f 2d 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d 4d 53 20 75 73 69 6e 67 20 6d 70 33 69 6e 66 6f 20 o-method.for.EMMS.using.mp3info.
34a40 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b .-*-.lexical-binding:.t;.-*-..;;
34a60 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 .Copyright.(C).2003-2021..Free.S
34a80 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 oftware.Foundation,.Inc...;;.Aut
34aa0 68 6f 72 73 3a 20 55 6c 72 69 6b 20 4a 65 6e 73 65 6e 20 3c 74 65 72 72 79 70 40 64 61 69 6d 69 hors:.Ulrik.Jensen.<terryp@daimi
34ac0 2e 61 75 2e 64 6b 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 .au.dk>.;;..........Jorgen.Sch..
34ae0 66 65 72 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 fer.<forcer@forcix.cx>.;;.Keywor
34b00 64 73 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d ds:..;;.This.file.is.part.of.EMM
34b20 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f S...;;.EMMS.is.free.software;.yo
34b40 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 u.can.redistribute.it.and/or.mod
34b60 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 ify.;;.it.under.the.terms.of.the
34b80 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 .GNU.General.Public.License.as.p
34ba0 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ublished.by.;;.the.Free.Software
34bc0 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f .Foundation;.either.version.3,.o
34be0 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 r.(at.your.option).;;.any.later.
34c00 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 version...;;.EMMS.is.distributed
34c20 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 .in.the.hope.that.it.will.be.use
34c40 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 ful,.;;.but.WITHOUT.ANY.WARRANTY
34c60 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 ;.without.even.the.implied.warra
34c80 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 nty.of.;;.MERCHANTABILITY.or.FIT
34ca0 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 NESS.FOR.A.PARTICULAR.PURPOSE...
34cc0 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 See.the.;;.GNU.General.Public.Li
34ce0 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 cense.for.more.details...;;.You.
34d00 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 should.have.received.a.copy.of.t
34d20 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b he.GNU.General.Public.License.;;
34d40 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 .along.with.EMMS;.see.the.file.C
34d60 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 OPYING..If.not,.write.to.the.;;.
34d80 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 Free.Software.Foundation,.Inc.,.
34da0 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 51.Franklin.St,.Fifth.Floor,.;;.
34dc0 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b Boston,.MA.02110-1301,.USA...;;;
34de0 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 68 61 73 20 62 .Commentary:..;;.This.code.has.b
34e00 65 65 6e 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 63 6f 64 65 20 66 6f 75 6e 64 20 69 6e 20 6d een.adapted.from.code.found.in.m
34e20 70 33 70 6c 61 79 65 72 2e 65 6c 2c 20 77 72 69 74 74 65 6e 0a 3b 3b 20 62 79 20 4a 65 61 6e 2d p3player.el,.written.;;.by.Jean-
34e40 50 68 69 6c 69 70 70 65 20 54 68 65 62 65 72 67 65 20 28 6a 70 68 69 6c 74 68 65 62 65 72 67 65 Philippe.Theberge.(jphiltheberge
34e60 40 76 69 64 65 6f 74 72 6f 6e 2e 63 61 29 2c 20 4d 61 72 69 6f 0a 3b 3b 20 44 6f 6d 67 6f 65 72 @videotron.ca),.Mario.;;.Domgoer
34e80 67 65 6e 20 28 6b 61 6e 61 6c 64 72 61 63 68 65 40 67 6d 78 2e 64 65 29 20 61 6e 64 20 4a 6f 72 gen.(kanaldrache@gmx.de).and.Jor
34ea0 67 65 6e 20 53 63 68 c3 a4 66 65 72 0a 3b 3b 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 gen.Sch..fer.;;.<forcer@forcix.c
34ec0 78 3e 0a 0a 3b 3b 20 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 6d 65 74 68 6f 64 20 66 x>..;;.To.activate.this.method.f
34ee0 6f 72 20 67 65 74 74 69 6e 67 20 69 6e 66 6f 2c 20 75 73 65 20 73 6f 6d 65 74 68 69 6e 67 20 6c or.getting.info,.use.something.l
34f00 69 6b 65 3a 0a 0a 3b 3b 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 ike:..;;.(require.'emms-info-mp3
34f20 69 6e 66 6f 29 0a 3b 3b 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f info).;;.(add-to-list.'emms-info
34f40 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 29 0a 0a -functions.'emms-info-mp3info)..
34f60 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a ;;;.Code:..(require.'emms-info).
34f80 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2d 76 65 72 73 69 .(defvar.emms-info-mp3info-versi
34fa0 6f 6e 20 22 30 2e 32 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 31 30 20 24 22 0a 20 20 22 45 4d on."0.2.$Revision:.1.10.$"..."EM
34fc0 4d 53 20 69 6e 66 6f 20 6d 70 33 69 6e 66 6f 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 2e 22 MS.info.mp3info.version.string."
34fe0 29 0a 3b 3b 20 24 49 64 3a 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2e 65 6c 2c 76 ).;;.$Id:.emms-info-mp3info.el,v
35000 20 31 2e 31 30 20 32 30 30 35 2f 30 38 2f 31 32 20 31 38 3a 30 31 3a 31 36 20 78 77 6c 20 45 78 .1.10.2005/08/12.18:01:16.xwl.Ex
35020 70 20 24 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f p.$..(defgroup.emms-info-mp3info
35040 20 6e 69 6c 0a 20 20 22 41 6e 20 45 4d 4d 53 2d 69 6e 66 6f 20 6d 65 74 68 6f 64 20 66 6f 72 20 .nil..."An.EMMS-info.method.for.
35060 67 65 74 74 69 6e 67 2f 73 65 74 74 69 6e 67 20 49 44 33 76 31 20 74 61 67 73 2c 20 75 73 69 6e getting/setting.ID3v1.tags,.usin
35080 67 20 74 68 65 0a 65 78 74 65 72 6e 61 6c 20 6d 70 33 69 6e 66 6f 20 70 72 6f 67 72 61 6d 22 0a g.the.external.mp3info.program".
350a0 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d ..:group.'emms-info)..(defcustom
350c0 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d .emms-info-mp3info-coding-system
350e0 20 27 75 74 66 2d 38 0a 20 20 22 43 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 75 73 65 64 20 69 6e .'utf-8..."Coding.system.used.in
35100 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 6d 70 33 69 6e 66 6f 2e 22 0a 20 20 3a 74 79 70 65 .the.output.of.mp3info."...:type
35120 20 27 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d .'coding-system)..(defcustom.emm
35140 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 20 22 6d 70 33 s-info-mp3info-program-name."mp3
35160 69 6e 66 6f 22 0a 20 20 22 54 68 65 20 6e 61 6d 65 2f 70 61 74 68 20 6f 66 20 74 68 65 20 6d 70 info"..."The.name/path.of.the.mp
35180 33 69 6e 66 6f 20 74 61 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 3info.tag.program."...:type.'str
351a0 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 66 69 ing)..(defcustom.emms-info-mp3fi
351c0 6e 64 2d 61 72 67 75 6d 65 6e 74 73 0a 20 20 60 28 22 2d 70 22 20 2c 28 63 6f 6e 63 61 74 20 22 nd-arguments...`("-p".,(concat."
351e0 69 6e 66 6f 2d 61 72 74 69 73 74 3d 25 61 5c 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 info-artist=%a\\n"..............
35200 20 20 20 20 20 22 69 6e 66 6f 2d 74 69 74 6c 65 3d 25 74 5c 5c 6e 22 0a 20 20 20 20 20 20 20 20 ....."info-title=%t\\n".........
35220 20 20 20 20 20 20 20 20 20 20 22 69 6e 66 6f 2d 61 6c 62 75 6d 3d 25 6c 5c 5c 6e 22 0a 20 20 20 .........."info-album=%l\\n"....
35240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 ..............."info-tracknumber
35260 3d 25 6e 5c 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 66 6f 2d =%n\\n"..................."info-
35280 79 65 61 72 3d 25 79 5c 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 year=%y\\n"..................."i
352a0 6e 66 6f 2d 67 65 6e 72 65 3d 25 67 5c 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nfo-genre=%g\\n"................
352c0 20 20 20 22 69 6e 66 6f 2d 6e 6f 74 65 3d 25 63 5c 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 ..."info-note=%c\\n"............
352e0 20 20 20 20 20 20 20 22 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 3d 25 53 5c 5c 6e 22 ......."info-playing-time=%S\\n"
35300 29 29 0a 20 20 22 54 68 65 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 70 61 73 73 20 74 6f 20 60 65 ))..."The.argument.to.pass.to.`e
35320 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 27 2e 0a mms-info-mp3info-program-name'..
35340 54 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 69 6e 66 6f 2d 66 6c This.should.be.a.list.of.info-fl
35360 61 67 3d 76 61 6c 75 65 20 6c 69 6e 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 ag=value.lines."...:type.'(repea
35380 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 t.string))..(defun.emms-info-mp3
353a0 69 6e 66 6f 20 28 74 72 61 63 6b 29 0a 20 20 22 41 64 64 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d info.(track)..."Add.track.inform
353c0 61 74 69 6f 6e 20 74 6f 20 54 52 41 43 4b 2e 0a 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 6c ation.to.TRACK..This.is.a.useful
353e0 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e .element.for.`emms-info-function
35400 73 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 s'."...(when.(and.(emms-track-fi
35420 6c 65 2d 70 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 le-p.track)..............(string
35440 2d 6d 61 74 63 68 20 22 5c 5c 2e 5b 4d 6d 5d 5b 50 70 5d 33 5c 5c 27 22 20 28 65 6d 6d 73 2d 74 -match."\\.[Mm][Pp]3\\'".(emms-t
35460 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d rack-name.track))).....(with-tem
35480 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 0a 20 20 20 20 p-buffer.......(when.(zerop.....
354a0 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 65 6d .........(apply.(if.(fboundp.'em
354c0 6d 73 2d 69 31 38 6e 2d 63 61 6c 6c 2d 70 72 6f 63 65 73 73 2d 73 69 6d 70 6c 65 29 0a 20 20 20 ms-i18n-call-process-simple)....
354e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 69 31 38 6e 2d .....................'emms-i18n-
35500 63 61 6c 6c 2d 70 72 6f 63 65 73 73 2d 73 69 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 call-process-simple.............
35520 20 20 20 20 20 20 20 20 20 20 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 20 ..........'call-process)........
35540 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2d 70 .............emms-info-mp3info-p
35560 72 6f 67 72 61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rogram-name.....................
35580 6e 69 6c 20 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 nil.t.nil.....................(a
355a0 70 70 65 6e 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 66 69 6e 64 2d 61 72 67 75 6d 65 6e 74 ppend.emms-info-mp3find-argument
355c0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c s.............................(l
355e0 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 29 0a ist.(emms-track-name.track))))).
35600 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a ........(goto-char.(point-min)).
35620 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 5c 28 ........(while.(looking-at."^\\(
35640 5b 5e 3d 5c 6e 5d 2b 5c 5c 29 3d 5c 5c 28 2e 2a 5c 5c 29 24 22 29 0a 20 20 20 20 20 20 20 20 20 [^=\n]+\\)=\\(.*\\)$")..........
35660 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 69 6e 74 65 72 6e 20 28 6d 61 74 63 68 2d 73 74 72 69 .(let.((name.(intern.(match-stri
35680 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 ng.1))).................(value.(
356a0 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 match-string.2))).............(w
356c0 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 hen.(>.(length.value)...........
356e0 20 20 20 20 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d ...........0)...............(emm
35700 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-track-set.track...............
35720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 ................name............
35740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 6e 61 6d 65 20 ...................(if.(eq.name.
35760 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 'info-playing-time).............
35780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f ......................(string-to
357a0 2d 6e 75 6d 62 65 72 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -number.value)..................
357c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 20 ...............value))))........
357e0 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 ...(forward-line.1))))))..(provi
35800 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 29 0a 3b 3b 3b 20 65 6d 6d 73 2d de.'emms-info-mp3info).;;;.emms-
35820 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 info-mp3info.el.ends.here.......
35840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
358a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
358c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
358e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
359a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
359c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
359e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2e 65 6c emms-24/emms-info-native-opus.el
35a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
35a80 30 30 31 33 37 32 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 33 37 37 00 20 30 00 00 00 0013727.00000000000.015377..0...
35aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
35b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
35b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2e 65 6c 20 2d 2d 2d ;;;.emms-info-native-opus.el.---
35c20 20 45 4d 4d 53 20 4f 70 75 73 20 69 6e 66 6f 20 73 75 70 70 6f 72 74 20 20 2d 2a 2d 20 6c 65 78 .EMMS.Opus.info.support..-*-.lex
35c40 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 ical-binding:.t;.-*-..;;.Copyrig
35c60 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 ht.(C).2020-2023.Free.Software.F
35c80 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 50 65 74 74 oundation,.Inc...;;.Author:.Pett
35ca0 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a eri.Hintsanen.<petterih@iki.fi>.
35cc0 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a .;;.This.file.is.part.of.EMMS...
35ce0 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 ;;.EMMS.is.free.software;.you.ca
35d00 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 n.redistribute.it.and/or.modify.
35d20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 it.;;.under.the.terms.of.the.GNU
35d40 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 .General.Public.License.as.publi
35d60 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 shed.by.;;.the.Free.Software.Fou
35d80 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 ndation;.either.version.3,.or.(a
35da0 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 t.your.option).;;.any.later.vers
35dc0 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 ion...;;.EMMS.is.distributed.in.
35de0 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
35e00 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 .but.WITHOUT.;;.ANY.WARRANTY;.wi
35e20 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 thout.even.the.implied.warranty.
35e40 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 of.MERCHANTABILITY.;;.or.FITNESS
35e60 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 .FOR.A.PARTICULAR.PURPOSE...See.
35e80 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 the.GNU.General.Public.;;.Licens
35ea0 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 e.for.more.details...;;.You.shou
35ec0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
35ee0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
35f00 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 ng.with.EMMS;.see.the.file.COPYI
35f20 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b NG..If.not,.write.to.the.Free.;;
35f40 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 .Software.Foundation,.Inc.,.51.F
35f60 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 ranklin.Street,.Fifth.Floor,.Bos
35f80 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b ton,.;;.MA.02110-1301,.USA...;;;
35fa0 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 .Commentary:..;;.This.file.conta
35fc0 69 6e 73 20 4f 70 75 73 2d 73 70 65 63 69 66 69 63 20 63 6f 64 65 20 66 6f 72 20 60 65 6d 6d 73 ins.Opus-specific.code.for.`emms
35fe0 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 27 0a 3b 3b 20 66 65 61 74 75 72 65 2e 0a 0a 3b -info-native-ogg'.;;.feature...;
36000 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 ;;.Code:..(require.'emms-info-na
36020 74 69 76 65 2d 76 6f 72 62 69 73 29 0a 28 72 65 71 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a 0a tive-vorbis).(require.'bindat)..
36040 28 64 65 66 76 61 72 20 62 69 6e 64 61 74 2d 72 61 77 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d (defvar.bindat-raw)..(defvar.emm
36060 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e s-info-native-opus--channel-coun
36080 74 20 30 0a 20 20 22 4c 61 73 74 20 64 65 63 6f 64 65 64 20 4f 70 75 73 20 63 68 61 6e 6e 65 6c t.0..."Last.decoded.Opus.channel
360a0 20 63 6f 75 6e 74 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e .count.")..(defconst.emms-info-n
360c0 61 74 69 76 65 2d 6f 70 75 73 2d 2d 69 64 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 20 22 4f 70 ative-opus--id-magic-pattern."Op
360e0 75 73 48 65 61 64 22 0a 20 20 22 4f 70 75 73 20 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 68 usHead"..."Opus.identification.h
36100 65 61 64 65 72 20 6d 61 67 69 63 20 70 61 74 74 65 72 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 eader.magic.pattern.")..(defcons
36120 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c t.emms-info-native-opus--channel
36140 2d 6d 61 70 70 69 6e 67 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c -mapping-bindat-spec...(if.(eval
36160 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 -when-compile.(fboundp.'bindat-t
36180 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 ype)).......(bindat-type........
361a0 20 28 73 74 72 65 61 6d 2d 63 6f 75 6e 74 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 63 6f 75 70 .(stream-count.u8).........(coup
361c0 6c 65 64 2d 63 6f 75 6e 74 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d led-count.u8).........(channel-m
361e0 61 70 70 69 6e 67 20 76 65 63 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 apping.vec.emms-info-native-opus
36200 2d 2d 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 29 29 0a 20 20 27 28 28 73 74 72 65 61 6d 2d 63 6f --channel-count))...'((stream-co
36220 75 6e 74 20 75 38 29 0a 20 20 20 20 28 63 6f 75 70 6c 65 64 2d 63 6f 75 6e 74 20 75 38 29 0a 20 unt.u8).....(coupled-count.u8)..
36240 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d 61 70 70 69 6e 67 20 76 65 63 20 28 65 76 61 6c 20 65 6d ...(channel-mapping.vec.(eval.em
36260 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c 2d 63 6f 75 ms-info-native-opus--channel-cou
36280 6e 74 29 29 29 29 0a 20 20 22 4f 70 75 73 20 63 68 61 6e 6e 65 6c 20 6d 61 70 70 69 6e 67 20 74 nt))))..."Opus.channel.mapping.t
362a0 61 62 6c 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 able.specification.")..(defconst
362c0 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 69 64 2d 68 65 61 64 65 .emms-info-native-opus--id-heade
362e0 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 r-bindat-spec...(if.(eval-when-c
36300 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 ompile.(fboundp.'bindat-type))..
36320 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 6f 70 75 73 2d .....(bindat-type.........(opus-
36340 68 65 61 64 20 73 74 72 20 38 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c head.str.8).........(_.unit.(unl
36360 65 73 73 20 28 65 71 75 61 6c 20 6f 70 75 73 2d 68 65 61 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e ess.(equal.opus-head.emms-info-n
36380 61 74 69 76 65 2d 6f 70 75 73 2d 2d 69 64 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 ative-opus--id-magic-pattern)...
363a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 66 72 61 ................(error."Opus.fra
363c0 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f ming.mismatch:.expected.`%s',.go
363e0 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.`%s'".........................
36400 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 69 64 2d 6d 61 67 69 63 .emms-info-native-opus--id-magic
36420 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pattern........................
36440 20 20 6f 70 75 73 2d 68 65 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 70 75 73 2d 76 65 72 ..opus-head))).........(opus-ver
36460 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 sion.u8).........(_.unit.(unless
36480 20 28 3c 20 6f 70 75 73 2d 76 65 72 73 69 6f 6e 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(<.opus-version.16)............
364a0 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 76 65 72 73 69 6f 6e 20 6d 69 73 6d .......(error."Opus.version.mism
364c0 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 3c 20 31 36 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 atch:.expected.<.16,.got.%s"....
364e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 75 73 2d 76 65 72 73 69 ......................opus-versi
36500 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 75 38 29 on))).........(channel-count.u8)
36520 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 65 6d .........(_.unit.(progn.(setq.em
36540 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c 2d 63 6f 75 ms-info-native-opus--channel-cou
36560 6e 74 20 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 nt.channel-count).nil)).........
36580 28 70 72 65 2d 73 6b 69 70 20 75 69 6e 74 72 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 73 61 6d (pre-skip.uintr.16).........(sam
365a0 70 6c 65 2d 72 61 74 65 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 70 ple-rate.uintr.32).........(outp
365c0 75 74 2d 67 61 69 6e 20 75 69 6e 74 72 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e ut-gain.uintr.16).........(chann
365e0 65 6c 2d 6d 61 70 70 69 6e 67 2d 66 61 6d 69 6c 79 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 5f el-mapping-family.u8).........(_
36600 20 2e 20 28 69 66 20 28 3e 20 63 68 61 6e 6e 65 6c 2d 6d 61 70 70 69 6e 67 2d 66 61 6d 69 6c 79 ...(if.(>.channel-mapping-family
36620 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 65 6d 6d 73 2d .0)..................(type.emms-
36640 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c 2d 6d 61 70 70 69 6e info-native-opus--channel-mappin
36660 67 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 g-bindat-spec)................(u
36680 6e 69 74 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 27 28 28 6f 70 75 73 2d 68 65 61 64 20 73 74 72 nit.nil)))).....'((opus-head.str
366a0 20 38 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6c .8).......(eval.(unless.(equal.l
366c0 61 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 69 64 2d 6d 61 ast.emms-info-native-opus--id-ma
366e0 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f gic-pattern)...............(erro
36700 72 20 22 4f 70 75 73 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 r."Opus.framing.mismatch:.expect
36720 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ed.`%s',.got.`%s'"..............
36740 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 69 ........emms-info-native-opus--i
36760 64 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-magic-pattern.................
36780 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 6f 70 75 73 2d 76 65 72 73 69 6f 6e .....last))).......(opus-version
367a0 20 75 38 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 3c 20 6c 61 73 74 .u8).......(eval.(unless.(<.last
367c0 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 .16)...............(error."Opus.
367e0 76 65 72 73 69 6f 6e 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 3c 20 31 36 2c version.mismatch:.expected.<.16,
36800 20 67 6f 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 .got.%s"......................la
36820 73 74 29 29 29 0a 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 75 38 29 0a 20 st))).......(channel-count.u8)..
36840 20 20 20 20 20 28 65 76 61 6c 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 .....(eval.(setq.emms-info-nativ
36860 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c 2d 63 6f 75 6e 74 20 6c 61 73 74 29 29 0a 20 20 20 e-opus--channel-count.last))....
36880 20 20 20 28 70 72 65 2d 73 6b 69 70 20 75 31 36 72 29 0a 20 20 20 20 20 20 28 73 61 6d 70 6c 65 ...(pre-skip.u16r).......(sample
368a0 2d 72 61 74 65 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 6f 75 74 70 75 74 2d 67 61 69 6e 20 75 -rate.u32r).......(output-gain.u
368c0 31 36 72 29 0a 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d 61 70 70 69 6e 67 2d 66 61 6d 69 16r).......(channel-mapping-fami
368e0 6c 79 20 75 38 29 0a 20 20 20 20 20 20 28 75 6e 69 6f 6e 20 28 63 68 61 6e 6e 65 6c 2d 6d 61 70 ly.u8).......(union.(channel-map
36900 70 69 6e 67 2d 66 61 6d 69 6c 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 30 20 6e 69 6c ping-family)..............(0.nil
36920 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 74 72 75 63 74 20 65 6d 6d 73 2d 69 )..............(t.(struct.emms-i
36940 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 68 61 6e 6e 65 6c 2d 6d 61 70 70 69 6e 67 nfo-native-opus--channel-mapping
36960 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 29 29 29 0a 20 20 22 4f 70 75 73 20 69 64 65 6e 74 69 -bindat-spec)))))..."Opus.identi
36980 66 69 63 61 74 69 6f 6e 20 68 65 61 64 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 fication.header.specification.")
369a0 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 ..(defconst.emms-info-native-opu
369c0 73 2d 2d 74 61 67 73 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 20 22 4f 70 75 73 54 61 67 73 22 s--tags-magic-pattern."OpusTags"
369e0 0a 20 20 22 4f 70 75 73 20 63 6f 6d 6d 65 6e 74 20 68 65 61 64 65 72 20 6d 61 67 69 63 20 70 61 ..."Opus.comment.header.magic.pa
36a00 74 74 65 72 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 ttern.")..(defconst.emms-info-na
36a20 74 69 76 65 2d 6f 70 75 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 tive-opus--comment-header-bindat
36a40 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 -spec...(if.(eval-when-compile.(
36a60 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 fboundp.'bindat-type)).......(bi
36a80 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 6f 70 75 73 2d 74 61 67 73 20 73 74 72 ndat-type.........(opus-tags.str
36aa0 20 38 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 65 71 75 .8).........(_.unit.(unless.(equ
36ac0 61 6c 20 6f 70 75 73 2d 74 61 67 73 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 al.opus-tags.emms-info-native-op
36ae0 75 73 2d 2d 74 61 67 73 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 us--tags-magic-pattern).........
36b00 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 66 72 61 6d 69 6e 67 20 6d ..........(error."Opus.framing.m
36b20 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 ismatch:.expected.`%s',.got.`%s'
36b40 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d "..........................emms-
36b60 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 74 61 67 73 2d 6d 61 67 69 63 2d 70 61 74 info-native-opus--tags-magic-pat
36b80 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 tern..........................op
36ba0 75 73 2d 74 61 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 us-tags))).........(vendor-lengt
36bc0 68 20 75 69 6e 74 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 77 68 65 h.uintr.32).........(_.unit.(whe
36be0 6e 20 28 3e 20 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 n.(>.vendor-length.(length.binda
36c00 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 t-raw))...................(error
36c20 20 22 4f 70 75 73 20 76 65 6e 64 6f 72 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c ."Opus.vendor.length.%s.is.too.l
36c40 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 65 ong"..........................ve
36c60 6e 64 6f 72 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 73 ndor-length))).........(vendor-s
36c80 74 72 69 6e 67 20 73 74 72 20 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 tring.str.vendor-length)........
36ca0 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 75 69 6e 74 .(user-comments-list-length.uint
36cc0 72 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 77 68 65 6e 20 28 3e 20 75 r.32).........(_.unit.(when.(>.u
36ce0 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 ser-comments-list-length.(length
36d00 20 62 69 6e 64 61 74 2d 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .bindat-raw))...................
36d20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 75 73 65 72 20 63 6f 6d 6d 65 6e 74 20 6c 69 73 74 20 6c (error."Opus.user.comment.list.l
36d40 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 ength.%s.is.too.long"...........
36d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 ...............user-comments-lis
36d80 74 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e t-length))).........(user-commen
36da0 74 73 20 72 65 70 65 61 74 20 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e ts.repeat.user-comments-list-len
36dc0 67 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 20 gth........................type.
36de0 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e 74 emms-info-native-vorbis--comment
36e00 2d 66 69 65 6c 64 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 0a 20 20 20 20 27 28 28 6f 70 75 73 -field-bindat-spec)).....'((opus
36e20 2d 74 61 67 73 20 73 74 72 20 38 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 -tags.str.8).......(eval.(unless
36e40 20 28 65 71 75 61 6c 20 6c 61 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 .(equal.last.emms-info-native-op
36e60 75 73 2d 2d 74 61 67 73 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 us--tags-magic-pattern).........
36e80 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 ......(error."Opus.framing.misma
36ea0 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 tch:.expected.`%s',.got.`%s'"...
36ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 ...................emms-info-nat
36ee0 69 76 65 2d 6f 70 75 73 2d 2d 74 61 67 73 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 20 ive-opus--tags-magic-pattern....
36f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 ..................last))).......
36f20 28 76 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 65 76 61 6c (vendor-length.u32r).......(eval
36f40 20 28 77 68 65 6e 20 28 3e 20 6c 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 61 .(when.(>.last.(length.bindat-ra
36f60 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 76 w))...............(error."Opus.v
36f80 65 6e 64 6f 72 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 6f 6f 20 6c 6f 6e 67 22 20 6c 61 73 endor.length.%s.is.too.long".las
36fa0 74 29 29 29 0a 20 20 20 20 20 20 28 76 65 6e 64 6f 72 2d 73 74 72 69 6e 67 20 73 74 72 20 28 76 t))).......(vendor-string.str.(v
36fc0 65 6e 64 6f 72 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 endor-length)).......(user-comme
36fe0 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 75 33 32 72 29 0a 20 20 20 20 20 20 28 65 76 61 nts-list-length.u32r).......(eva
37000 6c 20 28 77 68 65 6e 20 28 3e 20 6c 61 73 74 20 28 6c 65 6e 67 74 68 20 62 69 6e 64 61 74 2d 72 l.(when.(>.last.(length.bindat-r
37020 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 70 75 73 20 aw))...............(error."Opus.
37040 75 73 65 72 20 63 6f 6d 6d 65 6e 74 20 6c 69 73 74 20 6c 65 6e 67 74 68 20 25 73 20 69 73 20 74 user.comment.list.length.%s.is.t
37060 6f 6f 20 6c 6f 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 oo.long"......................la
37080 73 74 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d 6d 65 6e 74 73 20 72 65 70 65 61 st))).......(user-comments.repea
370a0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 63 6f 6d t......................(user-com
370c0 6d 65 6e 74 73 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ments-list-length)..............
370e0 20 20 20 20 20 20 20 20 28 73 74 72 75 63 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 ........(struct.emms-info-native
37100 2d 76 6f 72 62 69 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 66 69 65 6c 64 2d 62 69 6e 64 61 74 2d 73 70 -vorbis--comment-field-bindat-sp
37120 65 63 29 29 29 29 0a 20 20 22 4f 70 75 73 20 63 6f 6d 6d 65 6e 74 20 68 65 61 64 65 72 20 73 70 ec))))..."Opus.comment.header.sp
37140 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 ecification.")..(defconst.emms-i
37160 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 68 65 61 64 65 72 73 2d 62 69 6e 64 61 74 2d nfo-native-opus--headers-bindat-
37180 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 spec...(if.(eval-when-compile.(f
371a0 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e boundp.'bindat-type)).......(bin
371c0 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e dat-type.........(identification
371e0 2d 68 65 61 64 65 72 20 74 79 70 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 -header.type.emms-info-native-op
37200 75 73 2d 2d 69 64 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 0a 20 20 20 20 20 us--id-header-bindat-spec)......
37220 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 20 74 79 70 65 20 65 6d 6d 73 2d 69 6e 66 ...(comment-header.type.emms-inf
37240 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 2d 62 69 o-native-opus--comment-header-bi
37260 6e 64 61 74 2d 73 70 65 63 29 29 0a 20 20 20 20 27 28 28 69 64 65 6e 74 69 66 69 63 61 74 69 6f ndat-spec)).....'((identificatio
37280 6e 2d 68 65 61 64 65 72 20 73 74 72 75 63 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 n-header.struct.emms-info-native
372a0 2d 6f 70 75 73 2d 2d 69 64 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 0a 20 20 -opus--id-header-bindat-spec)...
372c0 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 20 73 74 72 75 63 74 20 65 6d 6d 73 2d ....(comment-header.struct.emms-
372e0 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 2d 2d 63 6f 6d 6d 65 6e 74 2d 68 65 61 64 65 72 info-native-opus--comment-header
37300 2d 62 69 6e 64 61 74 2d 73 70 65 63 29 29 29 0a 20 20 22 53 70 65 63 69 66 69 63 61 74 69 6f 6e -bindat-spec)))..."Specification
37320 20 66 6f 72 20 74 77 6f 20 66 69 72 73 74 20 4f 70 75 73 20 68 65 61 64 65 72 20 70 61 63 6b 65 .for.two.first.Opus.header.packe
37340 74 73 2e 0a 54 68 65 79 20 61 72 65 20 61 6c 77 61 79 73 20 61 6e 20 69 64 65 6e 74 69 66 69 63 ts..They.are.always.an.identific
37360 61 74 69 6f 6e 20 68 65 61 64 65 72 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 63 6f 6d 6d 65 ation.header.followed.by.a.comme
37380 6e 74 0a 68 65 61 64 65 72 2e 22 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e 66 nt.header.")..(provide.'emms-inf
373a0 6f 2d 6e 61 74 69 76 65 2d 6f 70 75 73 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 o-native-opus)..;;;.emms-info-na
373c0 74 69 76 65 2d 6f 70 75 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 tive-opus.el.ends.here..........
373e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c 00 00 00 00 00 00 00 00 00 emms-24/emms-filters.el.........
37420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
37480 30 32 34 33 30 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 33 34 00 20 30 00 00 00 0243012.00000000000.013634..0...
374a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
374c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
374e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
37520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
37540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
375a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
375c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
375e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37600 3b 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c 20 2d 2d 2d 20 46 69 6c 74 65 72 73 20 ;;;.emms-filters.el.---.Filters.
37620 66 6f 72 20 45 6d 6d 73 20 20 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 for.Emms..........-*-.lexical-bi
37640 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 nding:.t;.-*-..;;.Copyright.(C).
37660 32 30 32 33 2d 32 30 32 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 2023-2025..Free.Software.Foundat
37680 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 20 45 72 69 63 61 20 4c ion,.Inc..;;.;;.Author:..Erica.L
376a0 69 6e 61 20 51 69 20 3c 45 72 69 63 61 4c 69 6e 61 51 69 40 70 72 6f 74 6f 6e 2e 6d 65 3e 0a 0a ina.Qi.<EricaLinaQi@proton.me>..
376c0 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b ;;.This.file.is.part.of.EMMS...;
376e0 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b ;.This.program.is.free.software;
37700 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 .you.can.redistribute.it.and/or.
37720 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 modify.;;.it.under.the.terms.of.
37740 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 the.GNU.General.Public.License.a
37760 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 s.published.by.;;.the.Free.Softw
37780 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 are.Foundation;.either.version.3
377a0 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 ,.or.(at.your.option).;;.any.lat
377c0 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 er.version..;;.;;.This.program.i
377e0 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 s.distributed.in.the.hope.that.i
37800 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 t.will.be.useful,.;;.but.WITHOUT
37820 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 .ANY.WARRANTY;.without.even.the.
37840 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 implied.warranty.of.;;.MERCHANTA
37860 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c BILITY.or.FITNESS.FOR.A.PARTICUL
37880 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 AR.PURPOSE...See.the.;;.GNU.Gene
378a0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 ral.Public.License.for.more.deta
378c0 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 ils..;;.;;.You.should.have.recei
378e0 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 ved.a.copy.of.the.GNU.General.Pu
37900 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 blic.License.;;.along.with.this.
37920 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 program;.if.not,.write.to.the.Fr
37940 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c ee.Software.;;.Foundation,.Inc.,
37960 20 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 64 67 65 2c 20 4d 41 20 30 32 31 .675.Mass.Ave,.Cambridge,.MA.021
37980 33 39 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 54 68 69 39,.USA...;;;.Commentary:.;;.Thi
379a0 73 20 63 6f 64 65 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 66 69 6c 74 65 72 20 61 6e 64 20 s.code.allows.you.to.filter.and.
379c0 73 65 61 72 63 68 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 2e 0a 3b 3b 20 54 68 search.the.metadata.cache..;;.Th
379e0 69 73 20 6d 61 6e 61 67 65 73 20 74 68 65 20 73 65 61 72 63 68 20 61 6e 64 20 66 69 6c 74 65 72 is.manages.the.search.and.filter
37a00 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 20 6f 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 .functionalities.of.emms-browser
37a20 2e 0a 0a 3b 3b 20 55 73 61 67 65 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...;;.Usage.;;.-----------------
37a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
37a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 55 73 65 20 66 69 6c 74 65 72 ------------------.;;.Use.filter
37a80 73 20 61 73 20 62 65 66 6f 72 65 20 77 69 74 68 20 3c 3e 20 6b 65 79 73 20 74 6f 20 63 79 63 6c s.as.before.with.<>.keys.to.cycl
37aa0 65 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 e.the.filter.ring.in.the.browser
37ac0 20 62 75 66 66 65 72 2e 0a 3b 3b 20 53 65 61 72 63 68 2d 62 79 20 73 6f 6d 65 74 68 69 6e 67 20 .buffer..;;.Search-by.something.
37ae0 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 63 61 63 68 65 2c 20 6f 72 20 65 6d 6d 73 2d 66 to.create.a.new.cache,.or.emms-f
37b00 69 6c 74 65 72 73 2d 70 75 73 68 20 74 6f 20 67 65 74 20 73 74 61 72 74 65 64 0a 3b 3b 20 62 75 ilters-push.to.get.started.;;.bu
37b20 69 6c 64 69 6e 67 20 61 20 66 69 6c 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 55 73 65 20 27 65 6d 6d 73 ilding.a.filter..;;.;;.Use.'emms
37b40 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 2d 70 72 69 6e 74 27 20 74 6f 20 77 61 74 63 68 20 -filters-status-print'.to.watch.
37b60 74 68 65 20 73 74 61 63 6b 73 20 61 6e 64 20 66 69 6c 74 65 72 73 20 69 6e 20 65 66 66 65 63 74 the.stacks.and.filters.in.effect
37b80 2e 0a 0a 3b 3b 20 55 73 65 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c ...;;.Use.'emms-filters-show-fil
37ba0 74 65 72 2d 6d 65 6e 75 27 20 74 6f 20 73 65 65 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 ter-menu'.to.see.a.list.of.all.f
37bc0 69 6c 74 65 72 73 20 6b 6e 6f 77 6e 0a 3b 3b 20 6f 72 67 61 6e 69 7a 65 64 20 62 79 20 66 61 63 ilters.known.;;.organized.by.fac
37be0 74 6f 72 79 2e 0a 3b 3b 0a 3b 3b 20 41 70 70 6c 79 20 61 20 66 69 6c 74 65 72 20 77 69 74 68 20 tory..;;.;;.Apply.a.filter.with.
37c00 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 20 20 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 the.functions.;;....emms-filters
37c20 2d 70 75 73 68 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 2c 20 65 6d 6d 73 2d 66 69 6c -push,.emms-filters-or,.emms-fil
37c40 74 65 72 73 2d 61 6e 64 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 0a 3b ters-and,.emms-filters-and-not.;
37c60 3b 20 20 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 6d 61 73 68 20 61 6e 64 20 65 6d 6d 73 ;....emms-filters-smash.and.emms
37c80 2d 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 2e 0a 3b 3b 0a 3b 3b 20 6d 61 6e 69 70 75 6c -filters-one-shot..;;.;;.manipul
37ca0 61 74 65 20 74 68 65 20 73 74 61 63 6b 20 77 69 74 68 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 ate.the.stack.with.the.functions
37cc0 3a 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2c 20 65 6d 6d 73 2d 66 69 6c :.;;.emms-filters-push,.emms-fil
37ce0 74 65 72 73 2d 70 6f 70 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 20 61 6e 64 ters-pop,.emms-filters-clear.and
37d00 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 2c 20 73 77 61 70 20 61 6e 64 20 73 .emms-filters-squash,.swap.and.s
37d20 77 61 70 2d 70 6f 70 2e 0a 3b 3b 0a 3b 3b 20 49 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 wap-pop..;;.;;.Interactively.cre
37d40 61 74 65 20 61 6e 64 20 75 73 65 20 6e 65 77 20 66 69 6c 74 65 72 73 20 62 79 20 63 68 6f 6f 73 ate.and.use.new.filters.by.choos
37d60 69 6e 67 20 27 6e 65 77 20 66 69 6c 74 65 72 27 0a 3b 3b 20 69 6e 20 74 68 65 20 66 69 6c 74 65 ing.'new.filter'.;;.in.the.filte
37d80 72 20 73 65 6c 65 63 74 69 6f 6e 20 6c 69 73 74 73 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 66 75 6e r.selection.lists..;;.;;.The.fun
37da0 63 74 69 6f 6e 20 60 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 ction.`emms-filters-current-meta
37dc0 2d 66 69 6c 74 65 72 27 20 67 69 76 65 73 20 74 68 65 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 -filter'.gives.the.multi-filter.
37de0 64 61 74 61 20 73 6f 75 72 63 65 0a 3b 3b 20 66 6f 72 20 74 68 65 20 74 68 65 20 63 75 72 72 65 data.source.;;.for.the.the.curre
37e00 6e 74 20 66 69 6c 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 41 20 66 69 6c 74 65 72 20 63 61 6e 20 62 65 nt.filter..;;.;;.A.filter.can.be
37e20 20 27 6b 65 70 74 27 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 66 69 6c 74 .'kept'..The.function.'emms-filt
37e40 65 72 73 2d 6b 65 65 70 20 77 69 6c 6c 20 63 72 65 61 74 65 20 61 6e 64 20 72 65 67 69 73 74 65 ers-keep.will.create.and.registe
37e60 72 0a 3b 3b 20 61 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6f 66 20 74 68 65 20 63 75 72 72 65 r.;;.a.multi-filter.of.the.curre
37e80 6e 74 20 66 69 6c 74 65 72 2c 20 61 64 64 69 6e 67 20 69 74 20 74 6f 20 74 68 65 20 6d 75 6c 74 nt.filter,.adding.it.to.the.mult
37ea0 69 2d 66 69 6c 74 65 72 20 6d 65 6e 75 2e 0a 3b 3b 20 54 68 69 73 20 6f 6e 6c 79 20 6c 61 73 74 i-filter.menu..;;.This.only.last
37ec0 73 20 75 6e 74 69 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 61 63 73 20 73 65 73 73 69 6f s.until.the.current.Emacs.sessio
37ee0 6e 20 65 6e 64 73 2e 0a 3b 3b 20 49 66 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 75 6c 74 69 n.ends..;;.If.emms-filters-multi
37f00 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c 65 20 69 73 20 73 65 74 2c 20 61 20 75 73 61 62 -filter-save-file.is.set,.a.usab
37f20 6c 65 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 6c 6c 20 le.multi-filter.definition.will.
37f40 61 6c 73 6f 20 62 65 0a 3b 3b 20 61 70 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20 66 69 6c 65 2e also.be.;;.appended.to.the.file.
37f60 0a 3b 3b 0a 3b 3b 20 4d 61 6e 61 67 65 20 74 68 65 20 73 65 61 72 63 68 20 63 61 63 68 65 20 77 .;;.;;.Manage.the.search.cache.w
37f80 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 2c 20 65 6d ith.emms-filters-hard-filter,.em
37fa0 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ms-filters-one-shot,.emms-filter
37fc0 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 2c 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 s-quick-one-shot,.;;.emms-filter
37fe0 73 2d 73 65 61 72 63 68 2d 62 79 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 s-search-by,.emms-filters-pop-ca
38000 63 68 65 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 2d 63 61 63 68 65 73 2c che,.emms-filters-squash-caches,
38020 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 63 61 63 68 65 73 2c 20 65 .;;.emms-filters-clear-caches,.e
38040 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 0a 3b 3b 0a 3b 3b 20 43 61 63 mms-filters-push-cache.;;.;;.Cac
38060 68 65 73 20 63 61 6e 20 62 65 20 73 74 61 73 68 65 64 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 hes.can.be.stashed.for.the.sessi
38080 6f 6e 20 61 6e 64 20 70 75 73 68 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 74 61 63 6b 0a on.and.pushed.back.to.the.stack.
380a0 3b 3b 20 61 74 20 61 6e 79 20 74 69 6d 65 2e 20 54 68 65 20 45 6d 6d 73 2d 63 61 63 68 65 2d 44 ;;.at.any.time..The.Emms-cache-D
380c0 42 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 2e 0a 3b 3b 0a 3b 3b 20 53 77 69 74 63 68 20 74 B.is.the.default..;;.;;.Switch.t
380e0 68 65 20 61 63 74 69 76 65 20 72 69 6e 67 20 66 69 6c 74 65 72 20 77 69 74 68 20 3c 3e 20 77 68 he.active.ring.filter.with.<>.wh
38100 69 63 68 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ich.correspond.to.;;.emms-filter
38120 73 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 61 6e 64 20 65 6d 6d 73 2d 66 69 6c 74 s-next-ring-filter.and.emms-filt
38140 65 72 73 2d 70 72 65 76 69 6f 75 73 2d 72 69 6e 67 2d 66 69 6c 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 ers-previous-ring-filter..;;.;;.
38160 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 63 61 6e 20 62 65 20 63 6c 65 61 72 65 64 20 The.filter.stack.can.be.cleared.
38180 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2c 20 74 68 65 20 63 61 63 with.emms-filters-clear,.the.cac
381a0 68 65 73 0a 3b 3b 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 63 hes.;;.with.emms-filters-clear-c
381c0 61 63 68 65 73 20 61 6e 64 20 74 68 65 20 72 69 6e 67 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c aches.and.the.ring.with.emms-fil
381e0 74 65 72 73 2d 63 6c 65 61 72 2d 72 69 6e 67 2d 66 69 6c 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 41 6c ters-clear-ring-filter..;;.;;.Al
38200 6c 20 73 74 61 63 6b 73 20 61 6e 64 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 63 6c 65 61 l.stacks.and.filters.can.be.clea
38220 72 65 64 20 77 69 74 68 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 61 6c 6c red.with.'emms-filters-clear-all
38240 0a 0a 0a 3b 3b 20 53 6f 6d 65 20 44 65 66 69 6e 69 74 69 6f 6e 73 3a 0a 3b 3b 20 2d 2d 2d 2d 2d ...;;.Some.Definitions:.;;.-----
38260 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38280 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b ------------------------------.;
382a0 3b 20 20 20 20 46 69 6c 74 65 72 69 6e 67 3a 20 20 44 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 ;....Filtering:..Displaying.the.
382c0 6e 61 72 72 6f 77 65 64 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 6c 6f 6f 6b 69 6e 67 20 66 6f narrowed.results.from.looking.fo
382e0 72 20 6d 61 74 63 68 65 73 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20 61 r.matches.;;................in.a
38300 20 6c 69 73 74 20 6f 66 20 69 74 65 6d 73 2e 0a 3b 3b 20 20 20 20 53 65 61 72 63 68 3a 0a 3b 3b .list.of.items..;;....Search:.;;
38320 20 20 20 20 20 20 20 54 68 65 20 73 61 76 69 6e 67 20 6f 66 20 74 68 65 20 6e 61 72 72 6f 77 65 .......The.saving.of.the.narrowe
38340 64 20 72 65 73 75 6c 74 73 20 63 72 65 61 74 65 64 20 66 72 6f 6d 20 66 69 6c 74 65 72 69 6e 67 d.results.created.from.filtering
38360 20 61 20 6c 69 73 74 20 6f 66 20 69 74 65 6d 73 2c 0a 3b 3b 20 20 20 20 20 20 20 73 75 63 68 20 .a.list.of.items,.;;.......such.
38380 74 68 61 74 20 66 75 74 75 72 65 20 66 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 73 65 61 72 63 68 that.future.filtering.and.search
383a0 69 6e 67 20 77 69 6c 6c 20 68 61 76 65 20 61 20 73 6d 61 6c 6c 65 72 20 6c 69 73 74 20 6f 66 20 ing.will.have.a.smaller.list.of.
383c0 69 74 65 6d 73 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 46 69 6c 74 65 72 20 6f 72 20 66 69 6c 74 65 72 items..;;.;;....Filter.or.filter
383e0 20 63 6f 6e 73 2c 20 20 61 20 63 6f 6e 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 6e 61 6d 65 .cons,..a.cons.of.the.form.(name
38400 20 2e 20 66 75 6e 63 74 69 6f 6e 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 52 65 67 69 73 74 72 61 ...function).;;.........Registra
38420 74 69 6f 6e 20 74 61 6b 65 73 20 63 61 72 65 20 6f 66 20 74 68 69 73 2e 0a 3b 3b 20 20 20 20 20 tion.takes.care.of.this..;;.....
38440 20 20 20 20 4f 6e 63 65 20 61 20 66 69 6c 74 65 72 20 69 73 20 70 72 6f 70 65 72 6c 79 20 63 6f ....Once.a.filter.is.properly.co
38460 6e 73 74 72 75 63 74 65 64 20 69 74 20 77 69 6c 6c 20 62 65 20 61 20 63 6f 6e 73 0a 3b 3b 20 20 nstructed.it.will.be.a.cons.;;..
38480 20 20 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 29 20 .......(name...filter-function).
384a0 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 63 72 65 61 74 65 64 20 77 69 74 68 20 6f the.functions.are.created.with.o
384c0 6e 65 20 6f 66 20 74 68 65 0a 3b 3b 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 72 20 66 61 63 74 ne.of.the.;;.........filter.fact
384e0 6f 72 69 65 73 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 46 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 ories..;;.;;....Filter.function.
38500 2d 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 74 72 61 63 6b 20 -.a.function.that.takes.a.track.
38520 61 73 20 69 74 73 20 61 72 67 75 6d 65 6e 74 0a 3b 3b 20 20 20 20 20 20 61 6e 64 20 72 65 74 75 as.its.argument.;;......and.retu
38540 72 6e 73 20 74 72 75 65 20 6f 72 20 46 61 6c 73 65 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 46 69 6c 74 rns.true.or.False..;;.;;....Filt
38560 65 72 20 46 61 63 74 6f 72 79 3a 20 41 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 63 72 65 er.Factory:.A.function.which.cre
38580 61 74 65 73 20 61 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 67 69 76 65 6e 20 74 68 65 ates.a.filter.function.given.the
385a0 0a 3b 3b 20 20 20 20 20 20 74 68 65 20 64 65 73 69 72 65 64 20 70 61 72 61 6d 65 74 65 72 73 2e .;;......the.desired.parameters.
385c0 0a 3b 3b 0a 3b 3b 20 20 20 20 4d 75 6c 74 69 2d 66 69 6c 74 65 72 3a 20 20 41 20 66 69 6c 74 65 .;;.;;....Multi-filter:..A.filte
385e0 72 20 66 61 63 74 6f 72 79 20 77 68 69 63 68 20 69 73 20 6f 74 68 65 72 20 66 69 6c 74 65 72 73 r.factory.which.is.other.filters
38600 20 63 6f 6d 62 69 6e 65 64 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 .combined.;;...................u
38620 73 69 6e 67 20 4f 72 2c 20 41 6e 64 20 61 73 20 77 65 6c 6c 20 61 73 20 41 6e 64 2d 4e 6f 74 2e sing.Or,.And.as.well.as.And-Not.
38640 0a 3b 3b 0a 3b 3b 20 20 20 20 4d 65 74 61 2d 66 69 6c 74 65 72 3a 20 41 20 6d 75 6c 74 69 2d 66 .;;.;;....Meta-filter:.A.multi-f
38660 69 6c 74 65 72 20 64 61 74 61 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 3b 3b 20 20 20 20 20 20 20 ilter.data.definition..;;.......
38680 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 75 73 65 73 20 6d 65 74 61 2d 66 69 6c 74 65 The.filter.stack.uses.meta-filte
386a0 72 73 20 69 6e 20 61 20 63 6f 6e 73 0a 3b 3b 20 20 20 20 20 20 20 6c 69 6b 65 20 74 68 69 73 3b rs.in.a.cons.;;.......like.this;
386c0 20 28 6e 61 6d 65 20 2e 20 6d 65 74 61 2d 66 69 6c 74 65 72 29 2e 0a 3b 3b 20 20 20 20 20 20 20 .(name...meta-filter)..;;.......
386e0 46 69 6c 74 65 72 20 6e 61 6d 65 73 20 66 6f 72 20 6d 65 74 61 2d 66 69 6c 74 65 72 73 20 63 61 Filter.names.for.meta-filters.ca
38700 6e 20 62 65 20 65 61 73 69 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 64 2e 0a 3b 3b 0a 3b 3b 20 20 n.be.easily.constructed..;;.;;..
38720 20 20 20 20 20 54 68 69 73 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 75 73 65 73 20 34 20 66 69 6c .....This.meta-filter.uses.4.fil
38740 74 65 72 73 20 62 79 20 6e 61 6d 65 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 27 ters.by.name:.;;.;;............'
38760 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 (("Vals"."Milonga").;;..........
38780 20 20 20 20 28 22 31 39 30 30 2d 31 39 32 39 22 20 22 31 39 32 39 2d 31 39 33 37 22 29 29 0a 3b ....("1900-1929"."1929-1937")).;
387a0 3b 0a 3b 3b 20 20 20 20 20 20 20 54 68 69 73 20 66 69 6c 74 65 72 20 77 69 6c 6c 0a 3b 3b 20 20 ;.;;.......This.filter.will.;;..
387c0 20 20 20 20 20 4d 61 74 63 68 20 6f 6e 20 67 65 6e 72 65 20 6f 66 20 76 61 6c 73 20 4f 52 0a 3b .....Match.on.genre.of.vals.OR.;
387e0 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6c 6f 6e 67 ;.........................milong
38800 61 20 41 4e 44 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a.AND.;;........................
38820 20 20 20 20 20 61 6e 79 20 79 65 61 72 20 62 65 74 77 65 65 6e 0a 3b 3b 20 20 20 20 20 20 20 20 .....any.year.between.;;........
38840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 39 30 30 2d 31 39 32 39 20 4f 52 0a 3b 3b .................1900-1929.OR.;;
38860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 39 32 39 2d 31 39 .........................1929-19
38880 33 37 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 4d 61 6b 69 6e 67 20 6f 6e 65 20 6f 72 20 6d 6f 37..;;.;;.......Making.one.or.mo
388a0 72 65 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 69 73 20 65 61 73 79 2e 0a 3b 3b 20 20 20 20 20 re.multi-filter.is.easy..;;.....
388c0 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 0a 3b 3b 20 ..(emms-filters-make-filters.;;.
388e0 20 20 20 20 20 20 20 27 28 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 3b 3b 20 20 20 20 20 .......'(("Multi-filter".;;.....
38900 20 20 20 20 20 20 22 56 61 6c 73 20 7c 20 6d 69 6c 6f 6e 67 61 20 2d 20 31 39 30 30 2d 31 39 33 ......"Vals.|.milonga.-.1900-193
38920 37 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 7".;;...........(("Vals"."Milong
38940 61 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 28 22 31 39 30 30 2d 31 39 32 39 22 20 22 a").;;............("1900-1929"."
38960 31 39 32 39 2d 31 39 33 37 22 29 29 29 29 29 3b 0a 0a 3b 3b 20 20 20 20 4d 65 74 61 2d 66 69 6c 1929-1937")))));..;;....Meta-fil
38980 74 65 72 2d 73 74 61 63 6b 3a 20 20 41 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 73 74 61 63 6b ter-stack:..An.interactive.stack
389a0 20 6f 66 20 6d 65 74 61 2d 66 69 6c 74 65 72 73 20 77 68 69 63 68 20 61 6c 6c 6f 77 0a 3b 3b 20 .of.meta-filters.which.allow.;;.
389c0 20 20 20 20 20 74 68 65 20 63 72 65 61 74 69 6f 6e 2c 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 61 .....the.creation,.combination.a
389e0 6e 64 20 75 73 65 20 6f 66 20 61 6c 6c 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 nd.use.of.all.filters..;;.;;....
38a00 46 69 6c 74 65 72 2d 72 69 6e 67 3a 20 41 20 72 69 6e 67 20 6f 66 20 66 69 6c 74 65 72 20 6e 61 Filter-ring:.A.ring.of.filter.na
38a20 6d 65 73 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 73 65 6c 65 63 74 65 mes,.which.can.be.easily.selecte
38a40 64 20 77 69 74 68 0a 3b 3b 20 20 20 20 20 20 20 6e 65 78 74 20 61 6e 64 20 70 72 65 76 69 6f 75 d.with.;;.......next.and.previou
38a60 73 20 63 6f 6e 74 72 6f 6c 73 2e 20 41 6c 6c 20 66 69 6c 74 65 72 73 20 63 72 65 61 74 65 64 20 s.controls..All.filters.created.
38a80 74 68 72 6f 75 67 68 0a 3b 3b 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d through.;;.......'emms-browser-m
38aa0 61 6b 65 2d 66 69 6c 74 65 72 20 61 72 65 20 61 64 64 65 64 20 68 65 72 65 20 62 79 20 64 65 66 ake-filter.are.added.here.by.def
38ac0 61 75 6c 74 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 54 68 65 20 66 69 6c 74 65 72 20 72 69 6e ault..;;.;;.......The.filter.rin
38ae0 67 20 72 65 70 6c 61 63 65 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 6f 66 20 g.replaces.the.functionality.of.
38b00 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 20 20 20 20 20 20 54 emms-browser-filters..;;.......T
38b20 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 66 69 6c 74 65 he.easiest.way.to.make.the.filte
38b40 72 20 72 69 6e 67 20 69 73 20 77 69 74 68 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 r.ring.is.with.a.list.of.filters
38b60 2e 0a 3b 3b 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 ..;;.......(emms-filters-make-fi
38b80 6c 74 65 72 2d 72 69 6e 67 20 27 28 22 54 61 6e 67 6f 22 20 22 56 61 6c 73 22 20 22 4d 69 6c 6f lter-ring.'("Tango"."Vals"."Milo
38ba0 6e 67 61 22 29 29 0a 0a 0a 3b 3b 20 42 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 nga"))...;;.Backward.compatibili
38bc0 74 79 3a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ty:.;;.-------------------------
38be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
38c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 72 65 70 6c 61 63 65 73 ----------.;;.This.code.replaces
38c20 20 62 6f 74 68 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 73 20 61 6e 64 20 73 .both.emms-browser.filters.and.s
38c40 65 61 72 63 68 2d 62 79 2e 0a 3b 3b 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 earch-by..;;.emms-browser-make-f
38c60 69 6c 74 65 72 20 61 6e 64 20 73 65 61 72 63 68 2d 62 79 20 75 73 65 20 65 6d 6d 73 2d 66 69 6c ilter.and.search-by.use.emms-fil
38c80 74 65 72 73 20 66 6f 72 20 74 68 65 69 72 0a 3b 3b 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 ters.for.their.;;.current.functi
38ca0 6f 6e 61 6c 69 74 79 2e 0a 3b 3b 0a 3b 3b 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 onality..;;.;;.Emms-browser-filt
38cc0 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 73 70 65 63 69 66 69 65 64 20 74 6f 20 72 65 er.functions.are.specified.to.re
38ce0 74 75 72 6e 20 61 6e 20 69 6e 76 65 72 74 65 64 20 76 61 6c 75 65 2e 0a 3b 3b 20 65 6d 6d 73 2d turn.an.inverted.value..;;.emms-
38d00 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 69 73 20 61 20 73 6c 69 67 68 74 6c browser-make-filter.is.a.slightl
38d20 79 20 64 69 66 66 65 72 65 6e 74 20 6d 65 63 68 61 6e 69 73 6d 20 66 72 6f 6d 20 65 6d 6d 73 2d y.different.mechanism.from.emms-
38d40 66 69 6c 74 65 72 73 2e 65 6c 2e 0a 3b 3b 20 62 75 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 filters.el..;;.but.has.been.modi
38d60 66 69 65 64 20 74 6f 20 70 61 73 73 20 69 74 73 20 66 69 6c 74 65 72 73 20 74 6f 20 65 6d 6d 73 fied.to.pass.its.filters.to.emms
38d80 2d 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 54 68 6f 73 65 20 66 69 6c 74 65 72 73 20 77 69 6c 6c 20 -filters..;;.Those.filters.will.
38da0 62 65 20 70 72 6f 70 65 72 6c 79 20 69 6e 76 65 72 74 65 64 20 61 6e 64 20 61 64 64 65 64 20 74 be.properly.inverted.and.added.t
38dc0 6f 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 61 6e 64 20 74 6f 20 74 68 o.emms-filters-filters.and.to.th
38de0 65 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 2e 20 54 e.;;.emms-filters-filter-ring..T
38e00 68 69 73 20 73 68 6f 75 6c 64 20 70 72 6f 76 69 64 65 20 61 20 73 65 61 6d 6c 65 73 73 20 65 78 his.should.provide.a.seamless.ex
38e20 70 65 72 69 65 6e 63 65 20 66 6f 72 20 70 72 65 76 69 6f 75 73 20 75 73 65 72 73 0a 3b 3b 20 6f perience.for.previous.users.;;.o
38e40 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 69 6e 67 2e 20 41 73 20 74 68 65 f.emms-browser.filtering..As.the
38e60 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 69 73 20 66 75 6e .emms-filters-filter-ring.is.fun
38e80 63 74 69 6f 6e 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 2e 0a 3b 3b 0a 3b 3b 20 53 65 61 72 ctionally.equivalent..;;.;;.Sear
38ea0 63 68 2d 62 79 20 77 61 73 20 6a 75 73 74 20 6f 6e 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 ch-by.was.just.one.filter.factor
38ec0 79 2c 20 27 66 69 65 6c 64 73 2d 73 65 61 72 63 68 27 2c 20 61 6e 64 20 73 65 61 72 63 68 65 73 y,.'fields-search',.and.searches
38ee0 20 61 72 65 0a 3b 3b 20 6e 6f 74 20 69 6e 76 65 72 74 65 64 2e 20 54 68 65 20 6f 6e 6c 79 20 72 .are.;;.not.inverted..The.only.r
38f00 65 61 6c 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 61 20 66 69 6c 74 65 72 20 eal.difference.between.a.filter.
38f20 61 6e 64 20 61 20 73 65 61 72 63 68 20 77 61 73 0a 3b 3b 20 74 68 61 74 20 61 20 66 69 6c 74 65 and.a.search.was.;;.that.a.filte
38f40 72 20 77 61 73 20 72 65 6e 64 65 72 65 64 20 61 6e 64 20 61 20 73 65 61 72 63 68 20 77 61 73 20 r.was.rendered.and.a.search.was.
38f60 73 61 76 65 64 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 66 69 6c 74 65 72 69 6e 67 2e 0a saved.for.subsequent.filtering..
38f80 3b 3b 20 54 68 65 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 65 6d 6d 73 2d 62 72 ;;.The.equivalent.to.the.emms-br
38fa0 6f 77 73 65 72 20 73 65 61 72 63 68 2d 62 79 20 69 73 20 6a 75 73 74 20 61 20 6f 6e 65 20 73 68 owser.search-by.is.just.a.one.sh
38fc0 6f 74 0a 3b 3b 20 69 6e 74 65 72 61 63 74 69 76 65 20 6e 65 77 20 66 69 65 6c 64 73 2d 73 65 61 ot.;;.interactive.new.fields-sea
38fe0 72 63 68 20 66 61 63 74 6f 72 79 20 66 69 6c 74 65 72 20 74 68 61 74 20 73 61 76 65 73 20 61 20 rch.factory.filter.that.saves.a.
39000 63 61 63 68 65 2e 0a 3b 3b 0a 3b 3b 20 46 69 6c 74 65 72 73 20 61 72 65 20 73 6c 69 67 68 74 6c cache..;;.;;.Filters.are.slightl
39020 79 20 64 69 66 66 65 72 65 6e 74 20 77 68 65 6e 20 63 6f 64 65 64 20 66 6f 72 20 65 6d 6d 73 2d y.different.when.coded.for.emms-
39040 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 31 2e 20 54 68 65 79 20 73 68 6f 75 6c 64 20 72 65 74 75 72 filters..;;.1..They.should.retur
39060 6e 20 74 72 75 65 20 69 66 20 74 68 65 79 20 6d 61 74 63 68 20 74 68 65 20 74 72 61 63 6b 73 0a n.true.if.they.match.the.tracks.
39080 3b 3b 20 32 2e 20 54 68 65 20 66 61 63 74 6f 72 79 20 73 68 6f 75 6c 64 20 77 72 61 70 20 74 68 ;;.2..The.factory.should.wrap.th
390a0 65 20 6c 61 6d 62 64 61 20 69 6e 20 61 20 6c 65 74 20 77 69 74 68 20 6c 65 78 69 63 61 6c 2d 62 e.lambda.in.a.let.with.lexical-b
390c0 69 6e 64 69 6e 67 20 74 2e 0a 3b 3b 20 33 2e 20 54 68 65 20 66 61 63 74 6f 72 79 20 61 6e 64 20 inding.t..;;.3..The.factory.and.
390e0 74 68 65 20 66 69 6c 74 65 72 73 20 6d 75 73 74 20 62 6f 74 68 20 62 65 20 72 65 67 69 73 74 65 the.filters.must.both.be.registe
39100 72 65 64 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 20 20 20 54 68 69 red.with.emms-filters..;;....Thi
39120 73 20 70 72 6f 76 69 64 65 73 20 61 20 68 69 67 68 65 72 20 6c 65 76 65 6c 20 6f 66 20 69 6e 74 s.provides.a.higher.level.of.int
39140 65 72 61 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 34 2e eraction.with.the.filters..;;.4.
39160 20 54 68 65 72 65 20 69 73 20 6e 6f 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 .There.is.no.difference.between.
39180 61 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 61 20 66 69 6c 74 65 72 20 66 a.search.function.and.a.filter.f
391a0 75 6e 63 74 69 6f 6e 2e 0a 0a 0a 3b 3b 20 54 68 65 20 6d 6f 76 69 6e 67 20 70 61 72 74 73 2e 0a unction....;;.The.moving.parts..
391c0 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;.-----------------------------
391e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
39200 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 45 6d 6d 73 2d 66 69 6c 74 65 72 73 20 63 6f 6e 73 69 73 74 73 20 ------.;;.Emms-filters.consists.
39220 6f 66 20 61 20 66 65 77 20 64 69 66 66 65 72 65 6e 74 20 6d 65 63 68 61 6e 69 73 6d 73 2e 0a 3b of.a.few.different.mechanisms..;
39240 3b 20 54 68 65 72 65 20 61 72 65 20 66 61 63 74 6f 72 69 65 73 20 74 6f 20 6d 61 6b 65 20 66 69 ;.There.are.factories.to.make.fi
39260 6c 74 65 72 73 2e 20 54 68 65 72 65 20 69 73 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b lters..There.is.the.filter.stack
39280 0a 3b 3b 20 74 6f 20 6d 61 6e 61 67 65 20 74 68 65 20 63 72 65 61 74 69 6f 6e 20 61 6e 64 20 75 .;;.to.manage.the.creation.and.u
392a0 73 65 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 72 65 20 69 73 20 74 68 se.of.filters..;;.;;.There.is.th
392c0 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 73 61 76 69 e.cache.stack.to.handle.the.savi
392e0 6e 67 20 6f 66 20 61 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 65 64 20 72 65 73 75 6c 74 73 ng.of.a.current.filtered.results
39300 0a 3b 3b 20 69 6e 74 6f 20 61 20 72 65 64 75 63 65 64 20 64 61 74 61 62 61 73 65 20 63 61 63 68 .;;.into.a.reduced.database.cach
39320 65 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 73 65 61 72 63 68 65 73 2e 0a 3b 3b 0a 3b 3b e.for.subsequent.searches..;;.;;
39340 20 54 68 65 72 65 20 69 73 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 66 6f 72 20 71 75 .There.is.the.filter.ring.for.qu
39360 69 63 6b 6c 79 20 73 77 69 74 63 68 69 6e 67 20 62 65 74 77 65 65 6e 20 63 6f 6d 6d 6f 6e 6c 79 ickly.switching.between.commonly
39380 20 75 73 65 64 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 2d 20 46 69 6c 74 65 72 20 46 61 .used.filters..;;.;;.-.Filter.Fa
393a0 63 74 6f 72 69 65 73 20 2d 20 54 6f 20 6d 61 6b 65 20 66 69 6c 74 65 72 73 2c 20 77 68 69 63 68 ctories.-.To.make.filters,.which
393c0 20 61 72 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 3b 3b 20 20 20 20 20 20 20 .are.lambda.functions..;;.......
393e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 61 63 74 6f 72 69 65 73 20 61 72 65 20 66 72 65 ...............Factories.are.fre
39400 71 75 65 6e 74 6c 79 20 6d 61 64 65 20 66 72 6f 6d 20 6f 74 68 65 72 20 66 61 63 74 6f 72 69 65 quently.made.from.other.factorie
39420 73 2e 0a 3b 3b 20 2d 20 46 69 6c 74 65 72 73 20 2d 20 54 6f 20 62 65 20 75 73 65 64 20 62 79 20 s..;;.-.Filters.-.To.be.used.by.
39440 74 68 65 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 73 74 61 63 6b 20 74 6f 20 63 72 65 61 74 65 20 the.meta-filter.stack.to.create.
39460 6d 6f 72 65 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c more.filters..;;.............fil
39480 74 65 72 73 20 61 72 65 20 72 65 70 72 65 73 65 65 64 20 73 69 6d 70 6c 79 20 61 73 20 64 61 74 ters.are.represeed.simply.as.dat
394a0 61 2c 20 61 6e 64 20 61 72 65 20 76 65 72 79 20 65 61 73 79 20 74 6f 20 64 65 66 69 6e 65 2e 0a a,.and.are.very.easy.to.define..
394c0 3b 3b 20 2d 20 46 69 6c 74 65 72 20 6d 65 6e 75 20 2d 20 41 20 63 75 73 74 6f 6d 69 7a 61 62 6c ;;.-.Filter.menu.-.A.customizabl
394e0 65 20 72 69 6e 67 20 6f 66 20 66 61 63 74 6f 72 69 65 73 20 61 6e 64 20 74 68 65 69 72 20 72 69 e.ring.of.factories.and.their.ri
39500 6e 67 73 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 2d 20 4d 75 6c 74 69 2d 66 69 6c 74 65 ngs.of.filters..;;.-.Multi-filte
39520 72 20 2d 20 41 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 74 6f 20 63 72 65 61 74 65 20 4d r.-.A.filter.factory.to.create.M
39540 65 74 61 2d 66 69 6c 74 65 72 73 2c 20 66 69 6c 74 65 72 73 20 6d 61 64 65 20 6f 66 20 66 69 6c eta-filters,.filters.made.of.fil
39560 74 65 72 73 2e 0a 3b 3b 20 2d 20 4d 65 74 61 2d 66 69 6c 74 65 72 20 2d 20 41 20 6d 75 6c 74 69 ters..;;.-.Meta-filter.-.A.multi
39580 2d 66 69 6c 74 65 72 20 64 61 74 61 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 41 6c 73 6f 20 64 61 -filter.data.definition..Also.da
395a0 74 61 2c 20 61 6e 64 20 65 61 73 79 20 74 6f 20 64 65 66 69 6e 65 2e 0a 3b 3b 20 2d 20 54 68 65 ta,.and.easy.to.define..;;.-.The
395c0 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 2d 20 41 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 6d 61 .filter.stack.-.A.meta-filter.ma
395e0 6e 69 70 75 6c 61 74 6f 72 20 61 6e 64 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 63 72 65 61 74 nipulator.and.multi-filter.creat
39600 6f 72 2e 0a 3b 3b 20 2d 20 54 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 2d 20 41 20 73 74 61 or..;;.-.The.cache.stack.-.A.sta
39620 63 6b 20 6f 66 20 64 61 74 61 62 61 73 65 20 63 61 63 68 65 73 2e 0a 3b 3b 20 2d 20 54 68 65 20 ck.of.database.caches..;;.-.The.
39640 66 69 6c 74 65 72 20 72 69 6e 67 2e 20 2d 20 41 20 73 75 62 73 65 74 20 6f 66 20 63 6f 6e 76 65 filter.ring..-.A.subset.of.conve
39660 6e 69 65 6e 74 20 74 6f 20 75 73 65 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 20 20 20 20 20 20 20 nient.to.use.filters..;;........
39680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 72 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 ..............For.backward.compa
396a0 74 69 62 69 6c 69 74 79 20 61 6e 64 20 63 6f 6e 76 65 6e 69 65 6e 63 65 2e 0a 0a 0a 3b 3b 3b 20 tibility.and.convenience....;;;.
396c0 46 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d Filter.factories.;;.------------
396e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
39700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 46 69 6c 74 65 -----------------------.;;.Filte
39720 72 20 66 61 63 74 6f 72 69 65 73 20 6d 61 6b 65 20 66 69 6c 74 65 72 73 20 77 68 69 63 68 20 61 r.factories.make.filters.which.a
39740 72 65 20 73 69 6d 70 6c 79 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 0a 3b re.simply.test.functions.which.;
39760 3b 20 74 61 6b 65 20 61 20 74 72 61 63 6b 20 61 6e 64 20 72 65 74 75 72 6e 20 74 72 75 65 20 6f ;.take.a.track.and.return.true.o
39780 72 20 66 61 6c 73 65 2e 0a 3b 3b 0a 3b 3b 20 46 61 63 74 6f 72 69 65 73 20 61 72 65 20 72 65 67 r.false..;;.;;.Factories.are.reg
397a0 69 73 74 65 72 65 64 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 20 73 79 73 istered.with.the.Emms-filter.sys
397c0 74 65 6d 20 73 6f 20 74 68 61 74 20 74 68 65 79 0a 3b 3b 20 68 61 76 65 20 6e 61 6d 65 73 20 74 tem.so.that.they.;;.have.names.t
397e0 68 61 74 20 63 61 6e 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 6c 61 74 65 72 2e 20 41 64 64 hat.can.be.referenced.later..Add
39800 69 74 69 6f 6e 61 6c 6c 79 2c 20 72 65 67 69 73 74 72 61 74 69 6f 6e 0a 3b 3b 20 69 6e 63 6c 75 itionally,.registration.;;.inclu
39820 64 65 73 20 61 20 70 72 6f 6d 70 74 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 20 64 65 66 69 6e des.a.prompt.and.parameter.defin
39840 69 74 69 6f 6e 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 ition..This.allows.the.emms-filt
39860 65 72 73 0a 3b 3b 20 70 72 6f 6d 70 74 69 6e 67 20 73 79 73 74 65 6d 20 74 6f 20 70 72 6f 76 69 ers.;;.prompting.system.to.provi
39880 64 65 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 61 de.an.interactive.interface.to.a
398a0 6e 79 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 70 72 6f ny.filter.factory..;;.;;.The.pro
398c0 6d 70 74 69 6e 67 20 73 79 73 74 65 6d 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 72 65 61 74 69 6f mpting.system.allows.the.creatio
398e0 6e 20 6f 66 20 61 6e 79 20 66 69 6c 74 65 72 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 61 74 n.of.any.filter.interactively.at
39900 0a 3b 3b 20 61 6e 79 20 74 69 6d 65 2e 0a 3b 3b 0a 3b 3b 20 48 65 72 65 20 69 73 20 74 68 65 20 .;;.any.time..;;.;;.Here.is.the.
39920 47 65 6e 72 65 20 46 61 63 74 6f 72 79 20 77 68 69 63 68 20 69 73 20 61 63 74 75 61 6c 6c 79 20 Genre.Factory.which.is.actually.
39940 6d 61 64 65 20 66 72 6f 6d 20 74 68 65 0a 3b 3b 20 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 20 66 made.from.the.;;.field-compare.f
39960 61 63 74 6f 72 79 2e 20 54 68 69 73 20 69 73 20 61 20 63 6f 6d 6d 6f 6e 20 70 61 74 74 65 72 6e actory..This.is.a.common.pattern
39980 20 74 6f 20 63 72 65 61 74 65 0a 3b 3b 20 61 20 73 69 6d 70 6c 65 72 20 66 61 63 74 6f 72 79 20 .to.create.;;.a.simpler.factory.
399a0 66 72 6f 6d 20 61 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 6f 6e 65 2e 20 49 74 20 69 73 20 73 from.a.more.complex.one..It.is.s
399c0 69 6d 70 6c 79 0a 3b 3b 20 61 20 70 61 72 74 69 61 6c 20 74 68 61 74 20 69 73 20 72 65 67 69 73 imply.;;.a.partial.that.is.regis
399e0 74 65 72 65 64 20 77 69 74 68 20 61 20 64 69 66 66 65 72 65 6e 74 20 73 65 74 20 6f 66 20 70 72 tered.with.a.different.set.of.pr
39a00 6f 6d 70 74 73 2e 0a 3b 3b 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 47 65 6e 72 65 3a 20 69 73 ompts..;;.In.this.case.Genre:.is
39a20 20 74 68 65 20 70 72 6f 6d 70 74 20 61 6e 64 20 69 74 20 69 73 20 65 78 70 65 63 74 65 64 20 74 .the.prompt.and.it.is.expected.t
39a40 6f 20 62 65 20 61 20 73 74 72 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 o.be.a.string..;;.;;.(emms-filte
39a60 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 3b 3b 20 20 22 rs-register-filter-factory.;;.."
39a80 47 65 6e 72 65 22 0a 3b 3b 20 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d Genre".;;..(apply-partially.'emm
39aa0 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 s-filters-make-filter-field-comp
39ac0 61 72 65 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 are.;;...................'string
39ae0 2d 65 71 75 61 6c 2d 69 67 6e 6f 72 65 2d 63 61 73 65 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 0a -equal-ignore-case.'info-genre).
39b00 3b 3b 20 20 27 28 28 22 47 65 6e 72 65 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 ;;..'(("Genre:.".(:string...nil)
39b20 29 29 29 3b 3b 0a 3b 3b 0a 3b 3b 20 54 68 65 20 61 63 74 75 61 6c 20 66 69 6c 74 65 72 20 66 61 )));;.;;.;;.The.actual.filter.fa
39b40 63 74 6f 72 79 20 69 73 20 74 68 65 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 61 ctory.is.the.field.comparison.fa
39b60 63 74 6f 72 79 2e 0a 3b 3b 20 54 68 69 73 20 73 69 6e 67 6c 65 20 66 75 6e 63 74 69 6f 6e 20 63 ctory..;;.This.single.function.c
39b80 61 6e 20 62 65 20 61 20 6e 65 77 20 66 61 63 74 6f 72 79 20 66 6f 72 20 61 6e 79 20 64 61 74 61 an.be.a.new.factory.for.any.data
39ba0 20 66 69 65 6c 64 0a 3b 3b 20 75 73 69 6e 67 20 61 6e 79 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 .field.;;.using.any.comparison.f
39bc0 75 6e 63 74 69 6f 6e 20 77 65 20 77 6f 75 6c 64 20 6c 69 6b 65 2e 0a 3b 3b 0a 3b 3b 20 46 69 6c unction.we.would.like..;;.;;.Fil
39be0 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 64 65 70 65 6e 64 20 75 70 6f 6e 20 6c 65 78 69 63 61 ter.factories.depend.upon.lexica
39c00 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 69 72 20 70 61 72 61 6d 65 74 65 72 73 2e 20 49 l.context.of.their.parameters..I
39c20 6e 0a 3b 3b 20 6f 72 64 65 72 20 74 6f 20 68 61 76 65 20 64 61 74 61 20 76 61 6c 75 65 73 20 74 n.;;.order.to.have.data.values.t
39c40 68 61 74 20 73 74 69 63 6b 20 61 66 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 69 6f hat.stick.after.function.creatio
39c60 6e 20 74 68 65 72 65 0a 3b 3b 20 69 73 20 6c 65 74 20 75 73 69 6e 67 20 6c 65 78 69 63 61 6c 20 n.there.;;.is.let.using.lexical.
39c80 62 69 6e 64 69 6e 67 20 74 6f 20 65 6e 73 75 72 65 20 74 68 65 20 66 61 63 74 6f 72 79 20 62 65 binding.to.ensure.the.factory.be
39ca0 68 61 76 65 73 20 61 73 20 65 78 70 65 63 74 65 64 2e 0a 3b 3b 20 54 68 69 73 20 74 72 61 6e 73 haves.as.expected..;;.This.trans
39cc0 66 65 72 73 20 74 68 65 20 76 61 6c 75 65 73 20 74 6f 20 6c 6f 63 61 6c 20 76 61 6c 75 65 73 20 fers.the.values.to.local.values.
39ce0 61 6e 64 20 75 73 65 73 20 74 68 65 6d 20 61 73 20 6c 6f 63 61 6c 0a 3b 3b 20 77 69 74 68 69 6e and.uses.them.as.local.;;.within
39d00 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 2e .the.returned.#'(lambda.(track).
39d20 2e 2e 29 2e 0a 3b 3b 0a 3b 3b 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d ..)..;;.;;.(defun.emms-filters-m
39d40 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 20 28 6f 70 65 72 61 74 ake-filter-field-compare.(operat
39d60 6f 72 2d 66 75 6e 63 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 0a 3b 3b 20 20 20 or-func.field.compare-val).;;...
39d80 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 46 49 45 "Make.a.filter.that.compares.FIE
39da0 4c 44 20 74 6f 20 43 4f 4d 50 41 52 45 2d 56 41 4c 55 45 20 77 69 74 68 20 4f 50 45 52 41 54 4f LD.to.COMPARE-VALUE.with.OPERATO
39dc0 52 2d 46 55 4e 43 2e 0a 3b 3b 20 57 6f 72 6b 73 20 66 6f 72 20 6e 75 6d 62 65 72 20 66 69 65 6c R-FUNC..;;.Works.for.number.fiel
39de0 64 73 20 61 6e 64 20 73 74 72 69 6e 67 20 66 69 65 6c 64 73 20 70 72 6f 76 69 64 65 64 20 74 68 ds.and.string.fields.provided.th
39e00 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 3b 3b 20 74 79 70 65 20 6d 61 74 63 68 20 62 65 74 77 e.appropriate.;;.type.match.betw
39e20 65 65 6e 20 76 61 6c 75 65 73 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 een.values.and.the.comparison.fu
39e40 6e 63 74 69 6f 6e 2e 20 50 61 72 74 69 61 6c 73 20 63 61 6e 0a 3b 3b 20 65 61 73 69 6c 79 20 6d nction..Partials.can.;;.easily.m
39e60 61 6b 65 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 66 61 63 74 6f 72 79 20 66 75 6e 63 74 69 ake.more.specific.factory.functi
39e80 6f 6e 73 20 66 72 6f 6d 20 74 68 69 73 20 6f 6e 65 2e 22 0a 3b 3b 20 20 20 28 6c 65 74 20 28 28 ons.from.this.one.".;;...(let.((
39ea0 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 6f 72 20 6f 70 65 72 61 74 6f 72 2d 66 75 6e 63 29 0a 3b 3b local-operator.operator-func).;;
39ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 66 69 65 6c 64 20 66 69 .................(local-field.fi
39ee0 65 6c 64 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 63 eld).;;.................(local-c
39f00 6f 6d 70 61 72 65 2d 76 61 6c 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 29 0a 3b 3b 20 20 20 20 20 ompare-val.compare-val)).;;.....
39f20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 6c 65 #'(lambda.(track).;;.........(le
39f40 74 20 28 28 74 72 61 63 6b 2d 76 61 6c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 t.((track-val.(emms-track-get.tr
39f60 61 63 6b 20 6c 6f 63 61 6c 2d 66 69 65 6c 64 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 ack.local-field))).;;...........
39f80 28 61 6e 64 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 2d 76 61 6c 0a 3b 3b 20 (and.;;............track-val.;;.
39fa0 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 ...........(funcall.local-operat
39fc0 6f 72 20 6c 6f 63 61 6c 2d 63 6f 6d 70 61 72 65 2d 76 61 6c 20 74 72 61 63 6b 2d 76 61 6c 29 29 or.local-compare-val.track-val))
39fe0 29 29 29 29 0a 0a 3b 3b 20 54 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 ))))..;;.The.registration.for.th
3a000 69 73 20 66 61 63 74 6f 72 79 20 69 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 62 65 63 61 75 is.factory.is.more.complex.becau
3a020 73 65 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 69 6e 67 0a 3b 3b 20 66 6f 72 20 61 6c 6c 20 74 se.of.the.prompting.;;.for.all.t
3a040 68 65 20 70 61 72 61 6d 65 74 65 72 73 2e 20 42 79 20 63 68 61 6e 67 69 6e 67 20 6a 75 73 74 20 he.parameters..By.changing.just.
3a060 74 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 0a 3b 3b the.registration.name.and.the.;;
3a080 20 70 72 6f 6d 70 74 73 20 77 65 20 63 61 6e 20 63 72 65 61 74 65 20 74 77 6f 20 66 61 63 74 6f .prompts.we.can.create.two.facto
3a0a0 72 69 65 73 2c 20 6f 6e 65 20 66 6f 72 20 6e 75 6d 62 65 72 73 20 61 6e 64 20 6f 6e 65 20 66 6f ries,.one.for.numbers.and.one.fo
3a0c0 72 20 73 74 72 69 6e 67 73 2e 0a 3b 3b 20 4e 6f 74 65 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 r.strings..;;.Note.the.use.of.th
3a0e0 65 20 60 20 61 6e 64 20 2c 20 74 6f 20 66 6f 72 63 65 20 74 68 65 20 73 65 6c 65 63 74 20 6c 69 e.`.and.,.to.force.the.select.li
3a100 73 74 73 20 74 6f 20 72 65 73 6f 6c 76 65 2e 0a 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 sts.to.resolve..;;.;;.(emms-filt
3a120 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 4e 75 6d ers-register-filter-factory."Num
3a140 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 ber.field.compare".;;...........
3a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ...................'emms-filters
3a180 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 3b 3b 20 20 20 -make-filter-field-compare.;;...
3a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 ...........................;;.pr
3a1c0 6f 6d 70 74 73 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ompts.;;........................
3a1e0 20 20 20 20 20 20 60 28 28 22 43 6f 6d 70 61 72 65 20 46 75 6e 63 74 69 6f 6e 3a 20 22 0a 3b 3b ......`(("Compare.Function:.".;;
3a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a220 20 28 3a 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 .(:function...,emms-filters-numb
3a240 65 72 2d 63 6f 6d 70 61 72 65 2d 66 75 6e 63 74 69 6f 6e 73 29 29 0a 3b 3b 20 20 20 20 20 20 20 er-compare-functions)).;;.......
3a260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 46 69 65 6c 64 .........................("Field
3a280 20 6e 61 6d 65 3a 20 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .name:.".;;.....................
3a2a0 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 73 79 6d 62 6f 6c 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c ............(:symbol...,emms-fil
3a2c0 74 65 72 73 2d 6e 75 6d 62 65 72 2d 66 69 65 6c 64 2d 6e 61 6d 65 73 29 29 0a 3b 3b 20 20 20 20 ters-number-field-names)).;;....
3a2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 43 6f ............................("Co
3a300 6d 70 61 72 65 20 74 6f 3a 20 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mpare.to:.".;;..................
3a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 ...............(:number...nil)))
3a340 29 0a 3b 3b 0a 3b 3b 0a 3b 3b 20 4d 61 6b 69 6e 67 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 ).;;.;;.;;.Making.a.filter.from.
3a360 61 20 66 61 63 74 6f 72 79 20 69 73 20 65 61 73 79 2e 0a 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 66 a.factory.is.easy..;;.;;.(emms-f
3a380 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 47 65 6e 72 65 22 20 22 4d 79 20 47 ilters-make-filter."Genre"."My.G
3a3a0 65 6e 72 65 20 66 69 6c 74 65 72 22 20 22 53 6f 6d 65 76 61 6c 75 65 22 29 0a 3b 3b 0a 3b 3b 20 enre.filter"."Somevalue").;;.;;.
3a3c0 4f 72 20 6d 61 6b 65 20 61 20 6c 6f 74 20 6f 66 20 66 69 6c 74 65 72 73 20 61 74 20 6f 6e 63 65 Or.make.a.lot.of.filters.at.once
3a3e0 2e 0a 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 ..;;.;;.(emms-filters-make-filte
3a400 72 73 20 27 28 28 22 47 65 6e 72 65 22 20 22 57 61 6c 74 7a 22 20 20 20 20 20 20 22 77 61 6c 74 rs.'(("Genre"."Waltz"......"walt
3a420 7a 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 47 65 6e z").;;.....................("Gen
3a440 72 65 22 20 22 53 61 6c 73 61 22 20 20 20 20 20 20 22 73 61 6c 73 61 22 29 0a 3b 3b 20 20 20 20 re"."Salsa"......"salsa").;;....
3a460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 42 6c 75 65 73 .................("Genre"."Blues
3a480 22 20 20 20 20 20 20 22 62 6c 75 65 73 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "......"blues").;;..............
3a4a0 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4a 61 7a 7a 22 20 20 20 20 20 20 20 22 6a 61 .......("Genre"."Jazz"......."ja
3a4c0 7a 7a 22 29 29 29 0a 3b 3b 0a 3b 3b 20 4f 72 20 6a 75 73 74 20 70 75 73 68 20 61 20 66 69 6c 74 zz"))).;;.;;.Or.just.push.a.filt
3a4e0 65 72 20 6f 6e 74 6f 20 74 68 65 20 73 74 61 63 6b 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 er.onto.the.stack.with.emms-filt
3a500 65 72 73 2d 70 75 73 68 2c 0a 3b 3b 20 73 65 6c 65 63 74 20 27 6e 65 77 20 66 69 6c 74 65 72 27 ers-push,.;;.select.'new.filter'
3a520 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 70 72 6f 6d 70 74 73 2e 0a 0a 3b 3b 3b 20 46 61 .and.follow.the.prompts...;;;.Fa
3a540 63 74 6f 72 79 20 50 72 6f 6d 70 74 73 2e 0a 3b 3b 3b 20 49 6e 74 65 72 61 63 74 69 76 65 20 66 ctory.Prompts..;;;.Interactive.f
3a560 61 63 74 6f 72 79 20 70 72 6f 6d 70 74 69 6e 67 20 66 6f 72 20 66 69 6c 74 65 72 20 62 75 69 6c actory.prompting.for.filter.buil
3a580 64 69 6e 67 2e 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ding..;;.-----------------------
3a5a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3a5c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 52 65 67 69 73 74 65 72 69 6e 67 20 61 20 66 61 ------------.;;.Registering.a.fa
3a5e0 63 74 6f 72 79 20 61 73 73 6f 63 69 61 74 65 73 20 61 20 6e 61 6d 65 2c 20 61 20 66 75 6e 63 74 ctory.associates.a.name,.a.funct
3a600 69 6f 6e 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 0a 3b 3b 20 70 72 6f 6d 70 74 20 64 65 66 69 ion.and.a.list.of.;;.prompt.defi
3a620 6e 69 74 69 6f 6e 73 20 73 6f 20 74 68 61 74 20 77 65 20 6d 61 79 20 63 72 65 61 74 65 20 66 69 nitions.so.that.we.may.create.fi
3a640 6c 74 65 72 73 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 62 79 20 6e 61 6d 65 2e 0a 3b 3b 0a lters.interactively.by.name..;;.
3a660 3b 3b 20 54 68 65 20 66 61 63 74 6f 72 79 20 70 72 6f 6d 70 74 20 64 61 74 61 20 69 73 20 75 73 ;;.The.factory.prompt.data.is.us
3a680 65 64 20 74 6f 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 20 6e 65 77 20 66 ed.to.interactively.create.new.f
3a6a0 69 6c 74 65 72 73 2e 0a 3b 3b 20 41 20 70 72 6f 6d 70 74 20 69 73 20 20 28 70 72 6f 6d 70 74 20 ilters..;;.A.prompt.is..(prompt.
3a6c0 28 74 79 70 65 20 2e 20 73 65 6c 65 63 74 2d 6c 69 73 74 29 29 20 69 66 20 74 68 65 72 65 20 69 (type...select-list)).if.there.i
3a6e0 73 20 6e 6f 0a 3b 3b 20 73 65 6c 65 63 74 20 6c 69 73 74 20 77 65 20 72 65 61 64 20 61 20 73 74 s.no.;;.select.list.we.read.a.st
3a700 72 69 6e 67 20 61 6e 64 20 63 6f 65 72 63 65 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 74 68 65 ring.and.coerce.the.value.to.the
3a720 20 63 6f 72 72 65 63 74 0a 3b 3b 20 74 79 70 65 20 61 73 20 6e 65 65 64 65 64 2e 20 20 3a 6e 75 .correct.;;.type.as.needed...:nu
3a740 6d 62 65 72 2c 20 3a 73 74 72 69 6e 67 2c 20 3a 6c 69 73 74 20 3a 73 79 6d 62 6f 6c 20 3a 66 75 mber,.:string,.:list.:symbol.:fu
3a760 6e 63 74 69 6f 6e 0a 3b 3b 20 61 72 65 20 74 68 65 20 63 6f 65 72 63 69 6f 6e 20 74 79 70 65 20 nction.;;.are.the.coercion.type.
3a780 63 68 6f 69 63 65 73 2e 0a 3b 3b 0a 3b 3b 20 48 65 72 65 20 69 73 20 61 20 73 69 6d 70 6c 65 20 choices..;;.;;.Here.is.a.simple.
3a7a0 66 61 63 74 6f 72 79 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 47 65 6e factory.registration.for.the.Gen
3a7c0 72 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 66 75 6e 63 74 69 6f 6e 2e 0a 3b 3b 20 57 re.filter.factory.function..;;.W
3a7e0 68 69 63 68 20 74 61 6b 65 73 20 61 20 73 69 6e 67 6c 65 20 73 74 72 69 6e 67 20 70 61 72 61 6d hich.takes.a.single.string.param
3a800 65 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 eter..;;.;;.(emms-filters-regist
3a820 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 47 65 6e 72 65 22 0a 3b 3b 20 20 20 20 er-filter-factory."Genre".;;....
3a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 66 ..........................emms-f
3a860 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 67 65 6e 72 65 0a 3b 3b 20 20 20 20 20 ilters-make-filter-genre.;;.....
3a880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 47 65 6e .........................'(("Gen
3a8a0 72 65 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 3b 3b 0a 3b 3b 20 50 re:.".(:string...nil)))).;;.;;.P
3a8c0 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 20 27 28 28 70 72 arameters.are.of.the.form:.'((pr
3a8e0 6f 6d 70 74 20 28 74 79 70 65 20 2e 20 73 65 6c 65 63 74 2d 6c 69 73 74 29 29 20 2e 2e 2e 20 29 ompt.(type...select-list)).....)
3a900 0a 3b 3b 0a 3b 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 6d 70 74 20 77 69 6c 6c .;;.;;.The.following.prompt.will
3a920 20 63 6f 65 72 63 65 20 74 68 65 20 76 61 6c 75 65 20 69 74 20 72 65 63 65 69 76 65 73 20 69 6e .coerce.the.value.it.receives.in
3a940 74 6f 20 61 20 6e 75 6d 62 65 72 2e 0a 3b 3b 0a 3b 3b 20 27 28 28 22 44 61 79 73 3a 20 22 20 28 to.a.number..;;.;;.'(("Days:.".(
3a960 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 0a 3b 3b 0a 3b 3b 20 54 68 65 20 63 6f 6d 70 61 :number...nil))).;;.;;.The.compa
3a980 72 65 20 66 69 65 6c 64 20 66 61 63 74 6f 72 79 20 74 61 6b 65 73 20 61 20 63 6f 6d 70 61 72 65 re.field.factory.takes.a.compare
3a9a0 20 66 75 6e 63 74 69 6f 6e 2c 0a 3b 3b 20 61 6e 20 3a 69 6e 66 6f 2d 66 69 65 6c 64 20 73 70 65 .function,.;;.an.:info-field.spe
3a9c0 63 69 66 69 65 72 20 61 6e 64 20 61 20 73 74 72 69 6e 67 20 74 6f 20 63 6f 6d 70 61 72 65 2e 0a cifier.and.a.string.to.compare..
3a9e0 3b 3b 20 4e 6f 74 65 20 74 68 65 20 75 73 65 20 6f 66 20 60 20 61 6e 64 20 2c 20 69 6e 20 6f 72 ;;.Note.the.use.of.`.and.,.in.or
3aa00 64 65 72 20 74 6f 20 72 65 73 6f 6c 76 65 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6c 69 73 der.to.resolve.the.selection.lis
3aa20 74 73 20 68 65 72 65 2e 0a 3b 3b 20 49 74 20 75 73 65 73 20 74 68 65 20 63 6f 6e 76 65 6e 69 65 ts.here..;;.It.uses.the.convenie
3aa40 6e 63 65 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 68 6f 6c 64 20 74 68 65 20 63 6f 6d nce.variables.which.hold.the.com
3aa60 70 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 0a 3b 3b 20 73 74 72 69 6e 67 20 66 69 65 pare.functions.and.;;.string.fie
3aa80 6c 64 20 6e 61 6d 65 73 2e 0a 3b 3b 0a 3b 3b 20 60 28 28 22 43 6f 6d 70 61 72 65 20 46 75 6e 63 ld.names..;;.;;.`(("Compare.Func
3aaa0 74 69 6f 6e 3a 22 0a 3b 3b 20 20 20 20 28 3a 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 65 6d 6d 73 2d tion:".;;....(:function...,emms-
3aac0 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 63 6f 6d 70 61 72 65 2d 66 75 6e 63 74 69 6f 6e 73 filters-string-compare-functions
3aae0 29 29 0a 3b 3b 20 20 20 28 22 46 69 65 6c 64 20 6e 61 6d 65 3a 22 0a 3b 3b 20 20 20 20 28 3a 73 )).;;...("Field.name:".;;....(:s
3ab00 79 6d 62 6f 6c 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 66 69 65 ymbol...,emms-filters-string-fie
3ab20 6c 64 2d 6e 61 6d 65 73 29 29 0a 3b 3b 20 20 20 28 22 43 6f 6d 70 61 72 65 20 74 6f 3a 22 0a 3b ld-names)).;;...("Compare.to:".;
3ab40 3b 20 20 20 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 3b 3b 0a 3b 3b 0a 0a 3b 3b 20 ;....(:string...nil)));;.;;..;;.
3ab60 54 68 65 20 46 69 6c 74 65 72 20 73 74 61 63 6b 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d The.Filter.stack.;;.------------
3ab80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3aba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 68 65 20 66 -----------------------.;;.The.f
3abc0 69 6c 74 65 72 20 73 74 61 63 6b 20 62 75 69 6c 64 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 ilter.stack.builds.more.complex.
3abe0 66 69 6c 74 65 72 73 20 61 73 20 79 6f 75 20 70 75 73 68 20 66 69 6c 74 65 72 73 20 74 6f 20 69 filters.as.you.push.filters.to.i
3ac00 74 2e 0a 3b 3b 20 41 64 64 69 6e 67 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 6f 72 20 72 65 t..;;.Adding.to.the.filter.or.re
3ac20 70 6c 61 63 69 6e 67 20 69 74 20 77 69 74 68 20 61 6e 6f 74 68 65 72 20 70 75 73 68 20 63 6f 6e placing.it.with.another.push.con
3ac40 74 69 6e 75 65 73 20 74 6f 20 61 64 64 20 66 69 6c 74 65 72 73 0a 3b 3b 20 74 6f 20 74 68 65 20 tinues.to.add.filters.;;.to.the.
3ac60 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 20 54 6f 20 72 65 74 75 72 6e 20 74 6f 20 74 68 65 20 70 filter.stack..To.return.to.the.p
3ac80 72 65 76 69 6f 75 73 20 66 69 6c 74 65 72 20 73 69 6d 70 6c 79 20 70 6f 70 20 74 68 65 20 73 74 revious.filter.simply.pop.the.st
3aca0 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 61 20 66 69 6c 74 65 72 2c 20 65 6d 6d 73 ack..;;.;;.To.use.a.filter,.emms
3acc0 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 20 69 74 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 -filters-push.it.to.create.a.new
3ace0 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b .current.filter.on.the.stack..;;
3ad00 20 49 74 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 6f 6e .It.will.become.a.meta-filter.on
3ad20 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 0a 3b 3b 20 61 6e 64 20 74 68 65 20 63 75 72 .the.filter.stack.;;.and.the.cur
3ad40 72 65 6e 74 20 61 63 74 69 76 65 20 66 69 6c 74 65 72 20 77 69 6c 6c 20 62 65 20 61 20 6d 75 6c rent.active.filter.will.be.a.mul
3ad60 74 69 2d 66 69 6c 74 65 72 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 2e 0a 3b 3b 0a 3b 3b 20 54 ti-filter.version.of.it..;;.;;.T
3ad80 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 77 6f 72 6b 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 he.filter.ring.works.independent
3ada0 6c 79 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 20 45 61 63 68 20 72 65 2d ly.of.the.filter.stack..Each.re-
3adc0 66 69 6c 74 65 72 69 6e 67 20 6f 66 0a 3b 3b 20 74 72 61 63 6b 73 20 75 73 65 73 20 74 68 65 20 filtering.of.;;.tracks.uses.the.
3ade0 63 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 61 6e 64 20 74 68 65 20 63 75 72 72 current.ring.filter.and.the.curr
3ae00 65 6e 74 20 66 69 6c 74 65 72 20 74 6f 67 65 74 68 65 72 2e 0a 3b 3b 0a 3b 3b 20 41 20 66 69 6c ent.filter.together..;;.;;.A.fil
3ae20 74 65 72 20 63 61 6e 20 62 65 20 27 6b 65 70 74 27 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 ter.can.be.'kept'..The.function.
3ae40 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b 65 65 70 20 77 69 6c 6c 20 63 72 65 61 74 65 20 61 'emms-filters-keep.will.create.a
3ae60 6e 64 20 72 65 67 69 73 74 65 72 0a 3b 3b 20 61 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6f 66 nd.register.;;.a.multi-filter.of
3ae80 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 2c 20 61 64 64 69 6e 67 20 69 74 20 74 .the.current.filter,.adding.it.t
3aea0 6f 20 74 68 65 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6d 65 6e 75 2e 0a 3b 3b 20 54 68 69 73 o.the.multi-filter.menu..;;.This
3aec0 20 6f 6e 6c 79 20 6c 61 73 74 73 20 75 6e 74 69 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d .only.lasts.until.the.current.Em
3aee0 61 63 73 20 73 65 73 73 69 6f 6e 20 65 6e 64 73 2e 0a 3b 3b 20 49 66 20 65 6d 6d 73 2d 66 69 6c acs.session.ends..;;.If.emms-fil
3af00 74 65 72 73 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c 65 20 69 73 20 73 ters-multi-filter-save-file.is.s
3af20 65 74 2c 20 61 20 75 73 61 62 6c 65 20 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 et,.a.usable.filter.definition.w
3af40 69 6c 6c 20 62 65 0a 3b 3b 20 61 70 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20 66 69 6c 65 2e 0a ill.be.;;.appended.to.the.file..
3af60 3b 3b 0a 3b 3b 20 4f 74 68 65 72 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 6d 61 6e 69 70 75 6c ;;.;;.Other.commands.for.manipul
3af80 61 74 69 6e 67 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 20 20 20 20 50 75 73 68 2c 20 70 6f 70 ating.the.stack..;;....Push,.pop
3afa0 2c 20 73 71 75 61 73 68 2c 20 63 6c 65 61 72 2c 20 73 77 61 70 2c 20 73 77 61 70 2d 70 6f 70 2c ,.squash,.clear,.swap,.swap-pop,
3afc0 20 73 6d 61 73 68 0a 0a 0a 3b 3b 3b 20 54 68 65 20 53 65 61 72 63 68 20 43 61 63 68 65 20 53 74 .smash...;;;.The.Search.Cache.St
3afe0 61 63 6b 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ack.;;.-------------------------
3b000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 68 65 -------------------------.;;.The
3b020 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 73 69 6d 70 6c 79 20 61 20 73 74 61 63 6b .cache.stack.is.a.simply.a.stack
3b040 20 6f 66 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 73 74 79 6c 65 20 68 61 73 68 20 74 61 62 .of.emms-cache-db.style.hash.tab
3b060 6c 65 73 2e 0a 3b 3b 20 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 61 20 73 75 62 73 65 74 20 6f les..;;.Each.entry.is.a.subset.o
3b080 66 20 74 68 65 20 6d 61 73 74 65 72 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 63 72 65 61 74 f.the.master.emms-cache-db.creat
3b0a0 65 64 20 74 68 72 6f 75 67 68 20 66 69 6c 74 65 72 69 6e 67 2e 0a 3b 3b 20 54 68 65 69 72 20 6e ed.through.filtering..;;.Their.n
3b0c0 61 6d 65 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 ames.are.constructed.from.the.fi
3b0e0 6c 74 65 72 73 20 77 68 69 63 68 20 63 72 65 61 74 65 64 20 74 68 65 6d 2e 0a 3b 3b 0a 3b 3b 20 lters.which.created.them..;;.;;.
3b100 46 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 64 69 73 70 6c 61 79 69 6e 67 20 6f 66 20 74 72 61 63 Filtering.and.displaying.of.trac
3b120 6b 73 20 69 73 20 64 6f 6e 65 20 61 67 61 69 6e 73 74 20 74 68 65 20 74 6f 70 20 63 61 63 68 65 ks.is.done.against.the.top.cache
3b140 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 66 75 6e 63 74 69 6f .on.the.stack..;;.;;.The.functio
3b160 6e 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 20 63 72 65 61 n;.emms-filters-hard-filter.crea
3b180 74 65 73 20 61 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c tes.a.cache.from.the.current.fil
3b1a0 74 65 72 0a 3b 3b 20 61 6e 64 20 63 61 63 68 65 2c 20 61 6e 64 20 70 75 73 68 65 73 20 69 74 20 ter.;;.and.cache,.and.pushes.it.
3b1c0 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 42 79 20 75 73 69 6e 67 20 65 6d 6d to.the.stack..;;.;;.By.using.emm
3b1e0 73 2d 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 s-filters-one-shot,.emms-filters
3b200 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 0a 3b 3b 20 61 6c 73 6f 20 63 72 65 61 74 65 20 63 -quick-one-shot.;;.also.create.c
3b220 61 63 68 65 73 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 20 54 68 65 73 65 20 66 75 6e 63 74 69 aches.on.the.stack..These.functi
3b240 6f 6e 73 20 61 6c 6c 6f 77 20 65 66 66 65 63 74 69 76 65 0a 3b 3b 20 65 6d 75 6c 61 74 69 6f 6e ons.allow.effective.;;.emulation
3b260 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 45 4d 4d 53 2d 42 72 6f 77 73 65 72 20 73 65 .of.the.previous.EMMS-Browser.se
3b280 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 arch.functionalities..;;.;;.The.
3b2a0 75 73 75 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 65 78 69 73 74 20 66 6f 72 20 6d 61 6e 69 70 75 6c usual.commands.exist.for.manipul
3b2c0 61 74 69 6e 67 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 20 20 20 20 50 6f 70 2c 20 73 71 75 61 ating.the.stack..;;....Pop,.squa
3b2e0 73 68 2c 20 63 6c 65 61 72 2c 20 73 77 61 70 2c 20 73 77 61 70 2d 70 6f 70 2c 20 70 75 73 68 2d sh,.clear,.swap,.swap-pop,.push-
3b300 63 61 63 68 65 0a 0a 3b 3b 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 20 74 68 65 72 65 20 69 73 20 cache..;;.Additionally.there.is.
3b320 61 20 73 74 61 73 68 20 6f 70 74 69 6f 6e 2e 20 54 68 69 73 20 70 6f 70 73 20 61 6e 64 20 73 74 a.stash.option..This.pops.and.st
3b340 61 73 68 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 0a 3b 3b 20 63 61 63 68 65 20 74 6f 20 62 65 ashes.the.current.;;.cache.to.be
3b360 20 72 65 74 72 69 65 76 65 64 20 6c 61 74 65 72 2e 20 54 68 65 20 73 74 61 73 68 65 64 20 63 61 .retrieved.later..The.stashed.ca
3b380 63 68 65 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 61 20 73 65 6c 65 63 74 69 6f 6e 0a 3b 3b 20 66 che.will.become.a.selection.;;.f
3b3a0 6f 72 20 74 68 65 20 70 75 73 68 2d 63 61 63 68 65 20 63 6f 6d 6d 61 6e 64 2e 0a 3b 3b 0a 3b 3b or.the.push-cache.command..;;.;;
3b3c0 20 41 20 6f 6e 65 2d 73 68 6f 74 20 66 69 6c 74 65 72 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 .A.one-shot.filter.combined.with
3b3e0 20 61 20 66 61 63 74 6f 72 79 20 6e 61 6d 65 20 69 73 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 .a.factory.name.is.'emms-filters
3b400 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 65 66 66 65 -quick-one-shot..;;.;;.This.effe
3b420 63 74 69 76 65 6c 79 20 65 6d 75 6c 61 74 65 73 20 74 68 65 20 66 6f 72 6d 65 72 20 65 6d 6d 73 ctively.emulates.the.former.emms
3b440 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 62 65 68 61 76 69 6f 72 20 6f 66 0a 3b 3b 20 71 -browser.search.behavior.of.;;.q
3b460 75 69 63 6b 6c 79 20 70 72 6f 6d 70 74 69 6e 67 2c 20 66 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 uickly.prompting,.filtering.and.
3b480 73 61 76 69 6e 67 20 61 20 63 61 63 68 65 20 62 79 20 70 75 73 68 69 6e 67 20 61 20 66 69 6c 74 saving.a.cache.by.pushing.a.filt
3b4a0 65 72 2c 0a 3b 3b 20 68 61 72 64 2d 66 69 6c 74 65 72 20 74 68 65 6e 20 70 6f 70 2e 0a 0a 0a 3b er,.;;.hard-filter.then.pop....;
3b4c0 3b 20 48 6f 77 20 69 74 20 77 6f 72 6b 73 2e 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.How.it.works..;;.-------------
3b4e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3b500 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 6f 20 62 65 67 ----------------------.;;.To.beg
3b520 69 6e 20 73 69 6d 70 6c 79 20 64 6f 20 61 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 in.simply.do.an.emms-filters-pus
3b540 68 2e 20 20 54 68 69 73 20 77 69 6c 6c 20 70 72 65 73 65 6e 74 20 74 68 65 20 66 69 6c 74 65 72 h...This.will.present.the.filter
3b560 20 66 61 63 74 6f 72 79 20 72 69 6e 67 2e 0a 3b 3b 20 43 68 6f 6f 73 65 20 61 20 66 61 63 74 6f .factory.ring..;;.Choose.a.facto
3b580 72 79 2c 20 61 6e 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 69 6e 67 20 66 69 6c 74 65 72 20 6f ry,.an.already.existing.filter.o
3b5a0 72 20 27 4e 65 77 27 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 70 72 6f 6d 70 74 73 2e 0a r.'New'.and.follow.the.prompts..
3b5c0 3b 3b 0a 3b 3b 20 46 69 6c 74 65 72 73 20 77 68 69 63 68 20 61 72 65 20 63 72 65 61 74 65 64 20 ;;.;;.Filters.which.are.created.
3b5e0 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6e 20 62 65 20 6b 65 70 74 20 66 6f 72 20 74 68 interactively.can.be.kept.for.th
3b600 65 20 73 65 73 73 69 6f 6e 0a 3b 3b 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b e.session.;;.with.emms-filters-k
3b620 65 65 70 2e 20 20 4f 6e 65 20 73 68 6f 74 73 2c 20 28 73 65 61 72 63 68 65 73 29 2c 20 61 72 65 eep...One.shots,.(searches),.are
3b640 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6b 65 70 74 20 66 6f 72 20 74 68 65 20 73 65 73 73 .automatically.kept.for.the.sess
3b660 69 6f 6e 2e 0a 3b 3b 20 4b 65 65 70 20 6d 61 79 20 61 6c 73 6f 20 77 72 69 74 65 20 74 68 65 6d ion..;;.Keep.may.also.write.them
3b680 20 74 6f 20 61 20 66 69 6c 65 20 66 6f 72 20 6c 61 74 65 72 20 75 73 65 2e 0a 3b 3b 0a 3b 3b 20 .to.a.file.for.later.use..;;.;;.
3b6a0 50 75 73 68 20 61 20 66 69 6c 74 65 72 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 Push.a.filter.to.the.filter.stac
3b6c0 6b 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 20 61 6e 64 20 74 68 65 k.with.emms-filters-push.and.the
3b6e0 6e 0a 3b 3b 20 61 64 64 20 74 6f 20 69 74 20 77 69 74 68 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c n.;;.add.to.it.with.the.emms-fil
3b700 74 65 72 73 2d 6f 72 2c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2c 20 61 6e 64 20 65 ters-or,.emms-filters-and,.and.e
3b720 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 3b mms-filters-and-not.functions..;
3b740 3b 20 45 61 63 68 20 63 68 61 6e 67 65 20 72 65 73 75 6c 74 73 20 69 6e 20 6e 65 77 20 66 69 6c ;.Each.change.results.in.new.fil
3b760 74 65 72 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 55 73 65 20 65 6d 6d 73 ter.on.the.stack..;;.;;.Use.emms
3b780 2d 66 69 6c 74 65 72 73 2d 6f 72 20 74 6f 20 61 64 64 20 61 6e 6f 74 68 65 72 20 66 69 6c 74 65 -filters-or.to.add.another.filte
3b7a0 72 20 61 6e 64 20 63 68 6f 6f 73 65 20 27 6e 65 77 20 66 69 6c 74 65 72 27 20 74 6f 0a 3b 3b 20 r.and.choose.'new.filter'.to.;;.
3b7c0 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 20 61 6e 64 20 61 64 64 20 61 20 66 interactively.create.and.add.a.f
3b7e0 69 6c 74 65 72 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 2e 0a 3b 3b 0a ilter.to.the.current.filter..;;.
3b800 3b 3b 20 41 64 64 20 69 6e 20 61 6e 20 65 78 74 72 61 20 6c 61 79 65 72 20 6f 66 20 71 75 69 63 ;;.Add.in.an.extra.layer.of.quic
3b820 6b 20 73 77 69 74 63 68 20 66 69 6c 74 65 72 69 6e 67 20 77 69 74 68 20 6e 65 78 74 20 61 6e 64 k.switch.filtering.with.next.and
3b840 20 70 72 65 76 69 6f 75 73 0a 3b 3b 20 66 69 6c 74 65 72 2d 72 69 6e 67 20 66 69 6c 74 65 72 73 .previous.;;.filter-ring.filters
3b860 2e 20 20 54 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 ...The.filter.ring.filters.can.b
3b880 65 20 61 63 63 65 73 73 65 64 20 77 69 74 68 0a 3b 3b 20 3c 20 61 6e 64 20 3e 2e 0a 3b 3b 0a 3b e.accessed.with.;;.<.and.>..;;.;
3b8a0 3b 20 59 6f 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 6b 65 65 70 20 79 6f 75 72 20 72 65 73 75 ;.You.may.want.to.keep.your.resu
3b8c0 6c 74 73 20 66 6f 72 20 61 20 77 68 69 6c 65 2c 20 6f 72 20 79 6f 75 20 6d 61 79 0a 3b 3b 20 77 lts.for.a.while,.or.you.may.;;.w
3b8e0 69 73 68 20 74 6f 20 73 74 61 72 74 20 77 69 74 68 20 61 20 63 6c 65 61 72 20 73 65 61 72 63 68 ish.to.start.with.a.clear.search
3b900 20 66 6f 72 20 61 20 6e 61 6d 65 2c 20 65 69 74 68 65 72 20 77 61 79 2c 0a 3b 3b 20 61 20 68 61 .for.a.name,.either.way,.;;.a.ha
3b920 72 64 2d 66 69 6c 74 65 72 20 77 69 6c 6c 20 70 75 73 68 20 61 20 63 61 63 68 65 2d 64 62 20 6f rd-filter.will.push.a.cache-db.o
3b940 6e 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 53 75 62 73 65 nto.the.cache.stack..;;.;;.Subse
3b960 71 75 65 6e 74 20 66 69 6c 74 65 72 69 6e 67 20 63 6f 6e 74 69 6e 75 65 73 20 77 69 74 68 20 74 quent.filtering.continues.with.t
3b980 68 69 73 20 6e 65 77 20 44 42 20 63 61 63 68 65 2e 20 41 20 63 61 63 68 65 20 63 61 6e 20 61 6c his.new.DB.cache..A.cache.can.al
3b9a0 73 6f 0a 3b 3b 20 62 65 20 70 75 73 68 65 64 20 74 6f 20 74 68 65 20 73 74 61 63 6b 20 77 69 74 so.;;.be.pushed.to.the.stack.wit
3b9c0 68 20 61 20 6f 6e 65 2d 73 68 6f 74 20 66 75 6e 63 74 69 6f 6e 2e 20 4f 6e 65 20 73 68 6f 74 73 h.a.one-shot.function..One.shots
3b9e0 0a 3b 3b 20 6d 61 6b 65 2c 20 75 73 65 2c 20 63 61 63 68 65 2c 20 61 6e 64 20 74 68 65 6e 20 70 .;;.make,.use,.cache,.and.then.p
3ba00 6f 70 20 61 20 66 69 6c 74 65 72 2c 20 6c 65 61 76 69 6e 67 20 61 20 6e 65 77 20 63 61 63 68 65 op.a.filter,.leaving.a.new.cache
3ba20 20 61 6e 64 20 74 68 65 20 66 69 6c 74 65 72 0a 3b 3b 20 73 74 61 63 6b 20 61 73 20 69 74 20 77 .and.the.filter.;;.stack.as.it.w
3ba40 61 73 2e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 66 61 63 74 6f 72 79 20 66 as..;;.;;.Create.a.new.factory.f
3ba60 75 6e 63 74 69 6f 6e 2c 20 72 65 67 69 73 74 65 72 20 69 74 20 69 6e 0a 3b 3b 20 65 6d 6d 73 2d unction,.register.it.in.;;.emms-
3ba80 66 69 6c 74 65 72 73 2d 66 61 63 74 6f 72 69 65 73 20 61 6c 6f 6e 67 20 77 69 74 68 20 69 74 73 filters-factories.along.with.its
3baa0 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 70 72 6f 6d 70 74 73 2e 0a 3b 3b 20 46 72 6f 6d .parameters.and.prompts..;;.From
3bac0 20 74 68 69 73 20 70 6f 69 6e 74 20 6f 6e 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 63 72 .this.point.on.filters.can.be.cr
3bae0 65 61 74 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 62 79 20 73 65 6c 65 63 74 69 6e 67 eated.interactively.by.selecting
3bb00 0a 3b 3b 20 74 6f 20 70 75 73 68 20 61 20 6e 65 77 20 66 69 6c 74 65 72 2c 20 61 6e 64 20 63 68 .;;.to.push.a.new.filter,.and.ch
3bb20 6f 6f 73 69 6e 67 20 74 68 65 20 6e 65 77 20 66 61 63 74 6f 72 79 2e 0a 3b 3b 0a 3b 3b 20 49 6e oosing.the.new.factory..;;.;;.In
3bb40 20 63 6f 64 65 20 75 73 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 .code.use.emms-filters-make-filt
3bb60 65 72 20 6f 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 20 er.or.emms-filters-make-filters.
3bb80 74 6f 20 75 73 65 20 74 68 65 20 66 61 63 74 6f 72 79 20 62 79 20 6e 61 6d 65 2e 0a 0a 3b 3b 20 to.use.the.factory.by.name...;;.
3bba0 46 69 6c 74 65 72 20 73 74 61 63 6b 20 69 6e 74 65 72 61 63 74 69 6f 6e 0a 3b 3b 20 2d 2d 2d 2d Filter.stack.interaction.;;.----
3bbc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3bbe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
3bc00 3b 3b 20 54 6f 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 20 61 20 66 69 6c ;;.To.interactively.create.a.fil
3bc20 74 65 72 2c 20 73 74 61 72 74 20 77 69 74 68 20 61 20 70 75 73 68 2e 0a 3b 3b 20 54 68 65 20 66 ter,.start.with.a.push..;;.The.f
3bc40 69 6c 74 65 72 20 73 74 61 63 6b 20 69 74 73 65 6c 66 20 69 73 20 74 68 65 20 69 6e 74 65 72 61 ilter.stack.itself.is.the.intera
3bc60 63 74 69 76 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 66 6f 72 20 6d 75 6c 74 69 2d 66 ctive.filter.factory.for.multi-f
3bc80 69 6c 74 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 43 68 6f 6f 73 65 20 61 20 66 61 63 74 6f 72 79 2c 20 ilters..;;.;;.Choose.a.factory,.
3bca0 74 68 65 6e 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 74 65 72 20 6f 72 20 27 6e 65 77 20 then.an.existing.filter.or.'new.
3bcc0 66 69 6c 74 65 72 27 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 70 72 6f 6d 70 74 73 2e 0a filter'.and.follow.the.prompts..
3bce0 3b 3b 0a 3b 3b 20 44 6f 20 61 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 20 74 6f 20 61 ;;.;;.Do.an.emms-filters-or.to.a
3bd00 64 64 20 61 6e 6f 74 68 65 72 20 70 6f 73 73 69 62 6c 65 20 6d 61 74 63 68 20 6f 72 20 65 6d 6d dd.another.possible.match.or.emm
3bd20 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 20 6f 72 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 s-filters-and.or.;;.emms-filters
3bd40 2d 61 6e 64 2d 6e 6f 74 20 74 6f 20 61 64 64 20 61 20 72 65 73 74 72 69 63 74 69 6f 6e 2e 20 42 -and-not.to.add.a.restriction..B
3bd60 75 69 6c 64 20 74 68 65 20 66 69 6c 74 65 72 20 68 6f 77 20 79 6f 75 20 6c 69 6b 65 2e 0a 3b 3b uild.the.filter.how.you.like..;;
3bd80 0a 3b 3b 20 57 68 65 6e 20 61 20 6e 65 77 20 66 69 6c 74 65 72 20 69 73 20 70 75 73 68 65 64 2c .;;.When.a.new.filter.is.pushed,
3bda0 20 69 74 20 74 75 72 6e 73 20 69 6e 74 6f 20 61 20 6d 65 74 61 20 66 69 6c 74 65 72 0a 3b 3b 20 .it.turns.into.a.meta.filter.;;.
3bdc0 61 6e 64 20 69 73 20 70 75 73 68 65 64 20 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 and.is.pushed.on.the.filter.stac
3bde0 6b 2e 20 41 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6d 61 64 65 20 66 72 6f k..A.filter.function.is.made.fro
3be00 6d 0a 3b 3b 20 74 68 65 20 65 6e 74 69 72 65 20 73 74 61 63 6b 27 73 20 6d 75 6c 74 69 2d 66 69 m.;;.the.entire.stack's.multi-fi
3be20 6c 74 65 72 20 61 6e 64 20 73 65 74 20 74 6f 20 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 lter.and.set.to.be.the.current.f
3be40 69 6c 74 65 72 2c 0a 3b 3b 20 61 6e 64 20 74 68 65 20 62 72 6f 77 73 65 72 20 69 73 20 61 73 6b ilter,.;;.and.the.browser.is.ask
3be60 65 64 20 74 6f 20 72 65 2d 72 65 6e 64 65 72 20 74 68 65 20 72 65 73 75 6c 74 73 2e 0a 3b 3b 0a ed.to.re-render.the.results..;;.
3be80 3b 3b 20 41 6e 79 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20 73 74 61 63 6b 20 63 61 75 73 65 ;;.Any.change.to.the.stack.cause
3bea0 73 20 61 20 72 65 2d 72 65 6e 64 65 72 20 77 69 74 68 20 74 68 65 20 6e 65 77 20 63 75 72 72 65 s.a.re-render.with.the.new.curre
3bec0 6e 74 20 66 69 6c 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 55 73 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 nt.filter..;;.;;.Use.emms-filter
3bee0 73 2d 73 74 61 74 75 73 20 6f 72 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 2d 68 79 64 72 s-status.or.the.emms-filter-hydr
3bf00 61 20 74 6f 20 73 65 65 20 74 68 65 20 73 74 61 63 6b 73 20 61 6e 64 0a 3b 3b 20 63 75 72 72 65 a.to.see.the.stacks.and.;;.curre
3bf20 6e 74 20 66 69 6c 74 65 72 73 2e 0a 0a 3b 3b 20 4d 61 6b 69 6e 67 20 46 69 6c 74 65 72 73 20 66 nt.filters...;;.Making.Filters.f
3bf40 72 6f 6d 20 66 61 63 74 6f 72 69 65 73 2c 20 69 6e 20 63 6f 64 65 2e 0a 3b 3b 20 2d 2d 2d 2d 2d rom.factories,.in.code..;;.-----
3bf60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
3bf80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b ------------------------------.;
3bfa0 3b 20 46 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 69 6e 63 6c 75 64 65 20 74 68 65 20 66 ;.Filter.factories.include.the.f
3bfc0 6f 6c 6c 6f 77 69 6e 67 2e 20 4d 6f 73 74 20 63 6f 6d 6d 6f 6e 20 66 69 6c 74 65 72 73 20 63 61 ollowing..Most.common.filters.ca
3bfe0 6e 20 62 65 0a 3b 3b 20 65 61 73 69 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 n.be.;;.easily.constructed.from.
3c000 74 68 65 73 65 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 66 these..The.number.of.available.f
3c020 69 6c 74 65 72 73 20 69 73 20 74 6f 6f 0a 3b 3b 20 6e 75 6d 65 72 6f 75 73 20 74 6f 20 6c 69 73 ilters.is.too.;;.numerous.to.lis
3c040 74 2e 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 61 20 66 69 6c 74 65 72 20 61 6c 72 65 61 64 t..For.instance,.a.filter.alread
3c060 79 20 65 78 69 73 74 73 20 66 6f 72 20 65 76 65 72 79 0a 3b 3b 20 74 72 61 63 6b 20 74 79 70 65 y.exists.for.every.;;.track.type
3c080 20 61 6e 64 20 74 68 65 72 65 20 6d 61 6e 79 20 63 6f 6d 6d 6f 6e 20 67 65 6e 72 65 73 20 61 6e .and.there.many.common.genres.an
3c0a0 64 20 79 65 61 72 20 72 61 6e 67 65 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 46 69 6c 74 d.year.range.filters..;;.;;.Filt
3c0c0 65 72 20 66 61 63 74 6f 72 69 65 73 20 6c 69 6b 65 20 61 72 74 69 73 74 2c 20 61 6c 62 75 6d 20 er.factories.like.artist,.album.
3c0e0 61 72 74 69 73 74 2c 20 63 6f 6d 70 6f 73 65 72 2c 20 4e 61 6d 65 73 2c 20 65 74 63 2e 0a 3b 3b artist,.composer,.Names,.etc..;;
3c100 20 61 72 65 20 61 6c 6c 20 6a 75 73 74 20 73 70 65 63 69 61 6c 69 7a 65 64 20 66 69 65 6c 64 20 .are.all.just.specialized.field.
3c120 63 6f 6d 70 61 72 65 20 6f 72 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 66 61 63 74 6f 72 69 compare.or.fields.search.factori
3c140 65 73 2e 0a 3b 3b 0a 3b 3b 20 46 61 63 74 6f 72 69 65 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d es..;;.;;.Factories.;;.---------
3c160 2d 0a 3b 3b 20 41 6c 62 75 6d 0a 3b 3b 20 41 6c 62 75 6d 2d 61 72 74 69 73 74 0a 3b 3b 20 41 6c -.;;.Album.;;.Album-artist.;;.Al
3c180 6c 20 74 65 78 74 20 66 69 65 6c 64 73 0a 3b 3b 20 41 72 74 69 73 74 0a 3b 3b 20 41 72 74 69 73 l.text.fields.;;.Artist.;;.Artis
3c1a0 74 73 0a 3b 3b 20 41 72 74 69 73 74 73 20 61 6e 64 20 63 6f 6d 70 6f 73 65 72 0a 3b 3b 20 43 6f ts.;;.Artists.and.composer.;;.Co
3c1c0 6d 70 6f 73 65 72 0a 3b 3b 20 44 69 72 65 63 74 6f 72 79 0a 3b 3b 20 44 75 72 61 74 69 6f 6e 20 mposer.;;.Directory.;;.Duration.
3c1e0 6c 65 73 73 0a 3b 3b 20 44 75 72 61 74 69 6f 6e 20 6d 6f 72 65 0a 3b 3b 20 46 69 65 6c 64 73 20 less.;;.Duration.more.;;.Fields.
3c200 73 65 61 72 63 68 0a 3b 3b 20 47 65 6e 72 65 0a 3b 3b 20 47 72 65 61 74 65 72 20 74 68 61 6e 20 search.;;.Genre.;;.Greater.than.
3c220 59 65 61 72 0a 3b 3b 20 4c 65 73 73 20 74 68 61 6e 20 59 65 61 72 0a 3b 3b 20 4d 75 6c 74 69 2d Year.;;.Less.than.Year.;;.Multi-
3c240 66 69 6c 74 65 72 0a 3b 3b 20 4e 61 6d 65 73 0a 3b 3b 20 4e 61 6d 65 73 20 61 6e 64 20 74 69 74 filter.;;.Names.;;.Names.and.tit
3c260 6c 65 73 0a 3b 3b 20 4e 6f 74 20 70 6c 61 79 65 64 20 73 69 6e 63 65 0a 3b 3b 20 4e 6f 74 65 73 les.;;.Not.played.since.;;.Notes
3c280 0a 3b 3b 20 4e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 0a 3b 3b 20 4f 72 63 68 .;;.Number.field.compare.;;.Orch
3c2a0 65 73 74 72 61 0a 3b 3b 20 50 65 72 66 6f 72 6d 65 72 0a 3b 3b 20 50 6c 61 79 65 64 20 73 69 6e estra.;;.Performer.;;.Played.sin
3c2c0 63 65 0a 3b 3b 20 53 74 72 69 6e 67 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 0a 3b 3b 20 54 69 ce.;;.String.field.compare.;;.Ti
3c2e0 74 6c 65 0a 3b 3b 20 54 69 74 6c 65 73 0a 3b 3b 20 54 72 61 63 6b 20 74 79 70 65 0a 3b 3b 20 59 tle.;;.Titles.;;.Track.type.;;.Y
3c300 65 61 72 20 72 61 6e 67 65 0a 0a 3b 3b 20 46 69 6c 74 65 72 73 20 61 6c 73 6f 20 68 61 76 65 20 ear.range..;;.Filters.also.have.
3c320 6e 61 6d 65 73 2c 20 61 6e 64 20 61 72 65 20 61 64 64 65 64 0a 3b 3b 20 74 6f 20 74 68 65 69 72 names,.and.are.added.;;.to.their
3c340 20 72 65 73 70 65 63 74 69 76 65 20 66 61 63 74 6f 72 79 27 73 20 66 69 6c 74 65 72 20 73 65 6c .respective.factory's.filter.sel
3c360 65 63 74 69 6f 6e 20 6d 65 6e 75 2e 0a 3b 3b 20 68 65 72 65 20 61 72 65 20 73 6f 6d 65 20 65 78 ection.menu..;;.here.are.some.ex
3c380 61 6d 70 6c 65 20 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 73 2e 0a 3b 3b 0a 3b 3b 20 ample.filter.definitions..;;.;;.
3c3a0 3b 3b 20 46 69 6c 74 65 72 73 20 61 72 65 20 65 61 73 69 6c 79 20 64 65 73 63 72 69 62 65 64 20 ;;.Filters.are.easily.described.
3c3c0 61 73 20 64 61 74 61 2e 0a 3b 3b 20 3b 3b 20 20 20 20 20 20 20 20 66 61 63 74 6f 72 79 20 20 20 as.data..;;.;;........factory...
3c3e0 20 20 20 4e 61 6d 65 20 20 20 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 0a 3b 3b 0a 3b 3b 20 28 ...Name........arguments.;;.;;.(
3c400 73 65 74 71 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 0a 3b 3b 20 20 20 20 20 20 20 27 28 28 22 setq.tango-filters.;;.......'(("
3c420 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 30 30 2d 31 39 32 39 22 20 31 39 30 30 20 31 39 32 Year.range"."1900-1929".1900.192
3c440 39 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 32 9).;;.........("Year.range"."192
3c460 39 2d 31 39 33 37 22 20 31 39 32 39 20 31 39 33 37 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 9-1937".1929.1937).;;.........("
3c480 44 69 72 65 63 74 6f 72 79 22 20 22 74 61 6e 67 6f 74 75 6e 65 73 22 20 22 74 61 6e 67 6f 74 75 Directory"."tangotunes"."tangotu
3c4a0 6e 65 73 66 6c 61 63 22 29 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 nesflac").;;.;;.........("Genre"
3c4c0 20 22 56 61 6c 73 22 20 20 20 20 22 76 61 6c 73 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 ."Vals"...."vals").;;.........("
3c4e0 47 65 6e 72 65 22 20 22 54 61 6e 67 6f 22 20 20 20 22 74 61 6e 67 6f 22 29 0a 3b 3b 20 20 20 20 Genre"."Tango"..."tango").;;....
3c500 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4d 69 6c 6f 6e 67 61 22 20 22 6d 69 6c 6f 6e 67 61 .....("Genre"."Milonga"."milonga
3c520 22 29 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 ").;;.;;.........("Multi-filter"
3c540 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 22 31 39 30 30 2d 31 39 33 37 22 0a 3b 3b 20 20 20 20 20 .;;.........."1900-1937".;;.....
3c560 20 20 20 20 20 28 28 22 31 39 30 30 2d 31 39 32 39 22 20 22 31 39 32 39 2d 31 39 33 37 22 29 29 .....(("1900-1929"."1929-1937"))
3c580 29 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a ).;;.;;.........("Multi-filter".
3c5a0 3b 3b 20 20 20 20 20 20 20 20 20 20 22 56 61 6c 73 20 7c 20 6d 69 6c 6f 6e 67 61 22 0a 3b 3b 20 ;;.........."Vals.|.milonga".;;.
3c5c0 20 20 20 20 20 20 20 20 20 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 29 29 0a 3b .........(("Vals"."Milonga"))).;
3c5e0 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 3b 3b 20 ;.;;.........("Multi-filter".;;.
3c600 20 20 20 20 20 20 20 20 20 22 56 61 6c 73 20 31 39 30 30 2d 31 39 32 39 22 0a 3b 3b 20 20 20 20 ........."Vals.1900-1929".;;....
3c620 20 20 20 20 20 20 28 28 22 56 61 6c 73 22 29 20 28 22 31 39 30 30 2d 31 39 32 39 22 29 29 29 0a ......(("Vals").("1900-1929"))).
3c640 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 3b 3b ;;.;;.........("Multi-filter".;;
3c660 20 20 20 20 20 20 20 20 20 20 22 4e 6f 74 20 76 61 6c 73 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 .........."Not.vals".;;.........
3c680 20 28 28 3a 6e 6f 74 20 22 56 61 6c 73 22 29 29 29 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 .((:not."Vals"))).;;.;;.........
3c6a0 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 22 56 61 6c ("Multi-filter".;;.........."Val
3c6c0 73 20 6f 72 20 6d 69 6c 6f 6e 67 61 20 31 39 30 30 2d 31 39 33 37 22 0a 3b 3b 20 20 20 20 20 20 s.or.milonga.1900-1937".;;......
3c6e0 20 20 20 20 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 0a 3b 3b 20 20 20 20 20 20 ....(("Vals"."Milonga").;;......
3c700 20 20 20 20 20 28 22 31 39 30 30 2d 31 39 32 39 22 20 22 31 39 32 39 2d 31 39 33 37 22 29 29 29 .....("1900-1929"."1929-1937")))
3c720 0a 3b 3b 20 20 20 20 20 20 20 20 20 29 29 0a 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 .;;.........)).;;.;;.(emms-filte
3c740 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 29 0a 3b rs-make-filters.tango-filters).;
3c760 3b 0a 3b 3b 20 3b 3b 20 41 64 64 20 6d 79 20 6f 77 6e 20 66 69 6c 74 65 72 20 73 65 6c 65 63 74 ;.;;.;;.Add.my.own.filter.select
3c780 69 6f 6e 20 6d 65 6e 75 20 77 69 74 68 20 74 61 6e 67 6f 20 66 69 6c 74 65 72 73 20 69 6e 20 69 ion.menu.with.tango.filters.in.i
3c7a0 74 2e 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 66 69 6c 74 65 72 2d 6d t..;;.(emms-filters-add-filter-m
3c7c0 65 6e 75 2d 66 72 6f 6d 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 22 54 61 6e 67 6f 22 20 74 61 6e enu-from-filter-list."Tango".tan
3c7e0 67 6f 2d 66 69 6c 74 65 72 73 29 0a 3b 3b 0a 3b 3b 20 54 68 65 20 65 61 73 69 65 73 74 20 77 61 go-filters).;;.;;.The.easiest.wa
3c800 79 20 74 6f 20 6d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 3b 3b 20 28 65 6d 6d y.to.make.a.filter.ring..;;.(emm
3c820 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 27 28 22 54 61 s-filters-make-filter-ring.'("Ta
3c840 6e 67 6f 22 20 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 29 0a 0a 3b 3b 3b 20 43 6f 64 ngo"."Vals"."Milonga"))..;;;.Cod
3c860 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 61 63 68 65 29 0a 28 72 65 71 75 69 e:..(require.'emms-cache).(requi
3c880 72 65 20 27 72 69 6e 67 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 64 65 re.'ring).(require.'cl-lib)..(de
3c8a0 66 76 61 72 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 20 6e 69 6c 0a 20 20 22 fvar..emms-filters-stack.nil..."
3c8c0 41 20 68 69 73 74 6f 72 79 20 6f 66 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 73 2e 20 4f 75 72 20 A.history.of.multi-filters..Our.
3c8e0 77 6f 72 6b 69 6e 67 20 73 74 61 63 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 working.stack.")..(defvar.emms-f
3c900 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 20 27 28 29 0a 20 20 22 54 68 65 20 ilters-search-caches.'()..."The.
3c920 73 74 61 63 6b 20 6f 66 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 20 63 61 63 68 65 73 2e 22 29 stack.of.search.result.caches.")
3c940 0a 0a 28 64 65 66 76 61 72 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 ..(defvar..emms-filters-filter-r
3c960 69 6e 67 20 6e 69 6c 0a 20 20 22 41 20 72 69 6e 67 20 6f 66 20 66 69 6c 74 65 72 20 6e 61 6d 65 ing.nil..."A.ring.of.filter.name
3c980 73 20 66 6f 72 20 71 75 69 63 6b 20 61 63 63 65 73 73 20 77 69 74 68 20 6e 65 78 74 20 61 6e 64 s.for.quick.access.with.next.and
3c9a0 20 70 72 65 76 69 6f 75 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 66 69 6c .previous.")..(defconst.emms-fil
3c9c0 74 65 72 73 2d 6e 6f 2d 66 69 6c 74 65 72 20 6e 69 6c 20 3b 3b 20 27 28 22 6e 6f 20 66 69 6c 74 ters-no-filter.nil.;;.'("no.filt
3c9e0 65 72 22 20 2e 20 6e 69 6c 29 0a 20 20 22 41 20 66 69 6c 74 65 72 20 74 68 61 74 20 74 75 72 6e er"...nil)..."A.filter.that.turn
3ca00 73 20 66 69 6c 74 65 72 69 6e 67 20 6f 66 66 2c 20 61 20 62 65 74 74 65 72 20 69 6e 69 74 69 61 s.filtering.off,.a.better.initia
3ca20 6c 20 76 61 6c 75 65 20 74 68 61 6e 20 6e 69 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d l.value.than.nil.")..(defvar.emm
3ca40 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 20 65 s-filters-current-ring-filter..e
3ca60 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 6f 2d 66 69 6c 74 65 72 0a 20 20 22 54 68 65 20 63 75 72 mms-filters-no-filter..."The.cur
3ca80 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 2c 20 61 20 66 69 6c 74 65 72 20 63 6f 6e 73 2c rent.ring.filter,.a.filter.cons,
3caa0 20 28 6e 61 6d 65 20 2e 20 66 75 6e 63 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d .(name...func).")..(defvar.emms-
3cac0 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 20 27 28 29 0a 20 20 22 filters-filter-factories.'()..."
3cae0 41 6e 20 61 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 66 75 6e 63 74 An.alist.of.filter.factory.funct
3cb00 69 6f 6e 73 20 61 6e 64 20 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 73 2e 22 29 ions.and.their.argument.lists.")
3cb20 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 27 ..(defvar.emms-filters-filters.'
3cb40 28 28 22 6e 6f 20 66 69 6c 74 65 72 22 20 2e 20 6e 69 6c 29 29 0a 20 20 22 41 20 6c 69 73 74 20 (("no.filter"...nil))..."A.list.
3cb60 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 66 69 6c 74 65 72 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 of.available.filters.")..(defvar
3cb80 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 75 74 6f 6d 61 74 69 63 2d 66 69 6c 74 65 72 2d 6e .emms-filters-automatic-filter-n
3cba0 61 6d 65 73 20 74 0a 20 20 22 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 ames.t..."Automatically.generate
3cbc0 20 66 69 6c 74 65 72 20 6e 61 6d 65 73 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67 20 66 69 6c 74 .filter.names.when.creating.filt
3cbe0 65 72 73 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d ers.interactively.")..(defvar.em
3cc00 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 20 65 6d 6d 73 2d 66 ms-filters-current-filter.emms-f
3cc20 69 6c 74 65 72 73 2d 6e 6f 2d 66 69 6c 74 65 72 0a 20 20 22 54 68 65 20 63 75 72 72 65 6e 74 20 ilters-no-filter..."The.current.
3cc40 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 filter.function.")..(defvar.emms
3cc60 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 22 6e 6f -filters-current-filter-name."no
3cc80 20 66 69 6c 74 65 72 22 0a 20 20 22 41 20 6e 61 6d 65 20 73 74 72 69 6e 67 20 6f 66 20 74 68 65 .filter"..."A.name.string.of.the
3cca0 20 66 69 6c 74 65 72 20 66 6f 72 20 65 76 65 72 79 6f 6e 65 20 74 6f 20 75 73 65 2e 22 29 0a 0a .filter.for.everyone.to.use.")..
3ccc0 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 (defvar.emms-filters-filter-menu
3cce0 20 27 28 22 6e 6f 20 66 69 6c 74 65 72 22 20 22 6e 65 77 20 66 69 6c 74 65 72 22 29 0a 20 20 22 .'("no.filter"."new.filter")..."
3cd00 41 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 66 69 6c 74 65 72 73 20 67 72 6f 75 A.list.of.available.filters.grou
3cd20 70 65 64 20 62 79 20 66 61 63 74 6f 72 79 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d ped.by.factory.")..(defgroup.emm
3cd40 73 2d 66 69 6c 74 65 72 73 20 6e 69 6c 0a 20 20 22 2a 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 s-filters.nil..."*The.Emacs.Mult
3cd60 69 6d 65 64 69 61 20 53 79 73 74 65 6d 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 22 0a 20 20 3a imedia.System.filter.system"...:
3cd80 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 22 0a 20 20 3a 67 72 6f 75 70 20 prefix."emms-filters-"...:group.
3cda0 27 6d 75 6c 74 69 6d 65 64 69 61 0a 20 20 3a 67 72 6f 75 70 20 27 61 70 70 6c 69 63 61 74 69 6f 'multimedia...:group.'applicatio
3cdc0 6e 73 29 0a 0a 3b 3b 20 46 6f 72 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c ns)..;;.For.backwards.compatibil
3cde0 69 74 79 20 77 69 74 68 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 0a 3b 3b 20 54 68 69 73 20 69 73 ity.with.emms-browser.;;.This.is
3ce00 20 72 65 61 6c 6c 79 20 6a 75 73 74 20 61 20 6d 69 72 72 6f 72 20 6f 66 20 74 68 65 20 62 72 6f .really.just.a.mirror.of.the.bro
3ce20 77 73 65 72 27 73 20 68 6f 6f 6b 2e 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 66 69 6c wser's.hook..(defcustom.emms-fil
3ce40 74 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 ters-filter-changed-hook.nil..."
3ce60 48 6f 6f 6b 20 74 6f 20 72 75 6e 20 61 66 74 65 72 20 74 68 65 20 66 69 6c 74 65 72 20 68 61 73 Hook.to.run.after.the.filter.has
3ce80 20 63 68 61 6e 67 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 3b 3b 20 45 6d .changed."...:type.'hook)..;;.Em
3cea0 6d 73 2d 66 69 6c 74 65 72 73 20 69 73 20 61 67 6e 6f 73 74 69 63 20 61 62 6f 75 74 20 74 68 65 ms-filters.is.agnostic.about.the
3cec0 20 72 65 6e 64 65 72 65 72 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 73 65 20 61 72 65 20 74 6f 20 62 65 .renderer..;;.;;.These.are.to.be
3cee0 20 73 65 74 20 62 79 20 74 68 65 20 72 65 6e 64 65 72 65 72 65 72 20 73 6f 20 74 68 61 74 20 65 .set.by.the.rendererer.so.that.e
3cf00 6d 6d 73 2d 66 69 6c 74 65 72 73 0a 3b 3b 20 63 61 6e 20 61 73 6b 20 66 6f 72 20 61 20 6e 65 77 mms-filters.;;.can.ask.for.a.new
3cf20 20 72 65 6e 64 65 72 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 73 20 77 68 65 6e 0a 3b 3b 20 6e .render.of.the.results.when.;;.n
3cf40 65 77 20 61 20 6e 65 77 20 66 69 6c 74 65 72 20 68 61 73 20 62 65 65 6e 20 63 72 65 61 74 65 64 ew.a.new.filter.has.been.created
3cf60 2e 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 61 6e 64 ...(defvar.emms-filters-make-and
3cf80 2d 72 65 6e 64 65 72 2d 68 61 73 68 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 54 68 69 73 20 66 75 -render-hash-hook.nil..."This.fu
3cfa0 6e 63 74 69 6f 6e 20 61 70 70 6c 69 65 73 20 74 68 65 20 66 69 6c 74 65 72 73 2c 20 63 72 65 61 nction.applies.the.filters,.crea
3cfc0 74 65 73 20 61 20 68 61 73 68 2c 0a 61 6e 64 20 74 68 65 6e 20 70 6f 70 75 6c 61 74 65 73 20 61 tes.a.hash,.and.then.populates.a
3cfe0 6e 64 20 72 65 6e 64 65 72 73 20 61 20 74 72 65 65 20 6f 66 20 64 61 74 61 2c 0a 46 6f 72 20 74 nd.renders.a.tree.of.data,.For.t
3d000 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 20 74 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 65 he.Emms-browser.this.should.be.e
3d020 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2e 22 29 0a 0a 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 mms-browse-by.")..;;.emms-filter
3d040 73 2d 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 0a 28 64 65 66 76 61 72 20 65 6d 6d s-expand-render-hook.(defvar.emm
3d060 73 2d 66 69 6c 74 65 72 73 2d 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 6e 69 6c s-filters-expand-render-hook.nil
3d080 0a 20 20 22 54 6f 20 62 65 20 73 65 74 20 62 79 20 74 68 65 20 72 65 6e 64 65 72 65 72 20 73 6f ..."To.be.set.by.the.renderer.so
3d0a0 20 74 68 61 74 20 74 68 65 20 72 65 73 75 6c 74 73 20 74 72 65 65 0a 63 61 6e 20 62 65 20 65 78 .that.the.results.tree.can.be.ex
3d0c0 70 61 6e 64 65 64 20 77 68 65 6e 20 61 20 66 69 6c 74 65 72 20 6f 72 20 73 65 61 72 63 68 20 65 panded.when.a.filter.or.search.e
3d0e0 78 69 73 74 73 2c 0a 46 6f 72 20 74 68 65 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 20 74 68 69 73 xists,.For.the.Emms-Browser.this
3d100 20 69 73 20 74 68 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 20 .is.the.emms-browser-expand-all.
3d120 66 75 6e 63 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 function.")..(defvar.emms-filter
3d140 73 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 s-multi-filter-save-file.nil..."
3d160 41 20 66 69 6c 65 20 6e 61 6d 65 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 6b 65 70 74 20 6d 65 A.file.name.to.write.the.kept.me
3d180 74 61 2d 66 69 6c 74 65 72 73 20 66 72 6f 6d 20 74 68 65 20 73 65 73 73 69 6f 6e 20 74 6f 2e 22 ta-filters.from.the.session.to."
3d1a0 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 61 63 68 65 2d 73 74 )..(defvar.emms-filters-cache-st
3d1c0 61 73 68 20 27 28 28 22 45 6d 6d 73 20 44 42 22 20 2e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 ash.'(("Emms.DB"...emms-cache-db
3d1e0 29 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 20 28 6e 61 6d 65 20 2e 20 63 61 63 ))..."A.list.of.cons.(name...cac
3d200 68 65 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 62 72 6f 77 he).")..(defun.emms-filters-brow
3d220 73 65 72 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 20 28 74 72 61 63 6b 29 ser-filter-hook-function.(track)
3d240 0a 20 20 22 41 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 62 72 6f 77 ..."A.hook.function.for.the.brow
3d260 73 65 72 2e 20 46 72 65 65 77 69 6c 6c 20 68 65 72 65 20 66 6f 72 20 54 52 41 43 4b 20 66 69 6c ser..Freewill.here.for.TRACK.fil
3d280 74 65 72 69 6e 67 2e 0a 46 69 72 73 74 20 77 65 20 74 65 73 74 20 74 68 65 20 74 72 61 63 6b 20 tering..First.we.test.the.track.
3d2a0 61 67 61 69 6e 73 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 against.the.current.ring.filter.
3d2c0 69 66 20 77 65 20 68 61 76 65 20 6f 6e 65 2c 0a 74 68 65 6e 20 77 65 20 63 6f 6d 62 69 6e 65 20 if.we.have.one,.then.we.combine.
3d2e0 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 with.the.result.of.the.emms-filt
3d300 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2e 22 0a 20 20 28 61 6e 64 20 28 69 66 20 ers-current-filter."...(and.(if.
3d320 28 63 64 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 (cdr.emms-filters-current-ring-f
3d340 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 64 72 20 ilter)............(funcall.(cdr.
3d360 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 emms-filters-current-ring-filter
3d380 29 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 28 69 66 20 ).track)..........t)........(if.
3d3a0 28 63 64 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 (cdr.emms-filters-current-filter
3d3c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 64 72 20 65 6d 6d 73 2d )............(funcall.(cdr.emms-
3d3e0 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 29 20 74 72 61 63 6b 29 0a 20 filters-current-filter).track)..
3d400 20 20 20 20 20 20 20 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ........t)))..(defun.emms-filter
3d420 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 20 66 s-register-filter.(filter-name.f
3d440 69 6c 74 65 72 29 0a 20 20 22 50 75 74 20 6f 75 72 20 6e 65 77 20 46 49 4c 54 45 52 20 66 75 6e ilter)..."Put.our.new.FILTER.fun
3d460 63 74 69 6f 6e 20 6e 61 6d 65 64 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 69 6e 20 6f 75 72 20 66 ction.named.FILTER-NAME.in.our.f
3d480 69 6c 74 65 72 20 6c 69 73 74 2e 22 0a 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 66 69 6c 74 65 ilter.list."...(push.(cons.filte
3d4a0 72 2d 6e 61 6d 65 20 66 69 6c 74 65 72 29 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 r-name.filter).emms-filters-filt
3d4c0 65 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 ers))..(defun.emms-filters-regis
3d4e0 74 65 72 2d 69 66 2d 6d 69 73 73 69 6e 67 20 28 66 69 6c 74 65 72 29 0a 20 20 22 52 65 67 69 73 ter-if-missing.(filter)..."Regis
3d500 74 65 72 20 61 20 63 6f 6e 73 20 46 49 4c 54 45 52 20 69 66 20 69 74 20 69 73 6e 27 74 20 61 6c ter.a.cons.FILTER.if.it.isn't.al
3d520 72 65 61 64 79 20 69 6e 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 ready.in.the.emms-filters-filter
3d540 73 20 6c 69 73 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 61 73 73 6f 63 20 28 63 61 s.list."...(when.(not.(assoc.(ca
3d560 72 20 66 69 6c 74 65 72 29 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 r.filter).emms-filters-filters))
3d580 0a 20 20 20 20 28 70 75 73 68 20 66 69 6c 74 65 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 .....(push.filter.emms-filters-f
3d5a0 69 6c 74 65 72 73 20 29 29 29 0a 0a 3b 3b 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 ilters.)))..;;.(defun.emms-filte
3d5c0 72 73 2d 61 64 64 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 2d 69 74 65 6d 20 28 66 6f 6c 64 65 72 2d rs-add-filter-menu-item.(folder-
3d5e0 6e 61 6d 65 20 6e 61 6d 65 2d 6c 69 73 74 29 0a 3b 3b 20 20 20 22 41 64 64 20 61 20 6c 69 73 74 name.name-list).;;..."Add.a.list
3d600 20 6f 66 20 4e 41 4d 45 2d 4c 49 53 54 2c 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 .of.NAME-LIST,.a.list.of.strings
3d620 2c 0a 3b 3b 20 61 73 20 61 6e 6f 74 68 65 72 20 46 4f 4c 44 45 52 2d 4e 41 4d 45 20 69 6e 20 74 ,.;;.as.another.FOLDER-NAME.in.t
3d640 68 65 20 66 69 6c 74 65 72 20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e 75 2e 22 0a 3b 3b 20 20 20 he.filter.selection.menu.".;;...
3d660 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 0a 3b (setq.emms-filters-filter-menu.;
3d680 3b 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 66 6f 6c 64 65 72 2d 6e 61 6d ;.........(cons.(list.folder-nam
3d6a0 65 20 6e 61 6d 65 2d 6c 69 73 74 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d e.name-list).;;...............em
3d6c0 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 29 29 29 0a 0a 28 64 65 66 75 ms-filters-filter-menu)))..(defu
3d6e0 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e n.emms-filters-add-to-filter-men
3d700 75 2d 66 72 6f 6d 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 28 66 6f 6c 64 65 72 20 66 69 6c 74 65 u-from-filter-list.(folder.filte
3d720 72 73 29 0a 20 20 22 41 64 64 20 61 20 46 4f 4c 44 45 52 20 61 6e 64 20 46 49 4c 54 45 52 53 20 rs)..."Add.a.FOLDER.and.FILTERS.
3d740 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 65 6c 65 63 74 20 6c 69 73 74 20 6d 65 6e 75 2e 22 to.the.filter.select.list.menu."
3d760 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d ...(emms-filters-add-to-filter-m
3d780 65 6e 75 20 66 6f 6c 64 65 72 20 28 6d 61 70 63 61 72 20 27 63 61 64 72 20 66 69 6c 74 65 72 73 enu.folder.(mapcar.'cadr.filters
3d7a0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d )))..(defun.emms-filters-add-to-
3d7c0 66 69 6c 74 65 72 2d 6d 65 6e 75 20 28 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 66 69 6c 74 65 72 2d filter-menu.(folder-name.filter-
3d7e0 6f 72 2d 6c 69 73 74 29 0a 20 20 22 41 64 64 20 74 6f 20 61 20 46 4f 4c 44 45 52 2d 4e 41 4d 45 or-list)..."Add.to.a.FOLDER-NAME
3d800 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 65 6c 65 63 74 20 6d 65 6e 75 20 63 72 65 61 74 .in.the.filter.select.menu.creat
3d820 69 6e 67 20 69 74 20 61 73 20 6e 65 65 64 65 64 2e 0a 41 64 64 73 20 66 69 6c 74 65 72 20 6e 61 ing.it.as.needed..Adds.filter.na
3d840 6d 65 28 73 29 20 67 69 76 65 6e 20 69 6e 20 46 49 4c 54 45 52 2d 4f 52 2d 4c 49 53 54 20 74 6f me(s).given.in.FILTER-OR-LIST.to
3d860 20 74 68 65 20 46 4f 4c 44 45 52 2d 4e 41 4d 45 0a 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 .the.FOLDER-NAME.of.the.filter.s
3d880 65 6c 65 63 74 20 6d 65 6e 75 20 74 72 65 65 2e 22 0a 20 20 28 69 66 20 28 6c 69 73 74 70 20 66 elect.menu.tree."...(if.(listp.f
3d8a0 69 6c 74 65 72 2d 6f 72 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 ilter-or-list).......(mapcar.(la
3d8c0 6d 62 64 61 20 28 66 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 mbda.(filter).................(e
3d8e0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d mms-filters-add-name-to-filter-m
3d900 65 6e 75 20 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 20 enu.folder-name.filter))........
3d920 20 20 20 20 20 20 20 66 69 6c 74 65 72 2d 6f 72 2d 6c 69 73 74 29 0a 20 20 20 20 28 65 6d 6d 73 .......filter-or-list).....(emms
3d940 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 -filters-add-name-to-filter-menu
3d960 20 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 66 69 6c 74 65 72 2d 6f 72 2d 6c 69 73 74 29 29 29 0a 0a .folder-name.filter-or-list)))..
3d980 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 6e 61 6d 65 2d 74 6f 2d (defun.emms-filters-add-name-to-
3d9a0 66 69 6c 74 65 72 2d 6d 65 6e 75 20 28 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 66 69 6c 74 65 72 2d filter-menu.(folder-name.filter-
3d9c0 6e 61 6d 65 29 0a 20 20 22 41 64 64 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 74 6f 20 6d 65 6e 75 name)..."Add.FILTER-NAME.to.menu
3d9e0 20 74 72 65 65 20 6f 66 20 46 4f 4c 44 45 52 2d 4e 41 4d 45 2e 22 0a 20 20 28 69 66 20 28 61 73 .tree.of.FOLDER-NAME."...(if.(as
3da00 73 6f 63 20 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c soc.folder-name.emms-filters-fil
3da20 74 65 72 2d 6d 65 6e 75 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 66 69 6c 74 65 72 2d 6e 61 6d ter-menu).......(push.filter-nam
3da40 65 20 28 63 61 64 72 20 28 61 73 73 6f 63 20 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d e.(cadr.(assoc.folder-name.emms-
3da60 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 29 29 29 0a 20 20 20 20 28 73 65 74 71 filters-filter-menu))).....(setq
3da80 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 0a 20 20 20 20 20 20 .emms-filters-filter-menu.......
3daa0 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 66 6f 6c 64 65 72 2d 6e 61 6d 65 20 28 6c 69 73 ....(cons.(list.folder-name.(lis
3dac0 74 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.filter-name)).................
3dae0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 29 29 29 29 0a 0a 28 64 emms-filters-filter-menu))))..(d
3db00 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 efun.emms-filters-show-filter-me
3db20 6e 75 20 28 29 0a 20 20 22 53 68 6f 77 20 74 68 65 20 6d 65 6e 75 20 74 72 65 65 20 6f 66 20 66 nu.()..."Show.the.menu.tree.of.f
3db40 69 6c 74 65 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 65 73 73 ilters."...(interactive)...(mess
3db60 61 67 65 20 22 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 age."%s"............(mapconcat..
3db80 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 65 6e 75 29 0a 20 20 20 20 20 20 ...........(lambda.(menu).......
3dba0 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 6d 65 6e 75 29 0a 20 20 20 20 20 20 20 ........(if.(consp.menu)........
3dbc0 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 3a 20 5c 6e 25 73 5c 6e 22 ...........(format."%s.:.\n%s\n"
3dbe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 ...........................(car.
3dc00 6d 65 6e 75 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 menu)...........................
3dc20 28 6d 61 70 63 6f 6e 63 61 74 20 27 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 (mapconcat.'identity............
3dc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 ..........................(cadr.
3dc60 6d 65 6e 75 29 20 22 2c 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 6e menu).",.")).................men
3dc80 75 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c u)).............emms-filters-fil
3dca0 74 65 72 2d 6d 65 6e 75 20 22 5c 6e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 ter-menu."\n")))..(defun.emms-fi
3dcc0 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 28 6c 69 73 74 2d 6f 66 2d lters-make-filter-ring.(list-of-
3dce0 66 69 6c 74 65 72 2d 6e 61 6d 65 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 72 69 6e 67 20 6f 66 20 filter-names)..."Make.a.ring.of.
3dd00 66 69 6c 74 65 72 20 6e 61 6d 65 73 20 66 72 6f 6d 20 74 68 65 20 4c 49 53 54 2d 4f 46 2d 46 49 filter.names.from.the.LIST-OF-FI
3dd20 4c 54 45 52 2d 4e 41 4d 45 53 2e 0a 41 70 70 65 6e 64 73 20 74 68 65 20 60 6e 6f 20 66 69 6c 74 LTER-NAMES..Appends.the.`no.filt
3dd40 65 72 27 20 66 69 6c 74 65 72 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 er'.filter."...(setq.emms-filter
3dd60 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 72 69 6e 67 s-filter-ring.........(make-ring
3dd80 0a 20 20 20 20 20 20 20 20 20 28 2b 20 31 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 2d 6f 66 2d 66 ..........(+.1.(length.list-of-f
3dda0 69 6c 74 65 72 2d 6e 61 6d 65 73 29 29 29 29 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 ilter-names))))...(mapcar.(lambd
3ddc0 61 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 69 6e a.(filter-name).............(rin
3dde0 67 2d 69 6e 73 65 72 74 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e g-insert.emms-filters-filter-rin
3de00 67 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 g.filter-name))...........(cons.
3de20 22 6e 6f 20 66 69 6c 74 65 72 22 20 6c 69 73 74 2d 6f 66 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 73 "no.filter".list-of-filter-names
3de40 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 70 70 65 6e 64 2d )))..(defun.emms-filters-append-
3de60 74 6f 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 20 22 to-filter-ring.(filter-name)..."
3de80 41 70 70 65 6e 64 20 61 20 73 69 6e 67 6c 65 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 74 6f 20 74 Append.a.single.FILTER-NAME.to.t
3dea0 68 65 20 66 69 6c 74 65 72 2d 72 69 6e 67 2e 0a 54 68 69 73 20 63 72 65 61 74 65 73 20 74 68 65 he.filter-ring..This.creates.the
3dec0 20 66 69 6c 74 65 72 20 72 69 6e 67 20 61 73 20 6e 65 65 64 65 64 2e 22 0a 20 20 28 69 66 20 65 .filter.ring.as.needed."...(if.e
3dee0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 0a 20 20 20 20 20 20 28 72 mms-filters-filter-ring.......(r
3df00 69 6e 67 2d 69 6e 73 65 72 74 2b 65 78 74 65 6e 64 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 ing-insert+extend.emms-filters-f
3df20 69 6c 74 65 72 2d 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ilter-ring......................
3df40 20 20 20 20 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 .....filter-name.t).....(emms-fi
3df60 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 28 6c 69 73 74 20 66 69 6c lters-make-filter-ring.(list.fil
3df80 74 65 72 2d 6e 61 6d 65 29 29 29 29 0a 0a 3b 3b 20 54 68 69 73 20 73 68 6f 75 6c 64 20 61 6c 6c ter-name))))..;;.This.should.all
3dfa0 6f 77 20 70 65 6f 70 6c 65 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 75 73 69 6e 67 20 74 68 65 20 ow.people.to.continue.using.the.
3dfc0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 0a 3b 3b 20 66 69 6c 74 65 72 69 6e 67 20 61 73 20 74 68 65 emms-browser.;;.filtering.as.the
3dfe0 79 20 61 6c 77 61 79 73 20 68 61 76 65 2c 20 72 65 75 73 69 6e 67 20 74 68 65 20 66 69 6c 74 65 y.always.have,.reusing.the.filte
3e000 72 73 20 74 68 65 79 27 76 65 20 61 6c 72 65 61 64 79 20 6d 61 64 65 2e 0a 28 64 65 66 75 6e 20 rs.they've.already.made..(defun.
3e020 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 69 6e 74 emms-filters-register-filter-int
3e040 6f 2d 72 69 6e 67 20 28 66 69 6c 74 65 72 29 0a 20 20 22 49 6e 74 65 67 72 61 74 65 20 45 6d 6d o-ring.(filter)..."Integrate.Emm
3e060 73 20 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 73 20 69 6e 74 6f 20 65 6d 6d 73 2d 66 69 6c 74 s.browser.filters.into.emms-filt
3e080 65 72 73 2d 66 69 6c 74 65 72 73 2e 0a 52 65 67 69 73 74 65 72 20 61 20 46 49 4c 54 45 52 20 74 ers-filters..Register.a.FILTER.t
3e0a0 6f 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 69 66 20 69 74 27 73 20 6e o.emms-filters-filters.if.it's.n
3e0c0 61 6d 65 20 69 73 20 6d 69 73 73 69 6e 67 2e 0a 41 64 64 20 69 74 73 20 6e 61 6d 65 20 74 6f 20 ame.is.missing..Add.its.name.to.
3e0e0 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 the.filter.ring.and.filter.menu.
3e100 69 6e 0a 74 68 65 20 60 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 73 27 20 73 65 6c 65 63 74 69 in.the.`browser-filters'.selecti
3e120 6f 6e 20 6d 65 6e 75 2e 22 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 on.menu."...(emms-filters-regist
3e140 65 72 2d 69 66 2d 6d 69 73 73 69 6e 67 20 66 69 6c 74 65 72 29 0a 20 20 28 6c 65 74 20 28 28 6e er-if-missing.filter)...(let.((n
3e160 61 6d 65 20 28 63 61 72 20 66 69 6c 74 65 72 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c ame.(car.filter))).....(emms-fil
3e180 74 65 72 73 2d 61 70 70 65 6e 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 6e 61 6d 65 29 ters-append-to-filter-ring.name)
3e1a0 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 .....(emms-filters-add-to-filter
3e1c0 2d 6d 65 6e 75 20 22 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 73 22 20 6e 61 6d 65 29 29 29 0a -menu."browser-filters".name))).
3e1e0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 69 73 74 2d 66 69 6c 74 65 72 .(defun.emms-filters-list-filter
3e200 73 20 28 29 0a 20 20 22 4c 69 73 74 20 74 68 65 20 66 69 6c 74 65 72 73 20 69 6e 20 6f 75 72 20 s.()..."List.the.filters.in.our.
3e220 66 69 6c 74 65 72 20 6c 69 73 74 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 27 63 61 72 20 65 6d 6d filter.list."...(mapcar.'car.emm
3e240 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 s-filters-filters))..(defun.emms
3e260 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 73 20 28 29 0a 20 20 22 53 68 6f 77 -filters-show-filters.()..."Show
3e280 20 74 68 65 20 66 69 6c 74 65 72 73 20 77 65 20 68 61 76 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 .the.filters.we.have."...(intera
3e2a0 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 ctive)...(when.emms-filters-filt
3e2c0 65 72 73 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 6d 66 20 46 69 6c 74 65 72 73 3a 5c 6e ers.....(message."Emf.Filters:\n
3e2e0 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 27 69 64 65 %s"..............(mapconcat.'ide
3e300 6e 74 69 74 79 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 69 73 74 2d 66 69 6c 74 65 72 73 ntity.(emms-filters-list-filters
3e320 29 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d )."\n"))))..(defun.emms-filters-
3e340 73 68 6f 77 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 28 29 0a 20 20 22 53 68 6f 77 20 74 68 65 20 show-filter-ring.()..."Show.the.
3e360 66 69 6c 74 65 72 73 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 22 0a 20 20 28 filters.in.the.filter.ring."...(
3e380 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 52 69 6e 67 20 66 69 interactive)...(message."Ring.fi
3e3a0 6c 74 65 72 73 3a 20 25 73 22 20 28 72 69 6e 67 2d 65 6c 65 6d 65 6e 74 73 20 65 6d 6d 73 2d 66 lters:.%s".(ring-elements.emms-f
3e3c0 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ilters-filter-ring)))..(defun.em
3e3e0 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6e 64 2d 66 69 6c 74 65 72 20 28 6e 61 6d 65 29 0a 20 20 ms-filters-find-filter.(name)...
3e400 22 41 20 6e 69 63 65 72 20 77 61 79 20 74 6f 20 66 69 6e 64 20 4e 41 4d 45 20 69 6e 20 6f 75 72 "A.nicer.way.to.find.NAME.in.our
3e420 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2e 22 0a 20 20 28 61 73 73 6f 63 20 6e 61 6d 65 .list.of.filters."...(assoc.name
3e440 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 .emms-filters-filters))..(defun.
3e460 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6e 64 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f emms-filters-find-filter-functio
3e480 6e 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 46 75 6e 63 n.(filter-name)..."Find.the.Func
3e4a0 74 69 6f 6e 20 66 6f 72 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 69 6e 20 65 6d 6d 73 2d 66 69 6c tion.for.FILTER-NAME.in.emms-fil
3e4c0 74 65 72 73 2d 66 69 6c 74 65 72 73 2e 0a 50 61 73 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 72 ters-filters..Pass.functions.thr
3e4e0 6f 75 67 68 20 75 6e 74 6f 75 63 68 65 64 2e 22 0a 20 20 28 69 66 20 28 65 71 20 66 69 6c 74 65 ough.untouched."...(if.(eq.filte
3e500 72 2d 6e 61 6d 65 20 3a 6e 6f 74 29 0a 20 20 20 20 20 20 3a 6e 6f 74 0a 20 20 20 20 28 63 64 72 r-name.:not).......:not.....(cdr
3e520 20 28 61 73 73 6f 63 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 .(assoc.filter-name.emms-filters
3e540 2d 66 69 6c 74 65 72 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 -filters))))..(defun.emms-filter
3e560 73 2d 66 6f 72 6d 61 74 2d 73 65 61 72 63 68 20 28 66 69 65 6c 64 73 20 76 61 6c 75 65 29 0a 20 s-format-search.(fields.value)..
3e580 20 22 43 72 65 61 74 65 20 61 20 73 74 72 69 6e 67 20 66 6f 72 6d 61 74 20 66 72 6f 6d 20 61 20 ."Create.a.string.format.from.a.
3e5a0 6c 69 73 74 20 6f 66 20 46 49 45 4c 44 53 20 61 6e 64 20 61 20 63 6f 6d 70 61 72 65 20 56 41 4c list.of.FIELDS.and.a.compare.VAL
3e5c0 55 45 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 3a 20 25 73 22 0a 20 20 20 20 20 20 20 UE."...(format."%s.:.%s"........
3e5e0 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 ...(mapconcat............#'(lamb
3e600 64 61 20 28 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 da.(info)................(if.(sy
3e620 6d 62 6f 6c 70 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 mbolp.info)....................(
3e640 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 6e 66 6f 29 20 20 35 29 substring.(symbol-name.info)..5)
3e660 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 ..................info))........
3e680 20 20 20 20 66 69 65 6c 64 73 20 22 20 7c 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 ....fields.".|.")...........valu
3e6a0 65 29 29 0a 0a 3b 3b 20 54 68 65 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 79 20 6f 66 20 66 61 e))..;;.The.Filter.Factory.of.fa
3e6c0 63 74 6f 72 69 65 73 2e 0a 3b 3b 20 6d 61 6b 69 6e 67 20 74 68 65 6d 2c 20 75 73 69 6e 67 20 74 ctories..;;.making.them,.using.t
3e6e0 68 65 6d 2c 20 6b 65 65 70 69 6e 67 20 74 68 65 6d 20 6f 72 67 61 6e 69 7a 65 64 2e 0a 3b 3b 3b hem,.keeping.them.organized..;;;
3e700 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3e720 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ;;;;;;;;;;;;;.(defun.emms-filter
3e740 73 2d 6d 61 6b 65 2d 2d 66 69 6c 74 65 72 20 28 66 61 63 74 6f 72 79 20 66 61 63 74 6f 72 79 2d s-make--filter.(factory.factory-
3e760 61 72 67 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 75 73 69 6e 67 20 74 68 65 args)..."Make.a.filter.using.the
3e780 20 46 41 43 54 4f 52 59 20 61 6e 64 20 46 41 43 54 4f 52 59 2d 41 52 47 53 2e 0a 49 66 20 66 61 .FACTORY.and.FACTORY-ARGS..If.fa
3e7a0 63 74 6f 72 79 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 74 20 69 73 20 75 73 65 64 20 64 ctory.is.a.function.it.is.used.d
3e7c0 69 72 65 63 74 6c 79 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 69 74 20 77 69 6c 6c 0a 6c 6f 6f 6b irectly..Otherwise,.it.will.look
3e7e0 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 .for.the.function.in.emms-filter
3e800 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 61 s-filter-factories."...(let.((fa
3e820 63 74 6f 72 79 2d 66 75 6e 63 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 61 63 74 6f 72 ctory-func.(if.(functionp.factor
3e840 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 y)...........................fac
3e860 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 tory.........................(ca
3e880 64 72 20 28 61 73 73 6f 63 20 66 61 63 74 6f 72 79 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 dr.(assoc.factory.emms-filters-f
3e8a0 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 29 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 ilter-factories))))).....(apply.
3e8c0 66 61 63 74 6f 72 79 2d 66 75 6e 63 20 66 61 63 74 6f 72 79 2d 61 72 67 73 29 29 29 0a 0a 28 64 factory-func.factory-args)))..(d
3e8e0 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 28 66 efun.emms-filters-make-filter.(f
3e900 61 63 74 6f 72 79 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 66 61 63 74 6f 72 79 2d 61 72 67 73 29 actory.filter-name.factory-args)
3e920 0a 20 20 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 6e 61 6d 65 64 20 46 49 4c 54 45 52 2d 4e ..."Make.a.filter.named.FILTER-N
3e940 41 4d 45 20 75 73 69 6e 67 20 74 68 65 20 46 41 43 54 4f 52 59 20 61 6e 64 20 46 41 43 54 4f 52 AME.using.the.FACTORY.and.FACTOR
3e960 59 2d 41 52 47 53 2e 0a 49 66 20 66 61 63 74 6f 72 79 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e Y-ARGS..If.factory.is.a.function
3e980 20 69 74 20 69 73 20 75 73 65 64 20 64 69 72 65 63 74 6c 79 2e 20 4f 74 68 65 72 77 69 73 65 2c .it.is.used.directly..Otherwise,
3e9a0 20 69 74 20 77 69 6c 6c 0a 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 .it.will.look.for.the.function.i
3e9c0 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 2e n.emms-filters-filter-factories.
3e9e0 22 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d "...(emms-filters-add-to-filter-
3ea00 6d 65 6e 75 20 66 61 63 74 6f 72 79 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 20 28 65 6d 6d menu.factory.filter-name)...(emm
3ea20 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 0a 20 20 20 66 69 6c s-filters-register-filter....fil
3ea40 74 65 72 2d 6e 61 6d 65 0a 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 2d ter-name....(emms-filters-make--
3ea60 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 66 61 63 74 6f 72 79 2d 61 72 67 73 29 29 29 0a 0a filter.factory.factory-args)))..
3ea80 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 (defun.emms-filters-make-filters
3eaa0 20 28 66 69 6c 74 65 72 2d 6c 69 73 74 29 0a 20 20 22 4d 61 6b 65 20 66 69 6c 74 65 72 73 20 69 .(filter-list)..."Make.filters.i
3eac0 6e 20 46 49 4c 54 45 52 2d 4c 49 53 54 20 69 6e 74 6f 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 n.FILTER-LIST.into.filter.functi
3eae0 6f 6e 73 2e 0a 54 68 65 20 66 69 6c 74 65 72 20 6c 69 73 74 20 68 6f 6c 64 73 20 65 6e 74 72 69 ons..The.filter.list.holds.entri
3eb00 65 73 20 73 70 65 63 69 66 69 65 64 20 61 73 0a 20 20 28 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 es.specified.as...(factory-name.
3eb20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 66 61 63 74 6f 72 79 2d 61 72 67 75 6d 65 6e 74 73 29 2e 22 filter-name.factory-arguments)."
3eb40 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 74 65 72 29 0a 20 20 20 20 ...(mapcar.(lambda.(filter).....
3eb60 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 ........(emms-filters-make-filte
3eb80 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 66 69 6c 74 65 72 29 0a 20 20 20 20 r..............(car.filter).....
3eba0 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 66 69 6c 74 65 72 29 20 28 63 64 64 72 20 66 69 6c .........(cadr.filter).(cddr.fil
3ebc0 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 72 2d 6c 69 73 74 29 29 0a 0a ter)))...........filter-list))..
3ebe0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 77 2d 66 69 6c 74 65 72 20 28 (defun.emms-filters-new-filter.(
3ec00 26 6f 70 74 69 6f 6e 61 6c 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 6d 61 6b 65 2d 66 69 6c 74 &optional.factory-name.make-filt
3ec20 65 72 2d 6e 61 6d 65 29 0a 20 20 22 42 75 69 6c 64 20 61 20 6e 65 77 20 66 69 6c 74 65 72 20 66 er-name)..."Build.a.new.filter.f
3ec40 72 6f 6d 20 61 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 69 6e 74 65 72 61 63 74 69 76 65 rom.a.filter.factory.interactive
3ec60 6c 79 2e 0a 55 73 65 20 46 41 43 54 4f 52 59 2d 4e 41 4d 45 20 69 6e 73 74 65 61 64 20 6f 66 20 ly..Use.FACTORY-NAME.instead.of.
3ec80 70 72 6f 6d 70 74 69 6e 67 20 69 66 20 67 69 76 65 6e 2e 0a 49 66 20 4d 41 4b 45 2d 46 49 4c 54 prompting.if.given..If.MAKE-FILT
3eca0 45 52 2d 4e 41 4d 45 20 6f 72 20 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 41 55 54 4f 4d 41 54 49 ER-NAME.or.EMMS-FILTERS-AUTOMATI
3ecc0 43 2d 46 49 4c 54 45 52 2d 4e 41 4d 45 53 20 69 73 20 74 72 75 65 20 74 68 65 20 6e 61 6d 65 20 C-FILTER-NAMES.is.true.the.name.
3ece0 77 69 6c 6c 0a 62 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 70 will.be.constructed.instead.of.p
3ed00 72 6f 6d 70 74 65 64 2e 0a 0a 4e 6f 72 6d 61 6c 6c 79 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 61 rompted...Normally.prompts.for.a
3ed20 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 61 6e 64 20 69 74 73 20 70 61 72 61 6d 65 74 65 .filter.factory.and.its.paramete
3ed40 72 73 2c 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 61 0a 66 69 6c 74 65 72 20 6e 61 6d 65 20 61 6e rs,.prompts.for.a.filter.name.an
3ed60 64 20 74 68 65 6e 20 63 72 65 61 74 65 73 20 61 6e 64 20 72 65 67 69 73 74 65 72 73 20 61 20 6e d.then.creates.and.registers.a.n
3ed80 65 77 20 66 69 6c 74 65 72 2c 74 68 65 6e 20 72 65 74 75 72 6e 73 20 69 74 73 20 6e 61 6d 65 2e ew.filter,then.returns.its.name.
3eda0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 61 63 74 "...(interactive)...(let*.((fact
3edc0 6f 72 79 2d 6e 61 6d 65 20 28 69 66 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 66 61 63 74 6f 72 ory-name.(if.factory-name.factor
3ede0 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y-name..........................
3ee00 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 61 63 74 6f 72 79 29 29 29 0a (emms-filters-choose-factory))).
3ee20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6e 61 6d 65 20 28 6f 72 20 6d 61 6b 65 2d 66 69 6c .........(make-name.(or.make-fil
3ee40 74 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 75 74 6f 6d 61 74 69 63 2d ter-name.emms-filters-automatic-
3ee60 66 69 6c 74 65 72 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 61 6d 65 74 filter-names))..........(paramet
3ee80 65 72 73 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d 66 61 63 74 6f 72 79 2d 70 61 ers.(emms-filters-get-factory-pa
3eea0 72 61 6d 65 74 65 72 73 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 rameters.factory-name)).........
3eec0 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 20 28 69 66 20 6d 61 6b 65 2d 6e 61 6d 65 0a 20 20 20 20 .(filter-name.(if.make-name.....
3eee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 ......................(format."%
3ef00 73 20 3a 20 25 73 22 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 70 61 72 61 6d 65 74 65 72 73 29 s.:.%s".factory-name.parameters)
3ef20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 .........................(read-s
3ef40 74 72 69 6e 67 20 22 66 69 6c 74 65 72 20 6e 61 6d 65 3a 22 29 29 29 29 0a 0a 20 20 20 20 28 6d tring."filter.name:"))))......(m
3ef60 65 73 73 61 67 65 20 22 25 73 20 7c 20 25 73 20 70 61 72 6d 73 20 25 73 22 20 66 61 63 74 6f 72 essage."%s.|.%s.parms.%s".factor
3ef80 79 2d 6e 61 6d 65 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 70 61 72 61 6d 65 74 65 72 73 29 0a 0a y-name.filter-name.parameters)..
3efa0 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 66 61 ....(emms-filters-make-filter.fa
3efc0 63 74 6f 72 79 2d 6e 61 6d 65 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 70 61 72 61 6d 65 74 65 72 ctory-name.filter-name.parameter
3efe0 73 29 0a 20 20 20 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d s).....filter-name))..(defun.emm
3f000 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 s-filters-register-filter-factor
3f020 79 20 28 6e 61 6d 65 20 66 75 6e 63 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 22 52 65 67 y.(name.func.prompt-list)..."Reg
3f040 69 73 74 65 72 20 46 55 4e 43 20 61 73 20 4e 41 4d 45 20 77 69 74 68 20 50 52 4f 4d 50 54 2d 4c ister.FUNC.as.NAME.with.PROMPT-L
3f060 49 53 54 20 69 6e 74 6f 20 61 20 66 69 6c 74 65 72 20 63 68 6f 69 63 65 2e 0a 47 69 76 65 20 69 IST.into.a.filter.choice..Give.i
3f080 74 20 74 68 65 20 73 68 61 70 65 3a 20 28 6e 61 6d 65 20 2e 20 28 66 75 6e 63 20 2e 20 70 72 6f t.the.shape:.(name...(func...pro
3f0a0 6d 70 74 2d 6c 69 73 74 29 29 2e 22 0a 20 20 28 70 75 73 68 0a 20 20 20 28 63 6f 6e 73 20 6e 61 mpt-list))."...(push....(cons.na
3f0c0 6d 65 20 28 63 6f 6e 73 20 66 75 6e 63 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 29 0a 20 20 20 65 me.(cons.func.prompt-list))....e
3f0e0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 29 29 0a 0a mms-filters-filter-factories))..
3f100 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 69 73 74 2d 66 69 6c 74 65 72 2d (defun.emms-filters-list-filter-
3f120 66 61 63 74 6f 72 69 65 73 20 28 29 0a 20 20 22 4c 69 73 74 20 74 68 65 20 66 69 6c 74 65 72 73 factories.()..."List.the.filters
3f140 20 69 6e 20 6f 75 72 20 66 61 63 74 6f 72 69 65 73 20 6c 69 73 74 2e 22 0a 20 20 28 6d 61 70 63 .in.our.factories.list."...(mapc
3f160 61 72 20 27 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 ar.'car.emms-filters-filter-fact
3f180 6f 72 69 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f ories))..(defun.emms-filters-sho
3f1a0 77 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 20 28 29 0a 20 20 22 53 68 6f 77 20 74 68 w-filter-factories.()..."Show.th
3f1c0 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 77 65 20 68 61 76 65 2e 22 0a 20 20 28 e.filter.factories.we.have."...(
3f1e0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 interactive)...(when.emms-filter
3f200 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 s-filter-factories.....(message.
3f220 22 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 3a 5c 6e 25 73 22 0a 20 20 20 20 20 20 20 20 "Filter.Factories:\n%s".........
3f240 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 65 6d 6d 73 .....(mapconcat.#'identity.(emms
3f260 2d 66 69 6c 74 65 72 73 2d 6c 69 73 74 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 29 20 -filters-list-filter-factories).
3f280 22 5c 6e 20 20 22 29 29 29 29 0a 0a 3b 3b 20 28 6d 65 73 73 61 67 65 20 22 45 6d 6d 73 20 43 61 "\n.."))))..;;.(message."Emms.Ca
3f2a0 63 68 65 20 73 74 61 63 6b 3a 5c 6e 20 20 25 73 5c 6e 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 che.stack:\n..%s\n".;;..........
3f2c0 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 65 6d 6d 73 2d 66 69 6c 74 (mapconcat.#'identity.(emms-filt
3f2e0 65 72 73 2d 67 65 74 2d 73 65 61 72 63 68 2d 6b 65 79 73 29 20 22 5c 6e 20 20 22 29 29 0a 0a 28 ers-get-search-keys)."\n.."))..(
3f300 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 66 69 6c 74 65 72 2d defun.emms-filters-clear-filter-
3f320 66 61 63 74 6f 72 69 65 73 20 28 29 0a 20 20 22 52 65 73 65 74 20 74 68 65 20 66 69 6c 74 65 72 factories.()..."Reset.the.filter
3f340 20 66 61 63 74 6f 72 79 20 6c 69 73 74 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c .factory.list."...(setq.emms-fil
3f360 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 20 6e 69 6c 29 29 0a 0a 0a 3b 3b ters-filter-factories.nil))...;;
3f380 3b 20 46 61 63 74 6f 72 79 20 50 72 6f 6d 70 74 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 ;.Factory.Prompting..;;.;;.This.
3f3a0 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 62 69 74 20 62 72 69 74 74 6c 65 20 66 6f 72 20 6d 79 function.is.a.bit.brittle.for.my
3f3c0 20 74 61 73 74 65 2e 0a 3b 3b 20 49 74 20 6e 65 65 64 73 20 6d 6f 72 65 20 75 73 65 20 63 61 73 .taste..;;.It.needs.more.use.cas
3f3e0 65 73 2e 0a 3b 3b 20 49 74 20 6d 69 67 68 74 20 62 65 20 74 68 65 20 6f 6e 6c 79 20 6f 6e 65 2c es..;;.It.might.be.the.only.one,
3f400 20 6f 72 20 77 65 20 6f 6e 6c 79 20 65 76 65 72 20 68 61 76 65 20 6c 69 73 74 73 20 6f 66 20 73 .or.we.only.ever.have.lists.of.s
3f420 79 6d 62 6f 6c 73 2e 2e 2e 0a 3b 3b 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 74 68 ymbols....;;.This.is.used.for.th
3f440 65 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 66 61 63 74 6f 72 79 2e 0a 28 64 65 66 75 6e 20 e.fields-search.factory..(defun.
3f460 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 66 69 65 6c 64 2d 6c 69 73 74 2d 70 emms-filters-string-field-list-p
3f480 72 6f 6d 70 74 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 50 52 rompt.(prompt)..."Recursively.PR
3f4a0 4f 4d 50 54 20 66 6f 72 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 61 20 6c 69 73 74 2e 0a 50 72 6f OMPT.for.elements.of.a.list..Pro
3f4c0 6d 70 74 20 6d 75 73 74 20 64 65 66 69 6e 65 20 61 20 73 65 6c 65 63 74 20 6c 69 73 74 2e 20 54 mpt.must.define.a.select.list..T
3f4e0 68 65 20 6f 6e 6c 79 20 75 73 61 67 65 20 65 78 61 6d 70 6c 65 20 73 6f 0a 66 61 72 20 69 73 20 he.only.usage.example.so.far.is.
3f500 74 68 65 20 66 69 65 6c 64 2d 73 65 61 72 63 68 20 6c 69 73 74 20 77 68 69 63 68 20 69 73 20 61 the.field-search.list.which.is.a
3f520 6c 6c 20 73 79 6d 62 6f 6c 73 2e 0a 20 69 6e 66 6f 2d 61 72 74 69 73 74 2c 20 69 6e 66 6f 2d 67 ll.symbols...info-artist,.info-g
3f540 65 6e 72 65 2c 20 60 69 6e 74 65 72 6e 2d 73 6f 66 74 27 20 77 6f 72 6b 73 20 66 6f 72 20 74 68 enre,.`intern-soft'.works.for.th
3f560 6f 73 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 20 28 63 ose."...(let*.((prompt-string.(c
3f580 61 72 20 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 69 6f 6e 73 ar.prompt))..........(selections
3f5a0 20 28 63 64 61 72 20 28 63 64 72 20 70 72 6f 6d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 .(cdar.(cdr.prompt)))..........(
3f5c0 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 value...........(completing-read
3f5e0 20 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .prompt-string..................
3f600 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 71 75 69 74 22 20 73 65 6c 65 63 74 69 6f 6e ..........(cons."quit".selection
3f620 73 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 76 61 6c s).nil.t))).....(if.(string=.val
3f640 75 65 20 22 71 75 69 74 22 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 28 63 6f ue."quit").........nil.......(co
3f660 6e 73 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 ns.(intern-soft.value)..........
3f680 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 66 69 65 6c 64 2d 6c 69 ...(emms-filters-string-field-li
3f6a0 73 74 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 6f st-prompt..............(cons.(co
3f6c0 6e 63 61 74 20 28 63 61 72 20 70 72 6f 6d 70 74 29 20 22 20 22 20 76 61 6c 75 65 29 0a 20 20 20 ncat.(car.prompt).".".value)....
3f6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 70 72 6f 6d 70 74 29 29 29 29 29 ................(cdr.prompt)))))
3f700 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6f 65 72 63 65 2d 70 ))..(defun.emms-filters-coerce-p
3f720 72 6f 6d 70 74 2d 76 61 6c 75 65 20 28 70 72 6f 6d 70 74 20 76 61 6c 75 65 29 0a 20 20 22 43 6f rompt-value.(prompt.value)..."Co
3f740 65 72 63 65 20 56 41 4c 55 45 2c 20 61 20 73 74 72 69 6e 67 2c 20 61 63 63 6f 72 64 69 6e 67 20 erce.VALUE,.a.string,.according.
3f760 74 6f 20 74 68 65 20 70 72 6f 6d 70 74 20 74 79 70 65 20 69 6e 73 69 64 65 20 50 52 4f 4d 50 54 to.the.prompt.type.inside.PROMPT
3f780 2e 0a 50 52 4f 4d 50 54 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 28 ..PROMPT.should.be.in.the.form.(
3f7a0 70 72 6f 6d 70 74 20 28 74 79 70 65 20 2e 20 3c 73 65 6c 65 63 74 2d 6c 69 73 74 3e 29 29 2e 0a prompt.(type...<select-list>))..
3f7c0 54 79 70 65 73 20 61 72 65 20 3a 6e 75 6d 62 65 72 2c 20 3a 73 79 6d 62 6f 6c 2c 20 3a 73 74 72 Types.are.:number,.:symbol,.:str
3f7e0 69 6e 67 20 61 6e 64 20 3a 66 75 6e 63 74 69 6f 6e 2e 0a 53 74 72 69 6e 67 73 20 70 61 73 73 20 ing.and.:function..Strings.pass.
3f800 74 68 72 6f 75 67 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 79 70 65 20 28 63 61 72 20 28 63 61 through."...(let.((type.(car.(ca
3f820 64 72 20 70 72 6f 6d 70 74 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 73 dr.prompt)))).....(cond......((s
3f840 74 72 69 6e 67 3d 20 74 79 70 65 20 3a 6e 75 6d 62 65 72 29 20 28 73 74 72 69 6e 67 2d 74 6f 2d tring=.type.:number).(string-to-
3f860 6e 75 6d 62 65 72 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 74 79 number.value))......((string=.ty
3f880 70 65 20 3a 73 79 6d 62 6f 6c 29 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 76 61 6c 75 65 29 29 pe.:symbol).(intern-soft.value))
3f8a0 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 74 79 70 65 20 3a 66 75 6e 63 74 69 6f 6e 29 20 ......((string=.type.:function).
3f8c0 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 28 74 20 76 61 6c (intern-soft.value))......(t.val
3f8e0 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 61 64 ue))))..(defun.emms-filters-read
3f900 2d 73 74 72 69 6e 67 2d 6f 72 2d 63 68 6f 6f 73 65 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 43 68 -string-or-choose.(prompt)..."Ch
3f920 6f 6f 73 65 20 74 68 65 20 6d 65 74 68 6f 64 20 69 6e 70 75 74 20 75 73 69 6e 67 20 50 52 4f 4d oose.the.method.input.using.PROM
3f940 50 54 2e 0a 44 6f 20 61 20 73 74 72 69 6e 67 20 72 65 61 64 20 6f 72 20 63 6f 6d 70 6c 65 74 69 PT..Do.a.string.read.or.completi
3f960 6e 67 20 72 65 61 64 20 69 66 20 50 52 4f 4d 50 54 20 68 61 73 20 61 20 73 65 6c 65 63 74 2d 6c ng.read.if.PROMPT.has.a.select-l
3f980 69 73 74 2e 0a 44 6f 20 61 20 72 65 63 75 72 73 69 76 65 20 63 6f 6d 70 6c 65 74 69 6e 67 20 72 ist..Do.a.recursive.completing.r
3f9a0 65 61 64 20 77 69 74 68 20 73 65 6c 65 63 74 69 6f 6e 2d 6c 69 73 74 20 69 66 20 61 20 3a 6c 69 ead.with.selection-list.if.a.:li
3f9c0 73 74 20 74 79 70 65 2e 0a 41 20 70 72 6f 6d 70 74 20 73 68 6f 75 6c 64 20 6c 6f 6f 6b 20 6c 69 st.type..A.prompt.should.look.li
3f9e0 6b 65 20 74 68 69 73 3b 20 28 70 72 6f 6d 70 74 20 28 74 79 70 65 20 2e 20 3c 73 65 6c 65 63 74 ke.this;.(prompt.(type...<select
3fa00 2d 6c 69 73 74 3e 29 29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 2d 73 74 72 69 -list>))."...(let*.((prompt-stri
3fa20 6e 67 20 28 63 61 72 20 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 ng.(car.prompt))..........(selec
3fa40 74 69 6f 6e 73 20 28 63 64 72 20 28 63 61 64 72 20 70 72 6f 6d 70 74 29 29 29 0a 20 20 20 20 20 tions.(cdr.(cadr.prompt)))......
3fa60 20 20 20 20 28 5f 20 28 6d 65 73 73 61 67 65 20 22 53 65 6c 65 63 74 69 6f 6e 73 20 25 73 22 20 ....(_.(message."Selections.%s".
3fa80 73 65 6c 65 63 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 63 61 72 selections))..........(type.(car
3faa0 20 28 63 61 64 72 20 70 72 6f 6d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 .(cadr.prompt)))..........(value
3fac0 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 74 79 70 65 20 3a 6c 69 73 74 29 20 28 65 6d .(cond.((string=.type.:list).(em
3fae0 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 66 69 65 6c 64 2d 6c 69 73 74 2d 70 72 6f ms-filters-string-field-list-pro
3fb00 6d 70 74 20 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mpt.prompt))....................
3fb20 20 20 20 28 73 65 6c 65 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(selections..................
3fb40 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 2d 73 74 ......(completing-read.prompt-st
3fb60 72 69 6e 67 20 73 65 6c 65 63 74 69 6f 6e 73 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 ring.selections.nil.t)).........
3fb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 70 72 ..............(t.(read-string.pr
3fba0 6f 6d 70 74 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 ompt-string))))).....(emms-filte
3fbc0 72 73 2d 63 6f 65 72 63 65 2d 70 72 6f 6d 70 74 2d 76 61 6c 75 65 20 70 72 6f 6d 70 74 20 76 61 rs-coerce-prompt-value.prompt.va
3fbe0 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d lue)))..(defun.emms-filters-get-
3fc00 66 61 63 74 6f 72 79 2d 70 61 72 61 6d 65 74 65 72 73 20 28 66 61 63 74 6f 72 79 2d 6e 61 6d 65 factory-parameters.(factory-name
3fc20 29 0a 20 20 22 50 72 6f 6d 70 74 20 66 6f 72 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 6e )..."Prompt.for.the.parameters.n
3fc40 65 65 64 65 64 20 62 79 20 61 20 66 61 63 74 6f 72 79 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 eeded.by.a.factory.identified.by
3fc60 20 46 41 43 54 4f 52 59 2d 4e 41 4d 45 2e 0a 43 6f 65 72 63 65 20 74 68 65 69 72 20 74 79 70 65 .FACTORY-NAME..Coerce.their.type
3fc80 73 20 61 73 20 69 6e 64 69 63 61 74 65 64 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 s.as.indicated.and.return.the.li
3fca0 73 74 20 6f 66 20 70 61 72 61 6d 65 74 65 72 73 2e 0a 0a 41 20 70 72 6f 6d 70 74 20 73 68 6f 75 st.of.parameters...A.prompt.shou
3fcc0 6c 64 20 62 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 70 72 6f 6d 70 74 20 28 74 79 70 65 20 ld.be.of.the.form.(prompt.(type.
3fce0 2e 20 3c 6c 69 73 74 3e 29 29 20 77 68 65 72 65 20 70 72 6f 6d 70 74 20 69 73 20 61 20 73 74 72 ..<list>)).where.prompt.is.a.str
3fd00 69 6e 67 0a 61 6e 64 20 74 79 70 65 20 69 73 20 3a 6e 75 6d 62 65 72 20 3a 66 75 6e 63 74 69 6f ing.and.type.is.:number.:functio
3fd20 6e 20 3a 73 79 6d 62 6f 6c 20 6f 72 20 3a 73 74 72 69 6e 67 22 0a 20 20 28 69 6e 74 65 72 61 63 n.:symbol.or.:string"...(interac
3fd40 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 28 63 64 64 72 20 28 61 73 tive)...(let.((prompts.(cddr.(as
3fd60 73 6f 63 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 soc.factory-name.emms-filters-fi
3fd80 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 lter-factories)))).....(mapcar.(
3fda0 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 lambda.(prompt)...............(e
3fdc0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 6f 72 2d 63 68 6f 6f 73 mms-filters-read-string-or-choos
3fde0 65 20 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 e.prompt)).............prompts))
3fe00 29 0a 0a 0a 3b 3b 3b 20 46 61 63 74 6f 72 79 20 46 75 6e 63 74 69 6f 6e 73 20 74 6f 20 6d 61 6b )...;;;.Factory.Functions.to.mak
3fe20 65 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 74 68 2e 0a 3b 3b 20 41 20 66 69 e.filter.functions.with..;;.A.fi
3fe40 6c 74 65 72 20 66 61 63 74 6f 72 79 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 lter.factory.is.a.function.that.
3fe60 72 65 74 75 72 6e 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 0a 3b 3b 20 72 65 74 75 returns.a.function.which.;;.retu
3fe80 72 6e 73 20 74 72 75 65 20 69 66 20 69 74 20 6c 69 6b 65 73 20 74 68 65 20 76 61 6c 75 65 73 20 rns.true.if.it.likes.the.values.
3fea0 66 72 6f 6d 20 74 68 65 20 74 72 61 63 6b 20 69 74 20 77 61 73 20 67 69 76 65 6e 2e 0a 3b 3b 0a from.the.track.it.was.given..;;.
3fec0 3b 3b 20 52 65 67 69 73 74 65 72 69 6e 67 20 74 68 65 6d 20 6d 61 6b 65 73 20 74 68 65 6d 20 69 ;;.Registering.them.makes.them.i
3fee0 6e 74 65 72 61 63 74 69 76 65 20 61 6e 64 20 69 6e 76 6f 6b 61 62 6c 65 0a 3b 3b 20 62 79 20 6e nteractive.and.invokable.;;.by.n
3ff00 61 6d 65 2e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 ame...(defun.emms-filters-make-f
3ff20 69 6c 74 65 72 2d 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 6e 61 6d 65 29 0a 20 20 22 47 65 6e ilter-directory.(dirname)..."Gen
3ff40 65 72 61 74 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 69 66 20 61 20 74 erate.a.function.to.check.if.a.t
3ff60 72 61 63 6b 20 69 73 20 69 6e 20 44 49 52 4e 41 4d 45 2e 0a 49 66 20 74 68 65 20 74 72 61 63 6b rack.is.in.DIRNAME..If.the.track
3ff80 20 69 73 20 6e 6f 74 20 69 6e 20 44 49 52 4e 41 4d 45 2c 20 72 65 74 75 72 6e 20 74 2e 0a 55 73 .is.not.in.DIRNAME,.return.t..Us
3ffa0 65 73 20 61 20 72 65 67 65 78 20 61 6e 63 68 6f 72 69 6e 67 20 64 69 72 6e 61 6d 65 20 74 6f 20 es.a.regex.anchoring.dirname.to.
3ffc0 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 65 78 70 61 6e 64 65 64 20 70 61 the.beginning.of.the.expanded.pa
3ffe0 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 28 65 78 th."...(let.((re.(concat."^".(ex
40000 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 23 pand-file-name.dirname)))).....#
40020 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 '(lambda.(track).........(string
40040 2d 6d 61 74 63 68 20 72 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 -match.re.(emms-track-get.track.
40060 27 6e 61 6d 65 29 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 'name)))))..(emms-filters-regist
40080 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 44 69 72 65 63 74 6f 72 79 22 0a 20 20 er-filter-factory."Directory"...
400a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 ...........................'emms
400c0 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 64 69 72 65 63 74 6f 72 79 0a 20 -filters-make-filter-directory..
400e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 ............................'(("
40100 44 69 72 65 63 74 6f 72 79 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a Directory:.".(:string...nil)))).
40120 0a 3b 3b 20 73 65 63 6f 6e 64 73 20 69 6e 20 61 20 64 61 79 20 28 2a 20 36 30 20 36 30 20 32 34 .;;.seconds.in.a.day.(*.60.60.24
40140 29 20 3d 20 38 36 34 30 30 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 ).=.86400.(defun.emms-filters-ma
40160 6b 65 2d 66 69 6c 74 65 72 2d 70 6c 61 79 65 64 2d 77 69 74 68 69 6e 20 28 64 61 79 73 29 0a 20 ke-filter-played-within.(days)..
40180 20 22 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 63 6b 73 20 70 6c 61 79 65 64 20 77 69 74 68 69 6e ."Show.only.tracks.played.within
401a0 20 74 68 65 20 6c 61 73 74 20 6e 75 6d 62 65 72 20 6f 66 20 44 41 59 53 2e 22 0a 20 20 28 6c 65 .the.last.number.of.DAYS."...(le
401c0 74 20 28 28 73 65 63 6f 6e 64 73 2d 74 6f 2d 74 69 6d 65 20 28 73 65 63 6f 6e 64 73 2d 74 6f 2d t.((seconds-to-time.(seconds-to-
401e0 74 69 6d 65 20 28 2a 20 64 61 79 73 20 38 36 34 30 30 29 29 29 29 0a 20 20 20 20 23 27 28 6c 61 time.(*.days.86400)))).....#'(la
40200 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 69 6e 2d mbda.(track).........(let.((min-
40220 64 61 74 65 20 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 date.(time-subtract.............
40240 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 0a 20 20 20 20 .............(current-time).....
40260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 63 6f 6e 64 73 2d 74 6f 2d .....................seconds-to-
40280 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 2d 70 6c 61 79 65 64 time))...............last-played
402a0 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 65 74 71 20 6c 61 73 74 2d 70 6c 61 79 )...........(and.(setq.last-play
402c0 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 ed......................(emms-tr
402e0 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6c 61 73 74 2d 70 6c 61 79 65 64 20 6e 69 6c 29 29 ack-get.track.'last-played.nil))
40300 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6d 69 6e ................(time-less-p.min
40320 2d 64 61 74 65 20 6c 61 73 74 2d 70 6c 61 79 65 64 29 29 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 -date.last-played))))))..(emms-f
40340 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 ilters-register-filter-factory."
40360 50 6c 61 79 65 64 20 73 69 6e 63 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Played.since"...................
40380 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 ...........'emms-filters-make-fi
403a0 6c 74 65 72 2d 70 6c 61 79 65 64 2d 77 69 74 68 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 lter-played-within..............
403c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 44 61 79 73 3a 20 22 20 28 3a 6e 75 ................'(("Days:.".(:nu
403e0 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 mber...nil))))..(defun.emms-filt
40400 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 6e 6f 74 2d 70 6c 61 79 65 64 2d 77 69 74 68 69 ers-make-filter-not-played-withi
40420 6e 20 28 64 61 79 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 6e 6f 74 20 70 6c 61 79 65 64 20 73 69 n.(days)..."Make.a.not.played.si
40440 6e 63 65 20 44 41 59 53 20 66 69 6c 74 65 72 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 74 72 61 nce.DAYS.filter."...(lambda.(tra
40460 63 6b 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d ck).....(funcall.(emms-filters-m
40480 61 6b 65 2d 66 69 6c 74 65 72 2d 70 6c 61 79 65 64 2d 77 69 74 68 69 6e 20 64 61 79 73 29 20 74 ake-filter-played-within.days).t
404a0 72 61 63 6b 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d rack)))..(emms-filters-register-
404c0 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 4e 6f 74 20 70 6c 61 79 65 64 20 73 69 6e 63 65 filter-factory."Not.played.since
404e0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 "..............................'
40500 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 6e 6f 74 2d 70 6c 61 emms-filters-make-filter-not-pla
40520 79 65 64 2d 77 69 74 68 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yed-within......................
40540 20 20 20 20 20 20 20 20 27 28 28 22 44 61 79 73 3a 20 22 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e ........'(("Days:.".(:number...n
40560 69 6c 29 29 29 29 0a 0a 3b 3b 20 47 65 74 74 69 6e 67 20 74 68 65 20 79 65 61 72 20 69 73 20 73 il))))..;;.Getting.the.year.is.s
40580 70 65 63 69 61 6c 2e 20 49 74 20 6d 69 67 68 74 20 62 65 20 69 6e 20 79 65 61 72 20 6f 72 20 64 pecial..It.might.be.in.year.or.d
405a0 61 74 65 2e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d 79 65 61 ate..(defun.emms-filters-get-yea
405c0 72 20 28 74 72 61 63 6b 29 0a 20 20 22 47 65 74 20 74 68 65 20 79 65 61 72 20 66 72 6f 6d 20 61 r.(track)..."Get.the.year.from.a
405e0 20 54 52 41 43 4b 2e 20 43 68 65 63 6b 20 79 65 61 72 20 61 6e 64 20 64 61 74 65 20 66 69 65 6c .TRACK..Check.year.and.date.fiel
40600 64 73 2e 0a 52 65 74 75 72 6e 73 20 61 20 6e 75 6d 62 65 72 22 0a 20 20 28 6c 65 74 2a 20 28 28 ds..Returns.a.number"...(let*.((
40620 79 65 61 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f year.(emms-track-get.track.'info
40640 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 65 20 28 65 6d 6d 73 2d 74 72 61 -year))..........(date.(emms-tra
40660 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 64 61 74 65 29 29 0a 20 20 20 20 20 20 ck-get.track.'info-date)).......
40680 20 20 20 28 79 65 61 72 20 28 6f 72 20 79 65 61 72 20 28 65 6d 6d 73 2d 66 6f 72 6d 61 74 2d 64 ...(year.(or.year.(emms-format-d
406a0 61 74 65 2d 74 6f 2d 79 65 61 72 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 ate-to-year.date)))..........(ye
406c0 61 72 20 28 61 6e 64 20 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 79 ar.(and.year.(string-to-number.y
406e0 65 61 72 29 29 29 29 0a 20 20 20 20 79 65 61 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ear)))).....year))..(defun.emms-
40700 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 79 65 61 72 2d 72 61 6e 67 65 20 28 filters-make-filter-year-range.(
40720 79 31 20 79 32 29 0a 20 20 22 4d 61 6b 65 20 61 20 64 61 74 65 20 72 61 6e 67 65 20 66 69 6c 74 y1.y2)..."Make.a.date.range.filt
40740 65 72 20 66 72 6f 6d 20 59 31 20 61 6e 64 20 59 32 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 er.from.Y1.and.Y2."...(let.((loc
40760 61 6c 2d 79 31 20 79 31 29 0a 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 79 32 20 79 32 29 29 al-y1.y1).........(local-y2.y2))
40780 0a 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 .....#'(lambda.(track).........(
407a0 6c 65 74 20 28 28 79 65 61 72 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d 79 65 61 let.((year.(emms-filters-get-yea
407c0 72 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 r.track)))...........(and.......
407e0 20 20 20 20 20 79 65 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 6c 6f 63 61 6c 2d 79 .....year............(<=.local-y
40800 31 20 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6c 6f 63 61 6c 2d 79 32 20 1.year)............(>=.local-y2.
40820 79 65 61 72 29 29 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 year))))))..(emms-filters-regist
40840 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 59 65 61 72 20 72 61 6e 67 65 22 0a 20 er-filter-factory."Year.range"..
40860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d ............................'emm
40880 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 79 65 61 72 2d 72 61 6e 67 65 s-filters-make-filter-year-range
408a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 ..............................'(
408c0 28 22 53 74 61 72 74 20 79 65 61 72 3a 22 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 0a ("Start.year:".(:number...nil)).
408e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
40900 22 45 6e 64 20 79 65 61 72 3a 22 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 0a "End.year:".(:number...nil))))..
40920 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d (defun.emms-filters-make-filter-
40940 79 65 61 72 2d 67 72 65 61 74 65 72 20 28 79 65 61 72 29 0a 20 20 22 4d 61 6b 65 20 61 20 47 72 year-greater.(year)..."Make.a.Gr
40960 65 61 74 65 72 20 74 68 61 6e 20 79 65 61 72 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 59 45 41 52 eater.than.year.filter.from.YEAR
40980 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 79 65 61 72 20 79 65 61 72 29 29 0a 20 20 ."...(let.((local-year.year))...
409a0 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 ..#'(lambda.(track).........(let
409c0 20 28 28 79 65 61 72 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d 79 65 61 72 20 74 .((year.(emms-filters-get-year.t
409e0 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 rack)))...........(and..........
40a00 20 20 79 65 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 6c 6f 63 61 6c 2d 79 65 61 72 ..year............(<=.local-year
40a20 20 79 65 61 72 29 29 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 .year))))))..(emms-filters-regis
40a40 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 47 72 65 61 74 65 72 20 74 68 61 6e ter-filter-factory."Greater.than
40a60 20 59 65 61 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Year"..........................
40a80 20 20 20 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 79 65 ....'emms-filters-make-filter-ye
40aa0 61 72 2d 67 72 65 61 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar-greater......................
40ac0 20 20 20 20 20 20 20 20 27 28 28 22 47 72 65 61 74 65 72 20 74 68 61 6e 20 79 65 61 72 3a 20 22 ........'(("Greater.than.year:."
40ae0 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 .(:number...nil))))..(defun.emms
40b00 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 79 65 61 72 2d 6c 65 73 73 20 28 -filters-make-filter-year-less.(
40b20 79 65 61 72 29 0a 20 20 22 4d 61 6b 65 20 61 20 4c 65 73 73 20 74 68 61 6e 20 79 65 61 72 20 66 year)..."Make.a.Less.than.year.f
40b40 69 6c 74 65 72 20 66 72 6f 6d 20 59 45 41 52 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c ilter.from.YEAR."...(let.((local
40b60 2d 79 65 61 72 20 79 65 61 72 29 29 0a 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 -year.year)).....#'(lambda.(trac
40b80 6b 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 79 65 61 72 20 28 65 6d 6d 73 2d 66 69 6c k).........(let.((year.(emms-fil
40ba0 74 65 72 73 2d 67 65 74 2d 79 65 61 72 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 ters-get-year.track)))..........
40bc0 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 79 65 61 72 0a 20 20 20 20 20 20 20 20 20 20 .(and............year...........
40be0 20 28 3e 3d 20 6c 6f 63 61 6c 2d 79 65 61 72 20 79 65 61 72 29 29 29 29 29 29 0a 0a 28 65 6d 6d .(>=.local-year.year))))))..(emm
40c00 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 s-filters-register-filter-factor
40c20 79 20 22 4c 65 73 73 20 74 68 61 6e 20 59 65 61 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 y."Less.than.Year"..............
40c40 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d .............'emms-filters-make-
40c60 66 69 6c 74 65 72 2d 79 65 61 72 2d 6c 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 filter-year-less................
40c80 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 4c 65 73 73 20 74 68 61 6e 20 79 65 61 72 3a 20 22 ...........'(("Less.than.year:."
40ca0 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 3b 3b 20 66 69 65 6c 64 73 2d 73 .(:number...nil))))..;;.fields-s
40cc0 65 61 72 63 68 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 41 20 72 65 70 6c earch.;;.-------------.;;.A.repl
40ce0 61 63 65 6d 65 6e 74 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 66 6f 72 20 74 68 65 20 65 acement.filter.factory.for.the.e
40d00 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 66 69 6c 74 65 72 mms-browser-fields-search.filter
40d20 2e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 ..(defun.emms-filters-make-filte
40d40 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 28 66 69 65 6c 64 73 20 63 6f 6d 70 61 72 65 2d r-fields-search.(fields.compare-
40d60 76 61 6c 75 65 29 0a 20 20 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 74 6f 20 73 65 61 72 63 value)..."Make.a.filter.to.searc
40d80 68 20 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 20 46 49 45 4c 44 53 20 66 6f 72 20 h.in.a.list.of.track.FIELDS.for.
40da0 43 4f 4d 50 41 52 45 2d 56 41 4c 55 45 2e 0a 54 68 69 73 20 72 65 70 6c 61 63 65 73 20 74 68 65 COMPARE-VALUE..This.replaces.the
40dc0 20 6f 72 69 67 69 6e 61 6c 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 6d 61 .original.emms-browser.search.ma
40de0 74 63 68 2d 70 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c tch-p.functionality."...(let.((l
40e00 6f 63 61 6c 2d 66 69 65 6c 64 73 20 66 69 65 6c 64 73 29 0a 20 20 20 20 20 20 20 20 28 6c 6f 63 ocal-fields.fields).........(loc
40e20 61 6c 2d 63 6f 6d 70 61 72 65 2d 76 61 6c 75 65 20 63 6f 6d 70 61 72 65 2d 76 61 6c 75 65 29 29 al-compare-value.compare-value))
40e40 0a 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 .....#'(lambda.(track).........(
40e60 63 6c 2d 72 65 64 75 63 65 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 72 65 73 75 cl-reduce..........(lambda.(resu
40e80 6c 74 20 66 69 65 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 lt.field)............(let.((trac
40ea0 6b 2d 76 61 6c 75 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 66 69 k-value.(emms-track-get.track.fi
40ec0 65 6c 64 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 72 65 73 75 6c eld."")))..............(or.resul
40ee0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 74 72 61 63 6b 2d 76 61 t..................(and.track-va
40f00 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e lue.......................(strin
40f20 67 2d 6d 61 74 63 68 20 6c 6f 63 61 6c 2d 63 6f 6d 70 61 72 65 2d 76 61 6c 75 65 20 74 72 61 63 g-match.local-compare-value.trac
40f40 6b 2d 76 61 6c 75 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 2d 66 69 65 6c k-value)))))..........local-fiel
40f60 64 73 0a 20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 20 6e 69 6c 29 29 ds..........:initial-value.nil))
40f80 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d ))..(defvar.emms-filters-string-
40fa0 66 69 65 6c 64 2d 6e 61 6d 65 73 0a 20 20 27 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 field-names...'(info-albumartist
40fc0 0a 20 20 20 20 69 6e 66 6f 2d 61 72 74 69 73 74 0a 20 20 20 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 .....info-artist.....info-compos
40fe0 65 72 0a 20 20 20 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 0a 20 20 20 20 69 6e 66 6f 2d 74 er.....info-performer.....info-t
41000 69 74 6c 65 0a 20 20 20 20 69 6e 66 6f 2d 61 6c 62 75 6d 0a 20 20 20 20 69 6e 66 6f 2d 64 61 74 itle.....info-album.....info-dat
41020 65 0a 20 20 20 20 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 64 61 74 65 0a 20 20 20 20 69 6e 66 6f e.....info-originaldate.....info
41040 2d 6e 6f 74 65 0a 20 20 20 20 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 20 20 22 54 68 65 20 6c 69 73 -note.....info-genre)..."The.lis
41060 74 20 6f 66 20 74 72 61 63 6b 20 66 69 65 6c 64 20 6e 61 6d 65 73 20 74 68 61 74 20 61 72 65 20 t.of.track.field.names.that.are.
41080 73 74 72 69 6e 67 73 2e 22 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 strings.")..(emms-filters-regist
410a0 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 46 69 65 6c 64 73 20 73 65 61 72 63 er-filter-factory.."Fields.searc
410c0 68 22 0a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 h"..'emms-filters-make-filter-fi
410e0 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 60 28 28 22 43 68 6f 6f 73 65 20 66 69 65 6c 64 73 20 74 elds-search..`(("Choose.fields.t
41100 6f 20 73 65 61 72 63 68 20 3a 20 22 0a 20 20 20 20 28 3a 6c 69 73 74 20 2e 20 2c 65 6d 6d 73 2d o.search.:.".....(:list...,emms-
41120 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 66 69 65 6c 64 2d 6e 61 6d 65 73 29 29 0a 20 20 20 filters-string-field-names))....
41140 28 22 53 65 61 72 63 68 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a ("Search:.".(:string...nil))))..
41160 3b 3b 20 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;.field-compare.;;.------------
41180 2d 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 65 72 2d 66 69 -.(defvar.emms-filters-number-fi
411a0 65 6c 64 2d 6e 61 6d 65 73 0a 20 20 27 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 0a 20 eld-names...'(info-tracknumber..
411c0 20 20 20 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 0a 20 20 20 20 69 6e 66 6f 2d 79 65 61 72 ...info-discnumber.....info-year
411e0 0a 20 20 20 20 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 79 65 61 72 0a 20 20 20 20 69 6e 66 6f 2d .....info-originalyear.....info-
41200 6f 72 69 67 69 6e 61 6c 64 61 74 65 0a 20 20 20 20 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 originaldate.....info-playing-ti
41220 6d 65 29 0a 20 20 22 54 68 65 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 20 66 69 65 6c 64 20 6e me)..."The.list.of.track.field.n
41240 61 6d 65 73 20 74 68 61 74 20 61 72 65 20 6e 75 6d 62 65 72 73 2e 22 29 0a 0a 28 64 65 66 76 61 ames.that.are.numbers.")..(defva
41260 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 63 6f 6d 70 61 72 65 2d 66 75 r.emms-filters-string-compare-fu
41280 6e 63 74 69 6f 6e 73 0a 20 20 27 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 74 63 68 2d 73 nctions...'(emms-filters-match-s
412a0 74 72 69 6e 67 0a 20 20 20 20 73 74 72 69 6e 67 2d 65 71 75 61 6c 2d 69 67 6e 6f 72 65 2d 63 61 tring.....string-equal-ignore-ca
412c0 73 65 0a 20 20 20 20 73 74 72 69 6e 67 3d 0a 20 20 20 20 73 74 72 69 6e 67 3c 0a 20 20 20 20 73 se.....string=.....string<.....s
412e0 74 72 69 6e 67 3e 0a 20 20 20 20 73 74 72 69 6e 67 2d 6d 61 74 63 68 29 0a 20 20 22 43 6f 6d 70 tring>.....string-match)..."Comp
41300 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 66 69 6c 74 65 72 20 63 72 65 61 74 69 6f are.functions.for.filter.creatio
41320 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 65 n.")..(defvar.emms-filters-numbe
41340 72 2d 63 6f 6d 70 61 72 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 27 28 3e 20 3e 3d 20 3d 20 3c r-compare-functions...'(>.>=.=.<
41360 3d 20 3c 29 0a 20 20 22 43 6f 6d 70 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 66 69 =.<)..."Compare.functions.for.fi
41380 6c 74 65 72 20 63 72 65 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 lter.creation.")..(defvar.emms-f
413a0 69 6c 74 65 72 73 2d 74 72 61 63 6b 2d 74 79 70 65 73 0a 20 20 27 28 66 69 6c 65 20 75 72 6c 20 ilters-track-types...'(file.url.
413c0 73 74 72 65 61 6d 20 73 74 72 65 61 6d 6c 69 73 74 20 70 6c 61 79 6c 69 73 74 29 0a 20 20 22 54 stream.streamlist.playlist)..."T
413e0 79 70 65 73 20 6f 66 20 74 72 61 63 6b 73 20 77 65 20 63 61 6e 20 68 61 76 65 2e 22 29 0a 0a 28 ypes.of.tracks.we.can.have.")..(
41400 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 defun.emms-filters-match-string.
41420 28 73 74 72 69 6e 67 31 20 73 74 72 69 6e 67 32 29 0a 20 20 22 43 68 65 63 6b 20 74 6f 20 73 65 (string1.string2)..."Check.to.se
41440 65 20 69 66 20 53 54 52 49 4e 47 32 20 69 73 20 69 6e 20 53 54 52 49 4e 47 31 2e 0a 0a 54 68 69 e.if.STRING2.is.in.STRING1...Thi
41460 73 20 69 73 20 74 68 65 20 69 6e 76 65 72 73 65 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 20 s.is.the.inverse.parameter.list.
41480 6f 66 20 60 73 74 72 69 6e 67 2d 6d 61 74 63 68 27 2e 0a 53 6f 20 77 65 20 63 61 6e 20 63 6f 6e of.`string-match'..So.we.can.con
414a0 74 69 6e 75 65 20 77 69 74 68 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 6f 66 0a 60 66 69 6c 74 tinue.with.the.language.of.`filt
414c0 65 72 20 74 72 61 63 6b 20 77 68 65 72 65 20 66 69 65 6c 64 20 63 6f 6e 74 61 69 6e 73 20 73 74 er.track.where.field.contains.st
414e0 72 69 6e 67 27 0a 60 66 69 6c 74 65 72 20 74 72 61 63 6b 20 77 68 65 72 65 20 66 69 65 6c 64 20 ring'.`filter.track.where.field.
41500 3e 20 76 61 6c 75 65 27 2e 22 0a 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 73 74 72 69 6e >.value'."...(string-match.strin
41520 67 32 20 73 74 72 69 6e 67 31 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 g2.string1))..(defun.emms-filter
41540 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 20 28 6f 70 65 s-make-filter-field-compare.(ope
41560 72 61 74 6f 72 2d 66 75 6e 63 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 0a 20 20 rator-func.field.compare-val)...
41580 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 46 49 45 "Make.a.filter.that.compares.FIE
415a0 4c 44 20 74 6f 20 43 4f 4d 50 41 52 45 2d 56 41 4c 55 45 20 77 69 74 68 20 4f 50 45 52 41 54 4f LD.to.COMPARE-VALUE.with.OPERATO
415c0 52 2d 46 55 4e 43 2e 0a 57 6f 72 6b 73 20 66 6f 72 20 6e 75 6d 62 65 72 20 66 69 65 6c 64 73 20 R-FUNC..Works.for.number.fields.
415e0 61 6e 64 20 73 74 72 69 6e 67 20 66 69 65 6c 64 73 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 61 and.string.fields.provided.the.a
41600 70 70 72 6f 70 72 69 61 74 65 0a 74 79 70 65 20 6d 61 74 63 68 20 62 65 74 77 65 65 6e 20 76 61 ppropriate.type.match.between.va
41620 6c 75 65 73 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e lues.and.the.comparison.function
41640 2e 20 50 61 72 74 69 61 6c 73 20 63 61 6e 0a 65 61 73 69 6c 79 20 6d 61 6b 65 20 6d 6f 72 65 20 ..Partials.can.easily.make.more.
41660 73 70 65 63 69 66 69 63 20 66 61 63 74 6f 72 79 20 66 75 6e 63 74 69 6f 6e 73 20 66 72 6f 6d 20 specific.factory.functions.from.
41680 74 68 69 73 20 6f 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 this.one."...(let.((local-operat
416a0 6f 72 20 6f 70 65 72 61 74 6f 72 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c or.operator-func).........(local
416c0 2d 66 69 65 6c 64 20 66 69 65 6c 64 29 0a 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 63 6f 6d -field.field).........(local-com
416e0 70 61 72 65 2d 76 61 6c 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 29 0a 20 20 20 20 23 27 28 6c 61 pare-val.compare-val)).....#'(la
41700 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 mbda.(track).........(let.((trac
41720 6b 2d 76 61 6c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 6c 6f 63 61 k-val.(emms-track-get.track.loca
41740 6c 2d 66 69 65 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 l-field)))...........(and.......
41760 20 20 20 20 20 74 72 61 63 6b 2d 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 .....track-val............(funca
41780 6c 6c 20 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 6f 72 20 6c 6f 63 61 6c 2d 63 6f 6d 70 61 72 65 2d ll.local-operator.local-compare-
417a0 76 61 6c 20 74 72 61 63 6b 2d 76 61 6c 29 29 29 29 29 29 0a 0a 3b 3b 20 6e 6f 74 20 73 75 72 65 val.track-val))))))..;;.not.sure
417c0 20 61 6e 79 6f 6e 65 20 77 69 6c 6c 20 75 73 65 20 74 68 65 73 65 20 64 69 72 65 63 74 6c 79 20 .anyone.will.use.these.directly.
417e0 62 75 74 20 79 6f 75 20 6e 65 76 65 72 20 6b 6e 6f 77 2e 0a 3b 3b 20 49 74 73 20 61 20 67 6f 6f but.you.never.know..;;.Its.a.goo
41800 64 20 74 65 73 74 20 66 6f 72 20 74 68 65 20 70 72 6f 6d 70 74 69 6e 67 20 73 79 73 74 65 6d 2e d.test.for.the.prompting.system.
41820 0a 3b 3b 20 4e 6f 74 65 20 74 68 65 20 75 73 65 20 6f 66 20 60 20 61 6e 64 20 2c 20 74 6f 20 72 .;;.Note.the.use.of.`.and.,.to.r
41840 65 73 6f 6c 76 65 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6c 69 73 74 73 20 68 65 72 65 2e esolve.the.selection.lists.here.
41860 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 .(emms-filters-register-filter-f
41880 61 63 74 6f 72 79 20 22 4e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 22 0a 20 20 actory."Number.field.compare"...
418a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 ...........................'emms
418c0 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 -filters-make-filter-field-compa
418e0 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 re..............................
41900 3b 3b 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;;.prompts......................
41920 20 20 20 20 20 20 20 20 60 28 28 22 43 6f 6d 70 61 72 65 20 46 75 6e 63 74 69 6f 6e 3a 20 22 0a ........`(("Compare.Function:.".
41940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
41960 28 3a 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 65 (:function...,emms-filters-numbe
41980 72 2d 63 6f 6d 70 61 72 65 2d 66 75 6e 63 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 r-compare-functions))...........
419a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 46 69 65 6c 64 20 6e 61 6d .....................("Field.nam
419c0 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e:."............................
419e0 20 20 20 20 20 28 3a 73 79 6d 62 6f 6c 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 .....(:symbol...,emms-filters-nu
41a00 6d 62 65 72 2d 66 69 65 6c 64 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 mber-field-names))..............
41a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 43 6f 6d 70 61 72 65 20 74 6f 3a 20 ..................("Compare.to:.
41a40 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
41a60 20 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 ..(:number...nil))))..(emms-filt
41a80 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 53 74 72 ers-register-filter-factory."Str
41aa0 69 6e 67 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ing.field.compare"..............
41ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 ................'emms-filters-ma
41ae0 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 ke-filter-field-compare.........
41b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 6d 70 74 73 0a .....................;;.prompts.
41b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 .............................`((
41b40 22 43 6f 6d 70 61 72 65 20 46 75 6e 63 74 69 6f 6e 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 "Compare.Function:."............
41b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 75 6e 63 74 69 6f 6e 20 .....................(:function.
41b80 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 63 6f 6d 70 61 72 65 2d 66 ..,emms-filters-string-compare-f
41ba0 75 6e 63 74 69 6f 6e 73 20 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 unctions.)).....................
41bc0 20 20 20 20 20 20 20 20 20 20 20 28 22 46 69 65 6c 64 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 ...........("Field.name:."......
41be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 73 79 6d ...........................(:sym
41c00 62 6f 6c 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 72 69 6e 67 2d 66 69 65 6c 64 bol...,emms-filters-string-field
41c20 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -names))........................
41c40 20 20 20 20 20 20 20 20 28 22 43 6f 6d 70 61 72 65 20 74 6f 3a 20 22 0a 20 20 20 20 20 20 20 20 ........("Compare.to:.".........
41c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 73 74 72 69 6e 67 ........................(:string
41c80 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 3b 3b 20 47 65 6e 65 72 69 63 20 66 69 65 6c 64 20 63 6f 6d ...nil))))..;;.Generic.field.com
41ca0 70 61 72 69 73 6f 6e 20 66 61 63 74 6f 72 69 65 73 2e 0a 3b 3b 20 70 61 72 61 6d 65 74 65 72 20 parison.factories..;;.parameter.
41cc0 6f 72 64 65 72 20 69 73 20 67 6f 6f 64 20 66 6f 72 20 6d 61 6b 69 6e 67 20 70 61 72 74 69 61 6c order.is.good.for.making.partial
41ce0 73 2e 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 s..(emms-filters-register-filter
41d00 2d 66 61 63 74 6f 72 79 0a 20 22 44 75 72 61 74 69 6f 6e 20 6c 65 73 73 22 0a 20 28 61 70 70 6c -factory.."Duration.less"..(appl
41d20 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 y-partially.'emms-filters-make-f
41d40 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ilter-field-compare.............
41d60 20 20 20 20 20 20 27 3c 3d 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 27 ......'<=.'info-playing-time)..'
41d80 28 28 22 44 75 72 61 74 69 6f 6e 3a 20 22 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 (("Duration:.".(:number...nil)))
41da0 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 )..(emms-filters-register-filter
41dc0 2d 66 61 63 74 6f 72 79 0a 20 22 44 75 72 61 74 69 6f 6e 20 6d 6f 72 65 22 0a 20 28 61 70 70 6c -factory.."Duration.more"..(appl
41de0 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 y-partially.'emms-filters-make-f
41e00 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ilter-field-compare.............
41e20 20 20 20 20 20 20 27 3e 3d 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 27 ......'>=.'info-playing-time)..'
41e40 28 28 22 44 75 72 61 74 69 6f 6e 3a 20 22 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 (("Duration:.".(:number...nil)))
41e60 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 )..(emms-filters-register-filter
41e80 2d 66 61 63 74 6f 72 79 0a 20 22 47 65 6e 72 65 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 -factory.."Genre"..(apply-partia
41ea0 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 lly.'emms-filters-make-filter-fi
41ec0 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 eld-compare...................'s
41ee0 74 72 69 6e 67 2d 65 71 75 61 6c 2d 69 67 6e 6f 72 65 2d 63 61 73 65 20 27 69 6e 66 6f 2d 67 65 tring-equal-ignore-case.'info-ge
41f00 6e 72 65 29 0a 20 27 28 28 22 47 65 6e 72 65 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 nre)..'(("Genre:.".(:string...ni
41f20 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 l))))..(emms-filters-register-fi
41f40 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 54 72 61 63 6b 20 74 79 70 65 22 0a 20 28 61 70 70 lter-factory.."Track.type"..(app
41f60 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d ly-partially.'emms-filters-make-
41f80 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 filter-field-compare............
41fa0 20 20 20 20 20 20 20 27 65 71 20 27 74 79 70 65 29 0a 20 27 28 28 22 54 72 61 63 6b 20 74 79 70 .......'eq.'type)..'(("Track.typ
41fc0 65 3a 20 22 0a 20 20 20 20 28 3a 73 74 72 69 6e 67 20 2e 20 27 28 66 69 6c 65 20 75 72 6c 20 73 e:.".....(:string...'(file.url.s
41fe0 74 72 65 61 6d 20 73 74 72 65 61 6d 6c 69 73 74 20 70 6c 61 79 6c 69 73 74 29 29 29 29 29 0a 0a tream.streamlist.playlist)))))..
42000 3b 3b 20 53 65 61 72 63 68 20 66 69 65 6c 64 73 20 66 6f 72 20 74 65 78 74 2e 20 20 53 61 6d 65 ;;.Search.fields.for.text...Same
42020 20 62 65 68 61 76 69 6f 72 20 61 73 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 .behavior.as.emms-browser-search
42040 2e 0a 3b 3b 20 52 65 70 6c 61 63 65 20 74 68 65 20 65 6d 6d 73 20 62 72 6f 77 73 65 72 20 73 65 ..;;.Replace.the.emms.browser.se
42060 61 72 63 68 65 73 20 77 69 74 68 20 74 68 65 73 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 arches.with.these.filter.factori
42080 65 73 2e 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 es...(emms-filters-register-filt
420a0 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 41 6c 62 75 6d 2d 61 72 74 69 73 74 22 0a 20 28 61 70 70 er-factory.."Album-artist"..(app
420c0 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d ly-partially.'emms-filters-make-
420e0 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 filter-fields-search............
42100 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 29 0a 20 27 28 28 .......'(info-albumartist))..'((
42120 22 53 65 61 72 63 68 20 61 6c 62 75 6d 20 61 72 74 69 73 74 3a 20 22 20 28 3a 73 74 72 69 6e 67 "Search.album.artist:.".(:string
42140 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 ...nil))))..(emms-filters-regist
42160 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 41 72 74 69 73 74 22 0a 20 28 61 70 er-filter-factory.."Artist"..(ap
42180 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 ply-partially.'emms-filters-make
421a0 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 -filter-fields-search...........
421c0 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 20 27 28 28 22 53 65 61 ........'(info-artist))..'(("Sea
421e0 72 63 68 20 61 72 74 69 73 74 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 rch.artist:.".(:string...nil))))
42200 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d ..(emms-filters-register-filter-
42220 66 61 63 74 6f 72 79 0a 20 22 41 72 74 69 73 74 73 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 factory.."Artists"..(apply-parti
42240 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 ally.'emms-filters-make-filter-f
42260 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 ields-search...................'
42280 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 29 0a (info-artist.info-albumartist)).
422a0 20 27 28 28 22 53 65 61 72 63 68 20 61 72 74 69 73 74 73 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 .'(("Search.artists:.".(:string.
422c0 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 ..nil))))..(emms-filters-registe
422e0 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 41 72 74 69 73 74 73 20 61 6e 64 20 63 r-filter-factory.."Artists.and.c
42300 6f 6d 70 6f 73 65 72 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 omposer"..(apply-partially.'emms
42320 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 -filters-make-filter-fields-sear
42340 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 61 72 74 69 ch...................'(info-arti
42360 73 74 20 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 st.info-albumartist.info-compose
42380 72 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 61 72 74 69 73 74 73 20 61 6e 64 20 63 6f 6d 70 r))..'(("Search.artists.and.comp
423a0 6f 73 65 72 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d oser:.".(:string...nil))))..(emm
423c0 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 s-filters-register-filter-factor
423e0 79 0a 20 22 41 6c 62 75 6d 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d y.."Album"..(apply-partially.'em
42400 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 ms-filters-make-filter-fields-se
42420 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 61 6c arch...................'(info-al
42440 62 75 6d 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 61 6c 62 75 6d 3a 20 22 20 28 3a 73 74 72 bum))..'(("Search.album:.".(:str
42460 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 ing...nil))))..(emms-filters-reg
42480 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 54 69 74 6c 65 22 0a 20 28 ister-filter-factory.."Title"..(
424a0 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 apply-partially.'emms-filters-ma
424c0 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 ke-filter-fields-search.........
424e0 20 20 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 74 69 74 6c 65 29 29 0a 20 27 28 28 22 53 65 ..........'(info-title))..'(("Se
42500 61 72 63 68 20 74 69 74 6c 65 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 arch.title:.".(:string...nil))))
42520 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d ..(emms-filters-register-filter-
42540 66 61 63 74 6f 72 79 0a 20 22 50 65 72 66 6f 72 6d 65 72 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 factory.."Performer"..(apply-par
42560 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 tially.'emms-filters-make-filter
42580 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -fields-search..................
425a0 20 27 28 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 .'(info-performer))..'(("Search.
425c0 70 65 72 66 6f 72 6d 65 72 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a performer:.".(:string...nil)))).
425e0 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 .(emms-filters-register-filter-f
42600 61 63 74 6f 72 79 0a 20 22 4f 72 63 68 65 73 74 72 61 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 actory.."Orchestra"..(apply-part
42620 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d ially.'emms-filters-make-filter-
42640 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fields-search...................
42660 27 28 69 6e 66 6f 2d 6f 72 63 68 65 73 74 72 61 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 6f '(info-orchestra))..'(("Search.o
42680 72 63 68 65 73 74 72 61 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a rchestra:.".(:string...nil))))..
426a0 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 (emms-filters-register-filter-fa
426c0 63 74 6f 72 79 0a 20 22 43 6f 6d 70 6f 73 65 72 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 ctory.."Composer"..(apply-partia
426e0 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 lly.'emms-filters-make-filter-fi
42700 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 elds-search...................'(
42720 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 63 6f 6d 70 info-composer))..'(("Search.comp
42740 6f 73 65 72 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d oser:.".(:string...nil))))..(emm
42760 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 s-filters-register-filter-factor
42780 79 0a 20 22 4e 6f 74 65 73 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d y.."Notes"..(apply-partially.'em
427a0 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 ms-filters-make-filter-fields-se
427c0 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 6e 6f arch...................'(info-no
427e0 74 65 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 6e 6f 74 65 73 3a 20 22 20 28 3a 73 74 72 69 te))..'(("Search.notes:.".(:stri
42800 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 ng...nil))))..(emms-filters-regi
42820 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 54 69 74 6c 65 73 22 0a 20 28 ster-filter-factory.."Titles"..(
42840 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 apply-partially.'emms-filters-ma
42860 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 ke-filter-fields-search.........
42880 20 20 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 74 69 74 6c 65 0a 20 20 20 20 20 20 20 20 20 ..........'(info-title..........
428a0 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 20 27 28 28 22 53 65 61 ...........info-album))..'(("Sea
428c0 72 63 68 20 74 69 74 6c 65 73 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 rch.titles:.".(:string...nil))))
428e0 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d ..(emms-filters-register-filter-
42900 66 61 63 74 6f 72 79 0a 20 22 4e 61 6d 65 73 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c factory.."Names"..(apply-partial
42920 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 ly.'emms-filters-make-filter-fie
42940 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 69 lds-search...................'(i
42960 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nfo-albumartist.................
42980 20 20 20 20 69 6e 66 6f 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....info-name...................
429a0 20 20 69 6e 66 6f 2d 61 72 74 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..info-artist...................
429c0 20 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..info-composer.................
429e0 20 20 20 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 ....info-performer))..'(("Search
42a00 20 6e 61 6d 65 73 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 .names:.".(:string...nil))))..(e
42a20 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 mms-filters-register-filter-fact
42a40 6f 72 79 0a 20 22 4e 61 6d 65 73 20 61 6e 64 20 74 69 74 6c 65 73 22 0a 20 28 61 70 70 6c 79 2d ory.."Names.and.titles"..(apply-
42a60 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c partially.'emms-filters-make-fil
42a80 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ter-fields-search...............
42aa0 20 20 20 20 27 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 20 20 20 20 20 20 20 20 20 ....'(info-albumartist..........
42ac0 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 61 72 74 69 73 74 0a 20 20 20 20 20 20 20 20 20 ...........info-artist..........
42ae0 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 20 20 20 20 20 20 20 ...........info-composer........
42b00 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 0a 20 20 20 20 .............info-performer.....
42b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 61 6d 65 0a 20 20 20 20 20 20 ................info-name.......
42b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 74 69 74 6c 65 0a 20 20 20 20 20 20 20 ..............info-title........
42b60 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 20 27 28 28 22 53 .............info-album))..'(("S
42b80 65 61 72 63 68 20 6e 61 6d 65 73 20 61 6e 64 20 74 69 74 6c 65 73 3a 20 22 20 28 3a 73 74 72 69 earch.names.and.titles:.".(:stri
42ba0 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 ng...nil))))..(emms-filters-regi
42bc0 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 41 6c 6c 20 74 65 78 74 22 0a ster-filter-factory.."All.text".
42be0 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d .(apply-partially.'emms-filters-
42c00 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 make-filter-fields-search.......
42c20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 20 ............'(info-albumartist..
42c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 61 72 74 69 73 74 0a 20 ...................info-artist..
42c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 ...................info-composer
42c80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 70 65 72 66 6f 72 .....................info-perfor
42ca0 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 74 69 74 mer.....................info-tit
42cc0 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 61 6c 62 75 le.....................info-albu
42ce0 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 61 6d 65 0a m.....................info-name.
42d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 64 61 74 65 0a 20 20 ....................info-date...
42d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 64 ..................info-originald
42d40 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 6f 74 ate.....................info-not
42d60 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 67 65 6e 72 65 e.....................info-genre
42d80 29 29 0a 20 27 28 28 22 53 65 61 72 63 68 20 61 6c 6c 20 74 65 78 74 20 66 69 65 6c 64 73 3a 20 ))..'(("Search.all.text.fields:.
42da0 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 3b 3b 20 4d 75 6c 74 69 2d 66 ".(:string...nil))))..;;.Multi-f
42dc0 69 6c 74 65 72 20 20 2d 20 4a 75 73 74 20 61 6e 6f 74 68 65 72 20 66 61 63 74 6f 72 79 2e 0a 3b ilter..-.Just.another.factory..;
42de0 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42e00 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 0a 3b 3b 20 41 20 66 69 6c 74 65 72 20 6f 66 20 66 69 ;;;;;;;;;;;;;;.;;.A.filter.of.fi
42e20 6c 74 65 72 73 2e 20 41 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 6f 66 20 66 69 6c 74 65 72 lters..A.list.of.lists.of.filter
42e40 20 4e 61 6d 65 73 20 61 6e 64 20 6d 61 79 62 65 20 61 20 3a 6e 6f 74 2e 0a 3b 3b 20 45 61 63 68 .Names.and.maybe.a.:not..;;.Each
42e60 20 6c 69 73 74 20 69 73 20 52 65 64 75 63 65 64 20 77 69 74 68 20 4f 72 20 74 68 65 6e 20 72 65 .list.is.Reduced.with.Or.then.re
42e80 64 75 63 65 64 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 41 6e 64 20 61 6e 64 20 4e 6f 74 2e duced.together.with.And.and.Not.
42ea0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 2d 67 72 6f 75 70 2d 3e 6d .(defun.emms-filters-or-group->m
42ec0 75 6c 74 69 2d 66 75 6e 63 73 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 2d 6c 69 73 74 29 0a 20 20 ulti-funcs.(filter-name-list)...
42ee0 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 66 72 6f 6d "Return.a.list.of.functions.from
42f00 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 66 6f 72 20 61 20 46 49 4c 54 .emms-filters-filters.for.a.FILT
42f20 45 52 2d 4e 41 4d 45 2d 4c 49 53 54 2e 0a 46 75 6e 63 74 69 6f 6e 73 20 61 6c 72 65 61 64 79 20 ER-NAME-LIST..Functions.already.
42f40 69 6e 20 74 68 65 20 6c 69 73 74 20 77 69 6c 6c 20 62 65 20 70 61 73 73 65 64 20 74 68 72 6f 75 in.the.list.will.be.passed.throu
42f60 67 68 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 74 65 72 2d 6e gh."...(mapcar.(lambda.(filter-n
42f80 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 ame).............(emms-filters-f
42fa0 69 6e 64 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 ind-filter-function.filter-name)
42fc0 29 0a 20 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 72 2d 6e 61 6d 65 2d 6c 69 73 74 29 29 0a 0a )...........filter-name-list))..
42fe0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 65 74 61 2d 66 69 6c 74 65 72 2d (defun.emms-filters-meta-filter-
43000 3e 6d 75 6c 74 69 2d 66 75 6e 63 73 20 28 6d 65 74 61 2d 66 69 6c 74 65 72 29 0a 20 20 22 52 65 >multi-funcs.(meta-filter)..."Re
43020 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 66 72 6f 6d 20 65 6d turn.a.list.of.functions.from.em
43040 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 66 6f 72 20 61 20 4d 45 54 41 2d 46 49 ms-filters-filters.for.a.META-FI
43060 4c 54 45 52 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6f 72 2d 67 72 6f LTER."...(mapcar.(lambda.(or-gro
43080 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 up).............(emms-filters-or
430a0 2d 67 72 6f 75 70 2d 3e 6d 75 6c 74 69 2d 66 75 6e 63 73 20 6f 72 2d 67 72 6f 75 70 29 29 0a 20 -group->multi-funcs.or-group))..
430c0 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 .........meta-filter))..(defun.e
430e0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 64 75 63 65 2d 6f 72 2d 67 72 6f 75 70 20 28 6f 72 2d mms-filters-reduce-or-group.(or-
43100 67 72 6f 75 70 20 74 72 61 63 6b 29 0a 20 20 22 52 65 64 75 63 65 20 4f 52 2d 47 52 4f 55 50 20 group.track)..."Reduce.OR-GROUP.
43120 66 6f 72 20 54 52 41 43 4b 2e 22 0a 20 20 28 63 6c 2d 72 65 64 75 63 65 0a 20 20 20 28 6c 61 6d for.TRACK."...(cl-reduce....(lam
43140 62 64 61 20 28 72 65 73 75 6c 74 20 66 69 6c 74 65 72 2d 66 75 6e 63 29 0a 20 20 20 20 20 28 6f bda.(result.filter-func)......(o
43160 72 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 69 6c 74 65 r.result..........(funcall.filte
43180 72 2d 66 75 6e 63 20 74 72 61 63 6b 29 29 29 0a 20 20 20 6f 72 2d 67 72 6f 75 70 0a 20 20 20 3a r-func.track)))....or-group....:
431a0 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 initial-value.nil))..(defun.emms
431c0 2d 66 69 6c 74 65 72 73 2d 72 65 64 75 63 65 2d 69 6e 76 65 72 74 2d 6f 72 2d 67 72 6f 75 70 20 -filters-reduce-invert-or-group.
431e0 28 6f 72 2d 67 72 6f 75 70 20 74 72 61 63 6b 29 0a 20 20 22 43 61 6c 6c 20 61 6e 20 4f 52 2d 47 (or-group.track)..."Call.an.OR-G
43200 52 4f 55 50 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 20 77 69 74 68 20 54 52 41 43 4b 20 ROUP.list.of.filters.with.TRACK.
43220 61 6e 64 20 72 65 64 75 63 65 20 72 65 73 75 6c 74 20 77 69 74 68 20 4f 52 2e 0a 49 66 20 74 68 and.reduce.result.with.OR..If.th
43240 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 73 20 3a 6e 6f 74 20 74 68 65 6e 20 69 6e 76 65 72 74 e.first.item.is.:not.then.invert
43260 20 74 68 65 20 72 65 73 75 6c 74 20 66 72 6f 6d 20 74 68 65 20 72 65 64 75 63 74 69 6f 6e 2e 22 .the.result.from.the.reduction."
43280 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e 76 65 72 74 20 28 65 71 20 28 63 61 72 20 6f 72 2d 67 72 ...(let*.((invert.(eq.(car.or-gr
432a0 6f 75 70 29 20 3a 6e 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 28 69 66 20 oup).:not))..........(group.(if.
432c0 69 6e 76 65 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 invert.....................(cdr.
432e0 6f 72 2d 67 72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 2d 67 or-group)...................or-g
43300 72 6f 75 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 28 65 6d 6d 73 2d 66 69 roup))..........(result.(emms-fi
43320 6c 74 65 72 73 2d 72 65 64 75 63 65 2d 6f 72 2d 67 72 6f 75 70 20 67 72 6f 75 70 20 74 72 61 63 lters-reduce-or-group.group.trac
43340 6b 29 29 29 0a 20 20 20 20 28 69 66 20 69 6e 76 65 72 74 20 28 6e 6f 74 20 72 65 73 75 6c 74 29 k))).....(if.invert.(not.result)
43360 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d .result)))..(defun.emms-filters-
43380 6d 61 6b 65 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 28 6d 65 74 61 2d 66 69 6c 74 65 72 29 0a make-multi-filter.(meta-filter).
433a0 20 20 22 4d 61 6b 65 20 61 20 74 72 61 63 6b 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 .."Make.a.track.filter.function.
433c0 66 72 6f 6d 20 4d 45 54 41 2d 46 49 4c 54 45 52 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 77 from.META-FILTER..The.function.w
433e0 69 6c 6c 20 74 61 6b 65 20 61 20 74 72 61 63 6b 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 ill.take.a.track.as.a.parameter.
43400 61 6e 64 20 72 65 74 75 72 6e 20 74 20 69 66 20 74 68 65 20 74 72 61 63 6b 0a 64 6f 65 73 20 6e and.return.t.if.the.track.does.n
43420 6f 74 20 6d 61 74 63 68 20 74 68 65 20 66 69 6c 74 65 72 73 2e 0a 41 20 6d 75 6c 74 69 2d 66 69 ot.match.the.filters..A.multi-fi
43440 6c 74 65 72 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 6f 66 20 66 69 6c 74 65 lter.is.a.list.of.lists.of.filte
43460 72 20 6e 61 6d 65 73 2e 0a 54 68 65 20 74 72 61 63 6b 20 69 73 20 63 68 65 63 6b 65 64 20 61 67 r.names..The.track.is.checked.ag
43480 61 69 6e 73 74 20 65 61 63 68 20 66 69 6c 74 65 72 2c 20 65 61 63 68 20 6c 69 73 74 20 6f 66 20 ainst.each.filter,.each.list.of.
434a0 66 69 6c 74 65 72 73 20 69 73 0a 72 65 64 75 63 65 64 20 77 69 74 68 20 6f 72 2e 20 54 68 65 20 filters.is.reduced.with.or..The.
434c0 6c 69 73 74 73 20 61 72 65 20 72 65 64 75 63 65 64 20 77 69 74 68 20 61 6e 64 2e 0a 52 65 74 75 lists.are.reduced.with.and..Retu
434e0 72 6e 73 20 54 72 75 65 20 69 66 20 74 68 65 20 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 rns.True.if.the.track.should.be.
43500 66 69 6c 74 65 72 65 64 20 6f 75 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6d 75 filtered.out."...(let.((local-mu
43520 6c 74 69 2d 66 75 6e 63 73 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 lti-funcs..........(emms-filters
43540 2d 6d 65 74 61 2d 66 69 6c 74 65 72 2d 3e 6d 75 6c 74 69 2d 66 75 6e 63 73 20 6d 65 74 61 2d 66 -meta-filter->multi-funcs.meta-f
43560 69 6c 74 65 72 29 29 29 0a 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 ilter))).....#'(lambda.(track)..
43580 20 20 20 20 20 20 20 28 63 6c 2d 72 65 64 75 63 65 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 .......(cl-reduce..........(lamb
435a0 64 61 20 28 72 65 73 75 6c 74 20 66 75 6e 63 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 da.(result.funclist)............
435c0 28 61 6e 64 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d (and.result.................(emm
435e0 73 2d 66 69 6c 74 65 72 73 2d 72 65 64 75 63 65 2d 69 6e 76 65 72 74 2d 6f 72 2d 67 72 6f 75 70 s-filters-reduce-invert-or-group
43600 20 66 75 6e 63 6c 69 73 74 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 6c 6f 63 61 .funclist.track)))..........loca
43620 6c 2d 6d 75 6c 74 69 2d 66 75 6e 63 73 0a 20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 69 61 6c 2d l-multi-funcs..........:initial-
43640 76 61 6c 75 65 20 74 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 value.t))))..(emms-filters-regis
43660 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 ter-filter-factory."Multi-filter
43680 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 "..............................'
436a0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 0a 20 emms-filters-make-multi-filter..
436c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 6e 69 ............................'(ni
436e0 6c 29 29 0a 0a 3b 3b 3b 20 53 6f 6d 65 20 66 69 6c 74 65 72 73 2e 0a 3b 3b 3b 3b 3b 3b 3b 3b 3b l))..;;;.Some.filters..;;;;;;;;;
43700 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43720 3b 3b 3b 3b 3b 3b 0a 3b 3b 20 41 20 73 69 6d 70 6c 65 20 6e 6f 74 20 61 20 66 69 6c 74 65 72 2c ;;;;;;.;;.A.simple.not.a.filter,
43740 20 53 6f 20 77 65 20 68 61 76 65 20 61 20 64 65 66 61 75 6c 74 20 6f 66 20 6e 6f 20 66 69 6c 74 .So.we.have.a.default.of.no.filt
43760 65 72 73 20 74 6f 20 63 68 6f 6f 73 65 2f 72 65 74 75 72 6e 20 74 6f 2e 0a 28 65 6d 6d 73 2d 66 ers.to.choose/return.to..(emms-f
43780 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 20 22 4e 6f 20 66 69 6c 74 65 ilters-register-filter."No.filte
437a0 72 22 20 6e 69 6c 29 0a 0a 3b 3b 20 54 68 65 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 73 69 r".nil)..;;.The.variables.are.si
437c0 6d 70 6c 79 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 61 6c 20 73 6f 20 74 68 65 79 20 63 61 6e 0a mply.organizational.so.they.can.
437e0 3b 3b 20 62 65 20 63 72 65 61 74 65 64 20 61 6e 64 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 66 ;;.be.created.and.added.to.the.f
43800 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 74 ilter.ring...;;.............fact
43820 6f 72 79 20 20 20 20 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 66 61 63 74 6f 72 79 20 61 72 67 ory......name........factory.arg
43840 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 64 65 63 61 64 65 2d 66 69 6c .(defvar.emms-filters-decade-fil
43860 74 65 72 73 0a 20 20 27 28 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 30 30 73 22 20 20 ters...'(("Year.range"."1900s"..
43880 20 20 20 31 39 30 30 20 31 39 30 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 ...1900.1909).....("Year.range".
438a0 22 31 39 31 30 73 22 20 20 20 20 20 31 39 31 30 20 31 39 31 39 29 0a 20 20 20 20 28 22 59 65 61 "1910s".....1910.1919).....("Yea
438c0 72 20 72 61 6e 67 65 22 20 22 31 39 32 30 73 22 20 20 20 20 20 31 39 32 30 20 31 39 32 39 29 0a r.range"."1920s".....1920.1929).
438e0 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 33 30 73 22 20 20 20 20 20 31 39 ....("Year.range"."1930s".....19
43900 33 30 20 31 39 33 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 34 30 30.1939).....("Year.range"."1940
43920 73 22 20 20 20 20 20 31 39 34 30 20 31 39 34 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e s".....1940.1949).....("Year.ran
43940 67 65 22 20 22 31 39 35 30 73 22 20 20 20 20 20 31 39 35 30 20 31 39 35 39 29 0a 20 20 20 20 28 ge"."1950s".....1950.1959).....(
43960 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 36 30 73 22 20 20 20 20 20 31 39 36 30 20 31 39 "Year.range"."1960s".....1960.19
43980 36 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 37 30 73 22 20 20 20 69).....("Year.range"."1970s"...
439a0 20 20 31 39 37 30 20 31 39 37 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 ..1970.1979).....("Year.range"."
439c0 31 39 38 30 73 22 20 20 20 20 20 31 39 38 30 20 31 39 38 39 29 0a 20 20 20 20 28 22 59 65 61 72 1980s".....1980.1989).....("Year
439e0 20 72 61 6e 67 65 22 20 22 31 39 39 30 73 22 20 20 20 20 20 31 39 39 30 20 31 39 39 39 29 0a 20 .range"."1990s".....1990.1999)..
43a00 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 32 30 30 30 73 22 20 20 20 20 20 32 30 30 ...("Year.range"."2000s".....200
43a20 30 20 32 30 30 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 32 30 31 30 73 0.2009).....("Year.range"."2010s
43a40 22 20 20 20 20 20 32 30 31 30 20 32 30 31 39 29 0a 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 ".....2010.2019).....("Year.rang
43a60 65 22 20 22 32 30 32 30 73 22 20 20 20 20 20 32 30 32 30 20 32 30 32 39 29 29 0a 20 20 22 66 69 e"."2020s".....2020.2029))..."fi
43a80 6c 74 65 72 20 74 72 61 63 6b 73 20 62 79 20 64 65 63 61 64 65 22 29 0a 0a 28 64 65 66 76 61 72 lter.tracks.by.decade")..(defvar
43aa0 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 6e 72 65 2d 66 69 6c 74 65 72 73 0a 20 20 27 28 .emms-filters-genre-filters...'(
43ac0 28 22 47 65 6e 72 65 22 20 22 57 61 6c 74 7a 22 20 20 20 20 20 20 22 77 61 6c 74 7a 22 29 0a 20 ("Genre"."Waltz"......"waltz")..
43ae0 20 20 20 28 22 47 65 6e 72 65 22 20 22 56 61 6c 73 22 20 20 20 20 20 20 20 22 76 61 6c 73 22 29 ...("Genre"."Vals"......."vals")
43b00 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 54 61 6e 67 6f 22 20 20 20 20 20 20 22 74 61 6e 67 .....("Genre"."Tango"......"tang
43b20 6f 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4d 69 6c 6f 6e 67 61 22 20 20 20 20 22 6d o").....("Genre"."Milonga"...."m
43b40 69 6c 6f 6e 67 61 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 43 6f 6e 64 6f 6d 62 65 22 ilonga").....("Genre"."Condombe"
43b60 20 20 20 22 63 6f 6e 64 6f 6d 62 65 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 53 61 6c ..."condombe").....("Genre"."Sal
43b80 73 61 22 20 20 20 20 20 20 22 73 61 6c 73 61 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 sa"......"salsa").....("Genre"."
43ba0 42 6c 75 65 73 22 20 20 20 20 20 20 22 62 6c 75 65 73 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 Blues"......"blues").....("Genre
43bc0 22 20 22 52 6f 63 6b 22 20 20 20 20 20 20 20 22 72 6f 63 6b 22 29 0a 20 20 20 20 28 22 47 65 6e "."Rock"......."rock").....("Gen
43be0 72 65 22 20 22 53 77 69 6e 67 22 20 20 20 20 20 20 22 73 77 69 6e 67 22 29 0a 20 20 20 20 28 22 re"."Swing"......"swing").....("
43c00 47 65 6e 72 65 22 20 22 50 6f 70 22 20 20 20 20 20 20 20 20 22 70 6f 70 22 29 0a 20 20 20 20 28 Genre"."Pop"........"pop").....(
43c20 22 47 65 6e 72 65 22 20 22 52 61 70 22 20 20 20 20 20 20 20 20 22 72 61 70 22 29 0a 20 20 20 20 "Genre"."Rap"........"rap").....
43c40 28 22 47 65 6e 72 65 22 20 22 48 69 70 20 68 6f 70 22 20 20 20 20 22 68 69 70 20 68 6f 70 22 29 ("Genre"."Hip.hop"...."hip.hop")
43c60 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 43 6c 61 73 73 69 63 61 6c 22 20 20 22 63 6c 61 73 .....("Genre"."Classical".."clas
43c80 73 69 63 61 6c 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 42 61 72 6f 71 75 65 22 20 20 sical").....("Genre"."Baroque"..
43ca0 20 20 22 62 61 72 6f 71 75 65 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 43 68 61 6d 62 .."baroque").....("Genre"."Chamb
43cc0 65 72 22 20 20 20 20 22 63 68 61 6d 62 65 72 22 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 er"...."chamber").....("Genre"."
43ce0 52 65 67 67 61 65 22 20 20 20 20 20 22 72 65 67 67 61 65 22 29 0a 20 20 20 20 28 22 47 65 6e 72 Reggae"....."reggae").....("Genr
43d00 65 22 20 22 46 6f 6c 6b 22 20 20 20 20 20 20 20 22 66 6f 6c 6b 22 29 0a 20 20 20 20 28 22 47 65 e"."Folk"......."folk").....("Ge
43d20 6e 72 65 22 20 22 57 6f 72 6c 64 22 20 20 20 20 20 20 22 77 6f 72 6c 64 22 29 0a 20 20 20 20 28 nre"."World"......"world").....(
43d40 22 47 65 6e 72 65 22 20 22 4d 65 74 61 6c 22 20 20 20 20 20 20 22 6d 65 74 61 6c 22 29 0a 20 20 "Genre"."Metal"......"metal")...
43d60 20 20 28 22 47 65 6e 72 65 22 20 22 46 75 73 69 6f 6e 22 20 20 20 20 20 22 66 75 73 69 6f 6e 22 ..("Genre"."Fusion"....."fusion"
43d80 29 0a 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4a 61 7a 7a 22 20 20 20 20 20 20 20 22 6a 61 7a ).....("Genre"."Jazz"......."jaz
43da0 7a 22 29 29 0a 20 20 22 53 6f 6d 65 20 66 69 6c 74 65 72 73 20 66 6f 72 20 61 20 74 68 65 20 74 z"))..."Some.filters.for.a.the.t
43dc0 72 61 63 6b 20 67 65 6e 72 65 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 rack.genre")..(defvar.emms-filte
43de0 72 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 66 69 6c 74 65 72 73 0a 20 20 27 28 28 22 50 6c 61 rs-last-played-filters...'(("Pla
43e00 79 65 64 20 73 69 6e 63 65 22 20 22 50 6c 61 79 65 64 20 69 6e 20 74 68 65 20 6c 61 73 74 20 6d yed.since"."Played.in.the.last.m
43e20 6f 6e 74 68 22 20 33 30 29 0a 20 20 20 20 28 22 4e 6f 74 20 70 6c 61 79 65 64 20 73 69 6e 63 65 onth".30).....("Not.played.since
43e40 22 20 22 4e 6f 74 20 70 6c 61 79 65 64 20 73 69 6e 63 65 20 61 20 79 65 61 72 22 20 33 36 35 29 "."Not.played.since.a.year".365)
43e60 29 0a 20 20 22 66 69 6c 74 65 72 73 20 66 6f 72 20 74 68 65 20 6c 61 73 74 20 74 69 6d 65 20 61 )..."filters.for.the.last.time.a
43e80 20 74 72 61 63 6b 20 77 61 73 20 70 6c 61 79 65 64 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d .track.was.played")..(defvar.emm
43ea0 73 2d 66 69 6c 74 65 72 73 2d 74 72 61 63 6b 2d 74 79 70 65 2d 66 69 6c 74 65 72 73 0a 20 20 27 s-filters-track-type-filters...'
43ec0 28 28 22 54 72 61 63 6b 20 74 79 70 65 22 20 22 46 69 6c 65 22 20 66 69 6c 65 29 0a 20 20 20 20 (("Track.type"."File".file).....
43ee0 28 22 54 72 61 63 6b 20 74 79 70 65 22 20 22 55 72 6c 22 20 75 72 6c 29 0a 20 20 20 20 28 22 54 ("Track.type"."Url".url).....("T
43f00 72 61 63 6b 20 74 79 70 65 22 20 22 53 74 72 65 61 6d 22 20 73 74 72 65 61 6d 29 0a 20 20 20 20 rack.type"."Stream".stream).....
43f20 28 22 54 72 61 63 6b 20 74 79 70 65 22 20 22 53 74 72 65 61 6d 20 6c 69 73 74 22 20 73 74 72 65 ("Track.type"."Stream.list".stre
43f40 61 6d 6c 69 73 74 29 0a 20 20 20 20 28 22 54 72 61 63 6b 20 74 79 70 65 22 20 22 50 6c 61 79 20 amlist).....("Track.type"."Play.
43f60 6c 69 73 74 22 20 70 6c 61 79 6c 69 73 74 29 29 0a 20 20 22 66 69 6c 74 65 72 73 20 66 6f 72 20 list".playlist))..."filters.for.
43f80 74 72 61 63 6b 20 74 79 70 65 73 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 66 69 6c 74 track.types")..(defvar.emms-filt
43fa0 65 72 73 2d 64 75 72 61 74 69 6f 6e 2d 66 69 6c 74 65 72 73 0a 20 20 27 28 28 22 44 75 72 61 74 ers-duration-filters...'(("Durat
43fc0 69 6f 6e 20 6c 65 73 73 22 20 22 44 75 72 61 74 69 6f 6e 20 3c 31 20 6d 69 6e 22 20 20 36 30 29 ion.less"."Duration.<1.min"..60)
43fe0 0a 20 20 20 20 28 22 44 75 72 61 74 69 6f 6e 20 6c 65 73 73 22 20 22 44 75 72 61 74 69 6f 6e 20 .....("Duration.less"."Duration.
44000 3c 35 20 6d 69 6e 22 20 20 33 30 30 29 0a 20 20 20 20 28 22 44 75 72 61 74 69 6f 6e 20 6d 6f 72 <5.min"..300).....("Duration.mor
44020 65 22 20 22 44 75 72 61 74 69 6f 6e 20 3e 35 20 6d 69 6e 22 20 20 33 30 30 29 0a 20 20 20 20 28 e"."Duration.>5.min"..300).....(
44040 22 44 75 72 61 74 69 6f 6e 20 6d 6f 72 65 22 20 22 44 75 72 61 74 69 6f 6e 20 3e 31 30 20 6d 69 "Duration.more"."Duration.>10.mi
44060 6e 22 20 36 30 30 29 29 0a 20 20 22 66 69 6c 74 65 72 73 20 66 6f 72 20 74 68 65 20 64 75 72 61 n".600))..."filters.for.the.dura
44080 74 69 6f 6e 20 6f 66 20 61 20 74 72 61 63 6b 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d tion.of.a.track.")..(defun.emms-
440a0 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 64 65 66 61 75 6c 74 2d 66 69 6c 74 65 72 73 28 29 0a 20 filters-make-default-filters()..
440c0 20 22 4d 61 6b 65 20 73 6f 6d 65 20 64 65 66 61 75 6c 74 20 66 69 6c 74 65 72 73 20 61 6e 79 6f ."Make.some.default.filters.anyo
440e0 6e 65 20 77 6f 75 6c 64 20 6e 6f 74 20 6d 69 6e 64 20 68 61 76 69 6e 67 2e 22 0a 20 20 28 65 6d ne.would.not.mind.having."...(em
44100 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 20 65 6d 6d 73 2d 66 69 6c ms-filters-make-filters.emms-fil
44120 74 65 72 73 2d 64 65 63 61 64 65 2d 66 69 6c 74 65 72 73 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c ters-decade-filters)...(emms-fil
44140 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 ters-make-filters.emms-filters-g
44160 65 6e 72 65 2d 66 69 6c 74 65 72 73 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 enre-filters)...(emms-filters-ma
44180 6b 65 2d 66 69 6c 74 65 72 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 72 61 63 6b 2d 74 79 ke-filters.emms-filters-track-ty
441a0 70 65 2d 66 69 6c 74 65 72 73 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 pe-filters)...(emms-filters-make
441c0 2d 66 69 6c 74 65 72 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 61 73 74 2d 70 6c 61 79 65 -filters.emms-filters-last-playe
441e0 64 2d 66 69 6c 74 65 72 73 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d d-filters)...(emms-filters-make-
44200 66 69 6c 74 65 72 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 64 75 72 61 74 69 6f 6e 2d 66 69 filters.emms-filters-duration-fi
44220 6c 74 65 72 73 29 29 0a 0a 3b 3b 20 49 6e 73 74 61 6c 6c 20 73 6f 6d 65 20 64 65 66 61 75 6c 74 lters))..;;.Install.some.default
44240 20 66 69 6c 74 65 72 73 2e 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 64 65 66 .filters..(emms-filters-make-def
44260 61 75 6c 74 2d 66 69 6c 74 65 72 73 29 0a 0a 3b 3b 20 54 68 65 20 4d 65 74 61 2d 46 69 6c 74 65 ault-filters)..;;.The.Meta-Filte
44280 72 20 73 74 61 63 6b 0a 3b 3b 20 41 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 75 6c 74 69 2d r.stack.;;.An.interactive.multi-
442a0 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 0a 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b filter.stack..;;;;;;;;;;;;;;;;;;
442c0 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 0a 3b 3b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;
442e0 20 54 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 69 73 20 74 68 65 20 6d 75 6c 74 69 .The.current.filter.is.the.multi
44300 2d 66 69 6c 74 65 72 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6d 65 74 61 2d 66 69 6c 74 -filter.version.of.the.meta-filt
44320 65 72 0a 3b 3b 20 61 74 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 er.;;.at.the.top.of.the.filter.s
44340 74 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 41 64 64 69 6e 67 20 6d 6f 72 65 20 66 69 6c 74 65 72 73 20 tack..;;.;;.Adding.more.filters.
44360 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 70 75 73 68 65 73 20 61 20 6e to.the.current.filter.pushes.a.n
44380 65 77 20 66 69 6c 74 65 72 20 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 20 65 6d 6d 73 2d ew.filter.to.the.stack..;;.emms-
443a0 66 69 6c 74 65 72 73 2d 70 6f 70 20 70 6f 70 73 20 74 68 65 20 73 74 61 63 6b 2c 20 72 65 74 75 filters-pop.pops.the.stack,.retu
443c0 72 6e 69 6e 67 20 74 6f 20 74 68 65 20 6c 61 73 74 20 66 69 6c 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 rning.to.the.last.filter..;;.;;.
443e0 4f 74 68 65 72 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 Other.filters.can.be.added.to.th
44400 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 0a 3b 3b 20 77 69 74 68 20 27 61 6e 64 27 2c 20 e.current.filter.;;.with.'and',.
44420 27 6f 72 27 20 61 73 20 77 65 6c 6c 20 61 73 20 27 61 6e 64 2d 6e 6f 74 27 20 61 6e 64 20 27 73 'or'.as.well.as.'and-not'.and.'s
44440 6d 61 73 68 27 20 66 69 6c 74 65 72 20 73 65 6c 65 63 74 69 6f 6e 73 2e 0a 0a 28 64 65 66 75 6e mash'.filter.selections...(defun
44460 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 2d 66 69 6c 74 65 .emms-filters-current-meta-filte
44480 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 65 74 61 2d r.()..."Return.the.current.meta-
444a0 66 69 6c 74 65 72 20 66 72 6f 6d 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 73 74 61 63 6b filter.from.the.top.of.the.stack
444c0 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 25 53 22 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 ."...(format."%S".(car.emms-filt
444e0 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ers-stack)))..(defun.emms-filter
44500 73 2d 63 6f 70 79 2d 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 29 0a 20 20 22 43 s-copy-meta-filter.(filter)..."C
44520 6f 70 79 20 74 68 65 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 67 69 76 65 6e 20 62 79 20 46 49 4c opy.the.meta-filter.given.by.FIL
44540 54 45 52 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 27 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 66 TER."...(mapcar.'copy-sequence.f
44560 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c ilter))..(defun.emms-filters-fil
44580 74 65 72 2d 6e 61 6d 65 2d 3e 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 2d 6e 61 ter-name->meta-filter.(filter-na
445a0 6d 65 29 0a 20 20 22 4d 61 6b 65 20 61 20 6d 65 74 61 20 66 69 6c 74 65 72 20 63 6f 6e 73 20 66 me)..."Make.a.meta.filter.cons.f
445c0 72 6f 6d 20 61 20 46 49 4c 54 45 52 2d 4e 41 4d 45 2e 22 0a 20 20 28 63 6f 6e 73 20 66 69 6c 74 rom.a.FILTER-NAME."...(cons.filt
445e0 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6c 69 73 74 20 66 69 6c 74 er-name.........(list.(list.filt
44600 65 72 2d 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 er-name))))..(defun.emms-filters
44620 2d 66 6f 72 6d 61 74 2d 6d 65 74 61 2d 66 69 6c 74 65 72 2d 67 72 6f 75 70 73 20 28 66 69 6c 74 -format-meta-filter-groups.(filt
44640 65 72 2d 6c 69 73 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 46 49 4c 54 45 52 2d 4c 49 er-list)..."Format.the.FILTER-LI
44660 53 54 20 63 6f 6e 74 65 6e 74 73 20 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 ST.contents.to.a.list.of.strings
44680 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 66 6e 61 6d 65 29 20 ."...(mapconcat.(lambda.(fname).
446a0 28 66 6f 72 6d 61 74 20 22 25 73 20 22 20 66 6e 61 6d 65 29 29 20 66 69 6c 74 65 72 2d 6c 69 73 (format."%s.".fname)).filter-lis
446c0 74 20 22 20 7c 20 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d t.".|."))..(defun.emms-filters-m
446e0 61 6b 65 2d 6e 61 6d 65 20 28 6d 65 74 61 2d 66 69 6c 74 65 72 29 0a 20 20 22 43 6f 6e 73 74 72 ake-name.(meta-filter)..."Constr
44700 75 63 74 20 61 20 6e 61 6d 65 20 66 72 6f 6d 20 74 68 65 20 4d 45 54 41 2d 46 49 4c 54 45 52 20 uct.a.name.from.the.META-FILTER.
44720 63 6f 6e 74 65 6e 74 73 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 27 69 64 65 6e 74 69 74 contents."...(mapconcat.'identit
44740 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 27 65 6d 6d 73 2d 66 69 6c y..............(mapcar.'emms-fil
44760 74 65 72 73 2d 66 6f 72 6d 61 74 2d 6d 65 74 61 2d 66 69 6c 74 65 72 2d 67 72 6f 75 70 73 20 6d ters-format-meta-filter-groups.m
44780 65 74 61 2d 66 69 6c 74 65 72 29 20 22 20 26 26 20 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d eta-filter).".&&."))..(defun.emm
447a0 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 63 6f 6e 73 2d 66 72 6f 6d 2d s-filters-make-filter-cons-from-
447c0 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 29 0a 20 20 22 4d 61 6b 65 20 61 20 66 meta-filter.(filter)..."Make.a.f
447e0 69 6c 74 65 72 20 63 6f 6e 73 20 66 72 6f 6d 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 46 49 4c 54 ilter.cons.from.meta-filter.FILT
44800 45 52 2e 22 0a 20 20 28 63 6f 6e 73 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d ER."...(cons.(emms-filters-make-
44820 6e 61 6d 65 20 66 69 6c 74 65 72 29 20 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d name.filter).filter))..(defun.em
44840 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 74 2d 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 29 0a 20 ms-filters-set-filter.(filter)..
44860 20 22 53 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 74 6f 20 46 49 4c 54 ."Set.the.current.filter.to.FILT
44880 45 52 2e 0a 46 69 6c 74 65 72 20 73 68 6f 75 6c 64 20 62 65 20 61 20 66 69 6c 74 65 72 20 63 6f ER..Filter.should.be.a.filter.co
448a0 6e 73 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 60 28 6e 61 6d 65 20 2e 20 66 75 6e 63 74 ns.in.the.form.of.`(name...funct
448c0 69 6f 6e 29 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 ion)."...(setq.emms-filters-curr
448e0 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 28 63 61 72 20 66 69 6c 74 65 72 29 29 0a 20 20 ent-filter-name.(car.filter))...
44900 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 (setq.emms-filters-current-filte
44920 72 20 66 69 6c 74 65 72 29 29 0a 0a 3b 3b 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 r.filter))..;;.(defun.emms-filte
44940 72 73 2d 62 72 6f 77 73 65 2d 62 79 20 28 29 0a 3b 3b 20 20 20 22 54 68 65 20 73 69 6e 67 6c 65 rs-browse-by.().;;..."The.single
44960 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 20 52 65 2d 72 .interface.to.emms-browser..Re-r
44980 65 6e 64 65 72 20 70 6c 65 61 73 65 2e 0a 3b 3b 20 55 73 65 73 20 74 68 65 20 74 6f 70 20 6c 65 ender.please..;;.Uses.the.top.le
449a0 76 65 6c 20 74 79 70 65 2c 20 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 72 6f 77 73 65 20 vel.type,.or.the.default.browse.
449c0 74 79 70 65 2e 22 0a 3b 3b 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 20 28 6f 72 20 type.".;;...(emms-browse-by.(or.
449e0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 70 2d 6c 65 76 65 6c 2d 74 79 70 65 0a 3b 3b 20 20 emms-browser-top-level-type.;;..
44a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 .....................emms-browse
44a20 72 2d 64 65 66 61 75 6c 74 2d 62 72 6f 77 73 65 2d 74 79 70 65 29 29 29 0a 0a 28 64 65 66 75 6e r-default-browse-type)))..(defun
44a40 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 20 28 29 0a 20 20 22 4d 61 ..emms-filters-refilter.()..."Ma
44a60 6b 65 20 61 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 ke.a.multi-filter.function.from.
44a80 74 68 65 20 63 75 72 72 65 6e 74 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 61 6e 64 20 73 65 74 20 the.current.meta-filter.and.set.
44aa0 69 74 2e 0a 52 75 6e 20 74 68 65 20 66 69 6c 74 65 72 20 63 68 61 6e 67 65 64 20 68 6f 6f 6b 73 it..Run.the.filter.changed.hooks
44ac0 2e 20 41 73 6b 20 74 68 65 20 42 72 6f 77 73 65 72 2f 72 65 6e 64 65 72 65 72 20 74 6f 20 72 65 ..Ask.the.Browser/renderer.to.re
44ae0 2d 72 65 6e 64 65 72 20 77 69 74 68 0a 74 68 65 20 72 65 6e 64 65 72 20 61 6e 64 20 65 78 70 61 -render.with.the.render.and.expa
44b00 6e 64 20 68 6f 6f 6b 73 2e 22 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 74 2d 66 nd.hooks."...(emms-filters-set-f
44b20 69 6c 74 65 72 20 28 63 6f 6e 73 20 28 63 61 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 ilter.(cons.(caar.emms-filters-s
44b40 74 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 tack)......................(emms
44b60 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 28 63 64 61 72 -filters-make-multi-filter.(cdar
44b80 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 29 0a 0a 20 20 3b 3b 20 66 69 .emms-filters-stack))))....;;.fi
44ba0 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 69 73 20 61 20 64 65 66 63 75 73 74 6f 6d lter-changed-hook.is.a.defcustom
44bc0 20 66 6f 72 20 75 73 65 72 73 2e 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 66 .for.users....(run-hooks.'emms-f
44be0 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 29 0a 20 20 3b 3b ilters-filter-changed-hook)...;;
44c00 20 74 68 69 73 20 68 6f 6f 6b 20 69 73 20 66 6f 72 20 72 65 6e 64 65 72 65 72 73 2e 0a 20 20 28 .this.hook.is.for.renderers....(
44c20 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 61 6e 64 run-hooks.'emms-filters-make-and
44c40 2d 72 65 6e 64 65 72 2d 68 61 73 68 2d 68 6f 6f 6b 29 0a 20 20 3b 3b 20 49 66 20 69 74 20 69 73 -render-hash-hook)...;;.If.it.is
44c60 20 61 20 73 65 61 72 63 68 20 6f 72 61 20 66 69 6c 74 65 72 20 65 78 70 61 6e 64 20 74 68 65 20 .a.search.ora.filter.expand.the.
44c80 72 65 73 75 6c 74 73 2e 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 results....(when.(or.emms-filter
44ca0 73 2d 73 74 61 63 6b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 s-stack.emms-filters-search-cach
44cc0 65 73 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 es).....(run-hooks.'emms-filters
44ce0 2d 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 -expand-render-hook)))..(defun.e
44d00 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 65 6e 73 75 72 65 2d 6d 65 74 61 66 69 6c 74 65 72 20 28 66 mms-filters-ensure-metafilter.(f
44d20 69 6c 74 65 72 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 61 74 20 46 49 4c 54 45 52 20 69 73 20 ilter)..."Ensure.that.FILTER.is.
44d40 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 a.meta-filter."...(cond.((string
44d60 70 20 66 69 6c 74 65 72 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 61 6d 65 0a 20 20 20 20 20 p.filter)...........;.name......
44d80 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 2d 3e 6d ....(emms-filters-filter-name->m
44da0 65 74 61 2d 66 69 6c 74 65 72 20 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 28 66 75 eta-filter.filter)).........((fu
44dc0 6e 63 74 69 6f 6e 70 20 28 63 64 72 20 66 69 6c 74 65 72 29 29 20 20 20 20 20 20 20 3b 20 66 69 nctionp.(cdr.filter)).......;.fi
44de0 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c lter.function..........(emms-fil
44e00 74 65 72 73 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 2d 3e 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 63 ters-filter-name->meta-filter.(c
44e20 61 72 20 66 69 6c 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 65 74 61 2d 66 69 6c ar.filter))).........;;.meta-fil
44e40 74 65 72 20 2d 20 63 64 72 20 69 73 20 61 20 6c 69 73 74 70 0a 20 20 20 20 20 20 20 20 28 74 20 ter.-.cdr.is.a.listp.........(t.
44e60 66 69 6c 74 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 filter)))..(defun.emms-filters-p
44e80 75 73 68 20 28 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 74 65 72 29 0a 20 20 22 50 75 73 68 20 61 ush.(&optional.filter)..."Push.a
44ea0 20 63 6f 70 79 20 6f 66 20 46 49 4c 54 45 52 20 74 6f 20 74 68 65 20 6d 65 74 61 2d 66 69 6c 74 .copy.of.FILTER.to.the.meta-filt
44ec0 65 72 20 73 74 61 63 6b 2e 0a 53 68 6f 75 6c 64 20 62 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 er.stack..Should.be.of.the.form.
44ee0 28 66 69 6c 74 65 72 2d 6e 61 6d 65 20 2e 20 6d 65 74 61 66 69 6c 74 65 72 2f 66 69 6c 74 65 72 (filter-name...metafilter/filter
44f00 29 0a 6f 72 20 61 20 66 69 6c 74 65 72 2d 6e 61 6d 65 2e 0a 0a 49 66 20 66 69 6c 74 65 72 20 69 ).or.a.filter-name...If.filter.i
44f20 73 20 6e 6f 74 20 73 75 70 70 6c 69 65 64 20 73 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 66 s.not.supplied.select.a.filter.f
44f40 72 6f 6d 20 74 68 65 0a 20 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f rom.the...list.of.filter.functio
44f60 6e 73 20 6f 72 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 0a 0a 4d 61 6b 65 20 61 20 ns.or.create.a.new.one...Make.a.
44f80 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 73 65 74 20 69 74 2e 20 49 66 20 69 filter.function.and.set.it..If.i
44fa0 74 20 69 73 20 61 20 6e 61 6d 65 2c 0a 6c 6f 6f 6b 20 69 74 20 75 70 20 69 6e 20 6f 75 72 20 66 t.is.a.name,.look.it.up.in.our.f
44fc0 69 6c 74 65 72 20 6c 69 73 74 2e 20 49 66 20 69 74 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c ilter.list..If.it.is.a.function,
44fe0 20 6d 61 6b 65 0a 69 74 20 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 2c 20 69 66 20 69 74 20 69 73 .make.it.a.meta-filter,.if.it.is
45000 20 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 75 73 65 20 69 74 2e 22 0a 20 20 28 69 6e 74 65 72 .a.meta-filter.use.it."...(inter
45020 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6e 61 6d 65 20 28 6f 72 20 66 69 6c 74 65 active)...(let.((fname.(or.filte
45040 72 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 69 6c 74 65 72 29 29 29 r.(emms-filters-choose-filter)))
45060 29 0a 20 20 20 20 28 70 75 73 68 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 65 6e 73 75 72 65 ).....(push.(emms-filters-ensure
45080 2d 6d 65 74 61 66 69 6c 74 65 72 20 66 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 65 6d 6d -metafilter.fname)...........emm
450a0 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 s-filters-stack).....(emms-filte
450c0 72 73 2d 72 65 66 69 6c 74 65 72 29 29 29 0a 0a 3b 3b 3b 20 62 61 73 65 20 66 75 6e 63 74 69 6f rs-refilter)))..;;;.base.functio
450e0 6e 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 6d ns.(defun.emms-filters-current-m
45100 65 74 61 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 28 29 0a 20 20 22 47 69 76 65 20 74 68 65 20 63 eta-filter-name.()..."Give.the.c
45120 6f 6e 73 74 72 75 63 74 65 64 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 onstructed.name.of.the.current.f
45140 69 6c 74 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 6e 61 6d ilter."...(emms-filters-make-nam
45160 65 20 28 63 64 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 0a 28 e.(cdar.emms-filters-stack)))..(
45180 64 65 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 20 28 29 0a 20 20 22 defun..emms-filters-clear.()..."
451a0 43 6c 65 61 72 20 74 68 65 20 6d 65 74 61 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 61 6e 64 20 Clear.the.meta.filter.stack.and.
451c0 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 the.current.filter.function."...
451e0 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 (interactive)...(setq.emms-filte
45200 72 73 2d 73 74 61 63 6b 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 rs-stack.nil)...(emms-filters-re
45220 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c filter))..(defun.emms-filters-cl
45240 65 61 72 2d 61 6c 6c 20 28 29 0a 20 20 22 52 65 73 65 74 20 74 68 65 20 63 61 63 68 65 20 73 74 ear-all.()..."Reset.the.cache.st
45260 61 63 6b 2c 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 61 6e 64 20 74 68 65 20 66 69 ack,.the.filter.stack.and.the.fi
45280 6c 74 65 72 2d 72 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 lter-ring."...(interactive)...(e
452a0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 mms-filters-clear)...(emms-filte
452c0 72 73 2d 63 6c 65 61 72 2d 63 61 63 68 65 73 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 rs-clear-caches)...(emms-filters
452e0 2d 63 6c 65 61 72 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d -clear-ring-filter))..(defun..em
45300 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 20 28 29 0a 20 20 22 50 6f 70 20 74 68 65 20 73 74 61 ms-filters-pop.()..."Pop.the.sta
45320 63 6b 2c 20 73 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 66 75 6e 63 74 ck,.set.the.current.filter.funct
45340 69 6f 6e 20 61 6e 64 20 72 65 2d 72 65 6e 64 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 ion.and.re-render."...(interacti
45360 76 65 29 0a 20 20 28 70 6f 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 0a 20 ve)...(pop.emms-filters-stack)..
45380 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 .(emms-filters-refilter))..(defu
453a0 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 20 28 29 0a 20 20 22 52 65 76 65 72 n..emms-filters-swap.()..."Rever
453c0 73 65 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 73 se.the.last.two.entries.in.the.s
453e0 74 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 tack."...(interactive)...(let*.(
45400 28 63 75 72 72 65 6e 74 20 28 70 6f 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b (current.(pop.emms-filters-stack
45420 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 20 28 70 6f 70 20 65 6d 6d 73 2d ))..........(previous.(pop.emms-
45440 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 filters-stack))).....(push.curre
45460 6e 74 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 0a 20 20 20 20 28 70 75 73 68 nt.emms-filters-stack).....(push
45480 20 70 72 65 76 69 6f 75 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 0a 20 20 .previous.emms-filters-stack)...
454a0 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 29 29 29 0a 0a 28 64 65 ..(emms-filters-refilter)))..(de
454c0 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 20 28 29 0a 20 20 fun..emms-filters-swap-pop.()...
454e0 22 53 77 61 70 20 61 6e 64 20 70 6f 70 20 74 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 69 6e 74 "Swap.and.pop.the.stack."...(int
45500 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 28 70 6f 70 eractive)...(let*.((current.(pop
45520 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 20 20 20 20 28 70 6f 70 20 .emms-filters-stack))).....(pop.
45540 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 0a 20 20 20 20 28 70 75 73 68 20 63 75 emms-filters-stack).....(push.cu
45560 72 72 65 6e 74 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 0a 28 64 65 rrent.emms-filters-stack)))..(de
45580 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 20 28 29 0a 20 20 22 53 fun..emms-filters-squash.()..."S
455a0 71 75 61 73 68 20 74 68 65 20 73 74 61 63 6b 2c 20 6b 65 65 70 20 74 68 65 20 74 6f 70 2e 22 0a quash.the.stack,.keep.the.top.".
455c0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e ..(interactive)...(let*.((curren
455e0 74 20 28 70 6f 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 20 20 20 t.(pop.emms-filters-stack)))....
45600 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 20 6e 69 6c 29 0a 20 .(setq.emms-filters-stack.nil)..
45620 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 ...(push.current.emms-filters-st
45640 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 70 70 65 ack)))..(defun.emms-filters-appe
45660 6e 64 2d 73 74 72 69 6e 67 2d 74 6f 2d 66 69 6c 65 20 28 73 74 72 69 6e 67 20 66 69 6c 65 6e 61 nd-string-to-file.(string.filena
45680 6d 65 29 0a 20 20 22 41 70 70 65 6e 64 20 53 54 52 49 4e 47 20 74 6f 20 46 49 4c 45 4e 41 4d 45 me)..."Append.STRING.to.FILENAME
456a0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 61 70 70 65 6e 64 2d 74 6f 2d ."...(interactive)...(append-to-
456c0 66 69 6c 65 20 73 74 72 69 6e 67 20 6e 69 6c 20 66 69 6c 65 6e 61 6d 65 29 29 0a 0a 28 64 65 66 file.string.nil.filename))..(def
456e0 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 2d 6d 75 6c 74 69 2d 66 69 6c un.emms-filters-format-multi-fil
45700 74 65 72 20 28 6d 65 74 61 2d 66 69 6c 74 65 72 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 ter.(meta-filter)..."Format.the.
45720 4d 45 54 41 2d 46 49 4c 54 45 52 20 61 73 20 4c 69 73 70 20 63 6f 64 65 20 74 6f 20 75 73 65 20 META-FILTER.as.Lisp.code.to.use.
45740 77 69 74 68 20 60 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 27 with.`emms-filters-make-filters'
45760 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 28 5c 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 5c 22 5c ."...(format."(\"Multi-filter\"\
45780 6e 20 25 53 5c 6e 20 25 53 29 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 6d n.%S\n.%S)\n\n"...........(car.m
457a0 65 74 61 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 6d 65 74 61 2d eta-filter)...........(cdr.meta-
457c0 66 69 6c 74 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 filter)))..(defun.emms-filters-s
457e0 61 76 65 2d 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 6d 65 74 61 2d 66 69 6c 74 65 72 29 0a 20 20 ave-meta-filter.(meta-filter)...
45800 22 53 61 76 65 20 74 68 65 20 4d 45 54 41 2d 46 49 4c 54 45 52 20 20 74 6f 20 74 68 65 20 20 60 "Save.the.META-FILTER..to.the..`
45820 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 emms-filters-multi-filter-save-f
45840 69 6c 65 27 20 69 66 20 73 65 74 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 ile'.if.set."...(when.emms-filte
45860 72 73 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c 65 0a 20 20 20 20 28 61 rs-multi-filter-save-file.....(a
45880 70 70 65 6e 64 2d 74 6f 2d 66 69 6c 65 0a 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ppend-to-file......(emms-filters
458a0 2d 66 6f 72 6d 61 74 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6d 65 74 61 2d 66 69 6c 74 65 72 -format-multi-filter.meta-filter
458c0 29 0a 20 20 20 20 20 6e 69 6c 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 75 6c 74 69 2d 66 69 )......nil.emms-filters-multi-fi
458e0 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d lter-save-file)))..(defun..emms-
45900 66 69 6c 74 65 72 73 2d 6b 65 65 70 20 28 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 74 68 65 20 filters-keep.()..."Register.the.
45920 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 69 6e 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 20 current.filter.into.the.list.of.
45940 66 69 6c 74 65 72 73 20 66 6f 72 20 74 68 65 0a 20 20 73 65 73 73 69 6f 6e 2e 20 49 66 20 65 6d filters.for.the...session..If.em
45960 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c ms-filters-multi-filter-save-fil
45980 65 20 69 73 20 73 65 74 2c 20 61 70 70 65 6e 64 20 74 68 65 0a 20 20 66 69 6c 74 65 72 20 64 65 e.is.set,.append.the...filter.de
459a0 66 69 6e 69 74 69 6f 6e 20 74 68 65 72 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 finition.there."...(interactive)
459c0 0a 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 67 69 73 74 65 72 69 6e 67 20 74 68 65 20 63 75 72 ...(message."Registering.the.cur
459e0 72 65 6e 74 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 61 73 20 61 20 66 69 6c 74 65 72 20 66 6f 72 rent.meta-filter.as.a.filter.for
45a00 20 74 68 65 20 73 65 73 73 69 6f 6e 22 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 .the.session")...(emms-filters-s
45a20 74 61 74 75 73 29 0a 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 66 69 6c 74 65 72 tatus)....(when.(and.emms-filter
45a40 73 2d 73 74 61 63 6b 20 28 63 6f 6e 73 70 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 s-stack.(consp.(car.emms-filters
45a60 2d 73 74 61 63 6b 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 61 76 65 -stack))).....(emms-filters-save
45a80 2d 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 -meta-filter.(car.emms-filters-s
45aa0 74 61 63 6b 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 tack)).....(emms-filters-registe
45ac0 72 2d 66 69 6c 74 65 72 20 28 63 61 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 r-filter.(caar.emms-filters-stac
45ae0 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 k).......................(emms-f
45b00 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 28 63 64 61 72 20 65 ilters-make-multi-filter.(cdar.e
45b20 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 mms-filters-stack))).....(emms-f
45b40 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 20 22 4b 65 70 74 20 ilters-add-to-filter-menu."Kept.
45b60 66 69 6c 74 65 72 73 22 20 28 63 61 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 filters".(caar.emms-filters-stac
45b80 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d k))))..(defun.emms-filters-hard-
45ba0 66 69 6c 74 65 72 20 28 29 0a 20 20 22 41 20 68 61 72 64 20 73 61 76 65 20 6f 66 20 66 69 6c 74 filter.()..."A.hard.save.of.filt
45bc0 65 72 65 64 20 72 65 73 75 6c 74 73 2e 0a 42 75 69 6c 64 20 61 20 63 61 63 68 65 20 6f 66 20 66 ered.results..Build.a.cache.of.f
45be0 69 6c 74 65 72 65 64 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 iltered.tracks.from.the.current.
45c00 63 61 63 68 65 0a 66 69 6c 74 65 72 65 64 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 cache.filtered.by.the.current.fi
45c20 6c 74 65 72 73 2e 0a 0a 45 6d 75 6c 61 74 65 73 20 61 20 73 65 61 72 63 68 2c 20 70 75 73 68 69 lters...Emulates.a.search,.pushi
45c40 6e 67 20 61 20 6e 65 77 20 63 61 63 68 65 20 6f 6e 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 ng.a.new.cache.on.the.cache.stac
45c60 6b 2e 0a 54 68 69 73 20 63 61 63 68 65 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 6c 6c k..This.cache.is.the.same.as.all
45c80 20 74 68 65 20 72 65 73 74 20 61 6e 64 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 2e 0a 0a 53 65 .the.rest.and.emms-cache-db...Se
45ca0 65 20 61 6c 73 6f 3a 20 65 6d 73 2d 70 6f 70 2d 63 61 63 68 65 2e 22 0a 20 20 28 69 6e 74 65 72 e.also:.ems-pop-cache."...(inter
45cc0 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 73 65 61 72 63 68 2d 6e 61 6d 65 20 28 65 active)...(let*.((search-name.(e
45ce0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 75 6c 6c 2d 6e 61 6d 65 29 29 0a 0a 20 20 20 20 20 20 20 mms-filters-full-name)).........
45d00 20 20 28 73 65 61 72 63 68 2d 63 61 63 68 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 ..(search-cache.(make-hash-table
45d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 28 .........................:test.(
45d40 69 66 20 28 66 62 6f 75 6e 64 70 20 27 64 65 66 69 6e 65 2d 68 61 73 68 2d 74 61 62 6c 65 2d 74 if.(fboundp.'define-hash-table-t
45d60 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 est)............................
45d80 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 2d 68 61 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 .......'string-hash.............
45da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 71 75 61 6c 29 29 29 29 0a 20 ....................'equal))))..
45dc0 20 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 20 74 72 61 63 6b 29 ...(maphash.(lambda.(path.track)
45de0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d 66 69 6c 74 ................(when.(emms-filt
45e00 65 72 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e ers-browser-filter-hook-function
45e20 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 .track)..................(puthas
45e40 68 20 70 61 74 68 20 74 72 61 63 6b 20 73 65 61 72 63 68 2d 63 61 63 68 65 29 29 29 0a 20 20 20 h.path.track.search-cache)))....
45e60 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 61 73 74 2d 73 65 61 ..........(emms-filters-last-sea
45e80 72 63 68 2d 63 61 63 68 65 29 29 0a 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 rch-cache))......(emms-filters-p
45ea0 75 73 68 2d 63 61 63 68 65 20 73 65 61 72 63 68 2d 6e 61 6d 65 20 73 65 61 72 63 68 2d 63 61 63 ush-cache.search-name.search-cac
45ec0 68 65 29 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 29 29 0a he))...(emms-filters-refilter)).
45ee0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 69 6c 74 .(defun.emms-filters-choose-filt
45f00 65 72 2d 72 65 63 75 72 73 69 76 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 68 6f 69 63 65 73 29 er-recursive.(&optional.choices)
45f20 0a 20 20 22 43 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 65 6d 6d 73 2d 66 69 ..."Choose.a.filter.from.emms-fi
45f40 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 20 74 72 65 65 20 6f 72 20 74 68 65 20 61 6c lters-filter-menu.tree.or.the.al
45f60 69 73 74 20 67 69 76 65 6e 0a 20 20 61 73 20 43 48 4f 49 43 45 53 2e 20 52 65 71 75 69 72 65 73 ist.given...as.CHOICES..Requires
45f80 20 74 68 61 74 20 74 68 65 20 6c 69 73 74 73 20 6f 66 20 66 69 6c 74 65 72 20 6e 61 6d 65 73 20 .that.the.lists.of.filter.names.
45fa0 62 65 20 6c 69 73 74 73 20 6f 66 20 63 6f 6e 73 0a 20 20 28 6e 61 6d 65 20 2e 20 6e 61 6d 65 29 be.lists.of.cons...(name...name)
45fc0 2e 20 41 6c 6c 6f 77 73 20 66 6f 72 20 74 72 65 65 20 73 74 72 75 63 74 75 72 65 73 20 6f 66 20 ..Allows.for.tree.structures.of.
45fe0 61 6e 79 20 64 65 70 74 68 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 28 6f any.depth."...(let*.((choices.(o
46000 72 20 63 68 6f 69 63 65 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 r.choices.emms-filters-filter-me
46020 6e 75 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 6f 69 63 65 20 28 61 73 73 6f 63 20 28 63 6f nu))..........(choice.(assoc.(co
46040 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mpleting-read...................
46060 20 20 20 20 20 20 20 22 43 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 20 6f 72 20 67 72 6f 75 70 ......."Choose.a.filter.or.group
46080 3a 22 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :".choices.nil.t)...............
460a0 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 63 6f ..........choices))).....(if.(co
460c0 6e 73 70 20 63 68 6f 69 63 65 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 nsp.choice).........(emms-filter
460e0 73 2d 63 68 6f 6f 73 65 2d 66 69 6c 74 65 72 2d 72 65 63 75 72 73 69 76 65 20 28 63 61 64 72 20 s-choose-filter-recursive.(cadr.
46100 63 68 6f 69 63 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 22 6e 65 77 choice)).......(if.(string=."new
46120 20 66 69 6c 74 65 72 22 20 63 68 6f 69 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 .filter".choice)...........(emms
46140 2d 66 69 6c 74 65 72 73 2d 6e 65 77 2d 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 63 68 6f 69 -filters-new-filter)).......choi
46160 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 ce)))..(defun.emms-filters-choos
46180 65 2d 66 69 6c 74 65 72 20 28 29 0a 20 20 22 43 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 20 66 e-filter.()..."Choose.a.filter.f
461a0 72 6f 6d 20 6f 75 72 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 2e 0a 53 74 75 70 69 64 rom.our.filter.menu.tree..Stupid
461c0 2c 20 41 73 73 75 6d 65 73 20 6f 75 72 20 74 72 65 65 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f ,.Assumes.our.tree.is.an.alist.o
461e0 66 20 6c 69 73 74 73 20 6f 66 20 73 74 72 69 6e 67 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 f.lists.of.strings."...(let*.((c
46200 68 6f 69 63 65 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 hoice.(completing-read..........
46220 20 20 20 20 20 20 20 20 20 22 43 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 20 67 72 6f 75 70 3a ........."Choose.a.filter.group:
46240 22 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 20 6e 69 6c 20 74 ".emms-filters-filter-menu.nil.t
46260 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 65 77 6c 69 73 74 20 28 63 61 64 72 20 28 61 73 73 6f ))..........(newlist.(cadr.(asso
46280 63 20 63 68 6f 69 63 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 6d 65 6e c.choice.emms-filters-filter-men
462a0 75 29 29 29 29 0a 20 20 20 20 28 69 66 20 6e 65 77 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 63 u)))).....(if.newlist.........(c
462c0 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 43 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 3a ompleting-read."Choose.a.filter:
462e0 22 20 6e 65 77 6c 69 73 74 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 ".newlist.nil.t).......(if.(stri
46300 6e 67 3d 20 22 6e 65 77 20 66 69 6c 74 65 72 22 20 63 68 6f 69 63 65 29 0a 20 20 20 20 20 20 20 ng=."new.filter".choice)........
46320 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 77 2d 66 69 6c 74 65 72 29 0a 20 20 20 ...(emms-filters-new-filter)....
46340 20 20 20 20 20 63 68 6f 69 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c .....choice))))..(defun.emms-fil
46360 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 61 63 74 6f 72 79 20 28 29 0a 20 20 22 43 68 6f 6f 73 65 ters-choose-factory.()..."Choose
46380 20 61 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 66 72 6f 6d 20 6f 75 72 20 6c 69 73 74 20 .a.filter.factory.from.our.list.
463a0 6f 66 20 66 61 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 of.factories."...(completing-rea
463c0 64 0a 20 20 20 22 43 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 3a 22 0a d...."Choose.a.filter.factory:".
463e0 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 61 63 74 6f 72 79 29 0a 20 20 20 ...(mapcar.(lambda.(factory)....
46400 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 61 72 20 28 63 64 64 72 20 66 61 63 74 6f ..........(when.(car.(cddr.facto
46420 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 74 6f 72 79 29 29 0a 20 20 ry))................factory))...
46440 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 .........emms-filters-filter-fac
46460 74 6f 72 69 65 73 29 0a 20 20 20 6e 69 6c 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d tories)....nil.t))..(defun.emms-
46480 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 74 filters-one-shot.(&optional.filt
464a0 65 72 2d 6e 61 6d 65 29 0a 20 20 22 50 75 73 68 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 67 69 76 er-name)..."Push.FILTER-NAME.giv
464c0 65 6e 20 6f 6e 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2c 0a 68 61 72 64 20 66 en.onto.the.filter.stack,.hard.f
464e0 69 6c 74 65 72 20 74 6f 20 63 72 65 61 74 65 20 61 20 63 61 63 68 65 2c 20 54 68 65 6e 20 70 6f ilter.to.create.a.cache,.Then.po
46500 70 20 74 68 65 20 66 69 6c 74 65 72 2e 0a 0a 49 66 20 6e 6f 74 20 67 69 76 65 6e 2c 20 53 65 6c p.the.filter...If.not.given,.Sel
46520 65 63 74 20 6f 72 20 63 72 65 61 74 65 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 74 68 65 20 ect.or.create.a.filter.from.the.
46540 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 54 68 65 20 66 69 list.of.filter.functions..The.fi
46560 6c 74 65 72 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 lter.will.be.used.to.create.a.ne
46580 77 20 65 6e 74 72 79 20 6f 6e 20 74 68 65 0a 63 61 63 68 65 20 73 74 61 63 6b 20 61 6e 64 20 77 w.entry.on.the.cache.stack.and.w
465a0 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 6d 65 6e 75 2e ill.be.added.to.the.filter.menu.
465c0 0a 0a 53 74 65 70 73 20 61 72 65 3b 0a 20 31 2e 20 54 61 6b 65 2c 20 43 72 65 61 74 65 2c 20 6f ..Steps.are;..1..Take,.Create,.o
465e0 72 20 63 68 6f 6f 73 65 20 61 20 66 69 6c 74 65 72 2c 0a 20 32 2e 20 50 75 73 68 20 66 69 6c 74 r.choose.a.filter,..2..Push.filt
46600 65 72 2c 0a 20 33 2e 20 50 75 73 68 20 63 61 63 68 65 20 77 69 74 68 20 66 69 6c 74 65 72 2c 0a er,..3..Push.cache.with.filter,.
46620 20 34 2e 20 50 6f 70 20 66 69 6c 74 65 72 2e 0a 49 66 20 61 20 66 69 6c 74 65 72 20 77 61 73 20 .4..Pop.filter..If.a.filter.was.
46640 63 72 65 61 74 65 64 20 69 74 20 77 69 6c 6c 20 72 65 6d 61 69 6e 20 61 73 20 61 20 66 69 6c 74 created.it.will.remain.as.a.filt
46660 65 72 20 63 68 6f 69 63 65 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 2e 0a 54 68 69 73 20 er.choice.for.the.session..This.
46680 69 73 20 6c 69 6b 65 20 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2c 20 62 75 74 20 77 69 74 68 is.like.browser-search,.but.with
466a0 20 6d 6f 72 65 20 63 68 6f 69 63 65 73 2e 0a 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 .more.choices.."...(interactive)
466c0 0a 20 20 28 6c 65 74 20 28 28 66 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 66 69 6c ...(let.((fname..........(or.fil
466e0 74 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 ter-name..............(emms-filt
46700 65 72 73 2d 63 68 6f 6f 73 65 2d 66 69 6c 74 65 72 29 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d ers-choose-filter)))).....(emms-
46720 66 69 6c 74 65 72 73 2d 70 75 73 68 20 66 6e 61 6d 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 filters-push.fname).....(emms-fi
46740 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c lters-hard-filter).....(emms-fil
46760 74 65 72 73 2d 70 6f 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ters-pop)))..(defun.emms-filters
46780 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 28 66 61 63 74 6f 72 79 2d 6e 61 6d 65 29 0a 20 -quick-one-shot.(factory-name)..
467a0 20 22 43 72 65 61 74 65 20 61 20 6e 65 77 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 46 41 43 54 4f ."Create.a.new.filter.from.FACTO
467c0 52 59 2d 4e 41 4d 45 2c 20 75 73 69 6e 67 20 61 20 67 65 6e 65 72 61 74 65 64 20 66 69 6c 74 65 RY-NAME,.using.a.generated.filte
467e0 72 20 6e 61 6d 65 2e 0a 50 75 73 68 20 74 68 65 20 66 69 6c 74 65 72 2c 20 70 75 73 68 20 74 68 r.name..Push.the.filter,.push.th
46800 65 20 72 65 73 75 6c 74 69 6e 67 20 63 61 63 68 65 2c 20 74 68 65 6e 20 70 6f 70 2e 0a 4c 65 61 e.resulting.cache,.then.pop..Lea
46820 76 69 6e 67 20 61 20 6e 65 77 20 63 61 63 68 65 20 6f 6e 20 74 68 65 20 73 65 61 72 63 68 20 73 ving.a.new.cache.on.the.search.s
46840 74 61 63 6b 2e 20 41 6e 64 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 61 73 20 69 74 tack..And.the.filter.stack.as.it
46860 20 77 61 73 2e 0a 54 68 65 20 66 69 6c 74 65 72 20 77 69 6c 6c 20 72 65 73 74 20 75 6e 64 65 72 .was..The.filter.will.rest.under
46880 20 74 68 65 20 66 61 63 74 6f 72 79 20 6e 61 6d 65 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 66 6f .the.factory.name.filter.menu.fo
468a0 72 20 74 68 65 20 73 65 73 73 69 6f 6e 2e 0a 54 68 69 73 20 69 6d 69 74 61 74 65 73 20 74 68 65 r.the.session..This.imitates.the
468c0 20 65 6d 6d 73 20 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 .emms.browser.search."...(intera
468e0 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 20 ctive)...(emms-filters-one-shot.
46900 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 77 2d 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 (emms-filters-new-filter.factory
46920 2d 6e 61 6d 65 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d -name.t)))..(defun.emms-filters-
46940 73 6d 61 73 68 20 28 29 0a 20 20 22 43 6c 65 61 72 20 74 68 65 20 73 74 61 63 6b 20 61 6e 64 20 smash.()..."Clear.the.stack.and.
46960 53 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 Select.a.filter.from.the.list.of
46980 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 .filter.functions."...(interacti
469a0 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 29 0a 20 20 28 6c 65 ve)...(emms-filters-clear)...(le
469c0 74 20 28 28 66 6e 61 6d 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 t.((fname.(emms-filters-choose-f
469e0 69 6c 74 65 72 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 20 ilter))).....(emms-filters-push.
46a00 66 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 fname)))..(defun.emms-filters-pu
46a20 73 68 2d 6f 72 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 20 6d 65 74 61 2d 66 69 6c 74 65 72 29 0a sh-or.(filter-name.meta-filter).
46a40 20 20 22 50 75 73 68 20 61 20 6e 65 77 20 4f 72 20 77 69 74 68 20 46 49 4c 54 45 52 2d 4e 41 4d .."Push.a.new.Or.with.FILTER-NAM
46a60 45 20 74 6f 20 74 68 65 20 6c 61 73 74 20 4f 72 20 67 72 6f 75 70 20 69 6e 20 74 68 65 20 4d 45 E.to.the.last.Or.group.in.the.ME
46a80 54 41 2d 46 49 4c 54 45 52 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 72 65 76 2d 6d 66 20 28 72 65 TA-FILTER."...(let*.((rev-mf.(re
46aa0 76 65 72 73 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6f 70 79 2d 6d 65 74 61 2d 66 69 verse.(emms-filters-copy-meta-fi
46ac0 6c 74 65 72 20 6d 65 74 61 2d 66 69 6c 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 lter.meta-filter)))..........(re
46ae0 73 74 2d 6d 66 20 28 72 65 76 65 72 73 65 20 28 63 64 72 20 72 65 76 2d 6d 66 29 29 29 29 0a 20 st-mf.(reverse.(cdr.rev-mf))))..
46b00 20 20 20 28 61 70 70 65 6e 64 20 72 65 73 74 2d 6d 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ...(append.rest-mf.............(
46b20 6c 69 73 74 20 28 61 70 70 65 6e 64 20 28 63 61 72 20 72 65 76 2d 6d 66 29 20 28 6c 69 73 74 20 list.(append.(car.rev-mf).(list.
46b40 66 69 6c 74 65 72 2d 6e 61 6d 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d filter-name))))))..(defun..emms-
46b60 66 69 6c 74 65 72 73 2d 6f 72 20 28 29 0a 20 20 22 41 64 64 20 66 69 6c 74 65 72 20 74 6f 20 63 filters-or.()..."Add.filter.to.c
46b80 75 72 72 65 6e 74 2f 6c 61 73 74 20 66 69 6c 74 65 72 20 6c 69 73 74 20 69 6e 20 74 68 65 20 63 urrent/last.filter.list.in.the.c
46ba0 75 72 72 65 6e 74 20 66 69 6c 74 65 72 2e 0a 43 72 65 61 74 65 73 20 61 6e 20 60 4f 52 27 20 66 urrent.filter..Creates.an.`OR'.f
46bc0 69 6c 74 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 ilter."...(interactive)...(let.(
46be0 28 66 6e 61 6d 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 69 6c 74 (fname.(emms-filters-choose-filt
46c00 65 72 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 0a 20 20 20 er))).....(emms-filters-push....
46c20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 63 6f 6e 73 ..(emms-filters-make-filter-cons
46c40 2d 66 72 6f 6d 2d 6d 65 74 61 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 -from-meta-filter.......(emms-fi
46c60 6c 74 65 72 73 2d 70 75 73 68 2d 6f 72 20 66 6e 61 6d 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 lters-push-or.fname.(emms-filter
46c80 73 2d 63 6f 70 79 2d 6d 65 74 61 2d 66 69 6c 74 65 72 20 28 63 64 61 72 20 65 6d 6d 73 2d 66 69 s-copy-meta-filter.(cdar.emms-fi
46ca0 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d lters-stack)))))))..(defun.emms-
46cc0 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 61 6e 64 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 20 66 69 filters-push-and.(filter-name.fi
46ce0 6c 74 65 72 29 0a 20 20 22 50 75 73 68 20 61 20 6e 65 77 20 41 6e 64 20 6c 69 73 74 20 77 69 74 lter)..."Push.a.new.And.list.wit
46d00 68 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 6f 6e 74 6f 20 46 49 4c 54 45 52 2e 22 0a 20 20 28 61 h.FILTER-NAME.onto.FILTER."...(a
46d20 70 70 65 6e 64 20 66 69 6c 74 65 72 20 28 6c 69 73 74 20 28 6c 69 73 74 20 66 69 6c 74 65 72 2d ppend.filter.(list.(list.filter-
46d40 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 name))))..(defun..emms-filters-a
46d60 6e 64 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 73 74 61 72 nd.()..."Select.a.filter.to.star
46d80 74 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 43 72 65 61 74 65 73 t.a.new.list.of.filters..Creates
46da0 20 61 20 6e 65 77 20 60 41 4e 44 27 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2e 22 0a 20 .a.new.`AND'.list.of.filters."..
46dc0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6e 61 6d 65 20 28 65 .(interactive)...(let.((fname.(e
46de0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 69 6c 74 65 72 29 29 29 0a 20 20 20 mms-filters-choose-filter)))....
46e00 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 0a 20 20 20 20 20 28 65 6d 6d 73 2d 66 .(emms-filters-push......(emms-f
46e20 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 63 6f 6e 73 2d 66 72 6f 6d 2d 6d 65 74 ilters-make-filter-cons-from-met
46e40 61 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 a-filter.......(emms-filters-pus
46e60 68 2d 61 6e 64 20 66 6e 61 6d 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6f 70 79 2d 6d h-and.fname.(emms-filters-copy-m
46e80 65 74 61 2d 66 69 6c 74 65 72 20 28 63 64 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 eta-filter.(cdar.emms-filters-st
46ea0 61 63 6b 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ack)))))))..(defun..emms-filters
46ec0 2d 61 6e 64 2d 6e 6f 74 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 -and-not.()..."Select.a.filter.t
46ee0 6f 20 73 74 61 72 74 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 43 o.start.a.new.list.of.filters..C
46f00 72 65 61 74 65 73 20 61 20 6e 65 77 20 60 41 4e 44 2d 4e 4f 54 27 20 6c 69 73 74 20 6f 66 20 66 reates.a.new.`AND-NOT'.list.of.f
46f20 69 6c 74 65 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 ilters."...(interactive)...(let.
46f40 28 28 66 6e 61 6d 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 68 6f 6f 73 65 2d 66 69 6c ((fname.(emms-filters-choose-fil
46f60 74 65 72 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 0a 20 20 ter))).....(emms-filters-push...
46f80 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 63 6f 6e ...(emms-filters-make-filter-con
46fa0 73 2d 66 72 6f 6d 2d 6d 65 74 61 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 s-from-meta-filter.......(emms-f
46fc0 69 6c 74 65 72 73 2d 70 75 73 68 2d 6f 72 20 66 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 ilters-push-or.fname............
46fe0 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 61 6e 64 20 27 ........(emms-filters-push-and.'
47000 3a 6e 6f 74 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6f 70 79 2d 6d 65 74 61 2d 66 69 6c :not.(emms-filters-copy-meta-fil
47020 74 65 72 20 28 63 64 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 29 29 29 29 ter.(cdar.emms-filters-stack))))
47040 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 ))))..(defun.emms-filters-format
47060 2d 73 74 61 63 6b 28 29 0a 20 20 22 50 72 69 6e 74 20 74 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 -stack()..."Print.the.stack."...
47080 28 66 6f 72 6d 61 74 20 20 22 5c 74 25 73 22 20 28 6d 61 70 63 6f 6e 63 61 74 20 27 63 61 72 20 (format.."\t%s".(mapconcat.'car.
470a0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 63 6b 20 22 5c 6e 5c 74 22 29 29 29 0a 0a 28 64 emms-filters-stack."\n\t")))..(d
470c0 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 75 6c 6c 2d 6e 61 6d 65 20 28 29 0a 20 efun.emms-filters-full-name.()..
470e0 20 22 47 69 76 65 20 61 20 66 75 6c 6c 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 ."Give.a.full.name.for.the.curre
47100 6e 74 20 66 69 6c 74 65 72 69 6e 67 2e 20 49 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 6e 67 0a nt.filtering..Includes.the.ring.
47120 20 20 66 69 6c 74 65 72 20 6e 61 6d 65 20 70 6c 75 73 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 ..filter.name.plus.current.filte
47140 72 20 6e 61 6d 65 2e 20 44 6f 65 73 20 6e 6f 74 20 73 68 6f 77 20 74 68 65 20 63 75 72 72 65 6e r.name..Does.not.show.the.curren
47160 74 20 63 61 63 68 65 0a 20 20 6e 61 6d 65 2e 20 4f 6e 6c 79 20 73 68 6f 77 20 74 68 65 20 72 69 t.cache...name..Only.show.the.ri
47180 6e 67 20 66 69 6c 74 65 72 20 6e 61 6d 65 20 69 66 20 69 74 73 20 66 75 6e 63 74 69 6f 6e 20 69 ng.filter.name.if.its.function.i
471a0 73 20 6e 6f 74 20 6e 69 6c 2e 20 55 73 65 0a 20 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c s.not.nil..Use...the.current.fil
471c0 74 65 72 20 6e 61 6d 65 20 73 6f 20 74 68 61 74 20 60 6e 6f 20 66 69 6c 74 65 72 27 20 73 68 6f ter.name.so.that.`no.filter'.sho
471e0 77 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 69 6e 67 20 28 77 68 65 6e 20 28 63 64 72 20 65 6d ws."...(let.((ring.(when.(cdr.em
47200 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 0a ms-filters-current-ring-filter).
47220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ................(car.emms-filter
47240 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 s-current-ring-filter)))........
47260 20 28 63 75 72 72 65 6e 74 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 .(current.(car.emms-filters-curr
47280 65 6e 74 2d 66 69 6c 74 65 72 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 72 69 ent-filter))).....(cond.((and.ri
472a0 6e 67 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 ng.current)............(format."
472c0 25 73 20 3a 20 25 73 22 20 72 69 6e 67 20 63 75 72 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 %s.:.%s".ring.current)).........
472e0 20 20 28 72 69 6e 67 20 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 ..(ring.ring)...........(current
47300 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 0a 0a .current)...........(t.nil))))..
47320 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 20 28 29 0a 20 20 (defun.emms-filters-status.()...
47340 22 46 6f 72 6d 61 74 20 77 68 61 74 20 77 65 20 6b 6e 6f 77 20 69 6e 74 6f 20 73 6f 6d 65 74 68 "Format.what.we.know.into.someth
47360 69 6e 67 20 72 65 61 64 61 62 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 ing.readable."...(interactive)..
47380 20 28 66 6f 72 6d 61 74 20 22 52 69 6e 67 3a 20 25 73 5c 6e 4d 65 74 61 20 46 69 6c 74 65 72 3a .(format."Ring:.%s\nMeta.Filter:
473a0 20 25 73 5c 6e 46 69 6c 74 65 72 20 73 74 61 63 6b 3a 5c 6e 25 73 5c 6e 43 61 63 68 65 20 73 74 .%s\nFilter.stack:\n%s\nCache.st
473c0 61 63 6b 3a 5c 6e 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6d 6d 73 2d 66 ack:\n.%s"...........(car.emms-f
473e0 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 ilters-current-ring-filter).....
47400 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 ......(emms-filters-current-meta
47420 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 -filter)...........(emms-filters
47440 2d 66 6f 72 6d 61 74 2d 73 74 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 -format-stack)...........(emms-f
47460 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 2d 63 61 63 68 65 2d 73 74 61 63 6b 29 29 29 0a 0a 28 64 ilters-format-cache-stack)))..(d
47480 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 2d 70 72 69 6e 74 20 28 efun.emms-filters-status-print.(
474a0 29 0a 20 20 22 50 72 69 6e 74 20 77 68 61 74 20 77 65 20 6b 6e 6f 77 2e 22 0a 20 20 28 69 6e 74 )..."Print.what.we.know."...(int
474c0 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 65 73 73 61 67 65 20 28 65 6d 6d 73 2d 66 69 6c 74 65 eractive)...(message.(emms-filte
474e0 72 73 2d 73 74 61 74 75 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 rs-status)))..(defun.emms-filter
47500 73 2d 73 65 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a s-set-ring-filter.(filter-name).
47520 20 20 22 47 69 76 65 6e 20 61 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 73 65 74 20 74 68 65 20 63 .."Given.a.FILTER-NAME.set.the.c
47540 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 61 6e 64 20 72 65 2d 72 65 6e 64 65 72 urrent.ring.filter.and.re-render
47560 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d ."...(setq.emms-filters-current-
47580 72 69 6e 67 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 66 69 6c 74 65 ring-filter.........(assoc.filte
475a0 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 0a 20 20 r-name.emms-filters-filters))...
475c0 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e (emms-filters-refilter))..(defun
475e0 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 .emms-filters-clear-ring-filter.
47600 28 29 0a 20 20 22 53 65 74 20 74 68 65 20 72 69 6e 67 20 66 69 6c 74 65 72 20 74 6f 20 6e 6f 20 ()..."Set.the.ring.filter.to.no.
47620 66 69 6c 74 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 filter."...(interactive)...(emms
47640 2d 66 69 6c 74 65 72 73 2d 73 65 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 22 6e 6f 20 66 69 6c -filters-set-ring-filter."no.fil
47660 74 65 72 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 ter"))..(defun.emms-filters-curr
47680 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 28 29 0a 20 20 22 54 68 65 20 63 ent-ring-filter-name.()..."The.c
476a0 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 6e 61 6d 65 2c 20 6d 6f 72 65 20 64 65 urrent.ring.filter.name,.more.de
476c0 73 63 72 69 70 74 69 76 65 20 74 68 61 6e 20 63 61 72 2e 22 0a 20 20 28 69 66 20 65 6d 6d 73 2d scriptive.than.car."...(if.emms-
476e0 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 0a 20 20 20 20 filters-current-ring-filter.....
47700 20 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 ..(car.emms-filters-current-ring
47720 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 22 6e 6f 20 66 69 6c 74 65 72 22 29 29 0a 0a 28 64 65 66 -filter)....."no.filter"))..(def
47740 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 un.emms-filters-next-ring-filter
47760 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 66 69 6c 74 65 72 20 69 6e ()..."Move.to.the.next.filter.in
47780 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 .the.filter.ring."...(interactiv
477a0 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 74 2d 72 69 6e 67 2d 66 69 6c 74 e)...(emms-filters-set-ring-filt
477c0 65 72 0a 20 20 20 28 72 69 6e 67 2d 6e 65 78 74 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 er....(ring-next.emms-filters-fi
477e0 6c 74 65 72 2d 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 6d 6d 73 lter-ring...............(if.emms
47800 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 0a 20 20 20 -filters-current-ring-filter....
47820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ...............(car.emms-filters
47840 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 -current-ring-filter)...........
47860 20 20 20 20 20 20 28 72 69 6e 67 2d 72 65 66 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c ......(ring-ref.emms-filters-fil
47880 74 65 72 2d 72 69 6e 67 20 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c ter-ring.0)))))..(defun.emms-fil
478a0 74 65 72 73 2d 70 72 65 76 69 6f 75 73 2d 72 69 6e 67 2d 66 69 6c 74 65 72 28 29 0a 20 20 22 4d ters-previous-ring-filter()..."M
478c0 6f 76 65 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 6c 74 65 72 20 69 6e 20 74 68 ove.to.the.previous.filter.in.th
478e0 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a e.filter.ring."...(interactive).
47900 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 0a ..(emms-filters-set-ring-filter.
47920 20 20 20 28 72 69 6e 67 2d 70 72 65 76 69 6f 75 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 ...(ring-previous.emms-filters-f
47940 69 6c 74 65 72 2d 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 ilter-ring...................(if
47960 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 .emms-filters-current-ring-filte
47980 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6d 6d r.......................(car.emm
479a0 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 0a 20 s-filters-current-ring-filter)..
479c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 69 6e 67 2d 72 65 66 20 65 6d 6d ...................(ring-ref.emm
479e0 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 30 29 29 29 29 29 0a 0a 3b 3b s-filters-filter-ring.0)))))..;;
47a00 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
47a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 53 65 61 72 63 68 69 6e 67 -------------------.;;.Searching
47a40 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .;;.----------------------------
47a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 54 68 65 20 53 ----------------------.;;;.The.S
47a80 65 61 72 63 68 20 43 61 63 68 65 20 53 74 61 63 6b 0a 3b 3b 0a 3b 3b 20 54 68 65 20 73 65 61 72 earch.Cache.Stack.;;.;;.The.sear
47aa0 63 68 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 73 69 6d 70 6c 79 20 61 20 73 74 61 ch.cache.stack.is.a.simply.a.sta
47ac0 63 6b 20 6f 66 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 73 74 79 6c 65 20 68 61 73 68 20 74 ck.of.emms-cache-db.style.hash.t
47ae0 61 62 6c 65 73 2e 0a 3b 3b 20 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 61 20 73 75 62 73 65 74 ables..;;.Each.entry.is.a.subset
47b00 20 6f 66 20 74 68 65 20 6d 61 73 74 65 72 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 63 72 65 .of.the.master.emms-cache-db.cre
47b20 61 74 65 64 20 74 68 72 6f 75 67 68 20 66 69 6c 74 65 72 69 6e 67 2e 0a 3b 3b 20 54 68 65 69 72 ated.through.filtering..;;.Their
47b40 20 6e 61 6d 65 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 .names.are.constructed.from.the.
47b60 66 69 6c 74 65 72 73 20 77 68 69 63 68 20 63 72 65 61 74 65 64 20 74 68 65 6d 2e 0a 3b 3b 0a 3b filters.which.created.them..;;.;
47b80 3b 20 46 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 64 69 73 70 6c 61 79 69 6e 67 20 6f 66 20 74 72 ;.Filtering.and.displaying.of.tr
47ba0 61 63 6b 73 20 69 73 20 64 6f 6e 65 20 61 67 61 69 6e 73 74 20 74 68 65 20 74 6f 70 20 63 61 63 acks.is.done.against.the.top.cac
47bc0 68 65 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 0a 3b 3b 0a 3b 3b 20 41 20 63 61 63 68 65 20 6f he.on.the.stack..;;.;;.A.cache.o
47be0 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 72 65 73 75 6c 74 73 20 63 61 6e f.the.current.filter.results.can
47c00 20 62 65 20 70 75 73 68 65 64 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 61 74 .be.pushed.to.the.cache.stack.at
47c20 20 61 6e 79 0a 3b 3b 20 74 69 6d 65 20 77 69 74 68 20 68 61 72 64 2d 66 69 6c 74 65 72 2e 20 54 .any.;;.time.with.hard-filter..T
47c40 68 65 73 65 20 72 65 73 75 6c 74 73 20 77 69 6c 6c 20 72 65 66 6c 65 63 74 20 74 68 65 20 63 75 hese.results.will.reflect.the.cu
47c60 72 72 65 6e 74 20 6d 65 74 61 2d 66 69 6c 74 65 72 0a 3b 3b 20 61 73 20 77 65 6c 6c 20 61 73 20 rrent.meta-filter.;;.as.well.as.
47c80 74 68 65 20 66 69 6c 74 65 72 20 63 75 72 72 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 69 6e 20 74 the.filter.currently.chosen.in.t
47ca0 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 41 20 6f 6e 65 2d 73 68 6f 74 he.filter.ring..;;.;;.A.one-shot
47cc0 20 66 69 6c 74 65 72 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 61 20 68 61 72 64 20 66 69 6c .filter.combined.with.a.hard.fil
47ce0 74 65 72 20 69 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 ter.is.emms-filters-quick-one-sh
47d00 6f 74 2e 0a 3b 3b 20 54 68 69 73 20 65 66 66 65 63 74 69 76 65 6c 79 20 65 6d 75 6c 61 74 65 73 ot..;;.This.effectively.emulates
47d20 20 74 68 65 20 66 6f 72 6d 65 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 .the.former.emms-browser.search.
47d40 62 65 68 61 76 69 6f 72 20 6f 66 0a 3b 3b 20 66 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 73 61 76 behavior.of.;;.filtering.and.sav
47d60 69 6e 67 20 61 20 63 61 63 68 65 20 62 79 20 70 75 73 68 69 6e 67 20 61 20 66 69 6c 74 65 72 2c ing.a.cache.by.pushing.a.filter,
47d80 20 68 61 72 64 2d 66 69 6c 74 65 72 2c 20 70 6f 70 2e 0a 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d .hard-filter,.pop.....(defun.emm
47da0 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 s-filters-push-cache.(&optional.
47dc0 66 69 6c 74 65 72 2d 6e 61 6d 65 20 63 61 63 68 65 29 0a 20 20 22 43 61 63 68 65 2f 53 74 6f 72 filter-name.cache)..."Cache/Stor
47de0 65 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 61 6e 64 20 43 41 43 48 45 20 69 6e 20 61 20 73 74 61 e.FILTER-NAME.and.CACHE.in.a.sta
47e00 63 6b 2e 0a 49 66 20 46 49 4c 54 45 52 2d 4e 41 4d 45 20 61 6e 64 20 43 41 43 48 45 20 61 72 65 ck..If.FILTER-NAME.and.CACHE.are
47e20 20 6e 6f 74 20 70 72 65 73 65 6e 74 2c 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 0a 61 6c 6c .not.present,.interactively,.all
47e40 6f 77 20 73 65 6c 65 63 74 69 6f 6e 20 6f 66 20 61 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 ow.selection.of.a.cache.from.the
47e60 20 63 61 63 68 65 20 73 74 61 73 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 .cache.stash."...(interactive)..
47e80 20 28 69 66 20 28 61 6e 64 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 63 61 63 68 65 29 0a 20 20 20 .(if.(and.filter-name.cache)....
47ea0 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 63 61 63 68 65 ...(push.(cons.filter-name.cache
47ec0 29 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 0a 20 20 ).emms-filters-search-caches)...
47ee0 20 20 28 6c 65 74 20 28 28 73 74 61 73 68 65 64 2d 63 61 63 68 65 0a 20 20 20 20 20 20 20 20 20 ..(let.((stashed-cache..........
47f00 20 20 28 61 73 73 6f 63 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 53 65 6c 65 63 ..(assoc.(completing-read."Selec
47f20 74 20 43 61 63 68 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.Cache"........................
47f40 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 61 63 68 65 2d 73 ............emms-filters-cache-s
47f60 74 61 73 68 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d tash.nil.t)...................em
47f80 6d 73 2d 66 69 6c 74 65 72 73 2d 63 61 63 68 65 2d 73 74 61 73 68 29 29 29 0a 20 20 20 20 20 20 ms-filters-cache-stash))).......
47fa0 28 70 75 73 68 20 73 74 61 73 68 65 64 2d 63 61 63 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 (push.stashed-cache.emms-filters
47fc0 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 -search-caches)))...(emms-filter
47fe0 73 2d 72 65 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 s-refilter))..(defun.emms-filter
48000 73 2d 73 74 61 73 68 2d 63 61 63 68 65 20 28 29 0a 20 20 22 53 74 61 73 68 20 74 68 65 20 63 75 s-stash-cache.()..."Stash.the.cu
48020 72 72 65 6e 74 2d 63 61 63 68 65 20 66 6f 72 20 6c 61 74 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 rrent-cache.for.later."...(inter
48040 61 63 74 69 76 65 29 0a 20 20 28 70 75 73 68 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 active)...(push.(car.emms-filter
48060 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 61 s-search-caches).emms-filters-ca
48080 63 68 65 2d 73 74 61 73 68 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 che-stash))..(defun.emms-filters
480a0 2d 73 74 61 73 68 2d 70 6f 70 2d 63 61 63 68 65 20 28 29 0a 20 20 22 53 74 61 73 68 20 74 68 65 -stash-pop-cache.()..."Stash.the
480c0 20 63 75 72 72 65 6e 74 2d 63 61 63 68 65 20 66 6f 72 20 6c 61 74 65 72 2c 20 70 6f 70 20 69 74 .current-cache.for.later,.pop.it
480e0 20 66 72 6f 6d 20 74 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 .from.the.stack."...(interactive
48100 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 68 65 29 0a 20 )...(emms-filters-stash-cache)..
48120 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 29 29 0a 0a 28 64 65 66 .(emms-filters-pop-cache))..(def
48140 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d 73 65 61 72 63 68 2d 6b 65 79 73 20 un.emms-filters-get-search-keys.
48160 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 65 61 72 63 68 2d 6c 69 73 74 20 6b 65 79 ()..."Return.the.search-list.key
48180 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 61 72 63 68 20 63 61 63 68 65 2e 22 s.for.the.current.search.cache."
481a0 0a 20 20 28 69 66 20 28 3c 20 30 20 28 6c 65 6e 67 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ...(if.(<.0.(length.emms-filters
481c0 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 0a 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 -search-caches)).......(mapcar.#
481e0 27 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 'car.emms-filters-search-caches)
48200 0a 20 20 20 20 27 28 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d .....'()))..(defun.emms-filters-
48220 63 75 72 72 65 6e 74 2d 63 61 63 68 65 2d 6e 61 6d 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 current-cache-name.()..."Return.
48240 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 61 72 63 68 20 63 the.name.of.the.current.search.c
48260 61 63 68 65 2e 22 0a 20 20 28 63 61 72 20 28 72 65 76 65 72 73 65 20 28 65 6d 6d 73 2d 66 69 6c ache."...(car.(reverse.(emms-fil
48280 74 65 72 73 2d 67 65 74 2d 73 65 61 72 63 68 2d 6b 65 79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e ters-get-search-keys))))..(defun
482a0 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 2d 73 65 61 72 63 68 2d 6c 69 73 74 .emms-filters-format-search-list
482c0 20 28 73 65 61 72 63 68 2d 6c 69 73 74 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 73 74 72 69 6e .(search-list)..."Create.a.strin
482e0 67 20 66 6f 72 6d 61 74 20 6f 66 20 61 20 53 45 41 52 43 48 2d 4c 49 53 54 2e 0a 53 65 61 72 63 g.format.of.a.SEARCH-LIST..Searc
48300 68 20 6c 69 73 74 73 20 61 72 65 20 77 68 61 74 20 69 73 20 75 73 65 64 20 62 79 20 74 68 65 20 h.lists.are.what.is.used.by.the.
48320 6f 6c 64 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f 6e old.emms-browser.search.function
48340 2c 0a 6f 72 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 66 61 63 ,.or.the.emms-filters-filter-fac
48360 74 6f 72 79 20 60 73 65 61 72 63 68 2d 66 69 65 6c 64 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 tory.`search-fields'."...(let.((
48380 69 6e 66 6f 73 20 28 61 70 70 65 6e 64 20 28 63 61 72 20 28 63 61 72 20 73 65 61 72 63 68 2d 6c infos.(append.(car.(car.search-l
483a0 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 76 61 6c 75 65 20 28 63 64 61 72 20 73 65 ist)))).........(svalue.(cdar.se
483c0 61 72 63 68 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 2d 20 25 arch-list))).....(format."%s.-.%
483e0 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 s".............(mapconcat.......
48400 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 .......#'(lambda.(info).........
48420 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 69 6e 66 6f 29 0a 20 20 20 20 .........(if.(symbolp.info).....
48440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d .................(substring.(sym
48460 62 6f 6c 2d 6e 61 6d 65 20 69 6e 66 6f 29 20 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 bol-name.info)..5)..............
48480 20 20 20 20 20 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 73 20 ......info))..............infos.
484a0 22 20 7c 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 76 61 6c 75 65 29 29 29 0a 0a 28 64 ".|.").............svalue)))..(d
484c0 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 2d 63 61 63 68 65 2d 73 efun.emms-filters-format-cache-s
484e0 74 61 63 6b 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 6c 69 73 74 20 6f 66 20 73 65 61 72 tack.()..."Create.a.list.of.sear
48500 63 68 20 63 72 75 6d 62 20 73 74 72 69 6e 67 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 ch.crumb.strings.for.the.current
48520 20 73 65 61 72 63 68 20 63 61 63 68 65 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 5c 74 25 73 22 .search.cache."...(format."\t%s"
48540 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 65 6d 6d 73 2d 66 69 6c .(mapconcat.#'identity.(emms-fil
48560 74 65 72 73 2d 67 65 74 2d 73 65 61 72 63 68 2d 6b 65 79 73 29 20 22 20 5c 6e 5c 74 22 29 29 29 ters-get-search-keys).".\n\t")))
48580 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 ..(defun.emms-filters-show-cache
485a0 2d 73 74 61 63 6b 20 28 29 0a 20 20 22 4d 65 73 73 61 67 65 20 74 68 65 20 63 75 72 72 65 6e 74 -stack.()..."Message.the.current
485c0 20 73 65 61 72 63 68 20 63 61 63 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 .search.cache.stack."...(interac
485e0 74 69 76 65 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 45 6d 6d 73 20 43 61 63 68 65 20 73 74 61 tive)...(message."Emms.Cache.sta
48600 63 6b 3a 5c 6e 20 20 25 73 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 ck:\n..%s\n"............(mapconc
48620 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 67 65 74 2d at.#'identity.(emms-filters-get-
48640 73 65 61 72 63 68 2d 6b 65 79 73 29 20 22 5c 6e 20 20 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 search-keys)."\n..")))..(defun.e
48660 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 73 68 20 28 29 0a mms-filters-show-cache-stash.().
48680 22 53 68 6f 77 20 74 68 65 20 63 61 63 68 65 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 73 74 61 "Show.the.cache.names.in.the.sta
486a0 73 68 2e 22 0a 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 28 6d 65 73 73 61 67 65 20 22 45 6d 6d sh.".(interactive).(message."Emm
486c0 73 20 63 61 63 68 65 20 73 74 61 73 68 3a 5c 6e 20 20 25 73 5c 6e 22 0a 20 20 20 20 20 20 20 20 s.cache.stash:\n..%s\n".........
486e0 20 28 6d 61 70 63 6f 6e 63 61 74 20 27 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 .(mapconcat.'identity...........
48700 20 20 20 20 20 20 20 20 20 20 28 72 65 76 65 72 73 65 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 ..........(reverse.(mapcar.#'car
48720 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 61 63 68 65 2d 73 74 61 73 68 29 29 0a 20 20 20 20 .emms-filters-cache-stash)).....
48740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 20 20 22 29 29 29 0a 0a 28 64 65 66 75 ................"\n..")))..(defu
48760 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 61 73 74 2d 73 65 61 72 63 68 2d 63 61 63 68 65 n.emms-filters-last-search-cache
48780 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 61 63 68 65 20 70 6f 72 74 69 6f 6e 20 .()..."Return.the.cache.portion.
487a0 6f 66 20 74 68 65 20 6c 61 73 74 20 73 65 61 72 63 68 20 63 61 63 68 65 20 65 6e 74 72 79 2e 22 of.the.last.search.cache.entry."
487c0 0a 20 20 28 69 66 20 28 3c 20 30 20 28 6c 65 6e 67 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ...(if.(<.0.(length.emms-filters
487e0 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 0a 20 20 20 20 20 20 28 63 64 61 72 20 65 6d 6d -search-caches)).......(cdar.emm
48800 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 0a 20 20 20 20 65 6d 6d s-filters-search-caches).....emm
48820 73 2d 63 61 63 68 65 2d 64 62 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 s-cache-db))..(defun.emms-filter
48840 73 2d 70 6f 70 2d 63 61 63 68 65 20 28 29 0a 20 20 22 50 6f 70 20 74 68 65 20 73 65 61 72 63 68 s-pop-cache.()..."Pop.the.search
48860 20 72 65 73 75 6c 74 73 20 63 61 63 68 65 20 61 6e 64 20 74 68 65 6e 20 72 65 6e 64 65 72 20 74 .results.cache.and.then.render.t
48880 6f 20 73 68 6f 77 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 65 61 72 63 68 20 72 65 73 75 6c o.show.the.previous.search.resul
488a0 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 70 6f 70 20 65 6d 6d 73 2d t."...(interactive)...(pop.emms-
488c0 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 0a 20 20 28 65 6d 6d 73 2d 66 filters-search-caches)...(emms-f
488e0 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d ilters-refilter))..(defun..emms-
48900 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 63 61 63 68 65 73 20 28 29 0a 20 20 22 43 6c 65 61 72 filters-clear-caches.()..."Clear
48920 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 .the.cache.stack."...(interactiv
48940 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 e)...(setq.emms-filters-search-c
48960 61 63 68 65 73 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c aches.nil)...(emms-filters-refil
48980 74 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 ter))..(defun..emms-filters-swap
489a0 2d 63 61 63 68 65 20 28 29 0a 20 20 22 53 77 61 70 20 2f 20 72 65 76 65 72 73 65 20 74 68 65 20 -cache.()..."Swap./.reverse.the.
489c0 6c 61 73 74 20 74 77 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 63 61 63 68 65 20 73 74 last.two.entries.in.the.cache.st
489e0 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 ack."...(interactive)...(let*.((
48a00 63 75 72 72 65 6e 74 20 28 70 6f 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 current.(pop.emms-filters-search
48a20 2d 63 61 63 68 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 20 28 70 6f -caches))..........(previous.(po
48a40 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 29 0a p.emms-filters-search-caches))).
48a60 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 ....(push.current.emms-filters-s
48a80 65 61 72 63 68 2d 63 61 63 68 65 73 29 0a 20 20 20 20 28 70 75 73 68 20 70 72 65 76 69 6f 75 73 earch-caches).....(push.previous
48aa0 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 0a 20 20 20 .emms-filters-search-caches)....
48ac0 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 66 69 6c 74 65 72 29 29 29 0a 0a 28 64 65 66 .(emms-filters-refilter)))..(def
48ae0 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 2d 63 61 63 68 65 20 un..emms-filters-swap-pop-cache.
48b00 28 29 0a 20 20 22 53 77 61 70 20 61 6e 64 20 70 6f 70 20 74 68 65 20 63 61 63 68 65 20 73 74 61 ()..."Swap.and.pop.the.cache.sta
48b20 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 ck."...(interactive)...(let*.((c
48b40 75 72 72 65 6e 74 20 28 70 6f 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d urrent.(pop.emms-filters-search-
48b60 63 61 63 68 65 73 29 29 29 0a 20 20 20 20 28 70 6f 70 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d caches))).....(pop.emms-filters-
48b80 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 0a 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 search-caches).....(push.current
48ba0 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 29 0a 0a .emms-filters-search-caches)))..
48bc0 28 64 65 66 75 6e 20 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 2d 63 61 63 68 (defun..emms-filters-squash-cach
48be0 65 73 20 28 29 0a 20 20 22 53 71 75 61 73 68 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2c es.()..."Squash.the.cache.stack,
48c00 20 6b 65 65 70 20 74 68 65 20 74 6f 70 20 65 6e 74 72 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 .keep.the.top.entry."...(interac
48c20 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 28 70 6f 70 20 65 6d 6d tive)...(let*.((current.(pop.emm
48c40 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 29 0a 20 20 20 20 28 s-filters-search-caches))).....(
48c60 73 65 74 71 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 20 setq.emms-filters-search-caches.
48c80 6e 69 6c 29 0a 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 20 65 6d 6d 73 2d 66 69 6c 74 nil).....(push.current.emms-filt
48ca0 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ers-search-caches)))..(defun.emm
48cc0 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 73 74 61 63 6b 2d 73 69 7a 65 20 28 29 0a 20 s-filters-search-stack-size.()..
48ce0 20 22 47 69 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 ."Give.the.current.length.of.the
48d00 20 73 65 61 72 63 68 20 63 61 63 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 6c 65 6e 67 74 68 20 .search.cache.stack."...(length.
48d20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 29 0a 0a 28 64 emms-filters-search-caches))..(d
48d40 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 69 73 2d 66 69 6c 74 65 72 69 6e 67 20 28 efun.emms-filters-is-filtering.(
48d60 29 0a 20 20 22 54 72 75 65 20 69 66 20 74 68 65 72 65 20 69 73 20 61 20 73 65 61 72 63 68 20 73 )..."True.if.there.is.a.search.s
48d80 74 61 63 6b 20 6f 72 20 61 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 6f 72 20 61 20 72 69 6e 67 tack.or.a.filter.stack.or.a.ring
48da0 2d 66 69 6c 74 65 72 2e 22 0a 20 20 28 69 66 20 28 6f 72 20 28 3e 20 28 6c 65 6e 67 74 68 20 65 -filter."...(if.(or.(>.(length.e
48dc0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 63 61 63 68 65 73 29 20 30 29 0a 20 20 mms-filters-search-caches).0)...
48de0 20 20 20 20 20 20 20 20 28 3e 20 28 6c 65 6e 67 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d ........(>.(length.emms-filters-
48e00 73 74 61 63 6b 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 66 69 6c stack).0)...........(if.emms-fil
48e20 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 74 20 6e 69 6c 29 29 ters-current-ring-filter.t.nil))
48e40 0a 20 20 20 20 20 20 74 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d .......t.....nil))..(defun.emms-
48e60 66 69 6c 74 65 72 73 2d 65 6d 70 74 79 2d 72 65 73 75 6c 74 2d 6d 65 73 73 61 67 65 20 28 29 0a filters-empty-result-message.().
48e80 20 20 22 44 69 73 70 6c 61 79 20 73 6f 6d 65 20 68 65 6c 70 20 69 66 20 74 68 65 20 72 65 73 75 .."Display.some.help.if.the.resu
48ea0 6c 74 73 20 61 72 65 20 65 6d 70 74 79 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 4e 6f 20 72 65 lts.are.empty."...(concat."No.re
48ec0 63 6f 72 64 73 20 6d 61 74 63 68 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 61 cords.match.with.the.current.sea
48ee0 72 63 68 20 63 61 63 68 65 20 61 6e 64 20 66 69 6c 74 65 72 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 rch.cache.and.filters.\n\n".....
48f00 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 43 61 63 68 65 3a 20 25 73 5c 6e 52 69 6e 67 3a 20 ......(format."Cache:.%s\nRing:.
48f20 25 73 5c 6e 46 69 6c 74 65 72 3a 20 25 73 5c 6e 5c 6e 45 4d 4d 53 20 43 61 63 68 65 20 73 69 7a %s\nFilter:.%s\n\nEMMS.Cache.siz
48f40 65 3a 20 25 73 20 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d e:.%s.\n"...................(emm
48f60 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 63 61 63 68 65 2d 6e 61 6d 65 29 0a 20 20 s-filters-current-cache-name)...
48f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 ................(emms-filters-cu
48fa0 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 rrent-ring-filter-name).........
48fc0 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 ..........(car.emms-filters-curr
48fe0 65 6e 74 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 ent-filter)...................(h
49000 61 73 68 2d 74 61 62 6c 65 2d 63 6f 75 6e 74 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 29 0a ash-table-count.emms-cache-db)).
49020 20 20 20 20 20 20 20 20 20 20 22 0a 59 6f 75 20 6d 61 79 20 68 61 76 65 20 63 72 65 61 74 65 64 ..........".You.may.have.created
49040 20 61 20 66 69 6c 74 65 72 20 77 69 74 68 20 6e 6f 20 72 65 73 75 6c 74 73 20 66 6f 75 6e 64 2e .a.filter.with.no.results.found.
49060 0a 49 66 20 74 68 69 73 20 69 73 20 74 68 65 20 63 61 73 65 20 79 6f 75 20 6d 61 79 20 72 65 74 .If.this.is.the.case.you.may.ret
49080 75 72 6e 20 74 6f 20 79 6f 75 72 20 70 72 65 76 69 6f 75 73 0a 66 69 6c 74 65 72 20 62 79 20 70 urn.to.your.previous.filter.by.p
490a0 6f 70 70 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 2e 0a 0a 59 6f 75 20 opping.the.current.filter...You.
490c0 6d 61 79 20 61 6c 73 6f 20 68 61 76 65 20 61 6e 20 65 6d 70 74 79 20 73 65 61 72 63 68 20 63 61 may.also.have.an.empty.search.ca
490e0 63 68 65 20 6f 6e 0a 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2c 20 70 6f 70 70 69 6e 67 20 che.on.the.cache.stack,.popping.
49100 6f 72 20 73 74 61 73 68 69 6e 67 20 61 6e 64 20 70 6f 70 70 69 6e 67 0a 74 68 65 20 63 75 72 72 or.stashing.and.popping.the.curr
49120 65 6e 74 20 73 65 61 72 63 68 65 20 63 61 63 68 65 20 6d 61 79 20 79 69 65 6c 64 20 72 65 73 75 ent.searche.cache.may.yield.resu
49140 6c 74 73 2e 0a 0a 59 6f 75 20 6d 61 79 20 61 6c 73 6f 20 68 61 76 65 20 73 65 6c 65 63 74 65 64 lts...You.may.also.have.selected
49160 20 61 20 66 69 6c 74 65 72 0a 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 77 68 69 .a.filter.in.the.filter.ring.whi
49180 63 68 20 68 61 73 20 6e 6f 20 6d 61 74 63 68 65 73 2e 0a 4d 6f 76 65 20 79 6f 75 72 20 66 69 6c ch.has.no.matches..Move.your.fil
491a0 74 65 72 20 72 69 6e 67 20 73 65 6c 65 63 74 69 6f 6e 20 74 6f 20 27 6e 6f 20 66 69 6c 74 65 72 ter.ring.selection.to.'no.filter
491c0 27 0a 6f 72 20 73 65 6c 65 63 74 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 74 65 72 20 66 '.or.select.a.different.filter.f
491e0 6f 72 20 64 69 66 66 65 72 65 6e 74 20 72 65 73 75 6c 74 73 2e 22 29 29 0a 0a 0a 28 64 65 66 75 or.different.results."))...(defu
49200 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 20 28 66 69 6c 74 65 72 n.emms-filters-search-by.(filter
49220 2d 66 61 63 74 6f 72 79 2d 6e 61 6d 65 29 0a 20 20 22 53 65 61 72 63 68 20 75 73 69 6e 67 20 46 -factory-name)..."Search.using.F
49240 49 4c 54 45 52 2d 46 41 43 54 4f 52 59 2d 4e 41 4d 45 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 ILTER-FACTORY-NAME.to.create.a.f
49260 69 6c 74 65 72 2e 0a 45 6d 75 6c 61 74 69 6e 67 20 74 68 65 20 62 72 6f 77 73 65 72 20 73 65 61 ilter..Emulating.the.browser.sea
49280 72 63 68 2c 20 62 75 69 6c 64 20 61 20 66 69 6c 74 65 72 20 75 73 69 6e 67 20 66 61 63 74 6f 72 rch,.build.a.filter.using.factor
492a0 79 20 6e 61 6d 65 0a 61 6e 64 20 63 61 63 68 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 74 6f 20 y.name.and.cache.the.results.to.
492c0 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 the.cache.stack."...(interactive
492e0 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 )...(emms-filters-quick-one-shot
49300 20 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 2d 6e 61 6d 65 29 29 0a 0a 3b 3b 20 72 65 70 6c 61 .filter-factory-name))..;;.repla
49320 63 65 6d 65 6e 74 73 20 66 6f 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 cements.for.emms-browser.search.
49340 61 6e 64 20 74 68 65 6e 20 73 6f 6d 65 2e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 and.then.some..(defun.emms-filte
49360 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 28 29 0a 20 20 22 41 rs-search-by-albumartist.()..."A
49380 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f .fields.search.quick.one.shot.fo
493a0 72 20 41 6c 62 75 6d 20 41 72 74 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 r.Album.Artist."...(interactive)
493c0 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 ...(emms-filters-quick-one-shot.
493e0 22 41 6c 62 75 6d 2d 61 72 74 69 73 74 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 "Album-artist"))..(defun.emms-fi
49400 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 72 74 69 73 74 20 28 29 0a 20 20 22 41 20 66 lters-search-by-artist.()..."A.f
49420 69 65 6c 64 73 20 73 65 61 72 63 68 20 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 ields.search.quick.one.shot.for.
49440 41 72 74 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 Artist."...(interactive)...(emms
49460 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 41 72 74 69 73 74 22 -filters-quick-one-shot."Artist"
49480 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 ))..(defun.emms-filters-search-b
494a0 79 2d 63 6f 6d 70 6f 73 65 72 20 28 29 0a 20 20 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 y-composer.()..."A.fields.search
494c0 20 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 2e 22 0a 20 .quick.one.shot.for.composer."..
494e0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 .(interactive)...(emms-filters-q
49500 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 43 6f 6d 70 6f 73 65 72 22 29 29 0a 0a 28 64 65 66 uick-one-shot."Composer"))..(def
49520 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 70 65 72 66 6f 72 un.emms-filters-search-by-perfor
49540 6d 65 72 20 28 29 0a 20 20 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 71 75 69 63 6b 20 mer.()..."A.fields.search.quick.
49560 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 70 65 72 66 6f 72 6d 65 72 2e 22 0a 20 20 28 69 6e 74 65 one.shot.for.performer."...(inte
49580 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f ractive)...(emms-filters-quick-o
495a0 6e 65 2d 73 68 6f 74 20 22 50 65 72 66 6f 72 6d 65 72 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ne-shot."Performer"))..(defun.em
495c0 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 20 28 29 0a 20 20 ms-filters-search-by-title.()...
495e0 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 "A.fields.search.quick.one.shot.
49600 66 6f 72 20 74 69 74 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 for.title."...(interactive)...(e
49620 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 54 69 74 6c mms-filters-quick-one-shot."Titl
49640 65 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 e"))..(defun.emms-filters-search
49660 2d 62 79 2d 61 6c 62 75 6d 20 28 29 0a 20 20 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 -by-album.()..."A.fields.search.
49680 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 61 6c 62 75 6d 20 74 69 74 6c 65 2e 22 quick.one.shot.for.album.title."
496a0 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ...(interactive)...(emms-filters
496c0 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 41 6c 62 75 6d 22 29 29 0a 0a 28 64 65 66 75 -quick-one-shot."Album"))..(defu
496e0 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 73 20 n.emms-filters-search-by-titles.
49700 28 29 0a 20 20 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 71 75 69 63 6b 20 6f 6e 65 20 ()..."A.fields.search.quick.one.
49720 73 68 6f 74 20 66 6f 72 20 61 6c 62 75 6d 20 61 6e 64 20 73 6f 6e 67 20 74 69 74 6c 65 73 2e 22 shot.for.album.and.song.titles."
49740 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ...(interactive)...(emms-filters
49760 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 54 69 74 6c 65 73 22 29 29 0a 0a 28 64 65 66 -quick-one-shot."Titles"))..(def
49780 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 2d un.emms-filters-search-by-names-
497a0 61 6e 64 2d 74 69 74 6c 65 73 20 28 29 0a 20 20 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 and-titles.()..."A.fields.search
497c0 20 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 61 6c 6c 20 6e 61 6d 65 73 20 61 6e .quick.one.shot.for.all.names.an
497e0 64 20 74 69 74 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d d.titles."...(interactive)...(em
49800 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 4e 61 6d 65 73 ms-filters-quick-one-shot."Names
49820 20 61 6e 64 20 74 69 74 6c 65 73 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 .and.titles"))..(defun.emms-filt
49840 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 20 28 29 0a 20 20 22 41 20 66 69 65 6c ers-search-by-names.()..."A.fiel
49860 64 73 20 73 65 61 72 63 68 20 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 61 6c 6c ds.search.quick.one.shot.for.all
49880 20 6e 61 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 .names."...(interactive)...(emms
498a0 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 4e 61 6d 65 73 22 29 -filters-quick-one-shot."Names")
498c0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 )..(defun.emms-filters-search-by
498e0 2d 61 6c 6c 2d 74 65 78 74 20 28 29 0a 20 20 22 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 20 -all-text.()..."A.fields.search.
49900 71 75 69 63 6b 20 6f 6e 65 20 73 68 6f 74 20 66 6f 72 20 41 6c 6c 20 74 65 78 74 20 66 69 65 6c quick.one.shot.for.All.text.fiel
49920 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c ds."...(interactive)...(emms-fil
49940 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 20 22 41 6c 6c 20 74 65 78 74 22 29 29 ters-quick-one-shot."All.text"))
49960 0a 0a 0a 3b 3b 3b 20 54 65 73 74 69 6e 67 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...;;;.Testing.;;;.-------------
49980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
499a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 53 6f 6d 65 20 ----------------------.;;;.Some.
499c0 63 6f 6e 76 65 6e 69 65 6e 63 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 6d 61 6b 65 20 69 74 convenience.functions.to.make.it
499e0 20 65 61 73 79 20 74 6f 20 74 65 73 74 20 61 20 66 69 6c 74 65 72 2e 0a 0a 28 64 65 66 75 6e 20 .easy.to.test.a.filter...(defun.
49a00 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 67 65 74 2d 74 72 61 63 6b 2d 73 61 6d 70 emms-filters-test-get-track-samp
49a20 6c 65 73 20 28 63 61 63 68 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 72 6f 70 20 74 61 6b 65 29 0a les.(cache.&optional.drop.take).
49a40 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 .."Return.a.list.of.tracks.from.
49a60 74 68 65 20 43 41 43 48 45 2c 20 44 52 4f 50 20 74 72 61 63 6b 73 20 74 68 65 6e 20 54 41 4b 45 the.CACHE,.DROP.tracks.then.TAKE
49a80 20 61 73 20 69 6e 64 69 63 61 74 65 64 2e 0a 57 69 6c 6c 20 64 72 6f 70 20 30 20 61 6e 64 20 74 .as.indicated..Will.drop.0.and.t
49aa0 61 6b 65 20 31 4f 20 62 79 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 ake.1O.by.default."...(let*.((tr
49ac0 61 63 6b 73 20 28 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 72 6f 70 20 28 6f 72 20 acks.(list))..........(drop.(or.
49ae0 64 72 6f 70 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 6b 65 20 28 2b 20 28 6f 72 20 74 drop.0))..........(take.(+.(or.t
49b00 61 6b 65 20 31 30 29 20 64 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 65 72 ake.10).drop))..........(counter
49b20 20 30 29 29 0a 20 20 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 5f 70 61 74 68 .0)).....(maphash.(lambda.(_path
49b40 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 0a 20 20 20 .track)................(when....
49b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 ................(and............
49b80 20 20 20 20 20 20 20 20 20 28 3e 20 63 6f 75 6e 74 65 72 20 64 72 6f 70 29 0a 20 20 20 20 20 20 .........(>.counter.drop).......
49ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 63 6f 75 6e 74 65 72 20 74 61 6b 65 29 29 0a ..............(<.counter.take)).
49bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 74 72 61 63 6b 20 74 72 61 .................(push.track.tra
49be0 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 cks))................(setq.count
49c00 65 72 20 28 2b 20 63 6f 75 6e 74 65 72 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 er.(+.counter.1)))..............
49c20 63 61 63 68 65 29 0a 20 20 20 20 74 72 61 63 6b 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 cache).....tracks))..(defun.emms
49c40 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 61 63 74 6f 72 79 20 28 66 61 63 74 6f 72 79 2d 6e -filters-test-factory.(factory-n
49c60 61 6d 65 20 70 61 72 6d 73 20 74 72 61 63 6b 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 64 20 74 ame.parms.track)..."Create.and.t
49c80 65 73 74 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 46 41 43 54 4f 52 59 2d 4e 41 4d 45 20 61 6e 64 est.filter.from.FACTORY-NAME.and
49ca0 20 50 41 52 4d 53 2e 0a 54 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 54 52 41 43 4b 2e 22 0a .PARMS..Test.it.against.TRACK.".
49cc0 20 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 ..(funcall....(emms-filters-make
49ce0 2d 2d 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 70 61 72 6d 73 29 0a 20 20 20 --filter.factory-name.parms)....
49d00 74 72 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 track))..(defun.emms-filters-tes
49d20 74 2d 66 61 63 74 6f 72 79 2d 69 6e 74 65 72 61 63 74 69 76 65 20 28 66 61 63 74 6f 72 79 2d 6e t-factory-interactive.(factory-n
49d40 61 6d 65 20 74 72 61 63 6b 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 ame.track)..."Interactively.crea
49d60 74 65 20 61 6e 64 20 74 65 73 74 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 46 41 43 54 4f 52 59 2d te.and.test.filter.from.FACTORY-
49d80 4e 41 4d 45 2e 0a 54 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 54 52 41 43 4b 2e 22 0a 20 20 NAME..Test.it.against.TRACK."...
49da0 28 66 75 6e 63 61 6c 6c 0a 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 77 2d 66 69 (funcall....(emms-filters-new-fi
49dc0 6c 74 65 72 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 74 29 0a 20 20 20 74 72 61 63 6b 29 29 0a lter.factory-name.t)....track)).
49de0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 .(defun.emms-filters-test-filter
49e00 2d 6e 61 6d 65 20 28 74 72 61 63 6b 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 26 6f 70 74 69 6f 6e -name.(track.filter-name.&option
49e20 61 6c 20 72 69 6e 67 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 20 22 54 65 73 74 20 66 69 6c al.ring-filter-name)..."Test.fil
49e40 74 65 72 73 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 46 49 4c 54 45 52 5f 4e 41 4d 45 20 61 ters.identified.by.FILTER_NAME.a
49e60 6e 64 20 52 49 4e 47 2d 46 49 4c 54 45 52 2d 4e 41 4d 45 20 61 67 61 69 6e 73 74 20 61 20 54 52 nd.RING-FILTER-NAME.against.a.TR
49e80 41 43 4b 2e 22 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 ACK."...(emms-filters-test-filte
49ea0 72 0a 20 20 20 74 72 61 63 6b 0a 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 66 69 6c 74 65 72 r....track....(cdr.(assoc.filter
49ec0 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 0a 20 20 20 -name.emms-filters-filters))....
49ee0 28 69 66 20 72 69 6e 67 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 28 63 64 72 (if.ring-filter-name........(cdr
49f00 20 28 61 73 73 6f 63 20 72 69 6e 67 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 69 .(assoc.ring-filter-name.emms-fi
49f20 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 0a 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 lters-filters))......nil)))..(de
49f40 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 20 28 74 72 fun.emms-filters-test-filter.(tr
49f60 61 63 6b 20 66 69 6c 74 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 72 69 6e 67 2d 66 69 6c 74 65 72 ack.filter.&optional.ring-filter
49f80 29 0a 20 20 22 54 65 73 74 20 54 52 41 43 4b 20 61 67 61 69 6e 73 74 20 46 49 4c 54 45 52 20 61 )..."Test.TRACK.against.FILTER.a
49fa0 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 52 49 4e 47 2d 46 49 4c 54 45 52 2e 0a 41 20 66 75 6e 63 74 nd.optional.RING-FILTER..A.funct
49fc0 69 6f 6e 61 6c 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c ional.equivalent.to.the.emms-fil
49fe0 74 65 72 73 2d 62 72 6f 77 73 65 72 2d 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 2e 0a 46 69 72 73 ters-browser-hook.function..Firs
4a000 74 20 77 65 20 74 65 73 74 20 74 68 65 20 74 72 61 63 6b 20 61 67 61 69 6e 73 74 20 74 68 65 20 t.we.test.the.track.against.the.
4a020 72 69 6e 67 2d 66 69 6c 74 65 72 2c 20 74 68 65 6e 20 77 65 20 63 6f 6d 62 69 6e 65 0a 74 68 65 ring-filter,.then.we.combine.the
4a040 20 72 65 73 75 6c 74 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 66 .result.with.the.result.of.the.f
4a060 69 6c 74 65 72 2e 22 0a 20 20 28 61 6e 64 20 28 69 66 20 72 69 6e 67 2d 66 69 6c 74 65 72 0a 20 ilter."...(and.(if.ring-filter..
4a080 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 72 69 6e 67 2d 66 69 6c 74 65 72 20 74 ..........(funcall.ring-filter.t
4a0a0 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 28 69 66 20 66 69 6c rack)..........t)........(if.fil
4a0c0 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 69 6c 74 65 72 20 74 ter............(funcall.filter.t
4a0e0 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 rack)..........t)))..(defun.emms
4a100 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 2d 64 69 72 65 -filters-test-filter-tracks-dire
4a120 63 74 20 28 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 70 61 72 6d 73 20 74 72 61 63 6b 73 29 0a 20 ct.(factory-name.parms.tracks)..
4a140 20 22 54 65 73 74 20 61 20 6c 69 73 74 20 6f 66 20 54 52 41 43 4b 53 20 61 67 61 69 6e 73 74 20 ."Test.a.list.of.TRACKS.against.
4a160 61 20 66 69 6c 74 65 72 20 63 72 65 61 74 65 64 20 66 72 6f 6d 20 46 41 43 54 4f 52 59 2d 4e 41 a.filter.created.from.FACTORY-NA
4a180 4d 45 20 61 6e 64 0a 20 20 50 41 52 4d 53 2e 20 55 73 65 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ME.and...PARMS..Uses.emms-filter
4a1a0 73 2d 74 65 73 74 2d 66 61 63 74 6f 72 79 20 64 69 72 65 63 74 6c 79 20 72 61 74 68 65 72 20 74 s-test-factory.directly.rather.t
4a1c0 68 61 6e 20 65 6d 75 6c 61 74 69 6e 67 20 74 68 65 0a 20 20 62 72 6f 77 73 65 72 2d 68 6f 6f 6b han.emulating.the...browser-hook
4a1e0 2d 66 75 6e 63 74 69 6f 6e 2e 20 54 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 73 6f 6d 65 20 -function..Test.it.against.some.
4a200 70 6f 72 74 69 6f 6e 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 53 54 41 52 54 0a 20 20 72 65 portion.starting.with.START...re
4a220 63 6f 72 64 73 20 61 6e 64 20 73 74 6f 70 70 69 6e 67 20 61 74 20 53 54 4f 50 20 72 65 63 6f 72 cords.and.stopping.at.STOP.recor
4a240 64 73 20 6f 66 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 63 61 63 68 65 2d 64 62 2e 20 52 65 74 ds.of.the.existing.cache-db..Ret
4a260 75 72 6e 73 0a 20 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 20 77 69 74 68 20 74 68 65 20 66 urns...a.list.of.cons.with.the.f
4a280 69 6c 74 65 72 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 65 20 74 72 61 63 6b 2e 22 0a 20 20 28 ilter.result.and.the.track."...(
4a2a0 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 mapcar.(lambda.(track)..........
4a2c0 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 ...(cons..............(emms-filt
4a2e0 65 72 73 2d 74 65 73 74 2d 66 61 63 74 6f 72 79 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 70 61 ers-test-factory.factory-name.pa
4a300 72 6d 73 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 29 29 0a rms.track)..............track)).
4a320 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ..........tracks))..(defun.emms-
4a340 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 20 28 66 61 63 74 filters-test-filter-tracks.(fact
4a360 6f 72 79 2d 6e 61 6d 65 20 70 61 72 6d 73 20 74 72 61 63 6b 73 29 0a 20 20 22 54 65 73 74 20 61 ory-name.parms.tracks)..."Test.a
4a380 20 6c 69 73 74 20 6f 66 20 54 52 41 43 4b 53 20 61 67 61 69 6e 73 74 20 61 20 66 69 6c 74 65 72 .list.of.TRACKS.against.a.filter
4a3a0 20 63 72 65 61 74 65 64 20 66 72 6f 6d 20 46 41 43 54 4f 52 59 2d 4e 41 4d 45 20 61 6e 64 20 50 .created.from.FACTORY-NAME.and.P
4a3c0 41 52 4d 53 2e 0a 45 6d 75 6c 61 74 65 73 20 74 68 65 20 62 72 6f 77 73 65 72 2d 68 6f 6f 6b 20 ARMS..Emulates.the.browser-hook.
4a3e0 66 75 6e 63 74 69 6f 6e 20 62 79 20 75 73 69 6e 67 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 function.by.using.emms-filters-t
4a400 65 73 74 2d 66 69 6c 74 65 72 2e 0a 54 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 73 6f 6d 65 est-filter..Test.it.against.some
4a420 20 70 6f 72 74 69 6f 6e 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 53 54 41 52 54 20 72 65 63 .portion.starting.with.START.rec
4a440 6f 72 64 73 20 61 6e 64 20 73 74 6f 70 70 69 6e 67 0a 61 74 20 53 54 50 20 72 65 63 6f 72 64 73 ords.and.stopping.at.STP.records
4a460 20 6f 66 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 63 61 63 68 65 2d 64 62 2e 0a 52 65 74 75 72 .of.the.existing.cache-db..Retur
4a480 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 20 77 69 74 68 20 74 68 65 20 66 69 6c 74 65 ns.a.list.of.cons.with.the.filte
4a4a0 72 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 65 20 74 72 61 63 6b 2e 22 0a 20 20 28 6c 65 74 20 r.result.and.the.track."...(let.
4a4c0 28 28 66 69 6c 74 65 72 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 2d 66 69 6c ((filter.(emms-filters-make--fil
4a4e0 74 65 72 20 66 61 63 74 6f 72 79 2d 6e 61 6d 65 20 70 61 72 6d 73 29 29 29 0a 20 20 20 20 28 6d ter.factory-name.parms))).....(m
4a500 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 apcar.(lambda.(track)...........
4a520 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 ....(cons................(emms-f
4a540 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 20 74 72 61 63 6b 20 66 69 6c 74 65 72 29 ilters-test-filter.track.filter)
4a560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 ................track)).........
4a580 20 20 20 20 74 72 61 63 6b 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 ....tracks)))..(defun.emms-filte
4a5a0 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 2d 6e 61 6d 65 20 28 66 69 6c 74 rs-test-filter-tracks-name.(filt
4a5c0 65 72 2d 6e 61 6d 65 20 74 72 61 63 6b 73 29 0a 20 20 22 54 65 73 74 20 61 20 6c 69 73 74 20 6f er-name.tracks)..."Test.a.list.o
4a5e0 66 20 54 52 41 43 4b 53 20 61 67 61 69 6e 73 74 20 61 20 46 49 4c 54 45 52 2d 4e 41 4d 45 2e 0a f.TRACKS.against.a.FILTER-NAME..
4a600 45 6d 75 6c 61 74 65 73 20 74 68 65 20 62 72 6f 77 73 65 72 2d 68 6f 6f 6b 20 66 75 6e 63 74 69 Emulates.the.browser-hook.functi
4a620 6f 6e 20 62 79 20 75 73 69 6e 67 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 on.by.using.emms-filters-test-fi
4a640 6c 74 65 72 2e 0a 54 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 73 6f 6d 65 20 70 6f 72 74 69 lter..Test.it.against.some.porti
4a660 6f 6e 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 53 54 41 52 54 20 72 65 63 6f 72 64 73 20 61 on.starting.with.START.records.a
4a680 6e 64 20 73 74 6f 70 70 69 6e 67 0a 61 74 20 53 54 50 20 72 65 63 6f 72 64 73 20 6f 66 20 74 68 nd.stopping.at.STP.records.of.th
4a6a0 65 20 65 78 69 73 74 69 6e 67 20 63 61 63 68 65 2d 64 62 2e 0a 52 65 74 75 72 6e 73 20 61 20 6c e.existing.cache-db..Returns.a.l
4a6c0 69 73 74 20 6f 66 20 63 6f 6e 73 20 77 69 74 68 20 74 68 65 20 66 69 6c 74 65 72 20 72 65 73 75 ist.of.cons.with.the.filter.resu
4a6e0 6c 74 20 61 6e 64 20 74 68 65 20 74 72 61 63 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 74 lt.and.the.track."...(let.((filt
4a700 65 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d er.(cdr.(assoc.filter-name.emms-
4a720 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 filters-filters)))).....(mapcar.
4a740 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 (lambda.(track)...............(c
4a760 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ons................(emms-filters
4a780 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 74 72 61 63 6b 20 66 69 6c 74 65 72 29 0a -test-filter-name.track.filter).
4a7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 ...............track))..........
4a7c0 20 20 20 74 72 61 63 6b 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 ...tracks)))..(defun.emms-filter
4a7e0 73 2d 74 65 73 74 2d 66 69 6e 64 2d 74 72 61 63 6b 73 20 28 63 61 63 68 65 20 66 69 6c 74 65 72 s-test-find-tracks.(cache.filter
4a800 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 20 66 72 6f )..."Return.a.list.of.tracks.fro
4a820 6d 20 74 68 65 20 43 41 43 48 45 20 66 69 6c 74 65 72 65 64 20 62 79 20 66 75 6e 63 74 69 6f 6e m.the.CACHE.filtered.by.function
4a840 20 46 49 4c 54 45 52 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 73 20 28 6c 69 73 74 .FILTER."...(let*.((tracks.(list
4a860 29 29 29 0a 20 20 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 5f 70 61 74 68 20 ))).....(maphash.(lambda.(_path.
4a880 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e track)................(when.(fun
4a8a0 63 61 6c 6c 20 66 69 6c 74 65 72 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 call.filter.track)..............
4a8c0 20 20 20 20 28 70 75 73 68 20 74 72 61 63 6b 20 74 72 61 63 6b 73 29 29 29 0a 20 20 20 20 20 20 ....(push.track.tracks))).......
4a8e0 20 20 20 20 20 20 20 63 61 63 68 65 29 0a 20 20 20 20 74 72 61 63 6b 73 29 29 0a 0a 28 64 65 66 .......cache).....tracks))..(def
4a900 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6e 64 2d 74 72 61 63 6b 73 un.emms-filters-test-find-tracks
4a920 2d 77 69 74 68 2d 6e 61 6d 65 20 28 63 61 63 68 65 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 0a 20 -with-name.(cache.filter-name)..
4a940 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 74 ."Return.a.list.of.tracks.from.t
4a960 68 65 20 43 41 43 48 45 20 66 69 6c 74 65 72 65 64 20 62 79 20 66 75 6e 63 74 69 6f 6e 20 46 49 he.CACHE.filtered.by.function.FI
4a980 4c 54 45 52 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 73 20 28 6c 69 73 74 29 29 29 LTER."...(let*.((tracks.(list)))
4a9a0 0a 20 20 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 5f 70 61 74 68 20 74 72 61 .....(maphash.(lambda.(_path.tra
4a9c0 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c ck)................(when.(funcal
4a9e0 6c 20 28 63 64 72 20 28 61 73 73 6f 63 20 66 69 6c 74 65 72 2d 6e 61 6d 65 20 65 6d 6d 73 2d 66 l.(cdr.(assoc.filter-name.emms-f
4aa00 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 29 29 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 ilters-filters)).track).........
4aa20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 74 72 61 63 6b 20 74 72 61 63 6b 73 29 29 29 0a 20 .........(push.track.tracks)))..
4aa40 20 20 20 20 20 20 20 20 20 20 20 20 63 61 63 68 65 29 0a 20 20 20 20 74 72 61 63 6b 73 29 29 0a ............cache).....tracks)).
4aa60 0a 3b 3b 20 3b 3b 3b 20 54 65 73 74 69 6e 67 0a 3b 3b 20 3b 3b 3b 20 53 6f 6d 65 20 61 63 74 75 .;;.;;;.Testing.;;.;;;.Some.actu
4aa80 61 6c 20 74 65 73 74 69 6e 67 2e 0a 3b 3b 20 3b 3b 3b 20 53 6f 6d 65 20 73 61 6d 70 6c 65 20 74 al.testing..;;.;;;.Some.sample.t
4aaa0 72 61 63 6b 73 20 74 6f 20 75 73 65 20 66 6f 72 20 64 61 74 61 2e 0a 3b 3b 20 28 73 65 74 71 20 racks.to.use.for.data..;;.(setq.
4aac0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 74 72 61 63 6b 73 0a 3b 3b 20 20 20 20 20 emms-filters-test-tracks.;;.....
4aae0 20 20 27 28 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 66 69 6c 65 29 0a 3b 3b 20 20 20 ..'((*track*.(type...file).;;...
4ab00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 2f 53 6f 6d 65 6f 6e 65 ...............(name..."/Someone
4ab20 2f 53 6f 6d 65 2d 61 6c 62 75 6d 2f 53 6f 6d 65 2d 73 6f 6e 67 2f 74 72 61 63 6b 30 30 30 31 22 /Some-album/Some-song/track0001"
4ab40 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 ).;;..................(info-play
4ab60 69 6e 67 2d 74 69 6d 65 20 2e 20 31 38 30 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-time...180).;;..............
4ab80 20 20 20 20 28 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 20 2e 20 22 31 22 29 0a 3b 3b 20 20 ....(info-discnumber..."1").;;..
4aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 2e 20 22 ................(info-artist..."
4abc0 53 6f 6d 65 6f 6e 65 2d 65 6c 73 65 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Someone-else").;;...............
4abe0 20 20 20 28 69 6e 66 6f 2d 74 69 74 6c 65 20 2e 20 22 53 6f 6d 65 2d 73 6f 6e 67 22 29 0a 3b 3b ...(info-title..."Some-song").;;
4ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d ..................(info-tracknum
4ac20 62 65 72 20 2e 20 22 30 31 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ber..."01").;;..................
4ac40 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 2e 20 22 53 6f 6d 65 2d 61 6c 62 75 6d 22 29 0a 3b 3b 20 20 (info-album..."Some-album").;;..
4ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 ................(info-albumartis
4ac80 74 20 2e 20 22 53 6f 6d 65 6f 6e 65 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t..."Someone").;;...............
4aca0 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 2e 20 31 39 34 30 29 0a 3b 3b 20 20 20 20 20 20 20 20 ...(info-year...1940).;;........
4acc0 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 2e 20 22 76 61 6c 73 22 29 29 ..........(info-genre..."vals"))
4ace0 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 66 69 6c .;;.........(*track*.(type...fil
4ad00 65 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 e).;;..................(name..."
4ad20 2f 41 6e 6f 74 68 65 72 2d 6f 6e 65 2f 41 6e 6f 74 68 65 72 2d 61 6c 62 75 6d 2f 41 6e 6f 74 68 /Another-one/Another-album/Anoth
4ad40 65 72 2d 73 6f 6e 67 2f 74 72 61 63 6b 30 30 30 32 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 er-song/track0002").;;..........
4ad60 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 2e 20 31 38 30 ........(info-playing-time...180
4ad80 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 64 69 73 63 ).;;..................(info-disc
4ada0 6e 75 6d 62 65 72 20 2e 20 22 31 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 number..."1").;;................
4adc0 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 2e 20 22 41 6e 6f 74 68 65 72 2d 53 6f 6d 65 6f 6e ..(info-artist..."Another-Someon
4ade0 65 2d 65 6c 73 65 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e e-else").;;..................(in
4ae00 66 6f 2d 74 69 74 6c 65 20 2e 20 22 41 6e 6f 74 68 65 72 2d 73 6f 6e 67 22 29 0a 3b 3b 20 20 20 fo-title..."Another-song").;;...
4ae20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 ...............(info-tracknumber
4ae40 20 2e 20 22 30 32 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e ..."02").;;..................(in
4ae60 66 6f 2d 61 6c 62 75 6d 20 2e 20 22 41 6e 6f 74 68 65 72 2d 61 6c 62 75 6d 22 29 0a 3b 3b 20 20 fo-album..."Another-album").;;..
4ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 ................(info-albumartis
4aea0 74 20 2e 20 22 41 6e 6f 74 68 65 72 2d 6f 6e 65 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 t..."Another-one").;;...........
4aec0 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 2e 20 31 39 33 35 29 0a 3b 3b 20 20 20 20 .......(info-year...1935).;;....
4aee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 2e 20 22 74 61 6e ..............(info-genre..."tan
4af00 67 6f 22 29 29 29 29 0a 0a 3b 3b 20 28 64 65 66 75 6e 20 70 72 65 74 74 79 2d 63 6f 6e 73 20 28 go"))))..;;.(defun.pretty-cons.(
4af20 63 6f 6e 73 2d 6c 69 73 74 29 0a 3b 3b 20 20 20 22 70 72 65 74 74 79 20 70 72 69 6e 74 20 61 20 cons-list).;;..."pretty.print.a.
4af40 6c 69 73 74 20 6f 66 20 63 6f 6e 73 2e 22 0a 3b 3b 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 list.of.cons.".;;...(mapconcat.(
4af60 6c 61 6d 62 64 61 20 28 73 74 72 29 20 28 66 6f 72 6d 61 74 20 22 25 73 5c 6e 22 20 73 74 72 29 lambda.(str).(format."%s\n".str)
4af80 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 2d 6c 69 73 74 29 29 0a 0a 3b ).;;..............cons-list))..;
4afa0 3b 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 64 6f 2d 74 65 73 74 73 20 28 ;.(defun.emms-filters-do-tests.(
4afc0 29 0a 3b 3b 20 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 69 73 6f 6c 61 74 69 6e 67 ).;;..."A.function.for.isolating
4afe0 20 61 6e 64 20 72 75 6e 6e 69 6e 67 20 73 6f 6d 65 20 74 65 73 74 73 2e 22 0a 3b 3b 20 20 20 3b .and.running.some.tests.".;;...;
4b000 3b 20 4d 61 6b 65 20 73 6f 6d 65 20 73 61 6d 70 6c 65 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 ;.Make.some.sample.data.from.the
4b020 20 66 69 72 73 74 20 66 65 77 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 .first.few.tracks.from.the.cache
4b040 2e 0a 3b 3b 20 20 20 28 6c 65 74 20 20 28 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 ..;;...(let..((emms-filters-test
4b060 2d 74 72 61 63 6b 73 2d 73 61 6d 70 6c 65 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d -tracks-sample.;;...........(emm
4b080 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 67 65 74 2d 74 72 61 63 6b 2d 73 61 6d 70 6c 65 73 s-filters-test-get-track-samples
4b0a0 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 66 69 .emms-cache-db)).;;..........(fi
4b0c0 72 73 74 2d 74 65 73 74 2d 74 72 61 63 6b 20 28 63 61 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 rst-test-track.(car.emms-filters
4b0e0 2d 74 65 73 74 2d 74 72 61 63 6b 73 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 73 65 63 6f -test-tracks)).;;..........(seco
4b100 6e 64 2d 74 65 73 74 2d 74 72 61 63 6b 20 28 63 61 64 72 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 nd-test-track.(cadr.emms-filters
4b120 2d 74 65 73 74 2d 74 72 61 63 6b 73 29 29 29 0a 0a 3b 3b 20 41 20 64 69 72 65 63 74 20 75 73 65 -test-tracks)))..;;.A.direct.use
4b140 20 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 66 69 6c 74 65 72 2e 0a 0a 3b 3b 20 3b 3b .of.the.generated.filter...;;.;;
4b160 20 43 72 65 61 74 65 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 61 20 66 61 63 74 6f 72 79 20 .Create.a.filter.from.a.factory.
4b180 61 6e 64 20 74 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 61 20 73 69 6e 67 6c 65 20 74 72 61 and.test.it.against.a.single.tra
4b1a0 63 6b 2e 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 61 63 74 6f 72 ck..;;.(emms-filters-test-factor
4b1c0 79 20 22 47 65 6e 72 65 22 20 27 28 22 76 61 6c 73 22 29 20 66 69 72 73 74 2d 74 65 73 74 2d 74 y."Genre".'("vals").first-test-t
4b1e0 72 61 63 6b 29 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 61 63 74 rack).;;.(emms-filters-test-fact
4b200 6f 72 79 20 22 47 65 6e 72 65 22 20 27 28 22 76 61 6c 73 22 29 20 73 65 63 6f 6e 64 2d 74 65 73 ory."Genre".'("vals").second-tes
4b220 74 2d 74 72 61 63 6b 29 0a 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d t-track)..;;.(emms-filters-test-
4b240 66 61 63 74 6f 72 79 20 22 54 69 74 6c 65 73 22 20 22 53 6f 6d 65 22 20 66 69 72 73 74 2d 74 65 factory."Titles"."Some".first-te
4b260 73 74 2d 74 72 61 63 6b 29 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d st-track).;;.(emms-filters-test-
4b280 66 61 63 74 6f 72 79 20 22 54 69 74 6c 65 73 22 20 22 53 6f 6d 65 22 20 73 65 63 6f 6e 64 2d 74 factory."Titles"."Some".second-t
4b2a0 65 73 74 2d 74 72 61 63 6b 29 0a 0a 3b 3b 20 3b 3b 20 54 65 73 74 20 61 20 66 65 77 20 74 72 61 est-track)..;;.;;.Test.a.few.tra
4b2c0 63 6b 73 20 61 67 61 69 6e 73 74 20 69 74 2e 0a 3b 3b 20 28 70 72 65 74 74 79 2d 63 6f 6e 73 20 cks.against.it..;;.(pretty-cons.
4b2e0 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 (emms-filters-test-filter-tracks
4b300 20 22 47 65 6e 72 65 22 20 27 28 22 76 61 6c 73 22 29 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d ."Genre".'("vals").emms-filters-
4b320 74 65 73 74 2d 74 72 61 63 6b 73 29 29 0a 3b 3b 20 28 70 72 65 74 74 79 2d 63 6f 6e 73 20 28 65 test-tracks)).;;.(pretty-cons.(e
4b340 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 20 22 mms-filters-test-filter-tracks."
4b360 47 65 6e 72 65 22 20 27 28 22 76 61 6c 73 22 29 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 Genre".'("vals").emms-filters-te
4b380 73 74 2d 74 72 61 63 6b 73 2d 73 61 6d 70 6c 65 29 29 0a 3b 3b 20 28 70 72 65 74 74 79 2d 63 6f st-tracks-sample)).;;.(pretty-co
4b3a0 6e 73 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 ns.(emms-filters-test-filter-tra
4b3c0 63 6b 73 20 22 54 69 74 6c 65 73 22 20 27 28 22 53 6f 6d 65 22 29 20 65 6d 6d 73 2d 66 69 6c 74 cks."Titles".'("Some").emms-filt
4b3e0 65 72 73 2d 74 65 73 74 2d 74 72 61 63 6b 73 29 29 0a 3b 3b 20 28 70 72 65 74 74 79 2d 63 6f 6e ers-test-tracks)).;;.(pretty-con
4b400 73 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 72 61 63 s.(emms-filters-test-filter-trac
4b420 6b 73 20 22 54 69 74 6c 65 73 22 20 27 28 22 53 6f 6d 65 22 29 20 65 6d 6d 73 2d 66 69 6c 74 65 ks."Titles".'("Some").emms-filte
4b440 72 73 2d 74 65 73 74 2d 74 72 61 63 6b 73 2d 73 61 6d 70 6c 65 29 29 0a 3b 3b 20 28 70 72 65 74 rs-test-tracks-sample)).;;.(pret
4b460 74 79 2d 63 6f 6e 73 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 ty-cons.(emms-filters-test-filte
4b480 72 2d 74 72 61 63 6b 73 20 22 54 69 74 6c 65 73 22 20 27 28 22 56 69 76 22 29 20 65 6d 6d 73 2d r-tracks."Titles".'("Viv").emms-
4b4a0 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 74 72 61 63 6b 73 2d 73 61 6d 70 6c 65 29 29 0a 0a 3b 3b filters-test-tracks-sample))..;;
4b4c0 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6e 64 2d 74 72 61 63 6b 73 20 .(emms-filters-test-find-tracks.
4b4e0 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 emms-cache-db.(emms-filters-make
4b500 2d 2d 66 69 6c 74 65 72 20 22 54 69 74 6c 65 73 22 20 27 28 22 73 6f 6c 6c 6f 22 29 29 29 0a 0a --filter."Titles".'("sollo")))..
4b520 3b 3b 20 3b 3b 20 54 65 73 74 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 72 65 61 74 69 6f 6e 20 ;;.;;.Test.interactive.creation.
4b540 6f 66 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 61 20 66 61 63 74 6f 72 79 2e 0a 3b 3b 20 3b of.a.filter.from.a.factory..;;.;
4b560 3b 20 63 72 65 61 74 65 20 61 20 66 69 6c 74 65 72 20 66 72 6f 6d 20 61 20 66 61 63 74 6f 72 79 ;.create.a.filter.from.a.factory
4b580 20 61 6e 64 20 74 65 73 74 20 69 74 20 61 67 61 69 6e 73 74 20 61 20 73 69 6e 67 6c 65 20 74 72 .and.test.it.against.a.single.tr
4b5a0 61 63 6b 2e 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 61 63 74 6f ack..;;.(emms-filters-test-facto
4b5c0 72 79 2d 69 6e 74 65 72 61 63 74 69 76 65 20 22 47 65 6e 72 65 22 20 66 69 72 73 74 2d 74 65 73 ry-interactive."Genre".first-tes
4b5e0 74 2d 74 72 61 63 6b 29 0a 3b 3b 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 t-track).;;.(emms-filters-test-f
4b600 61 63 74 6f 72 79 2d 69 6e 74 65 72 61 63 74 69 76 65 20 22 54 69 74 6c 65 73 22 20 66 69 72 73 actory-interactive."Titles".firs
4b620 74 2d 74 65 73 74 2d 74 72 61 63 6b 29 29 29 0a 0a 3b 3b 20 54 65 73 74 69 6e 67 20 42 61 63 6b t-test-track)))..;;.Testing.Back
4b640 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 74 68 65 20 65 6d 6d 73 ward.compatibility.with.the.emms
4b660 2d 62 72 6f 77 73 65 72 2e 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -browser..;;.-------------------
4b680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
4b6a0 2d 2d 2d 2d 0a 3b 3b 20 4d 61 6b 65 20 73 6f 6d 65 20 6f 6c 64 20 73 74 79 6c 65 20 62 72 6f 77 ----.;;.Make.some.old.style.brow
4b6c0 73 65 72 20 66 69 6c 74 65 72 73 20 74 6f 20 74 65 73 74 0a 3b 3b 20 74 68 65 20 66 69 6c 74 65 ser.filters.to.test.;;.the.filte
4b6e0 72 2d 72 69 6e 67 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 3b r-ring.backward.compatibility..;
4b700 3b 20 53 74 65 70 73 20 74 6f 20 74 65 73 74 3a 0a 3b 3b 20 31 2e 20 4d 61 6b 65 20 73 6f 6d 65 ;.Steps.to.test:.;;.1..Make.some
4b720 20 6f 6c 64 20 73 74 79 6c 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 73 2c .old.style.emms-browser.filters,
4b740 0a 3b 3b 20 33 2e 20 54 72 79 20 74 68 65 6d 20 6f 75 74 20 64 69 72 65 63 74 6c 79 20 62 79 20 .;;.3..Try.them.out.directly.by.
4b760 6e 61 6d 65 2e 0a 3b 3b 0a 3b 3b 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 name..;;.;;.emms-browser-make-fi
4b780 6c 74 65 72 20 6e 6f 77 20 69 6e 76 65 72 74 73 20 74 68 65 20 66 69 6c 74 65 72 20 72 65 73 75 lter.now.inverts.the.filter.resu
4b7a0 6c 74 0a 3b 3b 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 65 6d 6d lt.;;.for.compatibility.with.emm
4b7c0 73 2d 66 69 6c 74 65 72 73 2e 20 54 68 65 20 6f 6e 6c 79 20 69 6e 74 65 72 66 61 63 65 20 74 6f s-filters..The.only.interface.to
4b7e0 20 74 68 65 6d 0a 3b 3b 20 77 65 72 65 20 6e 65 78 74 20 61 6e 64 20 70 72 65 76 69 6f 75 73 20 .them.;;.were.next.and.previous.
4b800 66 75 6e 63 74 69 6f 6e 73 2e 0a 3b 3b 20 54 68 61 74 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 functions..;;.That.functionality
4b820 20 69 73 20 72 65 70 6c 69 63 61 74 65 64 20 77 69 74 68 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c .is.replicated.with.the.emms-fil
4b840 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 2e 0a 0a 3b 3b 20 28 64 65 66 75 6e 20 65 6d 6d ters-filter-ring...;;.(defun.emm
4b860 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 67 65 6e 72 65 20 28 67 65 6e s-browser-make-filter-genre.(gen
4b880 72 65 29 0a 3b 3b 20 20 20 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 62 79 20 47 45 4e 52 45 re).;;..."Make.a.filter.by.GENRE
4b8a0 2e 22 0a 3b 3b 20 20 20 28 6c 65 74 20 28 28 66 69 6c 74 65 72 20 28 66 75 6e 63 61 6c 6c 20 65 .".;;...(let.((filter.(funcall.e
4b8c0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 67 65 6e 72 65 20 67 65 mms-filters-make-filter-genre.ge
4b8e0 6e 72 65 29 29 29 0a 3b 3b 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 3b 3b nre))).;;.....(lambda.(track).;;
4b900 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 69 6c 74 65 72 20 74 72 61 63 6b 29 29 29 29 29 0a 0a .......(not.(filter.track)))))..
4b920 3b 3b 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 ;;.(defun.emms-browser-make-filt
4b940 65 72 2d 67 65 6e 72 65 20 28 67 65 6e 72 65 29 0a 3b 3b 20 20 20 22 4d 61 6b 65 20 61 20 66 69 er-genre.(genre).;;..."Make.a.fi
4b960 6c 74 65 72 20 62 79 20 47 45 4e 52 45 2e 22 0a 3b 3b 20 20 20 28 6c 61 6d 62 64 61 20 28 74 72 lter.by.GENRE.".;;...(lambda.(tr
4b980 61 63 6b 29 0a 3b 3b 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 65 6d 6d 73 2d 74 72 ack).;;.....(let.((info.(emms-tr
4b9a0 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 29 29 0a 3b 3b 20 ack-get.track.'info-genre))).;;.
4b9c0 20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 69 6e 66 6f 20 28 73 74 72 69 6e 67 2d 65 71 75 ......(not.(and.info.(string-equ
4b9e0 61 6c 2d 69 67 6e 6f 72 65 2d 63 61 73 65 20 67 65 6e 72 65 20 69 6e 66 6f 29 29 29 29 29 29 0a al-ignore-case.genre.info)))))).
4ba00 3b 3b 0a 3b 3b 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 ;;.;;.(emms-browser-make-filter.
4ba20 22 74 65 73 74 2d 76 61 6c 73 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "test-vals".;;..................
4ba40 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 .........(emms-browser-make-filt
4ba60 65 72 2d 67 65 6e 72 65 20 22 76 61 6c 73 22 29 29 0a 3b 3b 20 28 65 6d 6d 73 2d 62 72 6f 77 73 er-genre."vals")).;;.(emms-brows
4ba80 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 74 65 73 74 2d 74 61 6e 67 6f 22 0a 3b 3b 20 20 er-make-filter."test-tango".;;..
4baa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 .........................(emms-b
4bac0 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 67 65 6e 72 65 20 22 74 61 6e 67 6f 22 rowser-make-filter-genre."tango"
4bae0 29 29 0a 3b 3b 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 )).;;.(emms-browser-make-filter.
4bb00 22 74 65 73 74 2d 6d 69 6c 6f 6e 67 61 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "test-milonga".;;...............
4bb20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 ............(emms-browser-make-f
4bb40 69 6c 74 65 72 2d 67 65 6e 72 65 20 22 6d 69 6c 6f 6e 67 61 22 29 29 0a 0a 3b 3b 20 65 6d 6d 73 ilter-genre."milonga"))..;;.emms
4bb60 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 0a 3b 3b 20 28 70 72 65 74 74 79 2d -filters-filter-ring.;;.(pretty-
4bb80 63 6f 6e 73 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 74 65 73 74 2d 66 69 6c 74 65 72 2d 74 cons.(emms-filters-test-filter-t
4bba0 72 61 63 6b 73 2d 6e 61 6d 65 20 22 74 65 73 74 2d 76 61 6c 73 22 20 65 6d 6d 73 2d 66 69 6c 74 racks-name."test-vals".emms-filt
4bbc0 65 72 73 2d 74 65 73 74 2d 74 72 61 63 6b 73 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d ers-test-tracks))..(provide.'emm
4bbe0 73 2d 66 69 6c 74 65 72 73 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c 20 65 s-filters).;;;.emms-filters.el.e
4bc00 6e 64 73 20 68 65 72 65 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nds.here........................
4bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4be00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2e 65 6c 00 00 emms-24/emms-playlist-limit.el..
4be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4be60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
4be80 30 30 32 31 33 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 35 30 00 20 30 00 00 00 0021367.00000000000.015150..0...
4bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
4bf20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
4bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c000 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2e 65 6c 20 2d 2d 2d 20 4c ;;;.emms-playlist-limit.el.---.L
4c020 69 6d 69 74 20 70 6c 61 79 6c 69 73 74 20 62 79 20 76 61 72 69 6f 75 73 20 69 6e 66 6f 20 2d 2a imit.playlist.by.various.info.-*
4c040 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 -.lexical-binding:.t.-*-..;;.Cop
4c060 79 72 69 67 68 74 20 28 43 29 20 32 30 31 38 2d 32 30 32 31 20 46 72 65 65 20 53 6f 66 74 77 61 yright.(C).2018-2021.Free.Softwa
4c080 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 re.Foundation,.Inc...;;.Author:.
4c0a0 57 69 6c 6c 69 61 6d 20 58 75 20 3c 77 69 6c 6c 69 61 6d 2e 78 77 6c 40 67 6d 61 69 6c 2e 63 6f William.Xu.<william.xwl@gmail.co
4c0c0 6d 3e 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 46 72 61 6e 20 42 75 72 73 74 61 6c 6c 20 3c 66 72 61 m>.;;.Author:.Fran.Burstall.<fra
4c0e0 6e 2e 62 75 72 73 74 61 6c 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 n.burstall@gmail.com>.;;.Keyword
4c100 73 3a 20 65 6d 6d 73 2c 20 6c 69 6d 69 74 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 s:.emms,.limit..;;.EMMS.is.free.
4c120 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 software;.you.can.redistribute.i
4c140 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 t.and/or.modify.;;.it.under.the.
4c160 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 terms.of.the.GNU.General.Public.
4c180 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 License.as.published.by.;;.the.F
4c1a0 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 ree.Software.Foundation;.either.
4c1c0 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b version.3,.or.(at.your.option).;
4c1e0 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 ;.any.later.version...;;.EMMS.is
4c200 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 .distributed.in.the.hope.that.it
4c220 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 .will.be.useful,.;;.but.WITHOUT.
4c240 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 ANY.WARRANTY;.without.even.the.i
4c260 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 mplied.warranty.of.;;.MERCHANTAB
4c280 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 ILITY.or.FITNESS.FOR.A.PARTICULA
4c2a0 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 R.PURPOSE...See.the.;;.GNU.Gener
4c2c0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 al.Public.License.for.more.detai
4c2e0 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 ls...;;.You.should.have.received
4c300 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 .a.copy.of.the.GNU.General.Publi
4c320 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 c.License.;;.along.with.EMMS;.se
4c340 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 e.the.file.COPYING...If.not,.wri
4c360 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 te.to.the.;;.Free.Software.Found
4c380 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 ation,.Inc.,.51.Franklin.St,.Fif
4c3a0 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 th.Floor,.;;.Boston,.MA.02110-13
4c3c0 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 20 54 01,.USA...;;;.Commentary:..;;..T
4c3e0 68 69 73 20 63 6f 64 65 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 22 6c 69 6d 69 74 22 20 61 his.code.allows.you.to."limit".a
4c400 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 0a .playlist.in.the.current.buffer.
4c420 3b 3b 20 20 62 79 20 63 72 65 61 74 69 6e 67 2c 20 61 6e 64 20 73 77 69 74 63 68 69 6e 67 20 74 ;;..by.creating,.and.switching.t
4c440 6f 2c 20 61 20 64 65 72 69 76 65 64 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 o,.a.derived.playlist.containing
4c460 20 6f 6e 6c 79 0a 3b 3b 20 20 74 68 6f 73 65 20 74 72 61 63 6b 73 20 77 69 74 68 20 61 20 74 79 .only.;;..those.tracks.with.a.ty
4c480 70 65 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 61 6e 64 20 74 68 65 20 6c 69 6b 65 29 20 6d 61 pe.(info-artist.and.the.like).ma
4c4a0 74 63 68 69 6e 67 20 61 0a 3b 3b 20 20 72 65 67 65 78 70 2e 0a 0a 3b 3b 20 20 49 66 20 74 68 65 tching.a.;;..regexp...;;..If.the
4c4c0 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 .current.buffer.is.the.current.p
4c4e0 6c 61 79 6c 69 73 74 20 74 68 65 6e 20 74 68 65 20 64 65 72 69 76 65 64 0a 3b 3b 20 20 70 6c 61 laylist.then.the.derived.;;..pla
4c500 79 6c 69 73 74 20 69 73 20 6d 61 64 65 20 63 75 72 72 65 6e 74 2e 0a 0a 3b 3b 20 20 55 73 61 67 ylist.is.made.current...;;..Usag
4c520 65 3a 0a 3b 3b 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d e:.;;..-------------------------
4c540 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
4c560 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 20 54 68 69 73 20 63 6f 64 65 20 69 73 20 61 63 74 69 ---------..;;..This.code.is.acti
4c580 76 61 74 65 64 20 62 79 20 28 65 6d 6d 73 2d 61 6c 6c 29 2e 20 20 4f 74 68 65 72 77 69 73 65 20 vated.by.(emms-all)...Otherwise.
4c5a0 73 69 6d 70 6c 79 20 64 6f 3a 0a 0a 3b 3b 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 simply.do:..;;..(require.'emms-p
4c5c0 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 29 0a 0a 3b 3b 20 20 4b 65 79 20 62 69 6e 64 69 6e 67 73 laylist-limit)..;;..Key.bindings
4c5e0 0a 3b 3b 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .;;..---------------------------
4c600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
4c620 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 2f 20 2f 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c -------..;;././..emms-playlist-l
4c640 69 6d 69 74 2d 74 6f 2d 61 6c 6c 0a 3b 3b 20 2f 20 41 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 imit-to-all.;;./.A..emms-playlis
4c660 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 3b 3b 20 2f t-limit-to-info-albumartist.;;./
4c680 20 61 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d .a..emms-playlist-limit-to-info-
4c6a0 61 72 74 69 73 74 0a 3b 3b 20 2f 20 62 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d artist.;;./.b..emms-playlist-lim
4c6c0 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 6c 62 75 6d 0a 3b 3b 20 2f 20 63 09 09 65 6d 6d 73 2d 70 6c it-to-info-album.;;./.c..emms-pl
4c6e0 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 3b 3b aylist-limit-to-info-composer.;;
4c700 20 2f 20 64 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 64 65 73 ./.d..emms-playlist-limit-to-des
4c720 63 72 69 70 74 69 6f 6e 0a 3b 3b 20 2f 20 67 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c cription.;;./.g..emms-playlist-l
4c740 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 67 65 6e 72 65 0a 3b 3b 20 2f 20 6e 09 09 65 6d 6d 73 2d imit-to-info-genre.;;./.n..emms-
4c760 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 6e 61 6d 65 0a 3b 3b 20 2f 20 70 09 09 65 playlist-limit-to-name.;;./.p..e
4c780 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 70 65 72 66 6f mms-playlist-limit-to-info-perfo
4c7a0 72 6d 65 72 0a 3b 3b 20 2f 20 74 09 09 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 rmer.;;./.t..emms-playlist-limit
4c7c0 2d 74 6f 2d 69 6e 66 6f 2d 74 69 74 6c 65 0a 3b 3b 20 2f 20 79 09 09 65 6d 6d 73 2d 70 6c 61 79 -to-info-title.;;./.y..emms-play
4c7e0 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 79 65 61 72 0a 0a 3b 3b 3b 20 43 6f 64 list-limit-to-info-year..;;;.Cod
4c800 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 73 65 71 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d e:..(require.'seq).(require.'emm
4c820 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 0a 3b 3b 20 55 73 65 72 20 49 6e 74 65 72 66 s-playlist-mode)..;;.User.Interf
4c840 61 63 65 73 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 aces..(defgroup.emms-playlist-li
4c860 6d 69 74 20 6e 69 6c 0a 20 20 22 50 6c 61 79 6c 69 73 74 20 6c 69 6d 69 74 20 6d 6f 64 75 6c 65 mit.nil..."Playlist.limit.module
4c880 20 66 6f 72 20 45 4d 4d 53 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 .for.EMMS."...:group.'emms)..(de
4c8a0 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 68 6f 6f 6b fcustom.emms-playlist-limit-hook
4c8c0 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 74 6f 20 72 75 6e 20 61 66 74 65 72 20 65 61 63 68 20 .nil..."Hooks.to.run.after.each.
4c8e0 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 79 6d 62 6f limit.operation."...:type.'symbo
4c900 6c 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 l)..(defmacro.define-emms-playli
4c920 73 74 2d 6c 69 6d 69 74 20 28 61 74 74 72 69 62 75 74 65 29 0a 20 20 22 4d 61 63 72 6f 20 66 6f st-limit.(attribute)..."Macro.fo
4c940 72 20 64 65 66 69 6e 69 6e 67 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 6c 69 6d 69 74 20 74 r.defining.emms.playlist.limit.t
4c960 6f 20 41 54 54 52 49 42 55 54 45 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 60 28 64 65 66 75 6e o.ATTRIBUTE.function."...`(defun
4c980 20 2c 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 .,(intern.(format."emms-playlist
4c9a0 2d 6c 69 6d 69 74 2d 74 6f 2d 25 73 22 20 61 74 74 72 69 62 75 74 65 29 29 20 28 72 65 67 65 78 -limit-to-%s".attribute)).(regex
4c9c0 70 29 0a 20 20 20 20 20 2c 28 66 6f 72 6d 61 74 20 22 53 77 69 74 63 68 20 74 6f 20 61 20 70 6c p)......,(format."Switch.to.a.pl
4c9e0 61 79 6c 69 73 74 20 63 6f 6d 70 72 69 73 69 6e 67 20 74 72 61 63 6b 73 20 77 69 74 68 20 25 73 aylist.comprising.tracks.with.%s
4ca00 20 6d 61 74 63 68 69 6e 67 20 52 45 47 45 58 50 2e 0a 0a 52 45 47 45 58 50 20 64 65 66 61 75 6c .matching.REGEXP...REGEXP.defaul
4ca20 74 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 25 73 20 66 6f 72 20 74 68 65 20 74 72 ts.to.the.value.of.%s.for.the.tr
4ca40 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 57 68 65 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 ack.at.point...When.the.current.
4ca60 62 75 66 66 65 72 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2c 20 buffer.is.the.current.playlist,.
4ca80 6d 61 6b 65 20 74 68 65 20 64 65 72 69 76 65 64 20 70 6c 61 79 6c 69 73 74 0a 74 68 65 20 63 75 make.the.derived.playlist.the.cu
4caa0 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 22 20 61 74 74 72 69 62 75 74 65 20 61 74 74 72 69 rrent.playlist.".attribute.attri
4cac0 62 75 74 65 29 0a 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 20 20 28 6c bute)......(interactive.......(l
4cae0 69 73 74 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 0a 09 20 20 20 20 20 20 20 ist........(let*.((curr.........
4cb00 28 6f 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 72 61 63 6b 2d 67 (or.(emms-playlist-limit-track-g
4cb20 65 74 0a 09 09 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 et.......(or.(emms-playlist-trac
4cb40 6b 2d 61 74 29 0a 09 09 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 k-at)....(emms-playlist-track-at
4cb60 20 28 6d 61 78 20 31 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 29 20 3b 20 61 74 20 65 6f 6c .(max.1.(1-.(point))))).;.at.eol
4cb80 0a 09 09 20 20 20 20 28 71 75 6f 74 65 20 2c 61 74 74 72 69 62 75 74 65 29 29 0a 09 09 20 20 20 .......(quote.,attribute))......
4cba0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 72 61 63 6b 2d 67 65 74 0a 09 (emms-playlist-limit-track-get..
4cbc0 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 .....(emms-playlist-selected-tra
4cbe0 63 6b 29 20 28 71 75 6f 74 65 20 2c 61 74 74 72 69 62 75 74 65 29 29 29 29 0a 09 20 20 20 20 20 ck).(quote.,attribute)))).......
4cc00 20 28 61 74 74 72 2d 6e 61 6d 65 20 2c 28 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 .(attr-name.,(emms-replace-regex
4cc20 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 09 09 09 20 20 20 22 69 6e 66 6f 2d 22 20 22 22 20 28 73 79 p-in-string......."info-"."".(sy
4cc40 6d 62 6f 6c 2d 6e 61 6d 65 20 61 74 74 72 69 62 75 74 65 29 29 29 0a 09 20 20 20 20 20 20 28 66 mbol-name.attribute)))........(f
4cc60 6d 74 20 28 69 66 20 63 75 72 72 0a 09 09 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4c 69 mt.(if.curr..........(format."Li
4cc80 6d 69 74 20 74 6f 20 25 73 20 28 72 65 67 65 78 70 20 3d 20 25 73 29 3a 20 22 20 61 74 74 72 2d mit.to.%s.(regexp.=.%s):.".attr-
4cca0 6e 61 6d 65 20 63 75 72 72 29 0a 09 09 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4c 69 6d 69 74 name.curr)........(format."Limit
4ccc0 20 74 6f 20 25 73 20 28 72 65 67 65 78 70 29 3a 20 22 20 61 74 74 72 2d 6e 61 6d 65 29 29 29 29 .to.%s.(regexp):.".attr-name))))
4cce0 0a 09 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 66 6d 74 29 29 29 29 0a 20 20 20 20 20 28 77 68 ...(read-string.fmt))))......(wh
4cd00 65 6e 20 28 73 74 72 69 6e 67 3d 20 72 65 67 65 78 70 20 22 22 29 0a 20 20 20 20 20 20 20 28 73 en.(string=.regexp."")........(s
4cd20 65 74 71 20 72 65 67 65 78 70 20 28 6f 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 etq.regexp.(or.(emms-playlist-li
4cd40 6d 69 74 2d 74 72 61 63 6b 2d 67 65 74 0a 09 09 09 20 28 6f 72 20 28 65 6d 6d 73 2d 70 6c 61 79 mit-track-get.....(or.(emms-play
4cd60 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 0a 09 09 09 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 list-track-at).........(emms-pla
4cd80 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 6d 61 78 20 31 20 28 31 2d 20 28 70 6f 69 6e 74 ylist-track-at.(max.1.(1-.(point
4cda0 29 29 29 29 29 20 3b 20 61 74 20 65 6f 6c 0a 09 09 09 20 28 71 75 6f 74 65 20 2c 61 74 74 72 69 ))))).;.at.eol.....(quote.,attri
4cdc0 62 75 74 65 29 29 0a 09 09 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 bute))....(emms-playlist-limit-t
4cde0 72 61 63 6b 2d 67 65 74 0a 09 09 09 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 rack-get.....(emms-playlist-sele
4ce00 63 74 65 64 2d 74 72 61 63 6b 29 20 28 71 75 6f 74 65 20 2c 61 74 74 72 69 62 75 74 65 29 29 29 cted-track).(quote.,attribute)))
4ce20 29 29 0a 20 20 20 20 20 28 69 66 20 72 65 67 65 78 70 0a 09 20 28 65 6d 6d 73 2d 70 6c 61 79 6c ))......(if.regexp...(emms-playl
4ce40 69 73 74 2d 6c 69 6d 69 74 2d 64 6f 20 28 71 75 6f 74 65 20 2c 61 74 74 72 69 62 75 74 65 29 20 ist-limit-do.(quote.,attribute).
4ce60 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 69 6d 69 74 20 63 regexp)........(message."Limit.c
4ce80 61 6e 63 65 6c 6c 65 64 3a 20 6e 6f 20 72 65 67 65 78 70 2e 22 29 29 29 29 0a 0a 28 64 65 66 69 ancelled:.no.regexp."))))..(defi
4cea0 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6e 66 6f 2d 61 6c 62 75 ne-emms-playlist-limit.info-albu
4cec0 6d 61 72 74 69 73 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c martist).(define-emms-playlist-l
4cee0 69 6d 69 74 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 imit.info-artist).(define-emms-p
4cf00 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 0a 28 64 65 laylist-limit.info-composer).(de
4cf20 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6e 66 6f 2d 70 65 fine-emms-playlist-limit.info-pe
4cf40 72 66 6f 72 6d 65 72 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c rformer).(define-emms-playlist-l
4cf60 69 6d 69 74 20 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c imit.info-title).(define-emms-pl
4cf80 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 28 64 65 66 69 6e 65 aylist-limit.info-album).(define
4cfa0 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6e 66 6f 2d 79 65 61 72 29 0a -emms-playlist-limit.info-year).
4cfc0 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6e 66 6f (define-emms-playlist-limit.info
4cfe0 2d 67 65 6e 72 65 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 -genre).(define-emms-playlist-li
4d000 6d 69 74 20 69 6e 66 6f 2d 6e 6f 74 65 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 mit.info-note).(define-emms-play
4d020 6c 69 73 74 2d 6c 69 6d 69 74 20 6e 61 6d 65 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c list-limit.name).(define-emms-pl
4d040 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 0a 28 64 65 66 76 aylist-limit.description)..(defv
4d060 61 72 2d 6c 6f 63 61 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 2d 6f 72 ar-local.emms-playlist-limit--or
4d080 69 67 69 6e 61 6c 2d 70 6c 61 79 6c 69 73 74 20 6e 69 6c 0a 20 20 22 50 6c 61 79 6c 69 73 74 20 iginal-playlist.nil..."Playlist.
4d0a0 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 77 65 20 64 65 72 69 76 65 20 74 68 65 20 buffer.from.which.we.derive.the.
4d0c0 6c 69 6d 69 74 65 64 20 70 6c 61 79 6c 69 73 74 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 limited.playlist.")..(defun.emms
4d0e0 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 61 6c 6c 20 28 29 0a 20 20 22 53 77 69 -playlist-limit-to-all.()..."Swi
4d100 74 63 68 20 74 6f 20 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 69 73 20 tch.to.playlist.from.which.this.
4d120 70 6c 61 79 6c 69 73 74 20 77 61 73 20 64 65 72 69 76 65 64 20 28 69 66 20 69 74 20 73 74 69 6c playlist.was.derived.(if.it.stil
4d140 6c 20 65 78 69 73 74 73 29 0a 61 6e 64 20 62 75 72 79 20 74 68 69 73 20 70 6c 61 79 6c 69 73 74 l.exists).and.bury.this.playlist
4d160 2e 0a 0a 49 66 20 74 68 69 73 20 70 6c 61 79 6c 69 73 74 20 69 73 20 63 75 72 72 65 6e 74 2c 20 ...If.this.playlist.is.current,.
4d180 6d 61 6b 65 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 77 65 20 73 77 69 74 63 68 20 74 6f 20 63 make.the.playlist.we.switch.to.c
4d1a0 75 72 72 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e urrent."...(interactive)...(when
4d1c0 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 2d 6f 72 69 67 69 .(and.emms-playlist-limit--origi
4d1e0 6e 61 6c 2d 70 6c 61 79 6c 69 73 74 0a 09 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d nal-playlist.......(buffer-live-
4d200 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 2d 6f 72 69 67 69 6e 61 6c 2d p.emms-playlist-limit--original-
4d220 70 6c 61 79 6c 69 73 74 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 6f 6c 64 2d 62 75 66 20 28 playlist)).....(let*.((old-buf.(
4d240 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 09 20 20 20 28 6f 6c 64 2d 62 75 66 2d 69 73 current-buffer)).....(old-buf-is
4d260 2d 63 75 72 72 65 6e 74 2d 70 6c 61 79 6c 69 73 74 20 28 65 71 20 6f 6c 64 2d 62 75 66 20 65 6d -current-playlist.(eq.old-buf.em
4d280 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 73 77 69 ms-playlist-buffer))).......(swi
4d2a0 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 tch-to-buffer.emms-playlist-limi
4d2c0 74 2d 2d 6f 72 69 67 69 6e 61 6c 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 20 20 28 77 68 65 t--original-playlist).......(whe
4d2e0 6e 20 6f 6c 64 2d 62 75 66 2d 69 73 2d 63 75 72 72 65 6e 74 2d 70 6c 61 79 6c 69 73 74 0a 09 28 n.old-buf-is-current-playlist..(
4d300 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 emms-playlist-set-playlist-buffe
4d320 72 29 29 0a 20 20 20 20 20 20 28 62 75 72 79 2d 62 75 66 66 65 72 20 6f 6c 64 2d 62 75 66 29 29 r)).......(bury-buffer.old-buf))
4d340 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f ))..(define-key.emms-playlist-mo
4d360 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 6e 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 de-map.(kbd."/.n").#'emms-playli
4d380 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 6e 61 6d 65 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d st-limit-to-name).(define-key.em
4d3a0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 41 22 29 ms-playlist-mode-map.(kbd."/.A")
4d3c0 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 .#'emms-playlist-limit-to-info-a
4d3e0 6c 62 75 6d 61 72 74 69 73 74 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 lbumartist).(define-key.emms-pla
4d400 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 61 22 29 20 23 27 65 6d 6d ylist-mode-map.(kbd."/.a").#'emm
4d420 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 72 74 69 73 74 29 s-playlist-limit-to-info-artist)
4d440 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d .(define-key.emms-playlist-mode-
4d460 6d 61 70 20 28 6b 62 64 20 22 2f 20 63 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d map.(kbd."/.c").#'emms-playlist-
4d480 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 0a 28 64 65 66 69 6e 65 2d limit-to-info-composer).(define-
4d4a0 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 key.emms-playlist-mode-map.(kbd.
4d4c0 22 2f 20 70 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d "/.p").#'emms-playlist-limit-to-
4d4e0 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 info-performer).(define-key.emms
4d500 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 74 22 29 20 23 -playlist-mode-map.(kbd."/.t").#
4d520 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 74 69 74 'emms-playlist-limit-to-info-tit
4d540 6c 65 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f le).(define-key.emms-playlist-mo
4d560 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 62 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 de-map.(kbd."/.b").#'emms-playli
4d580 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 28 64 65 66 69 6e 65 2d st-limit-to-info-album).(define-
4d5a0 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 key.emms-playlist-mode-map.(kbd.
4d5c0 22 2f 20 79 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d "/.y").#'emms-playlist-limit-to-
4d5e0 69 6e 66 6f 2d 79 65 61 72 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 info-year).(define-key.emms-play
4d600 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 67 22 29 20 23 27 65 6d 6d 73 list-mode-map.(kbd."/.g").#'emms
4d620 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 28 -playlist-limit-to-info-genre).(
4d640 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 define-key.emms-playlist-mode-ma
4d660 70 20 28 6b 62 64 20 22 2f 20 4e 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 p.(kbd."/.N").#'emms-playlist-li
4d680 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 6e 6f 74 65 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d mit-to-info-note).(define-key.em
4d6a0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 64 22 29 ms-playlist-mode-map.(kbd."/.d")
4d6c0 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 64 65 73 63 72 69 .#'emms-playlist-limit-to-descri
4d6e0 70 74 69 6f 6e 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ption).(define-key.emms-playlist
4d700 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2f 20 2f 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 -mode-map.(kbd."/./").#'emms-pla
4d720 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 61 6c 6c 29 0a 0a 0c 0a 3b 3b 3b 20 4c 6f 77 20 4c ylist-limit-to-all)....;;;.Low.L
4d740 65 76 65 6c 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 evel.Functions..(defun.emms-play
4d760 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 72 61 63 6b 2d 67 65 74 20 28 74 72 61 63 6b 20 74 79 70 65 list-limit-track-get.(track.type
4d780 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 54 59 50 45 20 66 72 )..."Return.the.value.of.TYPE.fr
4d7a0 6f 6d 20 54 52 41 43 4b 2e 0a 0a 48 65 72 65 20 54 59 50 45 20 69 73 20 61 20 66 69 65 6c 64 20 om.TRACK...Here.TYPE.is.a.field.
4d7c0 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 5c 5c 3d 27 available.to.`emms-track-get\\='
4d7e0 20 6f 72 0a 5c 5c 3d 27 64 65 73 63 72 69 70 74 69 6f 6e 20 77 68 69 63 68 20 67 69 76 65 73 20 .or.\\='description.which.gives.
4d800 74 68 65 20 72 65 73 75 6c 74 20 6f 66 0a 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 the.result.of.`emms-track-descri
4d820 70 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 5c 5c 3d 27 2e 0a 0a 57 68 65 6e 20 74 79 70 65 20 69 ption-function\\='...When.type.i
4d840 73 20 5c 5c 3d 27 69 6e 66 6f 2d 79 65 61 72 2c 20 61 6c 73 6f 20 74 72 69 65 73 20 5c 5c 3d 27 s.\\='info-year,.also.tries.\\='
4d860 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 79 65 61 72 2c 0a 20 5c 5c 3d 27 69 6e 66 6f 2d 6f 72 69 info-originalyear,..\\='info-ori
4d880 67 69 6e 61 6c 64 61 74 65 20 61 6e 64 20 5c 5c 3d 27 69 6e 66 6f 2d 64 61 74 65 20 74 6f 20 67 ginaldate.and.\\='info-date.to.g
4d8a0 65 74 20 61 20 75 73 61 62 6c 65 20 64 61 74 65 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 20 et.a.usable.date."...(cond.((eq.
4d8c0 74 79 70 65 20 27 69 6e 66 6f 2d 79 65 61 72 29 0a 09 20 28 6c 65 74 20 28 28 64 61 74 65 20 28 type.'info-year)...(let.((date.(
4d8e0 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6f or.(emms-track-get.track.'info-o
4d900 72 69 67 69 6e 61 6c 64 61 74 65 29 0a 09 09 09 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 riginaldate).....(emms-track-get
4d920 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 79 65 61 72 29 0a 09 09 09 20 28 .track.'info-originalyear).....(
4d940 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 64 61 74 65 29 emms-track-get.track.'info-date)
4d960 0a 09 09 09 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f .....(emms-track-get.track.'info
4d980 2d 79 65 61 72 29 29 29 29 0a 09 20 20 20 28 6f 72 20 20 28 65 6d 6d 73 2d 66 6f 72 6d 61 74 2d -year)))).....(or..(emms-format-
4d9a0 64 61 74 65 2d 74 6f 2d 79 65 61 72 20 64 61 74 65 29 0a 09 09 22 3c 75 6e 6b 6e 6f 77 6e 20 79 date-to-year.date)..."<unknown.y
4d9c0 65 61 72 3e 22 29 29 29 0a 09 28 28 65 71 20 74 79 70 65 20 27 64 65 73 63 72 69 70 74 69 6f 6e ear>")))..((eq.type.'description
4d9e0 29 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f ).(funcall.emms-track-descriptio
4da00 6e 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 0a 09 28 74 20 28 65 6d 6d 73 2d 74 72 61 n-function.track))..(t.(emms-tra
4da20 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 74 79 70 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ck-get.track.type))))..(defun.em
4da40 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 2d 64 65 72 69 76 65 2d 70 6c 61 79 6c 69 ms-playlist-limit--derive-playli
4da60 73 74 20 28 70 6c 61 79 6c 69 73 74 20 70 72 65 64 20 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 st.(playlist.pred.name)..."Retur
4da80 6e 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 4e 41 4d 45 20 6f 66 20 74 72 61 63 6b 73 20 n.a.new.playlist.NAME.of.tracks.
4daa0 69 6e 20 50 4c 41 59 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 28 50 52 45 44 20 74 72 61 63 in.PLAYLIST.for.which.(PRED.trac
4dac0 6b 29 0a 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 73 k).is.non-nil."...(let*.((tracks
4dae0 20 28 6e 72 65 76 65 72 73 65 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 .(nreverse.(with-current-buffer.
4db00 70 6c 61 79 6c 69 73 74 0a 09 09 09 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e playlist.........(save-excursion
4db20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e .(emms-playlist-tracks-in-region
4db40 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 09 20 .(point-min).(point-max))))))...
4db60 28 66 69 6c 74 65 72 65 64 2d 74 72 61 63 6b 73 20 28 73 65 71 2d 66 69 6c 74 65 72 20 70 72 65 (filtered-tracks.(seq-filter.pre
4db80 64 20 74 72 61 63 6b 73 29 29 0a 09 20 28 6e 65 77 2d 70 6c 61 79 6c 69 73 74 20 28 6f 72 20 28 d.tracks))...(new-playlist.(or.(
4dba0 67 65 74 2d 62 75 66 66 65 72 20 6e 61 6d 65 29 0a 09 09 09 20 20 20 28 65 6d 6d 73 2d 70 6c 61 get-buffer.name).......(emms-pla
4dbc0 79 6c 69 73 74 2d 6e 65 77 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 ylist-new.name)))).....(with-cur
4dbe0 72 65 6e 74 2d 62 75 66 66 65 72 20 6e 65 77 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 rent-buffer.new-playlist.......(
4dc00 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 20 28 65 emms-with-inhibit-read-only-t.(e
4dc20 72 61 73 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 65 6d 6d 73 rase-buffer)).......(mapc.#'emms
4dc40 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 66 69 6c 74 65 72 65 64 2d -playlist-insert-track.filtered-
4dc60 74 72 61 63 6b 73 29 29 0a 20 20 20 20 6e 65 77 2d 70 6c 61 79 6c 69 73 74 29 29 0a 0a 28 64 65 tracks)).....new-playlist))..(de
4dc80 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 2d 6c 69 6d 69 74 2d 70 fun.emms-playlist-limit--limit-p
4dca0 6c 61 79 6c 69 73 74 20 28 70 6c 61 79 6c 69 73 74 20 74 79 70 65 20 72 65 67 65 78 70 29 0a 20 laylist.(playlist.type.regexp)..
4dcc0 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 74 72 61 63 6b ."Return.a.new.playlist.of.track
4dce0 73 20 69 6e 20 50 4c 41 59 4c 49 53 54 20 77 69 74 68 20 54 59 50 45 20 6d 61 74 63 68 69 6e 67 s.in.PLAYLIST.with.TYPE.matching
4dd00 20 52 45 47 45 58 50 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 66 6e 61 6d 65 20 28 66 6f 72 .REGEXP."...(let*.((bufname.(for
4dd20 6d 61 74 20 22 25 73 2f 25 73 3d 25 73 22 0a 09 09 09 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 mat."%s/%s=%s"......(buffer-name
4dd40 20 70 6c 61 79 6c 69 73 74 29 0a 09 09 09 20 20 28 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 65 .playlist)......(emms-replace-re
4dd60 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 69 6e 66 6f 2d 22 20 22 22 0a 09 09 09 20 20 20 gexp-in-string."info-"."".......
4dd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ..............................(s
4dda0 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 79 70 65 29 29 0a 09 09 09 20 20 72 65 67 65 78 70 29 29 29 ymbol-name.type))......regexp)))
4ddc0 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 2d 64 65 72 69 76 .....(emms-playlist-limit--deriv
4dde0 65 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 28 6c e-playlist......playlist......(l
4de00 61 6d 62 64 61 20 28 74 72 61 63 6b 29 20 28 6c 65 74 20 28 28 66 69 65 6c 64 20 28 65 6d 6d 73 ambda.(track).(let.((field.(emms
4de20 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 -playlist-limit-track-get.track.
4de40 74 79 70 65 29 29 29 0a 09 09 20 20 20 20 20 20 20 28 61 6e 64 20 66 69 65 6c 64 20 28 73 74 72 type)))..........(and.field.(str
4de60 69 6e 67 2d 6d 61 74 63 68 20 72 65 67 65 78 70 20 66 69 65 6c 64 29 29 29 29 0a 20 20 20 20 20 ing-match.regexp.field))))......
4de80 62 75 66 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 bufname)))..(defun.emms-playlist
4dea0 2d 6c 69 6d 69 74 2d 64 6f 20 28 74 79 70 65 20 72 65 67 65 78 70 29 0a 20 20 22 53 77 69 74 63 -limit-do.(type.regexp)..."Switc
4dec0 68 20 74 6f 20 61 20 64 65 72 69 76 65 64 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 h.to.a.derived.playlist.containi
4dee0 6e 67 20 74 68 65 20 74 72 61 63 6b 73 20 77 69 74 68 20 54 59 50 45 20 6d 61 74 63 68 69 6e 67 ng.the.tracks.with.TYPE.matching
4df00 20 52 45 47 45 58 50 2e 0a 65 2e 67 2e 2c 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .REGEXP..e.g.,.....(emms-playlis
4df20 74 2d 6c 69 6d 69 74 2d 64 6f 20 5c 5c 3d 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 5c 22 4a 61 6e t-limit-do.\\='info-artist.\"Jan
4df40 65 20 5a 68 61 6e 67 5c 22 29 0a 0a 53 65 65 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 66 69 e.Zhang\")..See.`emms-info-mp3fi
4df60 6e 64 2d 61 72 67 75 6d 65 6e 74 73 5c 5c 3d 27 20 66 6f 72 20 70 6f 73 73 69 62 6c 65 20 6f 70 nd-arguments\\='.for.possible.op
4df80 74 69 6f 6e 73 20 66 6f 72 20 54 59 50 45 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 tions.for.TYPE."...(emms-playlis
4dfa0 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 t-ensure-playlist-buffer)...(let
4dfc0 2a 20 28 28 63 75 72 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 *.((curr.(emms-playlist-selected
4dfe0 2d 74 72 61 63 6b 29 29 0a 09 20 28 6f 6c 64 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 -track))...(old-buf.(current-buf
4e000 66 65 72 29 29 0a 09 20 28 6f 6c 64 2d 62 75 66 2d 69 73 2d 63 75 72 72 65 6e 74 2d 70 6c 61 79 fer))...(old-buf-is-current-play
4e020 6c 69 73 74 20 28 65 71 20 6f 6c 64 2d 62 75 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 list.(eq.old-buf.emms-playlist-b
4e040 75 66 66 65 72 29 29 0a 09 20 28 62 75 66 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 uffer))...(buf.(emms-playlist-li
4e060 6d 69 74 2d 2d 6c 69 6d 69 74 2d 70 6c 61 79 6c 69 73 74 20 6f 6c 64 2d 62 75 66 20 74 79 70 65 mit--limit-playlist.old-buf.type
4e080 20 72 65 67 65 78 70 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 .regexp))).....(with-current-buf
4e0a0 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 fer.buf.......(if.(=.(point-min)
4e0c0 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 09 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 28 6d 65 .(point-max))....(progn......(me
4e0e0 73 73 61 67 65 20 22 4e 6f 20 6d 61 74 63 68 69 6e 67 20 74 72 61 63 6b 73 20 66 6f 75 6e 64 21 ssage."No.matching.tracks.found!
4e100 22 29 0a 09 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 0a 09 28 6c 65 74 20 28 28 70 ")......(kill-buffer))..(let.((p
4e120 6f 73 20 28 77 68 65 6e 20 63 75 72 72 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 6e 79 os.(when.curr.(text-property-any
4e140 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 09 09 09 09 09 09 20 .(point-min).(point-max)........
4e160 27 65 6d 6d 73 2d 74 72 61 63 6b 20 63 75 72 72 29 29 29 29 0a 09 20 20 28 69 66 20 70 6f 73 0a 'emms-track.curr))))....(if.pos.
4e180 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 70 6f 73 .......(emms-playlist-select.pos
4e1a0 29 0a 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 66 69 72 )......(emms-playlist-select-fir
4e1c0 73 74 29 29 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 st)))..(emms-playlist-mode-cente
4e1e0 72 2d 63 75 72 72 65 6e 74 29 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d r-current)..(setq.emms-playlist-
4e200 6c 69 6d 69 74 2d 2d 6f 72 69 67 69 6e 61 6c 2d 70 6c 61 79 6c 69 73 74 20 6f 6c 64 2d 62 75 66 limit--original-playlist.old-buf
4e220 29 0a 09 28 77 68 65 6e 20 6f 6c 64 2d 62 75 66 2d 69 73 2d 63 75 72 72 65 6e 74 2d 70 6c 61 79 )..(when.old-buf-is-current-play
4e240 6c 69 73 74 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c list....(emms-playlist-set-playl
4e260 69 73 74 2d 62 75 66 66 65 72 29 29 0a 09 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 ist-buffer))..(run-hooks.'emms-p
4e280 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 68 6f 6f 6b 29 0a 09 28 73 77 69 74 63 68 2d 74 6f 2d laylist-limit-hook)..(switch-to-
4e2a0 62 75 66 66 65 72 20 62 75 66 29 29 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 buffer.buf)))))...(provide.'emms
4e2c0 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 6c -playlist-limit)..;;;.emms-playl
4e2e0 69 73 74 2d 6c 69 6d 69 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 ist-limit.el.ends.here..........
4e300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2e 65 6c 00 00 00 00 00 emms-24/emms-info-libtag.el.....
4e420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
4e480 30 30 30 37 33 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 35 37 00 20 30 00 00 00 0007302.00000000000.014357..0...
4e4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
4e520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
4e540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e600 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2e 65 6c 20 2d 2d 2d 20 49 6e 66 6f ;;;.emms-info-libtag.el.---.Info
4e620 2d 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d 4d 53 20 75 73 69 6e 67 20 6c 69 62 74 61 67 20 20 2d -method.for.EMMS.using.libtag..-
4e640 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 *-.lexical-binding:.t;.-*-..;;.C
4e660 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 opyright.(C).2003-2021..Free.Sof
4e680 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f tware.Foundation,.Inc...;;.Autho
4e6a0 72 73 3a 20 55 6c 72 69 6b 20 4a 65 6e 73 65 6e 20 3c 74 65 72 72 79 70 40 64 61 69 6d 69 2e 61 rs:.Ulrik.Jensen.<terryp@daimi.a
4e6c0 75 2e 64 6b 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 u.dk>.;;..........Jorgen.Sch..fe
4e6e0 72 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 r.<forcer@forcix.cx>.;;.Keywords
4e700 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e :..;;.This.file.is.part.of.EMMS.
4e720 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 ..;;.EMMS.is.free.software;.you.
4e740 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 can.redistribute.it.and/or.modif
4e760 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 y.;;.it.under.the.terms.of.the.G
4e780 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 NU.General.Public.License.as.pub
4e7a0 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 lished.by.;;.the.Free.Software.F
4e7c0 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 oundation;.either.version.3,.or.
4e7e0 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 (at.your.option).;;.any.later.ve
4e800 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 rsion...;;.EMMS.is.distributed.i
4e820 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 n.the.hope.that.it.will.be.usefu
4e840 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 l,.;;.but.WITHOUT.ANY.WARRANTY;.
4e860 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 without.even.the.implied.warrant
4e880 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 y.of.;;.MERCHANTABILITY.or.FITNE
4e8a0 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
4e8c0 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 e.the.;;.GNU.General.Public.Lice
4e8e0 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 nse.for.more.details...;;.You.sh
4e900 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 ould.have.received.a.copy.of.the
4e920 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 .GNU.General.Public.License.;;.a
4e940 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 long.with.EMMS;.see.the.file.COP
4e960 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 YING..If.not,.write.to.the.;;.Fr
4e980 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 ee.Software.Foundation,.Inc.,.51
4e9a0 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b .Franklin.Street,.Fifth.Floor,.;
4e9c0 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b ;.Boston,.MA.02110-1301,.USA...;
4e9e0 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 68 61 73 ;;.Commentary:..;;.This.code.has
4ea00 20 62 65 65 6e 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 63 6f 64 65 20 66 6f 75 6e 64 20 69 6e .been.adapted.from.code.found.in
4ea20 20 6d 70 33 70 6c 61 79 65 72 2e 65 6c 2c 20 77 72 69 74 74 65 6e 0a 3b 3b 20 62 79 20 4a 65 61 .mp3player.el,.written.;;.by.Jea
4ea40 6e 2d 50 68 69 6c 69 70 70 65 20 54 68 65 62 65 72 67 65 20 28 6a 70 68 69 6c 74 68 65 62 65 72 n-Philippe.Theberge.(jphiltheber
4ea60 67 65 40 76 69 64 65 6f 74 72 6f 6e 2e 63 61 29 2c 20 4d 61 72 69 6f 0a 3b 3b 20 44 6f 6d 67 6f ge@videotron.ca),.Mario.;;.Domgo
4ea80 65 72 67 65 6e 20 28 6b 61 6e 61 6c 64 72 61 63 68 65 40 67 6d 78 2e 64 65 29 20 61 6e 64 20 4a ergen.(kanaldrache@gmx.de).and.J
4eaa0 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 0a 3b 3b 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 orgen.Sch..fer.;;.<forcer@forcix
4eac0 2e 63 78 3e 0a 0a 3b 3b 20 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 6d 65 74 68 6f 64 .cx>..;;.To.activate.this.method
4eae0 20 66 6f 72 20 67 65 74 74 69 6e 67 20 69 6e 66 6f 2c 20 75 73 65 20 73 6f 6d 65 74 68 69 6e 67 .for.getting.info,.use.something
4eb00 20 6c 69 6b 65 3a 0a 0a 3b 3b 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c .like:..;;.(require.'emms-info-l
4eb20 69 62 74 61 67 29 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 ibtag).;;.(add-hook.'emms-info-f
4eb40 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 29 0a 0a 3b 3b 20 unctions.'emms-info-libtag)..;;.
4eb60 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 20 73 68 6f 75 6c 64 20 72 65 6d 6f 76 65 20 65 6d 6d 73 Note.that.you.should.remove.emms
4eb80 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 20 61 6e 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 -info-mp3info.and.emms-info-oggi
4eba0 6e 66 6f 0a 3b 3b 20 66 72 6f 6d 20 74 68 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 nfo.;;.from.the.emms-info-functi
4ebc0 6f 6e 73 20 6c 69 73 74 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 61 76 6f 69 64 0a 3b 3b ons.list.if.you.want.to.avoid.;;
4ebe0 20 63 6f 6e 66 6c 69 63 74 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 6f 20 73 65 74 20 .conflicts..For.example,.to.set.
4ec00 6c 69 62 74 61 67 20 61 73 20 79 6f 75 72 20 65 78 63 6c 75 73 69 76 65 20 69 6e 66 6f 0a 3b 3b libtag.as.your.exclusive.info.;;
4ec20 20 70 72 6f 76 69 64 65 72 3a 0a 0a 3b 3b 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 .provider:..;;.(setq.emms-info-f
4ec40 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 29 29 0a 0a 3b unctions.'(emms-info-libtag))..;
4ec60 3b 20 59 6f 75 20 6d 61 79 20 68 61 76 65 20 74 6f 20 63 6f 6d 70 69 6c 65 20 74 68 65 20 70 72 ;.You.may.have.to.compile.the.pr
4ec80 6f 67 72 61 6d 20 66 72 6f 6d 20 73 6f 75 72 63 65 2e 0a 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20 ogram.from.source..;;.Make.sure.
4eca0 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 6c 69 62 74 61 67 20 69 6e 73 74 61 6c 6c 65 64 2e 0a that.you.have.libtag.installed..
4ecc0 3b 3b 20 49 6e 20 74 68 65 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 ;;.In.the.EMMS.source.directory.
4ece0 64 6f 0a 3b 3b 0a 3b 3b 20 20 20 20 6d 61 6b 65 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 do.;;.;;....make.emms-print-meta
4ed00 64 61 74 61 0a 3b 3b 0a 3b 3b 20 61 6e 64 20 63 6f 70 79 20 73 72 63 2f 65 6d 6d 73 2d 70 72 69 data.;;.;;.and.copy.src/emms-pri
4ed20 6e 74 2d 6d 65 74 61 64 61 74 61 20 74 6f 20 79 6f 75 72 20 50 41 54 48 2e 0a 0a 3b 3b 20 49 66 nt-metadata.to.your.PATH...;;.If
4ed40 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 66 61 69 6c 73 20 61 6e 64 20 6c 69 62 74 61 67 20 69 73 .compilation.fails.and.libtag.is
4ed60 20 69 6e 73 74 61 6c 6c 65 64 2c 20 79 6f 75 20 6d 61 79 20 68 61 76 65 20 74 6f 0a 3b 3b 20 63 .installed,.you.may.have.to.;;.c
4ed80 68 61 6e 67 65 20 74 68 65 20 6c 69 6e 65 0a 3b 3b 0a 3b 3b 20 20 20 20 23 69 6e 63 6c 75 64 65 hange.the.line.;;.;;....#include
4eda0 20 3c 74 61 67 5f 63 2e 68 3e 0a 3b 3b 0a 3b 3b 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 69 .<tag_c.h>.;;.;;.to.the.correcti
4edc0 6f 6e 20 6c 6f 63 61 74 69 6f 6e 2c 20 65 2e 67 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 23 69 6e 63 6c on.location,.e.g..;;.;;....#incl
4ede0 75 64 65 20 3c 74 61 67 6c 69 62 2f 74 61 67 5f 63 2e 68 3e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a ude.<taglib/tag_c.h>..;;;.Code:.
4ee00 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 67 72 6f 75 70 .(require.'emms-info)..(defgroup
4ee20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 .emms-info-libtag.nil..."Options
4ee40 20 66 6f 72 20 45 4d 4d 53 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 .for.EMMS."...:group.'emms-info)
4ee60 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2d 63 6f 64 69 6e ..(defvar.emms-info-libtag-codin
4ee80 67 2d 73 79 73 74 65 6d 20 27 75 74 66 2d 38 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d g-system.'utf-8)..(defcustom.emm
4eea0 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 20 22 65 6d 6d 73 s-info-libtag-program-name."emms
4eec0 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 65 6d 6d 73 -print-metadata"..."Name.of.emms
4eee0 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 74 79 70 65 20 27 -info-libtag.program."...:type.'
4ef00 28 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d (string))..(defcustom.emms-info-
4ef20 6c 69 62 74 61 67 2d 6b 6e 6f 77 6e 2d 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 28 72 65 67 65 78 libtag-known-extensions...(regex
4ef40 70 2d 6f 70 74 20 27 28 22 6d 70 33 22 20 22 6d 70 34 22 20 22 6d 34 61 22 20 22 6f 67 67 22 20 p-opt.'("mp3"."mp4"."m4a"."ogg".
4ef60 22 66 6c 61 63 22 20 22 73 70 78 22 20 22 77 6d 61 22 20 22 6f 70 75 73 22 29 29 0a 20 20 22 52 "flac"."spx"."wma"."opus"))..."R
4ef80 65 67 65 78 70 20 6f 66 20 6b 6e 6f 77 6e 20 65 78 74 65 6e 73 69 6f 6e 73 20 63 6f 6d 70 61 74 egexp.of.known.extensions.compat
4efa0 69 62 6c 65 20 77 69 74 68 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2d 70 72 6f 67 ible.with.`emms-info-libtag-prog
4efc0 72 61 6d 2d 6e 61 6d 65 27 2e 0a 0a 43 61 73 65 20 69 73 20 69 72 72 65 6c 65 76 61 6e 74 2e 22 ram-name'...Case.is.irrelevant."
4efe0 0a 20 20 3a 74 79 70 65 20 27 28 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 ...:type.'(string))..(defun.emms
4f000 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 20 28 74 72 61 63 6b 29 0a 20 20 28 77 68 65 6e 20 28 61 6e -info-libtag.(track)...(when.(an
4f020 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 20 20 20 20 d.(emms-track-file-p.track).....
4f040 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 .........(let.((case-fold-search
4f060 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 .t))................(string-matc
4f080 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 h.................emms-info-libt
4f0a0 61 67 2d 6b 6e 6f 77 6e 2d 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ag-known-extensions.............
4f0c0 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 0a 20 ....(emms-track-name.track))))..
4f0e0 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e ...(with-temp-buffer.......(when
4f100 20 28 7a 65 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 64 69 .(zerop..............(let.((codi
4f120 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 29 29 0a 20 20 20 20 ng-system-for-read.'utf-8)).....
4f140 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 69 6e ...........(call-process.emms-in
4f160 66 6f 2d 6c 69 62 74 61 67 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 fo-libtag-program-name..........
4f180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 28 74 20 6e 69 6c 29 ....................nil.'(t.nil)
4f1a0 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .nil............................
4f1c0 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 0a 20 20 20 ..(emms-track-name.track))))....
4f1e0 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
4f200 20 20 20 20 20 3b 3b 20 43 72 75 73 68 20 74 68 65 20 74 72 61 69 6c 69 6e 67 20 77 68 69 74 65 .....;;.Crush.the.trailing.white
4f220 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d space.........(while.(re-search-
4f240 66 6f 72 77 61 72 64 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 2b 24 22 20 6e 69 6c 20 74 29 0a 20 forward."[[:space:]]+$".nil.t)..
4f260 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 6e .........(replace-match."".nil.n
4f280 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d il)).........(goto-char.(point-m
4f2a0 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 in)).........(while.(looking-at.
4f2c0 22 5e 5c 5c 28 5b 5e 3d 5c 6e 5d 2b 5c 5c 29 3d 5c 5c 28 2e 2a 5c 5c 29 24 22 29 0a 20 20 20 20 "^\\([^=\n]+\\)=\\(.*\\)$").....
4f2e0 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 28 ......(let.((name.(intern-soft.(
4f300 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match-string.1)))...............
4f320 20 20 28 76 61 6c 75 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 ..(value.(match-string.2))).....
4f340 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 76 61 6c 75 65 29 0a ........(when.(>.(length.value).
4f360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 .....................0).........
4f380 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 0a 20 20 20 20 ......(emms-track-set.track.....
4f3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 0a 20 ..........................name..
4f3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 .............................(if
4f3e0 20 28 65 71 20 6e 61 6d 65 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 .(eq.name.'info-playing-time)...
4f400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f420 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 (string-to-number.value)........
4f440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 .........................value))
4f460 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 ))...........(forward-line.1))))
4f480 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 29 0a ))..(provide.'emms-info-libtag).
4f4a0 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2e 65 6c 20 65 6e 64 73 20 68 65 72 ;;;.emms-info-libtag.el.ends.her
4f4c0 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
4f4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2e 65 6c 00 00 00 00 00 00 emms-24/emms-player-vlc.el......
4f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
4f680 30 30 30 36 32 31 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 34 33 00 20 30 00 00 00 0006214.00000000000.014243..0...
4f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
4f720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
4f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f800 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2e 65 6c 20 2d 2d 2d 20 76 6c 63 20 73 ;;;.emms-player-vlc.el.---.vlc.s
4f820 75 70 70 6f 72 74 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e upport.for.EMMS..-*-.lexical-bin
4f840 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
4f860 30 30 38 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 008-2021..Free.Software.Foundati
4f880 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 59 6f 6e 69 20 52 61 62 6b 69 on,.Inc...;;.Authors:.Yoni.Rabki
4f8a0 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 n.<yrk@gnu.org>..;;.This.file.is
4f8c0 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 .part.of.EMMS...;;.EMMS.is.free.
4f8e0 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 software;.you.can.redistribute.i
4f900 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 t.and/or.;;.modify.it.under.the.
4f920 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 terms.of.the.GNU.General.Public.
4f940 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 License.;;.as.published.by.the.F
4f960 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 ree.Software.Foundation;.either.
4f980 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 version.3.;;.of.the.License,.or.
4f9a0 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 (at.your.option).any.later.versi
4f9c0 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 on...;;.EMMS.is.distributed.in.t
4f9e0 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a he.hope.that.it.will.be.useful,.
4fa00 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 ;;.but.WITHOUT.ANY.WARRANTY;.wit
4fa20 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f hout.even.the.implied.warranty.o
4fa40 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 f.;;.MERCHANTABILITY.or.FITNESS.
4fa60 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 FOR.A.PARTICULAR.PURPOSE...See.t
4fa80 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 he.;;.GNU.General.Public.License
4faa0 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c .for.more.details...;;.You.shoul
4fac0 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e d.have.received.a.copy.of.the.GN
4fae0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e U.General.Public.License.;;.alon
4fb00 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 g.with.EMMS;.if.not,.write.to.th
4fb20 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 e.Free.Software.Foundation,.;;.I
4fb40 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 nc.,.51.Franklin.St,.Fifth.Floor
4fb60 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b ,.Boston,.MA.02110-1301,.USA...;
4fb80 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 ;;.Commentary:..;;;.Code:..(requ
4fba0 69 72 65 20 27 65 6d 6d 73 2d 63 6f 6d 70 61 74 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 ire.'emms-compat).(require.'emms
4fbc0 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 0a 3b 3b 20 49 20 75 73 65 20 74 68 69 73 20 6d -player-simple)..;;.I.use.this.m
4fbe0 61 63 72 6f 2c 20 61 6e 64 20 6c 61 74 65 72 20 6f 76 65 72 72 69 64 65 20 73 6f 6d 65 20 6f 66 acro,.and.later.override.some.of
4fc00 20 74 68 65 20 73 74 75 66 66 20 69 74 20 64 65 66 69 6e 65 73 0a 3b 3b 20 69 6e 20 6f 72 64 65 .the.stuff.it.defines.;;.in.orde
4fc20 72 20 74 6f 20 61 63 63 6f 6d 6f 64 61 74 65 20 56 4c 43 27 73 20 70 61 72 74 69 63 75 6c 61 72 r.to.accomodate.VLC's.particular
4fc40 20 69 64 69 6f 6d 73 2e 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 .idioms..(define-emms-simple-pla
4fc60 79 65 72 20 76 6c 63 20 27 28 66 69 6c 65 20 75 72 6c 29 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c yer.vlc.'(file.url)...(concat."\
4fc80 5c 60 5c 5c 28 68 74 74 70 5b 73 5d 3f 5c 5c 7c 6d 6d 73 5c 5c 29 3a 2f 2f 5c 5c 7c 22 0a 09 20 \`\\(http[s]?\\|mms\\)://\\|"...
4fca0 20 28 61 70 70 6c 79 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 .(apply.#'emms-player-simple-reg
4fcc0 65 78 70 0a 09 09 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 62 61 73 65 2d 66 6f 72 6d 61 74 2d 6c exp....emms-player-base-format-l
4fce0 69 73 74 29 29 0a 20 20 22 76 6c 63 22 20 22 2d 2d 69 6e 74 66 3d 72 63 22 29 0a 0a 28 64 65 66 ist))..."vlc"."--intf=rc")..(def
4fd00 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 76 6c 63 2d 70 6c 61 79 6c ine-emms-simple-player.vlc-playl
4fd20 69 73 74 20 27 28 73 74 72 65 61 6d 6c 69 73 74 29 0a 20 20 22 5c 5c 60 68 74 74 70 5b 73 5d 3f ist.'(streamlist)..."\\`http[s]?
4fd40 3a 2f 2f 22 0a 20 20 22 76 6c 63 22 20 22 2d 2d 69 6e 74 66 3d 72 63 22 29 0a 0a 3b 3b 20 28 6b ://"..."vlc"."--intf=rc")..;;.(k
4fd60 6c 75 64 67 65 29 20 42 79 20 64 65 66 61 75 6c 74 2c 20 56 4c 43 20 64 6f 65 73 20 6e 6f 74 20 ludge).By.default,.VLC.does.not.
4fd80 71 75 69 74 20 61 66 74 65 72 20 66 69 6e 69 73 68 69 6e 67 20 74 6f 20 70 6c 61 79 20 61 0a 3b quit.after.finishing.to.play.a.;
4fda0 3b 20 74 72 61 63 6b 2c 20 73 6f 20 74 68 65 20 70 6c 61 79 65 72 20 73 65 6e 74 69 6e 65 6c 20 ;.track,.so.the.player.sentinel.
4fdc0 68 61 73 20 6e 6f 20 77 61 79 20 6f 66 20 74 65 6c 6c 69 6e 67 20 74 68 61 74 20 74 68 65 20 6e has.no.way.of.telling.that.the.n
4fde0 65 78 74 0a 3b 3b 20 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 70 6c 61 79 65 64 2e 20 54 ext.;;.track.should.be.played..T
4fe00 68 65 72 65 66 6f 72 65 20 49 20 72 65 64 65 66 69 6e 65 20 74 68 69 73 20 6c 6f 77 2d 6c 65 76 herefore.I.redefine.this.low-lev
4fe20 65 6c 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 61 64 64 20 61 20 22 71 75 69 74 22 20 el.;;.function.and.add.a."quit".
4fe40 74 72 61 63 6b 20 77 68 69 63 68 20 69 73 20 69 6e 76 69 73 69 62 6c 65 20 74 6f 20 45 6d 6d 73 track.which.is.invisible.to.Emms
4fe60 2e 0a 28 61 64 76 69 63 65 2d 61 64 64 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2d 73 ..(advice-add.'emms-player-vlc-s
4fe80 74 61 72 74 20 3a 6f 76 65 72 72 69 64 65 20 23 27 65 6d 6d 73 2d 2d 76 6c 63 2d 71 75 69 74 2d tart.:override.#'emms--vlc-quit-
4fea0 61 66 74 65 72 2d 66 69 6e 69 73 68 29 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 2d 76 6c 63 2d 71 after-finish).(defun.emms--vlc-q
4fec0 75 69 74 2d 61 66 74 65 72 2d 66 69 6e 69 73 68 20 28 74 72 61 63 6b 20 26 72 65 73 74 20 5f 29 uit-after-finish.(track.&rest._)
4fee0 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 65 73 73 20 28 61 70 70 6c 79 20 23 27 73 74 61 72 74 ...(let.((process.(apply.#'start
4ff00 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -process........................
4ff20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 .emms-player-simple-process-name
4ff40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 .........................nil....
4ff60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 .....................emms-player
4ff80 2d 76 6c 63 2d 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -vlc-command-name...............
4ffa0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 70 6c 69 63 65 20 69 6e 20 70 61 72 61 6d 73 20 68 65 ..........;;.splice.in.params.he
4ffc0 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 re.........................(appe
4ffe0 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2d 70 61 72 61 6d 65 74 65 72 73 0a 20 20 nd.emms-player-vlc-parameters...
50000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
50020 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 ist.(emms-track-name.track))....
50040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 22 .............................'("
50060 76 6c 63 3a 2f 2f 71 75 69 74 22 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 41 64 64 20 61 20 73 65 vlc://quit"))))).....;;.Add.a.se
50080 6e 74 69 6e 65 6c 20 66 6f 72 20 73 69 67 6e 61 6c 69 6e 67 20 74 65 72 6d 69 6e 61 74 69 6f 6e ntinel.for.signaling.termination
500a0 2e 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 ......(set-process-sentinel.proc
500c0 65 73 73 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 65 6e 74 69 6e 65 ess.#'emms-player-simple-sentine
500e0 6c 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 20 65 6d 6d 73 2d l))...(emms-player-started.emms-
50100 70 6c 61 79 65 72 2d 76 6c 63 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 player-vlc))..(defun.emms-player
50120 2d 76 6c 63 2d 70 61 75 73 65 20 28 29 0a 20 20 22 44 65 70 65 6e 64 73 20 6f 6e 20 76 6c 63 27 -vlc-pause.()..."Depends.on.vlc'
50140 73 20 72 63 20 6d 6f 64 65 2e 22 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 s.rc.mode."...(process-send-stri
50160 6e 67 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 ng....emms-player-simple-process
50180 2d 6e 61 6d 65 20 22 70 61 75 73 65 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 -name."pause\n"))..(defun.emms-p
501a0 6c 61 79 65 72 2d 76 6c 63 2d 73 65 65 6b 20 28 73 65 63 29 0a 20 20 22 53 65 65 6b 20 72 65 6c layer-vlc-seek.(sec)..."Seek.rel
501c0 61 74 69 76 65 20 77 69 74 68 69 6e 20 61 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 77 68 65 6e 20 ative.within.a.stream."...(when.
501e0 28 6e 6f 74 20 28 3d 20 30 20 73 65 63 29 29 0a 20 20 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e (not.(=.0.sec)).....(process-sen
50200 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 d-string......emms-player-simple
50220 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 0a 20 20 20 20 20 28 69 66 20 28 3c 20 30 20 73 65 63 29 -process-name......(if.(<.0.sec)
50240 20 22 66 61 73 74 66 6f 72 77 61 72 64 5c 6e 22 20 22 72 65 77 69 6e 64 5c 6e 22 29 29 29 29 0a ."fastforward\n"."rewind\n")))).
50260 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2d 73 65 65 6b 2d 74 6f 20 .(defun.emms-player-vlc-seek-to.
50280 28 73 65 63 29 0a 20 20 22 53 65 65 6b 20 74 6f 20 74 69 6d 65 20 53 45 43 20 77 69 74 68 69 6e (sec)..."Seek.to.time.SEC.within
502a0 20 74 68 65 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 .the.stream."...(process-send-st
502c0 72 69 6e 67 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 ring....emms-player-simple-proce
502e0 73 73 2d 6e 61 6d 65 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 73 65 65 6b 20 25 64 5c 6e 22 20 73 ss-name....(format."seek.%d\n".s
50300 65 63 29 29 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 ec)))..(emms-player-set.emms-pla
50320 79 65 72 2d 76 6c 63 20 27 70 61 75 73 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2d yer-vlc.'pause.'emms-player-vlc-
50340 70 61 75 73 65 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 pause).(emms-player-set.emms-pla
50360 79 65 72 2d 76 6c 63 20 27 72 65 73 75 6d 65 20 6e 69 6c 29 20 3b 20 70 61 75 73 65 20 69 73 20 yer-vlc.'resume.nil).;.pause.is.
50380 61 6c 73 6f 20 72 65 73 75 6d 65 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d also.resume.(emms-player-set.emm
503a0 73 2d 70 6c 61 79 65 72 2d 76 6c 63 20 27 73 74 61 72 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 s-player-vlc.'start.'emms-player
503c0 2d 76 6c 63 2d 73 74 61 72 74 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d -vlc-start).(emms-player-set.emm
503e0 73 2d 70 6c 61 79 65 72 2d 76 6c 63 20 27 73 65 65 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d s-player-vlc.'seek.'emms-player-
50400 76 6c 63 2d 73 65 65 6b 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d vlc-seek).(emms-player-set.emms-
50420 70 6c 61 79 65 72 2d 76 6c 63 20 27 73 65 65 6b 2d 74 6f 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 player-vlc.'seek-to.'emms-player
50440 2d 76 6c 63 2d 73 65 65 6b 2d 74 6f 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 70 6c -vlc-seek-to)..(provide.'emms-pl
50460 61 79 65 72 2d 76 6c 63 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2e 65 ayer-vlc)..;;;.emms-player-vlc.e
50480 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
504a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
504c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
504e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
505a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
505c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
505e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2e 65 6c 00 00 00 00 00 emms-24/emms-last-played.el.....
50620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
50680 30 30 31 31 37 31 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 31 30 00 20 30 00 00 00 0011717.00000000000.014410..0...
506a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
506c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
506e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
50720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
50740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
507a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
507c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
507e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50800 3b 3b 3b 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2e 65 6c 20 2d 2d 2d 20 53 75 70 70 ;;;.emms-last-played.el.---.Supp
50820 6f 72 74 20 66 6f 72 20 6c 61 73 74 2d 70 6c 61 79 65 64 2d 74 69 6d 65 20 6f 66 20 61 20 74 72 ort.for.last-played-time.of.a.tr
50840 61 63 6b 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a ack.-*-.lexical-binding:.t;.-*-.
50860 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 30 32 31 20 20 46 72 65 .;;.Copyright.(C).2006-2021..Fre
50880 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 e.Software.Foundation,.Inc...;;.
508a0 41 75 74 68 6f 72 3a 20 4c 75 63 61 73 20 42 6f 6e 6e 65 74 20 3c 6c 75 63 61 73 40 72 69 6e 63 Author:.Lucas.Bonnet.<lucas@rinc
508c0 65 76 65 6e 74 2e 6e 65 74 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6d 70 event.net>.;;.Keywords:.emms,.mp
508e0 33 2c 20 6d 70 65 67 2c 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 3,.mpeg,.multimedia..;;.This.fil
50900 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 e.is.part.of.EMMS...;;.EMMS.is.f
50920 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 ree.software;.you.can.redistribu
50940 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 te.it.and/or.modify.;;.it.under.
50960 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 the.terms.of.the.GNU.General.Pub
50980 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 lic.License.as.published.by.;;.t
509a0 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 he.Free.Software.Foundation;.eit
509c0 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f her.version.3,.or.(at.your.optio
509e0 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d n).;;.any.later.version...;;.EMM
50a00 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 S.is.distributed.in.the.hope.tha
50a20 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 t.it.will.be.useful,.;;.but.WITH
50a40 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 OUT.ANY.WARRANTY;.without.even.t
50a60 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 he.implied.warranty.of.;;.MERCHA
50a80 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NTABILITY.or.FITNESS.FOR.A.PARTI
50aa0 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 CULAR.PURPOSE...See.the.;;.GNU.G
50ac0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 eneral.Public.License.for.more.d
50ae0 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 etails...;;.You.should.have.rece
50b00 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
50b20 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 ublic.License.;;.along.with.EMMS
50b40 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c ;.see.the.file.COPYING...If.not,
50b60 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 .write.to.the.;;.Free.Software.F
50b80 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 oundation,.Inc.,.51.Franklin.Str
50ba0 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 eet,.Fifth.Floor,.;;.Boston,.MA.
50bc0 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 02110-1301,.USA...;;;.Commentary
50be0 3a 0a 0a 3b 3b 20 52 65 63 6f 72 64 73 20 77 68 65 6e 20 74 68 65 20 74 72 61 63 6b 20 77 61 73 :..;;.Records.when.the.track.was
50c00 20 6c 61 73 74 20 70 6c 61 79 65 64 2e 0a 3b 3b 20 42 69 67 20 70 6f 72 74 69 6f 6e 73 20 6f 66 .last.played..;;.Big.portions.of
50c20 20 74 68 65 20 74 69 6d 65 20 68 61 6e 64 6c 69 6e 67 20 66 75 63 74 69 6f 6e 73 20 61 72 65 20 .the.time.handling.fuctions.are.
50c40 63 6f 70 69 65 64 20 66 72 6f 6d 0a 3b 3b 20 67 6e 75 73 2d 75 74 69 6c 2e 65 6c 2c 20 61 6e 64 copied.from.;;.gnus-util.el,.and
50c60 20 73 6c 69 67 68 74 6c 79 20 61 64 61 70 74 65 64 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 .slightly.adapted...;;;.Code:..(
50c80 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 61 73 require.'emms)..(defvar.emms-las
50ca0 74 2d 70 6c 61 79 65 64 2d 6b 65 65 70 2d 63 6f 75 6e 74 20 74 0a 20 20 22 53 70 65 63 69 66 69 t-played-keep-count.t..."Specifi
50cc0 65 73 20 69 66 20 45 4d 4d 53 20 73 68 6f 75 6c 64 20 72 65 63 6f 72 64 20 74 68 65 20 6e 75 6d es.if.EMMS.should.record.the.num
50ce0 62 65 72 20 6f 66 20 74 69 6d 65 73 20 79 6f 75 20 70 6c 61 79 20 61 20 74 72 61 63 6b 2e 0a 53 ber.of.times.you.play.a.track..S
50d00 65 74 20 69 74 20 74 6f 20 74 20 69 66 20 79 6f 75 20 77 61 6e 74 20 73 75 63 68 20 61 20 66 65 et.it.to.t.if.you.want.such.a.fe
50d20 61 74 75 72 65 2c 20 61 6e 64 20 74 6f 20 6e 69 6c 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 2e 22 ature,.and.to.nil.if.you.don't."
50d40 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 66 6f 72 6d )..(defvar.emms-last-played-form
50d60 61 74 2d 61 6c 69 73 74 0a 20 20 27 28 28 28 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d at-alist...'(((emms-last-played-
50d80 73 65 63 6f 6e 64 73 2d 74 6f 64 61 79 29 20 2e 20 22 25 6b 3a 25 4d 22 29 0a 20 20 20 20 28 36 seconds-today)..."%k:%M").....(6
50da0 30 34 38 30 30 20 2e 20 22 25 61 20 25 6b 3a 25 4d 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 04800..."%a.%k:%M").............
50dc0 20 20 20 20 20 20 3b 3b 74 68 61 74 27 73 20 6f 6e 65 20 77 65 65 6b 0a 20 20 20 20 28 28 65 6d ......;;that's.one.week.....((em
50de0 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 6d 6f 6e 74 68 29 20 2e 20 ms-last-played-seconds-month)...
50e00 22 25 61 20 25 64 22 29 0a 20 20 20 20 28 28 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d "%a.%d").....((emms-last-played-
50e20 73 65 63 6f 6e 64 73 2d 79 65 61 72 29 20 2e 20 22 25 62 20 25 64 22 29 0a 20 20 20 20 28 74 20 seconds-year)..."%b.%d").....(t.
50e40 2e 20 22 25 62 20 25 64 20 27 25 79 22 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."%b.%d.'%y")).................
50e60 20 20 20 20 20 3b 3b 74 68 69 73 20 6f 6e 65 20 69 73 20 75 73 65 64 20 77 68 65 6e 20 6e 6f 0a .....;;this.one.is.used.when.no.
50e80 09 09 09 09 09 20 20 20 20 3b 3b 6f 74 68 65 72 20 64 6f 65 73 20 6d 61 74 63 68 0a 20 20 22 53 .........;;other.does.match..."S
50ea0 70 65 63 69 66 69 65 73 20 64 61 74 65 20 66 6f 72 6d 61 74 20 64 65 70 65 6e 64 69 6e 67 20 6f pecifies.date.format.depending.o
50ec0 6e 20 77 68 65 6e 20 61 20 74 72 61 63 6b 20 77 61 73 20 6c 61 73 74 20 70 6c 61 79 65 64 2e 0a n.when.a.track.was.last.played..
50ee0 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 69 74 65 6d 73 20 28 41 47 45 20 2e This.is.an.alist.of.items.(AGE..
50f00 20 46 4f 52 4d 41 54 29 2e 20 20 41 47 45 20 63 61 6e 20 62 65 20 61 20 6e 75 6d 62 65 72 20 28 .FORMAT)...AGE.can.be.a.number.(
50f20 6f 66 0a 73 65 63 6f 6e 64 73 29 20 6f 72 20 61 20 4c 69 73 70 20 65 78 70 72 65 73 73 69 6f 6e of.seconds).or.a.Lisp.expression
50f40 20 65 76 61 6c 75 61 74 69 6e 67 20 74 6f 20 61 20 6e 75 6d 62 65 72 2e 20 20 57 68 65 6e 20 74 .evaluating.to.a.number...When.t
50f60 68 65 20 61 67 65 20 6f 66 0a 74 68 65 20 74 72 61 63 6b 20 69 73 20 6c 65 73 73 20 74 68 61 6e he.age.of.the.track.is.less.than
50f80 20 74 68 69 73 20 6e 75 6d 62 65 72 2c 20 74 68 65 6e 20 75 73 65 20 60 66 6f 72 6d 61 74 2d 74 .this.number,.then.use.`format-t
50fa0 69 6d 65 2d 73 74 72 69 6e 67 27 0a 77 69 74 68 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 ime-string'.with.the.correspondi
50fc0 6e 67 20 46 4f 52 4d 41 54 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 61 74 ng.FORMAT.for.displaying.the.dat
50fe0 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 2e 0a 49 66 20 41 47 45 20 69 73 20 6e 6f 74 20 61 20 e.of.the.track..If.AGE.is.not.a.
51000 6e 75 6d 62 65 72 20 6f 72 20 61 20 4c 69 73 70 20 65 78 70 72 65 73 73 69 6f 6e 20 65 76 61 6c number.or.a.Lisp.expression.eval
51020 75 61 74 69 6e 67 20 74 6f 20 61 0a 6e 6f 6e 2d 6e 75 6d 62 65 72 2c 20 74 68 65 6e 20 74 68 65 uating.to.a.non-number,.then.the
51040 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 46 4f 52 4d 41 54 20 69 73 20 75 73 65 64 20 61 73 .corresponding.FORMAT.is.used.as
51060 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 .a.default.value...Note.that.the
51080 20 6c 69 73 74 20 69 73 20 70 72 6f 63 65 73 73 65 64 20 66 72 6f 6d 20 74 68 65 20 62 65 67 69 .list.is.processed.from.the.begi
510a0 6e 6e 69 6e 67 2c 20 73 6f 20 69 74 20 73 68 6f 75 6c 64 20 62 65 0a 73 6f 72 74 65 64 20 62 79 nning,.so.it.should.be.sorted.by
510c0 20 61 73 63 65 6e 64 69 6e 67 20 41 47 45 2e 20 20 41 6c 73 6f 20 6e 6f 74 65 20 74 68 61 74 20 .ascending.AGE...Also.note.that.
510e0 69 74 65 6d 73 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 66 69 72 73 74 0a 6e 6f 6e 2d 6e 75 items.following.the.first.non-nu
51100 6d 62 65 72 20 41 47 45 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 59 6f 75 20 63 mber.AGE.will.be.ignored...You.c
51120 61 6e 20 75 73 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 60 65 6d 6d 73 2d 6c 61 73 74 2d an.use.the.functions.`emms-last-
51140 70 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 74 6f 64 61 79 27 2c 0a 60 65 6d 6d 73 2d 6c 61 73 played-seconds-today',.`emms-las
51160 74 2d 70 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 6d 6f 6e 74 68 27 20 61 6e 64 0a 60 65 6d 6d t-played-seconds-month'.and.`emm
51180 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 79 65 61 72 27 20 69 6e 20 74 s-last-played-seconds-year'.in.t
511a0 68 65 20 41 47 45 20 73 70 65 63 2e 20 20 54 68 65 79 20 72 65 74 75 72 6e 20 74 68 65 0a 6e 75 he.AGE.spec...They.return.the.nu
511c0 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 70 61 73 73 65 64 20 73 69 6e 63 65 20 74 68 65 mber.of.seconds.passed.since.the
511e0 20 73 74 61 72 74 20 6f 66 20 74 6f 64 61 79 2c 20 6f 66 20 74 68 69 73 20 6d 6f 6e 74 68 2c 0a .start.of.today,.of.this.month,.
51200 6f 66 20 74 68 69 73 20 79 65 61 72 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 22 29 0a 0a 0a of.this.year,.respectively.")...
51220 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 75 70 64 61 74 65 2d 74 (defun.emms-last-played-update-t
51240 72 61 63 6b 20 28 74 72 61 63 6b 29 0a 20 20 22 55 70 64 61 74 65 73 20 74 68 65 20 6c 61 73 74 rack.(track)..."Updates.the.last
51260 2d 70 6c 61 79 65 64 20 74 69 6d 65 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 65 6d 6d 73 2d -played.time.of.TRACK."...(emms-
51280 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 6c 61 73 74 2d 70 6c 61 79 65 64 20 28 63 75 track-set.track.'last-played.(cu
512a0 72 72 65 6e 74 2d 74 69 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 2d rrent-time)))..(defun.emms-last-
512c0 70 6c 61 79 65 64 2d 69 6e 63 72 65 6d 65 6e 74 2d 63 6f 75 6e 74 20 28 74 72 61 63 6b 29 0a 20 played-increment-count.(track)..
512e0 20 22 49 6e 63 72 65 6d 65 6e 74 73 20 74 68 65 20 70 6c 61 79 2d 63 6f 75 6e 74 20 70 72 6f 70 ."Increments.the.play-count.prop
51300 65 72 74 79 20 6f 66 20 54 52 41 43 4b 2e 0a 49 66 20 6e 6f 6e 2d 65 78 69 73 74 65 6e 74 2c 20 erty.of.TRACK..If.non-existent,.
51320 69 74 20 69 73 20 73 65 74 20 74 6f 20 31 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6c 61 79 2d 63 it.is.set.to.1."...(let.((play-c
51340 6f 75 6e 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 70 6c 61 79 ount.(emms-track-get.track.'play
51360 2d 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 70 6c 61 79 2d 63 6f 75 6e 74 0a 20 20 20 -count))).....(if.play-count....
51380 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 70 6c 61 79 .....(emms-track-set.track.'play
513a0 2d 63 6f 75 6e 74 20 28 31 2b 20 70 6c 61 79 2d 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 28 65 -count.(1+.play-count)).......(e
513c0 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 70 6c 61 79 2d 63 6f 75 6e 74 20 mms-track-set.track.'play-count.
513e0 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 75 1))))..(defun.emms-last-played-u
51400 70 64 61 74 65 2d 63 75 72 72 65 6e 74 20 28 29 0a 20 20 22 55 70 64 61 74 65 73 20 74 68 65 20 pdate-current.()..."Updates.the.
51420 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 20 28 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 current.track."...(emms-last-pla
51440 79 65 64 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d yed-update-track.(emms-playlist-
51460 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 28 69 66 20 65 current-selected-track))...(if.e
51480 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 6b 65 65 70 2d 63 6f 75 6e 74 0a 20 20 20 20 20 mms-last-played-keep-count......
514a0 20 28 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 69 6e 63 72 65 6d 65 6e 74 2d 63 6f 75 .(emms-last-played-increment-cou
514c0 6e 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 nt.(emms-playlist-current-select
514e0 65 64 2d 74 72 61 63 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 ed-track))))..(defun.emms-last-p
51500 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 74 6f 64 61 79 20 28 29 0a 20 20 22 52 65 74 75 72 6e layed-seconds-today.()..."Return
51520 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 70 61 73 73 65 64 20 74 6f .the.number.of.seconds.passed.to
51540 64 61 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 77 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 day."...(let.((now.(decode-time.
51560 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 29 29 0a 20 20 20 20 28 2b 20 28 63 61 72 20 6e 6f (current-time)))).....(+.(car.no
51580 77 29 20 28 2a 20 28 63 61 72 20 28 63 64 72 20 6e 6f 77 29 29 20 36 30 29 20 28 2a 20 28 63 61 w).(*.(car.(cdr.now)).60).(*.(ca
515a0 72 20 28 6e 74 68 63 64 72 20 32 20 6e 6f 77 29 29 20 33 36 30 30 29 29 29 29 0a 0a 28 64 65 66 r.(nthcdr.2.now)).3600))))..(def
515c0 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 6d 6f 6e 74 un.emms-last-played-seconds-mont
515e0 68 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 h.()..."Return.the.number.of.sec
51600 6f 6e 64 73 20 70 61 73 73 65 64 20 74 68 69 73 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 6c 65 74 20 onds.passed.this.month."...(let.
51620 28 28 6e 6f 77 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 ((now.(decode-time.(current-time
51640 29 29 29 29 0a 20 20 20 20 28 2b 20 28 63 61 72 20 6e 6f 77 29 20 28 2a 20 28 63 61 72 20 28 63 )))).....(+.(car.now).(*.(car.(c
51660 64 72 20 6e 6f 77 29 29 20 36 30 29 20 28 2a 20 28 63 61 72 20 28 6e 74 68 63 64 72 20 32 20 6e dr.now)).60).(*.(car.(nthcdr.2.n
51680 6f 77 29 29 20 33 36 30 30 29 0a 20 20 20 20 20 20 20 28 2a 20 28 2d 20 28 63 61 72 20 28 6e 74 ow)).3600)........(*.(-.(car.(nt
516a0 68 63 64 72 20 33 20 6e 6f 77 29 29 20 31 29 20 33 36 30 30 20 32 34 29 29 29 29 0a 0a 28 64 65 hcdr.3.now)).1).3600.24))))..(de
516c0 66 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 73 65 63 6f 6e 64 73 2d 79 65 61 fun.emms-last-played-seconds-yea
516e0 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 r.()..."Return.the.number.of.sec
51700 6f 6e 64 73 20 70 61 73 73 65 64 20 74 68 69 73 20 79 65 61 72 2e 22 0a 20 20 28 6c 65 74 20 28 onds.passed.this.year."...(let.(
51720 28 6e 6f 77 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 (now.(decode-time.(current-time)
51740 29 29 0a 09 28 64 61 79 73 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 22 25 ))..(days.(format-time-string."%
51760 6a 22 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 29 29 0a 20 20 20 20 28 2b 20 28 63 61 72 j".(current-time)))).....(+.(car
51780 20 6e 6f 77 29 20 28 2a 20 28 63 61 72 20 28 63 64 72 20 6e 6f 77 29 29 20 36 30 29 20 28 2a 20 .now).(*.(car.(cdr.now)).60).(*.
517a0 28 63 61 72 20 28 6e 74 68 63 64 72 20 32 20 6e 6f 77 29 29 20 33 36 30 30 29 0a 20 20 20 20 20 (car.(nthcdr.2.now)).3600)......
517c0 20 20 28 2a 20 28 2d 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 73 29 20 ..(*.(-.(string-to-number.days).
517e0 31 29 20 33 36 30 30 20 32 34 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 61 73 74 1).3600.24))))..(defun.emms-last
51800 2d 70 6c 61 79 65 64 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 6d 65 73 73 79 2d 64 61 74 65 29 -played-format-date.(messy-date)
51820 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 6d 65 73 73 79 2d 64 61 74 65 20 61 63 63 6f 72 64 ..."Format.the.messy-date.accord
51840 69 6e 67 20 74 6f 20 60 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 66 6f 72 6d 61 74 2d ing.to.`emms-last-played-format-
51860 61 6c 69 73 74 27 2e 0a 52 65 74 75 72 6e 73 20 5c 22 20 20 3f 20 20 5c 22 20 69 66 20 74 68 65 alist'..Returns.\"..?..\".if.the
51880 72 65 27 73 20 62 61 64 20 69 6e 70 75 74 20 6f 72 20 69 66 20 61 6e 20 6f 74 68 65 72 20 65 72 re's.bad.input.or.if.an.other.er
518a0 72 6f 72 20 6f 63 63 75 72 73 2e 0a 49 6e 70 75 74 20 73 68 6f 75 6c 64 20 6c 6f 6f 6b 20 6c 69 ror.occurs..Input.should.look.li
518c0 6b 65 20 74 68 69 73 3a 20 5c 22 53 75 6e 2c 20 31 34 20 4f 63 74 20 32 30 30 31 20 31 33 3a 33 ke.this:.\"Sun,.14.Oct.2001.13:3
518e0 34 3a 33 39 20 2b 30 32 30 30 5c 22 2e 22 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 4:39.+0200\"."...(condition-case
51900 20 28 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 65 73 73 79 2d 64 61 74 65 20 28 66 6c .().......(let*.((messy-date.(fl
51920 6f 61 74 2d 74 69 6d 65 20 6d 65 73 73 79 2d 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 oat-time.messy-date))...........
51940 20 20 20 28 6e 6f 77 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d ...(now.(float-time.(current-tim
51960 65 29 29 29 0a 09 20 20 20 20 20 3b 3b 49 66 20 77 65 20 64 6f 6e 27 74 20 66 69 6e 64 20 73 6f e))).......;;If.we.don't.find.so
51980 6d 65 74 68 69 6e 67 20 73 75 69 74 61 62 6c 65 20 77 65 27 6c 6c 20 75 73 65 20 74 68 69 73 20 mething.suitable.we'll.use.this.
519a0 6f 6e 65 0a 09 20 20 20 20 20 28 6d 79 2d 66 6f 72 6d 61 74 20 22 25 62 20 25 64 20 27 25 79 22 one.......(my-format."%b.%d.'%y"
519c0 29 29 0a 09 28 6c 65 74 2a 20 28 28 64 69 66 66 65 72 65 6e 63 65 20 28 2d 20 6e 6f 77 20 6d 65 ))..(let*.((difference.(-.now.me
519e0 73 73 79 2d 64 61 74 65 29 29 0a 09 20 20 20 20 20 20 20 28 74 65 6d 70 6c 69 73 74 20 65 6d 6d ssy-date)).........(templist.emm
51a00 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 66 6f 72 6d 61 74 2d 61 6c 69 73 74 29 0a 09 20 20 20 s-last-played-format-alist).....
51a20 20 20 20 20 28 74 6f 70 20 28 65 76 61 6c 20 28 63 61 61 72 20 74 65 6d 70 6c 69 73 74 29 20 74 ....(top.(eval.(caar.templist).t
51a40 29 29 29 0a 09 20 20 28 77 68 69 6c 65 20 28 69 66 20 28 6e 75 6d 62 65 72 70 20 74 6f 70 29 20 )))....(while.(if.(numberp.top).
51a60 28 3c 20 74 6f 70 20 64 69 66 66 65 72 65 6e 63 65 29 20 28 6e 6f 74 20 74 6f 70 29 29 0a 09 20 (<.top.difference).(not.top))...
51a80 20 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 74 65 6d 70 6c 69 73 74 20 ...(progn........(setq.templist.
51aa0 28 63 64 72 20 74 65 6d 70 6c 69 73 74 29 29 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 70 (cdr.templist))........(setq.top
51ac0 20 28 65 76 61 6c 20 28 63 61 61 72 20 74 65 6d 70 6c 69 73 74 29 20 74 29 29 29 29 0a 09 20 20 .(eval.(caar.templist).t))))....
51ae0 28 69 66 20 28 73 74 72 69 6e 67 70 20 28 63 64 72 20 28 63 61 72 20 74 65 6d 70 6c 69 73 74 29 (if.(stringp.(cdr.(car.templist)
51b00 29 29 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 6d 79 2d 66 6f 72 6d 61 74 20 28 63 64 72 20 28 ))........(setq.my-format.(cdr.(
51b20 63 61 72 20 74 65 6d 70 6c 69 73 74 29 29 29 29 29 0a 09 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d car.templist)))))..(format-time-
51b40 73 74 72 69 6e 67 20 28 65 76 61 6c 20 6d 79 2d 66 6f 72 6d 61 74 20 74 29 20 28 73 65 63 6f 6e string.(eval.my-format.t).(secon
51b60 64 73 2d 74 6f 2d 74 69 6d 65 20 6d 65 73 73 79 2d 64 61 74 65 29 29 29 0a 20 20 20 20 28 65 72 ds-to-time.messy-date))).....(er
51b80 72 6f 72 20 22 4e 65 76 65 72 2e 22 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d ror."Never.")))..(provide.'emms-
51ba0 6c 61 73 74 2d 70 6c 61 79 65 64 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 last-played).;;;.emms-last-playe
51bc0 64 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d.el.ends.here..................
51be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 2e 65 6c 00 00 00 emms-24/emms-info-metaflac.el...
51c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
51c80 30 30 30 37 34 32 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 36 37 37 00 20 30 00 00 00 0007425.00000000000.014677..0...
51ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
51d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
51d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51e00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 2e 65 6c 20 2d 2d 2d 20 49 6e ;;;.emms-info-metaflac.el.---.In
51e20 66 6f 2d 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d 4d 53 20 75 73 69 6e 67 20 6d 65 74 61 66 6c 61 fo-method.for.EMMS.using.metafla
51e40 63 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a c..-*-.lexical-binding:.t;.-*-..
51e60 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 30 32 31 20 20 46 72 65 65 ;;.Copyright.(C).2006-2021..Free
51e80 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 .Software.Foundation,.Inc...;;.A
51ea0 75 74 68 6f 72 3a 20 4d 61 74 74 68 65 77 20 4b 65 6e 6e 65 64 79 20 3c 6d 6b 65 6e 6e 65 64 79 uthor:.Matthew.Kennedy.<mkennedy
51ec0 40 67 65 6e 74 6f 6f 2e 6f 72 67 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 0a 0a 3b 3b 20 54 68 @gentoo.org>.;;.Keywords:..;;.Th
51ee0 69 73 20 66 69 6c 65 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 is.file.is.free.software;.you.ca
51f00 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a n.redistribute.it.and/or.modify.
51f20 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 ;;.it.under.the.terms.of.the.GNU
51f40 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 .General.Public.License.as.publi
51f60 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 shed.by.;;.the.Free.Software.Fou
51f80 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 ndation;.either.version.2,.or.(a
51fa0 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 t.your.option).;;.any.later.vers
51fc0 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 64 69 73 74 72 69 62 75 74 65 ion...;;.This.file.is.distribute
51fe0 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 d.in.the.hope.that.it.will.be.us
52000 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 eful,.;;.but.WITHOUT.ANY.WARRANT
52020 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 Y;.without.even.the.implied.warr
52040 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 anty.of.;;.MERCHANTABILITY.or.FI
52060 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 TNESS.FOR.A.PARTICULAR.PURPOSE..
52080 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c .See.the.;;.GNU.General.Public.L
520a0 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 icense.for.more.details...;;.You
520c0 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 .should.have.received.a.copy.of.
520e0 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b the.GNU.General.Public.License.;
52100 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 ;.along.with.GNU.Emacs;.see.the.
52120 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 file.COPYING..If.not,.write.to.t
52140 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 he.;;.Free.Software.Foundation,.
52160 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f Inc.,.51.Franklin.St,.Fifth.Floo
52180 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 0a r,.;;.Boston,.MA.02110-1301.USA.
521a0 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 68 .;;;.Commentary:..;;.This.code.h
521c0 61 73 20 62 65 65 6e 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 63 6f 64 65 20 66 6f 75 6e 64 20 as.been.adapted.from.code.found.
521e0 69 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2e 65 6c 0a 3b 3b 20 77 72 69 74 74 in.emms-info-mp3info.el.;;.writt
52200 65 6e 20 62 79 20 55 6c 72 69 6b 20 4a 65 6e 73 65 6e 20 3c 74 65 72 72 79 70 40 64 61 69 6d 69 en.by.Ulrik.Jensen.<terryp@daimi
52220 2e 61 75 2e 64 6b 3e 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 3b 3b 20 66 6f .au.dk>.which.contains.the.;;.fo
52240 6c 6c 6f 77 69 6e 67 20 61 74 74 72 69 62 75 74 69 6f 6e 3a 0a 0a 3b 3b 20 54 68 69 73 20 63 6f llowing.attribution:..;;.This.co
52260 64 65 20 68 61 73 20 62 65 65 6e 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 63 6f 64 65 20 66 6f de.has.been.adapted.from.code.fo
52280 75 6e 64 20 69 6e 20 6d 70 33 70 6c 61 79 65 72 2e 65 6c 2c 20 77 72 69 74 74 65 6e 0a 3b 3b 20 und.in.mp3player.el,.written.;;.
522a0 62 79 20 4a 65 61 6e 2d 50 68 69 6c 69 70 70 65 20 54 68 65 62 65 72 67 65 20 28 6a 70 68 69 6c by.Jean-Philippe.Theberge.(jphil
522c0 74 68 65 62 65 72 67 65 40 76 69 64 65 6f 74 72 6f 6e 2e 63 61 29 2c 20 4d 61 72 69 6f 0a 3b 3b theberge@videotron.ca),.Mario.;;
522e0 20 44 6f 6d 67 6f 65 72 67 65 6e 20 28 6b 61 6e 61 6c 64 72 61 63 68 65 40 67 6d 78 2e 64 65 29 .Domgoergen.(kanaldrache@gmx.de)
52300 20 61 6e 64 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 0a 3b 3b 20 3c 66 6f 72 63 65 72 40 .and.Jorgen.Sch..fer.;;.<forcer@
52320 66 6f 72 63 69 78 2e 63 78 3e 0a 0a 3b 3b 20 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 forcix.cx>..;;.To.activate.this.
52340 6d 65 74 68 6f 64 20 66 6f 72 20 67 65 74 74 69 6e 67 20 69 6e 66 6f 2c 20 75 73 65 20 73 6f 6d method.for.getting.info,.use.som
52360 65 74 68 69 6e 67 20 6c 69 6b 65 3a 0a 0a 3b 3b 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d ething.like:..;;.(require.'emms-
52380 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d info-metaflac).;;.(add-hook.'emm
523a0 73 2d 69 6e 66 6f 2d 6d 65 74 68 6f 64 73 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d s-info-methods-list.'emms-info-m
523c0 65 74 61 66 6c 61 63 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 etaflac)..;;;.Code:..(require.'e
523e0 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 mms-info)..(defvar.emms-info-met
52400 61 66 6c 61 63 2d 76 65 72 73 69 6f 6e 20 22 30 2e 31 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e aflac-version."0.1.$Revision:.1.
52420 31 30 20 24 22 0a 20 20 22 45 4d 4d 53 20 69 6e 66 6f 20 6d 65 74 61 66 6c 61 63 20 76 65 72 73 10.$"..."EMMS.info.metaflac.vers
52440 69 6f 6e 20 73 74 72 69 6e 67 2e 22 29 0a 0a 3b 3b 20 24 49 64 3a 20 65 6d 6d 73 2d 69 6e 66 6f ion.string.")..;;.$Id:.emms-info
52460 2d 6d 70 33 69 6e 66 6f 2e 65 6c 2c 76 20 31 2e 31 30 20 32 30 30 35 2f 30 38 2f 31 32 20 31 38 -mp3info.el,v.1.10.2005/08/12.18
52480 3a 30 31 3a 31 36 20 78 77 6c 20 45 78 70 20 24 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 :01:16.xwl.Exp.$..(defgroup.emms
524a0 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 20 6e 69 6c 0a 20 20 22 41 6e 20 45 4d 4d 53 2d 69 6e -info-metaflac.nil..."An.EMMS-in
524c0 66 6f 20 6d 65 74 68 6f 64 20 66 6f 72 20 67 65 74 74 69 6e 67 2f 73 65 74 74 69 6e 67 20 46 4c fo.method.for.getting/setting.FL
524e0 41 43 20 74 61 67 73 2c 20 75 73 69 6e 67 20 74 68 65 0a 65 78 74 65 72 6e 61 6c 20 6d 65 74 61 AC.tags,.using.the.external.meta
52500 66 6c 61 63 20 70 72 6f 67 72 61 6d 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 69 6e 66 flac.program"...:group.'emms-inf
52520 6f 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 o)..(defcustom.emms-info-metafla
52540 63 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 20 22 6d 65 74 61 66 6c 61 63 22 0a 20 20 22 54 68 65 c-program-name."metaflac"..."The
52560 20 6e 61 6d 65 2f 70 61 74 68 20 6f 66 20 74 68 65 20 6d 65 74 61 66 6c 61 63 20 70 72 6f 67 72 .name/path.of.the.metaflac.progr
52580 61 6d 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f am."...:type.'string)..(defcusto
525a0 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 2d 6f 70 74 69 6f 6e 73 0a 20 20 27 m.emms-info-metaflac-options...'
525c0 28 22 2d 2d 6e 6f 2d 75 74 66 38 2d 63 6f 6e 76 65 72 74 22 0a 20 20 20 20 22 2d 2d 73 68 6f 77 ("--no-utf8-convert"....."--show
525e0 2d 74 61 67 3d 54 49 54 4c 45 22 0a 20 20 20 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 41 52 54 49 -tag=TITLE"....."--show-tag=ARTI
52600 53 54 22 0a 20 20 20 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 41 4c 42 55 4d 41 52 54 49 53 54 22 ST"....."--show-tag=ALBUMARTIST"
52620 0a 20 20 20 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 41 4c 42 55 4d 22 0a 20 20 20 20 22 2d 2d 73 ....."--show-tag=ALBUM"....."--s
52640 68 6f 77 2d 74 61 67 3d 4e 4f 54 45 22 0a 20 20 20 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 59 45 how-tag=NOTE"....."--show-tag=YE
52660 41 52 22 0a 20 20 20 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 54 52 41 43 4b 4e 55 4d 42 45 52 22 AR"....."--show-tag=TRACKNUMBER"
52680 0a 20 20 20 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 44 49 53 43 4e 55 4d 42 45 52 22 0a 20 20 20 ....."--show-tag=DISCNUMBER"....
526a0 20 22 2d 2d 73 68 6f 77 2d 74 61 67 3d 47 45 4e 52 45 22 29 0a 20 20 22 54 68 65 20 61 72 67 75 ."--show-tag=GENRE")..."The.argu
526c0 6d 65 6e 74 20 74 6f 20 70 61 73 73 20 74 6f 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 ment.to.pass.to.`emms-info-metaf
526e0 6c 61 63 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 lac-program-name'."...:type.'(re
52700 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d peat.string))..(defun.emms-info-
52720 6d 65 74 61 66 6c 61 63 20 28 74 72 61 63 6b 29 0a 20 20 22 47 65 74 20 74 68 65 20 46 4c 41 43 metaflac.(track)..."Get.the.FLAC
52740 20 74 61 67 20 6f 66 20 66 69 6c 65 20 54 52 41 43 4b 2c 20 75 73 69 6e 67 20 60 65 6d 6d 73 2d .tag.of.file.TRACK,.using.`emms-
52760 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 2d 70 72 6f 67 72 61 6d 27 0a 61 6e 64 20 72 65 74 75 72 info-metaflac-program'.and.retur
52780 6e 20 61 6e 20 65 6d 6d 73 2d 69 6e 66 6f 20 73 74 72 75 63 74 75 72 65 20 72 65 70 72 65 73 65 n.an.emms-info.structure.represe
527a0 6e 74 69 6e 67 20 69 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 nting.it."...(when.(and.(emms-tr
527c0 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ack-file-p.track)..............(
527e0 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 5c 5c 28 66 6c 61 63 5c 5c 7c 46 4c 41 43 5c string-match."\\.\\(flac\\|FLAC\
52800 5c 29 5c 5c 27 22 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 \)\\'".(emms-track-name.track)))
52820 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 .....(with-temp-buffer.......(wh
52840 65 6e 20 28 7a 65 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 27 63 en.(zerop..............(apply.'c
52860 61 6c 6c 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 all-process...............emms-i
52880 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 nfo-metaflac-program-name.......
528a0 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........nil.t.nil...............
528c0 22 2d 2d 73 68 6f 77 2d 74 6f 74 61 6c 2d 73 61 6d 70 6c 65 73 22 0a 20 20 20 20 20 20 20 20 20 "--show-total-samples"..........
528e0 20 20 20 20 20 22 2d 2d 73 68 6f 77 2d 73 61 6d 70 6c 65 2d 72 61 74 65 22 0a 20 20 20 20 20 20 ....."--show-sample-rate".......
52900 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c ........(append.emms-info-metafl
52920 61 63 2d 6f 70 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ac-options......................
52940 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 .(list.(emms-track-name.track)))
52960 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e )).........(goto-char.(point-min
52980 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b )).........(emms-track-set.track
529a0 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 .'info-playing-time.............
529c0 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 ............(/.(string-to-number
529e0 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 .(buffer-substring.(point).(line
52a00 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -end-position)))................
52a20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(progn..............
52a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 ................(forward-line.1)
52a60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ..............................(s
52a80 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e tring-to-number.(buffer-substrin
52aa0 67 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 g.(point).(line-end-position))))
52ac0 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 )).........(forward-line.1).....
52ae0 20 20 20 20 28 77 68 69 6c 65 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 5c 28 5b 5e 3d 5c ....(while.(looking-at."^\\([^=\
52b00 6e 5d 2b 5c 5c 29 3d 5c 5c 28 2e 2a 5c 5c 29 24 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 n]+\\)=\\(.*\\)$")...........(le
52b20 74 20 28 28 6e 61 6d 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 69 6e 66 6f 2d 22 t.((name.(intern.(concat."info-"
52b40 20 28 64 6f 77 6e 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 29 29 0a .(downcase.(match-string.1))))).
52b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 6d 61 74 63 68 2d 73 74 ................(value.(match-st
52b80 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 ring.2))).............(when.(>.(
52ba0 6c 65 6e 67 74 68 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 length.value)...................
52bc0 20 20 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d ...0)...............(emms-track-
52be0 73 65 74 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 set.track.......................
52c00 20 20 20 20 20 20 20 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........name....................
52c20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 6e 61 6d 65 20 27 69 6e 66 6f 2d 70 6c ...........(if.(eq.name.'info-pl
52c40 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aying-time).....................
52c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 ..............(string-to-number.
52c80 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 value)..........................
52ca0 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 .......value))))...........(forw
52cc0 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 ard-line.1))))))..(provide.'emms
52ce0 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d -info-metaflac)..;;;.emms-info-m
52d00 65 74 61 66 6c 61 63 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 etaflac.el.ends.here............
52d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2e 65 6c 00 00 00 00 emms-24/emms-tag-tracktag.el....
52e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
52e80 30 30 30 35 33 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 34 36 00 20 30 00 00 00 0005367.00000000000.014546..0...
52ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
52f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
52f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53000 3b 3b 3b 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2e 65 6c 20 2d 2d 2d 20 45 4d 4d ;;;.emms-tag-tracktag.el.---.EMM
53020 53 20 69 6e 74 65 72 66 61 63 65 20 66 6f 72 20 61 75 64 69 6f 74 6f 6f 6c 73 20 74 72 61 63 6b S.interface.for.audiotools.track
53040 74 61 67 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d tag..-*-.lexical-binding:.t;.-*-
53060 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 31 20 20 46 72 65 65 20 53 6f ..;;.Copyright.(C).2021..Free.So
53080 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 ftware.Foundation,.Inc...;;.Auth
530a0 6f 72 3a 20 47 72 61 6e 74 20 53 68 6f 73 68 69 6e 20 53 68 61 6e 67 72 65 61 75 78 20 3c 67 72 or:.Grant.Shoshin.Shangreaux.<gr
530c0 61 6e 74 40 63 68 75 72 6c 73 2e 77 6f 72 6c 64 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 0a 0a ant@churls.world>.;;.Keywords:..
530e0 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 ;;.This.program.is.free.software
53100 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 ;.you.can.redistribute.it.and/or
53120 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 .modify.;;.it.under.the.terms.of
53140 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 .the.GNU.General.Public.License.
53160 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 as.published.by.;;.the.Free.Soft
53180 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 ware.Foundation,.either.version.
531a0 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 3.of.the.License,.or.;;.(at.your
531c0 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 .option).any.later.version...;;.
531e0 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 This.program.is.distributed.in.t
53200 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a he.hope.that.it.will.be.useful,.
53220 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 ;;.but.WITHOUT.ANY.WARRANTY;.wit
53240 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f hout.even.the.implied.warranty.o
53260 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 f.;;.MERCHANTABILITY.or.FITNESS.
53280 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 FOR.A.PARTICULAR.PURPOSE...See.t
532a0 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 he.;;.GNU.General.Public.License
532c0 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c .for.more.details...;;.You.shoul
532e0 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e d.have.received.a.copy.of.the.GN
53300 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e U.General.Public.License.;;.alon
53320 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 g.with.this.program...If.not,.se
53340 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f e.<https://www.gnu.org/licenses/
53360 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 50 72 6f 76 69 64 65 73 >...;;;.Commentary:..;;.Provides
53380 20 61 20 77 72 61 70 70 65 72 20 66 6f 72 20 61 75 64 69 6f 74 6f 6f 6c 73 20 74 72 61 63 6b 74 .a.wrapper.for.audiotools.trackt
533a0 61 67 20 65 78 65 63 75 74 61 62 6c 65 0a 3b 3b 20 68 74 74 70 3a 2f 2f 61 75 64 69 6f 74 6f 6f ag.executable.;;.http://audiotoo
533c0 6c 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f 74 72 61 63 6b 74 61 67 2e 68 74 6d 6c ls.sourceforge.net/tracktag.html
533e0 0a 3b 3b 20 47 69 76 65 6e 20 61 6e 20 45 4d 4d 53 20 54 52 41 43 4b 20 73 74 72 75 63 74 75 72 .;;.Given.an.EMMS.TRACK.structur
53400 65 2c 20 69 74 20 77 69 6c 6c 20 6d 61 70 20 74 68 65 20 65 6d 6d 73 2d 69 6e 66 6f 20 66 69 65 e,.it.will.map.the.emms-info.fie
53420 6c 64 73 20 6f 6e 74 6f 0a 3b 3b 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 74 72 61 63 6b 74 lds.onto.;;.arguments.for.trackt
53440 61 67 2e 20 54 68 65 6e 20 69 74 20 63 61 6c 6c 73 20 74 68 65 20 74 72 61 63 6b 74 61 67 20 70 ag..Then.it.calls.the.tracktag.p
53460 72 6f 63 65 73 73 20 74 6f 20 77 72 69 74 65 20 74 68 65 0a 3b 3b 20 69 6e 66 6f 20 61 73 20 6d rocess.to.write.the.;;.info.as.m
53480 65 74 61 64 61 74 61 20 74 61 67 73 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 27 73 20 61 73 73 6f etadata.tags.on.the.track's.asso
534a0 63 69 61 74 65 64 20 66 69 6c 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 ciated.file...;;;.Code:..(requir
534c0 65 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b e.'emms)..(defvar.emms-tag-track
534e0 74 61 67 2d 2d 69 6e 66 6f 2d 66 69 65 6c 64 73 0a 20 20 27 28 28 69 6e 66 6f 2d 61 72 74 69 73 tag--info-fields...'((info-artis
53500 74 20 2e 20 61 72 74 69 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 2e t...artist).....(info-composer..
53520 20 63 6f 6d 70 6f 73 65 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 2e .composer).....(info-performer..
53540 20 70 65 72 66 6f 72 6d 65 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 69 74 6c 65 20 2e 20 6e 61 .performer).....(info-title...na
53560 6d 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 2e 20 61 6c 62 75 6d 29 0a 20 20 20 me).....(info-album...album)....
53580 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 20 2e 20 6e 75 6d 62 65 72 29 0a 20 20 20 .(info-tracknumber...number)....
535a0 20 28 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 20 2e 20 61 6c 62 75 6d 2d 6e 75 6d 62 65 72 .(info-discnumber...album-number
535c0 29 0a 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 2e 20 79 65 61 72 29 0a 20 20 20 20 28 69 6e ).....(info-year...year).....(in
535e0 66 6f 2d 64 61 74 65 20 2e 20 64 61 74 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d 6e 6f 74 65 20 2e fo-date...date).....(info-note..
53600 20 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 69 .comment))..."An.alist.mapping.i
53620 6e 66 6f 2d 2a 20 66 69 65 6c 64 73 20 74 6f 20 74 72 61 63 6b 74 61 67 20 66 69 65 6c 64 73 2e nfo-*.fields.to.tracktag.fields.
53640 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2d 6c 6f ")..(defvar.emms-tag-tracktag-lo
53660 67 2d 62 75 66 66 65 72 20 22 2a 45 4d 4d 53 2d 4c 4f 47 2a 22 0a 20 20 22 4e 61 6d 65 20 6f 66 g-buffer."*EMMS-LOG*"..."Name.of
53680 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 27 73 20 6c 6f 67 20 62 75 66 66 65 72 2e .emms-tag-tracktag's.log.buffer.
536a0 0a 44 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 20 61 73 20 65 .Defaults.to.the.same.value.as.e
536c0 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 75 66 66 65 72 22 29 0a 0a 28 64 65 mms-tag-editor-log-buffer")..(de
536e0 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2d 2d 6d 61 70 2d 74 72 61 63 6b fun.emms-tag-tracktag--map-track
53700 2d 69 6e 66 6f 20 28 74 72 61 63 6b 29 0a 20 20 28 73 65 71 2d 66 69 6c 74 65 72 20 28 6c 61 6d -info.(track)...(seq-filter.(lam
53720 62 64 61 20 28 63 65 6c 6c 29 20 28 63 64 72 20 63 65 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 bda.(cell).(cdr.cell))..........
53740 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 0a 20 20 20 20 .....(mapcar.(lambda.(pair).....
53760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 64 72 20 70 ....................(cons.(cdr.p
53780 61 69 72 29 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 28 63 61 72 20 air).(emms-track-get.track.(car.
537a0 70 61 69 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 pair)))).......................e
537c0 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2d 2d 69 6e 66 6f 2d 66 69 65 6c 64 73 29 29 29 mms-tag-tracktag--info-fields)))
537e0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2d 2d 62 75 69 6c ..(defun.emms-tag-tracktag--buil
53800 64 2d 61 72 67 73 20 28 74 72 61 63 6b 29 0a 20 20 28 66 6c 61 74 74 65 6e 2d 6c 69 73 74 0a 20 d-args.(track)...(flatten-list..
53820 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 ..(append.....(mapcar.(lambda.(p
53840 61 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 61 67 20 28 63 air)...............(let.((tag.(c
53860 61 72 20 70 61 69 72 29 29 20 28 76 61 6c 75 65 20 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 ar.pair)).(value.(cdr.pair)))...
53880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76 61 6c 75 65 0a 20 20 20 20 20 20 ..............(when.value.......
538a0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 77 65 27 76 65 20 64 65 6c 65 74 65 64 20 ............;;.if.we've.deleted.
538c0 61 20 74 61 67 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 65 64 69 74 6f 72 2c 20 72 65 6d 6f 76 a.tag.value.in.the.editor,.remov
538e0 65 20 74 68 65 20 74 61 67 20 66 72 6f 6d 20 66 69 6c 65 20 6d 65 74 61 64 61 74 61 2e 0a 20 20 e.the.tag.from.file.metadata....
53900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 71 75 61 ................(if.(string-equa
53920 6c 20 22 22 20 76 61 6c 75 65 29 20 28 63 6f 6e 63 61 74 20 22 2d 2d 72 65 6d 6f 76 65 2d 22 20 l."".value).(concat."--remove-".
53940 28 66 6f 72 6d 61 74 20 22 25 73 22 20 74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (format."%s".tag))..............
53960 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2d 2d 22 20 28 66 6f 72 6d 61 74 20 22 25 73 22 .......(concat."--".(format."%s"
53980 20 74 61 67 29 20 22 3d 22 20 76 61 6c 75 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .tag)."=".value)))))............
539a0 20 28 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2d 2d 6d 61 70 2d 74 72 61 63 6b 2d 69 .(emms-tag-tracktag--map-track-i
539c0 6e 66 6f 20 74 72 61 63 6b 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 nfo.track)).....(list.(emms-trac
539e0 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 k-name.track)))))..(defun.emms-t
53a00 61 67 2d 74 72 61 63 6b 74 61 67 2d 66 69 6c 65 20 28 74 72 61 63 6b 29 0a 20 20 28 61 70 70 6c ag-tracktag-file.(track)...(appl
53a20 79 20 23 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 0a 20 20 20 22 74 72 61 63 6b 74 61 67 22 20 6e y.#'call-process...."tracktag".n
53a40 69 6c 0a 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 74 61 il....(get-buffer-create.emms-ta
53a60 67 2d 74 72 61 63 6b 74 61 67 2d 6c 6f 67 2d 62 75 66 66 65 72 29 0a 20 20 20 6e 69 6c 0a 20 20 g-tracktag-log-buffer)....nil...
53a80 20 22 2d 56 64 65 62 75 67 22 0a 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 ."-Vdebug"....(emms-tag-tracktag
53aa0 2d 2d 62 75 69 6c 64 2d 61 72 67 73 20 74 72 61 63 6b 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 --build-args.track)))..(provide.
53ac0 27 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 74 61 67 'emms-tag-tracktag).;;;.emms-tag
53ae0 2d 74 72 61 63 6b 74 61 67 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 -tracktag.el.ends.here..........
53b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 00 00 00 00 00 00 00 00 00 emms-24/emms-browser.el.........
53c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
53c80 30 32 34 35 33 30 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 35 36 00 20 30 00 00 00 0245305.00000000000.013656..0...
53ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
53d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
53d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e00 3b 3b 3b 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 20 2d 2d 2d 20 61 20 74 72 61 63 6b 20 ;;;.emms-browser.el.---.a.track.
53e20 62 72 6f 77 73 65 72 20 73 75 70 70 6f 72 74 69 6e 67 20 63 6f 76 65 72 73 20 61 6e 64 20 66 69 browser.supporting.covers.and.fi
53e40 6c 74 65 72 69 6e 67 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b ltering..-*-.lexical-binding:.t;
53e60 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 30 32 35 .-*-..;;.Copyright.(C).2006-2025
53e80 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e ..Free.Software.Foundation,.Inc.
53ea0 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 44 61 6d 69 65 6e 20 45 6c 6d 65 73 20 3c 65 6d 61 63 73 ..;;.Author:.Damien.Elmes.<emacs
53ec0 40 72 65 70 6f 73 65 2e 63 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6d @repose.cx>.;;.Keywords:.emms,.m
53ee0 70 33 2c 20 6d 70 65 67 2c 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 p3,.mpeg,.multimedia..;;.This.fi
53f00 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 le.is.part.of.EMMS...;;.EMMS.is.
53f20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
53f40 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 ute.it.and/or.modify.;;.it.under
53f60 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
53f80 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 blic.License.as.published.by.;;.
53fa0 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 the.Free.Software.Foundation;.ei
53fc0 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.3,.or.(at.your.opti
53fe0 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d on).;;.any.later.version...;;.EM
54000 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 MS.is.distributed.in.the.hope.th
54020 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 at.it.will.be.useful,.;;.but.WIT
54040 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 HOUT.ANY.WARRANTY;.without.even.
54060 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 the.implied.warranty.of.;;.MERCH
54080 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 ANTABILITY.or.FITNESS.FOR.A.PART
540a0 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 ICULAR.PURPOSE...See.the.;;.GNU.
540c0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 General.Public.License.for.more.
540e0 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 details...;;.You.should.have.rec
54100 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 eived.a.copy.of.the.GNU.General.
54120 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d Public.License.;;.along.with.EMM
54140 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 S;.see.the.file.COPYING...If.not
54160 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 ,.write.to.the.;;.Free.Software.
54180 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 Foundation,.Inc.,.51.Franklin.St
541a0 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 reet,.Fifth.Floor,.;;.Boston,.MA
541c0 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 .02110-1301,.USA...;;;.Commentar
541e0 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 62 y:..;;.This.code.allows.you.to.b
54200 72 6f 77 73 65 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 20 61 6e 64 20 61 64 64 rowse.the.metadata.cache.and.add
54220 20 74 72 61 63 6b 73 20 74 6f 0a 3b 3b 20 79 6f 75 72 20 70 6c 61 79 6c 69 73 74 2e 20 54 6f 20 .tracks.to.;;.your.playlist..To.
54240 62 65 20 70 72 6f 70 65 72 6c 79 20 75 73 65 66 75 6c 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 4d be.properly.useful,.you.should.M
54260 2d 78 0a 3b 3b 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 74 6f -x.;;.emms-add-directory-tree.to
54280 20 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 20 79 6f 75 20 6f 77 6e 20 61 74 20 6c 65 61 73 74 20 .all.the.files.you.own.at.least.
542a0 6f 6e 63 65 20 73 6f 0a 3b 3b 20 74 68 61 74 20 74 68 65 20 63 61 63 68 65 20 69 73 20 66 75 6c once.so.;;.that.the.cache.is.ful
542c0 6c 79 20 70 6f 70 75 6c 61 74 65 64 2e 0a 0a 3b 3b 20 55 73 61 67 65 0a 3b 3b 20 2d 2d 2d 2d 2d ly.populated...;;.Usage.;;.-----
542e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
54300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a ------------------------------..
54320 3b 3b 20 54 6f 20 75 73 65 2c 20 72 75 6e 20 28 65 6d 6d 73 2d 61 6c 6c 29 20 61 6e 64 20 74 68 ;;.To.use,.run.(emms-all).and.th
54340 65 6e 20 62 69 6e 64 20 60 65 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 65 27 20 74 6f 20 61 en.bind.`emms-smart-browse'.to.a
54360 20 6b 65 79 2c 0a 3b 3b 20 6c 69 6b 65 3a 0a 0a 3b 3b 20 28 67 6c 6f 62 61 6c 2d 73 65 74 2d 6b .key,.;;.like:..;;.(global-set-k
54380 65 79 20 28 6b 62 64 20 22 3c 66 32 3e 22 29 20 27 65 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 ey.(kbd."<f2>").'emms-smart-brow
543a0 73 65 29 0a 0a 3b 3b 20 54 68 65 20 27 73 6d 61 72 74 20 62 72 6f 77 73 69 6e 67 27 20 63 6f 64 se)..;;.The.'smart.browsing'.cod
543c0 65 20 61 74 74 65 6d 70 74 73 20 74 6f 20 6c 69 6e 6b 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 e.attempts.to.link.the.browser.a
543e0 6e 64 20 70 6c 61 79 6c 69 73 74 0a 3b 3b 20 77 69 6e 64 6f 77 73 20 74 6f 67 65 74 68 65 72 2c nd.playlist.;;.windows.together,
54400 20 73 6f 20 74 68 61 74 20 63 6c 6f 73 69 6e 67 20 6f 6e 65 20 77 69 6c 6c 20 63 6c 6f 73 65 20 .so.that.closing.one.will.close.
54420 62 6f 74 68 2e 20 41 63 74 69 76 61 74 69 6e 67 0a 3b 3b 20 69 74 20 77 69 6c 6c 20 74 6f 67 67 both..Activating.;;.it.will.togg
54440 6c 65 20 62 65 74 77 65 65 6e 20 74 68 72 65 65 20 73 74 61 74 65 73 3a 0a 0a 3b 3b 20 61 29 20 le.between.three.states:..;;.a).
54460 62 6f 74 68 20 77 69 6e 64 6f 77 73 20 64 69 73 70 6c 61 79 65 64 2c 20 77 69 74 68 20 74 68 65 both.windows.displayed,.with.the
54480 20 62 72 6f 77 73 65 72 20 66 6f 63 75 73 65 64 0a 3b 3b 20 62 29 20 66 6f 63 75 73 20 73 77 69 .browser.focused.;;.b).focus.swi
544a0 74 63 68 65 64 20 74 6f 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 77 69 6e 64 6f 77 0a 3b 3b 20 tched.to.the.playlist.window.;;.
544c0 63 29 20 74 68 65 20 65 78 74 72 61 20 77 69 6e 64 6f 77 20 63 6c 6f 73 65 64 2c 20 61 6e 64 20 c).the.extra.window.closed,.and.
544e0 62 6f 74 68 20 62 75 66 66 65 72 73 20 62 75 72 69 65 64 0a 0a 3b 3b 20 49 66 20 79 6f 75 20 6a both.buffers.buried..;;.If.you.j
54500 75 73 74 20 77 61 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 62 72 6f 77 73 65 72 2c 20 ust.want.access.to.the.browser,.
54520 74 72 79 20 4d 2d 78 0a 3b 3b 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 54 59 50 45 2c 20 try.M-x.;;.emms-browse-by-TYPE,.
54540 77 68 65 72 65 20 54 59 50 45 20 69 73 20 6f 6e 65 20 6f 66 20 61 72 74 69 73 74 2c 20 61 6c 62 where.TYPE.is.one.of.artist,.alb
54560 75 6d 2c 20 63 6f 6d 70 6f 73 65 72 2c 0a 3b 3b 20 67 65 6e 72 65 20 6f 72 20 79 65 61 72 2e 20 um,.composer,.;;.genre.or.year..
54580 54 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 These.commands.can.also.be.used.
545a0 77 68 69 6c 65 20 73 6d 61 72 74 20 62 72 6f 77 73 69 6e 67 20 74 6f 0a 3b 3b 20 63 68 61 6e 67 while.smart.browsing.to.;;.chang
545c0 65 20 74 68 65 20 62 72 6f 77 73 69 6e 67 20 63 61 74 65 67 6f 72 79 2e 0a 0a 3b 3b 20 49 66 20 e.the.browsing.category...;;.If.
545e0 79 6f 75 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 61 63 74 69 76 61 74 65 20 74 68 65 20 63 you.don't.want.to.activate.the.c
54600 6f 64 65 20 77 69 74 68 20 28 65 6d 6d 73 2d 64 65 76 65 6c 29 2c 20 79 6f 75 20 63 61 6e 0a 3b ode.with.(emms-devel),.you.can.;
54620 3b 20 61 63 74 69 76 61 74 65 20 69 74 20 6d 61 6e 75 61 6c 6c 79 20 77 69 74 68 3a 0a 0a 3b 3b ;.activate.it.manually.with:..;;
54640 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 0a 3b 3b 20 53 65 61 .(require.'emms-browser)..;;.Sea
54660 72 63 68 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 2e 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d rching.and.filtering..;;.-------
54680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
546a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 ----------------------------.;;.
546c0 53 65 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 73 0a 0a 3b 3b 20 44 69 73 70 6c 61 79 69 6e 67 20 See.Emms-filters..;;.Displaying.
546e0 63 6f 76 65 72 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d covers.;;.----------------------
54700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
54720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 54 68 65 20 62 72 6f 77 73 65 72 20 77 69 -------------..;;.The.browser.wi
54740 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f 20 64 69 73 70 6c 61 79 20 63 6f 76 65 72 20 69 6d 61 67 ll.attempt.to.display.cover.imag
54760 65 73 20 69 66 20 74 68 65 79 27 72 65 0a 3b 3b 20 61 76 61 69 6c 61 62 6c 65 2e 20 42 79 20 64 es.if.they're.;;.available..By.d
54780 65 66 61 75 6c 74 20 69 74 20 6c 6f 6f 6b 73 20 66 6f 72 20 69 6d 61 67 65 73 20 63 6f 76 65 72 efault.it.looks.for.images.cover
547a0 5f 73 6d 61 6c 6c 2e 6a 70 67 2c 0a 3b 3b 20 63 6f 76 65 72 5f 6d 65 64 2e 6a 70 67 2c 20 65 74 _small.jpg,.;;.cover_med.jpg,.et
547c0 63 2e 20 43 75 73 74 6f 6d 69 7a 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 c..Customize.emms-browser-covers
547e0 20 74 6f 20 75 73 65 20 79 6f 75 72 20 6f 77 6e 0a 3b 3b 20 63 6f 76 65 72 73 2e 20 4e 6f 74 65 .to.use.your.own.;;.covers..Note
54800 20 74 68 61 74 20 79 6f 75 27 6c 6c 20 70 72 6f 62 61 62 6c 79 20 77 61 6e 74 20 74 6f 20 72 65 .that.you'll.probably.want.to.re
54820 73 69 7a 65 20 79 6f 75 72 20 65 78 69 73 74 69 6e 67 0a 3b 3b 20 63 6f 76 65 72 73 20 74 6f 20 size.your.existing.;;.covers.to.
54840 70 61 72 74 69 63 75 6c 61 72 20 73 69 7a 65 73 2e 20 53 75 67 67 65 73 74 65 64 20 73 69 7a 65 particular.sizes..Suggested.size
54860 73 20 61 72 65 20 31 30 30 78 31 30 30 20 66 6f 72 20 73 6d 61 6c 6c 2c 0a 3b 3b 20 61 6e 64 20 s.are.100x100.for.small,.;;.and.
54880 32 30 30 78 32 30 30 20 66 6f 72 20 6d 65 64 69 75 6d 2e 0a 0a 3b 3b 20 41 6c 73 6f 20 65 6d 61 200x200.for.medium...;;.Also.ema
548a0 63 73 20 62 79 20 64 65 66 61 75 6c 74 20 77 69 6c 6c 20 6a 75 6d 70 20 61 72 6f 75 6e 64 20 61 cs.by.default.will.jump.around.a
548c0 20 6c 6f 74 20 77 68 65 6e 20 73 63 72 6f 6c 6c 69 6e 67 20 61 0a 3b 3b 20 62 75 66 66 65 72 20 .lot.when.scrolling.a.;;.buffer.
548e0 77 69 74 68 20 69 6d 61 67 65 73 2e 20 53 65 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 with.images..Set.the.following.v
54900 61 72 69 61 62 6c 65 73 20 74 6f 20 70 72 65 76 65 6e 74 20 74 68 61 74 3a 0a 0a 3b 3b 20 20 20 ariables.to.prevent.that:..;;...
54920 73 63 72 6f 6c 6c 2d 75 70 2d 61 67 67 72 65 73 73 69 76 65 6c 79 20 30 2e 30 0a 3b 3b 20 20 20 scroll-up-aggressively.0.0.;;...
54940 73 63 72 6f 6c 6c 2d 64 6f 77 6e 2d 61 67 67 72 65 73 73 69 76 65 6c 79 20 30 2e 30 0a 0a 3b 3b scroll-down-aggressively.0.0..;;
54960 20 54 6f 20 73 68 6f 77 20 61 20 27 6e 6f 20 63 6f 76 65 72 27 20 69 6d 61 67 65 20 66 6f 72 20 .To.show.a.'no.cover'.image.for.
54980 61 6c 62 75 6d 73 20 77 68 69 63 68 20 64 6f 6e 27 74 20 68 61 76 65 20 61 20 63 6f 76 65 72 2c albums.which.don't.have.a.cover,
549a0 20 61 64 64 0a 3b 3b 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 74 6f 20 79 6f .add.;;.the.following.code.to.yo
549c0 75 72 20 2e 65 6d 61 63 73 3a 0a 0a 3b 3b 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 ur..emacs:..;;.(setq.emms-browse
549e0 72 2d 64 65 66 61 75 6c 74 2d 63 6f 76 65 72 73 0a 3b 3b 20 20 20 28 6c 69 73 74 20 22 2f 70 61 r-default-covers.;;...(list."/pa
54a00 74 68 2f 74 6f 2f 63 6f 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 22 20 6e 69 6c 20 6e 69 6c 29 0a th/to/cover_small.jpg".nil.nil).
54a20 0a 3b 3b 20 28 74 68 65 20 6d 65 64 69 75 6d 20 61 6e 64 20 6c 61 72 67 65 20 69 6d 61 67 65 73 .;;.(the.medium.and.large.images
54a40 20 63 61 6e 20 62 65 20 73 65 74 20 74 6f 6f 2c 20 69 66 20 79 6f 75 20 77 61 6e 74 29 0a 0a 3b .can.be.set.too,.if.you.want)..;
54a60 3b 20 59 6f 75 20 63 61 6e 20 64 6f 77 6e 6c 6f 61 64 20 61 6e 20 65 78 61 6d 70 6c 65 20 27 6e ;.You.can.download.an.example.'n
54a80 6f 20 63 6f 76 65 72 27 20 69 6d 61 67 65 20 66 72 6f 6d 3a 0a 3b 3b 20 68 74 74 70 3a 2f 2f 72 o.cover'.image.from:.;;.http://r
54aa0 65 70 6f 73 65 2e 63 78 2f 63 6f 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 0a 0a 3b 3b 20 43 68 61 epose.cx/cover_small.jpg..;;.Cha
54ac0 6e 67 69 6e 67 20 74 72 65 65 20 73 74 72 75 63 74 75 72 65 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d nging.tree.structure.;;.--------
54ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
54b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 ---------------------------..;;.
54b20 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 74 68 65 20 74 72 65 65 20 You.can.change.the.way.the.tree.
54b40 69 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 0a 3b 3b 20 60 65 6d is.displayed.by.modifying.;;.`em
54b60 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 27 2e 20 54 ms-browser-next-mapping-type'..T
54b80 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 64 69 73 70 6c 61 79 73 0a 3b 3b 20 61 72 he.following.code.displays.;;.ar
54ba0 74 69 73 74 2d 3e 74 72 61 63 6b 20 69 6e 73 74 65 61 64 20 6f 66 20 61 72 74 69 73 74 2d 3e 61 tist->track.instead.of.artist->a
54bc0 6c 62 75 6d 2d 3e 74 72 61 63 6b 20 77 68 65 6e 20 79 6f 75 20 73 77 69 74 63 68 20 74 6f 0a 3b lbum->track.when.you.switch.to.;
54be0 3b 20 74 68 65 20 27 73 69 6e 67 6c 65 73 27 20 66 69 6c 74 65 72 2e 0a 0a 3b 3b 20 28 61 64 76 ;.the.'singles'.filter...;;.(adv
54c00 69 63 65 2d 61 64 64 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6d 61 70 70 69 ice-add.'emms-browser-next-mappi
54c20 6e 67 2d 74 79 70 65 20 3a 61 72 6f 75 6e 64 20 23 27 6d 79 2d 65 6d 6d 73 2d 2d 74 79 70 65 73 ng-type.:around.#'my-emms--types
54c40 29 0a 3b 3b 20 28 64 65 66 75 6e 20 6d 79 2d 65 6d 6d 73 2d 2d 74 79 70 65 73 20 28 6f 72 69 67 ).;;.(defun.my-emms--types.(orig
54c60 2d 66 75 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 3b 3b 20 20 20 28 6c 65 74 20 28 28 74 79 70 -fun.&rest.args).;;...(let.((typ
54c80 65 20 28 61 70 70 6c 79 20 6f 72 69 67 2d 66 75 6e 20 61 72 67 73 29 29 29 0a 3b 3b 20 20 20 20 e.(apply.orig-fun.args))).;;....
54ca0 20 28 69 66 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 3b 3b 20 20 20 .(if.(eq.type.'info-album).;;...
54cc0 20 20 20 20 20 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 3b 3b 20 20 20 20 20 20 20 74 79 70 65 ......'info-title).;;.......type
54ce0 29 29 29 0a 0a 3b 3b 20 28 64 65 66 75 6e 20 74 6f 67 67 6c 65 2d 61 6c 62 75 6d 2d 64 69 73 70 )))..;;.(defun.toggle-album-disp
54d00 6c 61 79 20 28 29 0a 3b 3b 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 65 6d 6d 73 2d 66 69 lay.().;;...(if.(string=.emms-fi
54d20 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 22 73 69 6e 67 6c lters-current-filter-name."singl
54d40 65 73 22 29 0a 3b 3b 20 20 20 20 20 20 20 28 61 64 2d 61 63 74 69 76 61 74 65 20 27 65 6d 6d 73 es").;;.......(ad-activate.'emms
54d60 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 29 0a 3b 3b 20 20 -browser-next-mapping-type).;;..
54d80 20 20 20 28 61 64 2d 64 65 61 63 74 69 76 61 74 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ...(ad-deactivate.'emms-browser-
54da0 6e 65 78 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 29 29 29 0a 0a 3b 3b 20 28 61 64 64 2d 68 6f next-mapping-type)))..;;.(add-ho
54dc0 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d ok.'emms-filters-filter-changed-
54de0 68 6f 6f 6b 20 27 74 6f 67 67 6c 65 2d 61 6c 62 75 6d 2d 64 69 73 70 6c 61 79 29 0a 0a 3b 3b 20 hook.'toggle-album-display)..;;.
54e00 43 68 61 6e 67 69 6e 67 20 64 69 73 70 6c 61 79 20 66 6f 72 6d 61 74 0a 3b 3b 20 2d 2d 2d 2d 2d Changing.display.format.;;.-----
54e20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
54e40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a ------------------------------..
54e60 3b 3b 20 46 6f 72 6d 61 74 20 73 74 72 69 6e 67 73 20 67 6f 76 65 72 6e 20 74 68 65 20 77 61 79 ;;.Format.strings.govern.the.way
54e80 20 69 74 65 6d 73 20 61 72 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 62 72 6f 77 .items.are.displayed.in.the.brow
54ea0 73 65 72 0a 3b 3b 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 2e 20 59 6f 75 20 63 61 6e 20 63 75 73 ser.;;.and.playlist..You.can.cus
54ec0 74 6f 6d 69 7a 65 20 74 68 65 73 65 20 69 66 20 79 6f 75 20 77 69 73 68 2e 0a 0a 3b 3b 20 60 65 tomize.these.if.you.wish...;;.`e
54ee0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 27 20 63 6f 6e 74 mms-browser-default-format'.cont
54f00 72 6f 6c 73 20 74 68 65 20 66 6f 72 6d 61 74 20 74 6f 20 75 73 65 20 77 68 65 6e 20 6e 6f 0a 3b rols.the.format.to.use.when.no.;
54f20 3b 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 20 68 61 73 20 62 65 65 6e 20 65 78 70 6c 69 63 69 74 ;.other.format.has.been.explicit
54f40 6c 79 20 64 65 66 69 6e 65 64 2e 20 42 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 74 72 61 ly.defined..By.default,.only.tra
54f60 63 6b 20 61 6e 64 0a 3b 3b 20 61 6c 62 75 6d 73 20 64 65 76 69 61 74 65 20 66 72 6f 6d 20 74 68 ck.and.;;.albums.deviate.from.th
54f80 65 20 64 65 66 61 75 6c 74 2e 0a 0a 3b 3b 20 54 6f 20 63 75 73 74 6f 6d 69 73 65 20 74 68 65 20 e.default...;;.To.customise.the.
54fa0 66 6f 72 6d 61 74 20 6f 66 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 74 79 70 65 2c 20 66 69 6e format.of.a.particular.type,.fin
54fc0 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 0a 3b 3b 20 66 69 65 6c 64 20 79 6f 75 20 77 d.the.name.of.the.;;.field.you.w
54fe0 61 6e 74 20 74 6f 20 75 73 65 20 28 65 67 20 60 69 6e 66 6f 2d 61 72 74 69 73 74 27 2c 20 60 69 ant.to.use.(eg.`info-artist',.`i
55000 6e 66 6f 2d 74 69 74 6c 65 27 2c 20 65 74 63 29 2c 20 61 6e 64 0a 3b 3b 20 69 6e 73 65 72 74 20 nfo-title',.etc),.and.;;.insert.
55020 74 68 61 74 20 69 6e 74 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 3c 74 79 70 65 3e 2d 66 6f that.into.emms-browser-<type>-fo
55040 72 6d 61 74 20 6f 72 0a 3b 3b 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 rmat.or.;;.emms-browser-playlist
55060 2d 3c 74 79 70 65 3e 2d 66 6f 72 6d 61 74 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 -<type>-format..For.example,.if.
55080 79 6f 75 20 77 61 6e 74 65 64 20 74 6f 0a 3b 3b 20 72 65 6d 6f 76 65 20 74 72 61 63 6b 20 6e 75 you.wanted.to.;;.remove.track.nu
550a0 6d 62 65 72 73 20 66 72 6f 6d 20 74 72 61 63 6b 73 20 69 6e 20 62 6f 74 68 20 74 68 65 20 62 72 mbers.from.tracks.in.both.the.br
550c0 6f 77 73 65 72 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 2c 0a 3b 3b 20 79 6f 75 20 63 6f 75 6c 64 owser.and.playlist,.;;.you.could
550e0 20 64 6f 3a 0a 0a 3b 3b 20 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e .do:..;;.(defvar.emms-browser-in
55100 66 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 20 22 25 69 25 6e 22 29 0a 3b 3b 20 28 64 65 66 76 fo-title-format."%i%n").;;.(defv
55120 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 66 6f 2d 74 69 ar.emms-browser-playlist-info-ti
55140 74 6c 65 2d 66 6f 72 6d 61 74 0a 3b 3b 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e 66 tle-format.;;...emms-browser-inf
55160 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 29 0a 0a 3b 3b 20 54 68 65 20 66 6f 72 6d 61 74 20 73 o-title-format)..;;.The.format.s
55180 70 65 63 69 66 69 65 72 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 63 6c 75 64 65 3a 0a 0a 3b 3b pecifiers.available.include:..;;
551a0 20 25 69 20 20 20 20 69 6e 64 65 6e 74 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 63 75 .%i....indent.relative.to.the.cu
551c0 72 72 65 6e 74 20 6c 65 76 65 6c 0a 3b 3b 20 25 6e 20 20 20 20 74 68 65 20 76 61 6c 75 65 20 6f rrent.level.;;.%n....the.value.o
551e0 66 20 74 68 65 20 69 74 65 6d 20 2d 20 65 67 20 2d 69 6e 66 6f 2d 61 72 74 69 73 74 20 6d 69 67 f.the.item.-.eg.-info-artist.mig
55200 68 74 20 62 65 20 22 70 69 6e 6b 20 66 6c 6f 79 64 22 0a 3b 3b 20 25 79 20 20 20 20 74 68 65 20 ht.be."pink.floyd".;;.%y....the.
55220 61 6c 62 75 6d 20 79 65 61 72 0a 3b 3b 20 25 41 20 20 20 20 74 68 65 20 61 6c 62 75 6d 20 6e 61 album.year.;;.%A....the.album.na
55240 6d 65 0a 3b 3b 20 25 61 20 20 20 20 74 68 65 20 61 72 74 69 73 74 20 6e 61 6d 65 20 6f 66 20 74 me.;;.%a....the.artist.name.of.t
55260 68 65 20 74 72 61 63 6b 0a 3b 3b 20 25 6f 20 20 20 20 74 68 65 20 61 6c 62 75 6d 20 61 72 74 69 he.track.;;.%o....the.album.arti
55280 73 74 0a 3b 3b 20 25 43 20 20 20 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 6e 61 6d 65 20 6f 66 st.;;.%C....the.composer.name.of
552a0 20 74 68 65 20 74 72 61 63 6b 0a 3b 3b 20 25 70 20 20 20 20 74 68 65 20 70 65 72 66 6f 72 6d 65 .the.track.;;.%p....the.performe
552c0 72 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 3b 3b 20 25 67 20 20 20 20 74 68 65 r.name.of.the.track.;;.%g....the
552e0 20 67 65 6e 72 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 2e 0a 3b 3b 20 25 74 20 20 20 20 74 68 .genre.of.the.track..;;.%t....th
55300 65 20 74 69 74 6c 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 3b 3b 20 25 54 20 20 20 20 74 68 e.title.of.the.track.;;.%T....th
55320 65 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0a 3b 3b 20 25 63 53 20 20 20 61 20 73 6d 61 6c 6c 20 e.track.number.;;.%cS...a.small.
55340 61 6c 62 75 6d 20 63 6f 76 65 72 0a 3b 3b 20 25 63 4d 20 20 20 61 20 6d 65 64 69 75 6d 20 61 6c album.cover.;;.%cM...a.medium.al
55360 62 75 6d 20 63 6f 76 65 72 0a 3b 3b 20 25 63 4c 20 20 20 61 20 62 69 67 20 61 6c 62 75 6d 20 63 bum.cover.;;.%cL...a.big.album.c
55380 6f 76 65 72 0a 0a 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 79 6f 75 20 75 73 65 20 74 72 over..;;.Note.that.if.you.use.tr
553a0 61 63 6b 2d 72 65 6c 61 74 65 64 20 69 74 65 6d 73 20 6c 69 6b 65 20 25 74 2c 20 69 74 20 77 69 ack-related.items.like.%t,.it.wi
553c0 6c 6c 20 74 61 6b 65 20 74 68 65 0a 3b 3b 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 66 69 72 ll.take.the.;;.data.from.the.fir
553e0 73 74 20 74 72 61 63 6b 2e 0a 0a 3b 3b 20 43 68 61 6e 67 69 6e 67 20 64 69 73 70 6c 61 79 20 66 st.track...;;.Changing.display.f
55400 61 63 65 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d aces.;;.------------------------
55420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
55440 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 54 68 65 20 66 61 63 65 73 20 75 73 65 64 20 74 -----------..;;.The.faces.used.t
55460 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 76 61 72 69 6f 75 73 20 66 69 65 6c 64 73 20 61 72 65 o.display.the.various.fields.are
55480 20 61 6c 73 6f 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 2e 0a 3b 3b 20 54 68 65 79 20 61 72 65 20 .also.customizable..;;.They.are.
554a0 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 3c 74 79 70 65 in.the.format.emms-browser-<type
554c0 3e 2d 66 61 63 65 2c 20 77 68 65 72 65 20 74 79 70 65 20 69 73 20 6f 6e 65 0a 3b 3b 20 6f 66 20 >-face,.where.type.is.one.;;.of.
554e0 22 79 65 61 72 2f 67 65 6e 72 65 22 2c 20 22 61 72 74 69 73 74 22 2c 20 22 63 6f 6d 70 6f 73 65 "year/genre",."artist",."compose
55500 72 22 2c 20 22 70 65 72 66 6f 72 6d 65 72 22 2c 20 22 61 6c 62 75 6d 22 20 6f 72 0a 3b 3b 20 22 r",."performer",."album".or.;;."
55520 74 72 61 63 6b 22 2e 20 4e 6f 74 65 20 74 68 61 74 20 66 61 63 65 73 20 6c 61 63 6b 20 74 68 65 track"..Note.that.faces.lack.the
55540 20 69 6e 69 74 69 61 6c 20 22 69 6e 66 6f 2d 22 20 70 61 72 74 2e 20 46 6f 72 20 65 78 61 6d 70 .initial."info-".part..For.examp
55560 6c 65 2c 0a 3b 3b 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 61 72 74 69 73 74 20 66 61 63 65 le,.;;.to.change.the.artist.face
55580 2c 20 74 79 70 65 0a 3b 3b 20 4d 2d 78 20 63 75 73 74 6f 6d 69 7a 65 2d 66 61 63 65 20 65 6d 6d ,.type.;;.M-x.customize-face.emm
555a0 73 2d 62 72 6f 77 73 65 72 2d 61 72 74 69 73 74 2d 66 61 63 65 2e 0a 0a 3b 3b 20 44 65 6c 65 74 s-browser-artist-face...;;.Delet
555c0 69 6e 67 20 66 69 6c 65 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ing.files.;;.-------------------
555e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
55600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 59 6f 75 20 63 61 6e 20 75 73 65 ----------------..;;.You.can.use
55620 20 74 68 65 20 62 72 6f 77 73 65 72 20 74 6f 20 64 65 6c 65 74 65 20 74 72 61 63 6b 73 20 66 72 .the.browser.to.delete.tracks.fr
55640 6f 6d 20 79 6f 75 72 20 68 61 72 64 20 64 69 73 6b 2e 0a 3b 3b 20 42 65 63 61 75 73 65 20 74 68 om.your.hard.disk..;;.Because.th
55660 69 73 20 69 73 20 64 61 6e 67 65 72 6f 75 73 2c 20 69 74 20 69 73 20 64 69 73 61 62 6c 65 64 20 is.is.dangerous,.it.is.disabled.
55680 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 3b 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f by.default...;;.The.following.co
556a0 64 65 20 77 69 6c 6c 20 64 65 6c 65 74 65 20 63 6f 76 65 72 73 20 61 74 20 74 68 65 20 73 61 6d de.will.delete.covers.at.the.sam
556c0 65 20 74 69 6d 65 2c 20 61 6e 64 20 72 65 6d 6f 76 65 0a 3b 3b 20 70 61 72 65 6e 74 20 64 69 72 e.time,.and.remove.;;.parent.dir
556e0 65 63 74 6f 72 69 65 73 20 69 66 20 74 68 65 79 27 72 65 20 6e 6f 77 20 65 6d 70 74 79 2e 0a 0a ectories.if.they're.now.empty...
55700 3b 3b 20 28 64 65 66 75 6e 20 64 65 2d 6b 69 6c 6c 2d 63 6f 76 65 72 73 2d 61 6e 64 2d 70 61 72 ;;.(defun.de-kill-covers-and-par
55720 65 6e 74 73 20 28 64 69 72 20 74 72 61 63 6b 73 29 0a 3b 3b 20 20 20 28 77 68 65 6e 20 28 3e 20 ents.(dir.tracks).;;...(when.(>.
55740 28 6c 65 6e 67 74 68 20 74 72 61 63 6b 73 29 20 31 29 0a 3b 3b 20 20 20 20 20 3b 3b 20 69 66 20 (length.tracks).1).;;.....;;.if.
55760 77 65 27 72 65 20 6e 6f 74 20 64 65 6c 65 74 69 6e 67 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c we're.not.deleting.an.individual
55780 20 66 69 6c 65 2c 20 64 65 6c 65 74 65 20 63 6f 76 65 72 73 20 74 6f 6f 0a 3b 3b 20 20 20 20 20 .file,.delete.covers.too.;;.....
557a0 28 64 6f 6c 69 73 74 20 28 63 6f 76 65 72 20 27 28 22 63 6f 76 65 72 2e 6a 70 67 22 0a 3b 3b 20 (dolist.(cover.'("cover.jpg".;;.
557c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6f 76 65 72 5f 6d 65 64 2e ....................."cover_med.
557e0 6a 70 67 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6f jpg".;;......................"co
55800 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ver_small.jpg".;;...............
55820 20 20 20 20 20 20 20 22 66 6f 6c 64 65 72 2e 6a 70 67 22 29 29 0a 3b 3b 20 20 20 20 20 20 20 28 ......."folder.jpg")).;;.......(
55840 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 condition-case.nil.;;...........
55860 28 64 65 6c 65 74 65 2d 66 69 6c 65 20 28 63 6f 6e 63 61 74 20 64 69 72 20 63 6f 76 65 72 29 29 (delete-file.(concat.dir.cover))
55880 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 0a 3b 3b 20 20 20 20 .;;.........(error.nil))).;;....
558a0 20 3b 3b 20 74 72 79 20 61 6e 64 20 64 65 6c 65 74 65 20 65 6d 70 74 79 20 70 61 72 65 6e 74 73 .;;.try.and.delete.empty.parents
558c0 20 2d 20 77 65 20 61 63 74 75 61 6c 6c 79 20 64 6f 20 74 68 65 20 77 6f 72 6b 20 6f 66 20 74 68 .-.we.actually.do.the.work.of.th
558e0 65 0a 3b 3b 20 20 20 20 20 3b 3b 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 68 65 72 e.;;.....;;.calling.function.her
55900 65 2c 20 74 6f 6f 0a 3b 3b 20 20 20 20 20 28 6c 65 74 20 28 66 61 69 6c 65 64 29 0a 3b 3b 20 20 e,.too.;;.....(let.(failed).;;..
55920 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 64 .....(while.(and.(not.(string=.d
55940 69 72 20 22 2f 22 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e ir."/")).;;...................(n
55960 6f 74 20 66 61 69 6c 65 64 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f ot.failed)).;;.........(conditio
55980 6e 2d 63 61 73 65 20 6e 69 6c 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 n-case.nil.;;.............(delet
559a0 65 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 28 65 e-directory.dir).;;...........(e
559c0 72 72 6f 72 20 28 73 65 74 71 20 66 61 69 6c 65 64 20 74 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 rror.(setq.failed.t))).;;.......
559e0 20 20 28 73 65 74 71 20 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 ..(setq.dir.(file-name-directory
55a00 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 29 29 29 29 29 29 29 .(directory-file-name.dir)))))))
55a20 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 .;;.(add-hook.'emms-browser-dele
55a40 74 65 2d 66 69 6c 65 73 2d 68 6f 6f 6b 20 27 64 65 2d 6b 69 6c 6c 2d 63 6f 76 65 72 73 2d 61 6e te-files-hook.'de-kill-covers-an
55a60 64 2d 70 61 72 65 6e 74 73 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 d-parents)..;;;.Code:..(require.
55a80 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 61 63 68 65 29 0a 28 72 65 'emms).(require.'emms-cache).(re
55aa0 71 75 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d quire.'emms-volume).(require.'em
55ac0 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 ms-source-file).(require.'emms-p
55ae0 6c 61 79 6c 69 73 74 2d 73 6f 72 74 29 0a 28 72 65 71 75 69 72 65 20 27 73 6f 72 74 29 0a 28 72 laylist-sort).(require.'sort).(r
55b00 65 71 75 69 72 65 20 27 73 65 71 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 66 69 6c 74 equire.'seq).(require.'emms-filt
55b20 65 72 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 61 63 68 65 29 0a 0a 0a 3b 3b 20 ers).(require.'emms-cache)...;;.
55b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
55b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 56 61 72 69 61 62 6c 65 73 20 ------------------.;;.Variables.
55b80 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d and.configuration.;;.-----------
55ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
55bc0 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f -------..(defvar.emms-browser-mo
55be0 64 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 45 6d 6d 73 20 62 72 6f 77 73 65 72 20 6d 6f 64 65 de-hook.nil..."Emms.browser.mode
55c00 20 68 6f 6f 6b 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 .hook.")..(defgroup.emms-browser
55c20 20 6e 69 6c 0a 20 20 22 2a 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 .nil..."*The.Emacs.Multimedia.Sy
55c40 73 74 65 6d 20 62 72 6f 77 73 65 72 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 62 72 stem.browser"...:prefix."emms-br
55c60 6f 77 73 65 72 2d 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 75 6c 74 69 6d 65 64 69 61 0a 20 20 3a owser-"...:group.'multimedia...:
55c80 67 72 6f 75 70 20 27 61 70 70 6c 69 63 61 74 69 6f 6e 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d group.'applications)..(defcustom
55ca0 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 62 72 6f 77 73 65 2d 74 79 70 .emms-browser-default-browse-typ
55cc0 65 0a 20 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 e...'info-artist..."The.default.
55ce0 62 72 6f 77 73 69 6e 67 20 6d 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f browsing.mode."...:type.'functio
55d00 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d n)..(defcustom.emms-browser-get-
55d20 74 72 61 63 6b 2d 66 69 65 6c 64 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 65 6d 6d 73 2d 62 72 track-field-function...#'emms-br
55d40 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 61 6c 62 75 6d 61 72 74 69 73 owser-get-track-field-albumartis
55d60 74 0a 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 67 65 74 20 61 6e 20 65 6c 65 6d 65 6e t..."A.function.to.get.an.elemen
55d80 74 20 66 72 6f 6d 20 61 20 74 72 61 63 6b 2e 0a 43 68 61 6e 67 65 20 74 68 69 73 20 74 6f 20 63 t.from.a.track..Change.this.to.c
55da0 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 77 61 79 20 64 61 74 61 20 69 73 20 6f 72 67 61 6e 69 7a ustomize.the.way.data.is.organiz
55dc0 65 64 20 69 6e 20 74 68 65 0a 62 72 6f 77 73 65 72 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a ed.in.the.browser..For.example,.
55de0 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 75 73 `emms-browser-get-track-field-us
55e00 65 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 27 20 75 73 65 73 20 74 68 65 0a 64 69 72 65 63 e-directory-name'.uses.the.direc
55e20 74 6f 72 79 20 6e 61 6d 65 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 61 72 74 69 73 tory.name.to.determine.the.artis
55e40 74 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 0a 73 6f 75 6e 64 74 72 61 63 6b 73 2c 20 t..This.means.that.soundtracks,.
55e60 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 20 61 6e 64 20 73 6f 20 6f 6e 20 64 6f 6e 27 74 20 70 6f 70 compilations.and.so.on.don't.pop
55e80 75 6c 61 74 65 20 74 68 65 20 61 72 74 69 73 74 0a 76 69 65 77 20 77 69 74 68 20 6c 6f 74 73 20 ulate.the.artist.view.with.lots.
55ea0 6f 66 20 31 2d 74 72 61 63 6b 20 65 6c 65 6d 65 6e 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 of.1-track.elements."...:type.'(
55ec0 63 68 6f 69 63 65 20 28 66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 53 6f 72 74 20 62 79 20 61 choice.(function.:tag."Sort.by.a
55ee0 6c 62 75 6d 2d 61 72 74 69 73 74 22 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 lbum-artist".emms-browser-get-tr
55f00 61 63 6b 2d 66 69 65 6c 64 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 ack-field-albumartist)..........
55f20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 53 69 6d 70 6c 65 22 20 ........(function.:tag."Simple".
55f40 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 73 69 6d emms-browser-get-track-field-sim
55f60 70 6c 65 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ple)))..(defcustom.emms-browser-
55f80 63 6f 76 65 72 73 0a 20 20 27 28 22 63 6f 76 65 72 5f 73 6d 61 6c 6c 22 20 22 63 6f 76 65 72 5f covers...'("cover_small"."cover_
55fa0 6d 65 64 22 20 22 63 6f 76 65 72 5f 6c 61 72 67 65 22 29 0a 20 20 22 43 6f 6e 74 72 6f 6c 20 68 med"."cover_large")..."Control.h
55fc0 6f 77 20 63 6f 76 65 72 20 69 6d 61 67 65 73 20 61 72 65 20 66 6f 75 6e 64 2e 0a 43 61 6e 20 62 ow.cover.images.are.found..Can.b
55fe0 65 20 65 69 74 68 65 72 20 61 20 6c 69 73 74 20 6f 66 20 73 6d 61 6c 6c 2c 20 6d 65 64 69 75 6d e.either.a.list.of.small,.medium
56000 20 61 6e 64 20 6c 61 72 67 65 20 69 6d 61 67 65 73 20 28 6c 61 72 67 65 0a 63 75 72 72 65 6e 74 .and.large.images.(large.current
56020 6c 79 20 6e 6f 74 20 75 73 65 64 29 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 74 ly.not.used),.a.function.which.t
56040 61 6b 65 73 20 61 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 6f 6e 65 0a 6f 66 20 74 68 65 20 akes.a.directory.and.one.of.the.
56060 73 79 6d 62 6f 6c 73 20 60 73 6d 61 6c 6c 27 2c 20 60 6d 65 64 69 75 6d 27 20 6f 72 20 60 6c 61 symbols.`small',.`medium'.or.`la
56080 72 67 65 27 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 0a 70 61 74 68 20 74 rge',.and.should.return.a.path.t
560a0 6f 20 74 68 65 20 63 6f 76 65 72 2c 20 6f 72 20 6e 69 6c 20 74 6f 20 74 75 72 6e 20 6f 66 66 20 o.the.cover,.or.nil.to.turn.off.
560c0 63 6f 76 65 72 20 6c 6f 61 64 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 cover.loading."...:type.'(choice
560e0 20 28 6c 69 73 74 20 3a 74 61 67 20 22 43 6f 76 65 72 20 69 6d 61 67 65 20 6e 61 6d 65 73 22 0a .(list.:tag."Cover.image.names".
56100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a .......................(string.:
56120 74 61 67 20 22 53 6d 61 6c 6c 20 63 6f 76 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tag."Small.cover")..............
56140 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 4d 65 64 69 75 6d 20 63 ..........(string.:tag."Medium.c
56160 6f 76 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 over")........................(s
56180 74 72 69 6e 67 20 3a 74 61 67 20 22 4c 61 72 67 65 20 63 6f 76 65 72 22 29 29 0a 20 20 20 20 20 tring.:tag."Large.cover"))......
561a0 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ............function............
561c0 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 20 63 6f 76 65 72 20 6c 6f 61 64 ......(const.:tag."No.cover.load
561e0 69 6e 67 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 ing")))..(defcustom.emms-browser
56200 2d 63 6f 76 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 27 28 22 6a 70 67 -covers-file-extensions...'("jpg
56220 22 20 22 6a 70 65 67 22 20 22 70 6e 67 22 20 22 67 69 66 22 20 22 62 6d 70 22 29 0a 20 20 22 46 "."jpeg"."png"."gif"."bmp")..."F
56240 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 61 63 63 65 70 74 65 64 20 66 6f 72 20 60 65 6d 6d ile.extensions.accepted.for.`emm
56260 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 27 2e 0a 53 68 6f 75 6c 64 20 62 65 20 61 20 6c s-browser-covers'..Should.be.a.l
56280 69 73 74 20 6f 66 20 65 78 74 65 6e 73 69 6f 6e 73 20 61 73 20 73 74 72 69 6e 67 73 2e 20 20 53 ist.of.extensions.as.strings...S
562a0 68 6f 75 6c 64 20 62 65 20 73 65 74 20 62 65 66 6f 72 65 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 72 hould.be.set.before.emms-browser
562c0 20 69 73 20 72 65 71 75 69 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 .is.required."...:type.'(repeat.
562e0 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 45 78 74 65 6e 73 69 6f 6e 22 29 29 29 0a 0a 28 64 65 (string.:tag."Extension")))..(de
56300 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 6f 76 65 72 73 2d 66 69 6c 65 fconst.emms-browser--covers-file
56320 6e 61 6d 65 20 6e 69 6c 0a 20 20 22 2a 4c 69 73 74 20 6f 66 20 70 6f 74 65 6e 74 69 61 6c 20 63 name.nil..."*List.of.potential.c
56340 6f 76 65 72 20 61 72 74 20 6e 61 6d 65 73 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d over.art.names.")..(defcustom.em
56360 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 63 6f 76 65 72 73 20 6e 69 6c 0a 20 20 ms-browser-default-covers.nil...
56380 22 41 20 6c 69 73 74 20 6f 66 20 64 65 66 61 75 6c 74 20 69 6d 61 67 65 73 20 74 6f 20 75 73 65 "A.list.of.default.images.to.use
563a0 20 69 66 20 61 20 63 6f 76 65 72 20 69 73 6e 27 74 20 66 6f 75 6e 64 2e 22 0a 20 20 3a 74 79 70 .if.a.cover.isn't.found."...:typ
563c0 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 20 64 65 66 61 75 e.'(choice.(const.:tag."No.defau
563e0 6c 74 73 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 lts".nil)..................(list
56400 20 28 72 61 64 69 6f 20 3a 74 61 67 20 22 53 6d 61 6c 6c 20 63 6f 76 65 72 22 20 28 66 69 6c 65 .(radio.:tag."Small.cover".(file
56420 20 3a 6d 75 73 74 2d 6d 61 74 63 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:must-match.t).................
56440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 20 64 65 ..............(const.:tag."No.de
56460 66 61 75 6c 74 22 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fault".nil))....................
56480 20 20 20 20 28 72 61 64 69 6f 20 3a 74 61 67 20 22 4d 65 64 69 75 6d 20 63 6f 76 65 72 22 20 28 ....(radio.:tag."Medium.cover".(
564a0 66 69 6c 65 20 3a 6d 75 73 74 2d 6d 61 74 63 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 file.:must-match.t).............
564c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e ..................(const.:tag."N
564e0 6f 20 64 65 66 61 75 6c 74 22 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o.default".nil))................
56500 20 20 20 20 20 20 20 20 28 72 61 64 69 6f 20 3a 74 61 67 20 22 4c 61 72 67 65 20 63 6f 76 65 72 ........(radio.:tag."Large.cover
56520 22 20 28 66 69 6c 65 20 3a 6d 75 73 74 2d 6d 61 74 63 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 ".(file.:must-match.t)..........
56540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 .....................(const.:tag
56560 20 22 4e 6f 20 64 65 66 61 75 6c 74 22 20 6e 69 6c 29 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 ."No.default".nil)))))..(defcust
56580 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 6d 70 61 72 69 73 6f 6e 2d 74 65 73 74 0a om.emms-browser-comparison-test.
565a0 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 64 65 66 69 6e 65 2d 68 61 73 68 2d 74 61 62 6c ..(if.(fboundp.'define-hash-tabl
565c0 65 2d 74 65 73 74 29 0a 20 20 20 20 20 20 27 63 61 73 65 2d 66 6f 6c 64 0a 20 20 20 20 27 65 71 e-test).......'case-fold.....'eq
565e0 75 61 6c 29 0a 20 20 22 41 20 6d 65 74 68 6f 64 20 66 6f 72 20 63 6f 6d 70 61 72 69 6e 67 20 65 ual)..."A.method.for.comparing.e
56600 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 63 61 63 68 65 2e 0a 54 68 65 20 64 65 66 61 75 6c 74 ntries.in.the.cache..The.default
56620 20 69 73 20 74 6f 20 63 6f 6d 70 61 72 65 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 6c .is.to.compare.case-insensitivel
56640 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d y."...:type.'symbol)..(defcustom
56660 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f .emms-browser-track-sort-functio
56680 6e 0a 20 20 23 27 65 6d 6d 73 2d 73 6f 72 74 2d 6e 61 74 75 72 61 6c 2d 6f 72 64 65 72 2d 6c 65 n...#'emms-sort-natural-order-le
566a0 73 73 2d 70 0a 20 20 22 48 6f 77 20 74 6f 20 73 6f 72 74 20 74 72 61 63 6b 73 20 69 6e 20 74 68 ss-p..."How.to.sort.tracks.in.th
566c0 65 20 62 72 6f 77 73 65 72 2e 0a 55 65 73 20 6e 69 6c 20 66 6f 72 20 6e 6f 20 73 6f 72 74 69 6e e.browser..Ues.nil.for.no.sortin
566e0 67 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 g."...:type.'function)..(defcust
56700 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 6c 70 68 61 2d 73 6f 72 74 2d 66 75 6e 63 74 om.emms-browser-alpha-sort-funct
56720 69 6f 6e 0a 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 27 73 74 72 69 6e 67 2d 63 6f 6c ion...(if.(functionp.'string-col
56740 6c 61 74 65 2d 6c 65 73 73 70 29 20 23 27 73 74 72 69 6e 67 2d 63 6f 6c 6c 61 74 65 2d 6c 65 73 late-lessp).#'string-collate-les
56760 73 70 20 23 27 73 74 72 69 6e 67 3c 29 0a 20 20 22 48 6f 77 20 74 6f 20 73 6f 72 74 20 61 72 74 sp.#'string<)..."How.to.sort.art
56780 69 73 74 73 2f 61 6c 62 75 6d 73 2f 65 74 63 2e 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 2e ists/albums/etc..in.the.browser.
567a0 0a 55 73 65 20 6e 69 6c 20 66 6f 72 20 6e 6f 20 73 6f 72 74 69 6e 67 2e 22 0a 20 20 3a 74 79 70 .Use.nil.for.no.sorting."...:typ
567c0 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 e.'function)..(defcustom.emms-br
567e0 6f 77 73 65 72 2d 61 6c 62 75 6d 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 65 6d owser-album-sort-function...#'em
56800 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 2d 79 65 61 72 2d 6f 72 2d 6e 61 6d 65 0a ms-browser-sort-by-year-or-name.
56820 20 20 22 48 6f 77 20 74 6f 20 73 6f 72 74 20 61 72 74 69 73 74 73 2f 61 6c 62 75 6d 73 2f 65 74 .."How.to.sort.artists/albums/et
56840 63 2e 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 2e 0a 55 73 65 20 6e 69 6c 20 66 6f 72 20 6e c..in.the.browser..Use.nil.for.n
56860 6f 20 73 6f 72 74 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a o.sorting."...:type.'function)..
56880 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 64 69 73 (defcustom.emms-browser-show-dis
568a0 70 6c 61 79 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 74 6f 20 72 75 6e 20 77 68 play-hook.nil..."Hooks.to.run.wh
568c0 65 6e 20 73 74 61 72 74 69 6e 67 20 6f 72 20 73 77 69 74 63 68 69 6e 67 20 74 6f 20 61 20 62 72 en.starting.or.switching.to.a.br
568e0 6f 77 73 65 72 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 owser.buffer."...:type.'hook)..(
56900 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 64 65 2d 64 69 73 70 defcustom.emms-browser-hide-disp
56920 6c 61 79 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 74 6f 20 72 75 6e 20 77 68 65 lay-hook.nil..."Hooks.to.run.whe
56940 6e 20 62 75 72 79 69 6e 67 20 6f 72 20 72 65 6d 6f 76 69 6e 67 20 61 20 62 72 6f 77 73 65 72 20 n.burying.or.removing.a.browser.
56960 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 buffer."...:type.'hook)..(defcus
56980 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 73 2d 61 64 64 65 64 2d 68 6f tom.emms-browser-tracks-added-ho
569a0 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 74 6f 20 72 75 6e 20 77 68 65 6e 20 74 72 61 63 ok.nil..."Hooks.to.run.when.trac
569c0 6b 73 20 61 72 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 ks.are.added.to.the.playlist."..
569e0 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 .:type.'hook)..(defcustom.emms-b
56a00 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 rowser-filter-tracks-hook.nil...
56a20 22 47 69 76 65 6e 20 61 20 74 72 61 63 6b 2c 20 72 65 74 75 72 6e 20 74 20 69 66 20 74 68 65 20 "Given.a.track,.return.t.if.the.
56a40 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 3a 74 79 70 track.should.be.ignored."...:typ
56a60 65 20 27 68 6f 6f 6b 29 0a 0a 3b 3b 20 44 65 70 72 65 63 61 74 65 64 2e 20 53 65 65 20 65 6d 6d e.'hook)..;;.Deprecated..See.emm
56a80 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 2e 0a 28 s-filters-filter-changed-hook..(
56aa0 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 63 68 defcustom.emms-browser-filter-ch
56ac0 61 6e 67 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 anged-hook.nil..."Hook.run.after
56ae0 20 74 68 65 20 66 69 6c 74 65 72 20 68 61 73 20 63 68 61 6e 67 65 64 2e 22 0a 20 20 3a 74 79 70 .the.filter.has.changed."...:typ
56b00 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 e.'hook)..(defcustom.emms-browse
56b20 72 2d 64 65 6c 65 74 65 2d 66 69 6c 65 73 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 r-delete-files-hook.nil..."Hook.
56b40 72 75 6e 20 61 66 74 65 72 20 66 69 6c 65 73 20 68 61 76 65 20 62 65 65 6e 20 64 65 6c 65 74 65 run.after.files.have.been.delete
56b60 64 2e 0a 54 68 69 73 20 68 6f 6f 6b 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 6c 65 61 d..This.hook.can.be.used.to.clea
56b80 6e 20 75 70 20 65 78 74 72 61 20 66 69 6c 65 73 2c 20 73 75 63 68 20 61 73 20 61 6c 62 75 6d 20 n.up.extra.files,.such.as.album.
56ba0 63 6f 76 65 72 73 2e 0a 43 61 6c 6c 65 64 20 6f 6e 63 65 20 66 6f 72 20 65 61 63 68 20 64 69 72 covers..Called.once.for.each.dir
56bc0 65 63 74 6f 72 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 76 61 72 ectory."...:type.'hook)..(defvar
56be0 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 .emms-browser-buffer.nil..."The.
56c00 63 75 72 72 65 6e 74 20 62 72 6f 77 73 65 72 20 62 75 66 66 65 72 2c 20 69 66 20 61 6e 79 2e 22 current.browser.buffer,.if.any."
56c20 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 65 72 2d 6e )..(defvar.emms-browser-buffer-n
56c40 61 6d 65 20 22 2a 45 4d 4d 53 20 42 72 6f 77 73 65 72 2a 22 0a 20 20 22 54 68 65 20 64 65 66 61 ame."*EMMS.Browser*"..."The.defa
56c60 75 6c 74 20 62 75 66 66 65 72 20 6e 61 6d 65 2e 22 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d ult.buffer.name.").(defvar.emms-
56c80 62 72 6f 77 73 65 72 2d 74 6f 70 2d 6c 65 76 65 6c 2d 68 61 73 68 20 6e 69 6c 0a 20 20 22 54 68 browser-top-level-hash.nil..."Th
56ca0 65 20 63 75 72 72 65 6e 74 20 6d 61 70 70 69 6e 67 20 64 62 2c 20 65 67 2e 20 61 72 74 69 73 74 e.current.mapping.db,.eg..artist
56cc0 20 2d 3e 20 74 72 61 63 6b 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 .->.track.").(make-variable-buff
56ce0 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 70 2d 6c 65 76 65 6c er-local.'emms-browser-top-level
56d00 2d 68 61 73 68 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 70 -hash)..(defvar.emms-browser-top
56d20 2d 6c 65 76 65 6c 2d 74 79 70 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 75 72 72 65 6e 74 20 6d -level-type.nil..."The.current.m
56d40 61 70 70 69 6e 67 20 74 79 70 65 2c 20 65 67 2e 20 5c 5c 3d 27 69 6e 66 6f 2d 61 72 74 69 73 74 apping.type,.eg..\\='info-artist
56d60 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 .").(make-variable-buffer-local.
56d80 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 70 2d 6c 65 76 65 6c 2d 74 79 70 65 29 0a 0a 28 'emms-browser-top-level-type)..(
56da0 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 75 72 72 65 6e 74 2d 69 6e 64 65 defvar.emms-browser-current-inde
56dc0 6e 74 20 6e 69 6c 0a 20 20 22 55 73 65 64 20 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 63 nt.nil..."Used.to.override.the.c
56de0 75 72 72 65 6e 74 20 69 6e 64 65 6e 74 2c 20 66 6f 72 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2c urrent.indent,.for.the.playlist,
56e00 20 65 74 63 2e 22 29 0a 0a 3b 3b 20 53 65 74 20 74 68 65 20 68 6f 6f 6b 73 20 66 6f 72 20 45 6d .etc.")..;;.Set.the.hooks.for.Em
56e20 6d 73 2d 66 69 6c 74 65 72 73 20 74 6f 20 73 61 79 20 77 68 65 6e 20 74 6f 20 72 65 2d 72 65 6e ms-filters.to.say.when.to.re-ren
56e40 64 65 72 2e 0a 3b 3b 20 74 68 69 73 20 69 73 20 6a 75 73 74 20 61 20 76 61 72 69 61 62 6c 65 20 der..;;.this.is.just.a.variable.
56e60 74 6f 20 6d 69 72 72 6f 72 20 74 68 65 20 62 72 6f 77 73 65 72 27 73 20 68 6f 6f 6b 2e 0a 3b 3b to.mirror.the.browser's.hook..;;
56e80 20 49 74 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 6a 75 73 74 20 62 65 20 73 65 74 20 .It.should.probably.just.be.set.
56ea0 64 69 72 65 63 74 6c 79 2c 20 61 6e 64 20 74 68 65 20 62 72 6f 77 73 65 72 27 73 0a 3b 3b 20 68 directly,.and.the.browser's.;;.h
56ec0 6f 6f 6b 20 62 65 20 64 65 70 72 65 63 61 74 65 64 2e 20 49 74 20 77 69 6c 6c 20 68 61 76 65 20 ook.be.deprecated..It.will.have.
56ee0 74 6f 20 62 65 20 73 65 74 20 69 66 20 61 6e 79 6f 6e 65 20 63 68 61 6e 67 65 73 20 69 74 2e 2e to.be.set.if.anyone.changes.it..
56f00 2e 0a 3b 3b 20 50 6f 74 65 6e 74 69 61 6c 20 70 72 6f 62 6c 65 6d 20 69 66 20 73 6f 6d 65 6f 6e ..;;.Potential.problem.if.someon
56f20 65 20 75 73 20 75 73 69 6e 67 20 74 68 69 73 20 68 6f 6f 6b 2e 0a 28 61 64 64 2d 68 6f 6f 6b 20 e.us.using.this.hook..(add-hook.
56f40 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 2d 68 6f 6f 6b 'emms-browser-filter-tracks-hook
56f60 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 68 6f .'emms-filters-browser-filter-ho
56f80 6f 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c ok-function).(add-hook.'emms-fil
56fa0 74 65 72 73 2d 6d 61 6b 65 2d 61 6e 64 2d 72 65 6e 64 65 72 2d 68 61 73 68 2d 68 6f 6f 6b 20 27 ters-make-and-render-hash-hook.'
56fc0 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 29 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d emms-browse-by).(add-hook.'emms-
56fe0 66 69 6c 74 65 72 73 2d 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 27 65 6d 6d 73 filters-expand-render-hook.'emms
57000 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 -browser-expand-all)...(defvar.e
57020 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 2d 64 65 66 61 75 6c mms-browser-tree-node-map-defaul
57040 74 0a 20 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 69 6e 66 6f 2d 61 t...'((info-albumartist...info-a
57060 72 74 69 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 2e 20 69 rtist).....(info-artist........i
57080 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 20 20 nfo-album).....(info-composer...
570a0 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 69 6e 66 6f 2d 70 65 72 66 6f 72 6d ...info-album).....(info-perform
570c0 65 72 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 er.....info-album).....(info-alb
570e0 75 6d 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 28 69 6e 66 6f um.........info-title).....(info
57100 2d 67 65 6e 72 65 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 -genre.........info-artist).....
57120 28 69 6e 66 6f 2d 79 65 61 72 20 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 (info-year..........info-artist)
57140 29 0a 20 20 22 48 6f 77 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 62 72 6f 77 73 65 20 74 72 65 )..."How.to.build.the.browse.tre
57160 65 2c 20 62 79 20 61 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 61 72 74 69 73 74 2c 20 61 6c 62 75 e,.by.album.artist,.artist,.albu
57180 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d m.")..(defvar.emms-browser-tree-
571a0 6e 6f 64 65 2d 6d 61 70 2d 41 41 67 41 74 0a 20 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 node-map-AAgAt...'((info-albumar
571c0 74 69 73 74 20 2e 20 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 tist...info-genre).....(info-art
571e0 69 73 74 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 28 69 6e 66 6f ist........info-title).....(info
57200 2d 63 6f 6d 70 6f 73 65 72 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 -composer......info-album).....(
57220 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 info-performer.....info-album)..
57240 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 ...(info-album.........info-albu
57260 6d 61 72 74 69 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 20 20 20 20 20 20 2e martist).....(info-genre........
57280 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 20 20 20 .info-artist).....(info-year....
572a0 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 20 20 22 48 6f 77 20 74 6f 20 62 75 69 ......info-album))..."How.to.bui
572c0 6c 64 20 74 68 65 20 62 72 6f 77 73 65 20 74 72 65 65 2c 20 62 79 20 61 6c 62 75 6d 20 61 72 74 ld.the.browse.tree,.by.album.art
572e0 69 73 74 2c 20 67 65 6e 72 65 2c 20 61 72 74 69 73 74 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d ist,.genre,.artist")..(defvar.em
57300 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 2d 41 41 41 67 74 0a 20 ms-browser-tree-node-map-AAAgt..
57320 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 69 6e 66 6f 2d 61 72 74 69 .'((info-albumartist...info-arti
57340 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 2e 20 69 6e 66 6f st).....(info-artist........info
57360 2d 67 65 6e 72 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 20 20 20 2e 20 -genre).....(info-composer......
57380 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 info-album).....(info-performer.
573a0 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 ....info-album).....(info-album.
573c0 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 28 69 ........info-albumartist).....(i
573e0 6e 66 6f 2d 67 65 6e 72 65 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 nfo-genre.........info-title)...
57400 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d ..(info-year..........info-album
57420 29 29 0a 20 20 22 48 6f 77 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 62 72 6f 77 73 65 20 74 72 ))..."How.to.build.the.browse.tr
57440 65 65 2c 20 62 79 20 61 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 61 72 74 69 73 74 2c 20 67 65 6e ee,.by.album.artist,.artist,.gen
57460 72 65 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d re")..(defvar.emms-browser-tree-
57480 6e 6f 64 65 2d 6d 61 70 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d node-map.emms-browser-tree-node-
574a0 6d 61 70 2d 64 65 66 61 75 6c 74 0a 20 20 22 54 68 65 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 map-default..."The.alist.mapping
574c0 20 6f 66 20 74 68 65 20 62 72 6f 77 73 65 72 20 74 72 65 65 20 6e 6f 64 65 20 6d 61 70 2e 22 29 .of.the.browser.tree.node.map.")
574e0 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 6d 61 70 0a ..(defvar.emms-browser-mode-map.
57500 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 ..(let.((map.(make-sparse-keymap
57520 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 51 22 ))).....(define-key.map.(kbd."Q"
57540 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 29 0a 20 20 20 20 ).#'emms-filters-pop-cache).....
57560 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 65 6d 6d 73 (define-key.map.(kbd."q").#'emms
57580 2d 62 72 6f 77 73 65 72 2d 62 75 72 79 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e -browser-bury-buffer).....(defin
575a0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 2f 22 29 20 23 27 65 6d 6d 73 2d 69 73 65 61 72 e-key.map.(kbd."/").#'emms-isear
575c0 63 68 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ch-buffer).....(define-key.map.(
575e0 6b 62 64 20 22 72 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 6f 74 6f 2d 72 61 6e kbd."r").#'emms-browser-goto-ran
57600 64 6f 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6e dom).....(define-key.map.(kbd."n
57620 22 29 20 23 27 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 ").#'next-line).....(define-key.
57640 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 29 0a 20 map.(kbd."p").#'previous-line)..
57660 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 22 29 20 23 27 65 ...(define-key.map.(kbd."C").#'e
57680 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 mms-browser-clear-playlist).....
576a0 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3f 22 29 20 23 27 64 65 73 63 (define-key.map.(kbd."?").#'desc
576c0 72 69 62 65 2d 6d 6f 64 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ribe-mode).....(define-key.map.(
576e0 6b 62 64 20 22 43 2d 2f 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d kbd."C-/").#'emms-playlist-mode-
57700 75 6e 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 undo).....(define-key.map.(kbd."
57720 53 50 43 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 67 67 6c 65 2d 73 75 62 69 SPC").#'emms-browser-toggle-subi
57740 74 65 6d 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 tems).....(define-key.map.(kbd."
57760 5e 22 29 20 20 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 76 65 2d 75 70 2d 6c 65 76 ^")...#'emms-browser-move-up-lev
57780 65 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 el).....(define-key.map.(kbd."RE
577a0 54 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 29 0a 20 T").#'emms-browser-add-tracks)..
577c0 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 43 2d 72 65 74 75 ...(define-key.map.(kbd."<C-retu
577e0 72 6e 3e 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 2d rn>").#'emms-browser-add-tracks-
57800 61 6e 64 2d 70 6c 61 79 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b and-play).....(define-key.map.(k
57820 62 64 20 22 43 2d 6a 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 bd."C-j").#'emms-browser-add-tra
57840 63 6b 73 2d 61 6e 64 2d 70 6c 61 79 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 cks-and-play).....(define-key.ma
57860 70 20 28 6b 62 64 20 22 3c 74 61 62 3e 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 p.(kbd."<tab>").#'emms-browser-t
57880 6f 67 67 6c 65 2d 73 75 62 69 74 65 6d 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 oggle-subitems).....(define-key.
578a0 6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f map.(kbd."<backtab>").#'emms-bro
578c0 77 73 65 72 2d 70 72 65 76 2d 6e 6f 6e 2d 74 72 61 63 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 wser-prev-non-track).....(define
578e0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 64 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 -key.map.(kbd."d").#'emms-browse
57900 72 2d 76 69 65 77 2d 69 6e 2d 64 69 72 65 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 r-view-in-dired).....(define-key
57920 20 6d 61 70 20 28 6b 62 64 20 22 44 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 .map.(kbd."D").#'emms-browser-de
57940 6c 65 74 65 2d 66 69 6c 65 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 lete-files).....(define-key.map.
57960 28 6b 62 64 20 22 45 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d (kbd."E").#'emms-browser-expand-
57980 61 6c 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 31 all).....(define-key.map.(kbd."1
579a0 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 29 0a ").#'emms-browser-collapse-all).
579c0 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 32 22 29 20 23 27 ....(define-key.map.(kbd."2").#'
579e0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 32 29 0a emms-browser-expand-to-level-2).
57a00 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 33 22 29 20 23 27 ....(define-key.map.(kbd."3").#'
57a20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 33 29 0a emms-browser-expand-to-level-3).
57a40 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 22 29 20 23 27 ....(define-key.map.(kbd."4").#'
57a60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 34 29 0a emms-browser-expand-to-level-4).
57a80 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 62 20 31 22 29 20 ....(define-key.map.(kbd."b.1").
57aa0 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 72 74 69 73 74 29 0a 20 20 20 20 28 64 65 #'emms-browse-by-artist).....(de
57ac0 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 62 20 32 22 29 20 23 27 65 6d 6d 73 2d fine-key.map.(kbd."b.2").#'emms-
57ae0 62 72 6f 77 73 65 2d 62 79 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 browse-by-album).....(define-key
57b00 20 6d 61 70 20 28 6b 62 64 20 22 62 20 33 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 .map.(kbd."b.3").#'emms-browse-b
57b20 79 2d 67 65 6e 72 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 y-genre).....(define-key.map.(kb
57b40 64 20 22 62 20 34 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 79 65 61 72 29 0a d."b.4").#'emms-browse-by-year).
57b60 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 62 20 35 22 29 20 ....(define-key.map.(kbd."b.5").
57b80 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 63 6f 6d 70 6f 73 65 72 29 0a 20 20 20 20 28 #'emms-browse-by-composer).....(
57ba0 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 62 20 36 22 29 20 23 27 65 6d 6d define-key.map.(kbd."b.6").#'emm
57bc0 73 2d 62 72 6f 77 73 65 2d 62 79 2d 70 65 72 66 6f 72 6d 65 72 29 0a 20 20 20 20 28 64 65 66 69 s-browse-by-performer).....(defi
57be0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 62 20 37 22 29 20 23 27 65 6d 6d 73 2d 62 72 ne-key.map.(kbd."b.7").#'emms-br
57c00 6f 77 73 65 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 owse-by-albumartist).....(define
57c20 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 57 20 6f 20 77 22 29 20 23 27 65 6d 6d 73 2d 62 72 -key.map.(kbd."W.o.w").#'emms-br
57c40 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 6c 62 75 6d 61 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 owser-lookup-albumartist-on-wiki
57c60 70 65 64 69 61 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 pedia).....(define-key.map.(kbd.
57c80 22 57 20 41 20 77 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 "W.A.w").#'emms-browser-lookup-a
57ca0 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d rtist-on-wikipedia).....(define-
57cc0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 57 20 43 20 77 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f key.map.(kbd."W.C.w").#'emms-bro
57ce0 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 63 6f 6d 70 6f 73 65 72 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 wser-lookup-composer-on-wikipedi
57d00 61 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 57 20 50 a).....(define-key.map.(kbd."W.P
57d20 20 77 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 70 65 72 66 6f .w").#'emms-browser-lookup-perfo
57d40 72 6d 65 72 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b rmer-on-wikipedia).....(define-k
57d60 65 79 20 6d 61 70 20 28 6b 62 64 20 22 57 20 61 20 77 22 29 20 23 27 65 6d 6d 73 2d 62 72 6f 77 ey.map.(kbd."W.a.w").#'emms-brow
57d80 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 6c 62 75 6d 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 29 0a 20 ser-lookup-album-on-wikipedia)..
57da0 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 2b 22 29 20 23 27 65 ...(define-key.map.(kbd."+").#'e
57dc0 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 mms-volume-raise).....(define-ke
57de0 79 20 6d 61 70 20 28 6b 62 64 20 22 2d 22 29 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f y.map.(kbd."-").#'emms-volume-lo
57e00 77 65 72 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 wer)......(define-key.map.(kbd."
57e20 3e 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 6c >").#'emms-filters-next-ring-fil
57e40 74 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c ter).....(define-key.map.(kbd."<
57e60 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 72 65 76 69 6f 75 73 2d 72 69 6e 67 2d ").#'emms-filters-previous-ring-
57e80 66 69 6c 74 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 filter).....(define-key.map.(kbd
57ea0 20 22 66 20 21 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 72 69 6e ."f.!").#'emms-filters-clear-rin
57ec0 67 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b g-filter).....(define-key.map.(k
57ee0 62 64 20 22 66 20 3e 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 78 74 2d 72 69 bd."f.>").#'emms-filters-next-ri
57f00 6e 67 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ng-filter).....(define-key.map.(
57f20 6b 62 64 20 22 66 20 3c 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 72 65 76 69 6f kbd."f.<").#'emms-filters-previo
57f40 75 73 2d 72 69 6e 67 2d 66 69 6c 74 65 72 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 us-ring-filter)......(define-key
57f60 20 6d 61 70 20 28 6b 62 64 20 22 69 20 73 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d .map.(kbd."i.s").#'emms-filters-
57f80 73 74 61 74 75 73 2d 70 72 69 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 status-print).....(define-key.ma
57fa0 70 20 28 6b 62 64 20 22 69 20 66 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f p.(kbd."i.f").#'emms-filters-sho
57fc0 77 2d 66 69 6c 74 65 72 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 w-filters).....(define-key.map.(
57fe0 6b 62 64 20 22 69 20 6d 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 kbd."i.m").#'emms-filters-show-f
58000 69 6c 74 65 72 2d 6d 65 6e 75 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 ilter-menu).....(define-key.map.
58020 28 6b 62 64 20 22 69 20 46 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d (kbd."i.F").#'emms-filters-show-
58040 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 filter-factories).....(define-ke
58060 79 20 6d 61 70 20 28 6b 62 64 20 22 69 20 72 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 y.map.(kbd."i.r").#'emms-filters
58080 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 72 69 6e 67 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b -show-filter-ring).....(define-k
580a0 65 79 20 6d 61 70 20 28 6b 62 64 20 22 69 20 63 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 ey.map.(kbd."i.c").#'emms-filter
580c0 73 2d 73 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 63 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d s-show-cache-stack).....(define-
580e0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 69 20 53 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 key.map.(kbd."i.S").#'emms-filte
58100 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 73 68 29 0a 0a 20 20 20 20 28 64 65 66 69 6e rs-show-cache-stash)......(defin
58120 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 71 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c e-key.map.(kbd."f.q").#'emms-fil
58140 74 65 72 73 2d 70 6f 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b ters-pop).....(define-key.map.(k
58160 62 64 20 22 66 20 68 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 bd."f.h").#'emms-filters-hard-fi
58180 6c 74 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 lter).....(define-key.map.(kbd."
581a0 66 20 72 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 29 20 3b 20 72 6f 74 f.r").#'emms-filters-swap).;.rot
581c0 61 74 65 20 3f 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 ate.?.....(define-key.map.(kbd."
581e0 66 20 52 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 29 20 3b f.R").#'emms-filters-swap-pop).;
58200 20 72 6f 74 61 74 65 2d 65 6a 65 63 74 2c 20 2c 70 6f 70 2d 70 72 65 76 69 6f 75 73 0a 20 20 20 .rotate-eject,.,pop-previous....
58220 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 66 22 29 20 23 27 65 .(define-key.map.(kbd."f.f").#'e
58240 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 29 20 3b 66 6c 61 74 74 65 6e 0a 20 20 20 mms-filters-squash).;flatten....
58260 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 6b 22 29 20 23 27 65 .(define-key.map.(kbd."f.k").#'e
58280 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b 65 65 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 mms-filters-keep).....(define-ke
582a0 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 43 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 y.map.(kbd."f.C").#'emms-filters
582c0 2d 63 6c 65 61 72 2d 61 6c 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 -clear-all).....(define-key.map.
582e0 28 6b 62 64 20 22 66 20 63 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 (kbd."f.c").#'emms-filters-clear
58300 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 70 22 ).....(define-key.map.(kbd."f.p"
58320 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 29 0a 20 20 20 20 28 64 65 66 69 ).#'emms-filters-push).....(defi
58340 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 73 22 29 20 23 27 65 6d 6d 73 2d 66 69 ne-key.map.(kbd."f.s").#'emms-fi
58360 6c 74 65 72 73 2d 73 6d 61 73 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 lters-smash).....(define-key.map
58380 20 28 6b 62 64 20 22 66 20 6f 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 29 0a .(kbd."f.o").#'emms-filters-or).
583a0 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 61 22 29 20 ....(define-key.map.(kbd."f.a").
583c0 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d #'emms-filters-and).....(define-
583e0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 20 6e 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 key.map.(kbd."f.n").#'emms-filte
58400 72 73 2d 61 6e 64 2d 6e 6f 74 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 rs-and-not)......(define-key.map
58420 20 28 6b 62 64 20 22 63 20 70 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 .(kbd."c.p").#'emms-filters-push
58440 2d 63 61 63 68 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 -cache).....(define-key.map.(kbd
58460 20 22 63 20 7a 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 70 6f 70 ."c.z").#'emms-filters-stash-pop
58480 2d 63 61 63 68 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 -cache).....(define-key.map.(kbd
584a0 20 22 63 20 5a 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 ."c.Z").#'emms-filters-stash-cac
584c0 68 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 20 he).....(define-key.map.(kbd."c.
584e0 71 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 29 0a 20 20 q").#'emms-filters-pop-cache)...
58500 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 20 68 22 29 20 23 27 ..(define-key.map.(kbd."c.h").#'
58520 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 28 64 emms-filters-hard-filter).....(d
58540 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 20 72 22 29 20 23 27 65 6d 6d 73 efine-key.map.(kbd."c.r").#'emms
58560 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 63 61 63 68 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 -filters-swap-cache).....(define
58580 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 20 52 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 -key.map.(kbd."c.R").#'emms-filt
585a0 65 72 73 2d 73 77 61 70 2d 70 6f 70 2d 63 61 63 68 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d ers-swap-pop-cache).....(define-
585c0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 20 53 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 key.map.(kbd."c.S").#'emms-filte
585e0 72 73 2d 73 71 75 61 73 68 2d 63 61 63 68 65 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 rs-squash-caches).....(define-ke
58600 79 20 6d 61 70 20 28 6b 62 64 20 22 63 20 63 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 y.map.(kbd."c.c").#'emms-filters
58620 2d 63 6c 65 61 72 2d 63 61 63 68 65 73 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 -clear-caches)......(define-key.
58640 6d 61 70 20 28 6b 62 64 20 22 73 20 6f 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 map.(kbd."s.o").#'emms-filters-s
58660 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 28 64 65 66 69 6e earch-by-albumartist).....(defin
58680 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 61 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c e-key.map.(kbd."s.a").#'emms-fil
586a0 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 72 74 69 73 74 29 0a 20 20 20 20 28 64 65 66 69 ters-search-by-artist).....(defi
586c0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 63 22 29 20 23 27 65 6d 6d 73 2d 66 69 ne-key.map.(kbd."s.c").#'emms-fi
586e0 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 63 6f 6d 70 6f 73 65 72 29 0a 20 20 20 20 28 64 lters-search-by-composer).....(d
58700 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 70 22 29 20 23 27 65 6d 6d 73 efine-key.map.(kbd."s.p").#'emms
58720 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 70 65 72 66 6f 72 6d 65 72 29 0a 20 20 -filters-search-by-performer)...
58740 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 41 22 29 20 23 27 ..(define-key.map.(kbd."s.A").#'
58760 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 29 0a 20 20 emms-filters-search-by-album)...
58780 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 74 22 29 20 23 27 ..(define-key.map.(kbd."s.t").#'
587a0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 29 0a 20 20 emms-filters-search-by-title)...
587c0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 54 22 29 20 23 27 ..(define-key.map.(kbd."s.T").#'
587e0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 73 29 0a 20 emms-filters-search-by-titles)..
58800 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 6e 22 29 20 23 ...(define-key.map.(kbd."s.n").#
58820 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 29 0a 20 'emms-filters-search-by-names)..
58840 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 73 22 29 20 23 ...(define-key.map.(kbd."s.s").#
58860 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 2d 61 6e 'emms-filters-search-by-names-an
58880 64 2d 74 69 74 6c 65 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b d-titles).....(define-key.map.(k
588a0 62 64 20 22 73 20 65 22 29 20 23 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d bd."s.e").#'emms-filters-search-
588c0 62 79 2d 61 6c 6c 2d 74 65 78 74 29 20 3b 65 76 65 72 79 74 68 69 6e 67 2e 0a 20 20 20 20 6d 61 by-all-text).;everything......ma
588e0 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d p)..."Keymap.for.`emms-browser-m
58900 6f 64 65 27 2e 22 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ode'.")..;;.--------------------
58920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b ------------------------------.;
58940 3b 20 43 6f 6d 70 61 74 61 62 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 20 2d 2d 2d ;.Compatability.functions.;;.---
58960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
58980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 65 76 61 6c 2d 61 6e 64 2d 63 6f 6d 70 69 ---------------..(eval-and-compi
589a0 6c 65 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 77 69 74 68 2d 73 65 6c 65 63 74 65 64 le...(if.(fboundp.'with-selected
589c0 2d 77 69 6e 64 6f 77 29 20 20 20 3b 45 6d 61 63 73 2d 32 32 0a 20 20 20 20 20 20 28 64 65 66 61 -window)...;Emacs-22.......(defa
589e0 6c 69 61 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 77 69 74 68 2d 73 65 6c 65 63 74 65 64 lias.'emms-browser-with-selected
58a00 2d 77 69 6e 64 6f 77 20 23 27 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 0a -window.#'with-selected-window).
58a20 20 20 20 20 28 64 65 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 77 69 74 68 2d ....(defmacro.emms-browser-with-
58a40 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 28 77 69 6e 64 6f 77 20 26 72 65 73 74 20 62 6f selected-window.(window.&rest.bo
58a60 64 79 29 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 dy).......(ignore.window).......
58a80 3b 3b 20 74 68 69 73 20 65 6d 75 6c 61 74 65 73 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 69 6e ;;.this.emulates.the.behavior.in
58aa0 74 72 6f 64 75 63 65 64 20 65 61 72 6c 69 65 72 2c 20 74 68 6f 75 67 68 20 69 74 0a 20 20 20 20 troduced.earlier,.though.it.....
58ac0 20 20 3b 3b 20 6d 69 67 68 74 20 62 65 20 62 65 73 74 20 74 6f 20 64 6f 20 73 6f 6d 65 74 68 69 ..;;.might.be.best.to.do.somethi
58ae0 6e 67 20 77 69 74 68 20 60 77 69 6e 64 6f 77 27 0a 20 20 20 20 20 20 60 28 73 61 76 65 2d 73 65 ng.with.`window'.......`(save-se
58b00 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 2c 62 6f 64 79 29 29 29 0a 20 20 28 70 75 74 20 27 65 lected-window.,body)))...(put.'e
58b20 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 mms-browser-with-selected-window
58b40 20 27 6c 69 73 70 2d 69 6e 64 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 20 31 29 0a 20 20 28 70 75 74 .'lisp-indent-function.1)...(put
58b60 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e .'emms-browser-with-selected-win
58b80 64 6f 77 20 27 65 64 65 62 75 67 2d 66 6f 72 6d 2d 73 70 65 63 20 27 28 66 6f 72 6d 20 62 6f 64 dow.'edebug-form-spec.'(form.bod
58ba0 79 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 75 y)))..(defalias.'emms-browser-ru
58bc0 6e 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 72 75 6e n-mode-hooks...(if.(fboundp.'run
58be0 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 29 20 20 20 20 20 20 20 20 20 3b 45 6d 61 63 73 2d 32 32 0a 20 -mode-hooks).........;Emacs-22..
58c00 20 20 20 20 20 23 27 72 75 6e 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 0a 20 20 20 20 23 27 72 75 6e 2d .....#'run-mode-hooks.....#'run-
58c20 68 6f 6f 6b 73 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d hooks))..;;.--------------------
58c40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b ------------------------------.;
58c60 3b 20 47 65 6e 65 72 61 6c 20 6d 6f 64 65 20 73 65 74 75 70 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d ;.General.mode.setup.;;.--------
58c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
58ca0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 ----------..;;;###autoload.(defu
58cc0 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 28 29 0a 20 20 22 4c 61 75 6e 63 68 20 6f 72 20 73 n.emms-browser.()..."Launch.or.s
58ce0 77 69 74 63 68 20 74 6f 20 74 68 65 20 45 4d 4d 53 20 42 72 6f 77 73 65 72 2e 22 0a 20 20 28 69 witch.to.the.EMMS.Browser."...(i
58d00 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 72 65 61 nteractive)...(emms-browser-crea
58d20 74 65 2d 6f 72 2d 66 6f 63 75 73 0a 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 te-or-focus....emms-browser-defa
58d40 75 6c 74 2d 62 72 6f 77 73 65 2d 74 79 70 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 ult-browse-type))..(defun.emms-b
58d60 72 6f 77 73 65 72 2d 63 72 65 61 74 65 2d 6f 72 2d 66 6f 63 75 73 20 28 74 79 70 65 29 0a 20 20 rowser-create-or-focus.(type)...
58d80 22 43 72 65 61 74 65 20 61 20 6e 65 77 20 62 72 6f 77 73 65 72 20 62 75 66 66 65 72 20 77 69 74 "Create.a.new.browser.buffer.wit
58da0 68 20 42 52 4f 57 53 45 2d 46 55 4e 43 2c 20 6f 72 20 73 77 69 74 63 68 2e 0a 42 52 4f 57 53 45 h.BROWSE-FUNC,.or.switch..BROWSE
58dc0 2d 46 55 4e 43 20 73 68 6f 75 6c 64 20 66 69 6c 6c 20 74 68 65 20 62 75 66 66 65 72 20 77 69 74 -FUNC.should.fill.the.buffer.wit
58de0 68 20 73 6f 6d 65 74 68 69 6e 67 20 6f 66 20 69 6e 74 65 72 65 73 74 2e 20 41 6e 0a 65 78 61 6d h.something.of.interest..An.exam
58e00 70 6c 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d ple.function.is.`emms-browse-by-
58e20 61 72 74 69 73 74 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 65 6d 6d 73 2d 62 72 6f artist'."...(let.((buf.(emms-bro
58e40 77 73 65 72 2d 67 65 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 77 69 6e 64 29 0a wser-get-buffer)).........wind).
58e60 20 20 20 20 28 69 66 20 62 75 66 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 62 75 ....(if.buf.........;;.if.the.bu
58e80 66 66 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 2c 20 73 77 69 74 63 68 20 74 68 65 20 77 69 ffer.is.displayed,.switch.the.wi
58ea0 6e 64 6f 77 20 69 6e 73 74 65 61 64 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 ndow.instead.........(progn.....
58ec0 20 20 20 20 20 20 28 73 65 74 71 20 77 69 6e 64 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e ......(setq.wind.(get-buffer-win
58ee0 64 6f 77 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 77 69 6e 64 0a 20 20 20 dow.buf))...........(if.wind....
58f00 20 20 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 20 77 69 6e 64 29 0a ...........(select-window.wind).
58f20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 ............(switch-to-buffer.bu
58f40 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 75 6e 2d f))...........(emms-browser-run-
58f60 6d 6f 64 65 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 64 69 mode-hooks.'emms-browser-show-di
58f80 73 70 6c 61 79 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 72 65 27 73 splay-hook)).......;;.if.there's
58fa0 20 6e 6f 20 62 75 66 66 65 72 2c 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 77 69 6e 64 6f 77 0a .no.buffer,.create.a.new.window.
58fc0 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 72 65 61 74 65 29 0a 20 20 20 20 ......(emms-browser-create).....
58fe0 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 20 74 79 70 65 29 29 29 29 0a 0a 28 64 65 66 ..(emms-browse-by.type))))..(def
59000 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 72 65 61 74 65 20 28 29 0a 20 20 22 43 72 65 un.emms-browser-create.()..."Cre
59020 61 74 65 20 61 20 6e 65 77 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 62 75 66 66 65 72 20 61 6e ate.a.new.emms-browser.buffer.an
59040 64 20 73 74 61 72 74 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2e 22 0a 20 20 28 65 d.start.emms-browser-mode."...(e
59060 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 77 2d 62 75 66 66 65 72 29 0a 20 20 28 65 6d 6d 73 2d mms-browser-new-buffer)...(emms-
59080 62 72 6f 77 73 65 72 2d 6d 6f 64 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 75 browser-mode)...(emms-browser-ru
590a0 6e 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d n-mode-hooks.'emms-browser-show-
590c0 64 69 73 70 6c 61 79 2d 68 6f 6f 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 display-hook))..(defun.emms-brow
590e0 73 65 72 2d 6d 6f 64 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 75 70 64 61 74 65 29 0a 20 ser-mode.(&optional.no-update)..
59100 20 22 41 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 74 68 65 20 45 6d 6d 73 20 62 72 6f 77 ."A.major.mode.for.the.Emms.brow
59120 73 65 72 2e 0a 44 6f 65 73 20 6e 6f 74 20 73 65 74 20 74 68 65 20 62 72 6f 77 73 65 72 20 62 75 ser..Does.not.set.the.browser.bu
59140 66 66 65 72 20 74 6f 20 63 75 72 72 65 6e 74 20 75 6e 6c 65 73 73 20 4e 4f 2d 55 50 44 41 54 45 ffer.to.current.unless.NO-UPDATE
59160 20 69 73 20 73 65 74 2e 0a 5c 5c 7b 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 6d 61 .is.set..\\{emms-browser-mode-ma
59180 70 7d 22 0a 20 20 3b 3b 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 62 75 66 66 65 72 0a 20 20 28 p}"...;;.create.a.new.buffer...(
591a0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f 63 61 6c 2d 76 interactive)...(kill-all-local-v
591c0 61 72 69 61 62 6c 65 73 29 0a 0a 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 ariables)....(setq.major-mode.'e
591e0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 6d 6f 64 65 2d 6e 61 mms-browser-mode.........mode-na
59200 6d 65 20 22 45 6d 6d 73 2d 42 72 6f 77 73 65 72 22 29 0a 0a 20 20 28 75 73 65 2d 6c 6f 63 61 6c me."Emms-Browser")....(use-local
59220 2d 6d 61 70 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 6d 61 70 29 0a 0a 20 20 28 -map.emms-browser-mode-map)....(
59240 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 28 75 6e 6c 65 setq.buffer-read-only.t)...(unle
59260 73 73 20 6e 6f 2d 75 70 64 61 74 65 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 ss.no-update.....(setq.emms-brow
59280 73 65 72 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 0a 20 ser-buffer.(current-buffer)))...
592a0 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 68 .(run-hooks.'emms-browser-mode-h
592c0 6f 6f 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 77 2d 62 ook))..(defun.emms-browser-new-b
592e0 75 66 66 65 72 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 6e 65 77 20 62 72 6f 77 73 65 72 uffer.()..."Create.a.new.browser
59300 20 62 75 66 66 65 72 2c 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 69 74 2e 22 0a 20 20 28 73 .buffer,.and.switch.to.it."...(s
59320 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 witch-to-buffer.(generate-new-bu
59340 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 ffer......................emms-b
59360 72 6f 77 73 65 72 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d rowser-buffer-name)))..(defun.em
59380 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 6f 72 ms-browser-clear.()..."Create.or
593a0 20 73 77 69 74 63 68 20 74 6f 20 61 20 62 72 6f 77 73 65 72 20 62 75 66 66 65 72 2c 20 63 6c 65 .switch.to.a.browser.buffer,.cle
593c0 61 72 69 6e 67 20 69 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 65 6d 6d 73 2d 62 72 aring.it."...(let.((buf.(emms-br
593e0 6f 77 73 65 72 2d 67 65 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 69 66 20 62 75 66 0a owser-get-buffer))).....(if.buf.
59400 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 ........(progn...........(switch
59420 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d -to-buffer.buf)...........(emms-
59440 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 20 20 20 20 with-inhibit-read-only-t........
59460 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 ....(delete-region.(point-min).(
59480 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 point-max)))).......(emms-browse
594a0 72 2d 63 72 65 61 74 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 r-create))))..(defun.emms-browse
594c0 72 2d 67 65 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 75 r-get-buffer.()..."Return.the.cu
594e0 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 66 20 69 74 20 65 78 69 73 74 73 2c 20 6f 72 20 6e 69 rrent.buffer.if.it.exists,.or.ni
59500 6c 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6e 75 6c 6c 20 65 6d 6d 73 2d 62 72 6f l."...(unless.(or.(null.emms-bro
59520 77 73 65 72 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 wser-buffer)...............(not.
59540 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 (buffer-live-p.emms-browser-buff
59560 65 72 29 29 29 0a 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 65 72 29 29 0a er))).....emms-browser-buffer)).
59580 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 6e 73 75 72 65 2d 62 72 6f 77 .(defun.emms-browser-ensure-brow
595a0 73 65 72 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 65 20 63 75 72 72 ser-buffer.()..."Ensure.the.curr
595c0 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 74 68 65 20 62 72 6f 77 73 65 72 20 62 75 66 66 65 72 ent.buffer.is.the.browser.buffer
595e0 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d ."...(unless.(eq.major-mode.'emm
59600 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 75 72 72 s-browser-mode).....(error."Curr
59620 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 6e 6f 74 20 61 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 ent.buffer.is.not.an.emms-browse
59640 72 20 62 75 66 66 65 72 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 r.buffer")))..(defun.emms-browse
59660 72 2d 62 75 72 79 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 42 75 72 79 20 74 68 65 20 62 72 6f r-bury-buffer.()..."Bury.the.bro
59680 77 73 65 72 20 62 75 66 66 65 72 2c 20 72 75 6e 6e 69 6e 67 20 68 6f 6f 6b 73 2e 22 0a 20 20 28 wser.buffer,.running.hooks."...(
596a0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 75 6e interactive)...(emms-browser-run
596c0 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 64 65 2d 64 -mode-hooks.'emms-browser-hide-d
596e0 69 73 70 6c 61 79 2d 68 6f 6f 6b 29 0a 20 20 28 62 75 72 79 2d 62 75 66 66 65 72 29 29 0a 0a 3b isplay-hook)...(bury-buffer))..;
59700 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.------------------------------
59720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 6f 70 2d 6c 65 76 65 --------------------.;;.Top-leve
59740 6c 20 62 72 6f 77 73 69 6e 67 20 6d 65 74 68 6f 64 73 20 2d 20 62 79 20 61 72 74 69 73 74 2f 61 l.browsing.methods.-.by.artist/a
59760 6c 62 75 6d 2f 65 74 63 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d lbum/etc.;;.--------------------
59780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a ------------------------------..
597a0 3b 3b 20 53 69 6e 63 65 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 72 61 63 6b 73 20 6d 61 ;;.Since.the.number.of.tracks.ma
597c0 79 20 62 65 20 72 61 74 68 65 72 20 6c 61 72 67 65 2c 20 77 65 20 75 73 65 20 61 20 68 61 73 68 y.be.rather.large,.we.use.a.hash
597e0 20 74 6f 0a 3b 3b 20 73 6f 72 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 65 6c 65 6d 65 6e .to.;;.sort.the.top.level.elemen
59800 74 73 20 69 6e 74 6f 20 76 61 72 69 6f 75 73 20 63 61 74 65 67 6f 72 69 65 73 2e 20 41 6c 6c 0a ts.into.various.categories..All.
59820 3b 3b 20 73 75 62 65 6c 65 6d 65 6e 74 73 20 77 69 6c 6c 20 62 65 20 73 74 6f 72 65 64 20 69 6e ;;.subelements.will.be.stored.in
59840 20 61 20 62 64 61 74 61 20 61 6c 69 73 74 20 73 74 72 75 63 74 75 72 65 2e 0a 0a 28 64 65 66 6d .a.bdata.alist.structure...(defm
59860 61 63 72 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 63 61 74 65 67 6f 72 79 20 28 acro.emms-browser-add-category.(
59880 6e 61 6d 65 20 74 79 70 65 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 69 6e 74 65 72 61 63 74 name.type)..."Create.an.interact
598a0 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 4e 41 4d 45 20 61 6e 64 20 69 6e 66 6f 20 ive.function.with.NAME.and.info.
598c0 54 59 50 45 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 4e 41 4d 45 2e 22 0a 20 20 28 6c 65 TYPE.emms-browse-by-NAME."...(le
598e0 74 20 28 28 66 75 6e 6e 61 6d 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d t.((funname.(intern.(concat."emm
59900 73 2d 62 72 6f 77 73 65 2d 62 79 2d 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 s-browse-by-".name))).........(f
59920 75 6e 63 64 65 73 63 20 28 63 6f 6e 63 61 74 20 22 42 72 6f 77 73 65 20 62 79 20 22 20 6e 61 6d uncdesc.(concat."Browse.by.".nam
59940 65 20 22 2e 22 29 29 29 0a 20 20 20 20 60 28 64 65 66 75 6e 20 2c 66 75 6e 6e 61 6d 65 20 28 29 e."."))).....`(defun.,funname.()
59960 0a 20 20 20 20 20 20 20 2c 66 75 6e 63 64 65 73 63 0a 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 ........,funcdesc........(intera
59980 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 20 2c 74 ctive)........(emms-browse-by.,t
599a0 79 70 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 20 28 ype))))..(defun.emms-browse-by.(
599c0 26 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 29 0a 20 20 22 52 65 6e 64 65 72 20 61 20 74 6f 70 20 &optional.type)..."Render.a.top.
599e0 6c 65 76 65 6c 20 62 75 66 66 65 72 20 62 61 73 65 64 20 6f 6e 20 54 59 50 45 2e 0a 49 66 20 54 level.buffer.based.on.TYPE..If.T
59a00 59 50 45 20 69 73 20 6e 6f 74 20 67 69 76 65 6e 20 64 65 66 61 75 6c 74 20 74 6f 20 74 6f 70 2d YPE.is.not.given.default.to.top-
59a20 6c 65 76 65 6c 2d 74 79 70 65 0a 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 2d 62 72 6f 77 73 65 level-type.or.the.default-browse
59a40 2d 74 79 70 65 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 74 79 70 65 29 0a 20 20 20 20 20 20 28 73 -type"...(if.(not.type).......(s
59a60 65 74 71 20 74 79 70 65 20 28 6f 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 70 2d 6c 65 etq.type.(or.emms-browser-top-le
59a80 76 65 6c 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d vel-type......................em
59aa0 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 62 72 6f 77 73 65 2d 74 79 70 65 29 29 ms-browser-default-browse-type))
59ac0 29 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 61 73 73 75 6d 65 73 20 77 65 20 6f 6e 6c 79 20 62 72 )...;;.FIXME:.assumes.we.only.br
59ae0 6f 77 73 65 20 62 79 20 69 6e 66 6f 2d 2a 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 73 owse.by.info-*...(let*.((name.(s
59b00 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 79 70 65 29 20 35 29 29 0a ubstring.(symbol-name.type).5)).
59b20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 64 65 73 63 20 28 63 6f 6e 63 61 74 20 22 42 72 6f 77 .........(modedesc.(concat."Brow
59b40 73 69 6e 67 20 62 79 3a 20 22 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 61 73 68 sing.by:.".name))..........(hash
59b60 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 68 61 73 68 2d 62 79 20 74 79 70 65 .(emms-browser-make-hash-by.type
59b80 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 ))..........(current-filter-name
59ba0 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 75 6c 6c 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 .(emms-filters-full-name))).....
59bc0 28 77 68 65 6e 20 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 (when.current-filter-name.......
59be0 28 73 65 74 71 20 6d 6f 64 65 64 65 73 63 20 28 63 6f 6e 63 61 74 20 6d 6f 64 65 64 65 73 63 0a (setq.modedesc.(concat.modedesc.
59c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 5b .............................".[
59c20 22 20 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 22 5d 22 29 29 29 0a 20 20 20 ".current-filter-name."]")))....
59c40 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 29 0a 20 20 20 20 28 72 65 6e 61 6d .(emms-browser-clear).....(renam
59c60 65 2d 62 75 66 66 65 72 20 6d 6f 64 65 64 65 73 63 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f e-buffer.modedesc).....(emms-bro
59c80 77 73 65 72 2d 72 65 6e 64 65 72 2d 68 61 73 68 20 68 61 73 68 20 74 79 70 65 29 0a 20 20 20 20 wser-render-hash.hash.type).....
59ca0 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 70 2d 6c 65 76 65 6c 2d 68 61 73 (setq.emms-browser-top-level-has
59cc0 68 20 68 61 73 68 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 h.hash).....(setq.emms-browser-t
59ce0 6f 70 2d 6c 65 76 65 6c 2d 74 79 70 65 20 74 79 70 65 29 0a 0a 20 20 20 20 28 67 6f 74 6f 2d 63 op-level-type.type)......(goto-c
59d00 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 har.(point-min))......(if.(not.(
59d20 3e 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 63 6f 75 6e 74 20 68 61 73 68 29 20 30 29 29 0a 20 20 >.(hash-table-count.hash).0))...
59d40 20 20 20 20 20 20 28 69 66 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 69 73 2d 66 69 6c 74 65 ......(if.(emms-filters-is-filte
59d60 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ring).............(emms-browser-
59d80 73 68 6f 77 2d 65 6d 70 74 79 2d 72 65 73 75 6c 74 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 show-empty-result-message)......
59da0 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 65 6d 70 74 79 2d 63 61 .....(emms-browser-show-empty-ca
59dc0 63 68 65 2d 6d 65 73 73 61 67 65 29 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d che-message)))))..(emms-browser-
59de0 61 64 64 2d 63 61 74 65 67 6f 72 79 20 22 61 6c 62 75 6d 61 72 74 69 73 74 22 20 27 69 6e 66 6f add-category."albumartist".'info
59e00 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d -albumartist).(emms-browser-add-
59e20 63 61 74 65 67 6f 72 79 20 22 61 72 74 69 73 74 22 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a category."artist".'info-artist).
59e40 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 63 61 74 65 67 6f 72 79 20 22 63 6f 6d 70 (emms-browser-add-category."comp
59e60 6f 73 65 72 22 20 27 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 oser".'info-composer).(emms-brow
59e80 73 65 72 2d 61 64 64 2d 63 61 74 65 67 6f 72 79 20 22 70 65 72 66 6f 72 6d 65 72 22 20 27 69 6e ser-add-category."performer".'in
59ea0 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d fo-performer).(emms-browser-add-
59ec0 63 61 74 65 67 6f 72 79 20 22 61 6c 62 75 6d 22 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 28 65 category."album".'info-album).(e
59ee0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 63 61 74 65 67 6f 72 79 20 22 67 65 6e 72 65 22 mms-browser-add-category."genre"
59f00 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d .'info-genre).(emms-browser-add-
59f20 63 61 74 65 67 6f 72 79 20 22 79 65 61 72 22 20 27 69 6e 66 6f 2d 79 65 61 72 29 0a 0a 28 64 65 category."year".'info-year)..(de
59f40 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 fun.emms-browser-get-track-field
59f60 20 28 74 72 61 63 6b 20 74 79 70 65 29 0a 20 20 22 52 65 74 75 72 6e 20 54 59 50 45 20 66 72 6f .(track.type)..."Return.TYPE.fro
59f80 6d 20 54 52 41 43 4b 2e 0a 54 68 69 73 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 20 m.TRACK..This.can.be.customized.
59fa0 74 6f 20 67 72 6f 75 70 20 64 69 66 66 65 72 65 6e 74 20 61 72 74 69 73 74 73 20 69 6e 74 6f 20 to.group.different.artists.into.
59fc0 6f 6e 65 20 66 6f 72 0a 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 2c 20 65 74 63 2e 22 0a 20 20 28 66 one.for.compilations,.etc."...(f
59fe0 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 uncall.emms-browser-get-track-fi
5a000 65 6c 64 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 20 74 79 70 65 29 29 0a 0a 28 64 65 66 75 eld-function.track.type))..(defu
5a020 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 73 n.emms-browser-get-track-field-s
5a040 69 6d 70 6c 65 20 28 74 72 61 63 6b 20 74 79 70 65 29 0a 20 20 22 52 65 74 75 72 6e 20 54 59 50 imple.(track.type)..."Return.TYP
5a060 45 20 66 72 6f 6d 20 54 52 41 43 4b 20 77 69 74 68 6f 75 74 20 61 6e 79 20 68 65 75 72 69 73 74 E.from.TRACK.without.any.heurist
5a080 69 63 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 ic..This.function.can.be.used.as
5a0a0 0a 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 66 .`emms-browser-get-track-field-f
5a0c0 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 unction'."...(emms-track-get.tra
5a0e0 63 6b 20 74 79 70 65 20 22 6d 69 73 63 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 ck.type."misc"))..(defun.emms-br
5a100 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 61 6c 62 75 6d 61 72 74 69 73 owser-get-track-field-albumartis
5a120 74 20 28 74 72 61 63 6b 20 74 79 70 65 29 0a 20 20 22 52 65 74 75 72 6e 20 54 59 50 45 20 66 72 t.(track.type)..."Return.TYPE.fr
5a140 6f 6d 20 54 52 41 43 4b 20 77 69 74 68 20 61 6e 20 61 6c 62 75 6d 61 72 74 69 73 74 2d 6f 72 69 om.TRACK.with.an.albumartist-ori
5a160 65 6e 74 65 64 20 68 65 75 72 69 73 74 69 63 2e 0a 46 6f 72 20 5c 5c 3d 27 69 6e 66 6f 2d 61 72 ented.heuristic..For.\\='info-ar
5a180 74 69 73 74 20 54 59 50 45 2c 20 75 73 65 20 5c 5c 3d 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 tist.TYPE,.use.\\='info-albumart
5a1a0 69 73 74 73 6f 72 74 2c 0a 5c 5c 3d 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 2c 20 5c istsort,.\\='info-albumartist,.\
5a1c0 5c 3d 27 69 6e 66 6f 2d 61 72 74 69 73 74 73 6f 72 74 2e 0a 46 6f 72 20 5c 5c 3d 27 69 6e 66 6f \='info-artistsort..For.\\='info
5a1e0 2d 79 65 61 72 20 54 59 50 45 2c 20 75 73 65 20 5c 5c 3d 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 -year.TYPE,.use.\\='info-origina
5a200 6c 79 65 61 72 2c 20 5c 5c 3d 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 64 61 74 65 20 61 6e 64 lyear,.\\='info-originaldate.and
5a220 0a 5c 5c 3d 27 69 6e 66 6f 2d 64 61 74 65 20 73 79 6d 62 6f 6c 73 2e 22 0a 20 20 28 63 6f 6e 64 .\\='info-date.symbols."...(cond
5a240 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 .((eq.type.'info-artist)........
5a260 20 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 ..(or.(emms-track-get.track.'inf
5a280 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d o-albumartist)..............(emm
5a2a0 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 s-track-get.track.'info-albumart
5a2c0 69 73 74 73 6f 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 istsort)..............(emms-trac
5a2e0 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 k-get.track.'info-artist).......
5a300 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e .......(emms-track-get.track.'in
5a320 66 6f 2d 61 72 74 69 73 74 73 6f 72 74 20 22 3c 75 6e 6b 6e 6f 77 6e 20 61 72 74 69 73 74 3e 22 fo-artistsort."<unknown.artist>"
5a340 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 79 65 61 72 ))).........((eq.type.'info-year
5a360 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 61 74 65 20 28 6f 72 20 28 65 6d 6d 73 )..........(let.((date.(or.(emms
5a380 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 64 -track-get.track.'info-originald
5a3a0 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 ate)..........................(e
5a3c0 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6f 72 69 67 69 6e mms-track-get.track.'info-origin
5a3e0 61 6c 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alyear).........................
5a400 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 64 61 74 .(emms-track-get.track.'info-dat
5a420 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d e)..........................(emm
5a440 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 79 65 61 72 20 22 3c 75 s-track-get.track.'info-year."<u
5a460 6e 6b 6e 6f 77 6e 20 79 65 61 72 3e 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6d nknown.year>"))))............(em
5a480 6d 73 2d 66 6f 72 6d 61 74 2d 64 61 74 65 2d 74 6f 2d 79 65 61 72 20 64 61 74 65 29 29 29 0a 20 ms-format-date-to-year.date)))..
5a4a0 20 20 20 20 20 20 20 28 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 .......(t.(emms-track-get.track.
5a4c0 74 79 70 65 20 22 6d 69 73 63 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f type."misc"))))..(defun.emms-bro
5a4e0 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 75 73 65 2d 64 69 72 65 63 74 6f wser-get-track-field-use-directo
5a500 72 79 2d 6e 61 6d 65 20 28 74 72 61 63 6b 20 74 79 70 65 29 0a 20 20 28 69 66 20 28 65 71 20 74 ry-name.(track.type)...(if.(eq.t
5a520 79 70 65 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 ype.'info-artist).......(emms-br
5a540 6f 77 73 65 72 2d 67 65 74 2d 61 72 74 69 73 74 2d 66 72 6f 6d 2d 70 61 74 68 0a 20 20 20 20 20 owser-get-artist-from-path......
5a560 20 20 74 72 61 63 6b 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 ..track).....(emms-track-get.tra
5a580 63 6b 20 74 79 70 65 20 22 6d 69 73 63 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 ck.type."misc")))..(defun.emms-b
5a5a0 72 6f 77 73 65 72 2d 67 65 74 2d 61 72 74 69 73 74 2d 66 72 6f 6d 2d 70 61 74 68 20 28 74 72 61 rowser-get-artist-from-path.(tra
5a5c0 63 6b 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 61 74 68 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 ck)...(let*.((path.(emms-track-g
5a5e0 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 69 72 20 28 et.track.'name))..........(dir.(
5a600 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 29 0a 20 20 20 20 20 file-name-directory.path))......
5a620 20 20 20 20 28 62 61 73 65 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d ....(basedir...........(file-nam
5a640 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 e-nondirectory............(direc
5a660 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 tory-file-name.............(file
5a680 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 29 29 29 29 29 0a 20 20 20 20 28 63 61 -name-directory.dir))))).....(ca
5a6a0 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 62 61 73 65 64 69 72 20 22 20 2d 20 22 29 29 29 r.(split-string.basedir.".-.")))
5a6c0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 68 61 73 68 )..(defun.emms-browser-make-hash
5a6e0 2d 62 79 20 28 74 79 70 65 29 0a 20 20 22 4d 61 6b 65 20 61 20 68 61 73 68 2c 20 6d 61 70 70 69 -by.(type)..."Make.a.hash,.mappi
5a700 6e 67 20 77 69 74 68 20 54 59 50 45 2c 20 65 67 20 61 72 74 69 73 74 20 2d 3e 20 74 72 61 63 6b ng.with.TYPE,.eg.artist.->.track
5a720 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 61 73 68 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 s."...(let.((hash.(make-hash-tab
5a740 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 65 6d 6d 73 2d 62 72 6f le................:test.emms-bro
5a760 77 73 65 72 2d 63 6f 6d 70 61 72 69 73 6f 6e 2d 74 65 73 74 29 29 0a 20 20 20 20 20 20 20 20 66 wser-comparison-test)).........f
5a780 69 65 6c 64 20 65 78 69 73 74 69 6e 67 2d 65 6e 74 72 79 29 0a 20 20 20 20 28 6d 61 70 68 61 73 ield.existing-entry).....(maphas
5a7a0 68 20 28 6c 61 6d 62 64 61 20 28 5f 70 61 74 68 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 h.(lambda.(_path.track).........
5a7c0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 .......(when.(run-hook-with-args
5a7e0 2d 75 6e 74 69 6c 2d 73 75 63 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -until-success..................
5a800 20 20 20 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 74 72 61 63 6b 73 .....'emms-browser-filter-tracks
5a820 2d 68 6f 6f 6b 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 -hook.track)..................(s
5a840 65 74 71 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 etq.field.......................
5a860 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 20 74 .(emms-browser-get-track-field.t
5a880 72 61 63 6b 20 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 rack.type))..................(wh
5a8a0 65 6e 20 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 en.field....................(set
5a8c0 71 20 65 78 69 73 74 69 6e 67 2d 65 6e 74 72 79 20 28 67 65 74 68 61 73 68 20 66 69 65 6c 64 20 q.existing-entry.(gethash.field.
5a8e0 68 61 73 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 78 hash))....................(if.ex
5a900 69 73 74 69 6e 67 2d 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 isting-entry....................
5a920 20 20 20 20 28 70 75 74 68 61 73 68 20 66 69 65 6c 64 20 28 63 6f 6e 73 20 74 72 61 63 6b 20 65 ....(puthash.field.(cons.track.e
5a940 78 69 73 74 69 6e 67 2d 65 6e 74 72 79 29 20 68 61 73 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 xisting-entry).hash)............
5a960 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 66 69 65 6c 64 20 28 6c 69 73 74 20 74 ..........(puthash.field.(list.t
5a980 72 61 63 6b 29 20 68 61 73 68 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d rack).hash)))))..............(em
5a9a0 6d 73 2d 66 69 6c 74 65 72 73 2d 6c 61 73 74 2d 73 65 61 72 63 68 2d 63 61 63 68 65 29 29 0a 20 ms-filters-last-search-cache))..
5a9c0 20 20 20 68 61 73 68 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 ...hash))..(defun.emms-browser-r
5a9e0 65 6e 64 65 72 2d 68 61 73 68 20 28 64 62 20 74 79 70 65 29 0a 20 20 22 52 65 6e 64 65 72 20 61 ender-hash.(db.type)..."Render.a
5aa00 20 6d 61 70 70 69 6e 67 20 28 44 42 29 20 77 69 74 68 20 54 59 50 45 20 69 6e 74 6f 20 61 20 62 .mapping.(DB).with.TYPE.into.a.b
5aa20 72 6f 77 73 65 72 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 rowser.buffer."...(maphash.(lamb
5aa40 64 61 20 28 64 65 73 63 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d da.(desc.data)..............(emm
5aa60 73 2d 62 72 6f 77 73 65 72 2d 69 6e 73 65 72 74 2d 74 6f 70 2d 6c 65 76 65 6c 2d 65 6e 74 72 79 s-browser-insert-top-level-entry
5aa80 20 64 65 73 63 20 64 61 74 61 20 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 64 62 29 .desc.data.type))............db)
5aaa0 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d ...(emms-with-inhibit-read-only-
5aac0 74 0a 20 20 20 28 6c 65 74 20 28 28 73 6f 72 74 2d 66 6f 6c 64 2d 63 61 73 65 20 74 29 29 0a 20 t....(let.((sort-fold-case.t))..
5aae0 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 6c 70 68 61 2d 73 6f 72 74 2d ....(if.emms-browser-alpha-sort-
5ab00 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 function..........(progn........
5ab20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
5ab40 20 20 20 20 20 20 20 28 73 6f 72 74 2d 73 75 62 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 .......(sort-subr.nil...........
5ab60 20 20 20 20 20 20 20 20 20 20 20 20 23 27 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 23 27 65 6e 64 ............#'forward-line.#'end
5ab80 2d 6f 66 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -of-line.......................(
5aba0 6c 61 6d 62 64 61 20 28 29 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 lambda.().(buffer-substring-no-p
5abc0 72 6f 70 65 72 74 69 65 73 0a 09 09 09 09 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d roperties.......(line-beginning-
5abe0 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a position).(line-end-position))).
5ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 ......................nil.......
5ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 6c 70 ................emms-browser-alp
5ac40 68 61 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 28 73 6f 72 74 2d ha-sort-function))........(sort-
5ac60 6c 69 6e 65 73 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 lines.nil.(point-min).(point-max
5ac80 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 63 61 73 65 2d 66 6f 6c 64 2d 73 74 72 69 6e 67 3d ))))))..(defun.case-fold-string=
5aca0 20 28 61 20 62 29 0a 20 20 28 65 71 20 74 20 28 63 6f 6d 70 61 72 65 2d 73 74 72 69 6e 67 73 20 .(a.b)...(eq.t.(compare-strings.
5acc0 61 20 6e 69 6c 20 6e 69 6c 20 62 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 0a 0a 28 64 65 66 75 6e a.nil.nil.b.nil.nil.t)))..(defun
5ace0 20 63 61 73 65 2d 66 6f 6c 64 2d 73 74 72 69 6e 67 2d 68 61 73 68 20 28 61 29 0a 20 20 28 73 78 .case-fold-string-hash.(a)...(sx
5ad00 68 61 73 68 20 28 75 70 63 61 73 65 20 61 29 29 29 0a 0a 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 hash.(upcase.a)))..(when.(fbound
5ad20 70 20 27 64 65 66 69 6e 65 2d 68 61 73 68 2d 74 61 62 6c 65 2d 74 65 73 74 29 0a 20 20 28 64 65 p.'define-hash-table-test)...(de
5ad40 66 69 6e 65 2d 68 61 73 68 2d 74 61 62 6c 65 2d 74 65 73 74 20 27 63 61 73 65 2d 66 6f 6c 64 0a fine-hash-table-test.'case-fold.
5ad60 20 20 20 20 27 63 61 73 65 2d 66 6f 6c 64 2d 73 74 72 69 6e 67 3d 20 27 63 61 73 65 2d 66 6f 6c ....'case-fold-string=.'case-fol
5ad80 64 2d 73 74 72 69 6e 67 2d 68 61 73 68 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f d-string-hash))..(defun.emms-bro
5ada0 77 73 65 72 2d 69 6e 73 65 72 74 2d 74 6f 70 2d 6c 65 76 65 6c 2d 65 6e 74 72 79 20 28 6e 61 6d wser-insert-top-level-entry.(nam
5adc0 65 20 74 72 61 63 6b 73 20 74 79 70 65 29 0a 20 20 22 49 6e 73 65 72 74 20 61 20 73 69 6e 67 6c e.tracks.type)..."Insert.a.singl
5ade0 65 20 74 6f 70 20 6c 65 76 65 6c 20 65 6e 74 72 79 20 69 6e 74 6f 20 74 68 65 20 62 75 66 66 65 e.top.level.entry.into.the.buffe
5ae00 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 6e 73 75 72 65 2d 62 72 6f 77 73 r."...(emms-browser-ensure-brows
5ae20 65 72 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 62 64 61 74 61 20 28 65 6d 6d 73 2d er-buffer)...(let.((bdata.(emms-
5ae40 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 2d 74 72 65 65 20 74 79 70 65 20 31 20 74 browser-make-bdata-tree.type.1.t
5ae60 72 61 63 6b 73 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d racks.name))).....(emms-browser-
5ae80 69 6e 73 65 72 74 2d 66 6f 72 6d 61 74 20 62 64 61 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 insert-format.bdata)))..(defun.e
5aea0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 65 6d 70 74 79 2d 72 65 73 75 6c 74 2d 6d 65 mms-browser-show-empty-result-me
5aec0 73 73 61 67 65 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 73 6f 6d 65 20 68 65 6c 70 20 69 66 ssage.()..."Display.some.help.if
5aee0 20 74 68 65 20 63 61 63 68 65 2d 64 62 20 65 78 69 73 74 73 20 62 75 74 20 74 68 65 20 72 65 73 .the.cache-db.exists.but.the.res
5af00 75 6c 74 20 68 61 73 68 20 69 73 20 65 6d 70 74 79 2e 22 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 ult.hash.is.empty."...(emms-with
5af20 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 69 6e 73 65 72 74 20 -inhibit-read-only-t....(insert.
5af40 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 65 6d 70 74 79 2d 72 65 73 75 6c 74 2d 6d 65 73 73 61 (emms-filters-empty-result-messa
5af60 67 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 ge))))..(defun.emms-browser-show
5af80 2d 65 6d 70 74 79 2d 63 61 63 68 65 2d 6d 65 73 73 61 67 65 20 28 29 0a 20 20 22 44 69 73 70 6c -empty-cache-message.()..."Displ
5afa0 61 79 20 73 6f 6d 65 20 68 65 6c 70 20 69 66 20 74 68 65 20 63 61 63 68 65 20 69 73 20 65 6d 70 ay.some.help.if.the.cache.is.emp
5afc0 74 79 2e 22 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f ty."...(emms-with-inhibit-read-o
5afe0 6e 6c 79 2d 74 0a 20 20 20 28 69 6e 73 65 72 74 20 22 0a 57 65 6c 63 6f 6d 65 20 74 6f 20 45 4d nly-t....(insert.".Welcome.to.EM
5b000 4d 53 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 6e 6f 20 66 69 6c 65 MS...There.are.currently.no.file
5b020 73 20 69 6e 20 74 68 65 20 45 4d 4d 53 20 64 61 74 61 62 61 73 65 2e 0a 54 6f 20 62 72 6f 77 73 s.in.the.EMMS.database..To.brows
5b040 65 20 6d 75 73 69 63 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 74 65 6c 6c 20 45 4d 4d 53 20 77 e.music,.you.need.to.tell.EMMS.w
5b060 68 65 72 65 20 79 6f 75 72 0a 66 69 6c 65 73 20 61 72 65 2e 0a 0a 54 72 79 20 74 68 65 20 66 6f here.your.files.are...Try.the.fo
5b080 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 20 4d 2d 78 20 65 6d 6d 73 2d 61 64 64 llowing.commands:...M-x.emms-add
5b0a0 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 3a 0a 20 20 41 64 64 20 61 6c 6c 20 6d 75 73 69 63 -directory-tree:...Add.all.music
5b0c0 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 69 74 73 20 73 75 62 64 69 72 65 63 .in.a.directory.and.its.subdirec
5b0e0 74 6f 72 69 65 73 2e 0a 0a 20 4d 2d 78 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 tories....M-x.emms-add-directory
5b100 3a 0a 20 20 41 64 64 20 61 6c 6c 20 6d 75 73 69 63 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 :...Add.all.music.in.a.directory
5b120 0a 0a 20 4d 2d 78 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 3a 20 41 64 64 20 61 20 73 69 6e 67 ...M-x.emms-add-file:.Add.a.sing
5b140 6c 65 20 6d 75 73 69 63 20 66 69 6c 65 2e 0a 0a 41 66 74 65 72 20 79 6f 75 20 68 61 76 65 20 61 le.music.file...After.you.have.a
5b160 64 64 65 64 20 73 6f 6d 65 20 66 69 6c 65 73 2c 20 77 61 69 74 20 66 6f 72 20 45 4d 4d 53 20 74 dded.some.files,.wait.for.EMMS.t
5b180 6f 20 73 61 79 0a 27 61 6c 6c 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6c 6f 61 o.say.'all.track.information.loa
5b1a0 64 65 64 2c 27 20 74 68 65 6e 20 72 65 74 75 72 6e 20 74 6f 20 74 68 65 0a 62 72 6f 77 73 65 72 ded,'.then.return.to.the.browser
5b1c0 2c 20 61 6e 64 20 68 69 74 20 27 62 20 31 27 20 74 6f 20 72 65 66 72 65 73 68 2e 22 29 29 29 0a ,.and.hit.'b.1'.to.refresh."))).
5b1e0 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .;;.----------------------------
5b200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 42 75 69 6c 64 69 ----------------------.;;.Buildi
5b220 6e 67 20 61 20 73 75 62 69 74 65 6d 20 74 72 65 65 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ng.a.subitem.tree.;;.-----------
5b240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5b260 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 -------.(defun.emms-browser-next
5b280 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 20 28 63 75 72 72 65 6e 74 2d 6d 61 70 70 69 6e 67 29 0a -mapping-type.(current-mapping).
5b2a0 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20 73 65 6e 73 69 62 6c 65 20 6d 61 70 70 .."Return.the.next.sensible.mapp
5b2c0 69 6e 67 2e 0a 45 67 2e 20 69 66 20 43 55 52 52 45 4e 54 2d 4d 41 50 50 49 4e 47 20 69 73 20 63 ing..Eg..if.CURRENT-MAPPING.is.c
5b2e0 75 72 72 65 6e 74 6c 79 20 5c 5c 3d 27 69 6e 66 6f 2d 61 72 74 69 73 74 2c 20 72 65 74 75 72 6e urrently.\\='info-artist,.return
5b300 0a 20 5c 5c 3d 27 69 6e 66 6f 2d 61 6c 62 75 6d 2e 22 0a 20 20 28 61 6c 69 73 74 2d 67 65 74 20 ..\\='info-album."...(alist-get.
5b320 63 75 72 72 65 6e 74 2d 6d 61 70 70 69 6e 67 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 current-mapping.emms-browser-tre
5b340 65 2d 6e 6f 64 65 2d 6d 61 70 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 e-node-map))..(defun.emms-browse
5b360 72 2d 6d 61 6b 65 2d 62 64 61 74 61 2d 74 72 65 65 20 28 74 79 70 65 20 6c 65 76 65 6c 20 74 72 r-make-bdata-tree.(type.level.tr
5b380 61 63 6b 73 20 6e 61 6d 65 29 0a 20 20 22 42 75 69 6c 64 20 61 20 74 72 65 65 20 6f 66 20 62 72 acks.name)..."Build.a.tree.of.br
5b3a0 6f 77 73 65 72 20 44 42 20 65 6c 65 6d 65 6e 74 73 20 66 6f 72 20 74 72 61 63 6b 73 2e 22 0a 20 owser.DB.elements.for.tracks."..
5b3c0 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 0a 20 20 20 28 65 6d .(emms-browser-make-bdata....(em
5b3e0 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 2d 74 72 65 65 2d 72 65 63 75 72 ms-browser-make-bdata-tree-recur
5b400 73 65 0a 20 20 20 20 74 79 70 65 20 6c 65 76 65 6c 20 74 72 61 63 6b 73 29 0a 20 20 20 6e 61 6d se.....type.level.tracks)....nam
5b420 65 0a 20 20 20 74 79 70 65 20 6c 65 76 65 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 e....type.level))..(defun.emms-b
5b440 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 2d 74 72 65 65 2d 72 65 63 75 72 73 65 20 28 rowser-make-bdata-tree-recurse.(
5b460 74 79 70 65 20 6c 65 76 65 6c 20 74 72 61 63 6b 73 29 0a 20 20 22 42 75 69 6c 64 20 61 20 74 72 type.level.tracks)..."Build.a.tr
5b480 65 65 20 6f 66 20 61 6c 69 73 74 73 20 62 61 73 65 64 20 6f 6e 20 54 59 50 45 2c 20 4c 45 56 45 ee.of.alists.based.on.TYPE,.LEVE
5b4a0 4c 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 2c 20 54 52 41 43 4b 53 2e 0a L.and.a.list.of.tracks,.TRACKS..
5b4c0 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 54 59 50 45 20 69 73 20 5c 5c 3d 27 69 6e 66 6f For.example,.if.TYPE.is.\\='info
5b4e0 2d 79 65 61 72 2c 20 72 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6c 69 6b 65 3a 0a 61 72 74 -year,.return.an.alist.like:.art
5b500 69 73 74 31 20 2d 3e 20 61 6c 62 75 6d 31 20 2d 3e 20 2a 74 72 61 63 6b 2a 20 31 2e 2e 22 0a 20 ist1.->.album1.->.*track*.1.."..
5b520 20 28 6c 65 74 2a 20 28 28 6e 65 78 74 2d 74 79 70 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 .(let*.((next-type.(emms-browser
5b540 2d 6e 65 78 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 20 74 79 70 65 29 29 0a 20 20 20 20 20 20 -next-mapping-type.type)).......
5b560 20 20 20 28 6e 65 78 74 2d 6c 65 76 65 6c 20 28 31 2b 20 6c 65 76 65 6c 29 29 0a 20 20 20 20 20 ...(next-level.(1+.level))......
5b580 20 20 20 20 61 6c 69 73 74 20 6e 61 6d 65 20 5f 6e 65 77 2d 64 62 20 6e 65 77 2d 74 72 61 63 6b ....alist.name._new-db.new-track
5b5a0 73 29 0a 20 20 20 20 3b 3b 20 69 66 20 77 65 27 72 65 20 61 74 20 61 20 6c 65 61 66 2c 20 74 68 s).....;;.if.we're.at.a.leaf,.th
5b5c0 65 20 64 62 20 64 61 74 61 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 0a 20 20 e.db.data.is.a.list.of.tracks...
5b5e0 20 20 28 69 66 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 ..(if.(eq.type.'info-title).....
5b600 20 20 20 20 74 72 61 63 6b 73 0a 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 2c 20 6d ....tracks.......;;.otherwise,.m
5b620 61 6b 65 20 44 42 73 20 66 72 6f 6d 20 74 68 65 20 73 75 62 20 65 6c 65 6d 65 6e 74 73 0a 20 20 ake.DBs.from.the.sub.elements...
5b640 20 20 20 20 28 73 65 74 71 20 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d ....(setq.alist.............(emm
5b660 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 73 6f 72 74 65 64 2d 61 6c 69 73 74 0a 20 20 20 20 s-browser-make-sorted-alist.....
5b680 20 20 20 20 20 20 20 20 20 6e 65 78 74 2d 74 79 70 65 20 74 72 61 63 6b 73 29 29 0a 20 20 20 20 .........next-type.tracks)).....
5b6a0 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 65 6e 74 72 79 29 0a 20 20 20 20 20 20 ..(mapcar.(lambda.(entry).......
5b6c0 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ..........(setq.name.(emms-brows
5b6e0 65 72 2d 6d 61 6b 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er-make-name....................
5b700 20 20 20 20 20 20 20 20 20 65 6e 74 72 79 20 6e 65 78 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 .........entry.next-type))......
5b720 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 2d 74 72 61 63 6b 73 20 28 63 64 72 ...........(setq.new-tracks.(cdr
5b740 20 65 6e 74 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 .entry)).................(emms-b
5b760 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rowser-make-bdata...............
5b780 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 2d 74 72 65 65 ...(emms-browser-make-bdata-tree
5b7a0 2d 72 65 63 75 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 2d -recurse...................next-
5b7c0 74 79 70 65 20 6e 65 78 74 2d 6c 65 76 65 6c 20 6e 65 77 2d 74 72 61 63 6b 73 29 0a 20 20 20 20 type.next-level.new-tracks).....
5b7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 6e 65 78 74 2d 74 79 70 65 20 6e 65 78 74 .............name.next-type.next
5b800 2d 6c 65 76 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 73 74 29 29 29 29 -level))...............alist))))
5b820 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 6e 61 6d 65 20 ..(defun.emms-browser-make-name.
5b840 28 65 6e 74 72 79 20 74 79 70 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 61 6d 65 20 66 6f (entry.type)..."Return.a.name.fo
5b860 72 20 45 4e 54 52 59 20 61 6e 64 20 54 59 50 45 2c 20 75 73 65 64 20 66 6f 72 20 6d 61 6b 69 6e r.ENTRY.and.TYPE,.used.for.makin
5b880 67 20 61 20 62 64 61 74 61 20 6f 62 6a 65 63 74 2e 22 0a 0a 20 20 28 69 66 20 28 65 71 20 74 79 g.a.bdata.object."....(if.(eq.ty
5b8a0 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 pe.'info-title).......(let*.((tr
5b8c0 61 63 6b 20 28 63 61 64 72 20 65 6e 74 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ack.(cadr.entry))..............(
5b8e0 61 72 74 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e artist.(emms-track-get.track.'in
5b900 66 6f 2d 61 72 74 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 61 72 74 69 73 fo-artist))..............(aartis
5b920 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c t.(emms-track-get.track.'info-al
5b940 62 75 6d 61 72 74 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 74 6c 65 20 bumartist))..............(title.
5b960 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 .(emms-track-get.track.'info-tit
5b980 6c 65 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 74 69 73 74 20 28 69 66 20 28 le))...............(artist.(if.(
5b9a0 61 6e 64 20 61 72 74 69 73 74 20 61 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 and.artist.aartist).............
5b9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 61 61 72 74 69 73 74 20 22 20 3a .............(concat.aartist.".:
5b9e0 20 22 20 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .".artist)......................
5ba00 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 61 72 74 69 73 74 29 20 61 61 72 74 69 73 74 29 ..(if.(and.(not.artist).aartist)
5ba20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 74 69 ............................arti
5ba40 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 74 69 st..........................arti
5ba60 73 74 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 65 74 75 72 6e 20 61 20 74 69 74 6c st))))..........;;.return.a.titl
5ba80 65 20 6f 72 20 74 68 65 20 63 61 72 20 6f 66 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 28 69 e.or.the.car.of.entry.........(i
5baa0 66 20 28 61 6e 64 20 61 72 74 69 73 74 20 74 69 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 f.(and.artist.title)............
5bac0 20 28 63 6f 6e 63 61 74 20 61 72 74 69 73 74 20 22 20 2d 20 22 20 74 69 74 6c 65 29 0a 20 20 20 .(concat.artist.".-.".title)....
5bae0 20 20 20 20 20 20 20 28 63 61 72 20 65 6e 74 72 79 29 29 29 0a 20 20 20 20 28 63 61 72 20 65 6e .......(car.entry))).....(car.en
5bb00 74 72 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 try)))..(defun.emms-browser-trac
5bb20 6b 2d 6e 75 6d 62 65 72 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 k-number.(track)..."Return.a.str
5bb40 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 74 72 61 63 6b 20 6e 75 ing.representation.of.a.track.nu
5bb60 6d 62 65 72 2e 0a 54 68 65 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 65 6e 64 20 69 6e 20 61 20 73 mber..The.string.will.end.in.a.s
5bb80 70 61 63 65 2e 20 49 66 20 6e 6f 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 20 69 73 20 61 76 61 69 pace..If.no.track.number.is.avai
5bba0 6c 61 62 6c 65 2c 0a 72 65 74 75 72 6e 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 22 0a lable,.return.an.empty.string.".
5bbc0 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 6e 75 6d 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 ..(let.((tracknum.(emms-track-ge
5bbe0 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 29 29 29 0a 20 20 20 t.track.'info-tracknumber)))....
5bc00 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 74 72 61 63 6b 6e 75 6d 29 .(if.(or.(not.(stringp.tracknum)
5bc20 29 20 28 73 74 72 69 6e 67 3d 20 74 72 61 63 6b 6e 75 6d 20 22 30 22 29 29 0a 20 20 20 20 20 20 ).(string=.tracknum."0")).......
5bc40 20 20 22 22 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 28 69 66 20 28 65 .."".......(concat........(if.(e
5bc60 71 20 28 6c 65 6e 67 74 68 20 74 72 61 63 6b 6e 75 6d 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 q.(length.tracknum).1)..........
5bc80 20 20 28 63 6f 6e 63 61 74 20 22 30 22 20 74 72 61 63 6b 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 ..(concat."0".tracknum).........
5bca0 20 74 72 61 63 6b 6e 75 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 .tracknum)))))..(defun.emms-brow
5bcc0 73 65 72 2d 64 69 73 63 2d 6e 75 6d 62 65 72 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 ser-disc-number.(track)..."Retur
5bce0 6e 20 61 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 n.a.string.representation.of.the
5bd00 20 54 52 41 43 4b 20 6e 75 6d 62 65 72 2e 0a 54 68 65 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 65 .TRACK.number..The.string.will.e
5bd20 6e 64 20 69 6e 20 61 20 73 70 61 63 65 2e 20 49 66 20 6e 6f 20 74 72 61 63 6b 20 6e 75 6d 62 65 nd.in.a.space..If.no.track.numbe
5bd40 72 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2c 0a 72 65 74 75 72 6e 20 61 6e 20 65 6d 70 74 79 20 r.is.available,.return.an.empty.
5bd60 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 73 63 6e 75 6d 20 28 65 6d 6d 73 2d string."...(let.((discnum.(emms-
5bd80 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 track-get.track.'info-discnumber
5bda0 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 64 69 ))).....(if.(or.(not.(stringp.di
5bdc0 73 63 6e 75 6d 29 29 20 28 73 74 72 69 6e 67 3d 20 64 69 73 63 6e 75 6d 20 22 30 22 29 29 0a 20 scnum)).(string=.discnum."0"))..
5bde0 20 20 20 20 20 20 20 22 22 0a 20 20 20 20 20 20 64 69 73 63 6e 75 6d 29 29 29 0a 0a 28 64 65 66 ......."".......discnum)))..(def
5be00 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 79 65 61 72 2d 6e 75 6d 62 65 72 20 28 74 72 61 un.emms-browser-year-number.(tra
5be20 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 ck)..."Return.a.string.represent
5be40 61 74 69 6f 6e 20 6f 66 20 61 20 54 52 41 43 4b 5c 5c 3d 27 73 20 79 65 61 72 2e 0a 54 68 69 73 ation.of.a.TRACK\\='s.year..This
5be60 20 77 69 6c 6c 20 62 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 5c 5c 3d 27 28 31 39 39 38 29 20 .will.be.in.the.form.\\='(1998).
5be80 5c 5c 3d 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 79 65 61 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b \\='."...(let.((year.(emms-track
5bea0 2d 67 65 74 2d 79 65 61 72 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 -get-year.track))).....(if.(or.(
5bec0 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 79 65 61 72 29 29 20 28 73 74 72 69 6e 67 3d 20 79 65 61 not.(stringp.year)).(string=.yea
5bee0 72 20 22 30 22 29 29 0a 20 20 20 20 20 20 20 20 22 22 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 r."0"))........."".......(concat
5bf00 0a 20 20 20 20 20 20 20 22 28 22 20 79 65 61 72 20 22 29 20 22 29 29 29 29 0a 0a 28 64 65 66 75 ........"(".year.")."))))..(defu
5bf20 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 64 75 72 61 74 69 6f 6e 20 28 74 n.emms-browser-track-duration.(t
5bf40 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 rack)..."Return.a.string.represe
5bf60 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 54 52 41 43 4b 20 64 75 72 61 74 69 6f 6e 2e 0a 49 ntation.of.the.TRACK.duration..I
5bf80 66 20 6e 6f 20 64 75 72 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 72 65 74 75 f.no.duration.is.available,.retu
5bfa0 72 6e 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6d rn.an.empty.string."...(let.((pm
5bfc0 69 6e 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 in.(emms-track-get.track.'info-p
5bfe0 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 73 65 63 20 laying-time-min)).........(psec.
5c000 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 (emms-track-get.track.'info-play
5c020 69 6e 67 2d 74 69 6d 65 2d 73 65 63 29 29 0a 20 20 20 20 20 20 20 20 28 70 74 6f 74 20 28 65 6d ing-time-sec)).........(ptot.(em
5c040 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 ms-track-get.track.'info-playing
5c060 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 70 6d 69 6e 20 70 73 -time))).....(cond.((and.pmin.ps
5c080 65 63 29 20 28 66 6f 72 6d 61 74 20 22 25 30 32 64 3a 25 30 32 64 22 20 70 6d 69 6e 20 70 73 65 ec).(format."%02d:%02d".pmin.pse
5c0a0 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 74 6f 74 20 28 66 6f 72 6d 61 74 20 20 22 25 30 c))...........(ptot.(format.."%0
5c0c0 32 64 3a 25 30 32 64 22 20 28 2f 20 70 74 6f 74 20 36 30 29 20 28 25 20 70 74 6f 74 20 36 30 29 2d:%02d".(/.ptot.60).(%.ptot.60)
5c0e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 22 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ))...........(t.""))))..(defun.e
5c100 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 62 64 61 74 61 20 28 64 61 74 61 20 6e 61 6d mms-browser-make-bdata.(data.nam
5c120 65 20 74 79 70 65 20 6c 65 76 65 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 72 6f 77 73 65 e.type.level)..."Return.a.browse
5c140 72 20 64 61 74 61 20 69 74 65 6d 20 66 72 6f 6d 20 41 4c 49 53 54 2e 0a 44 41 54 41 20 73 68 6f r.data.item.from.ALIST..DATA.sho
5c160 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 44 42 20 69 74 65 6d 73 2c 20 6f 72 20 61 20 uld.be.a.list.of.DB.items,.or.a.
5c180 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 2e 0a 4e 41 4d 45 20 69 73 20 61 20 6e 61 6d 65 20 66 list.of.tracks..NAME.is.a.name.f
5c1a0 6f 72 20 74 68 65 20 44 42 20 69 74 65 6d 2e 0a 54 59 50 45 20 69 73 20 61 20 63 61 74 65 67 6f or.the.DB.item..TYPE.is.a.catego
5c1c0 72 79 20 74 68 65 20 64 61 74 61 20 69 73 20 6f 72 67 61 6e 69 73 65 64 20 62 79 2c 20 73 75 63 ry.the.data.is.organised.by,.suc
5c1e0 68 20 61 73 20 5c 5c 3d 27 69 6e 66 6f 2d 61 72 74 69 73 74 2e 0a 4c 45 56 45 4c 20 69 73 20 74 h.as.\\='info-artist..LEVEL.is.t
5c200 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 73 75 62 6c 65 76 65 6c 20 74 68 65 20 64 62 he.number.of.the.sublevel.the.db
5c220 20 69 74 65 6d 20 77 69 6c 6c 20 62 65 20 70 6c 61 63 65 64 20 69 6e 2e 22 0a 20 20 28 6c 69 73 .item.will.be.placed.in."...(lis
5c240 74 20 28 63 6f 6e 73 20 27 74 79 70 65 20 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e t.(cons.'type.type).........(con
5c260 73 20 27 6c 65 76 65 6c 20 6c 65 76 65 6c 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 6e s.'level.level).........(cons.'n
5c280 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 64 61 74 61 20 64 61 ame.name).........(cons.'data.da
5c2a0 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d ta)))..(defun.emms-browser-make-
5c2c0 61 6c 69 73 74 20 28 74 79 70 65 20 74 72 61 63 6b 73 29 0a 20 20 22 4d 61 6b 65 20 61 6e 20 61 alist.(type.tracks)..."Make.an.a
5c2e0 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 6f 66 20 54 59 50 45 20 2d 3e 20 54 52 41 43 4b 53 2e 0a list.mapping.of.TYPE.->.TRACKS..
5c300 49 74 65 6d 73 20 77 69 74 68 20 6e 6f 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 54 59 50 45 20 Items.with.no.metadata.for.TYPE.
5c320 77 69 6c 6c 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 5c 5c 3d 27 6d 69 73 63 5c 5c 3d 27 22 0a will.be.placed.in.\\='misc\\='".
5c340 20 20 28 6c 65 74 20 28 64 62 20 6b 65 79 20 65 78 69 73 74 69 6e 67 20 74 72 61 63 6b 6e 75 6d ..(let.(db.key.existing.tracknum
5c360 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 74 72 61 63 6b 20 74 72 61 63 6b 73 29 0a 20 20 20 ).....(dolist.(track.tracks)....
5c380 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 ...(setq.key.(emms-browser-get-t
5c3a0 72 61 63 6b 2d 66 69 65 6c 64 20 74 72 61 63 6b 20 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 77 rack-field.track.type)).......(w
5c3c0 68 65 6e 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 hen.(eq.type.'info-title).......
5c3e0 20 20 3b 3b 20 74 72 79 20 61 6e 64 20 6d 61 6b 65 20 65 76 65 72 79 20 74 72 61 63 6b 20 75 6e ..;;.try.and.make.every.track.un
5c400 69 71 75 65 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 6e 75 6d 20 28 65 6d 6d ique.........(setq.tracknum.(emm
5c420 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 6e 75 6d 62 65 72 20 74 72 61 63 6b 29 29 0a 20 s-browser-track-number.track))..
5c440 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 74 72 61 63 6b 6e 75 6d 20 22 22 29 .......(if.(string=.tracknum."")
5c460 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 66 69 6c 65 2d 6e 61 6d .............(setq.key.(file-nam
5c480 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-nondirectory..................
5c4a0 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d ......(emms-track-get.track.'nam
5c4c0 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 63 6f 6e 63 61 74 e)))...........(setq.key.(concat
5c4e0 20 74 72 61 63 6b 6e 75 6d 20 6b 65 79 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 78 .tracknum.key)))).......(setq.ex
5c500 69 73 74 69 6e 67 20 28 61 73 73 6f 63 20 6b 65 79 20 64 62 29 29 0a 20 20 20 20 20 20 28 69 66 isting.(assoc.key.db)).......(if
5c520 20 65 78 69 73 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 65 78 69 73 .existing...........(setcdr.exis
5c540 74 69 6e 67 20 28 63 6f 6e 73 20 74 72 61 63 6b 20 28 63 64 72 20 65 78 69 73 74 69 6e 67 29 29 ting.(cons.track.(cdr.existing))
5c560 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 6b 65 79 20 28 6c 69 73 74 20 ).........(push.(cons.key.(list.
5c580 74 72 61 63 6b 29 29 20 64 62 29 29 29 0a 20 20 20 20 3b 3b 20 73 6f 72 74 20 74 68 65 20 65 6e track)).db))).....;;.sort.the.en
5c5a0 74 72 69 65 73 20 77 65 27 76 65 20 62 75 69 6c 74 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 tries.we've.built.....(dolist.(i
5c5c0 74 65 6d 20 64 62 29 0a 20 20 20 20 20 20 28 73 65 74 63 64 72 20 69 74 65 6d 20 28 6e 72 65 76 tem.db).......(setcdr.item.(nrev
5c5e0 65 72 73 65 20 28 63 64 72 20 69 74 65 6d 29 29 29 29 0a 20 20 20 20 64 62 29 29 0a 0a 28 64 65 erse.(cdr.item)))).....db))..(de
5c600 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 73 6f 72 74 65 64 2d 61 6c 69 fun.emms-browser-make-sorted-ali
5c620 73 74 20 28 74 79 70 65 20 74 72 61 63 6b 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 6f 72 st.(type.tracks)..."Return.a.sor
5c640 74 65 64 20 61 6c 69 73 74 20 6f 66 20 54 52 41 43 4b 53 2e 0a 54 59 50 45 20 69 73 20 74 68 65 ted.alist.of.TRACKS..TYPE.is.the
5c660 20 6d 65 74 61 64 61 74 61 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 61 6c 69 73 74 20 62 79 20 2d .metadata.to.make.the.alist.by.-
5c680 20 65 67 2e 20 69 66 20 69 74 5c 5c 3d 27 73 0a 5c 5c 3d 27 69 6e 66 6f 2d 61 72 74 69 73 74 2c .eg..if.it\\='s.\\='info-artist,
5c6a0 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 61 72 74 69 73 74 73 20 77 69 6c 6c 20 62 65 20 6d 61 64 .an.alist.of.artists.will.be.mad
5c6c0 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 61 6c 69 73 74 0a 20 e."...(emms-browser-sort-alist..
5c6e0 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 61 6c 69 73 74 20 74 79 70 65 20 ..(emms-browser-make-alist.type.
5c700 74 72 61 63 6b 73 29 0a 20 20 20 74 79 70 65 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d tracks)....type))..;;.----------
5c720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5c740 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 42 44 41 54 41 20 61 63 63 65 73 73 6f 72 73 20 61 6e 64 20 --------.;;.BDATA.accessors.and.
5c760 70 72 65 64 69 63 61 74 65 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d predicates.;;.------------------
5c780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5c7a0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 6c 65 76 65 ..(defun.emms-browser-bdata-leve
5c7c0 6c 20 28 62 64 61 74 61 29 0a 20 20 28 63 64 72 20 28 61 73 73 71 20 27 6c 65 76 65 6c 20 62 64 l.(bdata)...(cdr.(assq.'level.bd
5c7e0 61 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 ata)))..(defun.emms-browser-bdat
5c800 61 2d 6e 61 6d 65 20 28 62 64 61 74 61 29 0a 20 20 28 63 64 72 20 28 61 73 73 71 20 27 6e 61 6d a-name.(bdata)...(cdr.(assq.'nam
5c820 65 20 62 64 61 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d e.bdata)))..(defun.emms-browser-
5c840 62 64 61 74 61 2d 74 79 70 65 20 28 62 64 61 74 61 29 0a 20 20 28 63 64 72 20 28 61 73 73 71 20 bdata-type.(bdata)...(cdr.(assq.
5c860 27 74 79 70 65 20 62 64 61 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 'type.bdata)))..(defun.emms-brow
5c880 73 65 72 2d 62 64 61 74 61 2d 64 61 74 61 20 28 62 64 61 74 61 29 0a 20 20 28 63 64 72 20 28 61 ser-bdata-data.(bdata)...(cdr.(a
5c8a0 73 73 71 20 27 64 61 74 61 20 62 64 61 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ssq.'data.bdata)))..(defun.emms-
5c8c0 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 70 20 28 6f 62 6a 29 0a 20 20 22 54 72 75 65 20 69 66 browser-bdata-p.(obj)..."True.if
5c8e0 20 6f 62 6a 20 69 73 20 61 20 42 44 41 54 41 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 63 6f 6e 73 .obj.is.a.BDATA.object."...(cons
5c900 70 20 28 61 73 73 71 20 27 64 61 74 61 20 6f 62 6a 29 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d p.(assq.'data.obj)))..;;.-------
5c920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5c940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 53 6f 72 74 69 6e 67 20 65 78 70 61 6e 64 65 64 20 -----------.;;.Sorting.expanded.
5c960 65 6e 74 72 69 65 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d entries.;;.---------------------
5c980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 -----------------------------..(
5c9a0 64 65 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 63 61 64 72 20 defmacro.emms-browser-sort-cadr.
5c9c0 28 73 6f 72 74 2d 66 75 6e 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e (sort-func)..."Return.a.function
5c9e0 20 74 6f 20 73 6f 72 74 20 61 6e 20 61 6c 69 73 74 20 75 73 69 6e 67 20 53 4f 52 54 2d 46 55 4e .to.sort.an.alist.using.SORT-FUN
5ca00 43 2e 0a 54 68 69 73 20 73 6f 72 74 69 6e 67 20 70 72 65 64 69 63 61 74 65 20 77 69 6c 6c 20 63 C..This.sorting.predicate.will.c
5ca20 6f 6d 70 61 72 65 20 74 68 65 20 63 61 64 72 20 6f 66 20 65 61 63 68 20 65 6e 74 72 79 2e 0a 53 ompare.the.cadr.of.each.entry..S
5ca40 4f 52 54 2d 46 55 4e 43 20 73 68 6f 75 6c 64 20 62 65 20 61 20 70 6c 61 79 6c 69 73 74 20 73 6f ORT-FUNC.should.be.a.playlist.so
5ca60 72 74 69 6e 67 20 70 72 65 64 69 63 61 74 65 20 6c 69 6b 65 0a 60 65 6d 6d 73 2d 70 6c 61 79 6c rting.predicate.like.`emms-playl
5ca80 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 74 75 72 61 6c 2d 6f 72 64 65 72 27 2e 22 0a 20 20 28 ist-sort-by-natural-order'."...(
5caa0 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 74 29 29 0a 20 20 60 28 6c 61 6d 62 64 61 20 28 61 declare.(debug.t))...`(lambda.(a
5cac0 20 62 29 0a 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 2c 73 6f 72 74 2d 66 75 6e 63 20 28 63 61 .b)......(funcall.,sort-func.(ca
5cae0 64 72 20 61 29 20 28 63 61 64 72 20 62 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 6d dr.a).(cadr.b))))..(defmacro.emm
5cb00 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 63 61 72 20 28 73 6f 72 74 2d 66 75 6e 63 29 0a 20 s-browser-sort-car.(sort-func)..
5cb20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 6f 72 74 20 61 6e 20 61 ."Return.a.function.to.sort.an.a
5cb40 6c 69 73 74 20 75 73 69 6e 67 20 53 4f 52 54 2d 46 55 4e 43 2e 0a 54 68 69 73 20 73 6f 72 74 69 list.using.SORT-FUNC..This.sorti
5cb60 6e 67 20 70 72 65 64 69 63 61 74 65 20 77 69 6c 6c 20 63 6f 6d 70 61 72 65 20 74 68 65 20 63 61 ng.predicate.will.compare.the.ca
5cb80 72 20 6f 66 20 65 61 63 68 20 65 6e 74 72 79 2e 0a 53 4f 52 54 2d 46 55 4e 43 20 73 68 6f 75 6c r.of.each.entry..SORT-FUNC.shoul
5cba0 64 20 62 65 20 61 20 70 6c 61 79 6c 69 73 74 20 73 6f 72 74 69 6e 67 20 70 72 65 64 69 63 61 74 d.be.a.playlist.sorting.predicat
5cbc0 65 20 6c 69 6b 65 0a 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 e.like.`emms-playlist-sort-by-na
5cbe0 74 75 72 61 6c 2d 6f 72 64 65 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 tural-order'."...(declare.(debug
5cc00 20 74 29 29 0a 20 20 60 28 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 20 20 20 20 28 66 75 6e 63 .t))...`(lambda.(a.b)......(func
5cc20 61 6c 6c 20 2c 73 6f 72 74 2d 66 75 6e 63 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 all.,sort-func.(car.a).(car.b)))
5cc40 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 2d 74 )..(defun.emms-browser-sort-by-t
5cc60 72 61 63 6b 20 28 61 6c 69 73 74 29 0a 20 20 22 53 6f 72 74 20 61 6e 20 41 4c 49 53 54 20 62 79 rack.(alist)..."Sort.an.ALIST.by
5cc80 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 65 61 63 68 20 65 6e 74 72 79 2e 0a 55 73 65 73 20 .the.tracks.in.each.entry..Uses.
5cca0 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f `emms-browser-track-sort-functio
5ccc0 6e 27 2e 22 0a 20 20 28 69 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 73 6f n'."...(if.emms-browser-track-so
5cce0 72 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 73 6f 72 74 20 61 6c 69 73 74 20 28 65 rt-function.......(sort.alist.(e
5cd00 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 63 61 64 72 0a 20 20 20 20 20 20 20 20 20 20 mms-browser-sort-cadr...........
5cd20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 73 6f 72 74 .........emms-browser-track-sort
5cd40 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 61 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 -function)).....alist))..(defun.
5cd60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 2d 6e 61 6d 65 20 28 61 6c 69 73 74 emms-browser-sort-by-name.(alist
5cd80 29 0a 20 20 22 53 6f 72 74 20 41 4c 49 53 54 20 62 79 20 6b 65 79 73 20 61 6c 70 68 61 62 65 74 )..."Sort.ALIST.by.keys.alphabet
5cda0 69 63 61 6c 6c 79 2e 0a 55 73 65 73 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 6c 70 68 61 ically..Uses.`emms-browser-alpha
5cdc0 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 69 66 20 65 6d 6d 73 2d 62 72 6f -sort-function'."...(if.emms-bro
5cde0 77 73 65 72 2d 61 6c 70 68 61 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 wser-alpha-sort-function.......(
5ce00 73 6f 72 74 20 61 6c 69 73 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 63 61 sort.alist.(emms-browser-sort-ca
5ce20 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 r....................emms-browse
5ce40 72 2d 61 6c 70 68 61 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 61 6c 69 73 r-alpha-sort-function)).....alis
5ce60 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 t))..(defun.emms-browser-sort-by
5ce80 2d 79 65 61 72 2d 6f 72 2d 6e 61 6d 65 20 28 61 6c 69 73 74 29 0a 20 20 22 53 6f 72 74 20 41 4c -year-or-name.(alist)..."Sort.AL
5cea0 49 53 54 20 62 61 73 65 64 20 6f 6e 20 79 65 61 72 20 6f 72 20 6e 61 6d 65 2e 22 0a 20 20 28 73 IST.based.on.year.or.name."...(s
5cec0 6f 72 74 20 61 6c 69 73 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 63 61 64 ort.alist.(emms-browser-sort-cad
5cee0 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 r................'emms-browser-s
5cf00 6f 72 74 2d 62 79 2d 79 65 61 72 2d 6f 72 2d 6e 61 6d 65 2d 70 29 29 29 0a 0a 28 64 65 66 75 6e ort-by-year-or-name-p)))..(defun
5cf20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 2d 79 65 61 72 2d 6f 72 2d 6e 61 .emms-browser-sort-by-year-or-na
5cf40 6d 65 2d 70 20 28 61 20 62 29 0a 20 20 22 53 6f 72 74 20 41 20 61 6e 64 20 42 20 62 79 20 6f 6e me-p.(a.b)..."Sort.A.and.B.by.on
5cf60 20 79 65 61 72 20 6f 72 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 74 68 69 73 .year.or.name."...;;.FIXME:.this
5cf80 20 69 73 20 61 20 62 69 74 20 6f 66 20 61 20 68 61 63 6b 0a 20 20 28 6c 65 74 20 28 28 61 2d 64 .is.a.bit.of.a.hack...(let.((a-d
5cfa0 65 73 63 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d esc.(concat..................(em
5cfc0 6d 73 2d 62 72 6f 77 73 65 72 2d 79 65 61 72 2d 6e 75 6d 62 65 72 20 61 29 0a 20 20 20 20 20 20 ms-browser-year-number.a).......
5cfe0 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 27 69 6e ...........(emms-track-get.a.'in
5d000 66 6f 2d 61 6c 62 75 6d 20 22 6d 69 73 63 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 2d 64 65 fo-album."misc"))).........(b-de
5d020 73 63 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d sc.(concat..................(emm
5d040 73 2d 62 72 6f 77 73 65 72 2d 79 65 61 72 2d 6e 75 6d 62 65 72 20 62 29 0a 20 20 20 20 20 20 20 s-browser-year-number.b)........
5d060 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 27 69 6e 66 ..........(emms-track-get.b.'inf
5d080 6f 2d 61 6c 62 75 6d 20 22 6d 69 73 63 22 29 29 29 29 0a 20 20 20 20 28 73 74 72 69 6e 67 3c 20 o-album."misc")))).....(string<.
5d0a0 61 2d 64 65 73 63 20 62 2d 64 65 73 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 a-desc.b-desc)))..(defun.emms-br
5d0c0 6f 77 73 65 72 2d 73 6f 72 74 2d 61 6c 69 73 74 20 28 61 6c 69 73 74 20 74 79 70 65 29 0a 20 20 owser-sort-alist.(alist.type)...
5d0e0 22 53 6f 72 74 20 41 4c 49 53 54 20 75 73 69 6e 67 20 74 68 65 20 73 6f 72 74 69 6e 67 20 66 75 "Sort.ALIST.using.the.sorting.fu
5d100 6e 63 74 69 6f 6e 20 66 6f 72 20 54 59 50 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 6f 72 74 2d nction.for.TYPE."...(let.((sort-
5d120 66 75 6e 63 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 func..........(cond...........((
5d140 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 6c or.............(eq.type.'info-al
5d160 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 79 70 65 20 bumartist).............(eq.type.
5d180 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 79 'info-artist).............(eq.ty
5d1a0 70 65 20 27 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 pe.'info-composer).............(
5d1c0 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 0a 20 20 20 20 20 20 20 eq.type.'info-performer)........
5d1e0 20 20 20 20 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 79 65 61 72 29 0a 20 20 20 20 20 20 .....(eq.type.'info-year).......
5d200 20 20 20 20 20 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 29 0a 20 20 20 ......(eq.type.'info-genre))....
5d220 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 2d 6e 61 ........'emms-browser-sort-by-na
5d240 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 6c me)...........((eq.type.'info-al
5d260 62 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 6c 62 bum)............emms-browser-alb
5d280 75 6d 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 um-sort-function)...........((eq
5d2a0 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 65 .type.'info-title)............'e
5d2c0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 6f 72 74 2d 62 79 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 mms-browser-sort-by-track)......
5d2e0 20 20 20 20 20 28 74 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 43 61 6e 27 74 20 .....(t.(message.(concat."Can't.
5d300 73 6f 72 74 20 75 6e 6b 6e 6f 77 6e 20 6d 61 70 70 69 6e 67 21 22 20 74 79 70 65 29 29 29 29 29 sort.unknown.mapping!".type)))))
5d320 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 6f 72 74 2d 66 75 6e 63 20 61 6c 69 73 74 29 29 ).....(funcall.sort-func.alist))
5d340 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d )...;;.-------------------------
5d360 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 53 75 62 -------------------------.;;.Sub
5d380 69 74 65 6d 20 6f 70 65 72 61 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 62 75 66 66 65 72 0a 3b 3b item.operations.on.the.buffer.;;
5d3a0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
5d3c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 -------------------..(defun.emms
5d3e0 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 -browser-bdata-at-point.()..."Re
5d400 74 75 72 6e 20 74 68 65 20 62 64 61 74 61 20 6f 62 6a 65 63 74 20 61 74 20 70 6f 69 6e 74 2e 0a turn.the.bdata.object.at.point..
5d420 49 6e 63 6c 75 64 65 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 20 28 73 Includes.information.at.point.(s
5d440 75 63 68 20 61 73 20 61 6c 62 75 6d 20 6e 61 6d 65 29 2c 20 61 6e 64 20 6d 65 74 61 64 61 74 61 uch.as.album.name),.and.metadata
5d460 2e 22 0a 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 6c 69 6e 65 2d 62 65 ."...(get-text-property.(line-be
5d480 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ginning-position)...............
5d4a0 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 29 29 0a 0a 28 64 .......'emms-browser-bdata))..(d
5d4c0 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 20 efun.emms-browser-data-at-point.
5d4e0 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 61 74 61 20 73 74 6f 72 65 64 20 75 6e 64 ()..."Return.the.data.stored.und
5d500 65 72 20 70 6f 69 6e 74 2e 0a 54 68 69 73 20 77 69 6c 6c 20 62 65 20 61 20 6c 69 73 74 20 6f 66 er.point..This.will.be.a.list.of
5d520 20 44 42 20 69 74 65 6d 73 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 .DB.items."...(emms-browser-bdat
5d540 61 2d 64 61 74 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f a-data.(emms-browser-bdata-at-po
5d560 69 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 int)))..(defun.emms-browser-leve
5d580 6c 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 l-at-point.()..."Return.the.curr
5d5a0 65 6e 74 20 6c 65 76 65 6c 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 72 6f ent.level.at.point."...(emms-bro
5d5c0 77 73 65 72 2d 62 64 61 74 61 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 wser-bdata-level.(emms-browser-b
5d5e0 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 data-at-point)))..(defun.emms-br
5d600 6f 77 73 65 72 2d 74 72 61 63 6b 73 2d 61 74 2d 70 6f 69 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c owser-tracks-at-point.(&optional
5d620 20 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b .node)..."Return.a.list.of.track
5d640 73 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 74 72 61 63 6b 73 29 0a 20 20 20 s.at.point."...(let.(tracks)....
5d660 20 28 64 6f 6c 69 73 74 20 28 6e 6f 64 65 20 28 69 66 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 .(dolist.(node.(if.node.........
5d680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............node..............
5d6a0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 61 74 61 2d 61 74 2d 70 6f 69 .......(emms-browser-data-at-poi
5d6c0 6e 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 nt))).......(if.(not.(emms-brows
5d6e0 65 72 2d 62 64 61 74 61 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 er-bdata-p.node))...........(set
5d700 71 20 74 72 61 63 6b 73 20 28 63 6f 6e 73 20 6e 6f 64 65 20 74 72 61 63 6b 73 29 29 0a 20 20 20 q.tracks.(cons.node.tracks))....
5d720 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(setq.tracks...............
5d740 28 61 70 70 65 6e 64 20 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (append.tracks..................
5d760 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 73 2d 61 74 2d 70 6f 69 .....(emms-browser-tracks-at-poi
5d780 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d nt........................(emms-
5d7a0 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 64 61 74 61 20 6e 6f 64 65 29 29 29 29 29 29 0a 20 20 browser-bdata-data.node))))))...
5d7c0 20 20 74 72 61 63 6b 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ..tracks))..(defun.emms-browser-
5d7e0 65 78 70 61 6e 64 2d 6f 6e 65 2d 6c 65 76 65 6c 20 28 29 0a 20 20 22 45 78 70 61 6e 64 20 74 68 expand-one-level.()..."Expand.th
5d800 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 62 79 20 6f 6e 65 20 73 75 62 6c 65 76 65 6c 2e 22 e.current.line.by.one.sublevel."
5d820 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 ...(interactive)...(let*.((data.
5d840 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 (emms-browser-data-at-point)))..
5d860 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 ...(save-excursion.......(forwar
5d880 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 d-line.1).......(beginning-of-li
5d8a0 6e 65 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 64 61 74 61 2d 69 74 65 6d 20 64 61 74 ne).......(dolist.(data-item.dat
5d8c0 61 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e 73 65 72 74 2d a).........(emms-browser-insert-
5d8e0 64 61 74 61 2d 69 74 65 6d 20 64 61 74 61 2d 69 74 65 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e data-item.data-item)))))..(defun
5d900 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e 73 65 72 74 2d 64 61 74 61 2d 69 74 65 6d 20 28 .emms-browser-insert-data-item.(
5d920 64 61 74 61 2d 69 74 65 6d 29 0a 20 20 22 49 6e 73 65 72 74 20 44 41 54 41 2d 49 54 45 4d 20 69 data-item)..."Insert.DATA-ITEM.i
5d940 6e 74 6f 20 74 68 65 20 62 75 66 66 65 72 2e 0a 54 68 69 73 20 63 68 65 63 6b 73 20 44 41 54 41 nto.the.buffer..This.checks.DATA
5d960 2d 49 54 45 4d 27 73 20 6c 65 76 65 6c 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 68 6f 77 20 6d -ITEM's.level.to.determine.how.m
5d980 75 63 68 20 74 6f 20 69 6e 64 65 6e 74 2e 0a 54 68 65 20 6c 69 6e 65 20 77 69 6c 6c 20 68 61 76 uch.to.indent..The.line.will.hav
5d9a0 65 20 61 20 70 72 6f 70 65 72 74 79 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 20 e.a.property.emms-browser-bdata.
5d9c0 73 74 6f 72 69 6e 67 20 73 75 62 69 74 65 6d 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 storing.subitem.information."...
5d9e0 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e 73 65 72 74 2d 66 6f 72 6d 61 74 20 64 61 74 61 (emms-browser-insert-format.data
5da00 2d 69 74 65 6d 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6e -item))..(defun.emms-browser-fin
5da20 64 2d 65 6e 74 72 79 2d 6d 6f 72 65 2d 74 68 61 6e 2d 6c 65 76 65 6c 20 28 6c 65 76 65 6c 29 0a d-entry-more-than-level.(level).
5da40 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 6e 65 78 74 20 65 6e 74 72 79 20 6d 6f 72 65 .."Move.point.to.next.entry.more
5da60 20 74 68 61 6e 20 4c 45 56 45 4c 20 61 6e 64 20 72 65 74 75 72 6e 20 70 6f 69 6e 74 2e 0a 49 66 .than.LEVEL.and.return.point..If
5da80 20 6e 6f 20 65 6e 74 72 79 20 65 78 69 74 73 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 0a 52 65 74 .no.entry.exits,.return.nil..Ret
5daa0 75 72 6e 73 20 70 6f 69 6e 74 20 69 66 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 20 61 20 61 6e 20 urns.point.if.currently.on.a.an.
5dac0 65 6e 74 72 79 20 6d 6f 72 65 20 74 68 61 6e 20 4c 45 56 45 4c 2e 22 0a 20 20 28 6c 65 74 20 28 entry.more.than.LEVEL."...(let.(
5dae0 28 6f 6c 64 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 6c 65 76 65 6c 2d (old-pos.(point)).........level-
5db00 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 at-point).....(forward-line.1)..
5db20 20 20 20 28 73 65 74 71 20 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 20 28 65 6d 6d 73 2d 62 72 ...(setq.level-at-point.(emms-br
5db40 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 69 66 20 28 owser-level-at-point)).....(if.(
5db60 61 6e 64 20 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 and.level-at-point..............
5db80 28 3e 20 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 20 6c 65 76 65 6c 29 29 0a 20 20 20 20 20 20 (>.level-at-point.level)).......
5dba0 20 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6f 6c 64 2d 70 ..(point).......(goto-char.old-p
5dbc0 6f 73 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 os).......nil)))..(defun.emms-br
5dbe0 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 20 28 29 0a 20 20 22 54 72 75 owser-subitems-visible.()..."Tru
5dc00 65 20 69 66 20 74 68 65 72 65 20 61 72 65 20 61 6e 79 20 73 75 62 65 6e 74 72 69 65 73 20 76 69 e.if.there.are.any.subentries.vi
5dc20 73 69 62 6c 65 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d 6c sible.point."...(let.((current-l
5dc40 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e evel.(emms-browser-level-at-poin
5dc60 74 29 29 0a 20 20 20 20 20 20 20 20 6e 65 77 2d 6c 65 76 65 6c 29 0a 20 20 20 20 28 73 61 76 65 t)).........new-level).....(save
5dc80 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 -excursion.......(re-search-forw
5dca0 61 72 64 20 22 5c 6e 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 74 ard."\n".nil.t).......(when.(set
5dcc0 71 20 6e 65 77 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d q.new-level.(emms-browser-level-
5dce0 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 3e 20 6e 65 77 2d 6c 65 76 65 6c 20 at-point)).........(>.new-level.
5dd00 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d current-level)))))..(defun.emms-
5dd20 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 65 78 69 73 74 20 28 29 0a 20 20 22 54 72 75 browser-subitems-exist.()..."Tru
5dd40 65 20 69 66 20 69 74 27 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 70 61 6e 64 20 74 68 65 e.if.it's.possible.to.expand.the
5dd60 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 6e 6f 74 20 28 65 71 20 28 65 6d 6d 73 .current.line."...(not.(eq.(emms
5dd80 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 -browser-bdata-type.............
5dda0 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 (emms-browser-bdata-at-point))..
5ddc0 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 0a 0a 28 64 65 66 75 6e ..........'info-title)))..(defun
5dde0 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 76 65 2d 75 70 2d 6c 65 76 65 6c 20 28 26 6f 70 .emms-browser-move-up-level.(&op
5de00 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 6f 6e 29 0a 20 20 22 4d 6f 76 65 20 75 70 20 6f 6e 65 tional.direction)..."Move.up.one
5de20 20 6c 65 76 65 6c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 0a 52 65 74 75 72 6e 20 74 72 75 65 20 .level.if.possible..Return.true.
5de40 69 66 20 77 65 20 77 65 72 65 20 61 62 6c 65 20 74 6f 20 6d 6f 76 65 20 75 70 2e 0a 49 66 20 44 if.we.were.able.to.move.up..If.D
5de60 49 52 45 43 54 49 4f 4e 20 69 73 20 31 2c 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 2c 20 6f 74 68 IRECTION.is.1,.move.forward,.oth
5de80 65 72 77 69 73 65 20 6d 6f 76 65 20 62 61 63 6b 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 erwise.move.backwards."...(inter
5dea0 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 6d 6f 76 65 64 20 6e 69 6c 29 0a active."P")...(let.((moved.nil).
5dec0 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 63 75 ........(continue.t).........(cu
5dee0 72 72 65 6e 74 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d rrent-level.(emms-browser-level-
5df00 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 0a 20 20 20 20 at-point))).....(while.(and.....
5df20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 65 ........continue.............(ze
5df40 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rop.(forward-line...............
5df60 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 64 69 72 65 63 74 69 6f ......(or.(and.(numberp.directio
5df80 6e 29 20 64 69 72 65 63 74 69 6f 6e 29 20 2d 31 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e n).direction).-1)))).......(when
5dfa0 20 28 3e 20 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 20 28 6f 72 20 28 65 6d 6d 73 2d 62 72 6f 77 .(>.current-level.(or.(emms-brow
5dfc0 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 ser-level-at-point).0)).........
5dfe0 28 73 65 74 71 20 6d 6f 76 65 64 20 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e (setq.moved.t).........(setq.con
5e000 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 6d 6f 76 65 64 29 29 0a 0a 28 64 65 66 75 6e tinue.nil))).....moved))..(defun
5e020 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 67 67 6c 65 2d 73 75 62 69 74 65 6d 73 20 28 29 .emms-browser-toggle-subitems.()
5e040 0a 20 20 22 53 68 6f 77 20 6f 72 20 68 69 64 65 20 28 6b 69 6c 6c 29 20 73 75 62 69 74 65 6d 73 ..."Show.or.hide.(kill).subitems
5e060 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 .under.the.current.line."...(int
5e080 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 75 eractive)...(if.(emms-browser-su
5e0a0 62 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 bitems-visible).......(emms-brow
5e0c0 73 65 72 2d 6b 69 6c 6c 2d 73 75 62 69 74 65 6d 73 29 0a 20 20 20 20 28 69 66 20 28 65 6d 6d 73 ser-kill-subitems).....(if.(emms
5e0e0 2d 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 65 78 69 73 74 29 0a 20 20 20 20 20 20 20 -browser-subitems-exist)........
5e100 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 75 62 69 74 65 6d 73 29 0a 20 20 .(emms-browser-show-subitems)...
5e120 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 76 ....(cl-assert.(emms-browser-mov
5e140 65 2d 75 70 2d 6c 65 76 65 6c 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 e-up-level)).......(emms-browser
5e160 2d 6b 69 6c 6c 2d 73 75 62 69 74 65 6d 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d -kill-subitems))))..(defun.emms-
5e180 62 72 6f 77 73 65 72 2d 74 6f 67 67 6c 65 2d 73 75 62 69 74 65 6d 73 2d 72 65 63 75 72 73 69 76 browser-toggle-subitems-recursiv
5e1a0 65 6c 79 20 28 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 74 6f 67 67 6c 65 20 61 6c 6c ely.()..."Recursively.toggle.all
5e1c0 20 73 75 62 69 74 65 6d 73 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 .subitems.under.the.current.line
5e1e0 2e 0a 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6d 6f 72 65 20 73 75 62 69 74 65 6d 73 20 74 ..If.there.is.no.more.subitems.t
5e200 6f 20 65 78 70 61 6e 64 2c 20 63 6f 6c 6c 61 70 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e o.expand,.collapse.the.current.n
5e220 6f 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 ode."...(interactive)...(let.((c
5e240 75 72 72 65 6e 74 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c urrent-level.(emms-browser-level
5e260 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 66 69 72 73 74 2d 65 78 70 61 6e 64 -at-point)).........first-expand
5e280 61 62 6c 65 2d 6c 65 76 65 6c 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a able-level).....(save-excursion.
5e2a0 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6f 72 20 28 61 6e 64 20 28 65 6d 6d 73 2d 62 72 6f 77 ......(while.(or.(and.(emms-brow
5e2c0 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 65 78 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ser-subitems-exist).............
5e2e0 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 75 62 ..........(not.(emms-browser-sub
5e300 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 items-visible)).................
5e320 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 66 69 72 73 74 2d 65 78 70 61 6e 64 ......(or.(and.(not.first-expand
5e340 61 62 6c 65 2d 6c 65 76 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 able-level).....................
5e360 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 72 73 74 2d 65 78 70 61 6e 64 61 62 6c ...........(setq.first-expandabl
5e380 65 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 e-level.(emms-browser-level-at-p
5e3a0 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oint))).........................
5e3c0 20 20 28 3d 20 66 69 72 73 74 2d 65 78 70 61 6e 64 61 62 6c 65 2d 6c 65 76 65 6c 20 28 65 6d 6d ..(=.first-expandable-level.(emm
5e3e0 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 s-browser-level-at-point))).....
5e400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ..................(emms-browser-
5e420 73 68 6f 77 2d 73 75 62 69 74 65 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 show-subitems)).................
5e440 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6e 64 2d 65 6e 74 72 79 2d 6d 6f 72 65 2d 74 .(emms-browser-find-entry-more-t
5e460 68 61 6e 2d 6c 65 76 65 6c 20 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 29 29 29 29 0a 20 20 20 20 han-level.current-level)))).....
5e480 28 75 6e 6c 65 73 73 20 66 69 72 73 74 2d 65 78 70 61 6e 64 61 62 6c 65 2d 6c 65 76 65 6c 0a 20 (unless.first-expandable-level..
5e4a0 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6b 69 6c 6c 2d 73 75 62 69 74 65 6d 73 .....(emms-browser-kill-subitems
5e4c0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 ))))..(defun.emms-browser-show-s
5e4e0 75 62 69 74 65 6d 73 20 28 29 0a 20 20 22 53 68 6f 77 20 73 75 62 69 74 65 6d 73 20 75 6e 64 65 ubitems.()..."Show.subitems.unde
5e500 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 r.the.current.line."...(unless.(
5e520 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 29 0a 20 emms-browser-subitems-visible)..
5e540 20 20 20 28 69 66 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 65 78 ...(if.(emms-browser-subitems-ex
5e560 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e ist).........(emms-browser-expan
5e580 64 2d 6f 6e 65 2d 6c 65 76 65 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f d-one-level))))..(defun.emms-bro
5e5a0 77 73 65 72 2d 6b 69 6c 6c 2d 73 75 62 69 74 65 6d 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 wser-kill-subitems.()..."Remove.
5e5c0 61 6c 6c 20 73 75 62 69 74 65 6d 73 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c all.subitems.under.the.current.l
5e5e0 69 6e 65 2e 0a 53 74 6f 70 73 20 61 74 20 74 68 65 20 6e 65 78 74 20 6c 69 6e 65 20 61 74 20 74 ine..Stops.at.the.next.line.at.t
5e600 68 65 20 73 61 6d 65 20 6c 65 76 65 6c 2c 20 6f 72 20 45 4f 46 2e 22 0a 20 20 28 77 68 65 6e 20 he.same.level,.or.EOF."...(when.
5e620 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 29 0a (emms-browser-subitems-visible).
5e640 20 20 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 ....(let.((current-level.(emms-b
5e660 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 rowser-level-at-point)).........
5e680 20 20 28 6e 65 78 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 ..(next-line.(line-beginning-pos
5e6a0 69 74 69 6f 6e 20 32 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 ition.2))).......(emms-with-inhi
5e6c0 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 bit-read-only-t........(delete-r
5e6e0 65 67 69 6f 6e 20 6e 65 78 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 egion.next-line.................
5e700 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 ......(save-excursion...........
5e720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 ..............(while............
5e740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 .................(emms-browser-f
5e760 69 6e 64 2d 65 6e 74 72 79 2d 6d 6f 72 65 2d 74 68 61 6e 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 ind-entry-more-than-level.......
5e780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 2d 6c .......................current-l
5e7a0 65 76 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 evel)).........................(
5e7c0 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 20 32 29 29 29 29 29 29 29 line-beginning-position.2)))))))
5e7e0 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..;;.---------------------------
5e800 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 44 65 61 6c 69 -----------------------.;;.Deali
5e820 6e 67 20 77 69 74 68 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 28 71 75 65 75 69 6e 67 20 73 6f ng.with.the.playlist.(queuing.so
5e840 6e 67 73 2c 20 65 74 63 29 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ngs,.etc).;;.-------------------
5e860 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
5e880 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e .(defun.emms-browser-playlist-in
5e8a0 73 65 72 74 2d 67 72 6f 75 70 20 28 62 64 61 74 61 29 0a 20 20 22 49 6e 73 65 72 74 20 61 20 67 sert-group.(bdata)..."Insert.a.g
5e8c0 72 6f 75 70 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 42 44 41 54 41 20 69 6e 74 6f 20 74 roup.description.of.BDATA.into.t
5e8e0 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 he.playlist.buffer."...(let.((na
5e900 6d 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 74 2d 6c 69 6e 65 20 62 64 61 me.(emms-browser-format-line.bda
5e920 74 61 20 27 70 6c 61 79 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e ta.'playlist))).....(with-curren
5e940 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 t-emms-playlist.......(goto-char
5e960 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6e 61 6d 65 .(point-max)).......(insert.name
5e980 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 ."\n"))))..(defun.emms-browser-p
5e9a0 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 28 62 64 61 74 61 29 0a 20 20 22 laylist-insert-track.(bdata)..."
5e9c0 49 6e 73 65 72 74 20 61 20 74 72 61 63 6b 20 66 72 6f 6d 20 42 44 41 54 41 20 69 6e 74 6f 20 74 Insert.a.track.from.BDATA.into.t
5e9e0 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 he.playlist.buffer."...(let.((na
5ea00 6d 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 74 2d 6c 69 6e 65 20 62 64 61 me.(emms-browser-format-line.bda
5ea20 74 61 20 27 70 6c 61 79 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e ta.'playlist))).....(with-curren
5ea40 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 t-emms-playlist.......(goto-char
5ea60 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6e 61 6d 65 .(point-max)).......(insert.name
5ea80 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 ."\n"))))..(defun.emms-browser-p
5eaa0 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 62 64 61 74 61 20 28 62 64 61 74 61 20 73 74 61 72 laylist-insert-bdata.(bdata.star
5eac0 74 69 6e 67 2d 6c 65 76 65 6c 29 0a 20 20 22 41 64 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e ting-level)..."Add.all.tracks.in
5eae0 20 42 44 41 54 41 20 61 74 20 53 54 41 52 54 49 4e 47 2d 4c 45 56 45 4c 20 74 6f 20 74 68 65 20 .BDATA.at.STARTING-LEVEL.to.the.
5eb00 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 79 70 65 20 28 65 6d 6d 73 2d 62 playlist."...(let.((type.(emms-b
5eb20 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 74 79 70 65 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 rowser-bdata-type.bdata)).......
5eb40 20 20 28 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 6c 65 76 ..(level.(emms-browser-bdata-lev
5eb60 65 6c 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d el.bdata)).........emms-browser-
5eb80 63 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 29 0a 0a 20 20 20 20 3b 3b 20 61 64 6a 75 73 74 20 74 current-indent)......;;.adjust.t
5eba0 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 73 he.indentation.relative.to.the.s
5ebc0 74 61 72 74 69 6e 67 20 6c 65 76 65 6c 0a 20 20 20 20 28 77 68 65 6e 20 73 74 61 72 74 69 6e 67 tarting.level.....(when.starting
5ebe0 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 76 65 6c 20 28 2d 20 6c 65 76 65 -level.......(setq.level.(-.leve
5ec00 6c 20 28 31 2d 20 73 74 61 72 74 69 6e 67 2d 6c 65 76 65 6c 29 29 29 29 0a 20 20 20 20 3b 3b 20 l.(1-.starting-level)))).....;;.
5ec20 77 65 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 72 65 62 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e we.temporarily.rebind.the.curren
5ec40 74 20 69 6e 64 65 6e 74 20 74 6f 20 74 68 65 20 72 65 6c 61 74 69 76 65 20 69 6e 64 65 6e 74 0a t.indent.to.the.relative.indent.
5ec60 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 75 72 72 65 6e 74 2d 69 ....(setq.emms-browser-current-i
5ec80 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 ndent...........(emms-browser-ma
5eca0 6b 65 2d 69 6e 64 65 6e 74 20 6c 65 76 65 6c 29 29 0a 0a 20 20 20 20 3b 3b 20 61 64 64 20 61 20 ke-indent.level))......;;.add.a.
5ecc0 67 72 6f 75 70 20 68 65 61 64 69 6e 67 3f 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 74 group.heading?.....(unless.(eq.t
5ece0 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f ype.'info-title).......(emms-bro
5ed00 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 67 72 6f 75 70 20 62 64 61 74 61 wser-playlist-insert-group.bdata
5ed20 29 29 0a 0a 20 20 20 20 3b 3b 20 72 65 63 75 72 73 65 20 6f 72 20 61 64 64 20 74 72 61 63 6b 73 ))......;;.recurse.or.add.tracks
5ed40 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 .....(dolist.(item.(emms-browser
5ed60 2d 62 64 61 74 61 2d 64 61 74 61 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e -bdata-data.bdata)).......(if.(n
5ed80 6f 74 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 0a 20 20 20 20 20 20 ot.(eq.type.'info-title)).......
5eda0 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 ....(emms-browser-playlist-inser
5edc0 74 2d 62 64 61 74 61 20 69 74 65 6d 20 73 74 61 72 74 69 6e 67 2d 6c 65 76 65 6c 29 0a 20 20 20 t-bdata.item.starting-level)....
5ede0 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 .....(emms-browser-playlist-inse
5ee00 72 74 2d 74 72 61 63 6b 20 62 64 61 74 61 29 29 29 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d rt-track.bdata)))))..;;.--------
5ee20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5ee40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 45 78 70 61 6e 64 69 6e 67 2f 63 6f 6e 74 72 61 63 74 ----------.;;.Expanding/contract
5ee60 69 6e 67 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ing.;;.-------------------------
5ee80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 -------------------------..(defu
5eea0 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 20 28 n.emms-browser-expand-to-level.(
5eec0 6c 65 76 65 6c 29 0a 20 20 22 45 78 70 61 6e 64 20 74 6f 20 61 20 64 65 70 74 68 20 73 70 65 63 level)..."Expand.to.a.depth.spec
5eee0 69 66 69 65 64 20 62 79 20 4c 45 56 45 4c 2e 0a 41 66 74 65 72 20 65 78 70 61 6e 64 69 6e 67 2c ified.by.LEVEL..After.expanding,
5ef00 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 6d 61 72 6b 65 64 20 65 6e .jump.to.the.currently.marked.en
5ef20 74 72 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 31 29 0a 20 20 20 20 20 20 20 20 try."...(let.((count.1).........
5ef40 28 74 6f 74 61 6c 20 30 29 0a 20 20 20 20 20 20 20 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 (total.0).........progress-repor
5ef60 74 65 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 ter).....(goto-char.(point-min))
5ef80 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 71 20 28 62 75 66 66 65 72 2d 65 6e 64 .....(while.(not.(eq.(buffer-end
5efa0 20 31 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 65 6d .1).(point))).......(when.(=.(em
5efc0 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 20 31 29 0a 20 20 ms-browser-level-at-point).1)...
5efe0 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 74 61 6c 20 28 31 2b 20 74 6f 74 61 6c 29 29 29 0a 20 ......(setq.total.(1+.total)))..
5f000 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6e 6f 6e 2d 74 72 61 63 .....(emms-browser-next-non-trac
5f020 6b 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a k)).....(goto-char.(point-min)).
5f040 20 20 20 20 28 73 65 74 71 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 ....(setq.progress-reporter.....
5f060 20 20 20 20 20 20 28 6d 61 6b 65 2d 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 20 22 45 ......(make-progress-reporter."E
5f080 78 70 61 6e 64 69 6e 67 20 45 4d 4d 53 20 62 72 6f 77 73 65 72 20 65 6e 74 72 69 65 73 2e 2e 2e xpanding.EMMS.browser.entries...
5f0a0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
5f0c0 20 20 20 20 30 20 20 74 6f 74 61 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 ....0..total)).....(while.(not.(
5f0e0 65 71 20 28 62 75 66 66 65 72 2d 65 6e 64 20 31 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 eq.(buffer-end.1).(point))).....
5f100 20 20 28 77 68 65 6e 20 28 3d 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 ..(when.(=.(emms-browser-level-a
5f120 74 2d 70 6f 69 6e 74 29 20 31 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 t-point).1).........(progress-re
5f140 70 6f 72 74 65 72 2d 75 70 64 61 74 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 20 porter-update.progress-reporter.
5f160 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 20 28 31 2b 20 63 count).........(setq.count.(1+.c
5f180 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ount))).......(if.(<.(emms-brows
5f1a0 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 20 6c 65 76 65 6c 29 0a 20 20 20 20 20 20 er-level-at-point).level).......
5f1c0 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 75 62 69 74 65 6d 73 29 ....(emms-browser-show-subitems)
5f1e0 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6e 6f 6e 2d 74 ).......(emms-browser-next-non-t
5f200 72 61 63 6b 29 29 0a 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 2d 64 6f rack)).....(progress-reporter-do
5f220 6e 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 0a 20 20 20 20 28 65 6d 6d 73 2d ne.progress-reporter).....(emms-
5f240 62 72 6f 77 73 65 72 2d 70 6f 70 2d 6d 61 72 6b 29 0a 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 browser-pop-mark).....(recenter.
5f260 27 28 34 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 72 '(4))))..(defun.emms-browser-mar
5f280 6b 2d 61 6e 64 2d 63 6f 6c 6c 61 70 73 65 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 k-and-collapse.()..."Save.the.cu
5f2a0 72 72 65 6e 74 20 74 6f 70 20 6c 65 76 65 6c 20 65 6c 65 6d 65 6e 74 2c 20 61 6e 64 20 63 6f 6c rrent.top.level.element,.and.col
5f2c0 6c 61 70 73 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 72 6b 2d 65 6e 74 lapse."...(emms-browser-mark-ent
5f2e0 72 79 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 ry)...(goto-char.(point-max))...
5f300 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 71 20 28 62 75 66 66 65 72 2d 65 6e 64 20 2d 31 29 20 (while.(not.(eq.(buffer-end.-1).
5f320 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 72 65 76 (point))).....(emms-browser-prev
5f340 2d 6e 6f 6e 2d 74 72 61 63 6b 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6b 69 -non-track).....(emms-browser-ki
5f360 6c 6c 2d 73 75 62 69 74 65 6d 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 ll-subitems)))..(defun.emms-brow
5f380 73 65 72 2d 66 69 6e 64 2d 74 6f 70 2d 6c 65 76 65 6c 20 28 29 0a 20 20 22 4d 6f 76 65 20 75 70 ser-find-top-level.()..."Move.up
5f3a0 20 75 6e 74 69 6c 20 72 65 61 63 68 69 6e 67 20 61 20 74 6f 70 2d 6c 65 76 65 6c 20 65 6c 65 6d .until.reaching.a.top-level.elem
5f3c0 65 6e 74 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 71 20 28 65 6d 6d 73 2d 62 72 ent."...(while.(not.(eq.(emms-br
5f3e0 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 20 31 29 29 0a 20 20 20 20 28 66 owser-level-at-point).1)).....(f
5f400 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 orward-line.-1)))..(defun.emms-b
5f420 72 6f 77 73 65 72 2d 6d 61 72 6b 2d 65 6e 74 72 79 20 28 29 0a 20 20 22 4d 61 72 6b 20 74 68 65 rowser-mark-entry.()..."Mark.the
5f440 20 63 75 72 72 65 6e 74 20 74 6f 70 20 6c 65 76 65 6c 20 65 6e 74 72 79 2e 22 0a 20 20 28 73 61 .current.top.level.entry."...(sa
5f460 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 ve-excursion.....(emms-browser-f
5f480 69 6e 64 2d 74 6f 70 2d 6c 65 76 65 6c 29 0a 20 20 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e ind-top-level).....(emms-with-in
5f4a0 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 hibit-read-only-t......(add-text
5f4c0 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 -properties.(line-beginning-posi
5f4e0 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion)...........................
5f500 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (line-end-position).............
5f520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 ..............(list.'emms-browse
5f540 72 2d 6d 61 72 6b 20 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 r-mark.t)))))..(defun.emms-brows
5f560 65 72 2d 70 6f 70 2d 6d 61 72 6b 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 6f 20 74 68 65 20 er-pop-mark.()..."Return.to.the.
5f580 6c 61 73 74 20 6d 61 72 6b 65 64 20 65 6e 74 72 79 2c 20 61 6e 64 20 72 65 6d 6f 76 65 20 74 68 last.marked.entry,.and.remove.th
5f5a0 65 20 6d 61 72 6b 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e e.mark."...(goto-char.(point-min
5f5c0 29 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 ))...(let.((pos.(text-property-a
5f5e0 6e 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 20 20 20 20 20 ny.(point-min).(point-max)......
5f600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 ...........................'emms
5f620 2d 62 72 6f 77 73 65 72 2d 6d 61 72 6b 20 74 29 29 29 0a 20 20 20 20 28 69 66 20 70 6f 73 0a 20 -browser-mark.t))).....(if.pos..
5f640 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 .......(progn...........(goto-ch
5f660 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 ar.pos)...........(emms-with-inh
5f680 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d ibit-read-only-t............(rem
5f6a0 6f 76 65 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e ove-text-properties.(line-beginn
5f6c0 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-position)...................
5f6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 .................(line-end-posit
5f700 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion)............................
5f720 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 72 6b ........(list.'emms-browser-mark
5f740 29 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 6d 61 72 6b 20 73 61 76 )))).......(message."No.mark.sav
5f760 65 64 21 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 6f ed!"))))..(defun.emms-browser-go
5f780 2d 74 6f 2d 70 61 72 65 6e 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 -to-parent.()..."Move.point.to.t
5f7a0 68 65 20 70 61 72 65 6e 74 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2e 0a 52 he.parent.of.the.current.node..R
5f7c0 65 74 75 72 6e 20 70 6f 69 6e 74 2e 20 49 66 20 61 74 20 6c 65 76 65 6c 20 6f 6e 65 2c 20 72 65 eturn.point..If.at.level.one,.re
5f7e0 74 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 turn.the.current.point."...(let.
5f800 28 28 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 ((current-level.(emms-browser-le
5f820 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 vel-at-point))).....(unless.(eq.
5f840 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 20 31 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c current-level.1).......(while.(<
5f860 3d 20 63 75 72 72 65 6e 74 2d 6c 65 76 65 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 65 =.current-level.(emms-browser-le
5f880 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d vel-at-point)).........(forward-
5f8a0 6c 69 6e 65 20 2d 31 29 29 29 0a 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e line.-1))).....(point)))..(defun
5f8c0 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 63 75 72 72 65 6e 74 2d 6e 6f 64 .emms-browser-delete-current-nod
5f8e0 65 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2c e.()..."Remove.the.current.node,
5f900 20 61 6e 64 20 65 6d 70 74 79 20 70 61 72 65 6e 74 73 2e 22 0a 20 20 3b 3b 20 73 65 74 20 74 68 .and.empty.parents."...;;.set.th
5f920 65 20 64 61 74 61 20 74 6f 20 65 6d 70 74 79 0a 20 20 28 73 65 74 63 64 72 20 28 61 73 73 71 20 e.data.to.empty...(setcdr.(assq.
5f940 27 64 61 74 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f 69 'data.(emms-browser-bdata-at-poi
5f960 6e 74 29 29 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 nt)).nil)...(emms-browser-delete
5f980 2d 6e 6f 64 65 2d 69 66 2d 65 6d 70 74 79 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 -node-if-empty))..(defun.emms-br
5f9a0 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 6e 6f 64 65 2d 69 66 2d 65 6d 70 74 79 20 28 29 0a 20 20 owser-delete-node-if-empty.()...
5f9c0 22 49 66 20 65 6d 70 74 79 2c 20 72 65 6d 6f 76 65 20 6e 6f 64 65 20 61 6e 64 20 65 6d 70 74 79 "If.empty,.remove.node.and.empty
5f9e0 20 70 61 72 65 6e 74 73 2e 22 0a 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 20 28 6c 65 6e 67 74 .parents."...(when.(zerop.(lengt
5fa00 68 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 29 h.(emms-browser-data-at-point)))
5fa20 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 20 .....(save-excursion.......(let.
5fa40 28 28 63 68 69 6c 64 2d 62 64 61 74 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 ((child-bdata.(emms-browser-bdat
5fa60 61 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 2d a-at-point)).............parent-
5fa80 62 64 61 74 61 20 70 61 72 65 6e 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 bdata.parent-point).........;;.r
5faa0 65 63 6f 72 64 20 74 68 65 20 70 61 72 65 6e 74 27 73 20 70 6f 73 69 74 69 6f 6e 20 62 65 66 6f ecord.the.parent's.position.befo
5fac0 72 65 20 77 65 20 64 65 6c 65 74 65 20 61 6e 79 74 68 69 6e 67 0a 20 20 20 20 20 20 20 20 28 73 re.we.delete.anything.........(s
5fae0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 ave-excursion...........(setq.pa
5fb00 72 65 6e 74 2d 70 6f 69 6e 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 6f 2d 74 6f 2d 70 rent-point.(emms-browser-go-to-p
5fb20 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 64 65 6c 65 74 65 20 74 68 65 20 63 arent))).........;;.delete.the.c
5fb40 75 72 72 65 6e 74 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d urrent.line.........(when.(emms-
5fb60 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 browser-subitems-visible).......
5fb80 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6b 69 6c 6c 2d 73 75 62 69 74 65 6d 73 29 ....(emms-browser-kill-subitems)
5fba0 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 ).........(emms-with-inhibit-rea
5fbc0 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 69 d-only-t..........(goto-char.(li
5fbe0 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ne-beginning-position)).........
5fc00 20 28 6b 69 6c 6c 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 .(kill-line.1)).........(unless.
5fc20 28 65 71 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 6c 65 76 65 6c 20 63 68 (eq.(emms-browser-bdata-level.ch
5fc40 69 6c 64 2d 62 64 61 74 61 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 ild-bdata).1)...........;;.remov
5fc60 65 20 74 68 65 20 6e 6f 64 65 20 66 72 6f 6d 20 74 68 65 20 70 61 72 65 6e 74 2c 20 61 6e 64 20 e.the.node.from.the.parent,.and.
5fc80 72 65 63 75 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 61 72 recurse...........(goto-char.par
5fca0 65 6e 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e ent-point)...........(setq.paren
5fcc0 74 2d 62 64 61 74 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 t-bdata.(emms-browser-bdata-at-p
5fce0 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 28 61 73 73 71 20 27 oint))...........(setcdr.(assq.'
5fd00 64 61 74 61 20 70 61 72 65 6e 74 2d 62 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 data.parent-bdata)..............
5fd20 20 20 20 20 20 28 64 65 6c 71 20 63 68 69 6c 64 2d 62 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 .....(delq.child-bdata..........
5fd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 ...............(emms-browser-bda
5fd60 74 61 2d 64 61 74 61 20 70 61 72 65 6e 74 2d 62 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 ta-data.parent-bdata))).........
5fd80 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 6e 6f 64 65 2d 69 66 2d 65 ..(emms-browser-delete-node-if-e
5fda0 6d 70 74 79 29 29 29 29 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d mpty))))))..;;.-----------------
5fdc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5fde0 2d 0a 3b 3b 20 55 73 65 72 2d 76 69 73 69 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 0a 3b 3b 20 2d 2d -.;;.User-visible.commands.;;.--
5fe00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5fe20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 ----------------..(defun.emms-br
5fe40 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 20 28 29 0a 20 20 22 41 64 64 20 61 6c 6c 20 74 owser-add-tracks.()..."Add.all.t
5fe60 72 61 63 6b 73 20 61 74 20 70 6f 69 6e 74 20 6f 72 20 69 6e 20 72 65 67 69 6f 6e 20 69 66 20 61 racks.at.point.or.in.region.if.a
5fe80 63 74 69 76 65 2e 0a 57 68 65 6e 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 6e 6f 74 20 61 63 ctive..When.the.region.is.not.ac
5fea0 74 69 76 65 2c 20 61 20 6e 75 6d 65 72 69 63 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 tive,.a.numeric.prefix.argument.
5fec0 69 6e 73 65 72 74 73 20 74 68 61 74 20 6d 61 6e 79 0a 74 72 61 63 6b 73 20 66 72 6f 6d 20 70 6f inserts.that.many.tracks.from.po
5fee0 69 6e 74 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 int..Return.the.playlist.buffer.
5ff00 70 6f 69 6e 74 2d 6d 61 78 20 62 65 66 6f 72 65 20 61 64 64 69 6e 67 2e 22 0a 20 20 28 69 6e 74 point-max.before.adding."...(int
5ff20 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 28 63 6f 6e 64 0a 20 eractive)...(let.((count.(cond..
5ff40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 ...............((use-region-p)..
5ff60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 2d 20 28 6c 69 6e 65 2d 6e 75 6d ................(1+.(-.(line-num
5ff80 62 65 72 2d 61 74 2d 70 6f 73 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 20 28 6c 69 6e 65 2d 6e ber-at-pos.(region-end)).(line-n
5ffa0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 umber-at-pos.(region-beginning))
5ffc0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6d 62 65 72 70 20 63 75 ))).................((numberp.cu
5ffe0 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rrent-prefix-arg)...............
60000 20 20 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 ...current-prefix-arg)..........
60020 20 20 20 20 20 20 20 28 74 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 69 72 73 74 2d 6e 65 .......(t.1))).........(first-ne
60040 77 2d 74 72 61 63 6b 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c w-track.(with-current-emms-playl
60060 69 73 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 75 73 ist.(point-max)))).....(when.(us
60080 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 72 65 67 69 6f 6e 2d 62 e-region-p).(goto-char.(region-b
600a0 65 67 69 6e 6e 69 6e 67 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 63 6f 75 6e eginning))).....(dotimes.(_.coun
600c0 74 20 66 69 72 73 74 2d 6e 65 77 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 t.first-new-track).......(let.((
600e0 62 64 61 74 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f 69 bdata.(emms-browser-bdata-at-poi
60100 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 62 64 61 74 61 0a 20 20 20 20 20 20 nt))).........(when.bdata.......
60120 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 ....(emms-browser-playlist-inser
60140 74 2d 62 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 62 64 61 74 61 20 28 65 6d 6d 73 2d 62 t-bdata............bdata.(emms-b
60160 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 6c 65 76 65 6c 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 rowser-bdata-level.bdata))......
60180 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 20 28 72 75 6e 2d .....(forward-line)))).....(run-
601a0 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 hook-with-args.'emms-browser-tra
601c0 63 6b 73 2d 61 64 64 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cks-added-hook..................
601e0 20 20 20 20 20 20 20 66 69 72 73 74 2d 6e 65 77 2d 74 72 61 63 6b 29 0a 20 20 20 20 28 64 65 61 .......first-new-track).....(dea
60200 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a 20 20 20 20 66 69 72 73 74 2d 6e 65 77 2d 74 72 61 63 ctivate-mark).....first-new-trac
60220 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 k))..(defun.emms-browser-add-tra
60240 63 6b 73 2d 61 6e 64 2d 70 6c 61 79 20 28 29 0a 20 20 22 41 64 64 20 61 6c 6c 20 74 72 61 63 6b cks-and-play.()..."Add.all.track
60260 73 20 61 74 20 70 6f 69 6e 74 2c 20 61 6e 64 20 70 6c 61 79 20 74 68 65 20 66 69 72 73 74 20 61 s.at.point,.and.play.the.first.a
60280 64 64 65 64 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 dded.track."...(interactive)...(
602a0 6c 65 74 20 28 28 6f 6c 64 2d 70 6f 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d let.((old-pos.(emms-browser-add-
602c0 74 72 61 63 6b 73 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 tracks))).....(with-current-emms
602e0 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6f 6c 64 2d 70 -playlist.......(goto-char.old-p
60300 6f 73 29 0a 20 20 20 20 20 20 3b 3b 20 69 66 20 77 65 27 72 65 20 73 69 74 74 69 6e 67 20 6f 6e os).......;;.if.we're.sitting.on
60320 20 61 20 67 72 6f 75 70 20 6e 61 6d 65 2c 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 0a 20 20 20 20 .a.group.name,.move.forward.....
60340 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 ..(unless.(emms-playlist-track-a
60360 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 t.(point)).........(emms-playlis
60380 74 2d 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 t-next)).......(emms-playlist-se
603a0 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 69 73 20 lect.(point))).....;;.FIXME:.is.
603c0 74 68 65 72 65 20 61 20 62 65 74 74 65 72 20 77 61 79 20 6f 66 20 64 6f 69 6e 67 20 74 68 69 73 there.a.better.way.of.doing.this
603e0 3f 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 6f 70 29 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 61 72 ?.....(emms-stop).....(emms-star
60400 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 73 65 61 72 63 68 2d 62 75 66 66 65 72 t)))..(defun.emms-isearch-buffer
60420 20 28 29 0a 20 20 22 49 73 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 62 75 66 66 65 .()..."Isearch.through.the.buffe
60440 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 r."...(interactive)...(goto-char
60460 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 77 68 65 6e 20 28 69 73 65 61 72 63 68 2d 66 .(point-min))...(when.(isearch-f
60480 6f 72 77 61 72 64 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 orward).....(unless.(emms-browse
604a0 72 2d 73 75 62 69 74 65 6d 73 2d 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d r-subitems-visible).......(emms-
604c0 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 75 62 69 74 65 6d 73 29 29 29 29 0a 0a 28 64 65 66 75 browser-show-subitems))))..(defu
604e0 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6e 6f 6e 2d 74 72 61 63 6b 20 28 26 n.emms-browser-next-non-track.(&
60500 6f 70 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 6f 6e 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 74 optional.direction)..."Jump.to.t
60520 68 65 20 6e 65 78 74 20 6e 6f 6e 2d 74 72 61 63 6b 20 65 6c 65 6d 65 6e 74 20 69 6e 20 44 49 52 he.next.non-track.element.in.DIR
60540 45 43 54 49 4f 4e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 ECTION."...(interactive)...(let.
60560 28 28 63 6f 6e 74 69 6e 75 65 20 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 63 ((continue.t)).....(while.(and.c
60580 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 ontinue.................(forward
605a0 2d 6c 69 6e 65 20 28 6f 72 20 64 69 72 65 63 74 69 6f 6e 20 31 29 29 29 0a 20 20 20 20 20 20 28 -line.(or.direction.1))).......(
605c0 75 6e 6c 65 73 73 20 28 65 71 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 74 unless.(eq.(emms-browser-bdata-t
605e0 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f ype....................(emms-bro
60600 77 73 65 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 20 27 69 6e 66 6f 2d 74 69 74 6c wser-bdata-at-point)).'info-titl
60620 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 e).........(setq.continue.nil)))
60640 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 72 65 76 2d 6e 6f 6e ))..(defun.emms-browser-prev-non
60660 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 -track.()..."Jump.to.the.previou
60680 73 20 6e 6f 6e 2d 74 72 61 63 6b 20 65 6c 65 6d 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 s.non-track.element."...(interac
606a0 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6e 6f 6e 2d 74 tive)...(emms-browser-next-non-t
606c0 72 61 63 6b 20 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 rack.-1))..(defun.emms-browser-e
606e0 78 70 61 6e 64 2d 61 6c 6c 20 28 29 0a 20 20 22 45 78 70 61 6e 64 20 65 76 65 72 79 74 68 69 6e xpand-all.()..."Expand.everythin
60700 67 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 62 79 20 45 6d 6d 73 g..This.function.is.used.by.Emms
60720 2d 66 69 6c 74 65 72 73 20 61 73 20 74 68 65 20 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f -filters.as.the.expand-render-ho
60740 6f 6b 2c 20 69 74 20 6d 75 73 74 0a 6d 75 73 74 20 62 65 20 63 65 72 74 61 69 6e 20 74 68 61 74 ok,.it.must.must.be.certain.that
60760 20 74 68 65 72 65 20 69 73 20 61 20 62 64 61 74 61 20 74 72 65 65 20 74 6f 20 65 78 70 61 6e 64 .there.is.a.bdata.tree.to.expand
60780 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 ."...(interactive)...(when.(emms
607a0 2d 62 72 6f 77 73 65 72 2d 6c 65 76 65 6c 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 28 65 6d -browser-level-at-point).....(em
607c0 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 72 6b 2d 61 6e 64 2d 63 6f 6c 6c 61 70 73 65 29 0a 20 20 ms-browser-mark-and-collapse)...
607e0 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 20 ..(emms-browser-expand-to-level.
60800 39 39 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 99)))..(defun.emms-browser-expan
60820 64 2d 74 6f 2d 6c 65 76 65 6c 2d 32 20 28 29 0a 20 20 22 45 78 70 61 6e 64 20 61 6c 6c 20 74 6f d-to-level-2.()..."Expand.all.to
60840 70 20 6c 65 76 65 6c 20 69 74 65 6d 73 20 6f 6e 65 20 6c 65 76 65 6c 2e 22 0a 20 20 28 69 6e 74 p.level.items.one.level."...(int
60860 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 72 6b 2d 61 eractive)...(emms-browser-mark-a
60880 6e 64 2d 63 6f 6c 6c 61 70 73 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 nd-collapse)...(emms-browser-exp
608a0 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 20 32 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 and-to-level.2))..(defun.emms-br
608c0 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 33 20 28 29 0a 20 20 22 45 78 owser-expand-to-level-3.()..."Ex
608e0 70 61 6e 64 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 74 65 6d 73 20 74 77 6f 20 6c 65 76 pand.all.top.level.items.two.lev
60900 65 6c 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 els."...(interactive)...(emms-br
60920 6f 77 73 65 72 2d 6d 61 72 6b 2d 61 6e 64 2d 63 6f 6c 6c 61 70 73 65 29 0a 20 20 28 65 6d 6d 73 owser-mark-and-collapse)...(emms
60940 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 20 33 29 29 0a 0a 28 64 -browser-expand-to-level.3))..(d
60960 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 efun.emms-browser-expand-to-leve
60980 6c 2d 34 20 28 29 0a 20 20 22 45 78 70 61 6e 64 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 l-4.()..."Expand.all.top.level.i
609a0 74 65 6d 73 20 74 68 72 65 65 20 6c 65 76 65 6c 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 tems.three.levels."...(interacti
609c0 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 72 6b 2d 61 6e 64 2d 63 6f 6c ve)...(emms-browser-mark-and-col
609e0 6c 61 70 73 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f lapse)...(emms-browser-expand-to
60a00 2d 6c 65 76 65 6c 20 34 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d -level.4))..(defun.emms-browser-
60a20 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 20 28 29 0a 20 20 22 43 6f 6c 6c 61 70 73 65 20 65 76 65 72 collapse-all.()..."Collapse.ever
60a40 79 74 68 69 6e 67 2c 20 73 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 74 68 65 ything,.saving.and.restoring.the
60a60 20 6d 61 72 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d .mark."...(interactive)...(emms-
60a80 62 72 6f 77 73 65 72 2d 6d 61 72 6b 2d 61 6e 64 2d 63 6f 6c 6c 61 70 73 65 29 0a 20 20 28 65 6d browser-mark-and-collapse)...(em
60aa0 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6f 70 2d 6d 61 72 6b 29 0a 20 20 28 72 65 63 65 6e 74 65 72 ms-browser-pop-mark)...(recenter
60ac0 20 27 28 34 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 .'(4)))..(defvar.emms-browser-se
60ae0 65 64 2d 70 65 6e 64 69 6e 67 20 74 0a 20 20 22 44 6f 20 77 65 20 6e 65 65 64 20 74 6f 20 73 65 ed-pending.t..."Do.we.need.to.se
60b00 65 64 20 28 72 61 6e 64 6f 6d 29 3f 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 ed.(random)?")..(defun.emms-brow
60b20 73 65 72 2d 67 6f 74 6f 2d 72 61 6e 64 6f 6d 20 28 29 0a 20 20 22 4d 6f 76 65 20 63 75 72 73 6f ser-goto-random.()..."Move.curso
60b40 72 20 74 6f 20 72 61 6e 64 6f 6d 20 69 74 65 6d 20 77 69 74 68 20 74 68 65 20 6c 6f 77 65 73 74 r.to.random.item.with.the.lowest
60b60 20 76 69 73 69 62 6c 65 20 6c 65 76 65 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 .visible.level."...(interactive)
60b80 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 65 64 2d 70 65 6e 64 69 ...(when.emms-browser-seed-pendi
60ba0 6e 67 0a 20 20 20 20 28 72 61 6e 64 6f 6d 20 74 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 ng.....(random.t).....(setq.emms
60bc0 2d 62 72 6f 77 73 65 72 2d 73 65 65 64 2d 70 65 6e 64 69 6e 67 20 6e 69 6c 29 29 0a 20 20 28 77 -browser-seed-pending.nil))...(w
60be0 68 69 6c 65 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 hile.(progn.(goto-char.(point-mi
60c00 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e n)).................(forward-lin
60c20 65 20 28 31 2d 20 28 72 61 6e 64 6f 6d 20 28 63 6f 75 6e 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e e.(1-.(random.(count-lines.(poin
60c40 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 t-min).(point-max)))))..........
60c60 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 75 62 69 74 65 6d 73 2d 76 69 .......(emms-browser-subitems-vi
60c80 73 69 62 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 76 sible))))..(defun.emms-browser-v
60ca0 69 65 77 2d 69 6e 2d 64 69 72 65 64 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 64 61 74 61 29 0a 20 iew-in-dired.(&optional.bdata)..
60cc0 20 22 56 69 65 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 66 72 6f ."View.the.current.directory.fro
60ce0 6d 20 42 44 41 54 41 20 6f 72 20 62 64 61 74 61 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 44 49 52 m.BDATA.or.bdata.at.point.in.DIR
60d00 45 44 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 63 75 72 72 65 6e 74 6c 79 20 6a 75 73 74 20 ED."...;;.FIXME:.currently.just.
60d20 67 72 61 62 73 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 74 68 65 20 66 69 72 grabs.the.directory.from.the.fir
60d40 73 74 20 74 72 61 63 6b 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 62 st.track...(interactive)...(if.b
60d60 64 61 74 61 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 data.......(if.(eq.(emms-browser
60d80 2d 62 64 61 74 61 2d 74 79 70 65 20 62 64 61 74 61 29 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a -bdata-type.bdata).'info-title).
60da0 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 20 28 63 61 72 20 28 65 6d ..........(let*.((track.(car.(em
60dc0 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 64 61 74 61 20 62 64 61 74 61 29 29 29 0a 20 ms-browser-bdata-data.bdata)))..
60de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 65 6d 6d 73 2d 74 72 61 63 ................(path.(emms-trac
60e00 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 k-get.track.'name)).............
60e20 20 20 20 20 20 28 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 70 .....(dir.(file-name-directory.p
60e40 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 64 69 ath))).............(find-file.di
60e60 72 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 76 69 65 77 2d 69 r)).........(emms-browser-view-i
60e80 6e 2d 64 69 72 65 64 20 28 63 61 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 n-dired.(car.(emms-browser-bdata
60ea0 2d 64 61 74 61 20 62 64 61 74 61 29 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 -data.bdata)))).....(emms-browse
60ec0 72 2d 76 69 65 77 2d 69 6e 2d 64 69 72 65 64 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 r-view-in-dired.(emms-browser-bd
60ee0 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 ata-at-point))))..(defun.emms-br
60f00 6f 77 73 65 72 2d 72 65 6d 6f 76 65 2d 74 72 61 63 6b 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 owser-remove-tracks.(&optional.d
60f20 65 6c 65 74 65 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 74 elete.start.end)..."Remove.all.t
60f40 72 61 63 6b 73 20 61 74 20 70 6f 69 6e 74 20 6f 72 20 69 6e 20 72 65 67 69 6f 6e 20 69 66 20 61 racks.at.point.or.in.region.if.a
60f60 63 74 69 76 65 2e 0a 55 6e 6c 65 73 73 20 44 45 4c 45 54 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 ctive..Unless.DELETE.is.non-nil.
60f80 6f 72 20 77 69 74 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 69 73 20 6f 6e or.with.prefix.argument,.this.on
60fa0 6c 79 20 61 63 74 73 20 6f 6e 20 74 68 65 0a 62 72 6f 77 73 65 72 2c 66 69 6c 65 73 20 61 72 65 ly.acts.on.the.browser,files.are
60fc0 20 75 6e 74 6f 75 63 68 65 64 2e 20 4f 70 74 69 6f 6e 61 6c 6c 79 20 77 69 74 68 20 6c 69 6e 65 .untouched..Optionally.with.line
60fe0 20 6e 75 6d 62 65 72 20 61 74 20 70 6f 73 69 74 69 6f 6e 0a 53 54 41 52 54 20 61 6e 64 20 70 6f .number.at.position.START.and.po
61000 73 69 74 69 6f 6e 20 6f 66 20 45 4e 44 20 77 69 74 68 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e sition.of.END.within.the.region.
61020 20 49 66 20 63 61 63 68 69 6e 67 20 69 73 20 65 6e 61 62 6c 65 64 2c 0a 66 69 6c 65 73 20 61 72 .If.caching.is.enabled,.files.ar
61040 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 20 61 73 20 77 65 6c 6c e.removed.from.the.cache.as.well
61060 2e 20 57 68 65 6e 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 6e 6f 74 20 61 63 74 69 76 65 2c ..When.the.region.is.not.active,
61080 0a 61 20 6e 75 6d 65 72 69 63 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 72 65 6d 6f 76 .a.numeric.prefix.argument.remov
610a0 65 20 74 68 61 74 20 6d 61 6e 79 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 70 6f 69 6e 74 2c 20 69 e.that.many.tracks.from.point,.i
610c0 74 20 64 6f 65 73 0a 6e 6f 74 20 64 65 6c 65 74 65 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 t.does.not.delete.files."...(int
610e0 65 72 61 63 74 69 76 65 20 22 50 5c 6e 72 22 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 eractive."P\nr")...(let.((count.
61100 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 (cond.................((use-regi
61120 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 2d 20 28 6c on-p)..................(1+.(-.(l
61140 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 65 6e 64 29 20 28 6c 69 6e 65 2d 6e 75 6d ine-number-at-pos.end).(line-num
61160 62 65 72 2d 61 74 2d 70 6f 73 20 73 74 61 72 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ber-at-pos.start))))............
61180 20 20 20 20 20 28 28 6e 75 6d 62 65 72 70 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 .....((numberp.current-prefix-ar
611a0 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 2d 70 72 65 66 g)..................current-pref
611c0 69 78 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 31 29 29 29 0a ix-arg).................(t.1))).
611e0 20 20 20 20 20 20 20 20 64 69 72 73 20 70 61 74 68 20 74 72 61 63 6b 73 29 0a 20 20 20 20 3b 3b ........dirs.path.tracks).....;;
61200 20 49 66 20 6e 75 6d 65 72 69 63 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 6e 65 76 .If.numeric.prefix.argument,.nev
61220 65 72 20 64 65 6c 65 74 65 20 66 69 6c 65 73 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 75 6d 62 er.delete.files......(when.(numb
61240 65 72 70 20 64 65 6c 65 74 65 29 20 28 73 65 74 71 20 64 65 6c 65 74 65 20 6e 69 6c 29 29 0a 20 erp.delete).(setq.delete.nil))..
61260 20 20 20 28 77 68 65 6e 20 64 65 6c 65 74 65 0a 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 72 6b ...(when.delete.......(save-mark
61280 2d 61 6e 64 2d 65 78 63 75 72 73 69 6f 6e 0a 09 28 77 68 65 6e 20 28 75 73 65 2d 72 65 67 69 6f -and-excursion..(when.(use-regio
612a0 6e 2d 70 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 29 29 0a 09 28 6c 65 74 20 28 28 n-p).(goto-char.start))..(let.((
612c0 6c 69 6e 65 73 20 28 6d 69 6e 20 63 6f 75 6e 74 20 28 2d 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 lines.(min.count.(-.(line-number
612e0 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 -at-pos.(point-max)).(line-numbe
61300 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 r-at-pos.(point))))))...........
61320 28 64 6f 74 69 6d 65 73 20 28 5f 20 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b (dotimes.(_.lines).............;
61340 3b 20 54 4f 44 4f 3a 20 54 65 73 74 20 74 68 69 73 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ;.TODO:.Test.this!.............(
61360 73 65 74 71 20 74 72 61 63 6b 73 20 28 61 70 70 65 6e 64 20 74 72 61 63 6b 73 20 28 65 6d 6d 73 setq.tracks.(append.tracks.(emms
61380 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 73 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 -browser-tracks-at-point))).....
613a0 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 20 20 20 ........(forward-line)))).......
613c0 28 75 6e 6c 65 73 73 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 (unless.(yes-or-no-p............
613e0 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 65 61 6c 6c 79 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 ....(format."Really.permanently.
61400 64 65 6c 65 74 65 20 74 68 65 73 65 20 25 64 20 74 72 61 63 6b 73 3f 20 22 20 28 6c 65 6e 67 74 delete.these.%d.tracks?.".(lengt
61420 68 20 74 72 61 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 63 h.tracks))).........(error."Canc
61440 65 6c 6c 65 64 21 22 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 44 65 6c 65 74 69 elled!")).......(message."Deleti
61460 6e 67 20 66 69 6c 65 73 2e 2e 2e 22 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 75 73 65 2d 72 65 ng.files...")).....(when.(use-re
61480 67 69 6f 6e 2d 70 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 29 29 0a 20 20 20 20 28 gion-p).(goto-char.start)).....(
614a0 64 6f 74 69 6d 65 73 20 28 5f 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 dotimes.(_.count).......(dolist.
614c0 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 73 2d 61 74 2d 70 (track.(emms-browser-tracks-at-p
614e0 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 28 65 6d 6d 73 2d oint)).........(setq.path.(emms-
61500 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 track-get.track.'name)).........
61520 28 77 68 65 6e 20 64 65 6c 65 74 65 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 (when.delete...........(delete-f
61540 69 6c 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 28 ile.path)).........(cl-pushnew.(
61560 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 20 64 69 72 73 29 0a file-name-directory.path).dirs).
61580 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 64 65 6c 20 70 61 74 68 29 29 0a 20 ........(emms-cache-del.path))..
615a0 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 68 65 20 69 74 65 6d 20 66 72 6f 6d 20 74 68 65 .....;;.remove.the.item.from.the
615c0 20 62 72 6f 77 73 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 .browser.......(when.(emms-brows
615e0 65 72 2d 74 72 61 63 6b 73 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d er-tracks-at-point).........(emm
61600 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29 29 29 s-browser-delete-current-node)))
61620 0a 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a 20 20 20 20 3b 3b 20 72 65 .....(deactivate-mark).....;;.re
61640 6d 6f 76 65 20 65 6d 70 74 79 20 64 69 72 73 0a 20 20 20 20 28 77 68 65 6e 20 64 65 6c 65 74 65 move.empty.dirs.....(when.delete
61660 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 64 69 72 20 64 69 72 73 29 0a 20 20 20 20 20 20 .......(dolist.(dir.dirs).......
61680 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 62 72 6f 77 ..(run-hook-with-args.'emms-brow
616a0 73 65 72 2d 64 65 6c 65 74 65 2d 66 69 6c 65 73 2d 68 6f 6f 6b 20 64 69 72 20 74 72 61 63 6b 73 ser-delete-files-hook.dir.tracks
616c0 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 ).........(condition-case.nil...
616e0 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 29 ..........(delete-directory.dir)
61700 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 77 ...........(error.nil)))).....(w
61720 68 65 6e 20 64 65 6c 65 74 65 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 44 65 6c 65 74 hen.delete.......(message."Delet
61740 69 6e 67 20 66 69 6c 65 73 2e 2e 2e 64 6f 6e 65 22 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 ing.files...done"))))..(defalias
61760 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 66 69 6c 65 73 20 27 65 6d 6d .'emms-browser-delete-files.'emm
61780 73 2d 62 72 6f 77 73 65 72 2d 72 65 6d 6f 76 65 2d 74 72 61 63 6b 73 29 0a 28 70 75 74 20 27 65 s-browser-remove-tracks).(put.'e
617a0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 66 69 6c 65 73 20 27 64 69 73 61 62 6c mms-browser-delete-files.'disabl
617c0 65 64 20 74 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 ed.t)..(defun.emms-browser-clear
617e0 2d 70 6c 61 79 6c 69 73 74 20 28 29 0a 20 20 22 43 6c 65 61 72 20 70 6c 61 79 6c 69 73 74 2e 22 -playlist.()..."Clear.playlist."
61800 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 ...(interactive)...(with-current
61820 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 -emms-playlist.....(emms-playlis
61840 74 2d 63 6c 65 61 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d t-clear)))..(defun.emms-browser-
61860 6c 6f 6f 6b 75 70 20 28 66 69 65 6c 64 20 75 72 6c 29 0a 20 20 28 6c 65 74 20 28 28 64 61 74 61 lookup.(field.url)...(let.((data
61880 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 28 65 6d 6d 73 2d ..........(emms-track-get.(emms-
618a0 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 66 69 72 73 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 browser-bdata-first-track.......
618c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 ....................(emms-browse
618e0 72 2d 62 64 61 74 61 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r-bdata-at-point))..............
61900 20 20 20 20 20 20 20 20 20 20 20 20 66 69 65 6c 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 ............field))).....(when.d
61920 61 74 61 0a 20 20 20 20 20 20 28 62 72 6f 77 73 65 2d 75 72 6c 0a 20 20 20 20 20 20 20 28 63 6f ata.......(browse-url........(co
61940 6e 63 61 74 20 75 72 6c 20 64 61 74 61 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ncat.url.data)))))..(defun.emms-
61960 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 77 69 6b 69 70 65 64 69 61 20 28 66 69 65 6c 64 29 browser-lookup-wikipedia.(field)
61980 0a 20 20 22 4c 6f 6f 6b 75 70 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 46 49 45 4c 44 20 69 6e 20 ..."Lookup.contents.of.FIELD.in.
619a0 77 69 6b 69 70 65 64 69 61 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b wikipedia."...(emms-browser-look
619c0 75 70 0a 20 20 20 66 69 65 6c 64 20 22 68 74 74 70 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 up....field."http://en.wikipedia
619e0 2e 6f 72 67 2f 77 69 6b 69 2f 53 70 65 63 69 61 6c 3a 53 65 61 72 63 68 3f 73 65 61 72 63 68 3d .org/wiki/Special:Search?search=
61a00 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d "))..(defun.emms-browser-lookup-
61a20 61 6c 62 75 6d 61 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 20 28 29 0a 20 20 28 69 albumartist-on-wikipedia.()...(i
61a40 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b nteractive)...(emms-browser-look
61a60 75 70 2d 77 69 6b 69 70 65 64 69 61 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 29 up-wikipedia.'info-albumartist))
61a80 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 72 74 ..(defun.emms-browser-lookup-art
61aa0 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 ist-on-wikipedia.()...(interacti
61ac0 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 77 69 6b 69 70 ve)...(emms-browser-lookup-wikip
61ae0 65 64 69 61 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 edia.'info-artist))..(defun.emms
61b00 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 63 6f 6d 70 6f 73 65 72 2d 6f 6e 2d 77 69 6b 69 -browser-lookup-composer-on-wiki
61b20 70 65 64 69 61 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 pedia.()...(interactive)...(emms
61b40 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 77 69 6b 69 70 65 64 69 61 20 27 69 6e 66 6f 2d -browser-lookup-wikipedia.'info-
61b60 63 6f 6d 70 6f 73 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d composer))..(defun.emms-browser-
61b80 6c 6f 6f 6b 75 70 2d 70 65 72 66 6f 72 6d 65 72 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 20 28 29 lookup-performer-on-wikipedia.()
61ba0 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 ...(interactive)...(emms-browser
61bc0 2d 6c 6f 6f 6b 75 70 2d 77 69 6b 69 70 65 64 69 61 20 27 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 -lookup-wikipedia.'info-performe
61be0 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d r))..(defun.emms-browser-lookup-
61c00 61 6c 62 75 6d 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 album-on-wikipedia.()...(interac
61c20 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 77 69 6b tive)...(emms-browser-lookup-wik
61c40 69 70 65 64 69 61 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d ipedia.'info-album))...;;.------
61c60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
61c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 4c 69 6e 6b 65 64 20 62 72 6f 77 73 65 72 20 61 ------------.;;.Linked.browser.a
61ca0 6e 64 20 70 6c 61 79 6c 69 73 74 20 77 69 6e 64 6f 77 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d nd.playlist.windows.;;.---------
61cc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
61ce0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 62 72 6f 77 73 ---------..(defcustom.emms-brows
61d00 65 72 2d 73 77 69 74 63 68 2d 74 6f 2d 70 6c 61 79 6c 69 73 74 2d 6f 6e 2d 61 64 64 0a 20 20 6e er-switch-to-playlist-on-add...n
61d20 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 73 77 69 74 63 68 20 74 6f 20 74 6f 20 74 68 il..."Whether.to.switch.to.to.th
61d40 65 20 70 6c 61 79 6c 69 73 74 20 61 66 74 65 72 20 61 64 64 69 6e 67 20 66 69 6c 65 73 2e 22 0a e.playlist.after.adding.files.".
61d60 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 ..:type.'boolean)..;;;###autoloa
61d80 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 65 20 28 29 0a 20 20 d.(defun.emms-smart-browse.()...
61da0 22 44 69 73 70 6c 61 79 20 62 72 6f 77 73 65 72 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 2e 0a 54 "Display.browser.and.playlist..T
61dc0 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 20 73 65 6c 65 63 74 69 6e 67 20 62 72 6f 77 73 65 72 2c oggle.between.selecting.browser,
61de0 20 70 6c 61 79 6c 69 73 74 20 6f 72 20 68 69 64 69 6e 67 20 62 6f 74 68 2e 20 54 72 69 65 73 0a .playlist.or.hiding.both..Tries.
61e00 74 6f 20 62 65 68 61 76 65 20 73 61 6e 65 6c 79 20 69 66 20 74 68 65 20 75 73 65 72 20 68 61 73 to.behave.sanely.if.the.user.has
61e20 20 6d 61 6e 75 61 6c 6c 79 20 63 68 61 6e 67 65 64 20 74 68 65 20 77 69 6e 64 6f 77 0a 63 6f 6e .manually.changed.the.window.con
61e40 66 69 67 75 72 61 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 figuration."...(interactive)...(
61e60 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 64 69 73 70 add-hook.'emms-browser-show-disp
61e80 6c 61 79 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 62 72 6f 77 lay-hook.............#'emms-brow
61ea0 73 65 72 2d 64 69 73 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f ser-display-playlist)...(add-hoo
61ec0 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 64 65 2d 64 69 73 70 6c 61 79 2d 68 6f 6f k.'emms-browser-hide-display-hoo
61ee0 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 64 k.............#'emms-browser-hid
61f00 65 2d 6c 69 6e 6b 65 64 2d 77 69 6e 64 6f 77 29 0a 20 20 3b 3b 20 73 77 69 74 63 68 20 74 6f 20 e-linked-window)...;;.switch.to.
61f20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 77 69 6e 64 6f 77 20 77 68 65 6e 20 61 64 64 69 6e 67 20 the.playlist.window.when.adding.
61f40 74 72 61 63 6b 73 3f 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 tracks?...(add-hook.'emms-browse
61f60 72 2d 74 72 61 63 6b 73 2d 61 64 64 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 r-tracks-added-hook.............
61f80 28 6c 61 6d 62 64 61 20 28 73 74 61 72 74 2d 6f 66 2d 74 72 61 63 6b 73 29 20 28 69 6e 74 65 72 (lambda.(start-of-tracks).(inter
61fa0 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 70 6c 61 79 active)...............(let.(play
61fc0 6c 69 73 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 list-window).................(wh
61fe0 65 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 77 69 74 63 68 2d 74 6f 2d 70 6c 61 79 6c 69 en.emms-browser-switch-to-playli
62000 73 74 2d 6f 6e 2d 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d st-on-add...................(emm
62020 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-smart-browse))................
62040 20 3b 3b 20 63 65 6e 74 65 72 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 61 64 64 65 64 20 74 72 .;;.center.on.the.first.added.tr
62060 61 63 6b 2f 67 72 6f 75 70 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ack/group.name.................(
62080 77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 when.....................(setq.p
620a0 6c 61 79 6c 69 73 74 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 laylist-window..................
620c0 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 .........(emms-browser-get-linke
620e0 64 2d 77 69 6e 64 6f 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d d-window))...................(em
62100 6d 73 2d 62 72 6f 77 73 65 72 2d 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 0a ms-browser-with-selected-window.
62120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 61 79 6c 69 73 74 2d 77 ......................playlist-w
62140 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d indow.....................(goto-
62160 63 68 61 72 20 73 74 61 72 74 2d 6f 66 2d 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 char.start-of-tracks)...........
62180 20 20 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 27 28 34 29 29 29 29 29 29 29 0a 20 ..........(recenter.'(4)))))))..
621a0 20 28 6c 65 74 20 28 77 69 6e 64 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 .(let.(wind).....(cond......((eq
621c0 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 29 0a .major-mode.'emms-browser-mode).
621e0 20 20 20 20 20 20 28 73 65 74 71 20 77 69 6e 64 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 ......(setq.wind.(emms-browser-g
62200 65 74 2d 6c 69 6e 6b 65 64 2d 77 69 6e 64 6f 77 29 29 0a 20 20 20 20 20 20 3b 3b 20 69 66 20 74 et-linked-window)).......;;.if.t
62220 68 65 20 70 6c 61 79 6c 69 73 74 20 77 69 6e 64 6f 77 20 69 73 20 76 69 73 69 62 6c 65 2c 20 73 he.playlist.window.is.visible,.s
62240 65 6c 65 63 74 20 69 74 0a 20 20 20 20 20 20 28 69 66 20 77 69 6e 64 0a 20 20 20 20 20 20 20 20 elect.it.......(if.wind.........
62260 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 20 77 69 6e 64 29 0a 09 3b 3b 20 6f 74 68 65 72 ..(select-window.wind)..;;.other
62280 77 69 73 65 20 64 69 73 70 6c 61 79 20 61 6e 64 20 73 65 6c 65 63 74 20 69 74 0a 09 28 73 65 6c wise.display.and.select.it..(sel
622a0 65 63 74 2d 77 69 6e 64 6f 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 69 73 70 6c 61 79 ect-window.(emms-browser-display
622c0 2d 70 6c 61 79 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f -playlist))))......((eq.major-mo
622e0 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 73 de.'emms-playlist-mode).......(s
62300 65 74 71 20 77 69 6e 64 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 etq.wind.(emms-browser-get-linke
62320 64 2d 77 69 6e 64 6f 77 29 29 0a 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 70 6c 61 79 6c d-window)).......;;.if.the.playl
62340 69 73 74 20 77 69 6e 64 6f 77 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 6e 64 20 74 68 65 20 ist.window.is.selected,.and.the.
62360 62 72 6f 77 73 65 72 20 69 73 20 76 69 73 69 62 6c 65 2c 0a 20 20 20 20 20 20 3b 3b 20 68 69 64 browser.is.visible,.......;;.hid
62380 65 20 62 6f 74 68 0a 20 20 20 20 20 20 28 69 66 20 77 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 e.both.......(if.wind...........
623a0 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f (progn.............(select-windo
623c0 77 20 77 69 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 w.wind).............(emms-browse
623e0 72 2d 62 75 72 79 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 66 r-bury-buffer).............;;.Af
62400 74 65 72 20 61 20 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 ter.a.browser.search,.the.follow
62420 69 6e 67 20 62 75 66 66 65 72 20 63 6f 75 6c 64 20 62 65 20 74 68 65 0a 20 20 20 20 20 20 20 20 ing.buffer.could.be.the.........
62440 20 20 20 20 3b 3b 20 75 6e 66 69 6c 74 65 72 65 64 20 62 72 6f 77 73 65 72 2c 20 77 68 69 63 68 ....;;.unfiltered.browser,.which
62460 20 77 65 20 77 61 6e 74 20 74 6f 20 62 75 72 79 20 61 73 20 77 65 6c 6c 2e 20 20 57 65 20 64 6f .we.want.to.bury.as.well...We.do
62480 6e 27 74 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 63 61 6c 6c 20 n't.want.............;;.to.call.
624a0 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 64 65 2d 64 69 73 70 6c 61 79 2d 68 6f 6f 6b 27 `emms-browser-hide-display-hook'
624c0 20 66 6f 72 20 74 68 69 73 20 6f 6e 65 20 73 6f 20 77 65 20 62 75 72 79 20 69 74 0a 20 20 20 20 .for.this.one.so.we.bury.it.....
624e0 20 20 20 20 20 20 20 20 3b 3b 20 64 69 72 65 63 74 6c 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 ........;;.directly.............
62500 20 28 77 68 65 6e 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 62 72 6f 77 .(when.(eq.major-mode.'emms-brow
62520 73 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 72 79 2d 62 75 ser-mode)...............(bury-bu
62540 66 66 65 72 29 29 29 0a 09 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 62 75 72 79 20 62 6f 74 68 0a ffer)))..;;.otherwise.bury.both.
62560 09 28 62 75 72 79 2d 62 75 66 66 65 72 29 0a 09 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 .(bury-buffer)..(emms-browser-hi
62580 64 65 2d 6c 69 6e 6b 65 64 2d 77 69 6e 64 6f 77 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 de-linked-window)))......(t.....
625a0 20 20 3b 3b 20 73 68 6f 77 20 62 6f 74 68 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ..;;.show.both.......(emms-brows
625c0 65 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 er)))))..(defun.emms-browser-get
625e0 2d 6c 69 6e 6b 65 64 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 6e 6b -linked-buffer.()..."Return.link
62600 65 64 20 62 75 66 66 65 72 20 28 65 67 20 62 72 6f 77 73 65 72 20 69 66 20 70 6c 61 79 6c 69 73 ed.buffer.(eg.browser.if.playlis
62620 74 20 69 73 20 73 65 6c 65 63 74 65 64 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 65 71 20 t.is.selected."...(cond....((eq.
62640 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 29 0a 20 major-mode.'emms-browser-mode)..
62660 20 20 20 28 63 61 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6c 69 ...(car.(emms-playlist-buffer-li
62680 73 74 29 29 29 0a 20 20 20 28 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 70 st)))....((eq.major-mode.'emms-p
626a0 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d laylist-mode).....(emms-browser-
626c0 67 65 74 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 get-buffer))))..(defun.emms-brow
626e0 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 64 2d 77 69 6e 64 6f 77 20 28 29 0a 20 20 22 52 65 74 75 ser-get-linked-window.()..."Retu
62700 72 6e 20 6c 69 6e 6b 65 64 20 77 69 6e 64 6f 77 20 28 65 67 20 62 72 6f 77 73 65 72 20 69 66 20 rn.linked.window.(eg.browser.if.
62720 70 6c 61 79 6c 69 73 74 20 69 73 20 73 65 6c 65 63 74 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 playlist.is.selected."...(let.((
62740 62 75 66 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 64 2d 62 75 66 buf.(emms-browser-get-linked-buf
62760 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 62 75 66 0a 20 20 20 20 20 20 28 67 65 74 2d fer))).....(when.buf.......(get-
62780 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 62 75 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d buffer-window.buf))))..(defun.em
627a0 6d 73 2d 62 72 6f 77 73 65 72 2d 64 69 73 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 20 28 29 0a 20 ms-browser-display-playlist.()..
627c0 20 22 41 20 68 6f 6f 6b 20 74 6f 20 73 68 6f 77 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 77 68 ."A.hook.to.show.the.playlist.wh
627e0 65 6e 20 74 68 65 20 62 72 6f 77 73 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 2e 0a 52 65 74 en.the.browser.is.displayed..Ret
62800 75 72 6e 73 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 6e urns.the.playlist.window."...(in
62820 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 70 62 75 66 20 28 65 6d 6d 73 2d 62 teractive)...(let.((pbuf.(emms-b
62840 72 6f 77 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 64 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 rowser-get-linked-buffer))......
62860 20 20 20 28 70 77 69 6e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 ...(pwin.(emms-browser-get-linke
62880 64 2d 77 69 6e 64 6f 77 29 29 29 0a 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 77 69 6e 64 6f 77 d-window))).....;;.if.the.window
628a0 20 69 73 6e 27 74 20 61 6c 69 76 65 2e 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 77 69 6e 64 .isn't.alive.......(unless.(wind
628c0 6f 77 2d 6c 69 76 65 2d 70 20 70 77 69 6e 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 73 65 6c 65 ow-live-p.pwin).......(save-sele
628e0 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 77 69 6e 64 6f cted-window.........(split-windo
62900 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 6c 79 29 0a 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 w-horizontally).........(other-w
62920 69 6e 64 6f 77 20 31 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 70 62 75 66 0a 20 20 20 20 20 20 indow.1).........(if.pbuf.......
62940 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 70 62 75 66 29 0a 20 20 ......(switch-to-buffer.pbuf)...
62960 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 72 65 27 73 20 6e 6f 20 70 6c 61 79 6c 69 73 74 20 2d ........;;.there's.no.playlist.-
62980 20 63 72 65 61 74 65 20 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 62 75 66 .create.one...........(setq.pbuf
629a0 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 63 6c 65 61 72 29 29 0a .(emms-playlist-current-clear)).
629c0 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 70 62 75 66 ..........(switch-to-buffer.pbuf
629e0 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 20 71 20 69 6e 20 74 68 65 20 70 6c 61 79 )).........;;.make.q.in.the.play
62a00 6c 69 73 74 20 77 69 6e 64 6f 77 20 68 69 64 65 20 74 68 65 20 6c 69 6e 6b 65 64 20 62 72 6f 77 list.window.hide.the.linked.brow
62a20 73 65 72 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 6f 75 6e 64 70 20 27 65 6d 6d 73 2d ser.........(when.(boundp.'emms-
62a40 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 playlist-mode-map)...........(de
62a60 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 fine-key.emms-playlist-mode-map.
62a80 28 6b 62 64 20 22 71 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (kbd."q").......................
62aa0 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (lambda.()......................
62ac0 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(interactive)................
62ae0 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 68 69 64 65 2d 6c 69 6e 6b .........(emms-browser-hide-link
62b00 65 64 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ed-window)......................
62b20 20 20 20 28 62 75 72 79 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 ...(bury-buffer)))).........(set
62b40 71 20 70 77 69 6e 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 70 62 75 66 29 29 q.pwin.(get-buffer-window.pbuf))
62b60 29 29 0a 20 20 20 20 70 77 69 6e 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 )).....pwin))..(defun.emms-brows
62b80 65 72 2d 68 69 64 65 2d 6c 69 6e 6b 65 64 2d 77 69 6e 64 6f 77 20 28 29 0a 20 20 22 44 65 6c 65 er-hide-linked-window.()..."Dele
62ba0 74 65 20 61 20 70 6c 61 79 6c 69 73 74 20 6f 72 20 62 72 6f 77 73 65 72 20 77 69 6e 64 6f 77 20 te.a.playlist.or.browser.window.
62bc0 77 68 65 6e 20 74 68 65 20 6f 74 68 65 72 20 69 73 20 68 69 64 64 65 6e 2e 22 0a 20 20 28 69 6e when.the.other.is.hidden."...(in
62be0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6f 74 68 65 72 2d 62 75 66 20 28 65 teractive)...(let.((other-buf.(e
62c00 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 6c 69 6e 6b 65 64 2d 62 75 66 66 65 72 29 29 0a mms-browser-get-linked-buffer)).
62c20 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 2d 77 69 6e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 ........(other-win.(emms-browser
62c40 2d 67 65 74 2d 6c 69 6e 6b 65 64 2d 77 69 6e 64 6f 77 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 -get-linked-window))).....(when.
62c60 28 61 6e 64 20 6f 74 68 65 72 2d 77 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 (and.other-win................(w
62c80 69 6e 64 6f 77 2d 6c 69 76 65 2d 70 20 6f 74 68 65 72 2d 77 69 6e 29 29 0a 20 20 20 20 20 20 28 indow-live-p.other-win)).......(
62ca0 64 65 6c 65 74 65 2d 77 69 6e 64 6f 77 20 6f 74 68 65 72 2d 77 69 6e 29 29 0a 20 20 20 20 3b 3b delete-window.other-win)).....;;
62cc0 20 62 75 72 79 20 74 68 65 20 62 75 66 66 65 72 2c 20 6f 72 20 69 74 20 62 65 63 6f 6d 65 73 20 .bury.the.buffer,.or.it.becomes.
62ce0 76 69 73 69 62 6c 65 20 77 68 65 6e 20 77 65 20 68 69 64 65 20 74 68 65 0a 20 20 20 20 3b 3b 20 visible.when.we.hide.the.....;;.
62d00 6c 69 6e 6b 65 64 20 62 75 66 66 65 72 0a 20 20 20 20 28 62 75 72 79 2d 62 75 66 66 65 72 20 6f linked.buffer.....(bury-buffer.o
62d20 74 68 65 72 2d 62 75 66 29 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ther-buf)))...;;.---------------
62d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
62d60 2d 2d 2d 0a 3b 3b 20 41 6c 62 75 6d 20 63 6f 76 65 72 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d ---.;;.Album.covers.;;.---------
62d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
62da0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d ---------..(defun.emms-browser--
62dc0 62 75 69 6c 64 2d 63 6f 76 65 72 2d 66 69 6c 65 6e 61 6d 65 20 28 29 0a 20 20 22 42 75 69 6c 64 build-cover-filename.()..."Build
62de0 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 6f 76 65 72 73 2d 66 69 6c 65 6e 61 6d 65 27 .`emms-browser--covers-filename'
62e00 2e 0a 0a 42 61 73 65 64 20 6f 6e 20 66 72 6f 6d 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 ...Based.on.from.`emms-browser-c
62e20 6f 76 65 72 73 27 20 28 77 68 65 6e 20 61 20 6c 69 73 74 29 20 61 6e 64 0a 60 65 6d 6d 73 2d 62 overs'.(when.a.list).and.`emms-b
62e40 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 27 2e 22 rowser-covers-file-extensions'."
62e60 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 6f 76 65 72 73 2d 66 69 ...(setq.emms-browser--covers-fi
62e80 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 lename.........(mapcar.(lambda.(
62ea0 63 6f 76 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 cover)...................(if.(fi
62ec0 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 63 6f 76 65 72 29 0a 20 20 20 20 20 20 20 le-name-extension.cover)........
62ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 63 6f 76 65 72 29 0a 20 20 20 20 ...............(list.cover).....
62f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 ................(mapcar.(lambda.
62f20 28 65 78 74 29 20 28 63 6f 6e 63 61 74 20 63 6f 76 65 72 20 22 2e 22 20 65 78 74 29 29 0a 20 20 (ext).(concat.cover.".".ext))...
62f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 ..........................emms-b
62f60 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 29 29 29 rowser-covers-file-extensions)))
62f80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f .................emms-browser-co
62fa0 76 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 vers)))..(defun.emms-browser-get
62fc0 2d 63 6f 76 65 72 2d 66 72 6f 6d 2d 61 6c 62 75 6d 20 28 62 64 61 74 61 20 26 6f 70 74 69 6f 6e -cover-from-album.(bdata.&option
62fe0 61 6c 20 73 69 7a 65 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 65 71 20 28 65 6d 6d 73 2d al.size)...(cl-assert.(eq.(emms-
63000 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 74 79 70 65 20 62 64 61 74 61 29 20 27 69 6e 66 6f 2d browser-bdata-type.bdata).'info-
63020 61 6c 62 75 6d 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 31 64 61 74 61 20 28 65 6d album))...(let*.((track1data.(em
63040 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 64 61 74 61 20 62 64 61 74 61 29 29 0a 20 20 ms-browser-bdata-data.bdata))...
63060 20 20 20 20 20 20 20 28 74 72 61 63 6b 31 20 28 63 61 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 .......(track1.(car.(emms-browse
63080 72 2d 62 64 61 74 61 2d 64 61 74 61 20 28 63 61 72 20 74 72 61 63 6b 31 64 61 74 61 29 29 29 29 r-bdata-data.(car.track1data))))
630a0 0a 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 ..........(path.(emms-track-get.
630c0 74 72 61 63 6b 31 20 27 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 track1.'name))).....(emms-browse
630e0 72 2d 67 65 74 2d 63 6f 76 65 72 2d 66 72 6f 6d 2d 70 61 74 68 20 70 61 74 68 20 73 69 7a 65 29 r-get-cover-from-path.path.size)
63100 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 65 ))..(defun.emms-browser-get-cove
63120 72 2d 66 72 6f 6d 2d 70 61 74 68 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 73 69 7a 65 r-from-path.(path.&optional.size
63140 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 76 65 72 20 66 69 6c 65 6e 61 6d 65 2c 20 69 66 )..."Return.a.cover.filename,.if
63160 20 69 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 73 69 7a 65 0a 20 20 20 20 .it.exists."...(unless.size.....
63180 28 73 65 74 71 20 73 69 7a 65 20 27 6d 65 64 69 75 6d 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 73 (setq.size.'medium))...(let*.((s
631a0 69 7a 65 2d 69 64 78 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ize-idx.(cond...................
631c0 20 20 28 28 65 71 20 73 69 7a 65 20 27 73 6d 61 6c 6c 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 ..((eq.size.'small).0)..........
631e0 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 73 69 7a 65 20 27 6d 65 64 69 75 6d 29 20 31 29 ...........((eq.size.'medium).1)
63200 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 73 69 7a 65 20 27 .....................((eq.size.'
63220 6c 61 72 67 65 29 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 76 65 72 0a 20 20 20 20 large).2)))..........(cover.....
63240 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f ......(cond............((functio
63260 6e 70 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 29 0a 20 20 20 20 20 20 20 20 np.emms-browser-covers).........
63280 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 ....(funcall.emms-browser-covers
632a0 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 20 73 69 7a 65 .(file-name-directory.path).size
632c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6c 69 73 74 70 20 65 6d 6d 73 2d ))............((and.(listp.emms-
632e0 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 browser-covers).................
63300 20 28 6e 74 68 20 73 69 7a 65 2d 69 64 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 .(nth.size-idx.emms-browser-cove
63320 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 62 72 rs)).............(unless.emms-br
63340 6f 77 73 65 72 2d 2d 63 6f 76 65 72 73 2d 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 owser--covers-filename..........
63360 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 62 75 69 6c 64 2d 63 6f 76 65 72 2d .....(emms-browser--build-cover-
63380 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 64 65 6c filename)).............(car.(del
633a0 71 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 q.nil........................(ma
633c0 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 6f 76 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 pcar.(lambda.(cover)............
633e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 76 ......................(let.((cov
63400 65 72 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erpath..........................
63420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d ...............(concat.(file-nam
63440 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 20 63 6f 76 65 72 29 29 29 0a 20 20 20 20 20 e-directory.path).cover)))......
63460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 ..............................(a
63480 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 63 6f 76 65 72 70 61 74 68 29 20 63 6f 76 nd.(file-exists-p.coverpath).cov
634a0 65 72 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erpath))).......................
634c0 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 73 69 7a 65 2d 69 64 78 20 65 6d 6d 73 2d 62 72 6f 77 .........(nth.size-idx.emms-brow
634e0 73 65 72 2d 2d 63 6f 76 65 72 73 2d 66 69 6c 65 6e 61 6d 65 29 29 29 29 29 29 29 29 0a 20 20 20 ser--covers-filename))))))))....
63500 20 28 69 66 20 28 61 6e 64 20 63 6f 76 65 72 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 .(if.(and.cover.(file-readable-p
63520 20 63 6f 76 65 72 29 29 0a 20 20 20 20 20 20 20 20 63 6f 76 65 72 0a 20 20 20 20 20 20 3b 3b 20 .cover)).........cover.......;;.
63540 6e 6f 20 63 6f 76 65 72 20 66 6f 75 6e 64 2c 20 75 73 65 20 64 65 66 61 75 6c 74 0a 20 20 20 20 no.cover.found,.use.default.....
63560 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 63 6f 76 ..(when.emms-browser-default-cov
63580 65 72 73 0a 20 20 20 20 20 20 20 20 28 6e 74 68 20 73 69 7a 65 2d 69 64 78 20 65 6d 6d 73 2d 62 ers.........(nth.size-idx.emms-b
635a0 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 63 6f 76 65 72 73 29 29 29 29 29 0a 0a 28 64 65 66 rowser-default-covers)))))..(def
635c0 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e 73 65 72 74 2d 63 6f 76 65 72 20 28 70 61 un.emms-browser-insert-cover.(pa
635e0 74 68 29 0a 20 20 28 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 th)...(insert.(emms-browser-make
63600 2d 63 6f 76 65 72 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 -cover.path)))..(defun.emms-brow
63620 73 65 72 2d 6d 61 6b 65 2d 63 6f 76 65 72 20 28 70 61 74 68 29 0a 20 20 28 6c 65 74 2a 20 28 28 ser-make-cover.(path)...(let*.((
63640 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 70 61 74 68 29 29 0a ext.(file-name-extension.path)).
63660 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 .........(type.(cond............
63680 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 65 78 74 20 22 70 6e 67 22 29 20 20 20 27 70 6e 67 .....((string=.ext."png")...'png
636a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 65 78 74 20 ).................((string=.ext.
636c0 22 78 62 6d 22 29 20 20 20 27 78 62 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 "xbm")...'xbm).................(
636e0 28 73 74 72 69 6e 67 3d 20 65 78 74 20 22 78 70 6d 22 29 20 20 20 27 78 70 6d 29 0a 20 20 20 20 (string=.ext."xpm")...'xpm).....
63700 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 65 78 74 20 22 70 62 6d 22 29 ............((string=.ext."pbm")
63720 20 20 20 27 70 62 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e ...'pbm).................((strin
63740 67 2d 6d 61 74 63 68 20 22 65 3f 70 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-match."e?ps"..................
63760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 29 20 20 20 20 27 70 6f 73 74 73 63 72 69 70 ..............ext)....'postscrip
63780 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 65 78 74 t).................((string=.ext
637a0 20 22 67 69 66 22 29 20 20 20 27 67 69 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."gif")...'gif).................
637c0 28 28 73 74 72 69 6e 67 3d 20 65 78 74 20 22 74 69 66 66 22 29 20 20 27 74 69 66 66 29 0a 20 20 ((string=.ext."tiff")..'tiff)...
637e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............(t................
63800 20 20 20 20 20 27 6a 70 65 67 29 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 .....'jpeg)))).....(emms-propert
63820 69 7a 65 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 64 69 ize."."......................'di
63840 73 70 6c 61 79 20 60 28 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 splay.`(image...................
63860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 2c 74 79 70 65 0a 20 20 20 20 20 20 ..............:type.,type.......
63880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 72 67 69 ..........................:margi
638a0 6e 20 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.5.............................
638c0 20 20 20 20 3a 66 69 6c 65 20 2c 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....:file.,path)................
638e0 20 20 20 20 20 20 27 72 65 61 72 2d 6e 6f 6e 73 74 69 63 6b 79 20 27 28 64 69 73 70 6c 61 79 29 ......'rear-nonsticky.'(display)
63900 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 )))..(defun.emms-browser-get-cov
63920 65 72 2d 73 74 72 20 28 70 61 74 68 20 73 69 7a 65 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 76 65 er-str.(path.size)...(let.((cove
63940 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 65 72 2d 66 72 6f 6d 2d 70 r.(emms-browser-get-cover-from-p
63960 61 74 68 20 70 61 74 68 20 73 69 7a 65 29 29 29 0a 20 20 20 20 28 69 66 20 63 6f 76 65 72 0a 20 ath.path.size))).....(if.cover..
63980 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 63 6f 76 65 72 20 .......(emms-browser-make-cover.
639a0 63 6f 76 65 72 29 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 75 73 65 20 61 20 73 69 6e 67 6c 65 20 cover).......;;.we.use.a.single.
639c0 73 70 61 63 65 20 73 6f 20 74 68 61 74 20 63 6f 76 65 72 20 26 20 6e 6f 20 63 6f 76 65 72 20 74 space.so.that.cover.&.no.cover.t
639e0 72 61 63 6b 73 20 6c 69 6e 65 20 75 70 0a 20 20 20 20 20 20 3b 3b 20 69 6e 20 61 20 74 65 72 6d racks.line.up.......;;.in.a.term
63a00 69 6e 61 6c 0a 20 20 20 20 20 20 22 20 22 29 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d inal.......".")))..;;.----------
63a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
63a40 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 44 69 73 70 6c 61 79 20 66 6f 72 6d 61 74 73 0a 3b 3b 20 2d --------.;;.Display.formats.;;.-
63a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
63a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 -----------------..(defun.emms-b
63aa0 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 66 69 72 73 74 2d 74 72 61 63 6b 20 28 62 64 61 74 61 29 rowser-bdata-first-track.(bdata)
63ac0 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 74 72 61 63 6b 20 66 72 6f 6d 20 ..."Return.the.first.track.from.
63ae0 61 20 67 69 76 65 6e 20 62 64 61 74 61 2e 0a 49 66 20 3e 20 61 6c 62 75 6d 20 6c 65 76 65 6c 2c a.given.bdata..If.>.album.level,
63b00 20 6d 6f 73 74 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 64 61 74 61 20 77 69 6c 6c 20 6e 6f 74 .most.of.the.track.data.will.not
63b20 20 6d 61 6b 65 20 73 65 6e 73 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 79 70 65 20 28 65 6d 6d .make.sense."...(let.((type.(emm
63b40 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 74 79 70 65 20 62 64 61 74 61 29 29 29 0a 20 20 s-browser-bdata-type.bdata)))...
63b60 20 20 28 69 66 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 ..(if.(eq.type.'info-title).....
63b80 20 20 20 20 28 63 61 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 64 61 74 ....(car.(emms-browser-bdata-dat
63ba0 61 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 3b 3b 20 72 65 63 75 72 73 65 0a 20 20 20 20 20 a.bdata)).......;;.recurse......
63bc0 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 66 69 72 73 74 2d 74 72 61 63 6b .(emms-browser-bdata-first-track
63be0 0a 20 20 20 20 20 20 20 28 63 61 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 ........(car.(emms-browser-bdata
63c00 2d 64 61 74 61 20 62 64 61 74 61 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 -data.bdata))))))..(defun.emms-b
63c20 72 6f 77 73 65 72 2d 69 6e 73 65 72 74 2d 66 6f 72 6d 61 74 20 28 62 64 61 74 61 29 0a 20 20 28 rowser-insert-format.(bdata)...(
63c40 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 emms-with-inhibit-read-only-t...
63c60 20 28 69 6e 73 65 72 74 0a 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 .(insert.....(emms-browser-forma
63c80 74 2d 6c 69 6e 65 20 62 64 61 74 61 29 0a 20 20 20 20 22 5c 6e 22 29 29 29 0a 0a 28 64 65 66 75 t-line.bdata)....."\n")))..(defu
63ca0 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 69 6e 64 65 6e 74 20 28 6c 65 76 65 n.emms-browser-make-indent.(leve
63cc0 6c 29 0a 20 20 28 6f 72 0a 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 75 72 72 65 6e 74 l)...(or....emms-browser-current
63ce0 2d 69 6e 64 65 6e 74 0a 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2a 20 31 20 28 31 2d -indent....(make-string.(*.1.(1-
63d00 20 6c 65 76 65 6c 29 29 20 3f 5c 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f .level)).?\s)))..(defun.emms-bro
63d20 77 73 65 72 2d 66 6f 72 6d 61 74 2d 65 6c 65 6d 20 28 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 wser-format-elem.(format-string.
63d40 65 6c 65 6d 29 0a 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 65 6c 65 6d 20 66 6f 72 6d 61 74 2d elem)...(cdr.(assoc.elem.format-
63d60 73 74 72 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 string)))..(defun.emms-browser-f
63d80 6f 72 6d 61 74 2d 6c 69 6e 65 20 28 62 64 61 74 61 20 26 6f 70 74 69 6f 6e 61 6c 20 74 61 72 67 ormat-line.(bdata.&optional.targ
63da0 65 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 6f 70 65 72 74 69 7a 65 64 20 73 74 72 69 et)..."Return.a.propertized.stri
63dc0 6e 67 20 74 6f 20 62 65 20 69 6e 73 65 72 74 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e ng.to.be.inserted.in.the.buffer.
63de0 22 0a 20 20 28 75 6e 6c 65 73 73 20 74 61 72 67 65 74 0a 20 20 20 20 28 73 65 74 71 20 74 61 72 "...(unless.target.....(setq.tar
63e00 67 65 74 20 27 62 72 6f 77 73 65 72 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 6f get.'browser))...(let*.((name.(o
63e20 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 6e 61 6d 65 20 62 64 61 74 61 r.(emms-browser-bdata-name.bdata
63e40 29 20 22 6d 69 73 63 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 76 65 6c 20 28 65 6d 6d 73 )."misc"))..........(level.(emms
63e60 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 6c 65 76 65 6c 20 62 64 61 74 61 29 29 0a 20 20 20 -browser-bdata-level.bdata))....
63e80 20 20 20 20 20 20 28 74 79 70 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d ......(type.(emms-browser-bdata-
63ea0 74 79 70 65 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 28 65 type.bdata))..........(indent.(e
63ec0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 69 6e 64 65 6e 74 20 6c 65 76 65 6c 29 29 0a mms-browser-make-indent.level)).
63ee0 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 .........(track.(emms-browser-bd
63f00 61 74 61 2d 66 69 72 73 74 2d 74 72 61 63 6b 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 ata-first-track.bdata)).........
63f20 20 28 70 61 74 68 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 .(path.(emms-track-get.track.'na
63f40 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 61 63 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 me))..........(face.(emms-browse
63f60 72 2d 67 65 74 2d 66 61 63 65 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 r-get-face.bdata))..........(for
63f80 6d 61 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 66 6f 72 6d 61 74 20 62 64 61 mat.(emms-browser-get-format.bda
63fa0 74 61 20 74 61 72 67 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 73 20 28 6c 69 73 ta.target))..........(props.(lis
63fc0 74 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 20 62 64 61 74 61 29 29 0a 20 20 t.'emms-browser-bdata.bdata))...
63fe0 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 63 68 6f 69 63 65 73 0a 20 20 20 20 20 20 20 20 20 .......(format-choices..........
64000 20 60 28 28 22 69 22 20 2e 20 2c 69 6e 64 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 .`(("i"...,indent).............(
64020 22 6e 22 20 2e 20 2c 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 79 22 20 2e 20 "n"...,name).............("y"...
64040 2c 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 2d 79 65 61 72 20 74 72 61 63 6b 29 29 0a 20 20 ,(emms-track-get-year.track))...
64060 20 20 20 20 20 20 20 20 20 20 28 22 41 22 20 2e 20 2c 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 ..........("A"...,(emms-track-ge
64080 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 t.track.'info-album))...........
640a0 20 20 28 22 61 22 20 2e 20 2c 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 ..("a"...,(emms-track-get.track.
640c0 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6f 22 20 'info-artist)).............("o".
640e0 2e 20 2c 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 ..,(emms-track-get.track.'info-a
64100 6c 62 75 6d 61 72 74 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 43 22 20 2e 20 lbumartist)).............("C"...
64120 2c 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 63 6f 6d ,(emms-track-get.track.'info-com
64140 70 6f 73 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 70 22 20 2e 20 2c 28 65 6d 6d poser)).............("p"...,(emm
64160 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 s-track-get.track.'info-performe
64180 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 22 20 2e 20 2c 28 65 6d 6d 73 2d 74 72 r)).............("t"...,(emms-tr
641a0 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 0a 20 20 20 20 ack-get.track.'info-title)).....
641c0 20 20 20 20 20 20 20 20 28 22 67 22 20 2e 20 2c 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 ........("g"...,(emms-track-get.
641e0 74 72 61 63 6b 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 29 0a 09 20 20 20 20 28 22 44 22 20 2e 20 track.'info-genre))......("D"...
64200 2c 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 69 73 63 2d 6e 75 6d 62 65 72 20 74 72 61 63 6b ,(emms-browser-disc-number.track
64220 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 22 20 2e 20 2c 28 65 6d 6d 73 2d 62 72 6f )).............("T"...,(emms-bro
64240 77 73 65 72 2d 74 72 61 63 6b 2d 6e 75 6d 62 65 72 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 wser-track-number.track)).......
64260 20 20 20 20 20 20 28 22 64 22 20 2e 20 2c 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 ......("d"...,(emms-browser-trac
64280 6b 2d 64 75 72 61 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 29 0a 09 20 73 74 72 29 0a 20 20 20 20 k-duration.track))))...str).....
642a0 28 77 68 65 6e 20 28 65 71 75 61 6c 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 (when.(equal.type.'info-album)..
642c0 20 20 20 20 20 28 73 65 74 71 20 66 6f 72 6d 61 74 2d 63 68 6f 69 63 65 73 0a 20 20 20 20 20 20 .....(setq.format-choices.......
642e0 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 66 6f 72 6d 61 74 2d 63 68 6f 69 63 65 73 0a 20 20 20 ......(append.format-choices....
64300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 63 53 22 20 2e 20 2c 28 65 6d 6d .................`(("cS"...,(emm
64320 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 65 72 2d 73 74 72 20 70 61 74 68 20 27 73 6d s-browser-get-cover-str.path.'sm
64340 61 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 63 4d all)).......................("cM
64360 22 20 2e 20 2c 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 65 72 2d 73 74 72 "...,(emms-browser-get-cover-str
64380 20 70 61 74 68 20 27 6d 65 64 69 75 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .path.'medium)).................
643a0 20 20 20 20 20 20 28 22 63 4c 22 20 2e 20 2c 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 ......("cL"...,(emms-browser-get
643c0 2d 63 6f 76 65 72 2d 73 74 72 20 70 61 74 68 20 27 6c 61 72 67 65 29 29 29 29 29 29 0a 0a 0a 20 -cover-str.path.'large))))))....
643e0 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 6f 72 6d 61 74 29 0a 20 20 20 20 ...(when.(functionp.format).....
64400 20 20 28 73 65 74 71 20 66 6f 72 6d 61 74 20 28 66 75 6e 63 61 6c 6c 20 66 6f 72 6d 61 74 20 62 ..(setq.format.(funcall.format.b
64420 64 61 74 61 20 66 6f 72 6d 61 74 2d 63 68 6f 69 63 65 73 29 29 29 0a 0a 20 20 20 20 28 73 65 74 data.format-choices)))......(set
64440 71 20 73 74 72 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 q.str...........(with-temp-buffe
64460 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 66 6f 72 6d 61 74 29 0a 20 20 r.............(insert.format)...
64480 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ..........(goto-char.(point-min)
644a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 70 6f 69 6e ).............(let.((start.(poin
644c0 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 6d 70 20 6f t-min)))...............;;.jump.o
644e0 76 65 72 20 61 6e 79 20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 ver.any.image...............(whe
64500 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 25 63 5b 53 4d 4c 5d 22 20 6e n.(re-search-forward."%c[SML]".n
64520 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 il.t).................(setq.star
64540 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 6d t.(point)))...............;;.jum
64560 70 20 6f 76 65 72 20 74 68 65 20 69 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.over.the.indent...............
64580 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 25 69 22 20 6e 69 (when.(re-search-forward."%i".ni
645a0 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 l.t).................(setq.start
645c0 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 .(point)))...............(add-te
645e0 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a xt-properties.start.(point-max).
64600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
64620 20 20 20 28 6c 69 73 74 20 27 66 61 63 65 20 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 ...(list.'face.face)))..........
64640 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 20 20 20 20 28 73 65 74 71 20 ...(buffer-string)))......(setq.
64660 73 74 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 74 2d 73 70 65 63 20 73 74 str.(emms-browser-format-spec.st
64680 72 20 66 6f 72 6d 61 74 2d 63 68 6f 69 63 65 73 29 29 0a 0a 20 20 20 20 3b 3b 20 67 69 76 65 20 r.format-choices))......;;.give.
646a0 74 72 61 63 6b 73 20 61 20 27 62 6f 6f 73 74 27 20 69 66 20 74 68 65 79 27 72 65 20 6e 6f 74 20 tracks.a.'boost'.if.they're.not.
646c0 74 6f 70 2d 6c 65 76 65 6c 0a 20 20 20 20 3b 3b 20 28 63 6f 76 65 72 73 20 74 61 6b 65 20 75 70 top-level.....;;.(covers.take.up
646e0 20 61 6e 20 65 78 74 72 61 20 73 70 61 63 65 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 .an.extra.space).....(when.(and.
64700 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 (eq.type.'info-title)...........
64720 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 69 6e 64 65 6e 74 20 22 22 29 29 29 0a .....(not.(string=.indent.""))).
64740 20 20 20 20 20 20 28 73 65 74 71 20 73 74 72 20 28 63 6f 6e 63 61 74 20 22 20 22 20 73 74 72 29 ......(setq.str.(concat.".".str)
64760 29 29 0a 0a 20 20 20 20 3b 3b 20 69 66 20 77 65 27 72 65 20 69 6e 20 70 6c 61 79 6c 69 73 74 20 ))......;;.if.we're.in.playlist.
64780 6d 6f 64 65 2c 20 61 64 64 20 61 20 74 72 61 63 6b 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 mode,.add.a.track.....(when.(and
647a0 20 28 65 71 20 74 61 72 67 65 74 20 27 70 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 .(eq.target.'playlist)..........
647c0 20 20 20 20 20 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 0a 20 20 20 ......(eq.type.'info-title))....
647e0 20 20 20 28 73 65 74 71 20 70 72 6f 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 ...(setq.props.............(appe
64800 6e 64 20 70 72 6f 70 73 20 60 28 65 6d 6d 73 2d 74 72 61 63 6b 20 2c 74 72 61 63 6b 29 29 29 29 nd.props.`(emms-track.,track))))
64820 0a 0a 20 20 20 20 3b 3b 20 61 64 64 20 70 72 6f 70 65 72 74 69 65 73 20 74 6f 20 74 68 65 20 77 ......;;.add.properties.to.the.w
64840 68 6f 6c 65 20 73 74 72 69 6e 67 0a 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 hole.string.....(add-text-proper
64860 74 69 65 73 20 30 20 28 6c 65 6e 67 74 68 20 73 74 72 29 20 70 72 6f 70 73 20 73 74 72 29 0a 20 ties.0.(length.str).props.str)..
64880 20 20 20 73 74 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 ...str))..(defun.emms-browser-ge
648a0 74 2d 66 61 63 65 20 28 62 64 61 74 61 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 75 69 74 61 t-face.(bdata)..."Return.a.suita
648c0 62 6c 65 20 66 61 63 65 20 66 6f 72 20 42 44 41 54 41 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 ble.face.for.BDATA."...(let*.((t
648e0 79 70 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 64 61 74 61 2d 74 79 70 65 20 62 64 61 ype.(emms-browser-bdata-type.bda
64900 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 ta))..........(name.(cond.......
64920 20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 79 65 ..........((or.(eq.type.'info-ye
64940 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 79 70 ar)......................(eq.typ
64960 65 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 29 20 22 79 65 61 72 2f 67 65 6e 72 65 22 29 0a 20 20 e.'info-genre))."year/genre")...
64980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 6c ..............((eq.type.'info-al
649a0 62 75 6d 61 72 74 69 73 74 29 20 22 61 6c 62 75 6d 61 72 74 69 73 74 22 29 0a 20 20 20 20 20 20 bumartist)."albumartist").......
649c0 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 ..........((eq.type.'info-artist
649e0 29 20 22 61 72 74 69 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 )."artist").................((eq
64a00 20 74 79 70 65 20 27 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 20 22 63 6f 6d 70 6f 73 65 72 22 .type.'info-composer)."composer"
64a20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 ).................((eq.type.'inf
64a40 6f 2d 70 65 72 66 6f 72 6d 65 72 29 20 22 70 65 72 66 6f 72 6d 65 72 22 29 0a 20 20 20 20 20 20 o-performer)."performer").......
64a60 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 ..........((eq.type.'info-album)
64a80 20 22 61 6c 62 75 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 ."album").................((eq.t
64aa0 79 70 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 20 22 74 72 61 63 6b 22 29 29 29 29 0a 20 20 20 ype.'info-title)."track"))))....
64ac0 20 28 69 6e 74 65 72 6e 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 62 72 6f 77 .(intern......(concat."emms-brow
64ae0 73 65 72 2d 22 20 6e 61 6d 65 20 22 2d 66 61 63 65 22 29 29 29 29 0a 0a 3b 3b 20 62 61 73 65 64 ser-".name."-face"))))..;;.based
64b00 20 6f 6e 20 67 6e 75 73 20 63 6f 64 65 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 .on.gnus.code.(defun.emms-browse
64b20 72 2d 66 6f 72 6d 61 74 2d 73 70 65 63 20 28 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 63 61 74 r-format-spec.(format.specificat
64b40 69 6f 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 62 61 73 65 64 20 6f 6e ion)..."Return.a.string.based.on
64b60 20 46 4f 52 4d 41 54 20 61 6e 64 20 53 50 45 43 49 46 49 43 41 54 49 4f 4e 2e 0a 46 4f 52 4d 41 .FORMAT.and.SPECIFICATION..FORMA
64b80 54 20 69 73 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 60 66 6f 72 6d 61 74 T.is.a.string.containing.`format
64ba0 27 2d 6c 69 6b 65 20 73 70 65 63 73 20 6c 69 6b 65 20 5c 22 62 61 73 68 20 25 75 20 25 6b 5c 22 '-like.specs.like.\"bash.%u.%k\"
64bc0 2c 0a 77 68 69 6c 65 20 53 50 45 43 49 46 49 43 41 54 49 4f 4e 20 69 73 20 61 6e 20 61 6c 69 73 ,.while.SPECIFICATION.is.an.alis
64be0 74 20 6d 61 70 70 69 6e 67 20 66 72 6f 6d 20 66 6f 72 6d 61 74 20 73 70 65 63 20 63 68 61 72 61 t.mapping.from.format.spec.chara
64c00 63 74 65 72 73 0a 74 6f 20 76 61 6c 75 65 73 2e 20 20 41 6e 79 20 74 65 78 74 20 70 72 6f 70 65 cters.to.values...Any.text.prope
64c20 72 74 69 65 73 20 6f 6e 20 61 20 25 2d 73 70 65 63 20 69 74 73 65 6c 66 20 61 72 65 20 70 72 6f rties.on.a.%-spec.itself.are.pro
64c40 70 61 67 61 74 65 64 20 74 6f 0a 74 68 65 20 74 65 78 74 20 74 68 61 74 20 69 74 20 67 65 6e 65 pagated.to.the.text.that.it.gene
64c60 72 61 74 65 73 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 rates."...(with-temp-buffer.....
64c80 28 69 6e 73 65 72 74 20 66 6f 72 6d 61 74 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 (insert.format).....(goto-char.(
64ca0 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 61 72 63 68 2d 66 point-min)).....(while.(search-f
64cc0 6f 72 77 61 72 64 20 22 25 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 orward."%".nil.t).......(cond...
64ce0 20 20 20 20 20 3b 3b 20 51 75 6f 74 65 64 20 70 65 72 63 65 6e 74 20 73 69 67 6e 2e 0a 20 20 20 .....;;.Quoted.percent.sign.....
64d00 20 20 20 20 28 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 25 29 0a 20 20 20 20 20 20 ....((eq.(char-after).?%).......
64d20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 56 61 6c ..(delete-char.1))........;;.Val
64d40 69 64 20 66 6f 72 6d 61 74 20 73 70 65 63 2e 0a 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 id.format.spec.........((looking
64d60 2d 61 74 20 22 5c 5c 28 5b 2d 30 2d 39 2e 5d 2a 5c 5c 29 5c 5c 28 5b 61 2d 7a 41 2d 5a 5d 2b 5c -at."\\([-0-9.]*\\)\\([a-zA-Z]+\
64d80 5c 29 22 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 75 6d 20 28 6d 61 74 63 68 2d \)").........(let*.((num.(match-
64da0 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 65 63 20 string.1))................(spec.
64dc0 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (match-string.2))...............
64de0 20 28 76 61 6c 2d 61 6c 69 73 74 20 28 61 73 73 6f 63 20 73 70 65 63 20 73 70 65 63 69 66 69 63 .(val-alist.(assoc.spec.specific
64e00 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 20 28 63 64 72 ation))................(val.(cdr
64e20 20 76 61 6c 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 .val-alist)))...........(unless.
64e40 76 61 6c 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e val-alist.............(error."In
64e60 76 61 6c 69 64 20 66 6f 72 6d 61 74 20 63 68 61 72 61 63 74 65 72 3a 20 25 73 22 20 73 70 65 63 valid.format.character:.%s".spec
64e80 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 56 61 6c 75 65 20 66 6f 72 20 61 20 76 61 6c 69 ))...........;;.Value.for.a.vali
64ea0 64 20 73 70 65 63 20 6d 61 79 20 6e 6f 74 20 65 78 69 73 74 2e 20 4e 6f 74 20 61 6e 20 65 72 72 d.spec.may.not.exist..Not.an.err
64ec0 6f 72 2c 20 6a 75 73 74 20 6e 6f 74 68 69 6e 67 20 74 6f 20 73 68 6f 77 2e 0a 20 20 20 20 20 20 or,.just.nothing.to.show........
64ee0 20 20 20 20 28 75 6e 6c 65 73 73 20 76 61 6c 20 28 73 65 74 71 20 76 61 6c 20 22 22 29 29 0a 20 ....(unless.val.(setq.val.""))..
64f00 20 20 20 20 20 20 20 20 20 3b 3b 20 50 61 64 20 72 65 73 75 6c 74 20 74 6f 20 64 65 73 69 72 65 .........;;.Pad.result.to.desire
64f20 64 20 6c 65 6e 67 74 68 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 65 78 74 20 d.length............(let.((text.
64f40 28 66 6f 72 6d 61 74 20 28 63 6f 6e 63 61 74 20 22 25 22 20 6e 75 6d 20 22 73 22 29 20 76 61 6c (format.(concat."%".num."s").val
64f60 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 66 69 72 73 74 2c ))).............;;.Insert.first,
64f80 20 74 6f 20 70 72 65 73 65 72 76 65 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 .to.preserve.text.properties....
64fa0 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 61 6e 64 2d 69 6e 68 65 72 69 74 20 74 65 ..........(insert-and-inherit.te
64fc0 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 6c 65 74 65 20 74 68 65 20 73 70 xt).............;;.Delete.the.sp
64fe0 65 63 69 66 69 65 72 20 62 6f 64 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 ecifier.body..............(delet
65000 65 2d 72 65 67 69 6f 6e 20 28 2b 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 e-region.(+.(match-beginning.0).
65020 28 6c 65 6e 67 74 68 20 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (length.text))..................
65040 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 20 28 6c 65 6e 67 ..........(+.(match-end.0).(leng
65060 74 68 20 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 6c 65 74 65 th.text))).............;;.Delete
65080 20 74 68 65 20 70 65 72 63 65 6e 74 20 73 69 67 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 .the.percent.sign..............(
650a0 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 31 2d 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 delete-region.(1-.(match-beginni
650c0 6e 67 20 30 29 29 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 0a 20 ng.0)).(match-beginning.0)))))..
650e0 20 20 20 20 20 20 3b 3b 20 53 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 6f 6e 20 62 6f 67 75 ......;;.Signal.an.error.on.bogu
65100 73 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 s.format.strings.........(t.....
65120 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 66 6f 72 6d 61 74 20 73 74 72 69 6e ....(error."Invalid.format.strin
65140 67 22 29 29 29 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 3b 3b g")))).....(buffer-string)))..;;
65160 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
65180 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 44 69 73 70 6c 61 79 20 66 -------------------.;;.Display.f
651a0 6f 72 6d 61 74 73 20 2d 20 64 65 66 61 75 6c 74 73 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ormats.-.defaults.;;.-----------
651c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
651e0 2d 2d 2d 2d 2d 2d 2d 0a 0a 3b 3b 20 46 49 58 4d 45 3a 20 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d -------..;;.FIXME:.optional.form
65200 61 74 20 73 74 72 69 6e 67 73 20 77 6f 75 6c 64 20 61 76 6f 69 64 20 68 61 76 69 6e 67 20 74 6f at.strings.would.avoid.having.to
65220 20 64 65 66 69 6e 65 20 61 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 73 70 65 63 69 66 .define.a.;;.function.for.specif
65240 69 65 72 73 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 65 6d 70 74 79 2e 0a 0a 28 64 65 66 76 61 iers.which.may.be.empty...(defva
65260 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 20 22 25 r.emms-browser-default-format."%
65280 69 25 6e 22 0a 20 20 22 49 6e 64 65 6e 74 20 2b 20 6e 61 6d 65 2e 22 29 0a 0a 3b 3b 20 74 72 61 i%n"..."Indent.+.name.")..;;.tra
652a0 63 6b 73 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e 66 6f 2d 74 69 cks.(defvar.emms-browser-info-ti
652c0 74 6c 65 2d 66 6f 72 6d 61 74 0a 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b tle-format...'emms-browser-track
652e0 2d 61 72 74 69 73 74 2d 61 6e 64 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 29 0a 28 64 65 66 76 61 -artist-and-title-format).(defva
65300 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 66 6f 2d 74 69 74 r.emms-browser-playlist-info-tit
65320 6c 65 2d 66 6f 72 6d 61 74 0a 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d le-format...'emms-browser-track-
65340 61 72 74 69 73 74 2d 61 6e 64 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 29 0a 0a 28 64 65 66 75 6e artist-and-title-format)..(defun
65360 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 66 6f 72 6d 61 74 20 28 62 64 61 74 61 20 .emms-browser-get-format.(bdata.
65380 74 61 72 67 65 74 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 79 70 65 20 28 65 6d 6d 73 2d 62 72 6f target)...(let*.((type.(emms-bro
653a0 77 73 65 72 2d 62 64 61 74 61 2d 74 79 70 65 20 62 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 wser-bdata-type.bdata)).........
653c0 20 28 74 61 72 67 65 74 2d 73 74 72 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(target-str.(or................
653e0 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 74 61 72 67 65 74 20 27 62 72 6f 77 73 65 72 29 .......(and.(eq.target.'browser)
65400 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 ."").......................(conc
65420 61 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61 72 67 65 74 29 20 22 2d 22 29 29 29 0a 20 at.(symbol-name.target)."-")))..
65440 20 20 20 20 20 20 20 20 28 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 0a 20 ........(sym...........(intern..
65460 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ..........(concat."emms-browser-
65480 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 2d 73 74 72 0a "....................target-str.
654a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 ...................(symbol-name.
654c0 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 66 6f 72 6d 61 type)...................."-forma
654e0 74 22 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 0a 20 20 20 20 t")))).....(if.(boundp.sym).....
65500 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 0a 20 20 20 20 20 20 65 6d 6d ....(symbol-value.sym).......emm
65520 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 29 29 29 0a 0a 28 64 65 s-browser-default-format)))..(de
65540 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 61 72 74 69 73 74 2d 61 6e fun.emms-browser-track-artist-an
65560 64 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 20 28 5f 62 64 61 74 61 20 66 6d 74 29 0a 20 20 28 63 d-title-format.(_bdata.fmt)...(c
65580 6f 6e 63 61 74 0a 20 20 20 22 25 69 22 0a 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 oncat...."%i"....(let.((track.(e
655a0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 74 2d 65 6c 65 6d 20 66 6d 74 20 22 54 22 29 mms-browser-format-elem.fmt."T")
655c0 29 29 0a 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 74 72 61 63 6b 20 28 6e 6f 74 20 28 73 74 72 ))......(if.(and.track.(not.(str
655e0 69 6e 67 3d 20 74 72 61 63 6b 20 22 30 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 22 25 54 2e 20 ing=.track."0"))).........."%T..
65600 22 0a 20 20 20 20 20 20 20 22 22 29 29 0a 20 20 20 22 25 6e 22 29 29 0a 0a 3b 3b 20 61 6c 62 75 "........""))...."%n"))..;;.albu
65620 6d 73 20 2d 20 77 65 20 64 65 66 69 6e 65 20 74 77 6f 20 66 6f 72 6d 61 74 73 2c 20 6f 6e 65 20 ms.-.we.define.two.formats,.one.
65640 66 6f 72 20 61 20 73 6d 61 6c 6c 20 63 6f 76 65 72 20 28 62 72 6f 77 73 65 72 29 2c 0a 3b 3b 20 for.a.small.cover.(browser),.;;.
65660 61 6e 64 20 6f 6e 65 20 66 6f 72 20 61 20 6d 65 64 69 75 6d 20 73 69 7a 65 64 20 63 6f 76 65 72 and.one.for.a.medium.sized.cover
65680 20 28 70 6c 61 79 6c 69 73 74 29 2e 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 .(playlist)..(defvar.emms-browse
656a0 72 2d 69 6e 66 6f 2d 61 6c 62 75 6d 2d 66 6f 72 6d 61 74 0a 20 20 27 65 6d 6d 73 2d 62 72 6f 77 r-info-album-format...'emms-brow
656c0 73 65 72 2d 79 65 61 72 2d 61 6e 64 2d 61 6c 62 75 6d 2d 66 6d 74 29 0a 28 64 65 66 76 61 72 20 ser-year-and-album-fmt).(defvar.
656e0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 66 6f 2d 61 6c 62 75 6d emms-browser-playlist-info-album
65700 2d 66 6f 72 6d 61 74 0a 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 79 65 61 72 2d 61 6e 64 -format...'emms-browser-year-and
65720 2d 61 6c 62 75 6d 2d 66 6d 74 2d 6d 65 64 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f -album-fmt-med)..(defun.emms-bro
65740 77 73 65 72 2d 79 65 61 72 2d 61 6e 64 2d 61 6c 62 75 6d 2d 66 6d 74 20 28 5f 62 64 61 74 61 20 wser-year-and-album-fmt.(_bdata.
65760 66 6d 74 29 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 25 69 25 63 53 22 0a 20 20 20 28 6c 65 fmt)...(concat...."%i%cS"....(le
65780 74 20 28 28 79 65 61 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 74 2d 65 6c t.((year.(emms-browser-format-el
657a0 65 6d 20 66 6d 74 20 22 79 22 29 29 29 0a 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 em.fmt."y")))......(if.(and.year
657c0 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 79 65 61 72 20 22 30 22 29 29 29 0a 20 20 20 20 20 .(not.(string=.year."0")))......
657e0 20 20 20 20 22 28 25 79 29 20 22 0a 20 20 20 20 20 20 20 22 22 29 29 0a 20 20 20 22 25 6e 22 29 ...."(%y)."........""))...."%n")
65800 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 79 65 61 72 2d 61 6e 64 2d )..(defun.emms-browser-year-and-
65820 61 6c 62 75 6d 2d 66 6d 74 2d 6d 65 64 20 28 5f 62 64 61 74 61 20 66 6d 74 29 0a 20 20 28 63 6f album-fmt-med.(_bdata.fmt)...(co
65840 6e 63 61 74 0a 20 20 20 22 25 69 25 63 4d 22 0a 20 20 20 28 6c 65 74 20 28 28 79 65 61 72 20 28 ncat...."%i%cM"....(let.((year.(
65860 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 6f 72 6d 61 74 2d 65 6c 65 6d 20 66 6d 74 20 22 79 22 emms-browser-format-elem.fmt."y"
65880 29 29 29 0a 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 28 6e 6f 74 20 28 73 74 72 )))......(if.(and.year.(not.(str
658a0 69 6e 67 3d 20 79 65 61 72 20 22 30 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 22 28 25 79 29 20 ing=.year."0"))).........."(%y).
658c0 22 0a 20 20 20 20 20 20 20 22 22 29 29 0a 20 20 20 22 25 6e 22 29 29 0a 0a 3b 3b 20 2d 2d 2d 2d "........""))...."%n"))..;;.----
658e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
65900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 44 69 73 70 6c 61 79 20 66 61 63 65 73 0a --------------.;;.Display.faces.
65920 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;.-----------------------------
65940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 6d 61 63 72 6f ---------------------..(defmacro
65960 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 61 63 65 20 28 6e 61 6d 65 20 64 61 .emms-browser-make-face.(name.da
65980 72 6b 2d 63 6f 6c 20 6c 69 67 68 74 2d 63 6f 6c 20 68 65 69 67 68 74 29 0a 20 20 28 6c 65 74 20 rk-col.light-col.height)...(let.
659a0 28 28 66 61 63 65 2d 6e 61 6d 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d ((face-name.(intern.(concat."emm
659c0 73 2d 62 72 6f 77 73 65 72 2d 22 20 6e 61 6d 65 20 22 2d 66 61 63 65 22 29 29 29 29 0a 20 20 20 s-browser-".name."-face"))))....
659e0 20 60 28 64 65 66 66 61 63 65 20 2c 66 61 63 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 28 28 .`(defface.,face-name........'((
65a00 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 ((class.color).(background.dark)
65a20 29 0a 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 2c 64 61 72 6b 2d 63 )...........(:foreground.,dark-c
65a40 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 69 67 68 ol........................:heigh
65a60 74 20 2c 68 65 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f t.,height))..........(((class.co
65a80 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 lor).(background.light))........
65aa0 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 2c 6c 69 67 68 74 2d 63 6f 6c 0a 20 20 20 20 20 ...(:foreground.,light-col......
65ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 69 67 68 74 20 2c 68 65 69 67 68 ..................:height.,heigh
65ae0 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 28 74 79 70 65 20 74 74 79 29 20 28 63 6c 61 73 73 t))..........(((type.tty).(class
65b00 20 6d 6f 6e 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 .mono))...........(:inverse-vide
65b20 6f 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20 2c o.t))..........(t.(:background.,
65b40 64 61 72 6b 2d 63 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 2c 28 63 6f 6e 63 61 74 20 22 46 61 63 dark-col)))........,(concat."Fac
65b60 65 20 66 6f 72 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 0a 20 20 20 e.for.".................name....
65b80 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 69 6e 20 61 20 62 72 6f 77 73 65 72 2f 70 6c 61 79 .............".in.a.browser/play
65ba0 6c 69 73 74 20 62 75 66 66 65 72 2e 22 29 29 29 29 0a 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 list.buffer."))))..(emms-browser
65bc0 2d 6d 61 6b 65 2d 66 61 63 65 20 22 61 6c 62 75 6d 61 72 74 69 73 74 22 20 22 23 61 61 61 61 62 -make-face."albumartist"."#aaaab
65be0 62 22 20 22 23 34 34 34 34 35 35 22 20 31 2e 33 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d b"."#444455".1.3).(emms-browser-
65c00 6d 61 6b 65 2d 66 61 63 65 20 22 79 65 61 72 2f 67 65 6e 72 65 22 20 20 22 23 61 61 61 61 66 66 make-face."year/genre".."#aaaaff
65c20 22 20 22 23 34 34 34 34 37 37 22 20 31 2e 35 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d "."#444477".1.5).(emms-browser-m
65c40 61 6b 65 2d 66 61 63 65 20 22 61 72 74 69 73 74 22 20 20 20 20 20 20 22 23 61 61 61 61 66 66 22 ake-face."artist"......"#aaaaff"
65c60 20 22 23 34 34 34 34 37 37 22 20 31 2e 33 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 ."#444477".1.3).(emms-browser-ma
65c80 6b 65 2d 66 61 63 65 20 22 63 6f 6d 70 6f 73 65 72 22 20 20 20 20 22 23 61 61 61 61 66 66 22 20 ke-face."composer"...."#aaaaff".
65ca0 22 23 34 34 34 34 37 37 22 20 31 2e 33 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b "#444477".1.3).(emms-browser-mak
65cc0 65 2d 66 61 63 65 20 22 70 65 72 66 6f 72 6d 65 72 22 20 20 20 22 23 61 61 61 61 66 66 22 20 22 e-face."performer"..."#aaaaff"."
65ce0 23 34 34 34 34 37 37 22 20 31 2e 33 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 #444477".1.3).(emms-browser-make
65d00 2d 66 61 63 65 20 22 61 6c 62 75 6d 22 20 20 20 20 20 20 20 22 23 61 61 61 61 66 66 22 20 22 23 -face."album"......."#aaaaff"."#
65d20 34 34 34 34 37 37 22 20 31 2e 31 29 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 444477".1.1).(emms-browser-make-
65d40 66 61 63 65 20 22 74 72 61 63 6b 22 20 20 20 20 20 20 20 22 23 61 61 61 61 66 66 22 20 22 23 34 face."track"......."#aaaaff"."#4
65d60 34 34 34 37 37 22 20 31 2e 30 29 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 44477".1.0)..;;.----------------
65d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
65da0 2d 2d 0a 3b 3b 20 46 69 6c 74 65 72 69 6e 67 0a 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --.;;.Filtering.;;.-------------
65dc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
65de0 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 44 65 70 72 65 63 61 74 65 64 20 42 72 6f 77 73 65 72 20 66 69 6c -----.;;;.Deprecated.Browser.fil
65e00 74 65 72 20 6d 61 6b 69 6e 67 2e 0a 3b 3b 3b 20 46 69 6c 74 65 72 73 20 6d 61 64 65 20 69 6e 20 ter.making..;;;.Filters.made.in.
65e20 74 68 69 73 20 77 61 79 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 77 6f 72 6b 69 6e 67 0a 3b this.way.will.continue.working.;
65e40 3b 3b 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 0a 3b 3b 3b 20 57 6f 72 6b 69 6e ;;.with.emms-filters..;;;.Workin
65e60 67 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 69 73 20 g.directly.with.emms-filters.is.
65e80 62 65 74 74 65 72 2e 0a 3b 3b 3b 20 53 65 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c 2e better..;;;.See.emms-filters.el.
65ea0 0a 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b .;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
65ec0 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 0a 3b 3b 20 49 20 64 6f 6e 74 20 6b ;;;;;;;;;;;;;;;;;;;;.;;.I.dont.k
65ee0 6e 6f 77 20 69 66 20 61 6e 79 6f 6e 65 20 75 73 65 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e now.if.anyone.uses.this.function
65f00 2c 20 62 75 74 20 68 65 72 65 20 69 73 20 6f 6e 65 0a 3b 3b 20 6a 75 73 74 20 69 6e 20 63 61 73 ,.but.here.is.one.;;.just.in.cas
65f20 65 2e 20 50 72 6f 62 61 62 6c 79 20 61 20 62 61 64 20 69 64 65 61 2e 0a 28 64 65 66 75 6e 20 65 e..Probably.a.bad.idea..(defun.e
65f40 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 65 66 69 6c 74 65 72 20 28 66 69 6c 74 65 72 29 0a 20 20 mms-browser-refilter.(filter)...
65f60 22 50 75 73 68 20 46 49 4c 54 45 52 20 74 6f 20 65 6d 6d 73 2d 66 69 6c 74 65 72 2d 73 74 61 63 "Push.FILTER.to.emms-filter-stac
65f80 6b 20 61 6e 64 20 72 65 2d 72 65 6e 64 65 72 2e 0a 46 69 6c 74 65 72 20 63 61 6e 20 62 65 20 61 k.and.re-render..Filter.can.be.a
65fa0 20 73 74 72 69 6e 67 20 6e 61 6d 65 20 6f 72 20 61 20 66 69 6c 74 65 72 20 63 6f 6e 73 2e 0a 4e .string.name.or.a.filter.cons..N
65fc0 6f 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 69 66 20 61 20 66 69 6c 74 65 72 20 6f 66 20 74 68 on-destructive.if.a.filter.of.th
65fe0 65 20 73 61 6d 65 20 66 69 6c 74 65 72 20 6e 61 6d 65 20 61 6c 72 65 61 64 79 0a 65 78 69 73 74 e.same.filter.name.already.exist
66000 73 2e 0a 0a 44 65 70 72 65 63 61 74 65 64 2e 20 53 65 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 s...Deprecated..See.emms-filters
66020 2e 0a 0a 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 60 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d ...Equivalent.to.`(emms-filters-
66040 70 75 73 68 20 66 69 6c 74 65 72 2d 6e 61 6d 65 29 27 20 77 68 65 6e 20 75 73 69 6e 67 20 61 20 push.filter-name)'.when.using.a.
66060 72 65 67 69 73 74 65 72 65 64 0a 65 6d 66 20 66 69 6c 74 65 72 20 64 69 72 65 63 74 6c 79 2e 0a registered.emf.filter.directly..
66080 0a 54 68 65 20 46 49 4c 54 45 52 20 77 69 6c 6c 20 62 65 20 72 65 67 69 73 74 65 72 65 64 20 77 .The.FILTER.will.be.registered.w
660a0 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 69 66 20 69 74 20 69 73 0a 61 20 63 6f 6e 73 ith.emms-filters.if.it.is.a.cons
660c0 20 66 69 6c 74 65 72 20 61 6e 64 20 69 74 73 20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 61 6c 72 65 .filter.and.its.name.is.not.alre
660e0 61 64 79 20 74 61 6b 65 6e 2e 0a 0a 54 68 65 20 66 69 6c 74 65 72 20 6e 61 6d 65 20 77 69 6c 6c ady.taken...The.filter.name.will
66100 20 62 65 20 70 75 73 68 65 64 20 74 6f 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 .be.pushed.to.the.emms-filters-f
66120 69 6c 74 65 72 2d 73 74 61 63 6b 2c 20 6d 61 6b 69 6e 67 0a 69 74 20 74 68 65 20 61 63 74 69 76 ilter-stack,.making.it.the.activ
66140 65 20 66 69 6c 74 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 70 e.filter."...(when.(not.(stringp
66160 20 66 69 6c 74 65 72 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 .filter)).....(emms-filters-regi
66180 73 74 65 72 2d 69 66 2d 6d 69 73 73 69 6e 67 20 66 69 6c 74 65 72 29 29 0a 20 20 28 65 6d 6d 73 ster-if-missing.filter))...(emms
661a0 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 0a 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 66 69 -filters-push....(if.(stringp.fi
661c0 6c 74 65 72 29 0a 20 20 20 20 20 20 20 66 69 6c 74 65 72 0a 20 20 20 20 20 28 63 61 72 20 66 69 lter)........filter......(car.fi
661e0 6c 74 65 72 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 lter))))..(defmacro.emms-browser
66200 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 28 6e 61 6d 65 20 66 69 6c 74 65 72 2d 66 75 6e 63 29 0a -make-filter.(name.filter-func).
66220 20 20 22 4d 61 6b 65 20 61 20 75 73 65 72 2d 6c 65 76 65 6c 20 66 75 6e 63 74 69 6f 6e 20 66 6f .."Make.a.user-level.function.fo
66240 72 20 66 69 6c 74 65 72 69 6e 67 20 74 72 61 63 6b 73 20 61 6e 64 20 70 75 74 0a 69 74 20 69 6e r.filtering.tracks.and.put.it.in
66260 74 6f 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 2e to.the.emms-filters-filter-ring.
66280 0a 0a 44 65 70 72 65 63 61 74 65 64 3a 20 53 65 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d ..Deprecated:.See.emms-filters-m
662a0 61 6b 65 2d 66 69 6c 74 65 72 0a 0a 41 6c 74 65 72 65 64 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 ake-filter..Altered.from.the.ori
662c0 67 69 6e 61 6c 20 74 6f 20 69 6e 76 65 72 74 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 ginal.to.invert.the.return.value
662e0 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 2e 0a 54 68 65 20 72 65 73 75 6c 74 69 6e 67 20 69 6e .of.the.filter..The.resulting.in
66300 76 65 72 74 65 64 20 66 69 6c 74 65 72 20 69 73 20 75 73 65 64 20 64 69 72 65 63 74 6c 79 20 69 verted.filter.is.used.directly.i
66320 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 6c 69 6b 65 20 61 6e 79 0a 6f 74 68 65 72 20 65 6d n.emms-filters.like.any.other.em
66340 66 20 66 69 6c 74 65 72 2e 0a 0a 54 68 69 73 3a 0a 20 2d 20 44 65 66 69 6e 65 73 20 61 20 66 69 f.filter...This:..-.Defines.a.fi
66360 6c 74 65 72 20 63 6f 6e 73 20 76 61 72 69 61 62 6c 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d lter.cons.variable.emms-browser-
66380 66 69 6c 74 65 72 2d 4e 41 4d 45 20 6f 66 20 28 6e 61 6d 65 20 2e 20 66 75 6e 63 29 2e 0a 20 2d filter-NAME.of.(name...func)...-
663a0 20 54 68 65 20 66 69 6c 74 65 72 20 69 73 20 72 65 67 69 73 74 65 72 65 64 20 69 6e 74 6f 20 65 .The.filter.is.registered.into.e
663c0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 2e 0a 20 2d 20 41 64 64 65 64 20 74 6f mms-filters-filters...-.Added.to
663e0 20 74 68 65 20 65 6d 66 20 66 69 6c 74 65 72 20 6d 65 6e 75 73 20 75 6e 64 65 72 20 60 62 72 6f .the.emf.filter.menus.under.`bro
66400 77 73 65 72 2d 66 69 6c 74 65 72 73 27 2e 0a 20 2d 20 41 64 64 65 64 20 74 6f 20 74 68 65 20 65 wser-filters'...-.Added.to.the.e
66420 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 2e 0a 20 2d 20 44 65 66 69 mms-filters-filter-ring...-.Defi
66440 6e 65 73 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 65 6d 6d 73 nes.an.interactive.function.emms
66460 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 4e 41 4d 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 75 -browser-show-NAME."...(let.((fu
66480 6e 63 6e 61 6d 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 62 72 6f 77 ncnam.(intern.(concat."emms-brow
664a0 73 65 72 2d 73 68 6f 77 2d 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 61 72 20 ser-show-".name))).........(var.
664c0 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 .(intern.(concat."emms-browser-f
664e0 69 6c 74 65 72 2d 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 73 63 20 28 63 ilter-".name))).........(desc.(c
66500 6f 6e 63 61 74 20 22 46 69 6c 74 65 72 20 74 68 65 20 63 61 63 68 65 20 75 73 69 6e 67 20 72 75 oncat."Filter.the.cache.using.ru
66520 6c 65 20 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 le.'".......................name
66540 20 22 27 22 29 29 29 0a 20 20 20 20 60 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 28 64 65 66 76 ."'"))).....`(progn........(defv
66560 61 72 20 2c 76 61 72 20 6e 69 6c 20 2c 64 65 73 63 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 ar.,var.nil.,desc)........(setq.
66580 2c 76 61 72 20 28 63 6f 6e 73 20 2c 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,var.(cons.,name................
665a0 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 20 3b 3b 20 69 6e 76 65 .........(lambda.(track).;;.inve
665c0 72 74 20 74 68 65 20 66 75 6e 63 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rt.the.func.....................
665e0 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 20 2c 66 69 6c 74 65 72 2d 66 75 6e .......(not.(funcall.,filter-fun
66600 63 20 74 72 61 63 6b 29 29 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 28 61 64 64 2d 74 6f 2d 6c 69 c.track)))))........;;(add-to-li
66620 73 74 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 73 20 2c 76 61 72 29 0a 20 st.'emms-browser-filters.,var)..
66640 20 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c ......(emms-filters-register-fil
66660 74 65 72 2d 69 6e 74 6f 2d 72 69 6e 67 20 2c 76 61 72 29 0a 20 20 20 20 20 20 20 28 64 65 66 75 ter-into-ring.,var)........(defu
66680 6e 20 2c 66 75 6e 63 6e 61 6d 20 28 29 0a 20 20 20 20 20 20 20 20 20 2c 64 65 73 63 0a 20 20 20 n.,funcnam.()..........,desc....
666a0 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 28 65 6d ......(interactive)..........(em
666c0 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 20 6e 61 6d 65 29 29 29 29 29 0a 0a 3b 3b 20 54 68 ms-filters-push.name)))))..;;.Th
666e0 65 20 6f 72 69 67 69 6e 61 6c 2c 20 69 6e 76 65 72 74 65 64 2c 20 65 6d 6d 73 2d 62 72 6f 77 73 e.original,.inverted,.emms-brows
66700 65 72 20 66 69 6c 74 65 72 73 20 65 78 61 6d 70 6c 65 73 0a 3b 3b 20 57 6f 72 6b 73 20 77 69 74 er.filters.examples.;;.Works.wit
66720 68 20 74 68 65 20 61 62 6f 76 65 20 6d 61 6b 65 2d 66 69 6c 74 65 72 20 6d 61 63 72 6f 20 61 6e h.the.above.make-filter.macro.an
66740 64 20 45 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 0a 3b 3b 20 44 65 70 72 65 63 61 74 65 64 2e 0a 28 d.Emms-filters..;;.Deprecated..(
66760 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 64 defun.emms-browser-filter-only-d
66780 69 72 20 28 64 69 72 6e 61 6d 65 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 66 75 6e 63 74 ir.(dirname)..."Generate.a.funct
667a0 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 69 66 20 61 20 74 72 61 63 6b 20 69 73 20 69 6e 20 44 49 ion.to.check.if.a.track.is.in.DI
667c0 52 4e 41 4d 45 2e 0a 49 66 20 74 68 65 20 74 72 61 63 6b 20 69 73 20 6e 6f 74 20 69 6e 20 44 49 RNAME..If.the.track.is.not.in.DI
667e0 52 4e 41 4d 45 2c 20 72 65 74 75 72 6e 20 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 20 28 63 RNAME,.return.t."...(let.((re.(c
66800 6f 6e 63 61 74 20 22 5e 22 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 6e oncat."^".(expand-file-name.dirn
66820 61 6d 65 29 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 ame)))).....(lambda.(track).....
66840 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 20 28 65 6d 6d 73 2d 74 72 ..(not.(string-match.re.(emms-tr
66860 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 ack-get.track.'name))))))..(defu
66880 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 74 79 70 65 20 n.emms-browser-filter-only-type.
668a0 28 74 79 70 65 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f (type)..."Generate.a.function.to
668c0 20 63 68 65 63 6b 20 61 20 74 72 61 63 6b 27 73 20 74 79 70 65 2e 0a 49 66 20 74 68 65 20 74 72 .check.a.track's.type..If.the.tr
668e0 61 63 6b 20 69 73 20 6e 6f 74 20 6f 66 20 54 59 50 45 2c 20 72 65 74 75 72 6e 20 74 2e 22 0a 20 ack.is.not.of.TYPE,.return.t."..
66900 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 28 6e 6f 74 20 28 65 71 20 74 79 .(lambda.(track).....(not.(eq.ty
66920 70 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 29 pe.(emms-track-get.track.'type))
66940 29 29 29 0a 0a 3b 3b 20 73 65 63 6f 6e 64 73 20 69 6e 20 61 20 64 61 79 20 28 2a 20 36 30 20 36 )))..;;.seconds.in.a.day.(*.60.6
66960 30 20 32 34 29 20 3d 20 38 36 34 30 30 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 0.24).=.86400.(defun.emms-browse
66980 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 72 65 63 65 6e 74 20 28 64 61 79 73 29 0a 20 20 22 53 r-filter-only-recent.(days)..."S
669a0 68 6f 77 20 6f 6e 6c 79 20 74 72 61 63 6b 73 20 70 6c 61 79 65 64 20 77 69 74 68 69 6e 20 74 68 how.only.tracks.played.within.th
669c0 65 20 6c 61 73 74 20 6e 75 6d 62 65 72 20 6f 66 20 44 41 59 53 2e 22 0a 20 20 28 6c 61 6d 62 64 e.last.number.of.DAYS."...(lambd
669e0 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6d 69 6e 2d 64 61 74 65 20 28 74 a.(track).....(let.((min-date.(t
66a00 69 6d 65 2d 73 75 62 74 72 61 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ime-subtract....................
66a20 20 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(current-time)................
66a40 20 20 20 20 20 20 28 73 65 63 6f 6e 64 73 2d 74 6f 2d 74 69 6d 65 20 28 2a 20 64 61 79 73 20 38 ......(seconds-to-time.(*.days.8
66a60 36 34 30 30 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 2d 70 6c 61 79 65 64 29 0a 6400))))...........last-played).
66a80 20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 73 65 74 71 20 6c 61 73 74 2d 70 6c 61 79 65 ......(not.(and.(setq.last-playe
66aa0 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 d.......................(emms-tr
66ac0 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6c 61 73 74 2d 70 6c 61 79 65 64 20 6e 69 6c 29 29 ack-get.track.'last-played.nil))
66ae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6d 69 .................(time-less-p.mi
66b00 6e 2d 64 61 74 65 20 6c 61 73 74 2d 70 6c 61 79 65 64 29 29 29 29 29 29 0a 0a 3b 3b 20 2d 2d 2d n-date.last-played))))))..;;.---
66b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
66b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 53 65 61 72 63 68 69 6e 67 0a 3b 3b 20 ---------------.;;.Searching.;;.
66b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
66b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 68 65 73 65 20 66 75 6e 63 ------------------.;;.These.func
66ba0 74 69 6f 6e 73 20 61 72 65 20 68 65 72 65 20 66 6f 72 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 tions.are.here.for.backward.comp
66bc0 61 74 69 62 69 6c 69 74 79 2e 0a 3b 3b 20 53 65 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 atibility..;;.See.emms-filters.e
66be0 6c 2e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 l...(defun.emms-browser-search-b
66c00 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 y-albumartist.()...(interactive)
66c20 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d ...(emms-filters-search-by-album
66c40 61 72 74 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 artist))..(defun.emms-browser-se
66c60 61 72 63 68 2d 62 79 2d 61 72 74 69 73 74 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 arch-by-artist.()...(interactive
66c80 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 72 74 69 )...(emms-filters-search-by-arti
66ca0 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 st))..(defun.emms-browser-search
66cc0 2d 62 79 2d 63 6f 6d 70 6f 73 65 72 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a -by-composer.()...(interactive).
66ce0 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 63 6f 6d 70 6f 73 ..(emms-filters-search-by-compos
66d00 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 er))..(defun.emms-browser-search
66d20 2d 62 79 2d 70 65 72 66 6f 72 6d 65 72 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 -by-performer.()...(interactive)
66d40 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 70 65 72 66 6f ...(emms-filters-search-by-perfo
66d60 72 6d 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 rmer))..(defun.emms-browser-sear
66d80 63 68 2d 62 79 2d 74 69 74 6c 65 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 ch-by-title.()...(interactive)..
66da0 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 29 29 .(emms-filters-search-by-title))
66dc0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d ..(defun.emms-browser-search-by-
66de0 61 6c 62 75 6d 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 album.()...(interactive)...(emms
66e00 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 29 29 0a 0a 28 64 65 66 -filters-search-by-album))..(def
66e20 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 20 un.emms-browser-search-by-names.
66e40 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 ()...(interactive)...(emms-filte
66e60 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 2d 61 6e 64 2d 74 69 74 6c 65 73 29 29 0a rs-search-by-names-and-titles)).
66e80 0a 0a 3b 3b 3b 20 54 68 75 6d 62 6e 61 69 6c 73 0a 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 66 75 ..;;;.Thumbnails.;;.TODO:.Add.fu
66ea0 6e 63 74 69 6f 6e 20 74 6f 20 63 6c 65 61 72 20 74 68 65 20 63 61 63 68 65 20 66 72 6f 6d 20 74 nction.to.clear.the.cache.from.t
66ec0 68 75 6d 62 6e 61 69 6c 73 20 74 68 61 74 20 68 61 76 65 20 6e 6f 20 61 73 73 6f 63 69 61 74 65 humbnails.that.have.no.associate
66ee0 64 0a 3b 3b 20 63 6f 76 65 72 20 66 6f 6c 64 65 72 73 2e 20 20 54 68 69 73 20 69 73 20 65 73 70 d.;;.cover.folders...This.is.esp
66f00 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c 20 69 6e 20 63 61 73 65 20 74 68 65 20 6d 75 73 69 63 ecially.useful.in.case.the.music
66f20 20 6c 69 62 72 61 72 79 20 70 61 74 68 0a 3b 3b 20 63 68 61 6e 67 65 73 3a 20 63 75 72 72 65 6e .library.path.;;.changes:.curren
66f40 74 6c 79 2c 20 61 6c 6c 20 63 6f 76 65 72 73 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 62 65 20 tly,.all.covers.will.have.to.be.
66f60 72 65 2d 63 61 63 68 65 64 20 77 68 69 6c 65 20 74 68 65 20 6f 6c 64 20 6f 6e 65 73 0a 3b 3b 20 re-cached.while.the.old.ones.;;.
66f80 61 72 65 20 6c 65 66 74 20 61 73 20 69 73 2c 20 75 73 65 6c 65 73 73 2e 0a 0a 3b 3b 20 54 4f 44 are.left.as.is,.useless...;;.TOD
66fa0 4f 3a 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 27 20 69 73 20 O:.`emms-browser-expand-all'.is.
66fc0 73 6c 6f 77 20 62 65 63 61 75 73 65 20 6f 66 20 61 6c 6c 20 74 68 65 20 63 6f 76 65 72 73 20 28 slow.because.of.all.the.covers.(
66fe0 61 62 6f 75 74 20 33 30 0a 3b 3b 20 73 65 63 20 66 6f 74 20 31 35 30 30 20 63 6f 76 65 72 73 20 about.30.;;.sec.fot.1500.covers.
67000 69 6e 20 6d 79 20 63 61 73 65 29 2e 20 20 54 72 79 20 74 6f 20 70 72 6f 66 69 6c 65 20 26 20 6f in.my.case)...Try.to.profile.&.o
67020 70 74 69 6d 69 7a 65 2e 20 20 49 74 20 77 69 6c 6c 0a 3b 3b 20 70 72 6f 62 61 62 6c 79 20 6e 6f ptimize...It.will.;;.probably.no
67040 74 20 62 65 20 65 6e 6f 75 67 68 20 61 6e 64 20 77 65 20 6d 69 67 68 74 20 6e 65 65 64 20 74 6f t.be.enough.and.we.might.need.to
67060 20 72 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 0a 3b 3b 20 .run.emms-browser-expand-all.;;.
67080 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 asynchronously....(defvar.emms-b
670a0 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 64 69 72 65 63 74 6f 72 79 20 28 65 78 70 61 rowser-thumbnail-directory.(expa
670c0 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 74 68 75 6d 62 6e 61 69 6c 73 22 20 65 6d 6d 73 2d 64 nd-file-name."thumbnails".emms-d
670e0 69 72 65 63 74 6f 72 79 29 0a 20 20 22 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 6f 20 irectory)..."Directory.where.to.
67100 73 74 6f 72 65 20 63 6f 76 65 72 20 74 68 75 6d 62 6e 61 69 6c 73 2e 22 29 0a 0a 28 64 65 66 76 store.cover.thumbnails.")..(defv
67120 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 73 6d 61 6c 6c 2d ar.emms-browser-thumbnail-small-
67140 73 69 7a 65 20 31 32 38 0a 20 20 22 43 6f 76 65 72 20 74 68 75 6d 62 6e 61 69 6c 20 77 69 6c 6c size.128..."Cover.thumbnail.will
67160 20 62 65 20 72 65 73 69 7a 65 64 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 73 6f 20 74 68 61 74 .be.resized.if.necessary.so.that
67180 20 6e 65 69 74 68 65 72 0a 20 20 77 69 64 74 68 20 6e 6f 72 20 68 65 69 67 68 74 20 65 78 63 65 .neither...width.nor.height.exce
671a0 65 64 20 74 68 69 73 20 64 69 6d 65 6e 73 69 6f 6e 2e 22 29 0a 28 64 65 66 76 61 72 20 65 6d 6d ed.this.dimension.").(defvar.emm
671c0 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 6d 65 64 69 75 6d 2d 73 69 7a 65 20 s-browser-thumbnail-medium-size.
671e0 32 35 36 0a 20 20 22 43 6f 76 65 72 20 74 68 75 6d 62 6e 61 69 6c 20 77 69 6c 6c 20 62 65 20 72 256..."Cover.thumbnail.will.be.r
67200 65 73 69 7a 65 64 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 73 6f 20 74 68 61 74 20 6e 65 69 74 esized.if.necessary.so.that.neit
67220 68 65 72 0a 20 20 77 69 64 74 68 20 6e 6f 72 20 68 65 69 67 68 74 20 65 78 63 65 65 64 20 74 68 her...width.nor.height.exceed.th
67240 69 73 20 64 69 6d 65 6e 73 69 6f 6e 2e 22 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f is.dimension.").(defvar.emms-bro
67260 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 6c 61 72 67 65 2d 73 69 7a 65 20 31 30 32 34 20 3b wser-thumbnail-large-size.1024.;
67280 20 45 6d 6d 73 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 6c 61 72 67 65 20 63 6f 76 65 72 73 20 .Emms.does.not.use.large.covers.
672a0 61 73 20 6f 66 20 32 30 31 37 2d 31 31 2d 32 36 2e 0a 20 20 22 43 6f 76 65 72 20 74 68 75 6d 62 as.of.2017-11-26...."Cover.thumb
672c0 6e 61 69 6c 20 77 69 6c 6c 20 62 65 20 72 65 73 69 7a 65 64 20 69 66 20 6e 65 63 65 73 73 61 72 nail.will.be.resized.if.necessar
672e0 79 20 73 6f 20 74 68 61 74 20 6e 65 69 74 68 65 72 0a 20 20 77 69 64 74 68 20 6e 6f 72 20 68 65 y.so.that.neither...width.nor.he
67300 69 67 68 74 20 65 78 63 65 65 64 20 74 68 69 73 20 64 69 6d 65 6e 73 69 6f 6e 2e 22 29 0a 0a 28 ight.exceed.this.dimension.")..(
67320 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c defun.emms-browser-thumbnail-fil
67340 74 65 72 2d 64 65 66 61 75 6c 74 20 28 64 69 72 29 0a 20 20 22 53 65 6c 65 63 74 20 63 6f 76 65 ter-default.(dir)..."Select.cove
67360 72 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 5c 5c 3d 27 66 72 6f 6e 74 5c 5c 3d 27 20 6f 72 20 5c rs.containing.\\='front\\='.or.\
67380 5c 3d 27 63 6f 76 65 72 5c 5c 3d 27 20 69 6e 20 44 49 52 2e 0a 49 66 20 6e 6f 6e 65 20 77 61 73 \='cover\\='.in.DIR..If.none.was
673a0 20 66 6f 75 6e 64 2c 20 66 61 6c 6c 62 61 63 6b 20 6f 6e 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 .found,.fallback.on.`emms-browse
673c0 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 72 2d 61 6c 6c 5c 5c 3d 27 2e 0a 0a 53 65 65 r-thumbnail-filter-all\\='...See
673e0 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 72 5c .`emms-browser-thumbnail-filter\
67400 5c 3d 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 \='."...(when.(file-directory-p.
67420 64 69 72 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6c 73 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 dir).....(let.((ls.(directory-fi
67440 6c 65 73 20 64 69 72 20 74 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 73 les.dir.t.nil.t))...........(cas
67460 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 72 e-fold-search.t)...........cover
67480 73 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 78 74 20 65 6d 6d 73 2d 62 72 6f 77 73 s).......(dolist.(ext.emms-brows
674a0 65 72 2d 63 6f 76 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 20 20 20 20 er-covers-file-extensions)......
674c0 20 20 20 28 73 65 74 71 20 63 6f 76 65 72 73 20 28 61 70 70 65 6e 64 20 28 73 65 71 2d 66 69 6c ...(setq.covers.(append.(seq-fil
674e0 74 65 72 20 28 6c 61 6d 62 64 61 20 28 63 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 63 ter.(lambda.(c).(string-match.(c
67500 6f 6e 63 61 74 20 22 5c 5c 28 66 72 6f 6e 74 5c 5c 7c 63 6f 76 65 72 5c 5c 29 2e 2a 5c 5c 2e 22 oncat."\\(front\\|cover\\).*\\."
67520 20 65 78 74 29 20 63 29 29 20 6c 73 29 20 63 6f 76 65 72 73 29 29 29 0a 20 20 20 20 20 20 28 75 .ext).c)).ls).covers))).......(u
67540 6e 6c 65 73 73 20 63 6f 76 65 72 73 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 76 65 72 nless.covers.........(setq.cover
67560 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 72 s.(emms-browser-thumbnail-filter
67580 2d 61 6c 6c 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 63 6f 76 65 72 73 29 29 29 0a 0a 28 64 65 -all.dir))).......covers)))..(de
675a0 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 fun.emms-browser-thumbnail-filte
675c0 72 2d 61 6c 6c 20 28 64 69 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f r-all.(dir)..."Return.the.list.o
675e0 66 20 61 6c 6c 20 66 69 6c 65 73 20 77 69 74 68 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 f.all.files.with.`emms-browser-c
67600 6f 76 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 5c 5c 3d 27 20 69 6e 20 44 49 52 overs-file-extensions\\='.in.DIR
67620 2e 0a 0a 53 65 65 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 ...See.`emms-browser-thumbnail-f
67640 69 6c 74 65 72 27 2e 22 0a 20 20 28 6c 65 74 20 28 63 6f 76 65 72 73 29 0a 20 20 20 20 28 64 6f ilter'."...(let.(covers).....(do
67660 6c 69 73 74 20 28 65 78 74 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 2d 66 69 list.(ext.emms-browser-covers-fi
67680 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 63 6f 76 65 72 73 29 0a 20 20 20 20 20 20 28 73 65 74 le-extensions.covers).......(set
676a0 71 20 63 6f 76 65 72 73 20 28 61 70 70 65 6e 64 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 q.covers.(append.(file-expand-wi
676c0 6c 64 63 61 72 64 73 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 ldcards.(expand-file-name.(conca
676e0 74 20 22 2a 2e 22 20 65 78 74 29 20 64 69 72 29 29 20 63 6f 76 65 72 73 29 29 29 29 29 0a 0a 28 t."*.".ext).dir)).covers)))))..(
67700 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 defvar.emms-browser-thumbnail-fi
67720 6c 74 65 72 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c lter.'emms-browser-thumbnail-fil
67740 74 65 72 2d 64 65 66 61 75 6c 74 0a 20 20 22 54 68 69 73 20 66 69 6c 74 65 72 20 6d 75 73 74 20 ter-default..."This.filter.must.
67760 68 6f 6c 64 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 64 69 72 hold.a.function.that.takes.a.dir
67780 65 63 74 6f 72 79 20 61 72 67 75 6d 65 6e 74 20 61 6e 64 20 72 65 74 75 72 6e 73 0a 61 20 6c 69 ectory.argument.and.returns.a.li
677a0 73 74 20 6f 66 20 63 6f 76 65 72 20 66 69 6c 65 20 6e 61 6d 65 73 2e 0a 0a 54 68 65 20 6c 69 73 st.of.cover.file.names...The.lis
677c0 74 20 77 69 6c 6c 20 62 65 20 70 72 6f 63 65 73 73 65 64 20 62 79 20 60 65 6d 6d 73 2d 62 72 6f t.will.be.processed.by.`emms-bro
677e0 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 27 2e 0a 53 65 65 20 61 6c 73 6f 20 wser-cache-thumbnail'..See.also.
67800 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 72 2d 64 `emms-browser-thumbnail-filter-d
67820 65 66 61 75 6c 74 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 efault'.")..(defvar.emms-browser
67840 2d 74 68 75 6d 62 6e 61 69 6c 2d 63 6f 6e 76 65 72 74 2d 70 72 6f 67 72 61 6d 20 28 65 78 65 63 -thumbnail-convert-program.(exec
67860 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 63 6f 6e 76 65 72 74 22 29 0a 20 20 22 54 68 65 20 49 6d utable-find."convert")..."The.Im
67880 61 67 65 4d 61 67 69 63 6b 27 73 20 60 63 6f 6e 76 65 72 74 27 20 70 72 6f 67 72 61 6d 2e 22 29 ageMagick's.`convert'.program.")
678a0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d ..(defun.emms-browser-cache-thum
678c0 62 6e 61 69 6c 20 28 64 69 72 20 73 69 7a 65 29 0a 20 20 22 52 65 74 75 72 6e 20 63 61 63 68 65 bnail.(dir.size)..."Return.cache
678e0 64 20 63 6f 76 65 72 20 53 49 5a 45 20 66 6f 72 20 61 6c 62 75 6d 20 69 6e 20 44 49 52 2e 0a 0a d.cover.SIZE.for.album.in.DIR...
67900 53 49 5a 45 20 6d 75 73 74 20 62 65 20 5c 5c 3d 27 73 6d 61 6c 6c 2c 20 5c 5c 3d 27 6d 65 64 69 SIZE.must.be.\\='small,.\\='medi
67920 75 6d 20 6f 72 20 5c 5c 3d 27 6c 61 72 67 65 2e 20 20 49 74 20 77 69 6c 6c 20 64 65 74 65 72 6d um.or.\\='large...It.will.determ
67940 69 6e 65 20 74 68 65 0a 72 65 73 6f 6c 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 63 68 65 64 ine.the.resolution.of.the.cached
67960 20 66 69 6c 65 2e 20 20 53 65 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 0a 60 65 6d 6d 73 2d .file...See.the.variables.`emms-
67980 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 53 49 5a 45 2d 73 69 7a 65 5c 5c 3d 27 2e browser-thumbnail-SIZE-size\\='.
679a0 0a 0a 49 66 20 63 6f 76 65 72 20 69 73 20 6e 6f 74 20 63 61 63 68 65 64 20 6f 72 20 69 66 20 63 ..If.cover.is.not.cached.or.if.c
679c0 61 63 68 65 20 69 73 20 6f 75 74 2d 6f 66 2d 64 61 74 65 2c 20 72 65 2d 63 61 63 68 65 20 69 74 ache.is.out-of-date,.re-cache.it
679e0 2e 0a 49 66 20 62 6f 74 68 20 74 68 65 20 77 69 64 74 68 20 61 6e 64 20 74 68 65 20 68 65 69 67 ..If.both.the.width.and.the.heig
67a00 68 74 20 6f 66 20 74 68 65 20 63 6f 76 65 72 20 61 72 65 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e ht.of.the.cover.are.smaller.than
67a20 0a 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 53 49 5a 45 2d 73 69 .`emms-browser-thumbnail-SIZE-si
67a40 7a 65 5c 5c 3d 27 2c 20 69 74 20 6e 65 65 64 20 6e 6f 74 20 62 65 20 63 61 63 68 65 64 20 61 6e ze\\=',.it.need.not.be.cached.an
67a60 64 0a 77 69 6c 6c 20 62 65 20 75 73 65 64 20 64 69 72 65 63 74 6c 79 2e 0a 0a 45 6d 6d 73 20 61 d.will.be.used.directly...Emms.a
67a80 73 73 75 6d 65 73 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 6f 6e 65 20 61 6c 62 75 6d 20 70 ssumes.that.you.have.one.album.p
67aa0 65 72 20 66 6f 6c 64 65 72 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 77 69 6c 6c 20 61 6c er.folder..This.function.will.al
67ac0 77 61 79 73 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 63 6f 76 65 72 20 70 65 72 20 66 6f 6c 64 ways.use.the.same.cover.per.fold
67ae0 65 72 2e 0a 0a 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 5c 5c 3d 27 20 63 61 er...`emms-browser-covers\\='.ca
67b00 6e 20 62 65 20 60 66 73 65 74 5c 5c 3d 27 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e n.be.`fset\\='.to.this.function.
67b20 22 0a 20 20 28 69 66 20 28 65 71 20 73 69 7a 65 20 27 6c 61 72 67 65 29 0a 20 20 20 20 20 20 3b "...(if.(eq.size.'large).......;
67b40 3b 20 27 6c 61 72 67 65 20 69 73 20 75 6e 75 73 65 64 20 66 6f 72 20 6e 6f 77 2e 20 52 65 74 75 ;.'large.is.unused.for.now..Retu
67b60 72 6e 20 65 6d 70 74 79 2e 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 6c 65 74 20 28 63 6f rn.empty........nil.....(let.(co
67b80 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 vers...........cover...........(
67ba0 63 6f 76 65 72 2d 77 69 64 74 68 20 30 29 20 28 63 6f 76 65 72 2d 68 65 69 67 68 74 20 30 29 0a cover-width.0).(cover-height.0).
67bc0 20 20 20 20 20 20 20 20 20 20 28 73 69 7a 65 2d 76 61 6c 75 65 20 28 73 79 6d 62 6f 6c 2d 76 61 ..........(size-value.(symbol-va
67be0 6c 75 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 62 72 6f 77 73 65 lue.(intern.(concat."emms-browse
67c00 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 69 7a 65 29 r-thumbnail-".(symbol-name.size)
67c20 20 22 2d 73 69 7a 65 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 63 61 63 68 65 2d 64 65 73 ."-size"))))...........cache-des
67c40 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 76 65 72 73 20 28 66 75 6e 63 t-file).......(setq.covers.(func
67c60 61 6c 6c 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 all.emms-browser-thumbnail-filte
67c80 72 20 64 69 72 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 63 6f 76 65 72 73 29 0a 20 r.dir)).......(if.(not.covers)..
67ca0 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 62 65 73 .........nil.........;;.Find.bes
67cc0 74 20 71 75 61 6c 69 74 79 20 63 6f 76 65 72 2e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 72 t.quality.cover..........(let.(r
67ce0 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 20 63 6f 76 65 72 73 29 es)...........(dolist.(c.covers)
67d00 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 20 28 69 6d 61 67 65 2d 73 69 .............(setq.res.(image-si
67d20 7a 65 20 28 63 72 65 61 74 65 2d 69 6d 61 67 65 20 63 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 ze.(create-image.c).t)).........
67d40 20 20 20 20 3b 3b 20 69 6d 61 67 65 2d 73 69 7a 65 20 64 6f 65 73 20 6e 6f 74 20 65 72 72 6f 72 ....;;.image-size.does.not.error
67d60 2c 20 69 74 20 72 65 74 75 72 6e 73 20 28 33 30 20 2e 20 33 30 29 20 69 6e 73 74 65 61 64 2e 0a ,.it.returns.(30...30).instead..
67d80 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 28 63 61 72 20 72 65 73 29 20 33 30 ............(and.(>.(car.res).30
67da0 29 20 28 3e 20 28 63 64 72 20 72 65 73 29 20 33 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ).(>.(cdr.res).30)..............
67dc0 20 20 20 20 28 3c 20 63 6f 76 65 72 2d 77 69 64 74 68 20 28 63 61 72 20 72 65 73 29 29 20 28 3c ....(<.cover-width.(car.res)).(<
67de0 20 63 6f 76 65 72 2d 68 65 69 67 68 74 20 28 63 64 72 20 72 65 73 29 29 0a 20 20 20 20 20 20 20 .cover-height.(cdr.res))........
67e00 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 76 65 72 2d 77 69 64 74 68 20 28 63 61 72 ..........(setq.cover-width.(car
67e20 20 72 65 73 29 20 63 6f 76 65 72 2d 68 65 69 67 68 74 20 28 63 64 72 20 72 65 73 29 20 63 6f 76 .res).cover-height.(cdr.res).cov
67e40 65 72 20 63 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 73 69 er.c)))).........(if.(and.(>=.si
67e60 7a 65 2d 76 61 6c 75 65 20 63 6f 76 65 72 2d 77 69 64 74 68 29 20 28 3e 3d 20 73 69 7a 65 2d 76 ze-value.cover-width).(>=.size-v
67e80 61 6c 75 65 20 63 6f 76 65 72 2d 68 65 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 alue.cover-height)).............
67ea0 3b 3b 20 4e 6f 20 6e 65 65 64 20 74 6f 20 72 65 73 69 7a 65 20 61 6e 64 20 63 61 63 68 65 2e 0a ;;.No.need.to.resize.and.cache..
67ec0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 ............cover...........(let
67ee0 20 28 28 63 61 63 68 65 2d 64 65 73 74 20 28 63 6f 6e 63 61 74 20 65 6d 6d 73 2d 62 72 6f 77 73 .((cache-dest.(concat.emms-brows
67f00 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d er-thumbnail-directory.(file-nam
67f20 65 2d 64 69 72 65 63 74 6f 72 79 20 63 6f 76 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 e-directory.cover))))...........
67f40 20 20 28 6d 6b 64 69 72 20 63 61 63 68 65 2d 64 65 73 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 ..(mkdir.cache-dest.t)..........
67f60 20 20 20 28 73 65 74 71 20 63 61 63 68 65 2d 64 65 73 74 2d 66 69 6c 65 20 28 63 6f 6e 63 61 74 ...(setq.cache-dest-file.(concat
67f80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
67fa0 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 63 6f 76 65 72 5f 22 20 63 ....(expand-file-name."cover_".c
67fc0 61 63 68 65 2d 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ache-dest)......................
67fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 69 7a 65 29 ..............(symbol-name.size)
68000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68020 20 20 20 20 22 2e 22 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 63 6f 76 ....".".(file-name-extension.cov
68040 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 65 6d 6d 73 2d 62 72 6f 77 73 er))))...........(and.emms-brows
68060 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 63 6f 6e 76 65 72 74 2d 70 72 6f 67 72 61 6d 0a 20 20 20 er-thumbnail-convert-program....
68080 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 28 66 69 6c 65 2d 65 78 69 73 74 ............(or.(not.(file-exist
680a0 73 2d 70 20 63 61 63 68 65 2d 64 65 73 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 s-p.cache-dest-file))...........
680c0 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 28 6e 74 68 20 35 20 28 66 69 .........(time-less-p.(nth.5.(fi
680e0 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 63 61 63 68 65 2d 64 65 73 74 2d 66 69 6c 65 29 29 0a le-attributes.cache-dest-file)).
68100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68120 28 6e 74 68 20 35 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 63 6f 76 65 72 29 29 20 (nth.5.(file-attributes.cover)).
68140 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 65 72 72 20 6d 73 67 29 ))................(let.(err.msg)
68160 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 6e 20 45 6c 69 73 70 20 66 75 ..................;;.An.Elisp.fu
68180 6e 63 74 69 6f 6e 20 77 6f 75 6c 64 20 62 65 20 66 61 73 74 65 72 2c 20 62 75 74 20 45 6d 61 63 nction.would.be.faster,.but.Emac
681a0 73 20 64 6f 65 73 20 6e 6f 74 20 73 65 65 6d 20 62 65 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 s.does.not.seem.be.be...........
681c0 20 20 20 20 20 20 20 3b 3b 20 61 62 6c 65 20 74 6f 20 72 65 73 69 7a 65 20 69 6d 61 67 65 20 66 .......;;.able.to.resize.image.f
681e0 69 6c 65 73 2e 20 49 74 20 63 61 6e 20 72 65 73 69 7a 65 20 69 6d 61 67 65 20 64 69 73 70 6c 61 iles..It.can.resize.image.displa
68200 79 73 20 74 68 6f 75 67 68 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 ys.though...................;;.T
68220 4f 44 4f 3a 20 41 64 64 20 69 6d 61 67 65 20 72 65 73 69 7a 69 6e 67 20 73 75 70 70 6f 72 74 20 ODO:.Add.image.resizing.support.
68240 74 6f 20 45 6d 61 63 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 to.Emacs...................(setq
68260 20 6d 73 67 20 28 77 69 74 68 2d 6f 75 74 70 75 74 2d 74 6f 2d 73 74 72 69 6e 67 0a 20 20 20 20 .msg.(with-output-to-string.....
68280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 .........................(with-c
682a0 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 74 61 6e 64 61 72 64 2d 6f 75 74 70 75 74 0a 20 20 urrent-buffer.standard-output...
682c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 .............................(se
682e0 74 71 20 65 72 72 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 28 65 78 65 63 75 74 61 62 6c 65 tq.err.(call-process.(executable
68300 2d 66 69 6e 64 20 22 63 6f 6e 76 65 72 74 22 29 20 6e 69 6c 20 27 28 74 20 74 29 20 6e 69 6c 0a -find."convert").nil.'(t.t).nil.
68320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 72 65 73 69 7a 65 22 ......................."-resize"
68360 20 28 66 6f 72 6d 61 74 20 22 25 73 78 25 73 22 20 73 69 7a 65 2d 76 61 6c 75 65 20 73 69 7a 65 .(format."%sx%s".size-value.size
68380 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -value).........................
683a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 ...............................c
683c0 6f 76 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 over............................
683e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 63 68 ............................cach
68400 65 2d 64 65 73 74 2d 66 69 6c 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-dest-file)))))................
68420 20 20 28 77 68 65 6e 20 28 2f 3d 20 65 72 72 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(when.(/=.err.0)..............
68440 20 20 20 20 20 20 28 77 61 72 6e 20 22 25 73 22 20 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 ......(warn."%s".msg)...........
68460 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 61 63 68 65 2d 64 65 73 74 2d 66 69 6c 65 20 6e .........(setq.cache-dest-file.n
68480 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 63 61 63 68 65 2d 64 65 73 74 2d 66 69 6c 65 il))))...........cache-dest-file
684a0 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 61 63 )))))..(defvar.emms-browser--cac
684c0 68 65 2d 68 61 73 68 20 6e 69 6c 0a 20 20 22 43 61 63 68 65 20 66 6f 72 20 60 65 6d 6d 73 2d 62 he-hash.nil..."Cache.for.`emms-b
684e0 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 79 6e 63 27 2e 22 29 rowser-cache-thumbnail-async'.")
68500 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d ..(defun.emms-browser-cache-thum
68520 62 6e 61 69 6c 2d 61 73 79 6e 63 20 28 64 69 72 20 73 69 7a 65 29 0a 20 20 22 4c 69 6b 65 20 60 bnail-async.(dir.size)..."Like.`
68540 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 27 20 62 75 emms-browser-cache-thumbnail'.bu
68560 74 20 63 61 63 68 65 73 20 71 75 65 72 69 65 73 20 66 6f 72 20 66 61 73 74 65 72 20 6c 6f 6f 6b t.caches.queries.for.faster.look
68580 75 70 73 2e 0a 54 68 65 20 64 72 61 77 62 61 63 6b 20 69 73 20 74 68 61 74 20 69 66 20 63 68 61 ups..The.drawback.is.that.if.cha
685a0 6e 67 65 73 20 61 72 65 20 6d 61 64 65 20 74 6f 20 74 68 65 20 63 6f 76 65 72 73 20 69 6e 20 44 nges.are.made.to.the.covers.in.D
685c0 49 52 0a 61 66 74 65 72 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 IR.after.`emms-browser-cache-thu
685e0 6d 62 6e 61 69 6c 2d 61 73 79 6e 63 27 20 71 75 65 72 69 65 64 20 74 68 65 6d 2c 20 69 74 20 77 mbnail-async'.queried.them,.it.w
68600 6f 6e 27 74 0a 62 65 20 74 61 6b 65 6e 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 2e 20 20 43 61 6c on't.be.taken.into.account...Cal
68620 6c 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 2d 63 61 63 68 65 2d 68 61 73 68 l.`emms-browser-clear-cache-hash
68640 27 20 74 6f 0a 72 65 66 72 65 73 68 20 74 68 65 20 63 61 63 68 65 2e 22 0a 20 20 28 75 6e 6c 65 '.to.refresh.the.cache."...(unle
68660 73 73 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 61 63 68 65 2d 68 61 73 68 0a 20 20 20 20 ss.emms-browser--cache-hash.....
68680 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 61 63 68 65 2d 68 61 73 68 20 28 (setq.emms-browser--cache-hash.(
686a0 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 0a make-hash-table.:test.'equal))).
686c0 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 20 28 63 6f 6e 73 20 64 69 72 20 73 69 7a 65 29 29 0a 20 ..(let*.((key.(cons.dir.size))..
686e0 20 20 20 20 20 20 20 20 28 76 61 6c 20 28 67 65 74 68 61 73 68 20 6b 65 79 20 65 6d 6d 73 2d 62 ........(val.(gethash.key.emms-b
68700 72 6f 77 73 65 72 2d 2d 63 61 63 68 65 2d 68 61 73 68 29 29 29 0a 20 20 20 20 28 6f 72 20 76 61 rowser--cache-hash))).....(or.va
68720 6c 0a 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 6b 65 79 20 28 65 6d 6d 73 2d 62 72 6f l.........(puthash.key.(emms-bro
68740 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 20 64 69 72 20 73 69 7a 65 29 0a 20 wser-cache-thumbnail.dir.size)..
68760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 2d 63 61 ................emms-browser--ca
68780 63 68 65 2d 68 61 73 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 che-hash))))..(defun.emms-browse
687a0 72 2d 63 6c 65 61 72 2d 63 61 63 68 65 2d 68 61 73 68 20 28 29 0a 20 20 22 52 65 73 65 74 73 20 r-clear-cache-hash.()..."Resets.
687c0 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 `emms-browser-cache-thumbnail-as
687e0 79 6e 63 27 20 63 61 63 68 65 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 69 66 20 74 68 ync'.cache..This.is.useful.if.th
68800 65 72 65 20 77 65 72 65 20 63 68 61 6e 67 65 73 20 6f 6e 20 64 69 73 6b 20 61 66 74 65 72 0a 60 ere.were.changes.on.disk.after.`
68820 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 79 emms-browser-cache-thumbnail-asy
68840 6e 63 27 20 66 69 72 73 74 20 63 61 63 68 65 64 20 74 68 65 6d 2e 22 0a 20 20 28 69 6e 74 65 72 nc'.first.cached.them."...(inter
68860 61 63 74 69 76 65 29 0a 20 20 28 63 6c 72 68 61 73 68 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d active)...(clrhash.emms-browser-
68880 2d 63 61 63 68 65 2d 68 61 73 68 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 62 72 -cache-hash))..(provide.'emms-br
688a0 6f 77 73 65 72 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 20 65 6e 64 73 20 owser).;;;.emms-browser.el.ends.
688c0 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 here............................
688e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
689a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
689c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
689e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 00 00 00 emms-24/emms-player-simple.el...
68a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
68a80 30 30 31 37 37 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 35 35 00 20 30 00 00 00 0017730.00000000000.014755..0...
68aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
68b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
68b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
68c00 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 20 2d 2d 2d 20 41 20 ;;;.emms-player-simple.el.---.A.
68c20 67 65 6e 65 72 69 63 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 2e 20 20 2d 2a 2d 20 6c 65 78 69 generic.simple.player...-*-.lexi
68c40 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 cal-binding:.t;.-*-..;;.Copyrigh
68c60 74 20 28 43 29 20 32 30 30 33 2d 32 30 32 31 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f t.(C).2003-2021.Free.Software.Fo
68c80 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 55 6c 72 69 undation,.Inc...;;.Authors:.Ulri
68ca0 6b 20 4a 65 6e 73 65 6e 20 3c 74 65 72 72 79 70 40 64 61 69 6d 69 2e 61 75 2e 64 6b 3e 0a 3b 3b k.Jensen.<terryp@daimi.au.dk>.;;
68cc0 20 20 20 20 20 20 20 20 20 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 20 3c 66 6f 72 63 65 ..........Jorgen.Sch..fer.<force
68ce0 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 r@forcix.cx>.;;.Keywords:.emms,.
68d00 6d 70 67 33 32 31 2c 20 6f 67 67 31 32 33 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 mpg321,.ogg123..;;.This.file.is.
68d20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 part.of.EMMS...;;.EMMS.is.free.s
68d40 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
68d60 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 .and/or.modify.;;.it.under.the.t
68d80 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
68da0 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 icense.as.published.by.;;.the.Fr
68dc0 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 ee.Software.Foundation;.either.v
68de0 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b ersion.3,.or.(at.your.option).;;
68e00 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 .any.later.version...;;.EMMS.is.
68e20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 distributed.in.the.hope.that.it.
68e40 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 will.be.useful,.;;.but.WITHOUT.A
68e60 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d NY.WARRANTY;.without.even.the.im
68e80 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 plied.warranty.of.;;.MERCHANTABI
68ea0 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 LITY.or.FITNESS.FOR.A.PARTICULAR
68ec0 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 .PURPOSE...See.the.;;.GNU.Genera
68ee0 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c l.Public.License.for.more.detail
68f00 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 s...;;.You.should.have.received.
68f20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 a.copy.of.the.GNU.General.Public
68f40 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 .License.;;.along.with.EMMS;.see
68f60 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 .the.file.COPYING...If.not,.writ
68f80 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 e.to.the.;;.Free.Software.Founda
68fa0 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 tion,.Inc.,.51.Franklin.St,.Fift
68fc0 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 h.Floor,.;;.Boston,.MA.02110-130
68fe0 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 1,.USA...;;;.Commentary:..;;.Thi
69000 73 20 69 73 20 61 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 20 69 6e 74 65 72 66 61 63 65 20 2d s.is.a.simple.player.interface.-
69020 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 70 6c 61 79 65 72 0a .if.you.have.an.external.player.
69040 3b 3b 20 74 68 61 74 20 6a 75 73 74 20 65 78 70 65 63 74 73 20 74 68 65 20 66 69 6c 65 6e 61 6d ;;.that.just.expects.the.filenam
69060 65 20 74 6f 20 70 6c 61 79 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 69 73 20 73 e.to.play.as.an.argument,.this.s
69080 68 6f 75 6c 64 0a 3b 3b 20 62 65 20 61 62 6c 65 20 74 6f 20 75 73 65 20 69 74 2e 20 53 65 65 20 hould.;;.be.able.to.use.it..See.
690a0 74 68 65 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 6c 69 the.define-emms-simple-player.li
690c0 6e 65 73 20 61 74 20 74 68 65 0a 3b 3b 20 65 6e 64 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20 66 nes.at.the.;;.end.of.this.file.f
690e0 6f 72 20 65 78 61 6d 70 6c 65 73 2e 0a 0a 3b 3b 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 or.examples...;;.Add.the.followi
69100 6e 67 20 74 6f 20 79 6f 75 72 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 27 3a 0a 0a ng.to.your.`emms-player-list':..
69120 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 0a 3b 3b 20 65 6d 6d 73 2d 70 6c ;;.emms-player-mpg321.;;.emms-pl
69140 61 79 65 72 2d 6f 67 67 31 32 33 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 56 65 72 73 69 ayer-ogg123..;;;.Code:..;;.Versi
69160 6f 6e 20 63 6f 6e 74 72 6f 6c 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 on.control.(defvar.emms-player-s
69180 69 6d 70 6c 65 2d 76 65 72 73 69 6f 6e 20 22 30 2e 32 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e imple-version."0.2.$Revision:.1.
691a0 32 36 20 24 22 0a 20 20 22 53 69 6d 70 6c 65 20 70 6c 61 79 65 72 20 66 6f 72 20 45 4d 4d 53 20 26.$"..."Simple.player.for.EMMS.
691c0 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 2e 22 29 0a 3b 3b 20 24 49 64 3a 20 65 6d 6d 73 2d 70 version.string.").;;.$Id:.emms-p
691e0 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 2c 76 20 31 2e 32 36 20 32 30 30 35 2f 30 38 2f 30 layer-simple.el,v.1.26.2005/08/0
69200 32 20 31 35 3a 32 37 3a 35 31 20 66 6f 72 63 65 72 20 45 78 70 20 24 0a 0a 28 72 65 71 75 69 72 2.15:27:51.forcer.Exp.$..(requir
69220 65 20 27 65 6d 6d 73 29 0a 0a 3b 3b 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 0a 0a 28 64 65 66 e.'emms)..;;.Customization..(def
69240 6d 61 63 72 6f 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 macro.define-emms-simple-player.
69260 28 6e 61 6d 65 20 74 79 70 65 73 20 72 65 67 65 78 20 63 6f 6d 6d 61 6e 64 20 26 72 65 73 74 20 (name.types.regex.command.&rest.
69280 61 72 67 73 29 0a 20 20 22 44 65 66 69 6e 65 20 61 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 20 args)..."Define.a.simple.player.
692a0 77 69 74 68 20 74 68 65 20 75 73 65 20 6f 66 20 60 65 6d 6d 73 2d 64 65 66 69 6e 65 2d 70 6c 61 with.the.use.of.`emms-define-pla
692c0 79 65 72 27 2e 0a 4e 41 4d 45 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 72 75 63 74 20 74 yer'..NAME.is.used.to.contruct.t
692e0 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6b 65 0a 65 6d 6d he.name.of.the.function.like.emm
69300 73 2d 70 6c 61 79 65 72 2d 4e 41 4d 45 2e 20 54 59 50 45 53 20 69 73 20 61 20 6c 69 73 74 20 6f s-player-NAME..TYPES.is.a.list.o
69320 66 20 74 72 61 63 6b 20 74 79 70 65 73 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 0a 74 68 69 73 f.track.types.understood.by.this
69340 20 70 6c 61 79 65 72 2e 20 52 45 47 45 58 20 6d 75 73 74 20 62 65 20 61 20 72 65 67 65 78 70 20 .player..REGEX.must.be.a.regexp.
69360 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 73 0a 74 68 65 20 70 that.matches.the.filenames.the.p
69380 6c 61 79 65 72 20 63 61 6e 20 70 6c 61 79 2e 20 43 4f 4d 4d 41 4e 44 20 73 70 65 63 69 66 69 65 layer.can.play..COMMAND.specifie
693a0 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 0a 74 6f 20 63 s.the.command.line.argument.to.c
693c0 61 6c 6c 20 74 68 65 20 70 6c 61 79 65 72 20 61 6e 64 20 41 52 47 53 20 61 72 65 20 74 68 65 20 all.the.player.and.ARGS.are.the.
693e0 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 28 6c 65 74 20 command.line.arguments."...(let.
69400 28 28 67 72 6f 75 70 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c ((group.(intern.(concat."emms-pl
69420 61 79 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 ayer-".(symbol-name.name))))....
69440 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 .....(command-name.(intern.(conc
69460 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at."emms-player-"...............
69480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d ........................(symbol-
694a0 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.name)......................
694c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 22 ................."-command-name"
694e0 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 61 72 61 6d 65 74 65 72 73 20 28 69 6e 74 65 72 6e 20 ))).........(parameters.(intern.
69500 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 0a 20 20 20 20 20 20 20 20 20 (concat."emms-player-"..........
69520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 ...........................(symb
69540 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ol-name.name)...................
69560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 70 61 72 61 6d 65 74 65 72 73 22 29 .................."-parameters")
69580 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 61 79 65 72 2d 6e 61 6d 65 20 28 69 6e 74 65 72 6e 20 )).........(player-name.(intern.
695a0 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e (concat."emms-player-".(symbol-n
695c0 61 6d 65 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 72 74 20 28 69 6e 74 ame.name)))).........(start.(int
695e0 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 20 28 73 79 6d 62 ern.(concat."emms-player-".(symb
69600 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 22 2d 73 74 61 72 74 22 29 29 29 0a 20 20 20 20 20 20 ol-name.name)."-start"))).......
69620 20 20 28 73 74 6f 70 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c ..(stop.(intern.(concat."emms-pl
69640 61 79 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 22 2d 73 74 6f 70 ayer-".(symbol-name.name)."-stop
69660 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 61 79 61 62 6c 65 70 20 28 69 6e 74 65 72 6e 20 "))).........(playablep.(intern.
69680 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e (concat."emms-player-".(symbol-n
696a0 61 6d 65 20 6e 61 6d 65 29 20 22 2d 70 6c 61 79 61 62 6c 65 2d 70 22 29 29 29 29 0a 20 20 60 28 ame.name)."-playable-p"))))...`(
696c0 70 72 6f 67 6e 0a 20 20 20 20 20 28 64 65 66 67 72 6f 75 70 20 2c 67 72 6f 75 70 20 6e 69 6c 0a progn......(defgroup.,group.nil.
696e0 20 20 20 20 20 20 20 2c 28 63 6f 6e 63 61 74 20 22 45 4d 4d 53 20 70 6c 61 79 65 72 20 66 6f 72 .......,(concat."EMMS.player.for
69700 20 22 20 63 6f 6d 6d 61 6e 64 20 22 2e 22 29 0a 20 20 20 20 20 20 20 3a 67 72 6f 75 70 20 27 65 .".command.".")........:group.'e
69720 6d 6d 73 2d 70 6c 61 79 65 72 0a 20 20 20 20 20 20 20 3a 70 72 65 66 69 78 20 2c 28 63 6f 6e 63 mms-player........:prefix.,(conc
69740 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e at."emms-player-".(symbol-name.n
69760 61 6d 65 29 20 22 2d 22 29 29 0a 20 20 20 20 20 28 64 65 66 63 75 73 74 6f 6d 20 2c 63 6f 6d 6d ame)."-"))......(defcustom.,comm
69780 61 6e 64 2d 6e 61 6d 65 20 2c 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 2c 28 63 6f 6e 63 61 and-name.,command........,(conca
697a0 74 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 6f 66 20 22 20 63 6f 6d 6d 61 6e 64 t."The.command.name.of.".command
697c0 20 22 2e 22 29 0a 20 20 20 20 20 20 20 3a 74 79 70 65 20 20 27 73 74 72 69 6e 67 29 0a 20 20 20 .".")........:type..'string)....
697e0 20 20 28 64 65 66 63 75 73 74 6f 6d 20 2c 70 61 72 61 6d 65 74 65 72 73 20 27 2c 61 72 67 73 0a ..(defcustom.,parameters.',args.
69800 20 20 20 20 20 20 20 2c 28 63 6f 6e 63 61 74 20 22 54 68 65 20 61 72 67 75 6d 65 6e 74 73 20 74 .......,(concat."The.arguments.t
69820 6f 20 60 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 29 20 o.`".(symbol-name.command-name).
69840 22 27 2e 22 29 0a 20 20 20 20 20 20 20 3a 74 79 70 65 20 20 27 28 72 65 70 65 61 74 20 73 74 72 "'.")........:type..'(repeat.str
69860 69 6e 67 29 29 0a 20 20 20 20 20 28 64 65 66 63 75 73 74 6f 6d 20 2c 70 6c 61 79 65 72 2d 6e 61 ing))......(defcustom.,player-na
69880 6d 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 20 23 27 2c 73 74 61 72 74 20 23 27 2c 73 74 6f 70 me.(emms-player.#',start.#',stop
698a0 20 23 27 2c 70 6c 61 79 61 62 6c 65 70 29 0a 20 20 20 20 20 20 20 2c 28 63 6f 6e 63 61 74 20 22 .#',playablep)........,(concat."
698c0 41 20 70 6c 61 79 65 72 20 66 6f 72 20 45 4d 4d 53 2e 22 29 0a 20 20 20 20 20 20 20 3a 74 79 70 A.player.for.EMMS.")........:typ
698e0 65 20 27 28 63 6f 6e 73 20 73 79 6d 62 6f 6c 20 61 6c 69 73 74 29 29 0a 20 20 20 20 20 28 65 6d e.'(cons.symbol.alist))......(em
69900 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 2c 70 6c 61 79 65 72 2d 6e 61 6d 65 20 27 72 65 67 65 ms-player-set.,player-name.'rege
69920 78 20 2c 72 65 67 65 78 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 x.,regex)......(emms-player-set.
69940 2c 70 6c 61 79 65 72 2d 6e 61 6d 65 20 27 70 61 75 73 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 ,player-name.'pause.'emms-player
69960 2d 73 69 6d 70 6c 65 2d 70 61 75 73 65 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 -simple-pause)......(emms-player
69980 2d 73 65 74 20 2c 70 6c 61 79 65 72 2d 6e 61 6d 65 20 27 72 65 73 75 6d 65 20 27 65 6d 6d 73 2d -set.,player-name.'resume.'emms-
699a0 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 73 75 6d 65 29 0a 20 20 20 20 20 28 64 65 66 75 player-simple-resume)......(defu
699c0 6e 20 2c 73 74 61 72 74 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 22 53 74 61 72 74 20 74 n.,start.(track)........"Start.t
699e0 68 65 20 70 6c 61 79 65 72 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 he.player.process."........(emms
69a00 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 74 61 72 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b -player-simple-start.(emms-track
69a20 2d 6e 61 6d 65 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -name.track)....................
69a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 70 6c 61 79 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 ..............,player-name......
69a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 63 6f 6d ............................,com
69a80 6d 61 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mand-name.......................
69aa0 20 20 20 20 20 20 20 20 20 20 20 2c 70 61 72 61 6d 65 74 65 72 73 29 29 0a 20 20 20 20 20 28 64 ...........,parameters))......(d
69ac0 65 66 75 6e 20 2c 73 74 6f 70 20 28 29 0a 20 20 20 20 20 20 20 22 53 74 6f 70 20 74 68 65 20 70 efun.,stop.()........"Stop.the.p
69ae0 6c 61 79 65 72 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 layer.process."........(emms-pla
69b00 79 65 72 2d 73 69 6d 70 6c 65 2d 73 74 6f 70 29 29 0a 20 20 20 20 20 28 64 65 66 75 6e 20 2c 70 yer-simple-stop))......(defun.,p
69b20 6c 61 79 61 62 6c 65 70 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 22 52 65 74 75 72 6e 20 layablep.(track)........"Return.
69b40 6e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 77 65 20 63 61 6e 20 70 6c 61 79 20 74 68 69 73 20 74 72 non-nil.when.we.can.play.this.tr
69b60 61 63 6b 2e 22 0a 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 ack."........(and.(executable-fi
69b80 6e 64 20 2c 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d nd.,command-name).............(m
69ba0 65 6d 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 20 2c 74 79 70 emq.(emms-track-type.track).,typ
69bc0 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 65 es).............(string-match.(e
69be0 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 2c 70 6c 61 79 65 72 2d 6e 61 6d 65 20 27 72 65 67 mms-player-get.,player-name.'reg
69c00 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 ex)...........................(e
69c20 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 29 29 29 0a 0a 3b 3b 20 mms-track-name.track)))))))..;;.
69c40 47 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c Global.variables.(defvar.emms-pl
69c60 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 65 6d 6d 73 2d 70 ayer-simple-process-name."emms-p
69c80 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 22 0a 20 20 22 54 68 65 20 6e 61 6d layer-simple-process"..."The.nam
69ca0 65 20 6f 66 20 74 68 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 20 70 72 6f 63 65 73 73 22 29 e.of.the.simple.player.process")
69cc0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 74 6f 70 ..(defun.emms-player-simple-stop
69ce0 20 28 29 0a 20 20 22 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e .()..."Stop.the.currently.playin
69d00 67 20 70 72 6f 63 65 73 73 2c 20 69 66 20 69 6e 64 65 65 64 20 74 68 65 72 65 20 69 73 20 6f 6e g.process,.if.indeed.there.is.on
69d20 65 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 65 73 73 20 28 67 65 74 2d 70 72 6f 63 65 73 73 e"...(let.((process.(get-process
69d40 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 .emms-player-simple-process-name
69d60 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 28 6b 69 6c ))).....(when.process.......(kil
69d80 6c 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 l-process.process).......(delete
69da0 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 65 73 73 29 29 29 29 0a 0a 3b 3b 20 55 74 69 6c 69 74 79 -process.process))))..;;.Utility
69dc0 2d 66 75 6e 63 74 69 6f 6e 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 -functions.(defun.emms-player-si
69de0 6d 70 6c 65 2d 73 74 61 72 74 20 28 66 69 6c 65 6e 61 6d 65 20 70 6c 61 79 65 72 20 63 6d 64 6e mple-start.(filename.player.cmdn
69e00 61 6d 65 20 70 61 72 61 6d 73 29 0a 20 20 22 53 74 61 72 74 73 20 61 20 70 72 6f 63 65 73 73 20 ame.params)..."Starts.a.process.
69e20 70 6c 61 79 69 6e 67 20 46 49 4c 45 4e 41 4d 45 20 75 73 69 6e 67 20 74 68 65 20 73 70 65 63 69 playing.FILENAME.using.the.speci
69e40 66 69 65 64 20 43 4d 44 4e 41 4d 45 20 77 69 74 68 0a 74 68 65 20 73 70 65 63 69 66 69 65 64 20 fied.CMDNAME.with.the.specified.
69e60 50 41 52 41 4d 53 2e 0a 50 4c 41 59 45 52 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 PARAMS..PLAYER.is.the.name.of.th
69e80 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 e.current.player."...(let.((proc
69ea0 65 73 73 20 28 61 70 70 6c 79 20 23 27 73 74 61 72 74 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 ess.(apply.#'start-process......
69ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 ...................emms-player-s
69ee0 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 imple-process-name..............
69f00 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........nil..................
69f20 20 20 20 20 20 20 20 63 6d 64 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......cmdname..................
69f40 20 20 20 20 20 20 20 3b 3b 20 73 70 6c 69 63 65 20 69 6e 20 70 61 72 61 6d 73 20 68 65 72 65 0a .......;;.splice.in.params.here.
69f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 ........................(append.
69f80 70 61 72 61 6d 73 20 28 6c 69 73 74 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 3b params.(list.filename))))).....;
69fa0 3b 20 61 64 64 20 61 20 73 65 6e 74 69 6e 65 6c 20 66 6f 72 20 73 69 67 6e 61 6c 69 6e 67 20 74 ;.add.a.sentinel.for.signaling.t
69fc0 65 72 6d 69 6e 61 74 69 6f 6e 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 ermination.....(set-process-sent
69fe0 69 6e 65 6c 20 70 72 6f 63 65 73 73 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c inel.process.#'emms-player-simpl
6a000 65 2d 73 65 6e 74 69 6e 65 6c 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 e-sentinel))...(emms-player-star
6a020 74 65 64 20 70 6c 61 79 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 ted.player))..(defun.emms-player
6a040 2d 73 69 6d 70 6c 65 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 20 73 74 72 29 0a 20 20 22 53 -simple-sentinel.(proc.str)..."S
6a060 65 6e 74 69 6e 65 6c 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 74 68 65 20 65 6e 64 20 entinel.for.determining.the.end.
6a080 6f 66 20 70 72 6f 63 65 73 73 22 0a 20 20 28 69 67 6e 6f 72 65 20 73 74 72 29 0a 20 20 28 77 68 of.process"...(ignore.str)...(wh
6a0a0 65 6e 20 28 6f 72 20 28 65 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 en.(or.(eq.(process-status.proc)
6a0c0 20 27 65 78 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 70 72 6f 63 65 73 73 .'exit).............(eq.(process
6a0e0 2d 73 74 61 74 75 73 20 70 72 6f 63 29 20 27 73 69 67 6e 61 6c 29 29 0a 20 20 20 20 28 65 6d 6d -status.proc).'signal)).....(emm
6a100 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 s-player-stopped)))..(defun.emms
6a120 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 61 75 73 65 20 28 29 0a 20 20 22 50 61 75 73 65 -player-simple-pause.()..."Pause
6a140 20 74 68 65 20 70 6c 61 79 65 72 20 62 79 20 73 65 6e 64 69 6e 67 20 61 20 53 49 47 53 54 4f 50 .the.player.by.sending.a.SIGSTOP
6a160 2e 22 0a 20 20 28 73 69 67 6e 61 6c 2d 70 72 6f 63 65 73 73 20 28 67 65 74 2d 70 72 6f 63 65 73 ."...(signal-process.(get-proces
6a180 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d s.emms-player-simple-process-nam
6a1a0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 53 49 47 53 54 4f 50 29 29 0a e)...................'SIGSTOP)).
6a1c0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 73 75 6d .(defun.emms-player-simple-resum
6a1e0 65 20 28 29 0a 20 20 22 52 65 73 75 6d 65 20 74 68 65 20 70 6c 61 79 65 72 20 62 79 20 73 65 6e e.()..."Resume.the.player.by.sen
6a200 64 69 6e 67 20 61 20 53 49 47 43 4f 4e 54 2e 22 0a 20 20 28 73 69 67 6e 61 6c 2d 70 72 6f 63 65 ding.a.SIGCONT."...(signal-proce
6a220 73 73 20 28 67 65 74 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 ss.(get-process.emms-player-simp
6a240 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-process-name)................
6a260 20 20 20 27 53 49 47 43 4f 4e 54 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 ...'SIGCONT))..(defun.emms-playe
6a280 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 28 26 72 65 73 74 20 65 78 74 65 6e 73 69 6f 6e r-simple-regexp.(&rest.extension
6a2a0 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 6d 61 74 63 68 69 6e 67 20 61 s)..."Return.a.regexp.matching.a
6a2c0 6c 6c 20 45 58 54 45 4e 53 49 4f 4e 53 2c 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 6c ll.EXTENSIONS,.case-insensitivel
6a2e0 79 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 2e 5c 5c 28 22 0a 20 20 20 20 20 20 20 20 20 y."...(concat."\\.\\("..........
6a300 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 65 78 74 65 6e 73 69 6f 6e 29 0a .(mapconcat.(lambda.(extension).
6a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 .......................(mapconca
6a340 74 20 28 6c 61 6d 62 64 61 20 28 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.(lambda.(char)................
6a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 75 20 28 75 .....................(let.((u.(u
6a380 70 63 61 73 65 20 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pcase.char))....................
6a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 20 28 64 6f 77 6e 63 .......................(d.(downc
6a3c0 61 73 65 20 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ase.char))).....................
6a3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 75 20 64 29 0a 20 20 ..................(if.(=.u.d)...
6a400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6a420 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 63 22 20 63 68 61 72 29 0a 20 20 20 20 20 ........(format."%c".char)......
6a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6a460 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 25 63 25 63 5d 22 20 75 20 64 29 29 29 29 0a 20 20 20 20 ...(format."[%c%c]".u.d)))).....
6a480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 ..............................ex
6a4a0 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tension.........................
6a4c0 20 20 20 20 20 20 20 20 20 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........""))..................
6a4e0 20 20 20 20 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....extensions..................
6a500 20 20 20 20 22 5c 5c 7c 22 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 29 5c 5c 27 22 29 29 0a ...."\\|")..........."\\)\\'")).
6a520 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 6d 70 67 33 .(define-emms-simple-player.mpg3
6a540 32 31 20 27 28 66 69 6c 65 20 75 72 6c 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 21.'(file.url)...(emms-player-si
6a560 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 6d 70 33 22 20 22 6d 70 32 22 29 0a 20 20 22 6d 70 67 33 mple-regexp."mp3"."mp2")..."mpg3
6a580 32 31 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 21").(define-emms-simple-player.
6a5a0 6f 67 67 31 32 33 20 27 28 66 69 6c 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 ogg123.'(file)...(emms-player-si
6a5c0 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 6f 67 67 22 20 22 66 6c 61 63 22 29 0a 20 20 22 6f 67 67 mple-regexp."ogg"."flac")..."ogg
6a5e0 31 32 33 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 123").(define-emms-simple-player
6a600 20 73 70 65 65 78 64 65 63 20 27 28 66 69 6c 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 .speexdec.'(file)...(emms-player
6a620 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 73 70 78 22 29 0a 20 20 22 73 70 65 65 78 64 65 -simple-regexp."spx")..."speexde
6a640 63 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 70 c").(define-emms-simple-player.p
6a660 6c 61 79 73 6f 75 6e 64 20 27 28 66 69 6c 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d laysound.'(file)...(emms-player-
6a680 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 77 61 76 22 29 0a 20 20 22 70 6c 61 79 73 6f 75 6e simple-regexp."wav")..."playsoun
6a6a0 64 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 6d d").(define-emms-simple-player.m
6a6c0 69 6b 6d 6f 64 20 27 28 66 69 6c 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d ikmod.'(file)...(emms-player-sim
6a6e0 70 6c 65 2d 72 65 67 65 78 70 20 22 36 36 39 22 20 22 61 6d 66 22 20 22 64 73 6d 22 20 22 66 61 ple-regexp."669"."amf"."dsm"."fa
6a700 72 22 20 22 67 64 6d 22 20 22 69 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r"."gdm"."it"...................
6a720 20 20 20 20 20 20 20 20 20 20 20 22 69 6d 66 22 20 22 6d 6f 64 22 20 22 6d 65 64 22 20 22 6d 74 ..........."imf"."mod"."med"."mt
6a740 6d 22 20 22 6f 6b 74 22 20 22 73 33 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m"."okt"."s3m"..................
6a760 20 20 20 20 20 20 20 20 20 20 20 20 22 73 74 6d 22 20 22 73 74 78 22 20 22 75 6c 74 22 20 22 61 ............"stm"."stx"."ult"."a
6a780 70 75 6e 22 20 22 78 6d 22 20 22 6d 6f 64 22 29 0a 20 20 22 6d 69 6b 6d 6f 64 22 20 22 2d 71 22 pun"."xm"."mod")..."mikmod"."-q"
6a7a0 20 22 2d 70 22 20 22 31 22 20 22 2d 58 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d ."-p"."1"."-X").(define-emms-sim
6a7c0 70 6c 65 2d 70 6c 61 79 65 72 20 74 69 6d 69 64 69 74 79 20 27 28 66 69 6c 65 29 0a 20 20 28 65 ple-player.timidity.'(file)...(e
6a7e0 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 6d 69 64 22 20 22 mms-player-simple-regexp."mid"."
6a800 72 6d 69 22 20 22 72 63 70 22 20 22 72 33 36 22 20 22 67 31 38 22 20 22 67 33 36 22 20 22 6d 66 rmi"."rcp"."r36"."g18"."g36"."mf
6a820 69 22 29 0a 20 20 22 74 69 6d 69 64 69 74 79 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 i")..."timidity").(define-emms-s
6a840 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 66 6c 75 69 64 73 79 6e 74 68 20 27 28 66 69 6c 65 29 0a imple-player.fluidsynth.'(file).
6a860 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 6d 69 ..(emms-player-simple-regexp."mi
6a880 64 22 29 0a 20 20 22 66 6c 75 69 64 73 79 6e 74 68 22 20 22 2d 61 61 6c 73 61 22 20 22 2d 69 6e d")..."fluidsynth"."-aalsa"."-in
6a8a0 22 20 22 2f 6d 65 64 69 61 2f 6d 75 73 69 63 2f 73 66 2f 46 6c 75 69 64 52 33 2d 47 4d 2e 53 46 "."/media/music/sf/FluidR3-GM.SF
6a8c0 32 22 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 61 2").(define-emms-simple-player.a
6a8e0 6c 73 61 70 6c 61 79 65 72 20 27 28 66 69 6c 65 20 75 72 6c 29 0a 20 20 28 63 6f 6e 63 61 74 20 lsaplayer.'(file.url)...(concat.
6a900 22 5c 5c 60 68 74 74 70 5b 73 5d 3f 3a 2f 2f 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 28 65 "\\`http[s]?://\\|"...........(e
6a920 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 22 6f 67 67 22 20 22 mms-player-simple-regexp."ogg"."
6a940 6d 70 33 22 20 22 77 61 76 22 20 22 66 6c 61 63 22 20 22 70 6c 73 22 20 22 6d 33 75 22 29 29 0a mp3"."wav"."flac"."pls"."m3u")).
6a960 20 20 22 61 6c 73 61 70 6c 61 79 65 72 22 20 22 2d 2d 71 75 69 65 74 22 20 22 2d 2d 6e 6f 73 61 .."alsaplayer"."--quiet"."--nosa
6a980 76 65 22 20 22 5c 22 2d 2d 69 6e 74 65 72 66 61 63 65 20 74 65 78 74 5c 22 22 29 0a 0a 28 65 6d ve"."\"--interface.text\"")..(em
6a9a0 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c ms-player-set.emms-player-alsapl
6a9c0 61 79 65 72 0a 09 09 20 27 70 61 75 73 65 0a 09 09 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 ayer....'pause....'emms-player-a
6a9e0 6c 73 61 70 6c 61 79 65 72 2d 70 61 75 73 65 29 0a 0a 3b 3b 3b 20 50 61 75 73 65 20 69 73 20 61 lsaplayer-pause)..;;;.Pause.is.a
6aa00 6c 73 6f 20 72 65 73 75 6d 65 20 66 6f 72 20 61 6c 73 61 70 6c 61 79 65 72 0a 28 65 6d 6d 73 2d lso.resume.for.alsaplayer.(emms-
6aa20 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c 61 79 65 player-set.emms-player-alsaplaye
6aa40 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 73 75 6d 65 0a 20 20 20 20 20 r..................'resume......
6aa60 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 ............nil)..(emms-player-s
6aa80 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c 61 79 65 72 0a 09 09 20 27 73 65 et.emms-player-alsaplayer....'se
6aaa0 65 6b 0a 09 09 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c 61 79 65 72 2d 73 65 ek....'emms-player-alsaplayer-se
6aac0 65 6b 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c 61 79 ek)..(defun.emms-player-alsaplay
6aae0 65 72 2d 70 61 75 73 65 20 28 29 0a 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 61 6c 73 er-pause.()...(call-process."als
6ab00 61 70 6c 61 79 65 72 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 20 22 2d 2d 70 61 75 73 65 22 29 29 aplayer".nil.nil.nil."--pause"))
6ab20 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c 61 79 65 72 2d ..(defun.emms-player-alsaplayer-
6ab40 73 65 65 6b 20 28 73 65 63 29 0a 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 61 6c 73 61 seek.(sec)...(call-process."alsa
6ab60 70 6c 61 79 65 72 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 20 22 2d 2d 72 65 6c 61 74 69 76 65 22 player".nil.nil.nil."--relative"
6ab80 20 28 66 6f 72 6d 61 74 20 22 25 64 22 20 73 65 63 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 .(format."%d".sec)))..(provide.'
6aba0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 emms-player-simple).;;;.emms-pla
6abc0 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 yer-simple.el.ends.here.........
6abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ac00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 75 72 6c 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-url.el.............
6ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ac60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
6ac80 30 30 30 37 37 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 30 30 34 00 20 30 00 00 00 0007766.00000000000.013004..0...
6aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ad00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
6ad20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
6ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ae00 3b 3b 3b 20 65 6d 6d 73 2d 75 72 6c 2e 65 6c 20 2d 2d 2d 20 4d 61 6b 65 20 55 52 4c 20 61 6e 64 ;;;.emms-url.el.---.Make.URL.and
6ae20 20 45 4d 4d 53 20 77 6f 72 6b 20 74 6f 67 65 74 68 65 72 20 77 65 6c 6c 20 20 2d 2a 2d 20 6c 65 .EMMS.work.together.well..-*-.le
6ae40 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 xical-binding:.t;.-*-..;;.Copyri
6ae60 67 68 74 20 28 43 29 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 20 46 ght.(C).2006,.2007,.2008,.2009.F
6ae80 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b ree.Software.Foundation,.Inc...;
6aea0 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b ;.This.file.is.part.of.EMMS...;;
6aec0 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 .EMMS.is.free.software;.you.can.
6aee0 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b redistribute.it.and/or.modify.;;
6af00 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 .it.under.the.terms.of.the.GNU.G
6af20 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 eneral.Public.License.as.publish
6af40 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 ed.by.;;.the.Free.Software.Found
6af60 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 ation;.either.version.3,.or.(at.
6af80 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f your.option).;;.any.later.versio
6afa0 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 n..;;.;;.EMMS.is.distributed.in.
6afc0 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
6afe0 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 .;;.but.WITHOUT.ANY.WARRANTY;.wi
6b000 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 thout.even.the.implied.warranty.
6b020 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 of.;;.MERCHANTABILITY.or.FITNESS
6b040 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 .FOR.A.PARTICULAR.PURPOSE...See.
6b060 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 the.;;.GNU.General.Public.Licens
6b080 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 e.for.more.details..;;.;;.You.sh
6b0a0 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 ould.have.received.a.copy.of.the
6b0c0 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 .GNU.General.Public.License.;;.a
6b0e0 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 long.with.EMMS;.see.the.file.COP
6b100 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 YING...If.not,.write.to.the.;;.F
6b120 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 ree.Software.Foundation,.Inc.,.5
6b140 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 1.Franklin.St,.Fifth.Floor,.;;.B
6b160 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 oston,.MA.02110-1301,.USA...;;;.
6b180 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 65 73 65 20 72 6f 75 74 69 6e 65 73 20 73 Commentary:..;;.These.routines.s
6b1a0 61 6e 69 66 79 20 69 6e 70 75 74 20 74 6f 20 55 52 4c 20 61 6e 64 20 70 61 72 73 65 20 64 61 74 anify.input.to.URL.and.parse.dat
6b1c0 61 20 72 65 74 75 72 6e 65 64 20 62 79 20 55 52 4c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 a.returned.by.URL...;;;.Code:..(
6b1e0 72 65 71 75 69 72 65 20 27 75 72 6c 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 6f 6d require.'url).(require.'emms-com
6b200 70 61 74 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 75 72 6c 2d 73 70 65 63 69 61 6c 73 2d pat)..(defvar.emms-url-specials-
6b220 65 6e 74 69 72 65 0a 20 20 27 28 28 3f 5c 20 20 2e 20 22 25 32 30 22 29 0a 20 20 20 20 28 3f 5c entire...'((?\...."%20").....(?\
6b240 6e 20 2e 20 22 25 30 44 25 30 41 22 29 29 0a 20 20 22 2a 41 6e 20 61 6c 69 73 74 20 6f 66 20 63 n..."%0D%0A"))..."*An.alist.of.c
6b260 68 61 72 61 63 74 65 72 73 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 72 65 70 72 65 73 65 6e haracters.which.must.be.represen
6b280 74 65 64 20 73 70 65 63 69 61 6c 6c 79 20 69 6e 20 55 52 4c 73 2e 0a 54 68 65 20 74 72 61 6e 73 ted.specially.in.URLs..The.trans
6b2a0 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 74 68 65 20 6b 65 79 20 6f 66 20 74 68 65 20 70 61 69 72 formation.is.the.key.of.the.pair
6b2c0 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 62 79 20 60 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f ...This.is.used.by.`emms-url-quo
6b2e0 74 65 2d 65 6e 74 69 72 65 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 72 6c 2d 71 te-entire'.")..(defun.emms-url-q
6b300 75 6f 74 65 2d 65 6e 74 69 72 65 20 28 75 72 6c 29 0a 20 20 22 45 73 63 61 70 65 20 73 70 65 63 uote-entire.(url)..."Escape.spec
6b320 69 61 6c 73 20 63 6f 6e 73 65 72 76 61 74 69 76 65 6c 79 20 69 6e 20 61 6e 20 65 6e 74 69 72 65 ials.conservatively.in.an.entire
6b340 20 55 52 4c 2e 0a 0a 54 68 65 20 73 70 65 63 69 61 6c 73 20 74 6f 20 65 73 63 61 70 65 20 61 72 .URL...The.specials.to.escape.ar
6b360 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 60 65 6d 6d 73 2d 75 72 6c 2d 73 70 65 e.specified.by.the.`emms-url-spe
6b380 63 69 61 6c 73 2d 65 6e 74 69 72 65 27 0a 76 61 72 69 61 62 6c 65 2e 0a 0a 49 66 20 79 6f 75 20 cials-entire'.variable...If.you.
6b3a0 77 61 6e 74 20 74 6f 20 65 73 63 61 70 65 20 70 61 72 74 73 20 6f 66 20 55 52 4c 73 20 74 68 6f want.to.escape.parts.of.URLs.tho
6b3c0 72 6f 75 67 68 6c 79 2c 20 74 68 65 6e 20 75 73 65 0a 60 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 roughly,.then.use.`emms-url-quot
6b3e0 65 27 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 61 70 70 6c 79 20 28 66 75 6e 63 74 69 6f 6e 20 e'.instead."...(apply.(function.
6b400 63 6f 6e 63 61 74 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 concat)..........(mapcar........
6b420 20 20 20 28 6c 61 6d 62 64 61 20 28 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 ...(lambda.(ch).............(let
6b440 20 28 28 72 65 70 6c 20 28 61 73 73 6f 63 20 63 68 20 65 6d 6d 73 2d 75 72 6c 2d 73 70 65 63 69 .((repl.(assoc.ch.emms-url-speci
6b460 61 6c 73 2d 65 6e 74 69 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 als-entire)))...............(if.
6b480 28 6e 75 6c 6c 20 72 65 70 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 (null.repl)...................(c
6b4a0 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har-to-string.ch)...............
6b4c0 20 20 28 63 64 72 20 72 65 70 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e ..(cdr.repl))))...........(appen
6b4e0 64 20 75 72 6c 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 72 6c 2d 71 d.url.nil))))..(defun.emms-url-q
6b500 75 6f 74 65 20 28 73 20 26 6f 70 74 69 6f 6e 61 6c 20 73 61 66 65 29 0a 20 20 22 52 65 70 6c 61 uote.(s.&optional.safe)..."Repla
6b520 63 65 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 53 20 75 73 69 6e 67 ce.special.characters.in.S.using
6b540 20 74 68 65 20 60 25 78 78 27 20 65 73 63 61 70 65 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 .the.`%xx'.escape..This.is.usefu
6b560 6c 20 66 6f 72 20 65 73 63 61 70 69 6e 67 20 70 61 72 74 73 20 6f 66 20 55 52 4c 73 2c 20 62 75 l.for.escaping.parts.of.URLs,.bu
6b580 74 20 6e 6f 74 20 65 6e 74 69 72 65 20 55 52 4c 73 2e 0a 0a 43 68 61 72 61 63 74 65 72 73 20 69 t.not.entire.URLs...Characters.i
6b5a0 6e 20 5b 61 2d 7a 41 2d 5a 5f 2e 2d 2f 5d 20 61 6e 64 20 53 41 46 45 28 64 65 66 61 75 6c 74 20 n.[a-zA-Z_.-/].and.SAFE(default.
6b5c0 69 73 20 5c 22 5c 22 29 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 0a 71 75 6f 74 65 64 2e 0a 65 is.\"\").will.never.be.quoted..e
6b5e0 2e 67 2e 2c 0a 20 20 20 20 28 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 20 5c 22 61 62 63 20 64 .g.,.....(emms-url-quote.\"abc.d
6b600 65 66 5c 22 29 20 3d 3e 20 5c 22 61 62 63 25 32 30 64 65 66 5c 22 2e 22 0a 20 20 28 69 66 20 28 ef\").=>.\"abc%20def\"."...(if.(
6b620 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 73 29 29 0a 20 20 20 20 20 20 22 22 0a 20 20 20 20 28 6f not.(stringp.s))......."".....(o
6b640 72 20 73 61 66 65 20 28 73 65 74 71 20 73 61 66 65 20 22 22 29 29 0a 20 20 20 20 28 73 61 76 65 r.safe.(setq.safe."")).....(save
6b660 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 20 28 69 66 20 -match-data.......(let.((re.(if.
6b680 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5d 22 20 73 61 66 65 29 0a 20 20 20 20 20 20 20 20 (string-match."]".safe).........
6b6a0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 5d 27 20 73 68 6f 75 6c 64 20 62 65 20 70 6c 61 ............;;.`]'.should.be.pla
6b6c0 63 65 64 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 69 6e 73 69 64 65 20 5b 5d 0a 20 ced.at.the.beginning.inside.[]..
6b6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5d 61 2d ...................(format."[]a-
6b700 7a 41 2d 5a 5f 2e 2d 2f 25 73 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 zA-Z_.-/%s]"....................
6b720 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e .........(emms-replace-regexp-in
6b740 2d 73 74 72 69 6e 67 20 22 5d 22 20 22 22 20 73 61 66 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 -string."]"."".safe))...........
6b760 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 61 2d 7a 41 2d 5a 5f 2e 2d 2f 25 73 5d 22 ........(format."[a-zA-Z_.-/%s]"
6b780 20 73 61 66 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 .safe)))).........(mapconcat....
6b7a0 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 ......(lambda.(c)............(le
6b7c0 74 20 28 28 73 31 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 29 29 0a 20 20 20 20 t.((s1.(char-to-string.c))).....
6b7e0 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 20 73 31 .........(if.(string-match.re.s1
6b800 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 31 0a 20 20 20 20 20 20 20 20 20 20 )..................s1...........
6b820 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 25 25 30 32 78 22 20 63 29 29 29 29 0a 20 20 20 20 .....(format."%%%02x".c)))).....
6b840 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 28 65 6e 63 6f 64 65 2d 63 6f 64 .....(string-to-list.(encode-cod
6b860 69 6e 67 2d 73 74 72 69 6e 67 20 73 20 27 75 74 66 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 22 ing-string.s.'utf-8)).........."
6b880 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 2d 70 6c ")))))..(defun.emms-url-quote-pl
6b8a0 75 73 20 28 73 20 26 6f 70 74 69 6f 6e 61 6c 20 73 61 66 65 29 0a 20 20 22 52 75 6e 20 28 65 6d us.(s.&optional.safe)..."Run.(em
6b8c0 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 20 73 20 5c 22 20 5c 22 29 2c 20 74 68 65 6e 20 72 65 70 6c ms-url-quote.s.\".\"),.then.repl
6b8e0 61 63 65 20 60 20 27 20 77 69 74 68 20 60 2b 27 2e 22 0a 20 20 28 65 6d 6d 73 2d 72 65 70 6c 61 ace.`.'.with.`+'."...(emms-repla
6b900 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 22 20 22 20 22 2b 22 20 28 ce-regexp-in-string...."."."+".(
6b920 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 20 73 20 28 63 6f 6e 63 61 74 20 73 61 66 65 20 22 20 emms-url-quote.s.(concat.safe.".
6b940 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 2d 75 6e 64 "))))..(defun.emms-url-quote-und
6b960 65 72 73 63 6f 72 65 20 28 73 20 26 6f 70 74 69 6f 6e 61 6c 20 73 61 66 65 29 0a 20 20 22 52 75 erscore.(s.&optional.safe)..."Ru
6b980 6e 20 28 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 20 73 20 5c 22 20 5c 22 29 2c 20 74 68 65 6e n.(emms-url-quote.s.\".\"),.then
6b9a0 20 72 65 70 6c 61 63 65 20 60 20 27 20 77 69 74 68 20 60 5f 27 2e 22 0a 20 20 28 65 6d 6d 73 2d .replace.`.'.with.`_'."...(emms-
6b9c0 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 22 20 22 20 replace-regexp-in-string....".".
6b9e0 22 5f 22 20 28 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 20 73 20 28 63 6f 6e 63 61 74 20 73 61 "_".(emms-url-quote.s.(concat.sa
6ba00 66 65 20 22 20 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 68 74 74 70 2d 63 6f 6e fe."."))))..(defun.emms-http-con
6ba20 74 65 6e 74 2d 63 6f 64 69 6e 67 20 28 29 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 tent-coding.()...(save-match-dat
6ba40 61 0a 20 20 20 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 27 75 72 6c 2d 68 74 74 70 2d 63 6f 6e a.....(and.(boundp.'url-http-con
6ba60 74 65 6e 74 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 70 20 75 72 6c tent-type)..........(stringp.url
6ba80 2d 68 74 74 70 2d 63 6f 6e 74 65 6e 74 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 -http-content-type)..........(st
6baa0 72 69 6e 67 2d 6d 61 74 63 68 20 22 3b 5c 5c 73 2d 2a 63 68 61 72 73 65 74 3d 5c 5c 28 5b 5e 3b ring-match.";\\s-*charset=\\([^;
6bac0 5b 3a 73 70 61 63 65 3a 5d 5d 2b 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [:space:]]+\\)".................
6bae0 20 20 20 20 20 20 20 75 72 6c 2d 68 74 74 70 2d 63 6f 6e 74 65 6e 74 2d 74 79 70 65 29 0a 20 20 .......url-http-content-type)...
6bb00 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 28 64 6f 77 6e 63 61 73 65 20 28 6d .......(intern-soft.(downcase.(m
6bb20 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 75 72 6c 2d 68 74 74 70 2d 63 6f 6e 74 65 6e 74 2d 74 atch-string.1.url-http-content-t
6bb40 79 70 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 68 74 74 70 2d 64 65 63 6f ype))))))..(defun.emms-http-deco
6bb60 64 65 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 66 65 72 29 0a 20 20 22 de-buffer.(&optional.buffer)..."
6bb80 52 65 63 6f 64 65 20 74 68 65 20 62 75 66 66 65 72 20 77 69 74 68 20 60 75 72 6c 2d 72 65 74 72 Recode.the.buffer.with.`url-retr
6bba0 69 65 76 65 27 73 20 63 6f 6e 74 65 6e 74 73 2e 20 45 6c 73 65 20 74 68 65 0a 62 75 66 66 65 72 ieve's.contents..Else.the.buffer
6bbc0 20 77 6f 75 6c 64 20 63 6f 6e 74 61 69 6e 20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 72 73 20 6c .would.contain.multibyte.chars.l
6bbe0 69 6b 65 20 5c 5c 31 32 33 5c 5c 34 35 36 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 ike.\\123\\456."...(with-current
6bc00 2d 62 75 66 66 65 72 20 28 6f 72 20 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 -buffer.(or.buffer.(current-buff
6bc20 65 72 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 64 65 66 61 75 6c 74 20 28 6f 72 20 28 63 61 er)).....(let*.((default.(or.(ca
6bc40 72 20 64 65 66 61 75 6c 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 r.default-process-coding-system)
6bc60 20 27 75 74 66 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 64 69 6e 67 20 20 28 6f .'utf-8))............(coding..(o
6bc80 72 20 28 65 6d 6d 73 2d 68 74 74 70 2d 63 6f 6e 74 65 6e 74 2d 63 6f 64 69 6e 67 29 20 64 65 66 r.(emms-http-content-coding).def
6bca0 61 75 6c 74 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 64 69 6e 67 0a 20 20 20 20 20 ault))).......(when.coding......
6bcc0 20 20 20 3b 3b 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 ...;;.(pop-to-buffer.(current-bu
6bce0 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 6d 65 73 73 61 67 65 20 22 63 6f 6e 74 ffer)).........;;.(message."cont
6bd00 65 6e 74 2d 74 79 70 65 3a 20 25 73 22 20 75 72 6c 2d 68 74 74 70 2d 63 6f 6e 74 65 6e 74 2d 74 ent-type:.%s".url-http-content-t
6bd20 79 70 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 6d 65 73 73 61 67 65 20 22 63 6f 64 69 6e 67 ype).........;;.(message."coding
6bd40 3a 20 25 53 20 5b 64 65 66 61 75 6c 74 3a 20 25 53 5d 22 20 63 6f 64 69 6e 67 20 64 65 66 61 75 :.%S.[default:.%S]".coding.defau
6bd60 6c 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 lt).........(set-buffer-multibyt
6bd80 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 72 65 67 69 e.t).........(decode-coding-regi
6bda0 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 63 6f 64 69 6e on.(point-min).(point-max).codin
6bdc0 67 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 75 72 6c 29 0a 3b 3b 3b 20 g)))))..(provide.'emms-url).;;;.
6bde0 65 6d 6d 73 2d 75 72 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 emms-url.el.ends.here...........
6be00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 emms-24/emms-listenbrainz-scrobb
6be20 6c 65 72 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ler.el..........................
6be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6be60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
6be80 30 30 32 33 34 32 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 35 31 00 20 30 00 00 00 0023427.00000000000.016651..0...
6bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bf00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
6bf20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
6bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c000 3b 3b 3b 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2e ;;;.emms-listenbrainz-scrobbler.
6c020 65 6c 20 2d 2d 2d 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 20 53 63 72 6f 62 62 6c 69 6e 67 20 41 el.---.Listenbrainz.Scrobbling.A
6c040 50 49 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a PI..-*-.lexical-binding:.t;.-*-.
6c060 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 34 20 20 46 72 65 65 20 53 6f 66 .;;.Copyright.(C).2024..Free.Sof
6c080 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f tware.Foundation,.Inc...;;.Autho
6c0a0 72 3a 20 46 72 61 6e 20 42 75 72 73 74 61 6c 6c 20 3c 66 72 61 6e 2e 62 75 72 73 74 61 6c 6c 40 r:.Fran.Burstall.<fran.burstall@
6c0c0 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6c 69 gmail.com>.;;.Keywords:.emms,.li
6c0e0 73 74 65 6e 62 72 61 69 6e 7a 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 stenbrainz..;;.EMMS.is.free.soft
6c100 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e ware;.you.can.redistribute.it.an
6c120 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d d/or.modify.it.;;.under.the.term
6c140 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
6c160 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 nse.as.published.by.;;.the.Free.
6c180 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 Software.Foundation;.either.vers
6c1a0 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e ion.3,.or.(at.your.option).;;.an
6c1c0 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 y.later.version..;;.;;.EMMS.is.d
6c1e0 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 istributed.in.the.hope.that.it.w
6c200 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e ill.be.useful,.but.WITHOUT.;;.AN
6c220 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 Y.WARRANTY;.without.even.the.imp
6c240 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 lied.warranty.of.MERCHANTABILITY
6c260 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 .;;.or.FITNESS.FOR.A.PARTICULAR.
6c280 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 PURPOSE...See.the.GNU.General.Pu
6c2a0 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 blic.;;.License.for.more.details
6c2c0 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 ..;;.;;.You.should.have.received
6c2e0 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 .a.copy.of.the.GNU.General.Publi
6c300 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 c.License.;;.along.with.EMMS;.se
6c320 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 e.the.file.COPYING...If.not,.wri
6c340 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 te.to.the.Free.;;.Software.Found
6c360 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c ation,.Inc.,.51.Franklin.Street,
6c380 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 .Fifth.Floor,.Boston,.;;.MA.0211
6c3a0 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 0-1301,.USA...;;;.Commentary:..;
6c3c0 3b 20 54 6f 20 75 73 65 20 6c 69 73 74 65 6e 62 72 61 69 6e 7a 20 79 6f 75 20 6e 65 65 64 20 74 ;.To.use.listenbrainz.you.need.t
6c3e0 6f 20 61 64 64 20 61 20 75 73 65 72 20 74 6f 6b 65 6e 20 74 6f 0a 3b 3b 20 7e 2f 2e 61 75 74 68 o.add.a.user.token.to.;;.~/.auth
6c400 69 6e 66 6f 2e 67 70 67 20 6f 72 20 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 20 66 69 6c 65 20 75 info.gpg.or.an.equivalent.file.u
6c420 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 61 75 74 68 2d 73 6f 75 72 63 65 0a 3b 3b 20 77 69 74 68 nderstood.by.auth-source.;;.with
6c440 20 61 20 6c 69 6e 65 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 3b 3b 20 6d 61 63 68 69 6e 65 20 61 .a.line.like.this:..;;.machine.a
6c460 70 69 2e 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2e 6f 72 67 20 70 61 73 73 77 6f 72 64 20 30 61 62 pi.listenbrainz.org.password.0ab
6c480 63 31 64 65 32 2d 32 34 35 2d 36 37 66 61 2d 38 39 30 36 62 2d 62 63 31 32 33 64 34 64 62 64 61 c1de2-245-67fa-8906b-bc123d4dbda
6c4a0 61 0a 0a 3b 3b 20 54 6f 20 65 6e 61 62 6c 65 20 73 63 72 6f 62 62 6c 69 6e 67 20 63 61 6c 6c 20 a..;;.To.enable.scrobbling.call.
6c4c0 28 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 (emms-listenbrainz-scrobbler-ena
6c4e0 62 6c 65 29 2e 0a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 2a 20 52 65 71 75 69 72 65 73 0a ble)....;;;.Code:..;;*.Requires.
6c500 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 28 72 .(require.'emms-playing-time).(r
6c520 65 71 75 69 72 65 20 27 61 75 74 68 2d 73 6f 75 72 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 6a equire.'auth-source).(require.'j
6c540 73 6f 6e 29 0a 28 72 65 71 75 69 72 65 20 27 75 72 6c 2d 76 61 72 73 29 0a 0a 3b 3b 2a 20 56 61 son).(require.'url-vars)..;;*.Va
6c560 72 73 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 rs..(defvar.emms-listenbrainz-sc
6c580 72 6f 62 62 6c 65 72 2d 68 6f 73 74 0a 20 20 22 61 70 69 2e 6c 69 73 74 65 6e 62 72 61 69 6e 7a robbler-host..."api.listenbrainz
6c5a0 2e 6f 72 67 22 0a 20 20 22 4c 69 73 74 65 6e 62 72 61 69 6e 7a 20 73 65 72 76 65 72 20 77 65 20 .org"..."Listenbrainz.server.we.
6c5c0 74 61 72 67 65 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 target.")..(defvar.emms-listenbr
6c5e0 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 74 6f 6b 65 6e 20 6e 69 6c 0a 20 20 22 4c 69 73 74 ainz-scrobbler-token.nil..."List
6c600 65 6e 62 72 61 69 6e 7a 20 75 73 65 72 20 74 6f 6b 65 6e 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 enbrainz.user.token...Note.that.
6c620 74 68 65 20 70 72 65 66 65 72 72 65 64 20 77 61 79 20 6f 66 20 61 75 74 68 65 6e 74 69 63 61 74 the.preferred.way.of.authenticat
6c640 69 6e 67 20 69 73 20 75 73 69 6e 67 20 61 75 74 68 69 6e 66 6f 2e 22 29 0a 0a 28 64 65 66 76 61 ing.is.using.authinfo.")..(defva
6c660 72 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 75 r.emms-listenbrainz-scrobbler-su
6c680 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 0a 20 20 28 63 6f 6e 63 61 74 20 22 68 74 74 70 73 3a 2f 2f bmission-url...(concat."https://
6c6a0 22 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 68 6f ".emms-listenbrainz-scrobbler-ho
6c6c0 73 74 20 22 2f 31 2f 73 75 62 6d 69 74 2d 6c 69 73 74 65 6e 73 22 29 0a 20 20 22 55 52 4c 20 66 st."/1/submit-listens")..."URL.f
6c6e0 6f 72 20 73 75 62 6d 69 73 73 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d or.submissions.")..(defvar.emms-
6c700 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 74 72 61 63 6b 2d 70 6c 61 listenbrainz-scrobbler-track-pla
6c720 79 2d 73 74 61 72 74 2d 74 69 6d 65 73 74 61 6d 70 0a 20 20 6e 69 6c 0a 20 20 22 54 69 6d 65 20 y-start-timestamp...nil..."Time.
6c740 77 68 65 6e 20 61 20 74 72 61 63 6b 20 73 74 61 72 74 65 64 20 70 6c 61 79 69 6e 67 2e 22 29 0a when.a.track.started.playing.").
6c760 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 .(defvar.emms-listenbrainz-scrob
6c780 62 6c 65 72 2d 64 69 73 70 6c 61 79 2d 73 75 62 6d 69 73 73 69 6f 6e 73 0a 20 20 74 0a 20 20 22 bler-display-submissions...t..."
6c7a0 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 70 6c 61 79 20 61 20 75 73 65 72 20 6d 65 73 73 61 67 Whether.to.display.a.user.messag
6c7c0 65 20 6f 6e 20 65 76 65 72 79 20 73 75 62 6d 69 73 73 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 76 61 e.on.every.submission.")..(defva
6c7e0 72 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 72 75 r.emms-listenbrainz-scrobbler-ru
6c800 6e 6e 69 6e 67 0a 20 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 65 6d 6d 73 2d 6c nning...nil..."Non-nil.if.emms-l
6c820 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 20 69 73 20 61 63 74 69 76 65 2e istenbrainz-scrobbler.is.active.
6c840 22 29 0a 0a 0c 0a 3b 3b 2a 20 55 73 65 72 20 74 6f 6b 65 6e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ")....;;*.User.token..(defun.emm
6c860 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 67 65 74 2d 61 75 s-listenbrainz-scrobbler--get-au
6c880 74 68 2d 74 6f 6b 65 6e 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 75 73 65 72 20 74 6f 6b 65 6e th-token.()..."Return.user.token
6c8a0 20 66 72 6f 6d 20 61 75 74 68 2d 73 6f 75 72 63 65 2e 22 0a 20 20 28 70 6c 69 73 74 2d 67 65 74 .from.auth-source."...(plist-get
6c8c0 20 28 63 61 72 20 28 61 75 74 68 2d 73 6f 75 72 63 65 2d 73 65 61 72 63 68 20 3a 68 6f 73 74 20 .(car.(auth-source-search.:host.
6c8e0 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 68 6f 73 74 emms-listenbrainz-scrobbler-host
6c900 0a 09 09 09 09 20 20 20 20 20 20 3a 6d 61 78 20 31 0a 09 09 09 09 20 20 20 20 20 20 3a 72 65 71 ...........:max.1...........:req
6c920 75 69 72 65 20 27 28 3a 73 65 63 72 65 74 29 29 29 0a 09 20 20 20 20 20 3a 73 65 63 72 65 74 29 uire.'(:secret))).......:secret)
6c940 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 65 6d 6d 73 2d 6c 69 73 74 65 6e )..(declare-function.emms-listen
6c960 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 67 65 74 2d 74 6f 6b 65 6e 20 22 65 6d 6d 73 brainz-scrobbler-get-token."emms
6c980 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 22 29 0a 28 6c 65 74 20 28 -listenbrainz-scrobbler").(let.(
6c9a0 28 74 6f 6b 65 6e 29 29 0a 20 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 (token))...(defun.emms-listenbra
6c9c0 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 67 65 74 2d 74 6f 6b 65 6e 20 28 29 0a 20 20 20 20 22 inz-scrobbler-get-token.()....."
6c9e0 52 65 74 75 72 6e 20 75 73 65 72 20 74 6f 6b 65 6e 2e 22 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 Return.user.token.".....(unless.
6ca00 74 6f 6b 65 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 6b 65 6e 20 28 65 6d 6d 73 2d 6c 69 token.......(setq.token.(emms-li
6ca20 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 67 65 74 2d 61 75 74 68 2d 74 stenbrainz-scrobbler--get-auth-t
6ca40 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 74 6f oken))).....(cond.((functionp.to
6ca60 6b 65 6e 29 20 28 66 75 6e 63 61 6c 6c 20 74 6f 6b 65 6e 29 29 0a 09 20 20 28 28 63 68 61 72 61 ken).(funcall.token))....((chara
6ca80 63 74 65 72 70 20 74 6f 6b 65 6e 29 20 74 6f 6b 65 6e 29 0a 09 20 20 28 74 20 65 6d 6d 73 2d 6c cterp.token).token)....(t.emms-l
6caa0 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 74 6f 6b 65 6e 29 29 29 29 0a istenbrainz-scrobbler-token)))).
6cac0 0a 0c 0a 3b 3b 2a 20 50 61 79 6c 6f 61 64 0a 3b 3b 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 20 ...;;*.Payload.;;.there.are.two.
6cae0 74 79 70 65 73 20 6f 66 20 71 75 65 72 79 3a 20 6c 69 73 74 65 6e 20 61 6e 64 20 6e 6f 77 2d 70 types.of.query:.listen.and.now-p
6cb00 6c 61 79 69 6e 67 2e 20 20 54 68 65 20 6c 61 74 74 65 72 0a 3b 3b 20 69 73 20 65 70 68 65 6d 65 laying...The.latter.;;.is.epheme
6cb20 72 61 6c 20 61 6e 64 20 64 6f 65 73 20 6e 6f 74 20 77 61 6e 74 20 74 68 65 20 6c 69 73 74 65 6e ral.and.does.not.want.the.listen
6cb40 65 64 5f 61 74 20 74 69 6d 65 73 74 61 6d 70 2e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 ed_at.timestamp...(defun.emms-li
6cb60 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 71 75 65 72 79 20 stenbrainz-scrobbler-make-query.
6cb80 28 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 0a 20 20 (track.&optional.playing-now)...
6cba0 22 43 6f 6c 6c 65 63 74 20 74 68 65 20 64 61 74 61 20 66 72 6f 6d 20 54 52 41 43 4b 2e 20 20 4e "Collect.the.data.from.TRACK...N
6cbc0 6f 20 74 69 6d 65 73 74 61 6d 70 20 77 68 65 6e 20 50 4c 41 59 49 4e 47 2d 4e 4f 57 20 69 73 20 o.timestamp.when.PLAYING-NOW.is.
6cbe0 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 72 74 69 73 74 20 28 65 6d 6d 73 2d non-nil."...(let.((artist.(emms-
6cc00 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 09 track-get.track.'info-artist))..
6cc20 28 74 69 74 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e (title.(emms-track-get.track.'in
6cc40 66 6f 2d 74 69 74 6c 65 29 29 0a 09 28 61 6c 62 75 6d 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 fo-title))..(album.(emms-track-g
6cc60 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 09 28 74 72 61 63 6b 2d 6e et.track.'info-album))..(track-n
6cc80 75 6d 62 65 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 umber.(emms-track-get.track.'inf
6cca0 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 29 29 0a 09 3b 3b 20 28 6d 75 73 69 63 62 72 61 69 6e 7a o-tracknumber))..;;.(musicbrainz
6ccc0 2d 69 64 20 22 22 29 0a 09 28 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 28 65 6d 6d 73 2d 74 72 61 -id."")..(track-length.(emms-tra
6cce0 63 6b 2d 67 65 74 20 74 72 61 63 6b 0a 09 09 09 09 20 20 20 20 20 20 27 69 6e 66 6f 2d 70 6c 61 ck-get.track...........'info-pla
6cd00 79 69 6e 67 2d 74 69 6d 65 29 29 0a 09 70 61 79 6c 6f 61 64 20 6d 65 74 61 64 61 74 61 20 65 78 ying-time))..payload.metadata.ex
6cd20 74 72 61 2d 64 61 74 61 20 64 61 74 61 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 tra-data.data).....(unless.(and.
6cd40 74 69 74 6c 65 20 61 72 74 69 73 74 29 20 28 65 72 72 6f 72 20 22 54 72 61 63 6b 20 74 69 74 6c title.artist).(error."Track.titl
6cd60 65 20 61 6e 64 20 61 72 74 69 73 74 20 6d 75 73 74 20 62 65 20 6b 6e 6f 77 6e 22 29 29 0a 20 20 e.and.artist.must.be.known"))...
6cd80 20 20 3b 3b 20 61 73 73 65 6d 62 6c 65 20 6d 65 74 61 64 61 74 61 0a 20 20 20 20 28 70 75 73 68 ..;;.assemble.metadata.....(push
6cda0 20 28 63 6f 6e 73 20 22 61 72 74 69 73 74 5f 6e 61 6d 65 22 20 28 73 75 62 73 74 72 69 6e 67 2d .(cons."artist_name".(substring-
6cdc0 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 61 72 74 69 73 74 29 29 20 6d 65 74 61 64 61 74 61 29 no-properties.artist)).metadata)
6cde0 0a 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 22 74 72 61 63 6b 5f 6e 61 6d 65 22 20 28 73 .....(push.(cons."track_name".(s
6ce00 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 74 69 74 6c 65 29 29 20 6d ubstring-no-properties.title)).m
6ce20 65 74 61 64 61 74 61 29 0a 20 20 20 20 28 77 68 65 6e 20 61 6c 62 75 6d 20 28 70 75 73 68 20 28 etadata).....(when.album.(push.(
6ce40 63 6f 6e 73 20 22 72 65 6c 65 61 73 65 5f 6e 61 6d 65 22 20 28 73 75 62 73 74 72 69 6e 67 2d 6e cons."release_name".(substring-n
6ce60 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 61 6c 62 75 6d 29 29 20 6d 65 74 61 64 61 74 61 29 29 0a o-properties.album)).metadata)).
6ce80 20 20 20 20 3b 3b 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 61 74 61 0a 20 20 20 20 28 77 68 65 6e ....;;.additional.data.....(when
6cea0 20 74 72 61 63 6b 2d 6e 75 6d 62 65 72 20 28 70 75 73 68 20 28 63 6f 6e 73 20 22 74 72 61 63 6b .track-number.(push.(cons."track
6cec0 6e 75 6d 62 65 72 22 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 72 61 63 6b 2d number".(string-to-number.track-
6cee0 6e 75 6d 62 65 72 29 29 0a 09 09 09 20 20 20 20 20 65 78 74 72 61 2d 64 61 74 61 29 29 0a 20 20 number)).........extra-data))...
6cf00 20 20 28 77 68 65 6e 20 74 72 61 63 6b 2d 6e 75 6d 62 65 72 20 28 70 75 73 68 20 28 63 6f 6e 73 ..(when.track-number.(push.(cons
6cf20 20 22 64 75 72 61 74 69 6f 6e 22 20 74 72 61 63 6b 2d 6c 65 6e 67 74 68 29 20 65 78 74 72 61 2d ."duration".track-length).extra-
6cf40 64 61 74 61 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 78 74 72 61 2d 64 61 74 61 20 28 70 75 73 data)).....(when.extra-data.(pus
6cf60 68 20 28 63 6f 6e 73 20 22 61 64 64 69 74 69 6f 6e 61 6c 5f 69 6e 66 6f 22 20 65 78 74 72 61 2d h.(cons."additional_info".extra-
6cf80 64 61 74 61 29 20 6d 65 74 61 64 61 74 61 29 29 0a 20 20 20 20 3b 3b 20 70 61 79 6c 6f 61 64 0a data).metadata)).....;;.payload.
6cfa0 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 22 74 72 61 63 6b 5f 6d 65 74 61 64 61 74 61 22 ....(push.(cons."track_metadata"
6cfc0 20 6d 65 74 61 64 61 74 61 29 20 70 61 79 6c 6f 61 64 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 .metadata).payload).....(unless.
6cfe0 70 6c 61 79 69 6e 67 2d 6e 6f 77 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 22 6c playing-now.......(push.(cons."l
6d000 69 73 74 65 6e 65 64 5f 61 74 22 0a 09 09 20 20 28 6f 72 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 istened_at".....(or.emms-listenb
6d020 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 74 72 61 63 6b 2d 70 6c 61 79 2d 73 74 61 72 74 rainz-scrobbler-track-play-start
6d040 2d 74 69 6d 65 73 74 61 6d 70 0a 09 09 20 20 20 20 20 20 28 74 69 6d 65 2d 63 6f 6e 76 65 72 74 -timestamp.........(time-convert
6d060 20 6e 69 6c 20 27 69 6e 74 65 67 65 72 29 29 29 0a 09 20 20 20 20 70 61 79 6c 6f 61 64 29 29 0a .nil.'integer)))......payload)).
6d080 20 20 20 20 3b 3b 20 74 68 65 20 77 68 6f 6c 65 20 70 61 63 6b 61 67 65 0a 20 20 20 20 28 70 75 ....;;.the.whole.package.....(pu
6d0a0 73 68 20 28 63 6f 6e 73 20 22 70 61 79 6c 6f 61 64 22 20 28 76 65 63 74 6f 72 20 70 61 79 6c 6f sh.(cons."payload".(vector.paylo
6d0c0 61 64 29 29 20 64 61 74 61 29 0a 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 22 6c 69 73 74 ad)).data).....(push.(cons."list
6d0e0 65 6e 5f 74 79 70 65 22 20 28 69 66 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 20 22 70 6c 61 79 69 6e en_type".(if.playing-now."playin
6d100 67 5f 6e 6f 77 22 20 22 73 69 6e 67 6c 65 22 29 29 20 64 61 74 61 29 0a 20 20 20 20 64 61 74 61 g_now"."single")).data).....data
6d120 29 29 0a 0a 0c 0a 3b 3b 2a 20 41 73 79 6e 63 68 72 6f 6e 6f 75 73 20 73 75 62 6d 69 73 73 69 6f ))....;;*.Asynchronous.submissio
6d140 6e 0a 0a 3b 3b 20 49 6e 20 6d 65 6d 6f 72 69 75 6d 3a 20 73 65 65 6b 20 68 6f 77 20 6d 75 63 68 n..;;.In.memorium:.seek.how.much
6d160 20 73 68 6f 72 74 65 72 2c 20 6e 65 61 74 65 72 20 61 6e 64 20 63 6f 6d 70 72 65 68 65 6e 73 69 .shorter,.neater.and.comprehensi
6d180 62 6c 65 20 74 68 69 73 20 63 6f 64 65 20 69 73 2e 0a 0a 3b 3b 20 28 64 65 66 75 6e 20 65 6d 6d ble.this.code.is...;;.(defun.emm
6d1a0 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 61 73 s-listenbrainz-scrobbler-make-as
6d1c0 79 6e 63 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 20 28 74 72 61 63 6b 20 26 6f 70 74 69 ync-submission-call.(track.&opti
6d1e0 6f 6e 61 6c 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 0a 3b 3b 20 20 20 22 53 75 62 6d 69 74 20 6c onal.playing-now).;;..."Submit.l
6d200 69 73 74 65 6e 2c 20 6f 72 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 20 69 66 20 50 4c 41 59 49 4e 47 isten,.or.playing-now.if.PLAYING
6d220 2d 4e 4f 57 20 6e 6f 6e 2d 6e 69 6c 2c 20 6f 66 20 54 52 41 43 4b 20 74 6f 20 6c 69 73 74 65 6e -NOW.non-nil,.of.TRACK.to.listen
6d240 62 72 61 69 6e 7a 2e 22 0a 3b 3b 20 20 20 28 6c 65 74 20 28 28 64 61 74 61 20 28 65 6d 6d 73 2d brainz.".;;...(let.((data.(emms-
6d260 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 71 75 65 72 listenbrainz-scrobbler-make-quer
6d280 79 20 74 72 61 63 6b 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 29 0a 3b 3b 20 09 28 74 6f 6b 65 6e y.track.playing-now)).;;..(token
6d2a0 20 28 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 67 65 .(emms-listenbrainz-scrobbler-ge
6d2c0 74 2d 74 6f 6b 65 6e 29 29 0a 3b 3b 20 09 28 74 69 74 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b t-token)).;;..(title.(emms-track
6d2e0 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 0a 3b 3b 20 20 20 20 -get.track.'info-title))).;;....
6d300 20 28 72 65 71 75 65 73 74 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f .(request.emms-listenbrainz-scro
6d320 62 62 6c 65 72 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 0a 3b 3b 20 20 20 20 20 20 20 3a 74 bbler-submission-url.;;.......:t
6d340 79 70 65 20 22 50 4f 53 54 22 0a 3b 3b 20 20 20 20 20 20 20 3a 70 61 72 73 65 72 20 27 6a 73 6f ype."POST".;;.......:parser.'jso
6d360 6e 2d 72 65 61 64 0a 3b 3b 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 73 20 60 28 28 22 43 6f 6e n-read.;;.......:headers.`(("Con
6d380 74 65 6e 74 2d 74 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 3b 20 tent-type"..."application/json;.
6d3a0 63 68 61 72 73 65 74 3d 75 74 66 2d 38 22 29 0a 3b 3b 20 09 09 20 28 22 41 75 74 68 6f 72 69 7a charset=utf-8").;;....("Authoriz
6d3c0 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 54 6f 6b 65 6e 20 22 20 74 6f 6b 65 6e ation"...,(concat."Token.".token
6d3e0 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 3a 64 61 74 61 20 28 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 ))).;;.......:data.(json-encode.
6d400 64 61 74 61 29 0a 3b 3b 20 20 20 20 20 20 20 3a 73 75 63 63 65 73 73 0a 3b 3b 20 20 20 20 20 20 data).;;.......:success.;;......
6d420 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 3b 3b 20 09 28 77 68 65 6e 20 28 61 6e .(lambda.(&rest._).;;..(when.(an
6d440 64 20 28 6e 6f 74 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 d.(not.playing-now).emms-listenb
6d460 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 73 70 6c 61 79 2d 73 75 62 6d 69 73 73 69 rainz-scrobbler-display-submissi
6d480 6f 6e 73 29 0a 3b 3b 20 09 20 20 28 6d 65 73 73 61 67 65 20 22 4c 69 73 74 65 6e 62 72 61 69 6e ons).;;....(message."Listenbrain
6d4a0 7a 3a 20 73 75 62 6d 69 74 74 65 64 20 25 73 2e 22 20 74 69 74 6c 65 29 29 29 0a 3b 3b 20 20 20 z:.submitted.%s.".title))).;;...
6d4c0 20 20 20 20 3a 65 72 72 6f 72 0a 3b 3b 20 20 20 20 20 20 20 28 63 6c 2d 66 75 6e 63 74 69 6f 6e ....:error.;;.......(cl-function
6d4e0 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 20 26 6b 65 79 20 65 72 72 6f 72 2d .(lambda.(&rest.args.&key.error-
6d500 74 68 72 6f 77 6e 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 0a 3b 3b 20 09 09 20 thrown.&allow-other-keys).;;....
6d520 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 69 73 74 65 6e 62 72 61 69 6e 7a 20 65 72 72 6f 72 ....(message."Listenbrainz.error
6d540 3a 20 25 53 20 77 68 65 6e 20 73 75 62 6d 69 74 74 69 6e 67 20 25 73 22 0a 3b 3b 20 09 09 09 20 :.%S.when.submitting.%s".;;.....
6d560 20 20 20 20 20 65 72 72 6f 72 2d 74 68 72 6f 77 6e 20 74 69 74 6c 65 29 29 29 29 29 29 0a 0a 3b .....error-thrown.title))))))..;
6d580 3b 20 77 65 20 74 72 79 20 74 6f 20 75 73 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 75 72 6c ;.we.try.to.use.the.built-in.url
6d5a0 2e 20 20 54 68 69 73 20 77 61 73 20 61 20 73 74 72 75 67 67 6c 65 20 74 6f 20 67 65 74 20 72 69 ...This.was.a.struggle.to.get.ri
6d5c0 67 68 74 0a 3b 3b 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 68 61 6e 64 6c 69 6e 67 20 ght.;;.with.respect.to.handling.
6d5e0 74 68 69 6e 67 73 20 6c 69 6b 65 20 6b 61 6e 6a 69 2e 20 20 54 68 65 20 73 6f 6c 75 74 69 6f 6e things.like.kanji...The.solution
6d600 20 69 73 20 74 6f 0a 3b 3b 20 65 6e 63 6f 64 65 20 61 62 73 6f 6c 75 74 65 6c 79 20 61 6e 79 74 .is.to.;;.encode.absolutely.anyt
6d620 68 69 6e 67 20 62 65 79 6f 6e 64 20 6c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 73 20 28 73 6f 20 hing.beyond.literal.strings.(so.
6d640 6f 75 74 70 75 74 20 6f 66 0a 3b 3b 20 63 6f 6e 63 61 74 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 output.of.;;.concat,.for.example
6d660 29 20 74 68 61 74 20 6d 69 67 68 74 20 65 6e 64 20 75 70 20 69 6e 20 74 68 65 20 72 65 71 75 65 ).that.might.end.up.in.the.reque
6d680 73 74 3a 20 6e 6f 74 20 6a 75 73 74 0a 3b 3b 20 64 61 74 61 20 62 75 74 20 68 65 61 64 65 72 73 st:.not.just.;;.data.but.headers
6d6a0 21 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f !..(defun.emms-listenbrainz-scro
6d6c0 62 62 6c 65 72 2d 6d 61 6b 65 2d 61 73 79 6e 63 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c bbler-make-async-submission-call
6d6e0 20 28 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 0a 20 .(track.&optional.playing-now)..
6d700 20 22 53 75 62 6d 69 74 20 6c 69 73 74 65 6e 2c 20 6f 72 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 20 ."Submit.listen,.or.playing-now.
6d720 69 66 20 50 4c 41 59 49 4e 47 2d 4e 4f 57 20 6e 6f 6e 2d 6e 69 6c 2c 20 6f 66 20 54 52 41 43 4b if.PLAYING-NOW.non-nil,.of.TRACK
6d740 20 74 6f 20 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 61 79 .to.listenbrainz."...(let*.((pay
6d760 6c 6f 61 64 20 28 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 load.(emms-listenbrainz-scrobble
6d780 72 2d 6d 61 6b 65 2d 71 75 65 72 79 20 74 72 61 63 6b 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 29 r-make-query.track.playing-now))
6d7a0 0a 09 20 28 74 6f 6b 65 6e 20 28 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 ...(token.(emms-listenbrainz-scr
6d7c0 6f 62 62 6c 65 72 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 09 20 28 74 6f 6b 65 6e 2d 73 74 72 69 obbler-get-token))...(token-stri
6d7e0 6e 67 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 63 6f 6e 63 61 74 ng.(encode-coding-string.(concat
6d800 20 22 54 6f 6b 65 6e 20 22 20 74 6f 6b 65 6e 29 20 27 75 74 66 2d 38 29 29 0a 09 20 28 75 72 6c ."Token.".token).'utf-8))...(url
6d820 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 0a 09 20 28 75 72 6c 2d 72 -request-method."POST")...(url-r
6d840 65 71 75 65 73 74 2d 64 61 74 61 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e equest-data.(encode-coding-strin
6d860 67 20 28 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 70 61 79 6c 6f 61 64 29 20 27 75 74 66 2d 38 29 29 g.(json-encode.payload).'utf-8))
6d880 0a 09 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 20 60 28 ...(url-request-extra-headers.`(
6d8a0 28 22 43 6f 6e 74 65 6e 74 2d 74 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a ("Content-type"..."application/j
6d8c0 73 6f 6e 3b 20 63 68 61 72 73 65 74 3d 75 74 66 2d 38 22 29 0a 09 09 09 09 20 20 20 20 20 20 28 son;.charset=utf-8")...........(
6d8e0 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 "Authorization"...,token-string)
6d900 29 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 ))).....(ignore.url-request-meth
6d920 6f 64 0a 09 20 20 20 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 0a 09 20 20 20 20 75 72 od......url-request-data......ur
6d940 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 28 75 72 l-request-extra-headers).....(ur
6d960 6c 2d 72 65 74 72 69 65 76 65 0a 20 20 20 20 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e l-retrieve......emms-listenbrain
6d980 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 0a 20 20 20 20 20 z-scrobbler-submission-url......
6d9a0 23 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 75 #'emms-listenbrainz-scrobbler-su
6d9c0 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f bmission-callback......(list.(co
6d9e0 6e 73 20 74 72 61 63 6b 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 29 29 29 29 0a 0a 28 64 65 66 75 ns.track.playing-now)))))..(defu
6da00 6e 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 75 n.emms-listenbrainz-scrobbler-su
6da20 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 62 61 63 6b 20 28 73 74 61 74 75 73 20 26 6f 70 74 69 6f bmission-callback.(status.&optio
6da40 6e 61 6c 20 63 62 61 72 67 73 29 0a 20 20 22 43 61 6c 6c 62 61 63 6b 20 74 6f 20 68 61 6e 64 6c nal.cbargs)..."Callback.to.handl
6da60 65 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 6c 69 73 74 65 6e 62 72 61 69 6e 7a 20 73 65 72 e.response.from.listenbrainz.ser
6da80 76 65 72 2e 0a 0a 49 67 6e 6f 72 65 20 53 54 41 54 55 53 20 61 72 67 75 6d 65 6e 74 20 61 6e 64 ver...Ignore.STATUS.argument.and
6daa0 20 73 74 6f 72 65 20 73 75 62 6d 69 73 73 69 6f 6e 20 64 61 74 61 20 69 6e 20 43 42 41 52 47 53 .store.submission.data.in.CBARGS
6dac0 2e 22 0a 20 20 28 69 67 6e 6f 72 65 20 73 74 61 74 75 73 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 ."...(ignore.status)...(when.(<.
6dae0 28 70 6f 69 6e 74 2d 6d 61 78 29 20 31 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 72 65 (point-max).1).....(error."No.re
6db00 73 70 6f 6e 73 65 20 66 72 6f 6d 20 73 75 62 6d 69 73 73 69 6f 6e 20 73 65 72 76 65 72 22 29 29 sponse.from.submission.server"))
6db20 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 20 29 29 0a 20 20 28 6c ...(goto-char.(point-min.))...(l
6db40 65 74 2a 20 28 28 72 65 73 70 6f 6e 73 65 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 09 09 et*.((response.(ignore-errors...
6db60 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 6e 5c 6e 22 29 0a .....(re-search-forward."\n\n").
6db80 09 09 20 20 20 20 20 28 6a 73 6f 6e 2d 72 65 61 64 29 29 29 0a 09 20 28 74 72 61 63 6b 20 28 63 .......(json-read)))...(track.(c
6dba0 61 72 20 63 62 61 72 67 73 29 29 0a 09 20 28 70 6c 61 79 69 6e 67 2d 6e 6f 77 20 28 63 64 72 20 ar.cbargs))...(playing-now.(cdr.
6dbc0 63 62 61 72 67 73 29 29 0a 09 20 28 74 69 74 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 cbargs))...(title.(emms-track-ge
6dbe0 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 t.track.'info-title))).....(cond
6dc00 20 28 28 73 74 72 69 6e 67 3d 20 22 6f 6b 22 20 28 61 6c 69 73 74 2d 67 65 74 20 27 73 74 61 74 .((string=."ok".(alist-get.'stat
6dc20 75 73 20 72 65 73 70 6f 6e 73 65 29 29 0a 09 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f us.response)).....(when.(and.(no
6dc40 74 20 70 6c 61 79 69 6e 67 2d 6e 6f 77 29 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a t.playing-now).emms-listenbrainz
6dc60 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 73 70 6c 61 79 2d 73 75 62 6d 69 73 73 69 6f 6e 73 29 0a -scrobbler-display-submissions).
6dc80 09 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 69 73 74 65 6e 62 72 61 69 6e 7a 3a 20 73 75 ......(message."Listenbrainz:.su
6dca0 62 6d 69 74 74 65 64 20 25 73 2e 22 20 74 69 74 6c 65 29 29 0a 09 20 20 20 3b 3b 20 74 69 64 79 bmitted.%s.".title)).....;;.tidy
6dcc0 20 75 70 0a 09 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 0a 09 20 20 28 28 61 73 73 6f .up.....(kill-buffer))....((asso
6dce0 63 20 27 65 72 72 6f 72 20 72 65 73 70 6f 6e 73 65 29 0a 09 20 20 20 28 6d 65 73 73 61 67 65 20 c.'error.response).....(message.
6dd00 22 4c 69 73 74 65 6e 62 72 61 69 6e 7a 20 65 72 72 6f 72 3a 20 25 73 20 77 68 69 6c 65 20 73 75 "Listenbrainz.error:.%s.while.su
6dd20 62 6d 69 74 74 69 6e 67 20 25 73 22 0a 09 09 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 bmitting.%s".......(alist-get.'e
6dd40 72 72 6f 72 20 72 65 73 70 6f 6e 73 65 29 0a 09 09 20 20 20 20 74 69 74 6c 65 29 29 0a 09 20 20 rror.response).......title))....
6dd60 28 74 20 28 65 72 72 6f 72 20 22 4c 69 73 74 65 6e 62 72 61 69 6e 7a 3a 20 75 6e 68 61 6e 64 6c (t.(error."Listenbrainz:.unhandl
6dd80 65 64 20 65 72 72 6f 72 20 77 68 69 6c 65 20 73 75 62 6d 69 74 74 69 6e 67 20 25 73 22 20 74 69 ed.error.while.submitting.%s".ti
6dda0 74 6c 65 29 29 29 29 29 0a 0a 0c 0a 3b 3b 2a 20 48 6f 6f 6b 73 0a 0a 28 64 65 66 75 6e 20 65 6d tle)))))....;;*.Hooks..(defun.em
6ddc0 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 61 72 74 2d ms-listenbrainz-scrobbler-start-
6dde0 68 6f 6f 6b 20 28 29 0a 20 20 22 52 65 63 6f 72 64 20 74 72 61 63 6b 20 73 74 61 72 74 20 74 69 hook.()..."Record.track.start.ti
6de00 6d 65 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 me."...(setq.emms-listenbrainz-s
6de20 63 72 6f 62 62 6c 65 72 2d 74 72 61 63 6b 2d 70 6c 61 79 2d 73 74 61 72 74 2d 74 69 6d 65 73 74 crobbler-track-play-start-timest
6de40 61 6d 70 0a 09 28 74 69 6d 65 2d 63 6f 6e 76 65 72 74 20 6e 69 6c 20 27 69 6e 74 65 67 65 72 29 amp..(time-convert.nil.'integer)
6de60 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d )...(let*.((current-track.(emms-
6de80 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 playlist-current-selected-track)
6dea0 29 0a 09 20 28 67 6f 6f 64 2d 74 6f 2d 73 75 62 6d 69 74 20 28 65 71 20 28 65 6d 6d 73 2d 74 72 )...(good-to-submit.(eq.(emms-tr
6dec0 61 63 6b 2d 74 79 70 65 20 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 29 20 27 66 69 6c 65 29 29 29 ack-type.current-track).'file)))
6dee0 0a 20 20 20 20 28 77 68 65 6e 20 67 6f 6f 64 2d 74 6f 2d 73 75 62 6d 69 74 0a 20 20 20 20 20 20 .....(when.good-to-submit.......
6df00 28 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b (emms-listenbrainz-scrobbler-mak
6df20 65 2d 61 73 79 6e 63 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 0a 20 20 20 20 20 20 20 63 e-async-submission-call........c
6df40 75 72 72 65 6e 74 2d 74 72 61 63 6b 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d urrent-track.t))))..(defun.emms-
6df60 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b listenbrainz-scrobbler-stop-hook
6df80 20 28 29 0a 20 20 22 53 75 62 6d 69 74 20 74 68 65 20 74 72 61 63 6b 20 74 6f 20 6c 69 73 74 65 .()..."Submit.the.track.to.liste
6dfa0 6e 62 72 61 69 6e 7a 20 69 66 20 77 65 20 68 61 76 65 20 6c 69 73 74 65 6e 65 64 20 6c 6f 6e 67 nbrainz.if.we.have.listened.long
6dfc0 20 65 6e 6f 75 67 68 2e 0a 0a 54 68 61 74 20 69 73 2c 20 69 66 20 69 74 20 68 61 73 20 62 65 65 .enough...That.is,.if.it.has.bee
6dfe0 6e 20 70 6c 61 79 65 64 20 66 6f 72 20 32 34 30 20 73 65 63 6f 6e 64 73 20 6f 72 20 68 61 6c 66 n.played.for.240.seconds.or.half
6e000 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 74 72 61 63 6b 2e 22 0a 20 20 28 6c 65 .the.length.of.the.track."...(le
6e020 74 20 28 28 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 t.((current-track.(emms-playlist
6e040 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 -current-selected-track))).....(
6e060 6c 65 74 20 28 28 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 let.((track-length.(emms-track-g
6e080 65 74 20 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 et.current-track.'info-playing-t
6e0a0 69 6d 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 74 72 61 63 6b 2d 6c 65 ime))).......(when.(and.track-le
6e0c0 6e 67 74 68 0a 09 09 20 3b 3b 20 6f 6e 6c 79 20 73 75 62 6d 69 74 20 66 69 6c 65 73 0a 09 09 20 ngth....;;.only.submit.files....
6e0e0 28 65 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 63 75 72 72 65 6e 74 2d 74 72 61 (eq.(emms-track-type.current-tra
6e100 63 6b 29 20 27 66 69 6c 65 29 29 0a 09 28 77 68 65 6e 20 28 61 6e 64 0a 09 20 20 20 20 20 20 20 ck).'file))..(when.(and.........
6e120 3b 3b 20 74 72 61 63 6b 20 6d 75 73 74 20 62 65 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 33 30 20 ;;.track.must.be.longer.than.30.
6e140 73 65 63 73 0a 09 20 20 20 20 20 20 20 28 3e 20 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 33 30 29 secs.........(>.track-length.30)
6e160 0a 09 20 20 20 20 20 20 20 3b 3b 20 74 72 61 63 6b 20 6d 75 73 74 20 62 65 20 70 6c 61 79 65 64 .........;;.track.must.be.played
6e180 20 66 6f 72 20 6d 6f 72 65 20 74 68 61 6e 20 32 34 30 20 73 65 63 73 20 6f 72 0a 09 20 20 20 20 .for.more.than.240.secs.or......
6e1a0 20 20 20 3b 3b 20 20 20 68 61 6c 66 20 74 68 65 20 74 72 61 63 6b 73 20 6c 65 6e 67 74 68 2c 20 ...;;...half.the.tracks.length,.
6e1c0 77 68 69 63 68 65 76 65 72 20 63 6f 6d 65 73 20 66 69 72 73 74 2e 0a 09 20 20 20 20 20 20 20 28 whichever.comes.first..........(
6e1e0 3e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 28 6d 69 6e 20 32 34 30 20 28 2f 20 >.emms-playing-time.(min.240.(/.
6e200 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 32 29 29 29 29 0a 09 20 20 28 65 6d 6d 73 2d 6c 69 73 74 track-length.2))))....(emms-list
6e220 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 61 73 79 6e 63 2d 73 75 enbrainz-scrobbler-make-async-su
6e240 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 0a 09 20 20 20 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 29 bmission-call.....current-track)
6e260 29 29 29 29 29 0a 0a 0c 0a 3b 3b 2a 20 45 6e 74 72 79 20 70 6f 69 6e 74 73 0a 28 64 65 66 75 6e )))))....;;*.Entry.points.(defun
6e280 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 .emms-listenbrainz-scrobbler-ena
6e2a0 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 74 68 65 20 73 63 72 6f 62 62 6c 65 72 20 61 ble.()..."Enable.the.scrobbler.a
6e2c0 6e 64 20 73 75 62 6d 69 74 20 70 6c 61 79 65 64 20 74 72 61 63 6b 73 2e 22 0a 20 20 28 69 6e 74 nd.submit.played.tracks."...(int
6e2e0 65 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 63 68 65 63 6b 20 77 65 20 68 61 76 65 20 63 72 65 eractive)...;;.check.we.have.cre
6e300 64 65 6e 74 69 61 6c 73 0a 20 20 28 69 66 20 28 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e dentials...(if.(emms-listenbrain
6e320 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 75 6e z-scrobbler-get-token).......(un
6e340 6c 65 73 73 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 less.emms-listenbrainz-scrobbler
6e360 2d 72 75 6e 6e 69 6e 67 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 -running..(add-hook.'emms-player
6e380 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 0a 09 09 20 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 -started-hook.....'emms-listenbr
6e3a0 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 61 72 74 2d 68 6f 6f 6b 20 74 29 0a 09 28 61 ainz-scrobbler-start-hook.t)..(a
6e3c0 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f dd-hook.'emms-player-stopped-hoo
6e3e0 6b 0a 09 09 20 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c k.....'emms-listenbrainz-scrobbl
6e400 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 er-stop-hook)..(add-hook.'emms-p
6e420 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 0a 09 09 20 20 27 65 6d 6d 73 2d 6c 69 layer-finished-hook.....'emms-li
6e440 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 29 0a stenbrainz-scrobbler-stop-hook).
6e460 09 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c .(setq.emms-listenbrainz-scrobbl
6e480 65 72 2d 72 75 6e 6e 69 6e 67 20 74 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4c 69 73 74 65 er-running.t)).....(error."Liste
6e4a0 6e 62 72 61 69 6e 7a 20 73 63 72 6f 62 62 6c 65 72 3a 20 6e 6f 20 75 73 65 72 20 74 6f 6b 65 6e nbrainz.scrobbler:.no.user.token
6e4c0 2e 20 20 50 6c 65 61 73 65 20 73 75 70 70 6c 79 20 61 6e 64 20 74 72 79 20 61 67 61 69 6e 22 29 ...Please.supply.and.try.again")
6e4e0 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 ))..(defun.emms-listenbrainz-scr
6e500 6f 62 62 6c 65 72 2d 64 69 73 61 62 6c 65 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 74 68 65 obbler-disable.()..."Disable.the
6e520 20 73 63 72 6f 62 62 6c 65 72 20 61 6e 64 20 64 6f 6e 27 74 20 73 75 62 6d 69 74 20 70 6c 61 79 .scrobbler.and.don't.submit.play
6e540 65 64 20 74 72 61 63 6b 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 ed.tracks."...(interactive)...(w
6e560 68 65 6e 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d hen.emms-listenbrainz-scrobbler-
6e580 72 75 6e 6e 69 6e 67 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 running.....(remove-hook.'emms-p
6e5a0 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 0a 09 09 20 27 65 6d 6d 73 2d 6c 69 73 74 layer-started-hook....'emms-list
6e5c0 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 61 72 74 2d 68 6f 6f 6b 29 0a 20 enbrainz-scrobbler-start-hook)..
6e5e0 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f ...(remove-hook.'emms-player-sto
6e600 70 70 65 64 2d 68 6f 6f 6b 0a 09 09 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d pped-hook....'emms-listenbrainz-
6e620 73 63 72 6f 62 62 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 scrobbler-stop-hook).....(remove
6e640 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b -hook.'emms-player-finished-hook
6e660 0a 09 09 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 ....'emms-listenbrainz-scrobbler
6e680 2d 73 74 6f 70 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 73 74 65 -stop-hook).....(setq.emms-liste
6e6a0 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 72 75 6e 6e 69 6e 67 20 6e 69 6c 29 29 29 nbrainz-scrobbler-running.nil)))
6e6c0 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 ...(provide.'emms-listenbrainz-s
6e6e0 63 72 6f 62 62 6c 65 72 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d crobbler).;;;.emms-listenbrainz-
6e700 73 63 72 6f 62 62 6c 65 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 scrobbler.el.ends.here..........
6e720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2e 65 6c 00 00 emms-24/emms-mode-line-icon.el..
6e820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
6e880 30 30 30 35 31 32 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 36 34 00 20 30 00 00 00 0005125.00000000000.014764..0...
6e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
6e920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
6e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ea00 3b 3b 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2e 65 6c 20 2d 2d 2d 20 73 68 ;;.emms-mode-line-icon.el.---.sh
6ea20 6f 77 20 61 6e 20 69 63 6f 6e 20 69 6e 20 74 68 65 20 45 6d 61 63 73 20 6d 6f 64 65 2d 6c 69 6e ow.an.icon.in.the.Emacs.mode-lin
6ea40 65 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a e..-*-.lexical-binding:.t;.-*-..
6ea60 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 30 32 31 20 20 46 72 65 65 ;;.Copyright.(C).2006-2021..Free
6ea80 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 56 .Software.Foundation,.Inc...;;.V
6eaa0 65 72 73 69 6f 6e 3a 20 31 2e 31 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 0a 0a 3b ersion:.1.1.;;.Keywords:.emms..;
6eac0 3b 20 41 75 74 68 6f 72 3a 20 44 61 6e 69 65 6c 20 42 72 6f 63 6b 6d 61 6e 20 3c 64 61 6e 69 65 ;.Author:.Daniel.Brockman.<danie
6eae0 6c 40 62 72 6f 63 6b 6d 61 6e 2e 73 65 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72 3a 20 4c 75 l@brockman.se>.;;.Maintainer:.Lu
6eb00 63 61 73 20 42 6f 6e 6e 65 74 20 3c 6c 75 63 61 73 40 72 69 6e 63 65 76 65 6e 74 2e 6e 65 74 3e cas.Bonnet.<lucas@rincevent.net>
6eb20 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a ..;;.This.file.is.part.of.EMMS..
6eb40 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 .;;.EMMS.is.free.software;.you.c
6eb60 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 an.redistribute.it.and/or.;;.mod
6eb80 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e ify.it.under.the.terms.of.the.GN
6eba0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 70 U.General.Public.License.;;.as.p
6ebc0 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f ublished.by.the.Free.Software.Fo
6ebe0 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f 66 undation;.either.version.3.;;.of
6ec00 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e .the.License,.or.(at.your.option
6ec20 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 ).any.later.version...;;.EMMS.is
6ec40 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 .distributed.in.the.hope.that.it
6ec60 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 .will.be.useful,.;;.but.WITHOUT.
6ec80 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 ANY.WARRANTY;.without.even.the.i
6eca0 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 mplied.warranty.of.;;.MERCHANTAB
6ecc0 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 ILITY.or.FITNESS.FOR.A.PARTICULA
6ece0 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 R.PURPOSE...See.the.;;.GNU.Gener
6ed00 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 al.Public.License.for.more.detai
6ed20 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 ls...;;.You.should.have.received
6ed40 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 .a.copy.of.the.GNU.General.Publi
6ed60 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 c.License.;;.along.with.EMMS;.if
6ed80 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 .not,.write.to.the.Free.Software
6eda0 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 .Foundation,.;;.Inc.,.51.Frankli
6edc0 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 n.St,.Fifth.Floor,.Boston,.MA.02
6ede0 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 20 0a 110-1301,.USA...;;.Commentary:..
6ee00 0a 3b 3b 20 54 68 69 73 20 45 4d 4d 53 20 65 78 74 65 6e 73 69 6f 6e 20 73 68 6f 77 73 20 61 6e .;;.This.EMMS.extension.shows.an
6ee20 20 69 63 6f 6e 20 69 6e 20 74 68 65 20 6d 6f 64 65 2d 6c 69 6e 65 20 6e 65 78 74 20 74 6f 20 74 .icon.in.the.mode-line.next.to.t
6ee40 68 65 0a 3b 3b 20 69 6e 66 6f 2d 74 61 67 2e 0a 0a 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 he.;;.info-tag...;;.Code:..(requ
6ee60 69 72 65 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 ire.'emms-mode-line)...(defvar.e
6ee80 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 65 6e 61 62 6c 65 64 2d 70 20 74 0a 20 mms-mode-line-icon-enabled-p.t..
6eea0 20 22 44 69 73 61 62 6c 65 20 69 63 6f 6e 20 64 69 73 70 6c 61 79 20 77 68 65 6e 20 4e 49 4c 2e ."Disable.icon.display.when.NIL.
6eec0 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d ")..(defvar.emms-mode-line-icon-
6eee0 63 6f 6c 6f 72 20 22 62 6c 61 63 6b 22 0a 20 20 22 43 6f 6c 6f 72 20 6f 66 20 74 68 65 20 6c 69 color."black"..."Color.of.the.li
6ef00 74 74 6c 65 20 69 63 6f 6e 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 6d 6f 64 65 2d ttle.icon.displayed.in.the.mode-
6ef20 6c 69 6e 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d line.")..(defvar.emms-mode-line-
6ef40 69 63 6f 6e 2d 62 65 66 6f 72 65 2d 66 6f 72 6d 61 74 20 22 22 0a 20 20 22 53 74 72 69 6e 67 20 icon-before-format.""..."String.
6ef60 74 6f 20 70 75 74 20 62 65 66 6f 72 65 20 74 68 65 20 69 63 6f 6e 2c 20 69 6e 20 74 68 65 20 6d to.put.before.the.icon,.in.the.m
6ef80 6f 64 65 2d 6c 69 6e 65 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 77 61 ode-line..For.example,.if.you.wa
6efa0 6e 74 20 74 6f 20 68 61 76 65 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 3a 0a 5c 5b 20 3c nt.to.have.something.like.:.\[.<
6efc0 69 63 6f 6e 3e 20 46 6f 6f 20 2d 20 54 68 65 20 46 6f 6f 20 53 6f 6e 67 20 5d 0a 59 6f 75 20 73 icon>.Foo.-.The.Foo.Song.].You.s
6efe0 68 6f 75 6c 64 20 73 65 74 20 69 74 20 74 6f 20 5c 22 5b 5c 22 2c 20 61 6e 64 20 73 65 74 20 65 hould.set.it.to.\"[\",.and.set.e
6f000 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 74 6f 20 5c 22 25 73 20 5d 5c 22 mms-mode-line-format.to.\"%s.]\"
6f020 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 67 ")..(defun.emms-mode-line-icon-g
6f040 65 6e 65 72 61 74 65 20 28 63 6f 6c 6f 72 29 0a 20 20 20 60 28 69 6d 61 67 65 20 3a 74 79 70 65 enerate.(color)....`(image.:type
6f060 20 78 70 6d 20 3a 61 73 63 65 6e 74 20 63 65 6e 74 65 72 20 3a 64 61 74 61 20 2c 28 63 6f 6e 63 .xpm.:ascent.center.:data.,(conc
6f080 61 74 20 22 2f 2a 20 58 50 4d 20 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20 2a 6e 6f 74 65 5b at."/*.XPM.*/.static.char.*note[
6f0a0 5d 20 3d 20 7b 0a 2f 2a 20 77 69 64 74 68 20 68 65 69 67 68 74 20 6e 75 6d 5f 63 6f 6c 6f 72 73 ].=.{./*.width.height.num_colors
6f0c0 20 63 68 61 72 73 5f 70 65 72 5f 70 69 78 65 6c 20 2a 2f 0a 5c 22 20 20 20 20 31 30 20 20 20 31 .chars_per_pixel.*/.\"....10...1
6f0e0 31 20 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 20 20 20 20 20 31 5c 22 2c 0a 2f 2a 20 63 6f 1........2............1\",./*.co
6f100 6c 6f 72 73 20 2a 2f 0a 5c 22 2e 20 63 20 22 20 63 6f 6c 6f 72 20 20 22 5c 22 2c 0a 5c 22 23 20 lors.*/.\"..c.".color.."\",.\"#.
6f120 63 20 4e 6f 6e 65 20 73 20 4e 6f 6e 65 5c 22 2c 0a 2f 2a 20 70 69 78 65 6c 73 20 2a 2f 0a 5c 22 c.None.s.None\",./*.pixels.*/.\"
6f140 23 23 23 2e 2e 2e 23 23 23 23 5c 22 2c 0a 5c 22 23 23 23 2e 23 2e 2e 2e 23 23 5c 22 2c 0a 5c 22 ###...####\",.\"###.#...##\",.\"
6f160 23 23 23 2e 23 23 23 2e 2e 2e 5c 22 2c 0a 5c 22 23 23 23 2e 23 23 23 23 23 2e 5c 22 2c 0a 5c 22 ###.###...\",.\"###.#####.\",.\"
6f180 23 23 23 2e 23 23 23 23 23 2e 5c 22 2c 0a 5c 22 23 2e 2e 2e 23 23 23 23 23 2e 5c 22 2c 0a 5c 22 ###.#####.\",.\"#...#####.\",.\"
6f1a0 2e 2e 2e 2e 23 23 23 23 23 2e 5c 22 2c 0a 5c 22 23 2e 2e 23 23 23 23 23 23 2e 5c 22 2c 0a 5c 22 ....#####.\",.\"#..######.\",.\"
6f1c0 23 23 23 23 23 23 23 2e 2e 2e 5c 22 2c 0a 5c 22 23 23 23 23 23 23 2e 2e 2e 2e 5c 22 2c 0a 5c 22 #######...\",.\"######....\",.\"
6f1e0 23 23 23 23 23 23 23 2e 2e 23 5c 22 7d 3b 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d #######..#\"};")))..(defun.emms-
6f200 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 28 69 66 mode-line-icon-function.()...(if
6f220 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 65 6e 61 62 6c 65 64 2d 70 0a 20 .emms-mode-line-icon-enabled-p..
6f240 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 .....(concat."."...............e
6f260 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 62 65 66 6f 72 65 2d 66 6f 72 6d 61 74 mms-mode-line-icon-before-format
6f280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 69 7a 65 20 ...............(emms-propertize.
6f2a0 22 4e 50 3a 22 20 27 64 69 73 70 6c 61 79 0a 09 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d "NP:".'display...........(emms-m
6f2c0 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 67 65 6e 65 72 61 74 65 0a 09 09 09 09 65 6d 6d 73 2d ode-line-icon-generate.....emms-
6f2e0 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 63 6f 6c 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 mode-line-icon-color))..........
6f300 20 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 70 6c 61 79 6c 69 73 74 2d 63 75 .....(emms-mode-line-playlist-cu
6f320 72 72 65 6e 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 70 6c 61 79 rrent)).....(emms-mode-line-play
6f340 6c 69 73 74 2d 63 75 72 72 65 6e 74 29 29 29 0a 0a 28 73 65 74 71 20 65 6d 6d 73 2d 6d 6f 64 65 list-current)))..(setq.emms-mode
6f360 2d 6c 69 6e 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d -line-mode-line-function.#'emms-
6f380 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 3b 3b 20 54 68 69 mode-line-icon-function)..;;.Thi
6f3a0 73 20 69 73 20 6e 65 65 64 65 64 20 66 6f 72 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 s.is.needed.for.text.properties.
6f3c0 74 6f 20 77 6f 72 6b 20 69 6e 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 0a 28 70 75 74 20 27 to.work.in.the.mode.line..(put.'
6f3e0 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 27 72 69 73 6b 79 2d 6c 6f 63 emms-mode-line-string.'risky-loc
6f400 61 6c 2d 76 61 72 69 61 62 6c 65 20 74 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6d al-variable.t)..(provide.'emms-m
6f420 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e ode-line-icon).;;;.emms-mode-lin
6f440 65 2d 69 63 6f 6e 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 e-icone.el.ends.here............
6f460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2e 65 6c 00 00 00 emms-24/emms-idapi-browser.el...
6f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
6f680 30 30 32 32 31 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 32 37 00 20 30 00 00 00 0022130.00000000000.014727..0...
6f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
6f720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
6f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6f800 3b 3b 3b 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2e 65 6c 20 2d 2d 2d 20 45 4d ;;;.emms-idapi-browser.el.---.EM
6f820 4d 53 20 4d 75 73 69 63 20 49 44 20 41 50 49 20 73 75 70 70 6f 72 74 20 20 2d 2a 2d 20 6c 65 78 MS.Music.ID.API.support..-*-.lex
6f840 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 3b 3b 0a 0a 3b 3b 20 43 6f 70 79 ical-binding:.t;.-*-.;;..;;.Copy
6f860 72 69 67 68 74 20 28 43 29 20 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 right.(C).2024.Free.Software.Fou
6f880 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 ndation,.Inc...;;.Author:.Yoni.R
6f8a0 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c abkin.<yrk@gnu.org>..;;.This.fil
6f8c0 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 e.is.part.of.EMMS...;;.EMMS.is.f
6f8e0 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 ree.software;.you.can.redistribu
6f900 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 te.it.and/or.modify.it.;;.under.
6f920 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 the.terms.of.the.GNU.General.Pub
6f940 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 lic.License.as.published.by.;;.t
6f960 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 he.Free.Software.Foundation;.eit
6f980 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f her.version.3,.or.(at.your.optio
6f9a0 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d n).;;.any.later.version...;;.EMM
6f9c0 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 S.is.distributed.in.the.hope.tha
6f9e0 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 t.it.will.be.useful,.but.WITHOUT
6fa00 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 .;;.ANY.WARRANTY;.without.even.t
6fa20 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 he.implied.warranty.of.MERCHANTA
6fa40 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 BILITY.;;.or.FITNESS.FOR.A.PARTI
6fa60 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 CULAR.PURPOSE...See.the.GNU.Gene
6fa80 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 ral.Public.;;.License.for.more.d
6faa0 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 etails...;;.You.should.have.rece
6fac0 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
6fae0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 ublic.License.;;.along.with.EMMS
6fb00 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 ;.see.the.file.COPYING..If.not,.
6fb20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f write.to.the.Free.;;.Software.Fo
6fb40 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 undation,.Inc.,.51.Franklin.Stre
6fb60 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 et,.Fifth.Floor,.Boston,.;;.MA.0
6fb80 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 2110-1301,.USA....;;;.Commentary
6fba0 3a 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 :.;;..(defvar.emms-idapi-browser
6fbc0 2d 64 65 62 75 67 2d 6e 61 6d 65 0a 20 20 22 20 2a 45 6d 6d 73 20 53 65 61 72 63 68 20 44 65 62 -debug-name...".*Emms.Search.Deb
6fbe0 75 67 20 42 72 6f 77 73 65 72 2a 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 61 72 ug.Browser*"..."Name.of.the.sear
6fc00 63 68 20 62 72 6f 77 73 65 72 20 64 65 62 75 67 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 76 ch.browser.debug.buffer")..(defv
6fc20 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 64 65 62 75 67 2d 62 75 66 66 ar.emms-idapi-browser-debug-buff
6fc40 65 72 0a 20 20 6e 69 6c 0a 20 20 22 53 65 61 72 63 68 20 62 72 6f 77 73 65 72 20 64 65 62 75 67 er...nil..."Search.browser.debug
6fc60 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 .buffer")..(defvar.emms-idapi-br
6fc80 6f 77 73 65 72 2d 6e 61 6d 65 0a 20 20 22 45 6d 6d 73 20 53 65 61 72 63 68 20 42 72 6f 77 73 65 owser-name..."Emms.Search.Browse
6fca0 72 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 74 68 65 20 73 65 61 72 63 68 20 62 72 6f 77 73 65 72 r"..."Name.of.the.search.browser
6fcc0 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 .buffer")..(defvar.emms-idapi-br
6fce0 6f 77 73 65 72 2d 62 75 66 66 65 72 0a 20 20 6e 69 6c 0a 20 20 22 53 65 61 72 63 68 20 62 72 6f owser-buffer...nil..."Search.bro
6fd00 77 73 65 72 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 wser.buffer")..(defvar.emms-idap
6fd20 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 45 6d 6d 73 20 i-browser-mode-hook.nil..."Emms.
6fd40 73 65 61 72 63 68 20 62 72 6f 77 73 65 72 20 6d 6f 64 65 20 68 6f 6f 6b 2e 22 29 0a 0a 28 64 65 search.browser.mode.hook.")..(de
6fd60 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 2d 61 6c fvar.emms-idapi-browser-field-al
6fd80 69 73 74 0a 20 20 27 28 28 22 61 72 74 69 73 74 22 20 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 ist...'(("artist"...info-artist)
6fda0 0a 20 20 20 20 28 22 61 6c 62 75 6d 22 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 .....("album"....info-album)....
6fdc0 20 28 22 74 72 61 63 6b 22 20 20 2e 20 69 6e 66 6f 2d 74 69 74 6c 65 29 29 0a 20 20 22 41 73 73 .("track"....info-title))..."Ass
6fde0 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 20 6f 66 20 72 65 61 64 61 62 6c 65 20 66 69 65 6c 64 73 ociation.list.of.readable.fields
6fe00 20 61 6e 64 20 74 72 61 63 6b 20 70 72 6f 70 65 72 74 69 65 73 2e 22 29 0a 0a 3b 3b 3b 20 43 6f .and.track.properties.")..;;;.Co
6fe20 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 29 0a 0a 0a 3b 3b 3b 20 de:.(require.'emms-idapi)...;;;.
6fe40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6fe60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6fe80 2d 2d 0a 3b 3b 3b 20 53 65 61 72 63 68 20 4d 6f 64 65 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d --.;;;.Search.Mode.;;;.---------
6fea0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6fec0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e -------------------------.(defun
6fee0 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 62 75 66 66 65 72 20 28 .emms-idapi-browser-get-buffer.(
6ff00 29 0a 20 20 22 47 65 74 2f 63 72 65 61 74 65 20 61 6e 64 20 72 65 74 75 72 6e 20 60 65 6d 6d 73 )..."Get/create.and.return.`emms
6ff20 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 2e 22 0a 20 20 -idapi-browser-mode'.buffer."...
6ff40 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 (when.(or.(not.emms-idapi-browse
6ff60 72 2d 62 75 66 66 65 72 29 0a 09 20 20 20 20 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 r-buffer)......(not.(buffer-live
6ff80 2d 70 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 65 72 29 29 29 0a -p.emms-idapi-browser-buffer))).
6ffa0 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 ....(with-current-buffer.(get-bu
6ffc0 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6e ffer-create.emms-idapi-browser-n
6ffe0 61 6d 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 6d 61 6a ame).......(when.(not.(equal.maj
70000 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 or-mode.'emms-idapi-browser-mode
70020 29 29 0a 09 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 29 29 29 29 ))..(emms-idapi-browser-mode))))
70040 0a 20 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 65 72 29 0a 0a 28 ...emms-idapi-browser-buffer)..(
70060 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 6d defvar.emms-idapi-browser-mode-m
70080 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 ap...(let.((map.(make-sparse-key
700a0 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 map))).....(define-key.map.(kbd.
700c0 22 71 22 29 20 23 27 62 75 72 79 2d 62 75 66 66 65 72 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 "q").#'bury-buffer).....map)..."
700e0 4b 65 79 6d 61 70 20 66 6f 72 20 60 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d Keymap.for.`emms-idapi-browser-m
70100 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 ode'.")..(defun.emms-idapi-brows
70120 65 72 2d 6d 6f 64 65 20 28 29 0a 20 20 22 41 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 74 er-mode.()..."A.major.mode.for.t
70140 68 65 20 45 6d 6d 73 20 73 65 61 72 63 68 20 62 72 6f 77 73 65 72 2e 0a 5c 5c 7b 65 6d 6d 73 2d he.Emms.search.browser..\\{emms-
70160 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 28 69 6e 74 65 idapi-browser-mode-map}"...(inte
70180 72 61 63 74 69 76 65 29 0a 0a 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 65 6d 6d 73 2d ractive)....(use-local-map.emms-
701a0 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 6d 61 70 29 0a 0a 20 20 28 73 65 74 71 idapi-browser-mode-map)....(setq
701c0 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d .major-mode.'emms-idapi-browser-
701e0 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 6d 6f 64 65 2d 6e 61 6d 65 20 22 45 6d 6d 73 2d 53 65 61 mode.........mode-name."Emms-Sea
70200 72 63 68 2d 42 72 6f 77 73 65 72 22 0a 09 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 rch-Browser"..buffer-read-only.t
70220 0a 09 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 62 75 66 66 65 72 20 28 63 75 72 ..emms-idapi-browser-buffer.(cur
70240 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d rent-buffer))....(run-hooks.'emm
70260 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 29 29 0a 0a 0a 3b 3b s-idapi-browser-mode-hook))...;;
70280 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.------------------------------
702a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
702c0 2d 2d 2d 2d 0a 3b 3b 3b 20 43 61 6c 6c 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----.;;;.Call.;;;.--------------
702e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
70300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 --------------------.(defun.emms
70320 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 74 72 61 63 6b 2d 61 74 20 28 29 0a 20 20 22 52 65 -idapi-browser-track-at.()..."Re
70340 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e turn.a.copy.of.the.track.at.poin
70360 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f 72 69 67 69 6e 69 61 6c 2d 74 72 61 63 6b 20 28 65 t."...(let*.((originial-track.(e
70380 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a mms-playlist-track-at.(point))).
703a0 09 20 28 74 72 61 63 6b 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 6f 72 69 67 69 6e 69 61 ..(track.(copy-sequence.originia
703c0 6c 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 6d 6d 73 2d l-track))).....(when.(not.(emms-
703e0 74 72 61 63 6b 2d 70 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 6f track-p.track)).......(error."co
70400 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 45 6d 6d 73 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 uld.not.read.Emms.track.at.point
70420 22 29 29 0a 20 20 20 20 74 72 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 ")).....track))..(defun.emms-ida
70440 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 72 65 63 6f 72 64 69 6e 67 2d 61 72 74 69 pi-browser-search-recording-arti
70460 73 74 20 28 74 72 61 63 6b 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 72 65 63 st.(track)..."Search.for.the.rec
70480 6f 72 64 69 6e 67 20 61 6e 64 20 61 72 74 69 73 74 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 ording.and.artist.of.TRACK."...(
704a0 6c 65 74 20 28 28 72 65 63 6f 72 64 69 6e 67 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f let.((recording.(alist-get.'info
704c0 2d 74 69 74 6c 65 20 74 72 61 63 6b 29 29 0a 09 28 61 72 74 69 73 74 20 28 6f 72 20 28 61 6c 69 -title.track))..(artist.(or.(ali
704e0 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 74 72 61 63 6b 29 0a 09 09 20 20 20 st-get.'info-artist.track)......
70500 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 74 72 .(alist-get.'info-albumartist.tr
70520 61 63 6b 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 28 63 6f 6e 73 20 27 69 6e ack)))).....(list......(cons.'in
70540 66 6f 2d 74 69 74 6c 65 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 22 73 65 61 72 63 68 20 66 6f fo-title.(read-string."search.fo
70560 72 20 72 65 63 6f 72 64 69 6e 67 20 28 74 72 61 63 6b 29 3a 20 22 20 72 65 63 6f 72 64 69 6e 67 r.recording.(track):.".recording
70580 29 29 0a 20 20 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 28 72 65 61 64 ))......(cons.'info-artist.(read
705a0 2d 73 74 72 69 6e 67 20 22 73 65 61 72 63 68 20 66 6f 72 20 61 72 74 69 73 74 3a 20 22 20 61 72 -string."search.for.artist:.".ar
705c0 74 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f tist)))))..(defun.emms-idapi-bro
705e0 77 73 65 72 2d 73 65 61 72 63 68 2d 72 65 63 6f 72 64 69 6e 67 20 28 74 72 61 63 6b 29 0a 20 20 wser-search-recording.(track)...
70600 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 72 65 63 6f 72 64 69 6e 67 20 6f 66 20 54 52 41 "Search.for.the.recording.of.TRA
70620 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 63 6f 72 64 69 6e 67 20 28 61 6c 69 73 74 2d 67 CK."...(let.((recording.(alist-g
70640 65 74 20 27 69 6e 66 6f 2d 74 69 74 6c 65 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 6c 69 73 et.'info-title.track))).....(lis
70660 74 0a 20 20 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d 74 69 74 6c 65 20 28 72 65 61 64 2d 73 t......(cons.'info-title.(read-s
70680 74 72 69 6e 67 20 22 73 65 61 72 63 68 20 66 6f 72 20 72 65 63 6f 72 64 69 6e 67 20 28 74 72 61 tring."search.for.recording.(tra
706a0 63 6b 29 3a 20 22 20 72 65 63 6f 72 64 69 6e 67 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ck):.".recording)))))..(defun.em
706c0 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 61 72 74 69 73 74 20 28 ms-idapi-browser-search-artist.(
706e0 74 72 61 63 6b 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 61 72 74 69 73 74 20 track)..."Search.for.the.artist.
70700 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 72 74 69 73 74 20 28 6f 72 20 28 of.TRACK."...(let.((artist.(or.(
70720 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 74 72 61 63 6b 29 0a 09 09 alist-get.'info-artist.track)...
70740 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 ....(alist-get.'info-albumartist
70760 20 74 72 61 63 6b 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 28 63 6f 6e 73 20 .track)))).....(list......(cons.
70780 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 22 73 65 61 72 63 'info-artist.(read-string."searc
707a0 68 20 66 6f 72 20 61 72 74 69 73 74 3a 20 22 20 61 72 74 69 73 74 29 29 29 29 29 0a 0a 28 64 65 h.for.artist:.".artist)))))..(de
707c0 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 61 6c fun.emms-idapi-browser-search-al
707e0 62 75 6d 20 28 74 72 61 63 6b 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 61 6c bum.(track)..."Search.for.the.al
70800 62 75 6d 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 6c 62 75 6d 20 28 61 bum.of.TRACK."...(let.((album.(a
70820 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 20 74 72 61 63 6b 29 29 29 0a 20 20 list-get.'info-album.track)))...
70840 20 20 28 6c 69 73 74 0a 20 20 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 20 28 ..(list......(cons.'info-album.(
70860 72 65 61 64 2d 73 74 72 69 6e 67 20 22 73 65 61 72 63 68 20 66 6f 72 20 61 6c 62 75 6d 3a 20 22 read-string."search.for.album:."
70880 20 61 6c 62 75 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 .album)))))..(defun.emms-idapi-b
708a0 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 61 6c 62 75 6d 2d 61 72 74 69 73 74 20 28 74 72 61 63 rowser-search-album-artist.(trac
708c0 6b 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 62 6f 74 68 20 61 72 74 69 73 74 20 61 6e 64 k)..."Search.for.both.artist.and
708e0 20 61 6c 62 75 6d 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 72 74 69 73 .album.of.TRACK."...(let.((artis
70900 74 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 74 72 t.(or.(alist-get.'info-artist.tr
70920 61 63 6b 29 0a 09 09 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 ack).......(alist-get.'info-albu
70940 6d 61 72 74 69 73 74 20 74 72 61 63 6b 29 29 29 0a 09 28 61 6c 62 75 6d 20 28 61 6c 69 73 74 2d martist.track)))..(album.(alist-
70960 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 20 74 72 61 63 6b 29 29 0a 09 73 65 61 72 63 68 2d get.'info-album.track))..search-
70980 61 6c 62 75 6d 29 0a 20 20 20 20 28 73 65 74 71 20 73 65 61 72 63 68 2d 61 6c 62 75 6d 20 28 72 album).....(setq.search-album.(r
709a0 65 61 64 2d 73 74 72 69 6e 67 20 22 73 65 61 72 63 68 20 66 6f 72 20 61 6c 62 75 6d 3a 20 22 20 ead-string."search.for.album:.".
709c0 61 6c 62 75 6d 29 29 0a 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 28 63 6f 6e 73 20 27 69 6e album)).....(list......(cons.'in
709e0 66 6f 2d 61 6c 62 75 6d 20 73 65 61 72 63 68 2d 61 6c 62 75 6d 29 0a 20 20 20 20 20 28 63 6f 6e fo-album.search-album)......(con
70a00 73 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 09 09 09 20 s.'info-artist.(read-string.....
70a20 28 66 6f 72 6d 61 74 20 22 73 65 61 72 63 68 20 66 6f 72 20 61 6c 62 75 6d 20 5c 22 25 73 5c 22 (format."search.for.album.\"%s\"
70a40 20 62 79 20 61 72 74 69 73 74 3a 20 22 20 73 65 61 72 63 68 2d 61 6c 62 75 6d 29 0a 09 09 09 20 .by.artist:.".search-album).....
70a60 61 72 74 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 artist)))))..(defun.emms-idapi-b
70a80 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 72 65 63 6f 72 64 69 6e 67 2d 61 72 74 69 73 74 2d 61 rowser-search-recording-artist-a
70aa0 74 20 28 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 72 65 63 6f 72 64 69 6e 67 t.()..."Search.for.the.recording
70ac0 20 61 6e 64 20 61 72 74 69 73 74 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e .and.artist.of.the.track.at.poin
70ae0 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 69 64 61 70 t."...(interactive)...(emms-idap
70b00 69 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 0a 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 i-browser-show....(emms-idapi-se
70b20 61 72 63 68 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 63 65 0a 09 09 20 20 20 20 20 20 arch.emms-idapi-service.........
70b40 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 72 65 63 6f 72 (emms-idapi-browser-search-recor
70b60 64 69 6e 67 2d 61 72 74 69 73 74 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c ding-artist..........(emms-playl
70b80 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 ist-track-at.(point))))))..(defu
70ba0 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 72 65 63 6f n.emms-idapi-browser-search-reco
70bc0 72 64 69 6e 67 2d 61 74 20 28 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 72 65 rding-at.()..."Search.for.the.re
70be0 63 6f 72 64 69 6e 67 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a cording.of.the.track.at.point.".
70c00 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 ..(interactive)...(emms-idapi-br
70c20 6f 77 73 65 72 2d 73 68 6f 77 0a 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 61 72 63 68 owser-show....(emms-idapi-search
70c40 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 63 65 0a 09 09 20 20 20 20 20 20 28 65 6d 6d .emms-idapi-service.........(emm
70c60 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 72 65 63 6f 72 64 69 6e 67 s-idapi-browser-search-recording
70c80 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 ..........(emms-playlist-track-a
70ca0 74 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 t.(point))))))..(defun.emms-idap
70cc0 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 61 72 74 69 73 74 2d 61 74 20 28 29 0a 20 20 i-browser-search-artist-at.()...
70ce0 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 61 72 74 69 73 74 20 6f 66 20 74 68 65 20 74 72 "Search.for.the.artist.of.the.tr
70d00 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 ack.at.point."...(interactive)..
70d20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 0a 20 20 20 28 65 6d .(emms-idapi-browser-show....(em
70d40 6d 73 2d 69 64 61 70 69 2d 73 65 61 72 63 68 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 ms-idapi-search.emms-idapi-servi
70d60 63 65 0a 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 ce.........(emms-idapi-browser-s
70d80 65 61 72 63 68 2d 61 72 74 69 73 74 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 earch-artist..........(emms-play
70da0 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 list-track-at.(point))))))..(def
70dc0 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 61 6c 62 un.emms-idapi-browser-search-alb
70de0 75 6d 2d 61 74 20 28 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 61 6c 62 75 6d um-at.()..."Search.for.the.album
70e00 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 .of.the.track.at.point."...(inte
70e20 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 ractive)...(emms-idapi-browser-s
70e40 68 6f 77 0a 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 61 72 63 68 20 65 6d 6d 73 2d 69 how....(emms-idapi-search.emms-i
70e60 64 61 70 69 2d 73 65 72 76 69 63 65 0a 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 dapi-service.........(emms-idapi
70e80 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 61 6c 62 75 6d 0a 09 09 20 20 20 20 20 20 20 28 -browser-search-album..........(
70ea0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 emms-playlist-track-at.(point)))
70ec0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 )))..(defun.emms-idapi-browser-s
70ee0 65 61 72 63 68 2d 61 6c 62 75 6d 2d 61 72 74 69 73 74 2d 61 74 20 28 29 0a 20 20 22 53 65 61 72 earch-album-artist-at.()..."Sear
70f00 63 68 20 66 6f 72 20 74 68 65 20 61 6c 62 75 6d 20 61 6e 64 20 61 72 74 69 73 74 20 6f 66 20 74 ch.for.the.album.and.artist.of.t
70f20 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 he.track.at.point."...(interacti
70f40 76 65 29 0a 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 0a 20 ve)...(emms-idapi-browser-show..
70f60 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 61 72 63 68 20 65 6d 6d 73 2d 69 64 61 70 69 2d ..(emms-idapi-search.emms-idapi-
70f80 73 65 72 76 69 63 65 0a 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 service.........(emms-idapi-brow
70fa0 73 65 72 2d 73 65 61 72 63 68 2d 61 6c 62 75 6d 2d 61 72 74 69 73 74 0a 09 09 20 20 20 20 20 20 ser-search-album-artist.........
70fc0 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 .(emms-playlist-track-at.(point)
70fe0 29 29 29 29 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d )))))..;;;.---------------------
71000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
71020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 52 65 73 70 6f 6e 73 65 0a 3b 3b 3b 20 2d -------------.;;;.Response.;;;.-
71040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
71060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
71080 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 77 72 69 74 -.(defun.emms-idapi-browser-writ
710a0 65 2d 64 65 62 75 67 20 28 72 65 73 70 6f 6e 73 65 29 0a 20 20 22 57 72 69 74 65 20 52 45 53 50 e-debug.(response)..."Write.RESP
710c0 4f 4e 53 45 20 74 6f 20 74 68 65 20 62 72 6f 77 73 65 72 20 64 65 62 75 67 20 62 75 66 66 65 72 ONSE.to.the.browser.debug.buffer
710e0 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 ."...(let.((buffer.(get-buffer-c
71100 72 65 61 74 65 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 64 65 62 75 67 2d 6e reate.emms-idapi-browser-debug-n
71120 61 6d 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 ame))).....(with-current-buffer.
71140 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 buffer.......(erase-buffer).....
71160 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 72 65 73 70 6f 6e 73 65 29 ..(insert.(format."%s".response)
71180 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 ).......(setq.emms-idapi-browser
711a0 2d 64 65 62 75 67 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e -debug-buffer.buffer))))..(defun
711c0 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 70 72 69 6e 74 2d 68 65 61 64 65 72 .emms-idapi-browser-print-header
711e0 20 28 68 65 61 64 65 72 29 0a 20 20 22 50 72 69 6e 74 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 .(header)..."Print.the.material.
71200 66 6f 72 20 74 68 65 20 73 65 61 72 63 68 20 48 45 41 44 45 52 2e 22 0a 20 20 28 6c 65 74 20 28 for.the.search.HEADER."...(let.(
71220 28 61 72 74 69 73 74 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 (artist.(alist-get.'info-artist.
71240 68 65 61 64 65 72 29 29 0a 09 28 61 6c 62 75 6d 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e header))..(album..(alist-get.'in
71260 66 6f 2d 61 6c 62 75 6d 20 68 65 61 64 65 72 29 29 0a 09 28 74 69 74 6c 65 20 20 28 61 6c 69 73 fo-album.header))..(title..(alis
71280 74 2d 67 65 74 20 27 69 6e 66 6f 2d 74 69 74 6c 65 20 68 65 61 64 65 72 29 29 0a 09 28 73 65 72 t-get.'info-title.header))..(ser
712a0 76 69 63 65 20 28 61 6c 69 73 74 2d 67 65 74 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 vice.(alist-get.emms-idapi-servi
712c0 63 65 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 63 65 73 2d 61 6c 69 73 74 29 29 29 0a ce.emms-idapi-services-alist))).
712e0 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6f 72 20 61 72 74 69 73 74 20 61 6c 62 75 6d 20 ....(when.(not.(or.artist.album.
71300 74 69 74 6c 65 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 6f 75 6c 64 20 6e 6f 74 20 title)).......(error."could.not.
71320 72 65 61 64 20 68 65 61 64 65 72 3a 20 25 73 22 20 68 65 61 64 65 72 29 29 0a 20 20 20 20 28 69 read.header:.%s".header)).....(i
71340 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 73 65 72 76 69 63 65 3a 20 25 73 20 28 25 73 29 5c nsert.(format."service:.%s.(%s)\
71360 6e 22 0a 09 09 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6e 61 6d 65 20 73 65 72 76 69 63 n".......(alist-get.'name.servic
71380 65 29 0a 09 09 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 77 65 62 73 69 74 65 20 73 65 72 e).......(alist-get.'website.ser
713a0 76 69 63 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 61 72 74 69 73 74 0a 20 20 20 20 20 20 28 vice))).....(when.artist.......(
713c0 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 61 72 74 69 73 74 3a 20 20 25 73 5c 6e 22 20 61 insert.(format."artist:..%s\n".a
713e0 72 74 69 73 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 61 6c 62 75 6d 0a 20 20 20 20 20 20 28 rtist))).....(when.album.......(
71400 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 61 6c 62 75 6d 3a 20 20 20 25 73 5c 6e 22 20 61 insert.(format."album:...%s\n".a
71420 6c 62 75 6d 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 69 74 6c 65 0a 20 20 20 20 20 20 28 69 lbum))).....(when.title.......(i
71440 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 74 69 74 6c 65 3a 20 20 20 25 73 5c 6e 22 20 74 69 nsert.(format."title:...%s\n".ti
71460 74 6c 65 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 0a 0a 28 64 65 66 tle))).....(insert."\n")))..(def
71480 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 65 6e 74 72 79 2d 70 61 63 6b un.emms-idapi-browser-entry-pack
714a0 61 67 69 6e 67 20 28 65 6e 74 72 79 29 0a 20 20 22 50 72 69 6e 74 20 70 61 63 6b 61 67 69 6e 67 aging.(entry)..."Print.packaging
714c0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 45 4e 54 52 59 2e 22 0a 20 20 28 6c 65 74 20 .information.for.ENTRY."...(let.
714e0 28 28 70 61 63 6b 61 67 69 6e 67 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 70 61 63 ((packaging.(alist-get.'info-pac
71500 6b 61 67 69 6e 67 20 65 6e 74 72 79 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 70 61 63 kaging.entry))).....(if.(and.pac
71520 6b 61 67 69 6e 67 0a 09 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 22 4e 6f 6e 65 kaging.......(not.(string=."None
71540 22 20 70 61 63 6b 61 67 69 6e 67 29 29 29 0a 09 28 66 6f 72 6d 61 74 20 22 2c 20 25 73 22 20 70 ".packaging)))..(format.",.%s".p
71560 61 63 6b 61 67 69 6e 67 29 0a 20 20 20 20 20 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ackaging)......."")))..(defun.em
71580 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 70 72 69 6e 74 2d 65 6e 74 72 79 2d 61 72 74 ms-idapi-browser-print-entry-art
715a0 69 73 74 20 28 65 6e 74 72 79 29 0a 20 20 22 52 65 74 75 72 6e 20 61 72 74 69 73 74 20 45 4e 54 ist.(entry)..."Return.artist.ENT
715c0 52 59 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 25 73 25 73 25 73 5c 6e 5c 6e 22 0a 09 20 20 28 RY."...(format."%s%s%s\n\n"....(
715e0 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 65 6e 74 72 79 29 0a 09 20 alist-get.'info-artist.entry)...
71600 20 28 69 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 63 6f 75 6e 74 72 79 20 65 6e .(if.(alist-get.'info-country.en
71620 74 72 79 29 0a 09 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 28 25 73 29 20 22 20 28 61 6c try)........(format.".(%s).".(al
71640 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 63 6f 75 6e 74 72 79 20 65 6e 74 72 79 29 29 0a 09 20 ist-get.'info-country.entry))...
71660 20 20 20 22 22 29 0a 09 20 20 28 6c 65 74 20 28 28 62 65 67 69 6e 20 28 61 6c 69 73 74 2d 67 65 ..."")....(let.((begin.(alist-ge
71680 74 20 27 62 65 67 69 6e 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 74 69 6d 65 20 65 t.'begin.(alist-get.'info-time.e
716a0 6e 74 72 79 29 29 29 0a 09 09 28 65 6e 64 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 6e 64 20 28 ntry)))...(end.(alist-get.'end.(
716c0 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 74 69 6d 65 20 65 6e 74 72 79 29 29 29 29 0a 09 alist-get.'info-time.entry))))..
716e0 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 25 73 22 0a 09 09 20 20 20 20 28 69 66 20 62 65 67 ....(format."%s%s".......(if.beg
71700 69 6e 20 62 65 67 69 6e 20 22 22 29 0a 09 09 20 20 20 20 28 69 66 20 65 6e 64 20 28 66 6f 72 6d in.begin."").......(if.end.(form
71720 61 74 20 22 20 2d 20 25 73 2c 20 22 20 65 6e 64 29 20 22 22 29 29 29 29 29 0a 0a 28 64 65 66 75 at.".-.%s,.".end)."")))))..(defu
71740 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 70 72 69 6e 74 2d 65 6e 74 72 79 n.emms-idapi-browser-print-entry
71760 20 28 65 6e 74 72 79 29 0a 20 20 22 50 72 69 6e 74 20 45 4e 54 52 59 2e 22 0a 20 20 28 63 6f 6e .(entry)..."Print.ENTRY."...(con
71780 64 20 28 28 65 71 75 61 6c 20 27 69 64 61 70 69 2d 72 65 6c 65 61 73 65 20 28 61 6c 69 73 74 2d d.((equal.'idapi-release.(alist-
717a0 67 65 74 20 27 74 79 70 65 20 65 6e 74 72 79 29 29 0a 09 20 28 69 6e 73 65 72 74 20 28 66 6f 72 get.'type.entry))...(insert.(for
717c0 6d 61 74 20 22 5c 22 25 73 5c 22 20 62 79 20 25 73 25 73 5c 6e 22 0a 09 09 09 20 28 61 6c 69 73 mat."\"%s\".by.%s%s\n".....(alis
717e0 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 20 65 6e 74 72 79 29 0a 09 09 09 20 28 61 6c t-get.'info-album.entry).....(al
71800 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 65 6e 74 72 79 29 0a 09 09 09 20 ist-get.'info-artist.entry).....
71820 28 69 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 64 61 74 65 20 65 6e 74 72 79 29 (if.(alist-get.'info-date.entry)
71840 0a 09 09 09 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2c 20 72 65 6c 65 61 73 65 64 20 6f 6e 20 .........(format.",.released.on.
71860 25 73 22 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 64 61 74 65 20 65 6e 74 72 79 29 %s".(alist-get.'info-date.entry)
71880 29 0a 09 09 09 20 20 20 22 22 29 29 29 0a 0a 09 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 )......."")))....(insert.(format
718a0 20 22 25 73 20 74 72 61 63 6b 73 25 73 25 73 5c 6e 5c 6e 22 0a 09 09 09 20 28 61 6c 69 73 74 2d ."%s.tracks%s%s\n\n".....(alist-
718c0 67 65 74 20 27 69 6e 66 6f 2d 74 72 61 63 6b 2d 63 6f 75 6e 74 20 65 6e 74 72 79 29 0a 09 09 09 get.'info-track-count.entry)....
718e0 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 65 6e 74 72 79 2d 70 61 63 6b 61 .(emms-idapi-browser-entry-packa
71900 67 69 6e 67 20 65 6e 74 72 79 29 0a 09 09 09 20 28 69 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 ging.entry).....(if.(alist-get.'
71920 69 6e 66 6f 2d 63 6f 75 6e 74 72 79 20 65 6e 74 72 79 29 0a 09 09 09 20 20 20 20 20 28 66 6f 72 info-country.entry).........(for
71940 6d 61 74 20 22 2c 20 28 25 73 29 22 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 63 6f mat.",.(%s)".(alist-get.'info-co
71960 75 6e 74 72 79 20 65 6e 74 72 79 29 29 0a 09 09 09 20 20 20 22 22 29 29 29 29 0a 0a 09 28 28 65 untry.entry)).......""))))...((e
71980 71 75 61 6c 20 27 69 64 61 70 69 2d 61 72 74 69 73 74 20 28 61 6c 69 73 74 2d 67 65 74 20 27 74 qual.'idapi-artist.(alist-get.'t
719a0 79 70 65 20 65 6e 74 72 79 29 29 0a 09 20 28 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 69 64 61 70 ype.entry))...(insert.(emms-idap
719c0 69 2d 62 72 6f 77 73 65 72 2d 70 72 69 6e 74 2d 65 6e 74 72 79 2d 61 72 74 69 73 74 20 65 6e 74 i-browser-print-entry-artist.ent
719e0 72 79 29 29 29 0a 0a 09 28 74 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 20 22 75 6e 68 ry)))...(t.(insert.(format.."unh
71a00 61 6e 64 6c 65 64 20 65 6e 74 72 79 3a 5c 6e 5c 6e 25 73 5c 6e 22 20 65 6e 74 72 79 29 29 29 29 andled.entry:\n\n%s\n".entry))))
71a20 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d 73 68 6f )..(defun.emms-idapi-browser-sho
71a40 77 20 28 72 65 73 70 6f 6e 73 65 29 0a 20 20 22 44 69 73 70 6c 61 79 20 52 45 53 50 4f 4e 53 45 w.(response)..."Display.RESPONSE
71a60 20 69 6e 20 61 20 73 65 61 72 63 68 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 69 64 .in.a.search.buffer."...(emms-id
71a80 61 70 69 2d 62 72 6f 77 73 65 72 2d 77 72 69 74 65 2d 64 65 62 75 67 20 72 65 73 70 6f 6e 73 65 api-browser-write-debug.response
71aa0 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 )...(let.((buffer.(emms-idapi-br
71ac0 6f 77 73 65 72 2d 67 65 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d owser-get-buffer))).....(pop-to-
71ae0 62 75 66 66 65 72 20 62 75 66 66 65 72 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 buffer.buffer).....(let.((inhibi
71b00 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 t-read-only.t)).......(erase-buf
71b20 66 65 72 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 45 6d 6d 73 20 4d 75 73 69 63 20 53 fer).......(insert."Emms.Music.S
71b40 65 61 72 63 68 20 51 75 65 72 79 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 64 earch.Query\n\n").......(emms-id
71b60 61 70 69 2d 62 72 6f 77 73 65 72 2d 70 72 69 6e 74 2d 68 65 61 64 65 72 20 28 63 61 72 20 72 65 api-browser-print-header.(car.re
71b80 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 sponse)).......(insert.(format."
71ba0 25 64 20 72 65 73 75 6c 74 73 5c 6e 5c 6e 22 20 28 6c 65 6e 67 74 68 20 28 63 64 72 20 72 65 73 %d.results\n\n".(length.(cdr.res
71bc0 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 63 64 72 20 ponse)))).......(dolist.(e.(cdr.
71be0 72 65 73 70 6f 6e 73 65 29 29 0a 09 28 65 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 2d response))..(emms-idapi-browser-
71c00 70 72 69 6e 74 2d 65 6e 74 72 79 20 65 29 29 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 print-entry.e)))))...(provide.'e
71c20 6d 6d 73 2d 69 64 61 70 69 2d 62 72 6f 77 73 65 72 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 64 61 mms-idapi-browser)..;;;.emms-ida
71c40 70 69 2d 62 72 6f 77 73 65 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 pi-browser.el.ends.here.........
71c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 31 00 00 00 emms-24/emms-print-metadata.1...
71e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
71e80 30 30 30 32 33 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 36 33 32 00 20 30 00 00 00 0002312.00000000000.014632..0...
71ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
71f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
71f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72000 2e 5c 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .\".............................
72020 20 20 20 20 20 20 20 20 20 48 65 79 2c 20 45 4d 41 43 53 3a 20 2d 2a 2d 20 6e 72 6f 66 66 20 2d .........Hey,.EMACS:.-*-.nroff.-
72040 2a 2d 0a 2e 5c 22 20 46 69 72 73 74 20 70 61 72 61 6d 65 74 65 72 2c 20 4e 41 4d 45 2c 20 73 68 *-..\".First.parameter,.NAME,.sh
72060 6f 75 6c 64 20 62 65 20 61 6c 6c 20 63 61 70 73 0a 2e 5c 22 20 53 65 63 6f 6e 64 20 70 61 72 61 ould.be.all.caps..\".Second.para
72080 6d 65 74 65 72 2c 20 53 45 43 54 49 4f 4e 2c 20 73 68 6f 75 6c 64 20 62 65 20 31 2d 38 2c 20 6d meter,.SECTION,.should.be.1-8,.m
720a0 61 79 62 65 20 77 2f 20 73 75 62 73 65 63 74 69 6f 6e 0a 2e 5c 22 20 6f 74 68 65 72 20 70 61 72 aybe.w/.subsection..\".other.par
720c0 61 6d 65 74 65 72 73 20 61 72 65 20 61 6c 6c 6f 77 65 64 3a 20 73 65 65 20 6d 61 6e 28 37 29 2c ameters.are.allowed:.see.man(7),
720e0 20 6d 61 6e 28 31 29 0a 2e 54 48 20 45 4d 4d 53 2d 50 52 49 4e 54 2d 4d 45 54 41 44 41 54 41 20 .man(1)..TH.EMMS-PRINT-METADATA.
72100 31 20 22 41 70 72 69 6c 20 32 39 2c 20 32 30 30 36 22 20 45 4d 4d 53 0a 2e 5c 22 20 50 6c 65 61 1."April.29,.2006".EMMS..\".Plea
72120 73 65 20 61 64 6a 75 73 74 20 74 68 69 73 20 64 61 74 65 20 77 68 65 6e 65 76 65 72 20 72 65 76 se.adjust.this.date.whenever.rev
72140 69 73 69 6e 67 20 74 68 65 20 6d 61 6e 70 61 67 65 2e 0a 2e 5c 22 0a 2e 5c 22 20 53 6f 6d 65 20 ising.the.manpage...\"..\".Some.
72160 72 6f 66 66 20 6d 61 63 72 6f 73 2c 20 66 6f 72 20 72 65 66 65 72 65 6e 63 65 3a 0a 2e 5c 22 20 roff.macros,.for.reference:..\".
72180 2e 6e 68 20 20 20 20 20 20 20 20 64 69 73 61 62 6c 65 20 68 79 70 68 65 6e 61 74 69 6f 6e 0a 2e .nh........disable.hyphenation..
721a0 5c 22 20 2e 68 79 20 20 20 20 20 20 20 20 65 6e 61 62 6c 65 20 68 79 70 68 65 6e 61 74 69 6f 6e \"..hy........enable.hyphenation
721c0 0a 2e 5c 22 20 2e 61 64 20 6c 20 20 20 20 20 20 6c 65 66 74 20 6a 75 73 74 69 66 79 0a 2e 5c 22 ..\"..ad.l......left.justify..\"
721e0 20 2e 61 64 20 62 20 20 20 20 20 20 6a 75 73 74 69 66 79 20 74 6f 20 62 6f 74 68 20 6c 65 66 74 ..ad.b......justify.to.both.left
72200 20 61 6e 64 20 72 69 67 68 74 20 6d 61 72 67 69 6e 73 0a 2e 5c 22 20 2e 6e 66 20 20 20 20 20 20 .and.right.margins..\"..nf......
72220 20 20 64 69 73 61 62 6c 65 20 66 69 6c 6c 69 6e 67 0a 2e 5c 22 20 2e 66 69 20 20 20 20 20 20 20 ..disable.filling..\"..fi.......
72240 20 65 6e 61 62 6c 65 20 66 69 6c 6c 69 6e 67 0a 2e 5c 22 20 2e 62 72 20 20 20 20 20 20 20 20 69 .enable.filling..\"..br........i
72260 6e 73 65 72 74 20 6c 69 6e 65 20 62 72 65 61 6b 0a 2e 5c 22 20 2e 73 70 20 3c 6e 3e 20 20 20 20 nsert.line.break..\"..sp.<n>....
72280 69 6e 73 65 72 74 20 6e 2b 31 20 65 6d 70 74 79 20 6c 69 6e 65 73 0a 2e 5c 22 20 66 6f 72 20 6d insert.n+1.empty.lines..\".for.m
722a0 61 6e 70 61 67 65 2d 73 70 65 63 69 66 69 63 20 6d 61 63 72 6f 73 2c 20 73 65 65 20 6d 61 6e 28 anpage-specific.macros,.see.man(
722c0 37 29 0a 2e 53 48 20 4e 41 4d 45 0a 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 7)..SH.NAME.emms-print-metadata.
722e0 5c 2d 20 50 72 69 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 6d 75 73 69 63 \-.Print.information.about.music
72300 20 66 69 6c 65 73 0a 2e 53 48 20 53 59 4e 4f 50 53 49 53 0a 2e 42 20 65 6d 6d 73 2d 70 72 69 6e .files..SH.SYNOPSIS..B.emms-prin
72320 74 2d 6d 65 74 61 64 61 74 61 0a 2e 52 49 20 66 69 6c 65 2e 65 78 74 0a 2e 62 72 0a 2e 53 48 20 t-metadata..RI.file.ext..br..SH.
72340 44 45 53 43 52 49 50 54 49 4f 4e 0a 2e 5c 22 20 54 65 58 20 75 73 65 72 73 20 6d 61 79 20 62 65 DESCRIPTION..\".TeX.users.may.be
72360 20 6d 6f 72 65 20 63 6f 6d 66 6f 72 74 61 62 6c 65 20 77 69 74 68 20 74 68 65 20 5c 66 42 3c 77 .more.comfortable.with.the.\fB<w
72380 68 61 74 65 76 65 72 3e 5c 66 50 20 61 6e 64 0a 2e 5c 22 20 5c 66 49 3c 77 68 61 74 65 76 65 72 hatever>\fP.and..\".\fI<whatever
723a0 3e 5c 66 50 20 65 73 63 61 70 65 20 73 65 71 75 65 6e 63 65 73 20 74 6f 20 69 6e 76 6f 6b 65 20 >\fP.escape.sequences.to.invoke.
723c0 62 6f 6c 64 20 66 61 63 65 20 61 6e 64 20 69 74 61 6c 69 63 73 2c 0a 2e 5c 22 20 72 65 73 70 65 bold.face.and.italics,..\".respe
723e0 63 74 69 76 65 6c 79 2e 0a 5c 66 42 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 5c ctively..\fBemms-print-metadata\
72400 66 50 20 77 69 6c 6c 20 70 72 69 6e 74 20 6d 65 74 61 64 61 74 61 20 61 62 6f 75 74 20 6d 75 73 fP.will.print.metadata.about.mus
72420 69 63 20 66 69 6c 65 73 20 74 6f 0a 73 74 64 6f 75 74 2c 20 74 6f 20 62 65 20 75 73 65 64 20 70 ic.files.to.stdout,.to.be.used.p
72440 72 69 6d 61 72 69 6c 79 20 62 79 20 45 4d 4d 53 2c 20 74 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 rimarily.by.EMMS,.the.Emacs.Mult
72460 69 4d 65 64 69 61 20 53 79 73 74 65 6d 2e 0a 2e 53 48 20 53 45 45 20 41 4c 53 4f 0a 2e 42 52 20 iMedia.System...SH.SEE.ALSO..BR.
72480 65 6d 6d 73 20 28 69 6e 66 6f 29 0a 2e 62 72 0a 2e 53 48 20 41 55 54 48 4f 52 0a 65 6d 6d 73 2d emms.(info)..br..SH.AUTHOR.emms-
724a0 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 77 61 73 20 77 72 69 74 74 65 6e 20 62 79 20 54 72 print-metadata.was.written.by.Tr
724c0 65 6e 74 20 42 75 63 6b 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ent.Buck........................
724e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
725a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
725c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
725e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2e 65 6c 00 00 00 00 emms-24/emms-volume-pulse.el....
72620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
72680 30 30 31 30 35 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 36 32 31 00 20 30 00 00 00 0010560.00000000000.014621..0...
726a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
726c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
726e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
72720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
72740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
727a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
727c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
727e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72800 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2e 65 6c 20 2d 2d 2d 20 61 20 6d ;;;.emms-volume-pulse.el.---.a.m
72820 6f 64 65 20 66 6f 72 20 63 68 61 6e 67 69 6e 67 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 50 75 ode.for.changing.volume.using.Pu
72840 6c 73 65 41 75 64 69 6f 20 70 61 63 74 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 lseAudio.pactl..-*-.lexical-bind
72860 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
72880 31 35 2d 32 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 15-2023.Free.Software.Foundation
728a0 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 52 61 73 6d 75 73 20 50 61 6e 6b 20 52 ,.Inc...;;.Author:.Rasmus.Pank.R
728c0 6f 75 6c 75 6e 64 20 3c 65 6d 61 63 73 40 70 61 6e 6b 2e 65 75 3e 0a 0a 3b 3b 20 54 68 69 73 20 oulund.<emacs@pank.eu>..;;.This.
728e0 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 file.is.part.of.EMMS...;;.EMMS.i
72900 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 s.free.software;.you.can.redistr
72920 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 ibute.it.and/or.modify.;;.it.und
72940 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 er.the.terms.of.the.GNU.General.
72960 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b Public.License.as.published.by.;
72980 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 ;.the.Free.Software.Foundation;.
729a0 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 either.version.3,.or.(at.your.op
729c0 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b tion).;;.any.later.version..;;.;
729e0 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 ;.EMMS.is.distributed.in.the.hop
72a00 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 e.that.it.will.be.useful,.;;.but
72a20 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 .WITHOUT.ANY.WARRANTY;.without.e
72a40 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d ven.the.implied.warranty.of.;;.M
72a60 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 ERCHANTABILITY.or.FITNESS.FOR.A.
72a80 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 PARTICULAR.PURPOSE...See.the.;;.
72aa0 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d GNU.General.Public.License.for.m
72ac0 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 ore.details..;;.;;.You.should.ha
72ae0 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 ve.received.a.copy.of.the.GNU.Ge
72b00 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 neral.Public.License.;;.along.wi
72b20 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 th.EMMS;.see.the.file.COPYING...
72b40 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 If.not,.write.to.the.;;.Free.Sof
72b60 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b tware.Foundation,.Inc.,.51.Frank
72b80 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 lin.St,.Fifth.Floor,.;;.Boston,.
72ba0 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 MA.02110-1301,.USA...;;;.Comment
72bc0 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 61 20 66 65 77 ary:..;;.This.file.defines.a.few
72be0 20 73 69 6d 70 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 72 61 69 73 65 20 6f 72 20 6c 6f .simple.functions.to.raise.or.lo
72c00 77 65 72 20 74 68 65 20 76 6f 6c 75 6d 65 0a 3b 3b 20 75 73 69 6e 67 20 70 61 63 74 6c 2e 20 49 wer.the.volume.;;.using.pactl..I
72c20 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 2c 20 74 68 6f 75 67 t.can.be.used.stand-alone,.thoug
72c40 68 20 69 74 27 73 20 6d 65 61 6e 74 20 66 6f 72 20 75 73 61 67 65 0a 3b 3b 20 77 69 74 68 20 45 h.it's.meant.for.usage.;;.with.E
72c60 4d 4d 53 2c 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 77 69 74 68 20 65 6d 6d 73 2d 76 6f 6c 75 MMS,.particularly.with.emms-volu
72c80 6d 65 2e 65 6c 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 61 64 64 20 74 68 65 20 66 6f 6c 6c me.el..;;.;;.To.use.add.the.foll
72ca0 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 45 4d 4d 53 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e owing.to.your.EMMS.configuration
72cc0 0a 3b 3b 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 .;;.....(setq.emms-volume-change
72ce0 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 63 68 61 -function.'emms-volume-pulse-cha
72d00 6e 67 65 29 0a 0a 3b 3b 3b 20 48 69 73 74 6f 72 79 3a 0a 0a 3b 3b 20 4d 61 72 74 73 20 32 30 31 nge)..;;;.History:..;;.Marts.201
72d20 35 3a 20 46 69 72 73 74 20 72 65 6c 65 61 73 65 2e 20 20 50 61 72 74 6c 79 20 62 61 73 65 64 20 5:.First.release...Partly.based.
72d40 6f 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 0a 0a 3b 3b 3b 20 54 6f on.emms-volume-amixer.el..;;;.To
72d60 64 6f 3a 0a 0a 3b 3b 20 54 68 65 72 65 20 70 72 6f 62 61 62 6c 79 20 6e 65 65 64 73 20 74 6f 20 do:..;;.There.probably.needs.to.
72d80 62 65 20 6d 6f 72 65 20 63 6f 6e 66 69 67 75 72 61 62 69 6c 69 74 79 2c 20 77 68 69 63 68 20 6d be.more.configurability,.which.m
72da0 61 79 20 69 6e 20 74 75 72 6e 0a 3b 3b 20 6d 65 61 6e 20 61 64 64 69 6e 67 20 73 6f 6d 65 20 6d ay.in.turn.;;.mean.adding.some.m
72dc0 6f 72 65 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 3b 3b 20 53 6f 6d 65 20 6f 66 20 74 68 69 73 20 63 ore.functions..;;.Some.of.this.c
72de0 6f 75 6c 64 20 62 65 6e 65 66 69 74 20 66 72 6f 6d 20 61 64 64 69 6e 67 20 63 75 73 74 6f 6d 69 ould.benefit.from.adding.customi
72e00 7a 65 20 69 6e 74 65 72 66 61 63 65 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 ze.interfaces...;;;.Code:..(requ
72e20 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 0a ire.'cl-lib).(require.'subr-x)..
72e40 3b 3b 20 54 4f 44 4f 3a 20 69 74 20 77 6f 75 6c 64 20 62 65 20 67 72 65 61 74 20 69 66 20 63 75 ;;.TODO:.it.would.be.great.if.cu
72e60 73 74 6f 6d 20 63 6f 75 6c 64 20 68 61 76 65 0a 3b 3b 20 63 68 6f 69 63 65 73 20 62 61 73 65 64 stom.could.have.;;.choices.based
72e80 20 6f 6e 20 70 61 63 74 6c 20 6c 69 73 74 20 73 68 6f 72 74 20 73 69 6e 6b 73 20 7c 20 63 75 74 .on.pactl.list.short.sinks.|.cut
72ea0 20 2d 66 31 2d 32 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 .-f1-2..(defcustom.emms-volume-p
72ec0 75 6c 73 65 2d 73 69 6e 6b 20 6e 69 6c 0a 20 20 22 54 68 65 20 73 69 6e 6b 20 74 6f 20 75 73 65 ulse-sink.nil..."The.sink.to.use
72ee0 20 66 6f 72 20 76 6f 6c 75 6d 65 20 61 64 6a 75 73 74 6d 65 6e 74 2e 0a 0a 49 66 20 6e 69 6c 20 .for.volume.adjustment...If.nil.
72f00 74 72 79 20 74 6f 20 75 73 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 69 6e 6b 2e 0a 0a 53 65 try.to.use.the.default.sink...Se
72f20 65 20 66 75 6c 6c 20 6c 69 73 74 20 6f 66 20 64 65 76 69 63 65 73 20 6f 6e 20 79 6f 75 72 20 73 e.full.list.of.devices.on.your.s
72f40 79 73 74 65 6d 20 62 79 20 72 75 6e 6e 69 6e 67 0a 20 20 20 20 70 61 63 74 6c 20 6c 69 73 74 20 ystem.by.running.....pactl.list.
72f60 73 68 6f 72 74 20 73 69 6e 6b 73 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 6e short.sinks"...:type.'(choice.(n
72f80 75 6d 62 65 72 20 3a 74 61 67 20 22 53 69 6e 6b 20 6e 75 6d 62 65 72 22 29 0a 20 20 20 20 20 20 umber.:tag."Sink.number").......
72fa0 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 53 69 6e 6b 20 73 79 ...........(string.:tag."Sink.sy
72fc0 6d 62 6f 6c 69 63 20 6e 61 6d 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 mbolic.name")..................(
72fe0 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 65 66 61 75 6c 74 20 73 69 6e 6b 22 20 6e 69 6c 29 29 0a const.:tag."Default.sink".nil)).
73000 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 0a 3b 3b 20 27 70 61 63 74 ..:group.'emms-volume)..;;.'pact
73020 6c 20 67 65 74 2d 73 69 6e 6b 2d 76 6f 6c 75 6d 65 27 20 77 61 73 20 6f 6e 6c 79 20 61 64 64 65 l.get-sink-volume'.was.only.adde
73040 64 20 72 65 63 65 6e 74 6c 79 20 28 76 65 72 73 69 6f 6e 20 31 34 2e 31 29 2e 0a 3b 3b 20 57 68 d.recently.(version.14.1)..;;.Wh
73060 65 6e 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 69 73 20 6d 6f 72 65 20 77 69 64 65 73 70 72 65 en.that.version.is.more.widespre
73080 61 64 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 0a 3b 3b 20 73 69 6d 70 6c ad.this.function.can.be.;;.simpl
730a0 69 66 69 65 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 2d 70 75 6c 73 65 2d ified.(defun.emms-volume--pulse-
730c0 67 65 74 2d 76 6f 6c 75 6d 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 60 65 6d 6d 73 2d 76 6f get-volume.()..."Return.`emms-vo
730e0 6c 75 6d 65 2d 70 75 6c 73 65 2d 73 69 6e 6b 27 20 76 6f 6c 75 6d 65 2e 22 0a 20 20 28 6c 65 74 lume-pulse-sink'.volume."...(let
73100 2a 20 28 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 73 69 6e 6b 0a 20 20 20 20 20 *.((emms-volume-pulse-sink......
73120 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 73 69 6e 6b 0a .....(if.emms-volume-pulse-sink.
73140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d ..............emms-volume-pulse-
73160 73 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 sink.............(string-trim...
73180 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 ...........(shell-command-to-str
731a0 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4c 43 5f 41 4c 4c 3d 43 20 70 61 63 74 ing..............."LC_ALL=C.pact
731c0 6c 20 69 6e 66 6f 20 7c 20 67 72 65 70 20 27 44 65 66 61 75 6c 74 20 53 69 6e 6b 3a 20 27 20 7c l.info.|.grep.'Default.Sink:.'.|
731e0 20 63 75 74 20 2d 64 20 27 20 27 20 2d 66 33 2d 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 .cut.-d.'.'.-f3-"))))..........(
73200 73 69 6e 6b 2d 6e 75 6d 62 65 72 2d 70 20 28 6e 75 6d 62 65 72 70 20 65 6d 6d 73 2d 76 6f 6c 75 sink-number-p.(numberp.emms-volu
73220 6d 65 2d 70 75 6c 73 65 2d 73 69 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 75 74 70 75 74 me-pulse-sink))..........(output
73240 0a 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 ...........(shell-command-to-str
73260 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 4c 43 5f 41 4c 4c 3d 43 ing............(concat."LC_ALL=C
73280 20 70 61 63 74 6c 20 6c 69 73 74 20 73 69 6e 6b 73 22 20 22 7c 22 0a 20 20 20 20 20 20 20 20 20 .pactl.list.sinks"."|"..........
732a0 20 20 20 20 20 20 20 20 20 20 22 67 72 65 70 20 2d 45 20 2d 65 20 27 53 69 6e 6b 27 20 2d 65 20 .........."grep.-E.-e.'Sink'.-e.
732c0 27 4e 61 6d 65 27 20 2d 65 20 27 5e 5b 5e 61 2d 7a 41 2d 5a 5d 2a 56 6f 6c 75 6d 65 27 22 29 29 'Name'.-e.'^[^a-zA-Z]*Volume'"))
732e0 29 0a 09 20 28 76 6f 6c 75 6d 65 2d 73 74 72 69 6e 67 0a 09 20 20 28 63 61 72 0a 09 20 20 20 28 )...(volume-string....(car.....(
73300 72 65 76 65 72 73 65 0a 09 20 20 20 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 reverse......(funcall...........
73320 20 20 20 28 69 66 20 73 69 6e 6b 2d 6e 75 6d 62 65 72 2d 70 20 23 27 61 73 73 71 20 23 27 61 73 ...(if.sink-number-p.#'assq.#'as
73340 73 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 soc)..............emms-volume-pu
73360 6c 73 65 2d 73 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 69 lse-sink..............(mapcar.(i
73380 66 20 73 69 6e 6b 2d 6e 75 6d 62 65 72 2d 70 20 27 69 64 65 6e 74 69 74 79 20 27 63 64 72 29 0a f.sink-number-p.'identity.'cdr).
733a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 68 .....................(cl-loop.wh
733c0 69 6c 65 0a 09 09 09 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 0a 09 09 09 20 20 ile..........(string-match......
733e0 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 0a 09 09 09 09 09 .....(mapconcat.#'identity......
73400 20 20 27 28 22 2e 2a 53 69 6e 6b 5b 20 5c 74 5d 2b 5c 5c 23 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 ..'(".*Sink[.\t]+\\#\\([0-9]+\\)
73420 22 0a 09 09 09 09 09 20 20 20 20 22 2e 2a 4e 61 6d 65 3a 5b 20 5c 74 5d 5c 5c 28 5b 5e 5c 6e 5d "..........".*Name:[.\t]\\([^\n]
73440 2b 5c 5c 29 22 0a 09 09 09 09 09 20 20 20 20 22 2e 2a 56 6f 6c 75 6d 65 3a 2e 2a 3f 5c 5c 28 5b +\\)"..........".*Volume:.*?\\([
73460 30 2d 39 5d 2b 5c 5c 29 25 2e 2a 5c 6e 3f 22 29 0a 09 09 09 09 09 20 20 22 5c 6e 22 29 0a 09 09 0-9]+\\)%.*\n?")........"\n")...
73480 09 20 20 20 20 20 20 20 6f 75 74 70 75 74 29 0a 09 09 09 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 ........output)..........collect
734a0 20 28 6c 69 73 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d .(list.(string-to-number.(match-
734c0 73 74 72 69 6e 67 20 31 20 6f 75 74 70 75 74 29 29 0a 09 09 09 09 09 20 20 20 20 28 6d 61 74 63 string.1.output))..........(matc
734e0 68 2d 73 74 72 69 6e 67 20 32 20 6f 75 74 70 75 74 29 0a 09 09 09 09 09 20 20 20 20 28 6d 61 74 h-string.2.output)..........(mat
73500 63 68 2d 73 74 72 69 6e 67 20 33 20 6f 75 74 70 75 74 29 29 0a 09 09 09 20 20 20 20 20 20 64 6f ch-string.3.output))..........do
73520 20 28 73 65 74 71 20 6f 75 74 70 75 74 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 .(setq.output.(replace-match."".
73540 6e 69 6c 20 6e 69 6c 20 6f 75 74 70 75 74 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 nil.nil.output))))))))).....(if.
73560 76 6f 6c 75 6d 65 2d 73 74 72 69 6e 67 0a 09 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 volume-string..(string-to-number
73580 20 76 6f 6c 75 6d 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 61 .volume-string).......(error."ca
735a0 6e 6e 6f 74 20 67 65 74 20 76 6f 6c 75 6d 65 20 66 72 6f 6d 20 73 69 6e 6b 2c 20 63 68 65 63 6b nnot.get.volume.from.sink,.check
735c0 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 73 69 6e 6b 27 22 29 29 29 29 0a 0a .`emms-volume-pulse-sink'"))))..
735e0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 6c 69 6d 69 74 20 28 (defun.emms-volume-pulse-limit.(
73600 76 29 0a 20 20 22 4c 69 6d 69 74 20 56 20 74 6f 20 74 68 65 20 72 61 6e 67 65 20 5b 30 2d 31 30 v)..."Limit.V.to.the.range.[0-10
73620 30 5d 22 0a 20 20 28 6d 61 78 20 28 6d 69 6e 20 76 20 31 30 30 29 20 30 29 29 0a 0a 28 64 65 66 0]"...(max.(min.v.100).0))..(def
73640 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 67 65 74 20 28 29 0a 20 20 22 52 un.emms-volume-pulse-get.()..."R
73660 65 74 75 72 6e 20 74 68 65 20 70 75 6c 73 65 20 76 6f 6c 75 6d 65 2e 22 0a 20 20 28 65 6d 6d 73 eturn.the.pulse.volume."...(emms
73680 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 6c 69 6d 69 74 0a 20 20 20 28 65 6d 6d 73 2d 76 6f 6c -volume-pulse-limit....(emms-vol
736a0 75 6d 65 2d 2d 70 75 6c 73 65 2d 67 65 74 2d 76 6f 6c 75 6d 65 29 29 29 0a 0a 3b 3b 3b 23 23 23 ume--pulse-get-volume)))..;;;###
736c0 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 autoload.(defun.emms-volume-puls
736e0 65 2d 63 68 61 6e 67 65 20 28 61 6d 6f 75 6e 74 29 0a 20 20 22 43 68 61 6e 67 65 20 50 75 6c 73 e-change.(amount)..."Change.Puls
73700 65 41 75 64 69 6f 20 76 6f 6c 75 6d 65 20 62 79 20 41 4d 4f 55 4e 54 2e 22 0a 20 20 28 6d 65 73 eAudio.volume.by.AMOUNT."...(mes
73720 73 61 67 65 20 22 56 6f 6c 75 6d 65 20 69 73 20 25 73 25 25 22 0a 20 20 20 20 20 20 20 20 20 20 sage."Volume.is.%s%%"...........
73740 20 28 6c 65 74 20 28 28 70 61 63 74 6c 20 28 6f 72 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 .(let.((pactl.(or.(executable-fi
73760 6e 64 20 22 70 61 63 74 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd."pactl").....................
73780 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 70 61 63 74 6c 20 69 73 20 6e 6f 74 20 69 6e 20 ........(error."pactl.is.not.in.
737a0 50 41 54 48 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d PATH")))..................(next-
737c0 76 6f 6c 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 6c 69 6d 69 74 0a 09 09 09 vol.(emms-volume-pulse-limit....
737e0 20 20 20 20 28 2b 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 2d 70 75 6c 73 65 2d 67 65 74 2d 76 ....(+.(emms-volume--pulse-get-v
73800 6f 6c 75 6d 65 29 20 61 6d 6f 75 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 olume).amount))))..............(
73820 77 68 65 6e 20 28 7a 65 72 6f 70 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 when.(zerop.(call-process.......
73840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 63 74 6c 20 6e 69 6c 20 6e .....................pactl.nil.n
73860 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 il.nil..........................
73880 20 20 22 73 65 74 2d 73 69 6e 6b 2d 76 6f 6c 75 6d 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."set-sink-volume".............
738a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 ...............(or.emms-volume-p
738c0 75 6c 73 65 2d 73 69 6e 6b 20 22 40 44 45 46 41 55 4c 54 5f 53 49 4e 4b 40 22 29 0a 20 20 20 20 ulse-sink."@DEFAULT_SINK@").....
738e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 .......................(format."
73900 25 64 25 25 22 20 6e 65 78 74 2d 76 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %d%%".next-vol)))...............
73920 20 6e 65 78 74 2d 76 6f 6c 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 76 6f .next-vol))))..(provide.'emms-vo
73940 6c 75 6d 65 2d 70 75 6c 73 65 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c lume-pulse)..;;;.emms-volume-pul
73960 73 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 se.el.ends.here.................
73980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
739a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
739c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
739e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 00 00 00 emms-24/emms-radio-browser.el...
73a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
73a80 30 30 34 32 31 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 34 32 00 20 30 00 00 00 0042140.00000000000.014742..0...
73aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
73b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
73b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73c00 3b 3b 3b 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 20 2d 2d 2d 20 45 4d ;;;.emms-radio-browser.el.---.EM
73c20 4d 53 20 63 6c 69 65 6e 74 20 66 6f 72 20 72 61 64 69 6f 2d 62 72 6f 77 65 72 20 41 50 49 20 20 MS.client.for.radio-brower.API..
73c40 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 -*-.lexical-binding:.t;.-*-..;;.
73c60 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 Copyright.(C).2025..Free.Softwar
73c80 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 46 e.Foundation,.Inc...;;.Author:.F
73ca0 72 61 6e 20 42 75 72 73 74 61 6c 6c 20 3c 66 72 61 6e 2e 62 75 72 73 74 61 6c 6c 40 67 6d 61 69 ran.Burstall.<fran.burstall@gmai
73cc0 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6d 75 6c 74 69 6d l.com>.;;.Keywords:.emms,.multim
73ce0 65 64 69 61 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 edia..;;.EMMS.is.free.software;.
73d00 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d you.can.redistribute.it.and/or.m
73d20 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 odify.it.;;.under.the.terms.of.t
73d40 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 he.GNU.General.Public.License.as
73d60 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 .published.by.;;.the.Free.Softwa
73d80 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c re.Foundation;.either.version.3,
73da0 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 .or.(at.your.option).;;.any.late
73dc0 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 r.version..;;.;;.EMMS.is.distrib
73de0 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 uted.in.the.hope.that.it.will.be
73e00 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 .useful,.but.WITHOUT.;;.ANY.WARR
73e20 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 ANTY;.without.even.the.implied.w
73e40 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 arranty.of.MERCHANTABILITY.;;.or
73e60 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 .FITNESS.FOR.A.PARTICULAR.PURPOS
73e80 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b E...See.the.GNU.General.Public.;
73ea0 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b ;.License.for.more.details..;;.;
73ec0 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 ;.You.should.have.received.a.cop
73ee0 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 y.of.the.GNU.General.Public.Lice
73f00 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 nse.;;.along.with.EMMS;.see.the.
73f20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 file.COPYING...If.not,.write.to.
73f40 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c the.Free.;;.Software.Foundation,
73f60 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 .Inc.,.51.Franklin.Street,.Fifth
73f80 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 .Floor,.Boston,.;;.MA.02110-1301
73fa0 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 20 54 68 69 ,.USA...;;;.Commentary:..;;..Thi
73fc0 73 20 70 61 63 6b 61 67 65 20 65 6e 61 62 6c 65 73 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 69 s.package.enables.searches.for.i
73fe0 6e 74 65 72 6e 65 74 20 72 61 64 69 6f 20 73 74 72 65 61 6d 73 20 61 67 61 69 6e 73 74 0a 3b 3b nternet.radio.streams.against.;;
74000 20 20 74 68 65 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 41 50 49 20 28 68 74 74 70 73 3a 2f ..the.radio-browser.API.(https:/
74020 2f 77 77 77 2e 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 69 6e 66 6f 29 2e 0a 3b 3b 20 20 53 75 /www.radio-browser.info)..;;..Su
74040 63 63 65 73 73 66 75 6c 20 73 65 61 72 63 68 65 73 20 72 65 74 75 72 6e 20 61 6e 20 45 4d 4d 53 ccessful.searches.return.an.EMMS
74060 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 68 69 74 73 2e 0a 0a 3b 3b 20 45 6e 74 72 79 20 70 6f 69 .playlist.of.hits...;;.Entry.poi
74080 6e 74 73 3a 0a 3b 3b 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 nts:.;;.emms-radio-browser-searc
740a0 68 2d 62 79 2d 6e 61 6d 65 0a 3b 3b 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d h-by-name.;;.emms-radio-browser-
740c0 73 65 61 72 63 68 2d 62 79 2d 75 72 6c 0a 3b 3b 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 search-by-url.;;.emms-radio-brow
740e0 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 0a 0a 3b 3b 20 60 65 6d 6d 73 2d 72 61 64 69 6f 2d ser-full-search..;;.`emms-radio-
74100 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 27 20 6e 65 65 64 73 20 74 68 65 20 60 browser-full-search'.needs.the.`
74120 74 72 61 6e 73 69 65 6e 74 27 20 70 61 63 6b 61 67 65 0a 3b 3b 20 28 62 75 69 6c 74 20 69 6e 20 transient'.package.;;.(built.in.
74140 74 6f 20 45 6d 61 63 73 20 73 69 6e 63 65 20 76 32 38 2e 31 29 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 to.Emacs.since.v28.1)...;;;.Code
74160 3a 0a 0a 3b 3b 2a 20 52 65 71 75 69 72 65 73 0a 28 72 65 71 75 69 72 65 20 27 64 6e 73 29 0a 28 :..;;*.Requires.(require.'dns).(
74180 72 65 71 75 69 72 65 20 27 75 72 6c 29 0a 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 0a 28 72 require.'url).(require.'json).(r
741a0 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 28 72 65 71 equire.'emms-playlist-mode).(req
741c0 75 69 72 65 20 27 73 65 71 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 6e 73 69 65 6e 74 29 0a uire.'seq).(require.'transient).
741e0 0a 3b 3b 2a 20 43 6f 6e 73 74 61 6e 74 73 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 72 .;;*.Constants..(defconst.emms-r
74200 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 72 76 65 72 2d 73 65 72 76 65 72 0a 20 20 22 61 6c adio-browser-server-server..."al
74220 6c 2e 61 70 69 2e 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 69 6e 66 6f 22 0a 20 20 22 53 65 72 l.api.radio-browser.info"..."Ser
74240 76 65 72 20 74 6f 20 71 75 65 72 79 20 66 6f 72 20 6c 69 73 74 20 6f 66 20 72 61 64 69 6f 2d 62 ver.to.query.for.list.of.radio-b
74260 72 6f 77 73 65 72 20 73 65 72 76 65 72 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d rowser.servers.")..(defconst.emm
74280 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 65 6e 64 70 6f 69 6e 74 0a s-radio-browser-search-endpoint.
742a0 20 20 22 2f 6a 73 6f 6e 2f 73 74 61 74 69 6f 6e 73 2f 73 65 61 72 63 68 22 0a 20 20 22 45 6e 64 .."/json/stations/search"..."End
742c0 70 6f 69 6e 74 20 66 6f 72 20 73 74 61 74 69 6f 6e 20 73 65 61 72 63 68 65 73 20 61 67 61 69 6e point.for.station.searches.again
742e0 73 74 20 74 68 65 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 41 50 49 2e 22 29 0a 0a 28 64 65 st.the.radio-browser.API.")..(de
74300 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 75 72 6c 2d 65 6e fconst.emms-radio-browser-url-en
74320 64 70 6f 69 6e 74 0a 20 20 22 2f 6a 73 6f 6e 2f 73 74 61 74 69 6f 6e 73 2f 62 79 75 72 6c 22 0a dpoint..."/json/stations/byurl".
74340 20 20 22 45 6e 64 70 6f 69 6e 74 20 66 6f 72 20 73 74 61 74 69 6f 6e 20 55 52 4c 20 73 65 61 72 .."Endpoint.for.station.URL.sear
74360 63 68 65 73 20 61 67 61 69 6e 73 74 20 74 68 65 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 41 ches.against.the.radio-browser.A
74380 50 49 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 PI.")..(defvar.emms-radio-browse
743a0 72 2d 75 73 65 72 2d 61 67 65 6e 74 0a 20 20 22 45 4d 4d 53 20 72 61 64 69 6f 2d 62 72 6f 77 73 r-user-agent..."EMMS.radio-brows
743c0 65 72 22 0a 20 20 22 54 68 65 20 75 73 65 72 2d 61 67 65 6e 74 20 77 65 20 64 65 63 6c 61 72 65 er"..."The.user-agent.we.declare
743e0 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d .to.the.server.")..(defvar.emms-
74400 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 6c 69 6d 69 74 20 33 30 0a 20 20 radio-browser-search-limit.30...
74420 22 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 68 69 74 73 20 74 6f 20 70 75 6c 6c 20 "Maximum.number.of.hits.to.pull.
74440 66 72 6f 6d 20 74 68 65 20 73 65 72 76 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 from.the.server.")..(defvar.emms
74460 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 6f 72 64 65 72 20 22 76 6f 74 -radio-browser-search-order."vot
74480 65 73 22 0a 20 20 22 44 65 66 61 75 6c 74 20 66 69 65 6c 64 20 74 6f 20 6f 72 64 65 72 20 72 65 es"..."Default.field.to.order.re
744a0 73 75 6c 74 73 20 62 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 72 61 64 69 6f 2d sults.by.")..(defvar.emms-radio-
744c0 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 64 65 73 63 65 6e 64 69 6e 67 20 74 0a 20 20 22 4e browser-search-descending.t..."N
744e0 6f 6e 2d 6e 69 6c 20 69 66 20 72 65 73 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 20 73 6f 72 74 on-nil.if.results.should.be.sort
74500 65 64 20 69 6e 20 64 65 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2e 22 29 0a 0a 28 64 65 66 63 ed.in.descending.order.")..(defc
74520 6f 6e 73 74 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 6f 72 64 65 72 2d 66 69 onst.emms-radio-browser-order-fi
74540 65 6c 64 73 0a 20 20 27 28 22 6e 61 6d 65 22 0a 20 20 20 20 22 75 72 6c 22 0a 20 20 20 20 22 68 elds...'("name"....."url"....."h
74560 6f 6d 65 70 61 67 65 22 0a 20 20 20 20 22 66 61 76 69 63 6f 6e 22 0a 20 20 20 20 22 74 61 67 73 omepage"....."favicon"....."tags
74580 22 0a 20 20 20 20 22 63 6f 75 6e 74 72 79 22 0a 20 20 20 20 22 73 74 61 74 65 22 0a 20 20 20 20 "....."country"....."state".....
745a0 22 6c 61 6e 67 75 61 67 65 22 0a 20 20 20 20 22 76 6f 74 65 73 22 0a 20 20 20 20 22 63 6f 64 65 "language"....."votes"....."code
745c0 63 22 0a 20 20 20 20 22 62 69 74 72 61 74 65 22 0a 20 20 20 20 22 6c 61 73 74 63 68 65 63 6b 6f c"....."bitrate"....."lastchecko
745e0 6b 22 0a 20 20 20 20 22 6c 61 73 74 63 68 65 63 6b 74 69 6d 65 22 0a 20 20 20 20 22 63 6c 69 63 k"....."lastchecktime"....."clic
74600 6b 74 69 6d 65 73 74 61 6d 70 22 0a 20 20 20 20 22 63 6c 69 63 6b 63 6f 75 6e 74 22 0a 20 20 20 ktimestamp"....."clickcount"....
74620 20 22 63 6c 69 63 6b 74 72 65 6e 64 22 0a 20 20 20 20 22 63 68 61 6e 67 65 74 69 6d 65 73 74 61 ."clicktrend"....."changetimesta
74640 6d 70 22 0a 20 20 20 20 22 72 61 6e 64 6f 6d 22 29 0a 20 20 22 53 65 61 72 63 68 20 66 69 65 6c mp"....."random")..."Search.fiel
74660 64 73 20 77 65 20 63 61 6e 20 6f 72 64 65 72 20 74 68 65 20 72 65 73 75 6c 74 73 20 62 79 2e 22 ds.we.can.order.the.results.by."
74680 29 0a 0a 0a 3b 3b 2a 20 51 75 65 72 79 20 74 68 65 20 73 65 72 76 65 72 0a 0a 3b 3b 2a 2a 20 54 )...;;*.Query.the.server..;;**.T
746a0 61 72 67 65 74 20 75 72 6c 0a 3b 3b 20 54 68 65 20 41 50 49 20 61 73 6b 73 20 75 73 20 74 6f 20 arget.url.;;.The.API.asks.us.to.
746c0 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 73 65 72 76 65 72 73 20 66 72 6f 6d 20 61 20 44 4e 53 get.a.list.of.servers.from.a.DNS
746e0 20 6c 6f 6f 6b 75 70 20 6f 6e 0a 3b 3b 20 61 6c 6c 2e 61 70 69 2e 72 61 64 69 6f 2d 62 72 6f 77 .lookup.on.;;.all.api.radio-brow
74700 73 65 72 2e 69 6e 66 6f 2c 20 64 6f 20 72 65 76 65 72 73 65 20 44 4e 53 20 6f 6e 20 74 68 65 20 ser.info,.do.reverse.DNS.on.the.
74720 49 50 0a 3b 3b 20 61 64 64 72 65 73 73 65 73 20 73 6f 20 66 6f 75 6e 64 20 61 6e 64 20 74 68 65 IP.;;.addresses.so.found.and.the
74740 6e 20 63 68 6f 6f 73 65 20 6f 6e 65 20 61 74 20 72 61 6e 64 6f 6d 2e 20 20 49 6e 20 66 61 63 74 n.choose.one.at.random...In.fact
74760 2c 20 74 68 65 72 65 0a 3b 3b 20 61 72 65 20 6f 6e 6c 79 20 74 68 72 65 65 20 73 65 72 76 65 72 ,.there.;;.are.only.three.server
74780 73 20 62 75 74 20 77 65 20 77 61 6e 74 20 70 6c 61 79 20 6e 69 63 65 20 61 6e 64 20 73 6f 20 64 s.but.we.want.play.nice.and.so.d
747a0 6f 20 61 73 20 77 65 20 61 72 65 0a 3b 3b 20 61 73 6b 65 64 2e 0a 28 64 65 66 75 6e 20 65 6d 6d o.as.we.are.;;.asked..(defun.emm
747c0 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 73 65 72 76 65 72 2d 6c 69 73 74 20 s-radio-browser-get-server-list.
747e0 28 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 61 64 69 6f 2d 62 72 6f 77 ()..."Get.the.list.of.radio-brow
74800 73 65 72 20 73 65 72 76 65 72 73 2e 0a 0a 45 72 72 6f 72 20 6f 75 74 20 69 66 20 74 68 65 20 6c ser.servers...Error.out.if.the.l
74820 69 73 74 20 69 73 20 65 6d 70 74 79 20 61 73 20 74 68 69 73 20 73 75 67 67 65 73 74 73 20 77 65 ist.is.empty.as.this.suggests.we
74840 20 68 61 76 65 20 6e 65 74 77 6f 72 6b 20 70 72 6f 62 6c 65 6d 73 0a 61 6e 64 20 73 6f 20 61 72 .have.network.problems.and.so.ar
74860 65 20 64 6f 6f 6d 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 65 72 76 65 72 2d 6c 69 73 74 0a e.doomed."...(let.((server-list.
74880 09 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 69 70 29 20 28 64 6e 73 2d 71 75 65 72 ..(mapcar.(lambda.(ip).(dns-quer
748a0 79 20 69 70 20 6e 69 6c 20 6e 69 6c 20 27 72 65 76 65 72 73 65 29 29 0a 09 09 20 28 6d 61 70 63 y.ip.nil.nil.'reverse))....(mapc
748c0 61 72 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 63 61 72 20 28 61 6c 69 73 74 2d 67 65 74 20 ar.(lambda.(it).(car.(alist-get.
748e0 27 64 61 74 61 20 69 74 29 29 29 0a 09 09 09 20 28 63 61 72 20 28 61 6c 69 73 74 2d 67 65 74 20 'data.it))).....(car.(alist-get.
74900 27 61 6e 73 77 65 72 73 0a 09 09 09 09 09 20 28 64 6e 73 2d 71 75 65 72 79 20 65 6d 6d 73 2d 72 'answers.......(dns-query.emms-r
74920 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 72 76 65 72 2d 73 65 72 76 65 72 20 6e 69 6c 20 27 adio-browser-server-server.nil.'
74940 66 75 6c 6c 29 29 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 73 65 72 76 65 72 2d 6c 69 73 74 20 full))))))).....(if.server-list.
74960 73 65 72 76 65 72 2d 6c 69 73 74 20 28 65 72 72 6f 72 20 22 4e 65 74 77 6f 72 6b 20 70 72 6f 62 server-list.(error."Network.prob
74980 6c 65 6d 3a 20 44 4e 53 20 6c 6f 6f 6b 75 70 20 66 61 69 6c 65 64 22 29 29 29 29 0a 0a 28 64 65 lem:.DNS.lookup.failed"))))..(de
749a0 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 61 73 65 2d 75 72 6c 20 fun.emms-radio-browser-base-url.
749c0 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 28 72 61 6e 64 6f 6d 69 73 65 64 29 20 72 61 64 69 ()..."Return.a.(randomised).radi
749e0 6f 2d 62 72 6f 77 73 65 72 20 55 52 4c 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 68 74 74 70 3a o-browser.URL."...(concat."http:
74a00 2f 2f 22 20 28 73 65 71 2d 72 61 6e 64 6f 6d 2d 65 6c 74 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d //".(seq-random-elt.(emms-radio-
74a20 62 72 6f 77 73 65 72 2d 67 65 74 2d 73 65 72 76 65 72 2d 6c 69 73 74 29 29 29 29 0a 0a 3b 3b 2a browser-get-server-list))))..;;*
74a40 2a 20 50 61 79 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 *.Payload.(defun.emms-radio-brow
74a60 73 65 72 2d 71 75 65 72 79 2d 74 65 6d 70 6c 61 74 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 ser-query-template.()..."Return.
74a80 62 61 73 69 63 20 73 65 61 72 63 68 20 74 65 6d 70 6c 61 74 65 2e 0a 0a 54 68 69 73 20 69 73 20 basic.search.template...This.is.
74aa0 61 6e 20 61 6c 69 73 74 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 60 6a 73 6f 6e 2d 65 6e 63 6f an.alist.suitable.for.`json-enco
74ac0 64 65 27 2e 22 0a 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 27 6c 69 6d 69 74 20 65 6d 6d 73 2d de'."...(list.(cons.'limit.emms-
74ae0 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 6c 69 6d 69 74 29 0a 09 28 63 6f radio-browser-search-limit)..(co
74b00 6e 73 20 27 6f 72 64 65 72 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 ns.'order.emms-radio-browser-sea
74b20 72 63 68 2d 6f 72 64 65 72 29 0a 09 28 63 6f 6e 73 20 27 72 65 76 65 72 73 65 20 65 6d 6d 73 2d rch-order)..(cons.'reverse.emms-
74b40 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 64 65 73 63 65 6e 64 69 6e 67 29 radio-browser-search-descending)
74b60 0a 09 28 63 6f 6e 73 20 27 68 69 64 65 62 72 6f 6b 65 6e 20 74 29 29 29 0a 0a 28 64 65 66 75 6e ..(cons.'hidebroken.t)))..(defun
74b80 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 .emms-radio-browser-search-by-na
74ba0 6d 65 2d 70 61 79 6c 6f 61 64 20 28 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 70 61 79 6c me-payload.(name)..."Return.payl
74bc0 6f 61 64 20 74 6f 20 73 65 61 72 63 68 20 62 79 20 6e 61 6d 65 20 4e 41 4d 45 2e 22 0a 20 20 28 oad.to.search.by.name.NAME."...(
74be0 6c 65 74 20 28 28 70 61 79 6c 6f 61 64 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 let.((payload.(emms-radio-browse
74c00 72 2d 71 75 65 72 79 2d 74 65 6d 70 6c 61 74 65 29 29 29 0a 20 20 20 20 28 70 75 73 68 20 28 63 r-query-template))).....(push.(c
74c20 6f 6e 73 20 27 6e 61 6d 65 20 6e 61 6d 65 29 20 70 61 79 6c 6f 61 64 29 0a 20 20 20 20 70 61 79 ons.'name.name).payload).....pay
74c40 6c 6f 61 64 29 29 0a 0a 3b 3b 2a 2a 20 46 75 6c 6c 20 73 65 61 72 63 68 0a 3b 3b 20 57 65 20 75 load))..;;**.Full.search.;;.We.u
74c60 73 65 20 61 20 74 72 61 6e 73 69 65 6e 74 20 66 6f 72 20 74 68 69 73 20 77 68 69 63 68 20 77 69 se.a.transient.for.this.which.wi
74c80 6c 6c 20 6e 65 65 64 20 61 20 6c 69 74 74 6c 65 20 73 63 65 6e 65 2d 73 65 74 74 69 6e 67 2e 0a ll.need.a.little.scene-setting..
74ca0 3b 3b 20 41 63 63 65 73 73 69 62 6c 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 ;;.Accessible.applications.of.th
74cc0 65 20 74 72 61 6e 73 69 65 6e 74 20 6c 69 62 72 61 72 79 20 61 72 65 20 61 20 6c 69 74 74 6c 65 e.transient.library.are.a.little
74ce0 20 74 68 69 6e 0a 3b 3b 20 6f 6e 20 74 68 65 20 67 72 6f 75 6e 64 20 73 6f 20 6c 65 74 20 75 73 .thin.;;.on.the.ground.so.let.us
74d00 20 65 78 70 6c 61 69 6e 20 77 68 61 74 20 77 65 20 61 72 65 20 64 6f 69 6e 67 20 69 6e 20 61 20 .explain.what.we.are.doing.in.a.
74d20 62 69 74 20 6d 6f 72 65 0a 3b 3b 20 64 65 74 61 69 6c 20 74 68 61 6e 20 75 73 75 61 6c 2e 0a 3b bit.more.;;.detail.than.usual..;
74d40 3b 0a 3b 3b 20 54 68 65 20 65 6e 74 72 79 20 70 6f 69 6e 74 20 69 73 20 60 65 6d 6d 73 2d 72 61 ;.;;.The.entry.point.is.`emms-ra
74d60 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 27 20 77 68 69 63 68 20 69 dio-browser-full-search'.which.i
74d80 73 20 61 20 6b 69 6e 64 0a 3b 3b 20 6f 66 20 64 69 73 70 61 74 63 68 65 72 20 28 69 6e 20 74 72 s.a.kind.;;.of.dispatcher.(in.tr
74da0 61 6e 73 69 65 6e 74 20 74 65 72 6d 69 6e 69 6d 6f 6c 6f 67 79 20 69 74 20 69 73 20 61 20 22 70 ansient.terminimology.it.is.a."p
74dc0 72 65 66 69 78 22 29 2e 20 20 49 74 20 69 73 0a 3b 3b 20 70 6f 70 75 6c 61 74 65 64 20 77 69 74 refix")...It.is.;;.populated.wit
74de0 68 20 64 61 74 61 20 66 69 65 6c 64 73 2c 20 63 61 6c 6c 65 64 20 22 69 6e 66 69 78 65 73 22 2c h.data.fields,.called."infixes",
74e00 20 77 69 74 68 20 77 68 69 63 68 20 74 68 65 20 75 73 65 72 0a 3b 3b 20 69 6e 74 65 72 61 63 74 .with.which.the.user.;;.interact
74e20 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 61 6c 6c 65 64 20 22 73 75 66 66 69 78 65 73 s.and.commands,.called."suffixes
74e40 22 2c 20 77 68 69 63 68 20 63 61 6e 20 72 65 61 64 20 74 68 65 20 64 61 74 61 0a 3b 3b 20 63 6f ",.which.can.read.the.data.;;.co
74e60 6c 6c 65 63 74 65 64 20 69 6e 20 74 68 65 20 69 6e 66 69 78 65 73 20 61 6e 64 20 64 6f 20 73 6f llected.in.the.infixes.and.do.so
74e80 6d 65 74 68 69 6e 67 20 77 69 74 68 20 69 74 2e 0a 3b 3b 0a 3b 3b 20 41 6c 6c 20 6f 66 20 74 68 mething.with.it..;;.;;.All.of.th
74ea0 65 73 65 20 74 68 69 6e 67 73 20 61 72 65 20 45 49 45 49 4f 20 63 6c 61 73 73 65 73 2e 0a 3b 3b ese.things.are.EIEIO.classes..;;
74ec0 0a 3b 3b 20 4f 75 72 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 77 61 73 20 68 65 61 76 69 .;;.Our.implementation.was.heavi
74ee0 6c 79 20 69 6e 73 70 69 72 65 64 20 62 79 20 74 68 65 20 70 72 6f 6a 65 63 74 3a 0a 3b 3b 20 68 ly.inspired.by.the.project:.;;.h
74f00 74 74 70 73 3a 2f 2f 63 6f 64 65 62 65 72 67 2e 6f 72 67 2f 6d 61 72 74 69 61 6e 68 2f 74 70 2e ttps://codeberg.org/martianh/tp.
74f20 65 6c 0a 0a 3b 3b 20 54 68 65 20 69 64 65 61 20 69 73 20 74 6f 20 65 71 75 69 70 20 65 61 63 68 el..;;.The.idea.is.to.equip.each
74f40 20 69 6e 66 69 78 20 77 69 74 68 20 61 6e 20 61 6c 69 73 74 2d 6b 65 79 20 73 6c 6f 74 20 77 68 .infix.with.an.alist-key.slot.wh
74f60 69 63 68 20 73 74 6f 72 65 73 0a 3b 3b 20 61 20 73 79 6d 62 6f 6c 2e 20 20 57 65 20 61 72 72 61 ich.stores.;;.a.symbol...We.arra
74f80 6e 67 65 20 74 68 61 74 20 65 61 63 68 20 69 6e 66 69 78 20 72 65 70 6f 72 74 73 20 69 74 73 20 nge.that.each.infix.reports.its.
74fa0 76 61 6c 75 65 20 61 73 20 61 20 63 6f 6e 73 0a 3b 3b 20 63 65 6c 6c 20 77 68 6f 73 65 20 63 61 value.as.a.cons.;;.cell.whose.ca
74fc0 72 20 69 73 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 61 6e 64 20 77 68 6f 73 65 20 63 64 72 20 74 r.is.this.symbol.and.whose.cdr.t
74fe0 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 0a 3b 3b 20 76 61 6c 75 65 20 73 6c 6f 74 he.contents.of.the.;;.value.slot
75000 2e 20 20 54 68 65 20 70 72 65 66 69 78 20 72 65 70 6f 72 74 73 20 74 68 65 20 6c 69 73 74 20 6f ...The.prefix.reports.the.list.o
75020 66 20 61 6c 6c 20 74 68 65 73 65 20 63 6f 6e 73 20 63 65 6c 6c 73 20 74 6f 0a 3b 3b 20 61 20 73 f.all.these.cons.cells.to.;;.a.s
75040 75 66 66 69 78 20 73 6f 20 77 68 61 74 20 74 68 65 20 73 75 66 66 69 78 20 72 65 63 65 69 76 65 uffix.so.what.the.suffix.receive
75060 73 20 69 73 20 61 6e 20 61 6c 69 73 74 2d 2d 2d 69 6e 20 74 68 69 73 20 77 61 79 20 77 65 0a 3b s.is.an.alist---in.this.way.we.;
75080 3b 20 63 6f 6e 73 74 72 75 63 74 20 61 20 71 75 65 72 79 20 6f 66 20 65 78 61 63 74 6c 79 20 74 ;.construct.a.query.of.exactly.t
750a0 68 65 20 6b 69 6e 64 20 77 65 20 6e 65 65 64 20 74 6f 20 66 65 65 64 20 74 6f 20 74 68 65 0a 3b he.kind.we.need.to.feed.to.the.;
750c0 3b 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 73 65 72 76 65 72 21 0a 0a 3b 3b 20 57 65 20 73 ;.radio-browser.server!..;;.We.s
750e0 75 62 63 6c 61 73 73 20 61 20 73 75 69 74 61 62 6c 65 20 69 6e 66 69 78 20 63 6c 61 73 73 20 74 ubclass.a.suitable.infix.class.t
75100 6f 20 61 64 64 20 74 68 65 20 61 6c 69 73 74 2d 6b 65 79 20 73 6c 6f 74 2e 0a 28 64 65 66 63 6c o.add.the.alist-key.slot..(defcl
75120 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 20 28 74 72 ass.emms-radio-browser-field.(tr
75140 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 29 0a 20 20 28 28 66 6f 72 6d 61 74 20 3a 69 6e 69 74 ansient-option)...((format.:init
75160 61 72 67 20 3a 66 6f 72 6d 61 74 20 3a 69 6e 69 74 66 6f 72 6d 20 22 20 25 6b 20 25 2d 31 33 64 arg.:format.:initform.".%k.%-13d
75180 20 25 76 22 29 0a 20 20 20 28 61 6c 69 73 74 2d 6b 65 79 20 3a 69 6e 69 74 61 72 67 20 3a 61 6c .%v")....(alist-key.:initarg.:al
751a0 69 73 74 2d 6b 65 79 29 29 0a 20 20 22 41 6e 20 69 6e 66 69 78 20 63 6c 61 73 73 20 66 6f 72 20 ist-key))..."An.infix.class.for.
751c0 73 74 72 69 6e 67 20 66 69 65 6c 64 73 2e 22 29 0a 0a 3b 3b 20 57 65 20 73 75 62 63 6c 61 73 73 string.fields.")..;;.We.subclass
751e0 20 74 68 69 73 20 74 6f 20 67 65 74 20 73 6f 6d 65 74 68 69 6e 67 20 73 75 69 74 61 62 6c 65 20 .this.to.get.something.suitable.
75200 66 6f 72 20 62 6f 6f 6c 65 61 6e 20 66 69 65 6c 64 73 2e 0a 3b 3b 20 57 68 79 3f 20 42 65 63 61 for.boolean.fields..;;.Why?.Beca
75220 75 73 65 20 77 65 20 64 69 73 70 6c 61 79 20 74 68 65 69 72 20 76 61 6c 75 65 73 20 64 69 66 66 use.we.display.their.values.diff
75240 65 72 65 6e 74 6c 79 20 69 6e 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 0a 3b 3b 20 55 49 20 61 erently.in.the.transient.;;.UI.a
75260 6e 64 20 61 6c 73 6f 20 62 65 63 61 75 73 65 20 6f 75 72 20 61 6c 69 73 74 20 77 69 6c 6c 20 62 nd.also.because.our.alist.will.b
75280 65 20 66 65 64 20 74 6f 20 60 6a 73 6f 6e 2d 65 6e 63 6f 64 65 27 20 73 6f 20 77 65 0a 3b 3b 20 e.fed.to.`json-encode'.so.we.;;.
752a0 74 72 65 61 74 20 6e 69 6c 20 73 70 65 63 69 61 6c 6c 79 2e 0a 28 64 65 66 63 6c 61 73 73 20 65 treat.nil.specially..(defclass.e
752c0 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 20 28 65 6d 6d 73 2d 72 61 64 mms-radio-browser-bool.(emms-rad
752e0 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 0a 20 20 28 29 0a 20 20 22 41 6e 20 69 6e 66 io-browser-field)...()..."An.inf
75300 69 78 20 63 6c 61 73 73 20 66 6f 72 20 62 6f 6f 6c 65 61 6e 20 66 69 65 6c 64 73 2e 22 29 0a 0a ix.class.for.boolean.fields.")..
75320 3b 3b 20 60 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 27 20 64 65 74 65 ;;.`transient-format-value'.dete
75340 72 6d 69 6e 65 73 20 68 6f 77 20 74 68 65 20 69 6e 66 69 78 20 76 61 6c 75 65 20 69 73 20 73 68 rmines.how.the.infix.value.is.sh
75360 6f 77 6e 20 69 6e 0a 3b 3b 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 55 49 0a 0a 28 63 6c 2d own.in.;;.the.transient.UI..(cl-
75380 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 defmethod.transient-format-value
753a0 20 28 28 6f 62 6a 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 .((obj.emms-radio-browser-field)
753c0 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 4f 42 4a 2e 0a 0a 4e )..."Format.the.value.of.OBJ...N
753e0 69 6c 20 69 73 20 66 6f 72 6d 61 74 74 65 64 20 61 73 20 74 68 65 20 65 6d 70 74 79 20 73 74 72 il.is.formatted.as.the.empty.str
75400 69 6e 67 2e 22 0a 20 20 28 6f 72 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 20 22 22 29 ing."...(or.(oref.obj.value)."")
75420 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 )..(cl-defmethod.transient-forma
75440 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 t-value.((obj.emms-radio-browser
75460 2d 62 6f 6f 6c 29 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 62 -bool))..."Format.the.value.of.b
75480 6f 6f 6c 65 61 6e 20 4f 42 4a 2e 0a 0a 52 65 74 75 72 6e 73 20 65 69 74 68 65 72 20 5c 22 54 72 oolean.OBJ...Returns.either.\"Tr
754a0 75 65 5c 22 20 6f 72 20 5c 22 46 61 6c 73 65 5c 22 2e 22 0a 20 20 28 69 66 20 28 6f 72 65 66 20 ue\".or.\"False\"."...(if.(oref.
754c0 6f 62 6a 20 76 61 6c 75 65 29 20 22 54 72 75 65 22 20 22 46 61 6c 73 65 22 29 29 0a 0a 3b 3b 20 obj.value)."True"."False"))..;;.
754e0 60 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 76 61 6c 75 65 27 20 72 65 74 75 72 6e 73 20 `transient-infix-value'.returns.
75500 74 68 65 20 69 6e 66 69 78 20 76 61 6c 75 65 20 74 6f 20 74 68 65 20 63 61 6c 6c 69 6e 67 0a 3b the.infix.value.to.the.calling.;
75520 3b 20 73 75 66 66 69 78 3a 20 61 73 20 64 69 73 63 75 73 73 65 64 20 61 62 6f 76 65 2c 20 77 65 ;.suffix:.as.discussed.above,.we
75540 20 77 72 61 70 20 74 68 65 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 63 6f 6e 73 20 63 65 6c 6c .wrap.the.value.into.a.cons.cell
75560 2e 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d ..(cl-defmethod.transient-infix-
75580 76 61 6c 75 65 20 28 28 6f 62 6a 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 value.((obj.emms-radio-browser-f
755a0 69 65 6c 64 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 69 6e 66 69 78 20 76 61 6c 75 65 ield))..."Return.the.infix.value
755c0 20 6f 66 20 4f 42 4a 20 61 73 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 69 66 20 6e 6f 6e 2d 6e 69 .of.OBJ.as.a.cons.cell.if.non-ni
755e0 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 76 61 6c 20 28 6f 72 65 66 20 6f 62 6a 20 l."...(when-let.((val.(oref.obj.
75600 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 6f 72 65 66 20 6f 62 6a 20 61 6c 69 value))).....(cons.(oref.obj.ali
75620 73 74 2d 6b 65 79 29 20 76 61 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 st-key).val)))..(cl-defmethod.tr
75640 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 65 6d 6d 73 2d 72 ansient-infix-value.((obj.emms-r
75660 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 adio-browser-bool))..."Return.th
75680 65 20 69 6e 66 69 78 20 76 61 6c 75 65 20 6f 66 20 4f 42 4a 20 61 73 20 61 20 63 6f 6e 73 20 63 e.infix.value.of.OBJ.as.a.cons.c
756a0 65 6c 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 6c 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c ell."...(let.((val.(oref.obj.val
756c0 75 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 6f 72 65 66 20 6f 62 6a 20 61 6c 69 73 74 2d ue))).....(cons.(oref.obj.alist-
756e0 6b 65 79 29 20 28 69 66 20 76 61 6c 20 76 61 6c 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 29 key).(if.val.val.:json-false))))
75700 0a 0a 3b 3b 20 60 74 72 61 6e 73 69 65 6e 74 2d 69 6e 69 74 2d 76 61 6c 75 65 27 20 69 73 20 63 ..;;.`transient-init-value'.is.c
75720 61 6c 6c 65 64 20 74 6f 20 69 6e 69 74 69 61 6c 69 73 65 20 65 61 63 68 20 69 6e 66 69 78 20 77 alled.to.initialise.each.infix.w
75740 68 65 6e 20 74 68 65 0a 3b 3b 20 70 72 65 66 69 78 20 73 74 61 72 74 73 20 75 70 2e 20 20 57 65 hen.the.;;.prefix.starts.up...We
75760 20 73 65 74 20 73 6f 6d 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 62 79 20 72 65 61 64 .set.some.default.values.by.read
75780 69 6e 67 20 74 68 65 6d 20 66 72 6f 6d 0a 3b 3b 20 60 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f ing.them.from.;;.`emms-radio-bro
757a0 77 73 65 72 2d 71 75 65 72 79 2d 74 65 6d 70 6c 61 74 65 27 2e 0a 28 63 6c 2d 64 65 66 6d 65 74 wser-query-template'..(cl-defmet
757c0 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 69 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 65 hod.transient-init-value.((obj.e
757e0 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 29 0a 20 20 22 49 6e 69 mms-radio-browser-field))..."Ini
75800 74 69 61 6c 69 73 65 20 4f 42 4a 2c 20 61 6e 20 6f 70 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 tialise.OBJ,.an.option."...(let.
75820 28 28 6b 65 79 20 28 6f 72 65 66 20 6f 62 6a 20 61 6c 69 73 74 2d 6b 65 79 29 29 29 0a 20 20 20 ((key.(oref.obj.alist-key)))....
75840 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 .(oset.obj.value...........(alis
75860 74 2d 67 65 74 20 6b 65 79 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 71 75 t-get.key.(emms-radio-browser-qu
75880 65 72 79 2d 74 65 6d 70 6c 61 74 65 29 29 29 29 29 0a 0a 3b 3b 20 60 74 72 61 6e 73 69 65 6e 74 ery-template)))))..;;.`transient
758a0 2d 69 6e 66 69 78 2d 72 65 61 64 27 20 73 65 74 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 -infix-read'.sets.the.value.of.t
758c0 68 65 20 69 6e 66 69 78 20 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e 0a 3b 3b 20 55 73 75 61 6c he.infix.from.the.user..;;.Usual
758e0 6c 79 2c 20 74 68 65 20 6d 65 74 68 6f 64 20 6f 66 20 74 68 65 20 70 61 72 65 6e 74 20 63 6c 61 ly,.the.method.of.the.parent.cla
75900 73 73 20 60 74 72 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 27 20 69 73 0a 3b 3b 20 70 65 72 66 ss.`transient-option'.is.;;.perf
75920 65 63 74 20 66 6f 72 20 74 68 69 73 20 62 75 74 2c 20 66 6f 72 20 62 6f 6f 6c 65 61 6e 73 2c 20 ect.for.this.but,.for.booleans,.
75940 69 74 20 73 75 66 66 69 63 65 73 20 74 6f 20 74 6f 67 67 6c 65 20 74 68 65 0a 3b 3b 20 65 78 69 it.suffices.to.toggle.the.;;.exi
75960 73 74 69 6e 67 20 76 61 6c 75 65 2e 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 sting.value..(cl-defmethod.trans
75980 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a 20 65 6d 6d 73 2d 72 61 64 69 6f ient-infix-read.((obj.emms-radio
759a0 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 29 0a 20 20 22 54 6f 67 67 6c 65 20 74 68 65 20 28 62 -browser-bool))..."Toggle.the.(b
759c0 6f 6f 6c 65 61 6e 29 20 76 61 6c 75 65 20 6f 66 20 4f 42 4a 2e 22 0a 20 20 28 6e 6f 74 20 28 6f oolean).value.of.OBJ."...(not.(o
759e0 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 29 0a 0a 3b 3b 20 4e 6f 77 20 66 6f 72 20 74 68 65 ref.obj.value)))..;;.Now.for.the
75a00 20 73 75 66 66 69 63 65 73 20 74 68 61 74 20 61 63 74 73 20 6f 6e 20 74 68 65 20 64 61 74 61 20 .suffices.that.acts.on.the.data.
75a20 77 65 20 68 61 76 65 20 67 61 74 68 65 72 65 64 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 74 68 we.have.gathered...;;.This.is.th
75a40 65 20 6d 61 69 6e 20 73 75 66 66 69 78 20 74 68 61 74 20 73 6c 75 72 70 73 20 74 68 65 20 71 75 e.main.suffix.that.slurps.the.qu
75a60 65 72 79 20 61 6c 69 73 74 20 61 6e 64 20 70 61 73 73 65 73 20 69 74 20 74 6f 20 74 68 65 20 73 ery.alist.and.passes.it.to.the.s
75a80 65 72 76 65 72 2e 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 erver..(transient-define-suffix.
75aa0 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 65 78 65 63 75 74 65 2d 66 75 6c 6c 2d emms-radio-browser-execute-full-
75ac0 73 65 61 72 63 68 20 28 61 72 67 73 29 0a 20 20 22 45 78 74 72 61 63 74 20 71 75 65 72 79 20 66 search.(args)..."Extract.query.f
75ae0 72 6f 6d 20 60 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 rom.`emms-radio-browser-full-sea
75b00 72 63 68 27 20 61 6e 64 20 65 78 65 63 75 74 65 20 69 74 2e 0a 0a 53 77 69 74 63 68 65 73 20 74 rch'.and.execute.it...Switches.t
75b20 6f 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 o.an.EMMS.playlist.containing.th
75b40 65 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 e.results."...:transient.'transi
75b60 65 6e 74 2d 2d 64 6f 2d 72 65 74 75 72 6e 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c ent--do-return...(interactive.(l
75b80 69 73 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 ist.(transient-args.transient-cu
75ba0 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 29 29 29 0a 20 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 rrent-command)))...(emms-radio-b
75bc0 72 6f 77 73 65 72 2d 71 75 65 72 79 2d 61 70 69 20 61 72 67 73 20 65 6d 6d 73 2d 72 61 64 69 6f rowser-query-api.args.emms-radio
75be0 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 65 6e 64 70 6f 69 6e 74 29 29 0a 0a 3b 3b 20 48 -browser-search-endpoint))..;;.H
75c00 65 72 65 20 69 73 20 61 6e 6f 74 68 65 72 20 77 68 69 63 68 20 6a 75 73 74 20 73 68 6f 77 73 20 ere.is.another.which.just.shows.
75c20 74 68 65 20 71 75 65 72 79 20 69 6e 20 74 68 65 20 6d 65 73 73 61 67 65 20 62 75 66 66 65 72 0a the.query.in.the.message.buffer.
75c40 3b 3b 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 20 70 75 72 70 6f 73 65 73 0a 28 74 72 61 6e 73 ;;.for.debugging.purposes.(trans
75c60 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 ient-define-suffix.emms-radio-br
75c80 6f 77 73 65 72 2d 73 68 6f 77 2d 66 75 6c 6c 2d 73 65 61 72 63 68 20 28 61 72 67 73 29 0a 20 20 owser-show-full-search.(args)...
75ca0 22 45 78 74 72 61 63 74 20 71 75 65 72 79 20 66 72 6f 6d 20 60 65 6d 6d 73 2d 72 61 64 69 6f 2d "Extract.query.from.`emms-radio-
75cc0 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 27 20 61 6e 64 20 73 68 6f 77 20 69 74 browser-full-search'.and.show.it
75ce0 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 ."...:transient.'transient--do-r
75d00 65 74 75 72 6e 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 74 72 61 6e eturn...(interactive.(list.(tran
75d20 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d sient-args.transient-current-com
75d40 6d 61 6e 64 29 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 25 53 22 20 61 72 67 73 29 29 0a 0a mand)))...(message."%S".args))..
75d60 3b 3b 20 46 69 6e 61 6c 6c 79 2c 20 77 65 20 64 65 66 69 6e 65 20 74 68 65 20 70 72 65 66 69 78 ;;.Finally,.we.define.the.prefix
75d80 2e 20 20 53 61 64 6c 79 20 65 6d 61 63 73 2d 32 39 2c 20 73 68 69 70 73 20 77 69 74 68 20 61 0a ...Sadly.emacs-29,.ships.with.a.
75da0 3b 3b 20 70 72 65 68 69 73 74 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 72 61 6e 73 69 ;;.prehistoric.version.of.transi
75dc0 65 6e 74 20 77 68 69 63 68 20 6d 69 73 73 65 73 20 62 6f 74 68 20 61 20 6c 65 76 65 6c 2d 74 6f ent.which.misses.both.a.level-to
75de0 67 67 6c 69 6e 67 0a 3b 3b 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 74 68 65 20 74 72 61 6e 73 69 ggling.;;.command.and.the.transi
75e00 65 6e 74 2d 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 63 6c 61 73 73 2e 20 20 53 6f 20 77 65 20 75 73 ent-information.class...So.we.us
75e20 65 20 61 20 6d 61 63 72 6f 20 74 6f 0a 3b 3b 20 67 69 76 65 20 64 69 66 66 65 72 65 6e 74 20 64 e.a.macro.to.;;.give.different.d
75e40 65 66 69 6e 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 70 72 65 66 69 78 20 61 63 63 6f 72 64 69 6e efintions.of.the.prefix.accordin
75e60 64 69 6e 67 20 74 6f 20 65 6d 61 63 73 20 76 65 72 73 69 6f 6e 2e 0a 0a 28 64 65 66 6d 61 63 72 ding.to.emacs.version...(defmacr
75e80 6f 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 2d 6d 61 6b 65 2d 66 75 6c 6c 2d o.emms-radio-browser--make-full-
75ea0 73 65 61 72 63 68 20 28 29 0a 20 20 22 44 65 66 69 6e 65 20 61 20 74 72 61 6e 73 69 65 6e 74 20 search.()..."Define.a.transient.
75ec0 77 69 74 68 20 66 65 61 74 75 72 65 73 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 6f 6e 20 45 6d 61 with.features.conditional.on.Ema
75ee0 63 73 20 76 65 72 73 69 6f 6e 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3c 20 65 6d 61 63 73 cs.version."...(if.(and.(<.emacs
75f00 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 33 30 29 20 28 6e 6f 74 20 28 62 6f 75 6e 64 70 20 -major-version.30).(not.(boundp.
75f20 27 74 72 61 6e 73 69 65 6e 74 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 27 28 74 72 'transient-version))).......'(tr
75f40 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 70 72 65 66 69 78 20 65 6d 6d 73 2d 72 61 64 69 6f ansient-define-prefix.emms-radio
75f60 2d 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 2d 70 72 65 66 69 78 20 28 29 0a 09 -browser-full-search-prefix.()..
75f80 20 22 43 6f 6e 73 74 72 75 63 74 20 61 20 73 65 61 72 63 68 20 71 75 65 72 79 20 62 79 20 66 69 ."Construct.a.search.query.by.fi
75fa0 6c 6c 69 6e 67 20 69 6e 20 61 20 66 6f 72 6d 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 64 69 73 lling.in.a.form...Optionally.dis
75fc0 70 61 74 63 68 20 69 74 20 74 6f 20 74 68 65 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 73 65 patch.it.to.the.radio-browser.se
75fe0 72 76 65 72 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 61 6e 0a 45 4d 4d 53 20 70 6c 61 79 6c rver.and.switch.to.an.EMMS.playl
76000 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 2e 22 0a 09 20 5b 22 45 4d 4d 53 20 72 61 64 69 6f 20 ist.of.results."...["EMMS.radio.
76020 62 72 6f 77 73 65 72 20 66 75 6c 6c 20 73 65 61 72 63 68 3a 20 68 69 74 20 63 6f 6c 6f 75 72 65 browser.full.search:.hit.coloure
76040 64 20 6c 65 74 74 65 72 73 20 74 6f 20 73 65 74 2f 75 6e 73 65 74 20 66 69 65 6c 64 73 5c 6e 22 d.letters.to.set/unset.fields\n"
76060 0a 09 20 20 5b 22 53 65 61 72 63 68 20 74 65 72 6d 73 3a 22 0a 09 20 20 20 28 22 6e 22 20 22 4e ....["Search.terms:".....("n"."N
76080 61 6d 65 22 20 22 53 74 61 74 69 6f 6e 20 6e 61 6d 65 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6e ame"."Station.name".:alist-key.n
760a0 61 6d 65 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 ame.:class.emms-radio-browser-fi
760c0 65 6c 64 29 0a 09 20 20 20 28 22 74 22 20 22 54 61 67 73 22 20 22 54 61 67 73 20 28 63 6f 6d 6d eld).....("t"."Tags"."Tags.(comm
760e0 61 20 73 65 70 61 72 61 74 65 64 29 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 74 61 67 4c 69 73 74 a.separated)".:alist-key.tagList
76100 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 .:class.emms-radio-browser-field
76120 29 0a 09 20 20 20 28 22 63 22 20 22 43 6f 75 6e 74 72 79 22 20 22 43 6f 75 6e 74 72 79 22 20 3a ).....("c"."Country"."Country".:
76140 61 6c 69 73 74 2d 6b 65 79 20 63 6f 75 6e 74 72 79 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 alist-key.country.:class.emms-ra
76160 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 0a 09 20 20 20 28 22 6c 22 20 22 4c 61 6e dio-browser-field).....("l"."Lan
76180 67 75 61 67 65 22 20 22 4c 61 6e 67 75 61 67 65 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6c 61 6e guage"."Language".:alist-key.lan
761a0 67 75 61 67 65 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d guage.:class.emms-radio-browser-
761c0 66 69 65 6c 64 29 5d 0a 09 20 20 5b 22 45 78 61 63 74 20 6d 61 74 63 68 65 73 20 66 6f 72 3a 22 field)]....["Exact.matches.for:"
761e0 0a 09 20 20 20 28 22 78 6e 22 20 22 4e 61 6d 65 22 20 22 45 78 61 63 74 20 6e 61 6d 65 73 22 20 .....("xn"."Name"."Exact.names".
76200 3a 61 6c 69 73 74 2d 6b 65 79 20 6e 61 6d 65 45 78 61 63 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 :alist-key.nameExact.:class.emms
76220 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 0a 09 20 20 20 28 22 78 74 22 20 22 -radio-browser-bool).....("xt"."
76240 54 61 67 73 22 20 22 45 78 61 63 74 20 74 61 67 73 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 74 61 Tags"."Exact.tags".:alist-key.ta
76260 67 45 78 61 63 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 gExact.:class.emms-radio-browser
76280 2d 62 6f 6f 6c 29 0a 09 20 20 20 28 22 78 63 22 20 22 43 6f 75 6e 74 72 79 22 20 22 45 78 61 63 -bool).....("xc"."Country"."Exac
762a0 74 20 63 6f 75 6e 74 72 79 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 63 6f 75 6e 74 72 79 45 78 61 t.country".:alist-key.countryExa
762c0 63 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f ct.:class.emms-radio-browser-boo
762e0 6c 29 0a 09 20 20 20 28 22 78 6c 22 20 22 4c 61 6e 67 75 61 67 65 22 20 22 45 78 61 63 74 20 6c l).....("xl"."Language"."Exact.l
76300 61 6e 67 75 61 67 65 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6c 61 6e 67 75 61 67 65 45 78 61 63 anguage".:alist-key.languageExac
76320 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c t.:class.emms-radio-browser-bool
76340 29 5d 0a 09 20 20 5b 22 41 64 76 61 6e 63 65 64 20 73 65 61 72 63 68 20 74 65 72 6d 73 3a 22 20 )]....["Advanced.search.terms:".
76360 3a 70 61 64 2d 6b 65 79 73 20 74 0a 09 20 20 20 28 22 43 22 20 22 43 6f 64 65 63 22 20 22 43 6f :pad-keys.t.....("C"."Codec"."Co
76380 64 65 63 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 63 6f 64 65 63 20 3a 63 6c 61 73 73 20 65 6d 6d dec".:alist-key.codec.:class.emm
763a0 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 0a 09 20 20 20 28 22 62 6e 22 s-radio-browser-field).....("bn"
763c0 20 22 4d 69 6e 69 6d 75 6d 20 62 69 74 72 61 74 65 22 20 22 4d 69 6e 69 6d 75 6d 20 62 69 74 72 ."Minimum.bitrate"."Minimum.bitr
763e0 61 74 65 20 28 6b 62 2f 73 29 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 62 69 74 72 61 74 65 4d 69 ate.(kb/s)".:alist-key.bitrateMi
76400 6e 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c n.:class.emms-radio-browser-fiel
76420 64 0a 09 20 20 20 20 3a 72 65 61 64 65 72 20 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 d......:reader.transient-read-nu
76440 6d 62 65 72 2d 4e 30 29 0a 09 20 20 20 28 22 62 7a 22 20 22 4d 61 78 69 6d 75 6d 20 62 69 74 72 mber-N0).....("bz"."Maximum.bitr
76460 61 74 65 22 20 22 4d 61 78 69 6d 75 6d 20 62 69 74 72 61 74 65 20 28 6b 62 2f 73 29 22 20 3a 61 ate"."Maximum.bitrate.(kb/s)".:a
76480 6c 69 73 74 2d 6b 65 79 20 62 69 74 72 61 74 65 4d 69 6e 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d list-key.bitrateMin.:class.emms-
764a0 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 0a 09 20 20 20 20 3a 72 65 61 64 65 72 radio-browser-field......:reader
764c0 20 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 2d 4e 30 29 0a 09 20 20 20 28 .transient-read-number-N0).....(
764e0 22 6b 22 20 22 43 6f 75 6e 74 72 79 20 63 6f 64 65 22 20 22 43 6f 75 6e 74 72 79 20 63 6f 64 65 "k"."Country.code"."Country.code
76500 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 63 6f 75 6e 74 72 79 63 6f 64 65 20 3a 63 6c 61 73 73 20 ".:alist-key.countrycode.:class.
76520 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 5d 5d 0a 09 20 5b 22 emms-radio-browser-field)]]...["
76540 53 65 61 72 63 68 20 70 61 72 61 6d 65 74 65 72 73 3a 22 0a 09 20 20 28 22 6d 22 20 22 4d 61 78 Search.parameters:"....("m"."Max
76560 69 6d 75 6d 20 68 69 74 73 22 20 22 4d 61 78 69 6d 75 6d 20 48 69 74 73 22 20 3a 61 6c 69 73 74 imum.hits"."Maximum.Hits".:alist
76580 2d 6b 65 79 20 6c 69 6d 69 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f -key.limit.:class.emms-radio-bro
765a0 77 73 65 72 2d 66 69 65 6c 64 0a 09 20 20 20 3a 72 65 61 64 65 72 20 74 72 61 6e 73 69 65 6e 74 wser-field.....:reader.transient
765c0 2d 72 65 61 64 2d 6e 75 6d 62 65 72 2d 4e 2b 20 3a 61 6c 77 61 79 73 2d 72 65 61 64 20 74 29 0a -read-number-N+.:always-read.t).
765e0 09 20 20 28 22 6f 22 20 22 4f 72 64 65 72 20 62 79 22 20 22 4f 72 64 65 72 20 62 79 22 20 3a 61 ...("o"."Order.by"."Order.by".:a
76600 6c 69 73 74 2d 6b 65 79 20 6f 72 64 65 72 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f list-key.order.:class.emms-radio
76620 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 0a 09 20 20 20 3a 63 68 6f 69 63 65 73 20 28 6c 61 6d -browser-field.....:choices.(lam
76640 62 64 61 20 28 29 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 6f 72 64 65 72 2d bda.().emms-radio-browser-order-
76660 66 69 65 6c 64 73 29 20 3a 61 6c 77 61 79 73 2d 72 65 61 64 20 74 29 0a 09 20 20 28 22 64 22 20 fields).:always-read.t)....("d".
76680 22 44 65 73 63 65 6e 64 69 6e 67 22 20 22 44 65 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 22 20 "Descending"."Descending.order".
766a0 3a 61 6c 69 73 74 2d 6b 65 79 20 72 65 76 65 72 73 65 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 :alist-key.reverse.:class.emms-r
766c0 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 5d 0a 09 20 5b 3a 63 6c 61 73 73 20 74 72 adio-browser-bool)]...[:class.tr
766e0 61 6e 73 69 65 6e 74 2d 72 6f 77 20 22 41 63 74 69 6f 6e 73 3a 22 0a 09 09 20 28 22 43 2d 63 20 ansient-row."Actions:"....("C-c.
76700 43 2d 63 22 20 22 45 78 65 63 75 74 65 20 73 65 61 72 63 68 22 20 65 6d 6d 73 2d 72 61 64 69 6f C-c"."Execute.search".emms-radio
76720 2d 62 72 6f 77 73 65 72 2d 65 78 65 63 75 74 65 2d 66 75 6c 6c 2d 73 65 61 72 63 68 29 0a 09 09 -browser-execute-full-search)...
76740 20 28 22 43 2d 63 20 43 2d 6b 22 20 22 41 62 61 6e 64 6f 6e 20 73 65 61 72 63 68 22 20 69 67 6e .("C-c.C-k"."Abandon.search".ign
76760 6f 72 65 29 0a 09 09 20 5d 29 0a 20 20 20 20 27 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e ore)....]).....'(transient-defin
76780 65 2d 70 72 65 66 69 78 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 75 6c 6c e-prefix.emms-radio-browser-full
767a0 2d 73 65 61 72 63 68 2d 70 72 65 66 69 78 20 28 29 0a 20 20 20 20 20 20 20 22 43 6f 6e 73 74 72 -search-prefix.()........"Constr
767c0 75 63 74 20 61 20 73 65 61 72 63 68 20 71 75 65 72 79 20 62 79 20 66 69 6c 6c 69 6e 67 20 69 6e uct.a.search.query.by.filling.in
767e0 20 61 20 66 6f 72 6d 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 64 69 73 70 61 74 63 68 20 69 74 .a.form...Optionally.dispatch.it
76800 20 74 6f 20 74 68 65 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 73 65 72 76 65 72 20 61 6e 64 .to.the.radio-browser.server.and
76820 20 73 77 69 74 63 68 20 74 6f 20 61 6e 0a 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 72 .switch.to.an.EMMS.playlist.of.r
76840 65 73 75 6c 74 73 2e 22 0a 20 20 20 20 20 20 20 3a 63 6f 6c 75 6d 6e 2d 77 69 64 74 68 73 20 27 esults."........:column-widths.'
76860 28 33 30 20 32 30 20 33 30 29 0a 20 20 20 20 20 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 (30.20.30)........[:description.
76880 22 45 4d 4d 53 20 72 61 64 69 6f 20 62 72 6f 77 73 65 72 20 66 75 6c 6c 20 73 65 61 72 63 68 22 "EMMS.radio.browser.full.search"
768a0 0a 09 09 20 20 20 20 20 28 3a 69 6e 66 6f 20 22 48 69 74 20 63 6f 6c 6f 75 72 65 64 20 6c 65 74 ........(:info."Hit.coloured.let
768c0 74 65 72 73 20 74 6f 20 73 65 74 2f 75 6e 73 65 74 20 66 69 65 6c 64 73 22 29 0a 09 09 20 20 20 ters.to.set/unset.fields")......
768e0 20 20 28 3a 69 6e 66 6f 20 27 28 6c 61 6d 62 64 61 20 28 29 20 28 63 6f 6e 63 61 74 20 28 70 72 ..(:info.'(lambda.().(concat.(pr
76900 6f 70 65 72 74 69 7a 65 20 22 43 2d 78 20 61 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 opertize."C-x.a".'face.'help-key
76920 2d 62 69 6e 64 69 6e 67 29 0a 09 09 09 09 09 09 22 20 74 6f 20 74 6f 67 67 6c 65 20 61 64 76 61 -binding).......".to.toggle.adva
76940 6e 63 65 64 20 73 65 61 72 63 68 22 29 29 29 0a 09 09 20 20 20 20 20 28 3a 69 6e 66 6f 20 27 28 nced.search")))........(:info.'(
76960 6c 61 6d 62 64 61 20 28 29 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 43 lambda.().(concat.(propertize."C
76980 2d 63 20 43 2d 63 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 -c.C-c".'face.'help-key-binding)
769a0 0a 09 09 09 09 09 09 22 20 74 6f 20 65 78 65 63 75 74 65 20 74 68 65 20 73 65 61 72 63 68 22 29 .......".to.execute.the.search")
769c0 29 29 0a 09 09 20 20 20 20 20 28 3a 69 6e 66 6f 20 27 28 6c 61 6d 62 64 61 20 28 29 20 28 63 6f ))........(:info.'(lambda.().(co
769e0 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 43 2d 63 20 43 2d 6b 22 20 27 66 61 63 65 ncat.(propertize."C-c.C-k".'face
76a00 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 09 09 09 09 09 09 22 20 74 6f 20 61 .'help-key-binding).......".to.a
76a20 62 61 6e 64 6f 6e 20 74 68 65 20 73 65 61 72 63 68 22 29 29 29 5d 0a 20 20 20 20 20 20 20 5b 5b bandon.the.search")))]........[[
76a40 22 53 65 61 72 63 68 20 74 65 72 6d 73 3a 22 0a 09 20 28 22 6e 22 20 22 4e 61 6d 65 22 20 22 53 "Search.terms:"...("n"."Name"."S
76a60 74 61 74 69 6f 6e 20 6e 61 6d 65 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6e 61 6d 65 20 3a 63 6c tation.name".:alist-key.name.:cl
76a80 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 0a 09 20 ass.emms-radio-browser-field)...
76aa0 28 22 74 22 20 22 54 61 67 73 22 20 22 54 61 67 73 20 28 63 6f 6d 6d 61 20 73 65 70 61 72 61 74 ("t"."Tags"."Tags.(comma.separat
76ac0 65 64 29 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 74 61 67 4c 69 73 74 20 3a 63 6c 61 73 73 20 65 ed)".:alist-key.tagList.:class.e
76ae0 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 0a 09 20 28 22 63 22 20 mms-radio-browser-field)...("c".
76b00 22 43 6f 75 6e 74 72 79 22 20 22 43 6f 75 6e 74 72 79 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 63 "Country"."Country".:alist-key.c
76b20 6f 75 6e 74 72 79 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 ountry.:class.emms-radio-browser
76b40 2d 66 69 65 6c 64 29 0a 09 20 28 22 6c 22 20 22 4c 61 6e 67 75 61 67 65 22 20 22 4c 61 6e 67 75 -field)...("l"."Language"."Langu
76b60 61 67 65 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6c 61 6e 67 75 61 67 65 20 3a 63 6c 61 73 73 20 age".:alist-key.language.:class.
76b80 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 29 5d 0a 09 5b 35 20 22 emms-radio-browser-field)]..[5."
76ba0 45 78 61 63 74 20 6d 61 74 63 68 65 73 20 66 6f 72 3a 22 0a 09 20 20 20 28 22 78 6e 22 20 22 4e Exact.matches.for:".....("xn"."N
76bc0 61 6d 65 22 20 22 45 78 61 63 74 20 6e 61 6d 65 73 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6e 61 ame"."Exact.names".:alist-key.na
76be0 6d 65 45 78 61 63 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 meExact.:class.emms-radio-browse
76c00 72 2d 62 6f 6f 6c 29 0a 09 20 20 20 28 22 78 74 22 20 22 54 61 67 73 22 20 22 45 78 61 63 74 20 r-bool).....("xt"."Tags"."Exact.
76c20 74 61 67 73 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 74 61 67 45 78 61 63 74 20 3a 63 6c 61 73 73 tags".:alist-key.tagExact.:class
76c40 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 0a 09 20 20 20 28 22 .emms-radio-browser-bool).....("
76c60 78 63 22 20 22 43 6f 75 6e 74 72 79 22 20 22 45 78 61 63 74 20 63 6f 75 6e 74 72 79 22 20 3a 61 xc"."Country"."Exact.country".:a
76c80 6c 69 73 74 2d 6b 65 79 20 63 6f 75 6e 74 72 79 45 78 61 63 74 20 3a 63 6c 61 73 73 20 65 6d 6d list-key.countryExact.:class.emm
76ca0 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 0a 09 20 20 20 28 22 78 6c 22 20 s-radio-browser-bool).....("xl".
76cc0 22 4c 61 6e 67 75 61 67 65 22 20 22 45 78 61 63 74 20 6c 61 6e 67 75 61 67 65 22 20 3a 61 6c 69 "Language"."Exact.language".:ali
76ce0 73 74 2d 6b 65 79 20 6c 61 6e 67 75 61 67 65 45 78 61 63 74 20 3a 63 6c 61 73 73 20 65 6d 6d 73 st-key.languageExact.:class.emms
76d00 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 5d 0a 09 5b 35 20 22 41 64 76 61 6e -radio-browser-bool)]..[5."Advan
76d20 63 65 64 20 73 65 61 72 63 68 20 74 65 72 6d 73 3a 22 20 3a 70 61 64 2d 6b 65 79 73 20 74 0a 09 ced.search.terms:".:pad-keys.t..
76d40 20 20 20 28 22 43 22 20 22 43 6f 64 65 63 22 20 22 43 6f 64 65 63 22 20 3a 61 6c 69 73 74 2d 6b ...("C"."Codec"."Codec".:alist-k
76d60 65 79 20 63 6f 64 65 63 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 ey.codec.:class.emms-radio-brows
76d80 65 72 2d 66 69 65 6c 64 29 0a 09 20 20 20 28 22 62 6e 22 20 22 4d 69 6e 69 6d 75 6d 20 62 69 74 er-field).....("bn"."Minimum.bit
76da0 72 61 74 65 22 20 22 4d 69 6e 69 6d 75 6d 20 62 69 74 72 61 74 65 20 28 6b 62 2f 73 29 22 20 3a rate"."Minimum.bitrate.(kb/s)".:
76dc0 61 6c 69 73 74 2d 6b 65 79 20 62 69 74 72 61 74 65 4d 69 6e 20 3a 63 6c 61 73 73 20 65 6d 6d 73 alist-key.bitrateMin.:class.emms
76de0 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 0a 09 20 20 20 20 3a 72 65 61 64 65 -radio-browser-field......:reade
76e00 72 20 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 2d 4e 30 29 0a 09 20 20 20 r.transient-read-number-N0).....
76e20 28 22 62 7a 22 20 22 4d 61 78 69 6d 75 6d 20 62 69 74 72 61 74 65 22 20 22 4d 61 78 69 6d 75 6d ("bz"."Maximum.bitrate"."Maximum
76e40 20 62 69 74 72 61 74 65 20 28 6b 62 2f 73 29 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 62 69 74 72 .bitrate.(kb/s)".:alist-key.bitr
76e60 61 74 65 4d 69 6e 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 ateMin.:class.emms-radio-browser
76e80 2d 66 69 65 6c 64 0a 09 20 20 20 20 3a 72 65 61 64 65 72 20 74 72 61 6e 73 69 65 6e 74 2d 72 65 -field......:reader.transient-re
76ea0 61 64 2d 6e 75 6d 62 65 72 2d 4e 30 29 0a 09 20 20 20 28 22 6b 22 20 22 43 6f 75 6e 74 72 79 20 ad-number-N0).....("k"."Country.
76ec0 63 6f 64 65 22 20 22 43 6f 75 6e 74 72 79 20 63 6f 64 65 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 code"."Country.code".:alist-key.
76ee0 63 6f 75 6e 74 72 79 63 6f 64 65 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 countrycode.:class.emms-radio-br
76f00 6f 77 73 65 72 2d 66 69 65 6c 64 29 5d 5d 0a 20 20 20 20 20 20 20 5b 22 53 65 61 72 63 68 20 70 owser-field)]]........["Search.p
76f20 61 72 61 6d 65 74 65 72 73 3a 22 0a 09 28 22 6d 22 20 22 4d 61 78 69 6d 75 6d 20 68 69 74 73 22 arameters:"..("m"."Maximum.hits"
76f40 20 22 4d 61 78 69 6d 75 6d 20 48 69 74 73 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6c 69 6d 69 74 ."Maximum.Hits".:alist-key.limit
76f60 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 .:class.emms-radio-browser-field
76f80 0a 09 20 3a 72 65 61 64 65 72 20 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 ...:reader.transient-read-number
76fa0 2d 4e 2b 20 3a 61 6c 77 61 79 73 2d 72 65 61 64 20 74 29 0a 09 28 22 6f 22 20 22 4f 72 64 65 72 -N+.:always-read.t)..("o"."Order
76fc0 20 62 79 22 20 22 4f 72 64 65 72 20 62 79 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 6f 72 64 65 72 .by"."Order.by".:alist-key.order
76fe0 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 69 65 6c 64 .:class.emms-radio-browser-field
77000 0a 09 20 3a 63 68 6f 69 63 65 73 20 28 6c 61 6d 62 64 61 20 28 29 20 65 6d 6d 73 2d 72 61 64 69 ...:choices.(lambda.().emms-radi
77020 6f 2d 62 72 6f 77 73 65 72 2d 6f 72 64 65 72 2d 66 69 65 6c 64 73 29 20 3a 61 6c 77 61 79 73 2d o-browser-order-fields).:always-
77040 72 65 61 64 20 74 29 0a 09 28 22 64 22 20 22 44 65 73 63 65 6e 64 69 6e 67 22 20 22 44 65 73 63 read.t)..("d"."Descending"."Desc
77060 65 6e 64 69 6e 67 20 6f 72 64 65 72 22 20 3a 61 6c 69 73 74 2d 6b 65 79 20 72 65 76 65 72 73 65 ending.order".:alist-key.reverse
77080 20 3a 63 6c 61 73 73 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 62 6f 6f 6c 29 .:class.emms-radio-browser-bool)
770a0 5d 0a 20 20 20 20 20 20 20 5b 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 72 6f 77 20 22 ]........[:class.transient-row."
770c0 41 63 74 69 6f 6e 73 3a 22 0a 09 20 20 20 20 20 20 20 28 22 43 2d 63 20 43 2d 63 22 20 22 45 78 Actions:".........("C-c.C-c"."Ex
770e0 65 63 75 74 65 20 73 65 61 72 63 68 22 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 ecute.search".emms-radio-browser
77100 2d 65 78 65 63 75 74 65 2d 66 75 6c 6c 2d 73 65 61 72 63 68 29 0a 09 20 20 20 20 20 20 20 28 22 -execute-full-search).........("
77120 43 2d 63 20 43 2d 6b 22 20 22 41 62 61 6e 64 6f 6e 20 73 65 61 72 63 68 22 20 69 67 6e 6f 72 65 C-c.C-k"."Abandon.search".ignore
77140 29 0a 09 20 20 20 20 20 20 20 28 36 20 22 73 22 20 22 53 68 6f 77 20 73 65 61 72 63 68 22 20 65 ).........(6."s"."Show.search".e
77160 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 66 75 6c 6c 2d 73 65 61 72 mms-radio-browser-show-full-sear
77180 63 68 29 5d 29 29 29 0a 0a 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 2d 6d 61 ch)])))..(emms-radio-browser--ma
771a0 6b 65 2d 66 75 6c 6c 2d 73 65 61 72 63 68 29 0a 0a 3b 3b 2a 2a 20 51 75 65 72 79 20 74 68 65 20 ke-full-search)..;;**.Query.the.
771c0 73 65 72 76 65 72 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 server..(defun.emms-radio-browse
771e0 72 2d 71 75 65 72 79 2d 61 70 69 20 28 71 75 65 72 79 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 22 r-query-api.(query.endpoint)..."
77200 53 65 6e 64 20 51 55 45 52 59 20 74 6f 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 45 4e 44 50 Send.QUERY.to.radio-browser.ENDP
77220 4f 49 4e 54 2e 0a 0a 51 55 45 52 59 20 69 73 20 61 6e 20 61 6c 69 73 74 20 73 75 69 74 61 62 6c OINT...QUERY.is.an.alist.suitabl
77240 65 20 66 6f 72 20 60 6a 73 6f 6e 2d 65 6e 63 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 e.for.`json-encode'."...(let*.((
77260 74 61 72 67 65 74 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 target-url.(concat.(emms-radio-b
77280 72 6f 77 73 65 72 2d 62 61 73 65 2d 75 72 6c 29 20 65 6e 64 70 6f 69 6e 74 29 29 0a 09 20 3b 3b rowser-base-url).endpoint))...;;
772a0 20 77 65 20 65 6e 63 6f 64 65 20 45 56 45 52 59 54 48 49 4e 47 20 74 6f 20 73 74 6f 70 20 75 72 .we.encode.EVERYTHING.to.stop.ur
772c0 6c 2d 72 65 74 72 69 65 76 65 20 74 68 72 6f 77 69 6e 67 20 61 20 77 6f 62 62 6c 79 0a 09 20 3b l-retrieve.throwing.a.wobbly...;
772e0 3b 20 69 66 20 69 74 20 65 6e 63 6f 75 6e 74 65 72 73 20 6e 6f 6e 2d 61 73 63 69 69 20 64 61 74 ;.if.it.encounters.non-ascii.dat
77300 61 2c 20 73 69 67 68 2e 0a 09 20 28 75 73 65 72 2d 61 67 65 6e 74 2d 65 6e 63 6f 64 65 64 20 28 a,.sigh....(user-agent-encoded.(
77320 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 65 6d 6d 73 2d 72 61 64 69 6f 2d encode-coding-string.emms-radio-
77340 62 72 6f 77 73 65 72 2d 75 73 65 72 2d 61 67 65 6e 74 20 27 75 74 66 2d 38 29 29 0a 09 20 28 75 browser-user-agent.'utf-8))...(u
77360 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 0a 09 20 28 75 72 6c rl-request-method."POST")...(url
77380 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 -request-data.(encode-coding-str
773a0 69 6e 67 20 28 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 71 75 65 72 79 29 20 27 75 74 66 2d 38 29 29 ing.(json-encode.query).'utf-8))
773c0 0a 09 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 20 60 28 ...(url-request-extra-headers.`(
773e0 28 22 43 6f 6e 74 65 6e 74 2d 74 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a ("Content-type"..."application/j
77400 73 6f 6e 3b 20 63 68 61 72 73 65 74 3d 75 74 66 2d 38 22 29 0a 09 09 09 09 20 20 20 20 20 20 28 son;.charset=utf-8")...........(
77420 22 55 73 65 72 2d 41 67 65 6e 74 22 20 2e 20 2c 75 73 65 72 2d 61 67 65 6e 74 2d 65 6e 63 6f 64 "User-Agent"...,user-agent-encod
77440 65 64 29 29 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d ed)))).....(ignore.url-request-m
77460 65 74 68 6f 64 0a 09 20 20 20 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 0a 09 20 20 20 ethod......url-request-data.....
77480 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 .url-request-extra-headers).....
774a0 28 75 72 6c 2d 72 65 74 72 69 65 76 65 0a 20 20 20 20 20 74 61 72 67 65 74 2d 75 72 6c 0a 20 20 (url-retrieve......target-url...
774c0 20 20 20 23 27 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 71 75 65 72 79 2d 63 61 ...#'emms-radio-browser-query-ca
774e0 6c 6c 62 61 63 6b 0a 20 20 20 20 20 28 6c 69 73 74 20 71 75 65 72 79 29 29 29 29 0a 0a 0a 0a 3b llback......(list.query))))....;
77500 3b 2a 20 48 61 6e 64 6c 65 20 74 68 65 20 72 65 70 6c 79 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ;*.Handle.the.reply.(defun.emms-
77520 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 63 68 65 63 6b 2d 72 65 73 70 6f 6e 73 65 20 28 29 0a radio-browser-check-response.().
77540 20 20 22 45 72 72 6f 72 20 6f 75 74 20 69 66 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e 73 65 20 .."Error.out.if.server.response.
77560 68 65 61 64 65 72 73 20 6c 6f 6f 6b 20 62 61 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 6b 32 30 headers.look.bad."...(let.((ok20
77580 30 20 22 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 22 29 29 0a 20 20 20 20 28 69 66 20 28 3c 0."HTTP/1.1.200.OK")).....(if.(<
775a0 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 31 29 0a 09 28 65 72 72 6f 72 20 22 4e 6f 20 72 65 73 70 .(point-max).1)..(error."No.resp
775c0 6f 6e 73 65 20 66 72 6f 6d 20 73 65 72 76 65 72 22 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 onse.from.server")).....(if.(not
775e0 20 28 73 74 72 69 6e 67 3d 20 6f 6b 32 30 30 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e .(string=.ok200.(buffer-substrin
77600 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 31 36 29 29 g-no-properties.(point-min).16))
77620 29 0a 09 28 65 72 72 6f 72 20 22 53 65 72 76 65 72 20 6e 6f 74 20 72 65 73 70 6f 6e 64 69 6e 67 )..(error."Server.not.responding
77640 20 63 6f 72 72 65 63 74 6c 79 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 .correctly"))))..(defun.emms-rad
77660 69 6f 2d 62 72 6f 77 73 65 72 2d 6a 73 6f 6e 2d 74 6f 2d 74 72 61 63 6b 20 28 64 61 74 61 29 0a io-browser-json-to-track.(data).
77680 20 20 22 43 6f 6e 76 65 72 74 20 44 41 54 41 20 74 6f 20 45 4d 4d 53 20 73 74 72 65 61 6d 2d 6c .."Convert.DATA.to.EMMS.stream-l
776a0 69 73 74 2e 0a 0a 54 72 69 65 73 20 6e 6f 74 20 74 6f 20 63 61 63 68 65 20 74 68 65 20 72 65 73 ist...Tries.not.to.cache.the.res
776c0 75 6c 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 ult."...(let.((emms-cache-modifi
776e0 65 64 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 0a 09 28 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 ed-function.nil)..(emms-cache-se
77700 74 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 29 0a 20 20 20 20 28 6c 65 74 2d 61 6c 69 73 74 20 t-function.nil)).....(let-alist.
77720 64 61 74 61 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 74 72 data.......(let.((track.(emms-tr
77740 61 63 6b 20 27 73 74 72 65 61 6d 6c 69 73 74 20 2e 75 72 6c 29 29 0a 09 20 20 20 20 28 6d 65 74 ack.'streamlist..url))......(met
77760 61 64 61 74 61 20 28 6c 69 73 74 20 2e 6e 61 6d 65 20 2e 75 72 6c 20 31 20 27 73 74 72 65 61 6d adata.(list..name..url.1.'stream
77780 6c 69 73 74 29 29 29 0a 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 list)))..(emms-track-set.track.'
777a0 6d 65 74 61 64 61 74 61 20 6d 65 74 61 64 61 74 61 29 0a 09 74 72 61 63 6b 29 29 29 29 0a 0a 28 metadata.metadata)..track))))..(
777c0 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 64 69 73 70 6c 61 79 defun.emms-radio-browser-display
777e0 2d 74 72 61 63 6b 73 20 28 74 72 61 63 6b 73 29 0a 20 20 22 4c 6f 61 64 20 54 52 41 43 4b 53 20 -tracks.(tracks)..."Load.TRACKS.
77800 69 6e 74 6f 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 64 69 73 into.new.playlist.buffer.and.dis
77820 70 6c 61 79 20 73 61 6d 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 65 6d 6d 73 2d 70 play.same."...(let.((buf.(emms-p
77840 6c 61 79 6c 69 73 74 2d 6e 65 77 20 22 2a 45 4d 4d 53 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 laylist-new."*EMMS.radio-browser
77860 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 2a 22 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 .search.results*"))).....(with-c
77880 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 urrent-buffer.buf.......(mapc.#'
778a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b emms-playlist-insert-track.track
778c0 73 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 28 s).......(emms-playlist-select.(
778e0 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 point-min)).......(emms-playlist
77900 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 3b 3b 20 28 -mode-center-current).......;;.(
77920 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 emms-playlist-set-playlist-buffe
77940 72 29 0a 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 29 r).......(switch-to-buffer.buf))
77960 29 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 71 ))...(defun.emms-radio-browser-q
77980 75 65 72 79 2d 63 61 6c 6c 62 61 63 6b 20 28 73 74 61 74 75 73 20 26 6f 70 74 69 6f 6e 61 6c 20 uery-callback.(status.&optional.
779a0 63 62 61 72 67 73 29 0a 20 20 22 50 72 6f 63 65 73 73 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e cbargs)..."Process.server.respon
779c0 73 65 20 61 6e 64 20 64 69 73 70 6c 61 79 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 72 65 73 75 6c se.and.display.playlist.of.resul
779e0 74 73 2e 0a 0a 4d 61 6e 64 61 74 6f 72 79 20 63 61 6c 6c 62 61 63 6b 20 61 72 67 75 6d 65 6e 74 ts...Mandatory.callback.argument
77a00 73 20 53 54 41 54 55 53 20 61 6e 64 20 43 42 41 52 47 53 20 61 72 65 20 69 67 6e 6f 72 65 64 2e s.STATUS.and.CBARGS.are.ignored.
77a20 22 0a 20 20 3b 3b 20 43 68 65 63 6b 20 72 65 73 70 6f 6e 73 65 20 4f 4b 2e 0a 20 20 28 69 67 6e "...;;.Check.response.OK....(ign
77a40 6f 72 65 20 73 74 61 74 75 73 20 63 62 61 72 67 73 29 0a 20 20 28 73 65 74 2d 62 75 66 66 65 72 ore.status.cbargs)...(set-buffer
77a60 2d 6d 75 6c 74 69 62 79 74 65 20 74 29 0a 20 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 -multibyte.t)...(emms-radio-brow
77a80 73 65 72 2d 63 68 65 63 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 3b 3b 20 53 6c 75 72 70 20 6a ser-check-response)...;;.Slurp.j
77aa0 73 6f 6e 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 son...(goto-char.(point-min))...
77ac0 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 09 (let.((response.(ignore-errors..
77ae0 09 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 6e 5c 6e 22 29 0a .....(re-search-forward."\n\n").
77b00 09 09 20 20 20 20 28 6a 73 6f 6e 2d 72 65 61 64 29 29 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 ......(json-read)))).....(kill-b
77b20 75 66 66 65 72 29 0a 20 20 20 20 28 69 66 20 28 73 65 71 2d 65 6d 70 74 79 2d 70 20 72 65 73 70 uffer).....(if.(seq-empty-p.resp
77b40 6f 6e 73 65 29 0a 09 28 6d 65 73 73 61 67 65 20 22 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 onse)..(message."emms-radio-brow
77b60 73 65 72 3a 20 4e 6f 20 6d 61 74 63 68 65 73 20 66 6f 75 6e 64 21 22 29 0a 20 20 20 20 20 20 28 ser:.No.matches.found!").......(
77b80 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 64 69 73 70 6c 61 79 2d 74 72 61 63 6b emms-radio-browser-display-track
77ba0 73 0a 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 s........(mapcar.#'emms-radio-br
77bc0 6f 77 73 65 72 2d 6a 73 6f 6e 2d 74 6f 2d 74 72 61 63 6b 20 72 65 73 70 6f 6e 73 65 29 29 29 29 owser-json-to-track.response))))
77be0 29 0a 0a 0a 3b 3b 2a 20 45 6e 74 72 79 20 70 6f 69 6e 74 73 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c )...;;*.Entry.points.;;;###autol
77c00 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 oad.(defun.emms-radio-browser-se
77c20 61 72 63 68 2d 62 79 2d 6e 61 6d 65 20 28 6e 61 6d 65 29 0a 20 20 22 53 65 61 72 63 68 20 72 61 arch-by-name.(name)..."Search.ra
77c40 64 69 6f 2d 62 72 6f 77 73 65 72 20 66 6f 72 20 73 74 61 74 69 6f 6e 73 20 6d 61 74 63 68 69 6e dio-browser.for.stations.matchin
77c60 67 20 4e 41 4d 45 2e 0a 0a 53 77 69 74 63 68 65 73 20 74 6f 20 61 6e 20 45 4d 4d 53 20 70 6c 61 g.NAME...Switches.to.an.EMMS.pla
77c80 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 73 2e 22 0a 20 ylist.containing.the.results."..
77ca0 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 73 53 65 61 72 63 68 20 66 6f 72 20 73 74 61 74 69 .(interactive."sSearch.for.stati
77cc0 6f 6e 20 6e 61 6d 65 3a 20 22 29 0a 20 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 on.name:.")...(emms-radio-browse
77ce0 72 2d 71 75 65 72 79 2d 61 70 69 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d r-query-api.(emms-radio-browser-
77d00 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 2d 70 61 79 6c 6f 61 64 20 6e 61 6d 65 29 0a 09 09 09 search-by-name-payload.name)....
77d20 09 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 65 6e 64 70 6f .emms-radio-browser-search-endpo
77d40 69 6e 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d int))..;;;###autoload.(defun.emm
77d60 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 75 72 6c 20 28 75 s-radio-browser-search-by-url.(u
77d80 72 6c 29 0a 20 20 22 53 65 61 72 63 68 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 66 6f 72 20 rl)..."Search.radio-browser.for.
77da0 73 74 61 74 69 6f 6e 73 20 6d 61 74 63 68 69 6e 67 20 55 52 4c 2e 0a 0a 53 77 69 74 63 68 65 73 stations.matching.URL...Switches
77dc0 20 74 6f 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 .to.an.EMMS.playlist.containing.
77de0 74 68 65 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 73 53 the.results."...(interactive."sS
77e00 65 61 72 63 68 20 66 6f 72 20 55 52 4c 3a 20 22 29 0a 20 20 28 65 6d 6d 73 2d 72 61 64 69 6f 2d earch.for.URL:.")...(emms-radio-
77e20 62 72 6f 77 73 65 72 2d 71 75 65 72 79 2d 61 70 69 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 27 75 browser-query-api.(list.(cons.'u
77e40 72 6c 20 75 72 6c 29 29 0a 09 09 09 09 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d rl.url)).....emms-radio-browser-
77e60 75 72 6c 2d 65 6e 64 70 6f 69 6e 74 29 29 0a 0a 3b 3b 20 46 69 6e 61 6c 6c 79 20 6c 6f 61 64 20 url-endpoint))..;;.Finally.load.
77e80 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 66 6f 72 20 6d 61 6b 69 6e 67 20 61 20 66 75 6c 6c 20 the.transient.for.making.a.full.
77ea0 73 65 61 72 63 68 2e 20 20 54 68 69 73 20 77 61 73 0a 3b 3b 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c search...This.was.;;conditionall
77ec0 79 20 64 65 66 69 6e 65 64 20 61 62 6f 76 65 2e 20 20 57 65 20 77 72 61 70 20 69 6e 20 69 6e 20 y.defined.above...We.wrap.in.in.
77ee0 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 67 65 74 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 2e 0a a.function.to.get.the.autoload..
77f00 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f ;;;###autoload.(defun.emms-radio
77f20 2d 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 20 28 29 0a 20 20 22 43 6f 6e 73 74 -browser-full-search.()..."Const
77f40 72 75 63 74 20 61 20 73 65 61 72 63 68 20 71 75 65 72 79 20 62 79 20 66 69 6c 6c 69 6e 67 20 69 ruct.a.search.query.by.filling.i
77f60 6e 20 61 20 66 6f 72 6d 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 64 69 73 70 61 74 63 68 20 69 n.a.form...Optionally.dispatch.i
77f80 74 20 74 6f 20 74 68 65 20 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 20 73 65 72 76 65 72 20 61 6e t.to.the.radio-browser.server.an
77fa0 64 20 73 77 69 74 63 68 20 74 6f 20 61 6e 0a 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 d.switch.to.an.EMMS.playlist.of.
77fc0 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 61 6c results."...(interactive)...(cal
77fe0 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f l-interactively.#'emms-radio-bro
78000 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 2d 70 72 65 66 69 78 20 74 29 29 0a 0a 0a 28 70 wser-full-search-prefix.t))...(p
78020 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 29 0a 3b 3b 3b 20 rovide.'emms-radio-browser).;;;.
78040 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a emms-radio-browser.el.ends.here.
78060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
780a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
780c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
780e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
781a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
781c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
781e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78200 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 00 00 00 00 00 00 emms-24/emms-player-mpv.el......
78220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
78280 30 30 37 34 32 34 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 37 34 00 20 30 00 00 00 0074247.00000000000.014274..0...
782a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
782c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
782e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
78320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
78340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
783a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
783c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
783e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78400 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 20 2d 2d 2d 20 6d 70 76 20 73 ;;;.emms-player-mpv.el.---.mpv.s
78420 75 70 70 6f 72 74 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e upport.for.EMMS..-*-.lexical-bin
78440 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 3b 3b 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 ding:.t;.-*-.;;.;;.Copyright.(C)
78460 20 32 30 31 38 2d 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .2018-2024.Free.Software.Foundat
78480 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 4d 69 6b 65 20 4b 61 7a 61 ion,.Inc...;;.Authors:.Mike.Kaza
784a0 6e 74 73 65 76 20 3c 6d 6b 2e 66 72 61 67 67 6f 64 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b ntsev.<mk.fraggod@gmail.com>..;;
784c0 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 .This.file.is.part.of.EMMS...;;.
784e0 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 EMMS.is.free.software;.you.can.r
78500 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 edistribute.it.and/or.;;.modify.
78520 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 it.under.the.terms.of.the.GNU.Ge
78540 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 70 75 62 6c 69 neral.Public.License.;;.as.publi
78560 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 shed.by.the.Free.Software.Founda
78580 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f 66 20 74 68 65 tion;.either.version.3.;;.of.the
785a0 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e .License,.or.(at.your.option).an
785c0 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 y.later.version...;;.EMMS.is.dis
785e0 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c tributed.in.the.hope.that.it.wil
78600 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 l.be.useful,.;;.but.WITHOUT.ANY.
78620 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 WARRANTY;.without.even.the.impli
78640 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 ed.warranty.of.;;.MERCHANTABILIT
78660 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 Y.or.FITNESS.FOR.A.PARTICULAR.PU
78680 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 RPOSE...See.the.;;.GNU.General.P
786a0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a ublic.License.for.more.details..
786c0 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 .;;.You.should.have.received.a.c
786e0 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 opy.of.the.GNU.General.Public.Li
78700 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 cense.;;.along.with.EMMS;.if.not
78720 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 ,.write.to.the.Free.Software.Fou
78740 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 ndation,.;;.Inc.,.51.Franklin.St
78760 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d ,.Fifth.Floor,.Boston,.MA.02110-
78780 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 0a 1301,.USA...;;;.Commentary:..;;.
787a0 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 70 72 6f 76 69 64 65 73 20 45 4d 4d 53 20 62 61 63 6b 65 ;;.This.code.provides.EMMS.backe
787c0 6e 64 20 66 6f 72 20 75 73 69 6e 67 20 6d 70 76 20 70 6c 61 79 65 72 2e 0a 3b 3b 0a 3b 3b 20 49 nd.for.using.mpv.player..;;.;;.I
787e0 74 20 77 6f 72 6b 73 20 75 73 69 6e 67 20 6c 6f 6e 67 2d 72 75 6e 6e 69 6e 67 20 6d 70 76 20 69 t.works.using.long-running.mpv.i
78800 6e 73 74 61 6e 63 65 20 61 6e 64 20 69 74 73 20 4a 53 4f 4e 20 49 50 43 20 69 6e 74 65 72 66 61 nstance.and.its.JSON.IPC.interfa
78820 63 65 0a 3b 3b 20 74 6f 20 73 77 69 74 63 68 20 74 72 61 63 6b 73 20 61 6e 64 20 72 65 63 65 69 ce.;;.to.switch.tracks.and.recei
78840 76 65 20 70 6c 61 79 65 72 20 66 65 65 64 62 61 63 6b 2f 6d 65 74 61 64 61 74 61 2e 0a 3b 3b 0a ve.player.feedback/metadata..;;.
78860 3b 3b 20 49 6e 20 64 65 66 61 75 6c 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2c 20 6d 70 76 ;;.In.default.configuration,.mpv
78880 20 77 69 6c 6c 20 72 65 61 64 20 69 74 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c .will.read.its.configuration.fil
788a0 65 73 0a 3b 3b 20 28 73 65 65 20 69 74 73 20 6d 61 6e 70 61 67 65 20 66 6f 72 20 6c 6f 63 61 74 es.;;.(see.its.manpage.for.locat
788c0 69 6f 6e 73 29 2c 20 61 6e 64 20 63 61 6e 20 64 69 73 70 6c 61 79 20 77 69 6e 64 6f 77 20 66 6f ions),.and.can.display.window.fo
788e0 72 0a 3b 3b 20 76 69 64 65 6f 2c 20 73 75 62 74 69 74 6c 65 73 2c 20 61 6c 62 75 6d 2d 61 72 74 r.;;.video,.subtitles,.album-art
78900 20 6f 72 20 61 75 64 69 6f 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 55 .or.audio.visualization..;;.;;.U
78920 73 65 66 75 6c 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 72 61 6d 65 74 65 72 seful.`emms-player-mpv-parameter
78940 73 27 20 74 77 65 61 6b 73 3a 0a 3b 3b 0a 3b 3b 20 20 2d 20 49 67 6e 6f 72 65 20 63 6f 6e 66 69 s'.tweaks:.;;.;;..-.Ignore.confi
78960 67 20 66 69 6c 65 28 73 29 3a 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c g.file(s):.(add-to-list.'emms-pl
78980 61 79 65 72 2d 6d 70 76 2d 70 61 72 61 6d 65 74 65 72 73 20 22 2d 2d 6e 6f 2d 63 6f 6e 66 69 67 ayer-mpv-parameters."--no-config
789a0 22 29 0a 3b 3b 20 20 2d 20 44 69 73 61 62 6c 65 20 76 6f 20 77 69 6e 64 6f 77 3a 20 28 61 64 64 ").;;..-.Disable.vo.window:.(add
789c0 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 72 61 6d 65 -to-list.'emms-player-mpv-parame
789e0 74 65 72 73 20 22 2d 2d 76 6f 3d 6e 75 6c 6c 22 29 0a 3b 3b 20 20 2d 20 53 68 6f 77 20 73 69 6d ters."--vo=null").;;..-.Show.sim
78a00 70 6c 65 20 63 71 74 20 76 69 73 75 61 6c 69 7a 65 72 20 77 69 6e 64 6f 77 3a 0a 3b 3b 20 20 20 ple.cqt.visualizer.window:.;;...
78a20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 ...(add-to-list.'emms-player-mpv
78a40 2d 70 61 72 61 6d 65 74 65 72 73 0a 3b 3b 20 20 20 20 20 20 20 20 22 2d 2d 6c 61 76 66 69 2d 63 -parameters.;;........"--lavfi-c
78a60 6f 6d 70 6c 65 78 3d 5b 61 69 64 31 5d 61 73 70 6c 69 74 5b 61 6f 5d 5b 61 5d 3b 20 5b 61 5d 73 omplex=[aid1]asplit[ao][a];.[a]s
78a80 68 6f 77 63 71 74 5b 76 6f 5d 22 29 0a 3b 3b 0a 3b 3b 20 53 65 65 20 22 4d 2d 78 20 63 75 73 74 howcqt[vo]").;;.;;.See."M-x.cust
78aa0 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 22 20 61 6e 64 omize-group.emms-player-mpv".and
78ac0 20 6d 70 76 20 6d 61 6e 70 61 67 65 20 66 6f 72 20 6d 6f 72 65 20 6f 70 74 69 6f 6e 73 2e 0a 3b .mpv.manpage.for.more.options..;
78ae0 3b 0a 3b 3b 20 53 65 65 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d ;.;;.See.`emms-player-mpv-event-
78b00 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 27 20 61 6e 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d connect-hook'.and.`emms-player-m
78b20 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 2c 0a 3b 3b 20 61 73 20 77 65 6c 6c 20 pv-event-functions',.;;.as.well.
78b40 61 73 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 as.`emms-player-mpv-ipc-req-send
78b60 27 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 6d 6f 72 65 20 6d 70 76 20 65 76 65 6e 74 73 2c 0a '.for.handling.more.mpv.events,.
78b80 3b 3b 20 70 72 6f 63 65 73 73 69 6e 67 20 6d 6f 72 65 20 70 6c 61 79 62 61 63 6b 20 69 6e 66 6f ;;.processing.more.playback.info
78ba0 20 61 6e 64 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 69 74 2c 20 61 73 20 77 65 6c 6c 20 61 .and.metadata.from.it,.as.well.a
78bc0 73 20 65 78 74 65 6e 64 69 6e 67 0a 3b 3b 20 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 69 74 73 20 s.extending.;;.control.over.its.
78be0 76 61 73 74 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 vast.functionality..;;..;;;.Code
78c00 3a 0a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d :...(require.'emms).(require.'em
78c20 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 ms-player-simple).(require.'emms
78c40 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 0a 28 -playing-time).(require.'json).(
78c60 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d require.'cl-lib)...(defgroup.emm
78c80 73 2d 70 6c 61 79 65 72 2d 6d 70 76 20 6e 69 6c 0a 20 20 22 45 4d 4d 53 20 70 6c 61 79 65 72 20 s-player-mpv.nil..."EMMS.player.
78ca0 66 6f 72 20 6d 70 76 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 0a for.mpv."...:group.'emms-player.
78cc0 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 22 29 0a 0a 28 ..:prefix."emms-player-mpv-")..(
78ce0 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 0a 20 20 28 65 6d 6d defcustom.emms-player-mpv...(emm
78d00 73 2d 70 6c 61 79 65 72 0a 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 s-player....#'emms-player-mpv-st
78d20 61 72 74 0a 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f 70 0a 20 20 art....#'emms-player-mpv-stop...
78d40 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 6c 61 79 61 62 6c 65 2d 70 29 0a 20 .#'emms-player-mpv-playable-p)..
78d60 20 22 2a 50 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 6d 70 76 20 70 6c 61 79 65 72 2e 22 0a 20 ."*Parameters.for.mpv.player."..
78d80 20 3a 74 79 70 65 20 27 28 63 6f 6e 73 20 73 79 6d 62 6f 6c 20 61 6c 69 73 74 29 29 0a 0a 28 65 .:type.'(cons.symbol.alist))..(e
78da0 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 20 27 mms-player-set.emms-player-mpv.'
78dc0 72 65 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 regex..................(apply.#'
78de0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 20 65 6d 6d 73 2d 70 emms-player-simple-regexp.emms-p
78e00 6c 61 79 65 72 2d 62 61 73 65 2d 66 6f 72 6d 61 74 2d 6c 69 73 74 29 29 0a 0a 28 64 65 66 63 75 layer-base-format-list))..(defcu
78e20 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6f 6d 6d 61 6e 64 2d 6e 61 6d stom.emms-player-mpv-command-nam
78e40 65 20 22 6d 70 76 22 0a 20 20 22 6d 70 76 20 62 69 6e 61 72 79 20 74 6f 20 75 73 65 2e 20 43 61 e."mpv"..."mpv.binary.to.use..Ca
78e60 6e 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 20 6f 72 20 6a 75 73 74 20 62 69 6e 61 72 n.be.absolute.path.or.just.binar
78e80 79 20 6e 61 6d 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 y.name."...:type.'file)..(defcus
78ea0 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 72 61 6d 65 74 65 72 73 0a 20 tom.emms-player-mpv-parameters..
78ec0 20 27 28 22 2d 2d 71 75 69 65 74 22 20 22 2d 2d 72 65 61 6c 6c 79 2d 71 75 69 65 74 22 20 22 2d .'("--quiet"."--really-quiet"."-
78ee0 2d 6e 6f 2d 61 75 64 69 6f 2d 64 69 73 70 6c 61 79 22 29 0a 20 20 22 45 78 74 72 61 20 63 6f 6d -no-audio-display")..."Extra.com
78f00 6d 61 6e 64 2d 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 73 74 61 72 74 65 64 20 mand-line.arguments.for.started.
78f20 6d 70 76 20 70 72 6f 63 65 73 73 28 65 73 29 2e 0a 45 69 74 68 65 72 20 61 20 6c 69 73 74 20 6f mpv.process(es)..Either.a.list.o
78f40 66 20 73 74 72 69 6e 67 73 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 69 6e 67 20 f.strings.or.function.returning.
78f60 73 75 63 68 20 6c 69 73 74 2e 0a 45 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 2d 2d 69 64 6c such.list..Extra.arguments.--idl
78f80 65 20 61 6e 64 20 2d 2d 69 6e 70 75 74 2d 69 70 63 2d 73 65 72 76 65 72 20 61 72 65 20 61 64 64 e.and.--input-ipc-server.are.add
78fa0 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 4e 6f 74 65 20 74 68 61 74 20 75 6e 6c 65 ed.automatically..Note.that.unle
78fc0 73 73 20 2d 2d 6e 6f 2d 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 ss.--no-config.option.is.specifi
78fe0 65 64 20 68 65 72 65 2c 0a 6d 70 76 20 77 69 6c 6c 20 61 6c 73 6f 20 75 73 65 20 6f 70 74 69 6f ed.here,.mpv.will.also.use.optio
79000 6e 73 20 66 72 6f 6d 20 69 74 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 73 2e ns.from.its.configuration.files.
79020 0a 46 6f 72 20 6d 70 76 20 62 69 6e 61 72 79 20 70 61 74 68 2c 20 73 65 65 20 60 65 6d 6d 73 2d .For.mpv.binary.path,.see.`emms-
79040 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 27 2e 22 0a 20 20 3a 74 79 player-mpv-command-name'."...:ty
79060 70 65 20 27 28 63 68 6f 69 63 65 20 28 72 65 70 65 61 74 20 3a 74 61 67 20 22 4c 69 73 74 20 6f pe.'(choice.(repeat.:tag."List.o
79080 66 20 6d 70 76 20 61 72 67 75 6d 65 6e 74 73 22 20 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 f.mpv.arguments".string)........
790a0 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d ..........function))..(defcustom
790c0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 28 29 0a .emms-player-mpv-environment.().
790e0 20 20 22 4c 69 73 74 20 6f 66 20 65 78 74 72 61 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 .."List.of.extra.environment.var
79100 69 61 62 6c 65 73 20 28 5c 22 56 41 52 3d 76 61 6c 75 65 5c 22 20 73 74 72 69 6e 67 73 29 20 74 iables.(\"VAR=value\".strings).t
79120 6f 20 70 61 73 73 20 6f 6e 20 74 6f 0a 6d 70 76 20 70 72 6f 63 65 73 73 2e 0a 0a 54 68 65 73 65 o.pass.on.to.mpv.process...These
79140 20 61 72 65 20 61 64 64 65 64 20 6f 6e 20 74 6f 70 20 6f 66 20 60 70 72 6f 63 65 73 73 2d 65 6e .are.added.on.top.of.`process-en
79160 76 69 72 6f 6e 6d 65 6e 74 27 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 41 64 64 69 6e 67 20 6e 69 vironment'.by.default..Adding.ni
79180 6c 20 61 73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 74 6f 20 74 68 69 73 20 6c 69 73 74 20 77 69 6c l.as.an.element.to.this.list.wil
791a0 6c 20 64 69 73 63 61 72 64 20 65 6d 61 63 73 0a 60 70 72 6f 63 65 73 73 2d 65 6e 76 69 72 6f 6e l.discard.emacs.`process-environ
791c0 6d 65 6e 74 27 20 61 6e 64 20 6f 6e 6c 79 20 70 61 73 73 20 76 61 72 69 61 62 6c 65 73 20 74 68 ment'.and.only.pass.variables.th
791e0 61 74 20 61 72 65 20 73 70 65 63 69 66 69 65 64 0a 69 6e 20 74 68 65 20 6c 69 73 74 2e 22 0a 20 at.are.specified.in.the.list."..
79200 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 28 63 68 6f 69 63 65 20 73 74 72 69 6e 67 20 28 .:type.'(repeat.(choice.string.(
79220 63 6f 6e 73 74 20 3a 74 61 67 20 22 53 74 61 72 74 20 66 72 6f 6d 20 62 6c 61 6e 6b 20 65 6e 76 const.:tag."Start.from.blank.env
79240 69 72 6f 6e 6d 65 6e 74 22 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d ironment".nil))))..(defcustom.em
79260 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 6f 63 6b 65 74 0a 20 20 28 63 6f 6e 63 ms-player-mpv-ipc-socket...(conc
79280 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d at.(file-name-as-directory.emms-
792a0 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 22 6d 70 76 2d 69 70 63 2e 73 6f directory)..........."mpv-ipc.so
792c0 63 6b 22 29 0a 20 20 22 55 6e 69 78 20 73 6f 63 6b 65 74 20 70 61 74 68 20 74 6f 20 75 73 65 20 ck")..."Unix.socket.path.to.use.
792e0 77 69 74 68 20 6d 70 76 20 2d 2d 69 6e 70 75 74 2d 69 70 63 2d 73 6f 63 6b 65 74 3d 20 6f 70 74 with.mpv.--input-ipc-socket=.opt
79300 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a 0a 28 64 65 66 76 61 72 20 65 6d ion."...:type.'file)..(defvar.em
79320 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 20 6e 69 6c 29 20 3b 20 74 6f ms-player-mpv-ipc-proc.nil).;.to
79340 20 61 76 6f 69 64 20 77 61 72 6e 69 6e 67 73 20 77 68 69 6c 65 20 6b 65 65 70 69 6e 67 20 75 73 .avoid.warnings.while.keeping.us
79360 65 66 75 6c 20 64 65 66 73 20 61 74 20 74 68 65 20 74 6f 70 0a 0a 28 64 65 66 63 75 73 74 6f 6d eful.defs.at.the.top..(defcustom
79380 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 75 70 64 61 74 65 2d 64 75 72 61 74 69 6f 6e .emms-player-mpv-update-duration
793a0 20 74 0a 20 20 22 55 70 64 61 74 65 20 74 72 61 63 6b 20 64 75 72 61 74 69 6f 6e 20 77 68 65 6e .t..."Update.track.duration.when
793c0 20 70 6c 61 79 65 64 20 62 79 20 6d 70 76 2e 0a 55 73 65 73 20 60 65 6d 6d 73 2d 70 6c 61 79 65 .played.by.mpv..Uses.`emms-playe
793e0 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 20 68 6f 6f 6b 2e 22 0a 20 20 r-mpv-event-functions'.hook."...
79400 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 73 65 74 20 28 6c 61 6d 62 64 61 20 28 73 :type.'boolean...:set.(lambda.(s
79420 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 64 65 66 61 75 6c 74 2d ym.value)..........(set-default-
79440 74 6f 70 6c 65 76 65 6c 2d 76 61 6c 75 65 20 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 toplevel-value.sym.value).......
79460 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 2e 31 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 ...(run-at-time.0.1.nil.........
79480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 75 65 29 0a 20 20 ..............(lambda.(value)...
794a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 76 61 6c 75 65 0a ......................(if.value.
794c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 ............................(add
794e0 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -hook...........................
79500 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 ...'emms-player-mpv-event-functi
79520 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.............................
79540 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 64 75 72 61 74 69 6f 6e .#'emms-player-mpv-info-duration
79560 2d 65 76 65 6e 74 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -event-func)....................
79580 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .......(remove-hook.............
795a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d ...............'emms-player-mpv-
795c0 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 event-functions.................
795e0 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 6e 66 ...........#'emms-player-mpv-inf
79600 6f 2d 64 75 72 61 74 69 6f 6e 2d 65 76 65 6e 74 2d 66 75 6e 63 29 29 29 0a 20 20 20 20 20 20 20 o-duration-event-func)))........
79620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 63 75 73 ...............value)))..(defcus
79640 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 75 70 64 61 74 65 2d 6d 65 74 61 64 tom.emms-player-mpv-update-metad
79660 61 74 61 20 6e 69 6c 0a 20 20 22 55 70 64 61 74 65 20 74 72 61 63 6b 20 69 6e 66 6f 20 28 61 72 ata.nil..."Update.track.info.(ar
79680 74 69 73 74 2c 20 61 6c 62 75 6d 2c 20 6e 61 6d 65 2c 20 65 74 63 29 20 66 72 6f 6d 20 6d 70 76 tist,.album,.name,.etc).from.mpv
796a0 20 65 76 65 6e 74 73 2c 20 77 68 65 6e 20 69 74 0a 69 73 20 70 6c 61 79 65 64 2e 0a 0a 54 68 69 .events,.when.it.is.played...Thi
796c0 73 20 61 6c 6c 6f 77 73 20 74 6f 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 75 70 64 61 74 65 20 73 s.allows.to.dynamically.update.s
796e0 74 72 65 61 6d 20 69 6e 66 6f 20 66 72 6f 6d 20 49 43 59 20 74 61 67 73 2c 20 66 6f 72 0a 65 78 tream.info.from.ICY.tags,.for.ex
79700 61 6d 70 6c 65 2e 20 20 55 73 65 73 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 ample...Uses.`emms-player-mpv-ev
79720 65 6e 74 2d 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 27 20 61 6e 64 0a 60 65 6d 6d 73 2d 70 6c 61 79 ent-connect-hook'.and.`emms-play
79740 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 20 68 6f 6f 6b 73 2e 22 0a er-mpv-event-functions'.hooks.".
79760 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 73 65 74 20 28 6c 61 6d 62 64 61 20 ..:type.'boolean...:set.(lambda.
79780 28 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 64 65 66 61 75 6c (sym.value)..........(set-defaul
797a0 74 2d 74 6f 70 6c 65 76 65 6c 2d 76 61 6c 75 65 20 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 t-toplevel-value.sym.value).....
797c0 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 2e 31 20 6e 69 6c 0a 20 20 20 20 20 20 .....(run-at-time.0.1.nil.......
797e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 75 65 29 0a ................(lambda.(value).
79800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 76 61 6c 75 ........................(if.valu
79820 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 e.............................(p
79840 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rogn............................
79860 20 20 20 28 61 64 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(add-hook....................
79880 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 ............'emms-player-mpv-eve
798a0 6e 74 2d 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-connect-hook.................
798c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 ...............#'emms-player-mpv
798e0 2d 69 6e 66 6f 2d 6d 65 74 61 2d 63 6f 6e 6e 65 63 74 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 -info-meta-connect-func)........
79900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b .......................(add-hook
79920 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
79940 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 'emms-player-mpv-event-functions
79960 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
79980 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 65 76 65 6e #'emms-player-mpv-info-meta-even
799a0 74 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-func).........................
799c0 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 63 65 73 73 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 ......(when.(process-live-p.emms
799e0 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 -player-mpv-ipc-proc)...........
79a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 ......................(emms-play
79a20 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 63 6f 6e 6e 65 63 74 2d 66 75 6e 63 29 29 29 er-mpv-info-meta-connect-func)))
79a40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 ...........................(prog
79a60 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 n.............................(r
79a80 65 6d 6f 76 65 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emove-hook......................
79aa0 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 63 ........'emms-player-mpv-event-c
79ac0 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onnect-hook.....................
79ae0 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d .........#'emms-player-mpv-info-
79b00 6d 65 74 61 2d 63 6f 6e 6e 65 63 74 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 meta-connect-func)..............
79b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 0a 20 20 20 20 ...............(remove-hook.....
79b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 70 .........................'emms-p
79b60 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 layer-mpv-event-functions.......
79b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c .......................#'emms-pl
79ba0 61 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 65 76 65 6e 74 2d 66 75 6e 63 29 29 29 ayer-mpv-info-meta-event-func)))
79bc0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 ).......................value)))
79be0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 75 73 65 ..(defcustom.emms-player-mpv-use
79c00 2d 70 6c 61 79 6c 69 73 74 2d 6f 70 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 55 73 65 20 2d 2d 70 6c -playlist-option.nil..."Use.--pl
79c20 61 79 6c 69 73 74 20 6f 70 74 69 6f 6e 20 61 6e 64 20 6c 6f 61 64 6c 69 73 74 20 6d 70 76 20 63 aylist.option.and.loadlist.mpv.c
79c40 6f 6d 6d 61 6e 64 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 73 20 61 6e 64 20 55 52 ommand.for.playlist.files.and.UR
79c60 4c 73 2e 0a 0a 55 73 65 20 6f 66 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 65 78 70 6c 69 Ls...Use.of.this.option.is.expli
79c80 63 69 74 6c 79 20 64 69 73 63 6f 75 72 61 67 65 64 20 62 79 20 6d 70 76 20 64 6f 63 75 6d 65 6e citly.discouraged.by.mpv.documen
79ca0 74 61 74 69 6f 6e 20 66 6f 72 20 73 65 63 75 72 69 74 79 0a 72 65 61 73 6f 6e 73 2c 20 61 6e 64 tation.for.security.reasons,.and
79cc0 20 73 68 6f 75 6c 64 20 62 65 20 75 6e 6e 65 63 65 73 73 61 72 79 20 69 6e 20 6d 6f 73 74 20 63 .should.be.unnecessary.in.most.c
79ce0 6f 6d 6d 6f 6e 20 63 61 73 65 73 20 77 69 74 68 20 6d 6f 64 65 72 6e 20 6d 70 76 2e 0a 4d 61 6b ommon.cases.with.modern.mpv..Mak
79d00 65 20 73 75 72 65 20 74 6f 20 63 68 65 63 6b 20 6d 70 76 20 6d 61 6e 70 61 67 65 20 66 6f 72 20 e.sure.to.check.mpv.manpage.for.
79d20 2d 2d 70 6c 61 79 6c 69 73 74 20 6f 70 74 69 6f 6e 20 62 65 66 6f 72 65 20 65 6e 61 62 6c 69 6e --playlist.option.before.enablin
79d40 67 20 74 68 69 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 0a 28 64 65 g.this."...:type.'boolean)...(de
79d60 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 20 6e 69 6c 0a 20 20 fvar.emms-player-mpv-proc.nil...
79d80 22 52 75 6e 6e 69 6e 67 20 6d 70 76 20 70 72 6f 63 65 73 73 2c 20 63 6f 6e 74 72 6f 6c 6c 65 64 "Running.mpv.process,.controlled
79da0 20 6f 76 65 72 20 2d 2d 69 6e 70 75 74 2d 69 70 63 2d 73 65 72 76 65 72 20 75 6e 69 78 20 73 6f .over.--input-ipc-server.unix.so
79dc0 63 6b 65 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 cket.")..(defvar.emms-player-mpv
79de0 2d 70 72 6f 63 2d 6b 69 6c 6c 2d 64 65 6c 61 79 20 35 0a 20 20 22 44 65 6c 61 79 20 75 6e 74 69 -proc-kill-delay.5..."Delay.unti
79e00 6c 20 53 49 47 4b 49 4c 4c 20 67 65 74 73 20 73 65 6e 74 20 74 6f 20 60 65 6d 6d 73 2d 70 6c 61 l.SIGKILL.gets.sent.to.`emms-pla
79e20 79 65 72 2d 6d 70 76 2d 70 72 6f 63 27 2c 0a 69 66 20 69 74 20 72 65 66 75 73 65 73 20 74 6f 20 yer-mpv-proc',.if.it.refuses.to.
79e40 65 78 69 74 20 63 6c 65 61 6e 6c 79 20 6f 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 exit.cleanly.on.`emms-player-mpv
79e60 2d 70 72 6f 63 2d 73 74 6f 70 27 2e 22 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c -proc-stop'.")...(defvar.emms-pl
79e80 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 20 6e 69 6c 0a 20 20 22 55 6e 69 78 20 73 6f ayer-mpv-ipc-proc.nil..."Unix.so
79ea0 63 6b 65 74 20 6e 65 74 77 6f 72 6b 20 70 72 6f 63 65 73 73 20 63 6f 6e 6e 65 63 74 65 64 20 74 cket.network.process.connected.t
79ec0 6f 20 72 75 6e 6e 69 6e 67 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 27 o.running.`emms-player-mpv-proc'
79ee0 0a 69 6e 73 74 61 6e 63 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 .instance.")..(defvar.emms-playe
79f00 72 2d 6d 70 76 2d 69 70 63 2d 62 75 66 66 65 72 20 22 20 2a 65 6d 6d 73 2d 70 6c 61 79 65 72 2d r-mpv-ipc-buffer.".*emms-player-
79f20 6d 70 76 2d 69 70 63 2a 22 0a 20 20 22 42 75 66 66 65 72 20 74 6f 20 61 73 73 6f 63 69 61 74 65 mpv-ipc*"..."Buffer.to.associate
79f40 20 77 69 74 68 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 27 .with.`emms-player-mpv-ipc-proc'
79f60 20 73 6f 63 6b 65 74 20 70 72 6f 63 65 73 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 .socket.process.")..(defvar.emms
79f80 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 74 69 6d 65 72 20 6e 69 -player-mpv-ipc-connect-timer.ni
79fa0 6c 0a 20 20 22 54 69 6d 65 72 20 66 6f 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 74 74 65 6d 70 l..."Timer.for.connection.attemp
79fc0 74 73 20 74 6f 20 4a 53 4f 4e 20 49 50 43 20 75 6e 69 78 20 73 6f 63 6b 65 74 2e 22 29 0a 28 64 ts.to.JSON.IPC.unix.socket.").(d
79fe0 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 efvar.emms-player-mpv-ipc-connec
7a000 74 2d 64 65 6c 61 79 73 0a 20 20 27 28 30 2e 31 20 30 2e 31 20 30 2e 31 20 30 2e 31 20 30 2e 31 t-delays...'(0.1.0.1.0.1.0.1.0.1
7a020 20 30 2e 31 20 30 2e 32 20 30 2e 32 20 30 2e 33 20 30 2e 33 20 30 2e 35 20 31 2e 30 20 31 2e 30 .0.1.0.2.0.2.0.3.0.3.0.5.1.0.1.0
7a040 20 32 2e 30 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 64 65 6c 61 79 73 20 62 65 66 6f 72 65 20 69 .2.0)..."List.of.delays.before.i
7a060 6e 69 74 69 61 74 69 6e 67 20 73 6f 63 6b 65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 66 6f 72 20 nitiating.socket.connection.for.
7a080 6e 65 77 20 6d 70 76 20 70 72 6f 63 65 73 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 new.mpv.process.")..(defvar.emms
7a0a0 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 20 -player-mpv-ipc-connect-command.
7a0c0 6e 69 6c 0a 20 20 22 4a 53 4f 4e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c nil..."JSON.command.for.`emms-pl
7a0e0 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 65 6e 74 69 6e 65 6c 27 20 74 6f 20 72 75 6e 20 77 68 ayer-mpv-ipc-sentinel'.to.run.wh
7a100 65 6e 20 69 74 20 63 6f 6e 6e 65 63 74 73 20 74 6f 20 6d 70 76 2e 0a 49 2e 65 2e 20 6c 61 73 74 en.it.connects.to.mpv..I.e..last
7a120 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 65 69 74 68 65 72 20 69 6e 69 74 69 61 74 65 64 20 63 .command.that.either.initiated.c
7a140 6f 6e 6e 65 63 74 69 6f 6e 20 6f 72 20 77 61 73 20 75 73 65 64 20 77 68 69 6c 65 0a 63 6f 6e 6e onnection.or.was.used.while.conn
7a160 65 63 74 69 6e 67 20 74 6f 20 6d 70 76 2e 0a 53 65 74 20 62 79 20 60 65 6d 6d 73 2d 70 6c 61 79 ecting.to.mpv..Set.by.`emms-play
7a180 65 72 2d 6d 70 76 2d 73 74 61 72 74 27 20 61 6e 64 20 73 75 63 68 2c 0a 63 6c 65 61 72 65 64 20 er-mpv-start'.and.such,.cleared.
7a1a0 6f 6e 63 65 20 69 74 20 67 65 74 73 20 73 65 6e 74 20 62 79 20 60 65 6d 6d 73 2d 70 6c 61 79 65 once.it.gets.sent.by.`emms-playe
7a1c0 72 2d 6d 70 76 2d 69 70 63 2d 73 65 6e 74 69 6e 65 6c 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 r-mpv-ipc-sentinel'.")..(defvar.
7a1e0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 20 31 0a 20 20 22 41 75 74 6f emms-player-mpv-ipc-id.1..."Auto
7a200 2d 69 6e 63 72 65 6d 65 6e 74 65 64 20 63 6f 75 6e 74 65 72 20 66 6f 72 20 75 6e 69 71 75 65 20 -incremented.counter.for.unique.
7a220 4a 53 4f 4e 20 72 65 71 75 65 73 74 20 69 64 65 6e 74 69 66 69 65 72 73 2e 0a 55 73 65 20 66 6f JSON.request.identifiers..Use.fo
7a240 72 20 66 6f 72 20 60 72 65 71 75 65 73 74 5f 69 64 27 20 61 6e 64 20 60 6f 62 73 65 72 76 65 5f r.for.`request_id'.and.`observe_
7a260 70 72 6f 70 65 72 74 79 27 20 69 64 65 6e 74 69 66 69 65 72 73 2e 0a 55 73 65 20 60 65 6d 6d 73 property'.identifiers..Use.`emms
7a280 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 2d 67 65 74 27 20 74 6f 20 67 65 74 20 61 -player-mpv-ipc-id-get'.to.get.a
7a2a0 6e 64 20 69 6e 63 72 65 6d 65 6e 74 20 74 68 69 73 20 76 61 6c 75 65 2c 0a 69 6e 73 74 65 61 64 nd.increment.this.value,.instead
7a2c0 20 6f 66 20 75 73 69 6e 67 20 69 74 20 64 69 72 65 63 74 6c 79 2e 0a 57 72 61 70 73 2d 61 72 6f .of.using.it.directly..Wraps-aro
7a2e0 75 6e 64 20 75 70 6f 6e 20 72 65 61 63 68 69 6e 67 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d und.upon.reaching.`emms-player-m
7a300 70 76 2d 69 70 63 2d 69 64 2d 6d 61 78 27 0a 28 75 6e 6c 69 6b 65 6c 79 20 74 6f 20 65 76 65 72 pv-ipc-id-max'.(unlikely.to.ever
7a320 20 68 61 70 70 65 6e 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 .happen).")..(defvar.emms-player
7a340 2d 6d 70 76 2d 69 70 63 2d 69 64 2d 6d 61 78 20 28 65 78 70 74 20 32 20 33 30 29 0a 20 20 22 4d -mpv-ipc-id-max.(expt.2.30)..."M
7a360 61 78 20 76 61 6c 75 65 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 ax.value.for.`emms-player-mpv-ip
7a380 63 2d 69 64 27 20 74 6f 20 77 72 61 70 20 61 72 6f 75 6e 64 20 61 66 74 65 72 2e 0a 53 68 6f 75 c-id'.to.wrap.around.after..Shou
7a3a0 6c 64 20 62 65 20 66 69 6e 65 20 77 69 74 68 20 62 6f 74 68 20 6d 70 76 20 61 6e 64 20 45 6d 61 ld.be.fine.with.both.mpv.and.Ema
7a3c0 63 73 2c 20 61 6e 64 20 70 72 6f 62 61 62 6c 79 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 20 61 cs,.and.probably.never.reached.a
7a3e0 6e 79 77 61 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 nyway.")..(defvar.emms-player-mp
7a400 76 2d 69 70 63 2d 72 65 71 2d 74 61 62 6c 65 20 6e 69 6c 0a 20 20 22 41 75 74 6f 2d 69 6e 69 74 v-ipc-req-table.nil..."Auto-init
7a420 69 61 6c 69 7a 65 64 20 68 61 73 68 20 74 61 62 6c 65 20 6f 66 20 6f 75 74 73 74 61 6e 64 69 6e ialized.hash.table.of.outstandin
7a440 67 20 41 50 49 20 72 65 71 5f 69 64 73 20 74 6f 20 74 68 65 69 72 20 68 61 6e 64 6c 65 72 20 66 g.API.req_ids.to.their.handler.f
7a460 75 6e 63 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 uncs.")..(defvar.emms-player-mpv
7a480 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d 61 6e 64 20 6e 69 6c 0a 20 20 22 49 6e 74 65 72 6e 61 -ipc-stop-command.nil..."Interna
7a4a0 6c 20 66 6c 61 67 20 74 6f 20 74 72 61 63 6b 20 77 68 65 6e 20 73 74 6f 70 20 63 6f 6d 6d 61 6e l.flag.to.track.when.stop.comman
7a4c0 64 20 73 74 61 72 74 73 2f 66 69 6e 69 73 68 65 73 20 62 65 66 6f 72 65 20 6e 65 78 74 20 6c 6f d.starts/finishes.before.next.lo
7a4e0 61 64 66 69 6c 65 2e 0a 53 65 74 20 74 6f 20 65 69 74 68 65 72 20 6e 69 6c 2c 20 74 20 6f 72 20 adfile..Set.to.either.nil,.t.or.
7a500 74 68 65 20 70 6c 61 79 62 61 63 6b 20 73 74 61 72 74 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 the.playback.start.function.to.c
7a520 61 6c 6c 20 6f 6e 20 65 6e 64 2d 66 69 6c 65 20 65 76 65 6e 74 0a 61 66 74 65 72 20 73 74 6f 70 all.on.end-file.event.after.stop
7a540 20 63 6f 6d 6d 61 6e 64 2e 0a 54 68 69 73 20 69 73 20 61 20 77 6f 72 6b 61 72 6f 75 6e 64 20 66 .command..This.is.a.workaround.f
7a560 6f 72 20 6d 70 76 2d 30 2e 33 30 2b 20 62 65 68 61 76 69 6f 72 2c 20 77 68 65 72 65 20 5c 22 73 or.mpv-0.30+.behavior,.where.\"s
7a580 74 6f 70 20 2b 20 6c 6f 61 64 66 69 6c 65 5c 22 20 6f 6e 6c 79 0a 72 75 6e 73 20 5c 22 73 74 6f top.+.loadfile\".only.runs.\"sto
7a5a0 70 5c 22 2e 22 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 p\".")...(defvar.emms-player-mpv
7a5c0 2d 65 76 65 6e 74 2d 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 4e 6f 72 6d 61 -event-connect-hook.nil..."Norma
7a5e0 6c 20 68 6f 6f 6b 20 72 75 6e 20 72 69 67 68 74 20 61 66 74 65 72 20 65 73 74 61 62 6c 69 73 68 l.hook.run.right.after.establish
7a600 69 6e 67 20 6e 65 77 20 4a 53 4f 4e 20 49 50 43 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 6d ing.new.JSON.IPC.connection.to.m
7a620 70 76 2e 0a 52 75 6e 73 20 62 65 66 6f 72 65 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 pv..Runs.before.`emms-player-mpv
7a640 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 27 2c 20 69 66 20 61 6e 79 2e 0a 42 -ipc-connect-command',.if.any..B
7a660 65 73 74 20 70 6c 61 63 65 20 74 6f 20 73 65 6e 64 20 61 6e 79 20 60 6f 62 73 65 72 76 65 5f 70 est.place.to.send.any.`observe_p
7a680 72 6f 70 65 72 74 79 27 2c 20 60 72 65 71 75 65 73 74 5f 6c 6f 67 5f 6d 65 73 73 61 67 65 73 27 roperty',.`request_log_messages'
7a6a0 2c 0a 60 65 6e 61 62 6c 65 5f 65 76 65 6e 74 27 20 63 6f 6d 6d 61 6e 64 73 2e 0a 55 73 65 20 60 ,.`enable_event'.commands..Use.`
7a6c0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 2d 67 65 74 27 20 74 6f 20 67 emms-player-mpv-ipc-id-get'.to.g
7a6e0 65 74 20 75 6e 69 71 75 65 20 69 64 20 76 61 6c 75 65 73 20 66 6f 72 20 74 68 65 73 65 2e 0a 53 et.unique.id.values.for.these..S
7a700 65 65 20 61 6c 73 6f 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 ee.also.`emms-player-mpv-event-f
7a720 75 6e 63 74 69 6f 6e 73 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 unctions'.")..(defvar.emms-playe
7a740 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 4c 69 73 r-mpv-event-functions.nil..."Lis
7a760 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 20 66 6f 72 20 65 61 63 68 20 t.of.functions.to.call.for.each.
7a780 65 76 65 6e 74 20 65 6d 69 74 74 65 64 20 66 72 6f 6d 20 4a 53 4f 4e 20 49 50 43 2e 0a 4f 6e 65 event.emitted.from.JSON.IPC..One
7a7a0 20 61 72 67 75 6d 65 6e 74 20 69 73 20 70 61 73 73 65 64 20 74 6f 20 65 61 63 68 20 66 75 6e 63 .argument.is.passed.to.each.func
7a7c0 74 69 6f 6e 20 2d 20 4a 53 4f 4e 20 6c 69 6e 65 2c 0a 61 73 20 73 65 6e 74 20 62 79 20 6d 70 76 tion.-.JSON.line,.as.sent.by.mpv
7a7e0 20 61 6e 64 20 64 65 63 6f 64 65 64 20 62 79 20 60 6a 73 6f 6e 2d 72 65 61 64 2d 66 72 6f 6d 2d .and.decoded.by.`json-read-from-
7a800 73 74 72 69 6e 67 27 2e 0a 53 65 65 20 61 6c 73 6f 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d string'..See.also.`emms-player-m
7a820 70 76 2d 65 76 65 6e 74 2d 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 27 2e 22 29 0a 0a 0a 28 64 65 66 pv-event-connect-hook'.")...(def
7a840 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f 70 70 65 64 20 6e 69 6c 0a var.emms-player-mpv-stopped.nil.
7a860 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 70 6c 61 79 62 61 63 6b 20 77 61 73 20 73 74 6f 70 70 .."Non-nil.if.playback.was.stopp
7a880 65 64 20 62 79 20 63 61 6c 6c 20 66 72 6f 6d 20 65 6d 6d 73 2e 0a 53 69 6d 69 6c 61 72 20 74 6f ed.by.call.from.emms..Similar.to
7a8a0 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 27 2c 20 62 75 74 20 73 65 .`emms-player-stopped-p',.but.se
7a8c0 74 20 66 6f 72 20 66 75 74 75 72 65 20 61 73 79 6e 63 20 65 76 65 6e 74 73 2c 0a 74 6f 20 69 6e t.for.future.async.events,.to.in
7a8e0 64 69 63 61 74 65 20 74 68 61 74 20 70 6c 61 79 62 61 63 6b 20 73 68 6f 75 6c 64 20 73 74 6f 70 dicate.that.playback.should.stop
7a900 20 69 6e 73 74 65 61 64 20 6f 66 20 73 77 69 74 63 68 69 6e 67 20 74 6f 20 6e 65 78 74 20 74 72 .instead.of.switching.to.next.tr
7a920 61 63 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d ack.")..(defvar.emms-player-mpv-
7a940 69 64 6c 65 2d 74 69 6d 65 72 20 28 74 69 6d 65 72 2d 63 72 65 61 74 65 29 0a 20 20 22 54 69 6d idle-timer.(timer-create)..."Tim
7a960 65 72 20 74 6f 20 64 65 6c 61 79 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 er.to.delay.`emms-player-stopped
7a980 27 20 77 68 65 6e 20 6d 70 76 20 75 6e 65 78 70 65 63 74 65 64 6c 79 20 67 6f 65 73 20 69 64 6c '.when.mpv.unexpectedly.goes.idl
7a9a0 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 64 e.")..(defvar.emms-player-mpv-id
7a9c0 6c 65 2d 64 65 6c 61 79 20 30 2e 35 0a 20 20 22 44 65 6c 61 79 20 62 65 66 6f 72 65 20 69 73 73 le-delay.0.5..."Delay.before.iss
7a9e0 75 69 6e 67 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 27 20 77 68 65 6e 20 uing.`emms-player-stopped'.when.
7aa00 6d 70 76 20 75 6e 65 78 70 65 63 74 65 64 6c 79 20 67 6f 65 73 20 69 64 6c 65 2e 22 29 0a 0a 0a mpv.unexpectedly.goes.idle.")...
7aa20 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d (make-obsolete.'emms-player-mpv-
7aa40 69 70 63 2d 6d 65 74 68 6f 64 20 6e 69 6c 20 22 45 6d 6d 73 20 31 38 22 29 0a 0a 28 64 65 66 63 ipc-method.nil."Emms.18")..(defc
7aa60 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 6d 65 74 68 6f 64 ustom.emms-player-mpv-ipc-method
7aa80 20 6e 69 6c 0a 20 20 22 55 6e 75 73 65 64 20 6f 62 73 6f 6c 65 74 65 20 76 61 6c 75 65 2e 20 49 .nil..."Unused.obsolete.value..I
7aaa0 74 20 77 61 73 20 75 73 65 64 20 66 6f 72 20 73 65 6c 65 63 74 69 6e 67 20 6f 6c 64 65 72 20 49 t.was.used.for.selecting.older.I
7aac0 50 43 20 6d 65 74 68 6f 64 73 2e 0a 48 61 76 65 6e 27 74 20 62 65 65 6e 20 6e 65 65 64 65 64 20 PC.methods..Haven't.been.needed.
7aae0 73 69 6e 63 65 20 6d 70 76 20 30 2e 31 37 2e 30 20 28 32 30 31 36 2d 30 34 2d 31 31 29 2c 20 72 since.mpv.0.17.0.(2016-04-11),.r
7ab00 65 6d 6f 76 65 64 20 69 6e 20 45 6d 6d 73 20 31 38 2b 20 28 32 30 32 34 29 2e 22 0a 20 20 3a 74 emoved.in.Emms.18+.(2024)."...:t
7ab20 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 20 68 65 6c 70 65 72 73 0a ype.'symbol)...;;.-----.helpers.
7ab40 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 20 6e .(defvar.emms-player-mpv-debug.n
7ab60 69 6c 0a 20 20 22 45 6e 61 62 6c 65 20 74 6f 20 70 72 69 6e 74 20 73 65 6e 74 2f 72 65 63 65 69 il..."Enable.to.print.sent/recei
7ab80 76 65 64 20 4a 53 4f 4e 20 6c 69 6e 65 73 20 61 6e 64 20 70 72 6f 63 65 73 73 0a 73 74 61 72 74 ved.JSON.lines.and.process.start
7aba0 2f 73 74 6f 70 20 65 76 65 6e 74 73 20 74 6f 20 2a 4d 65 73 73 61 67 65 73 2a 20 62 75 66 66 65 /stop.events.to.*Messages*.buffe
7abc0 72 20 75 73 69 6e 67 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d r.using.`emms-player-mpv-debug-m
7abe0 73 67 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d sg'.")..(defvar.emms-player-mpv-
7ac00 64 65 62 75 67 2d 74 73 2d 6f 66 66 73 65 74 20 6e 69 6c 0a 20 20 22 54 69 6d 65 73 74 61 6d 70 debug-ts-offset.nil..."Timestamp
7ac20 20 6f 66 66 73 65 74 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 .offset.for.`emms-player-mpv-deb
7ac40 75 67 2d 6d 73 67 27 2e 0a 53 65 74 20 6f 6e 20 66 69 72 73 74 20 75 73 65 2c 20 77 69 74 68 20 ug-msg'..Set.on.first.use,.with.
7ac60 69 6e 74 65 6e 74 20 74 6f 20 62 6f 74 68 20 73 68 6f 72 74 65 6e 20 61 6e 64 20 6f 62 66 75 73 intent.to.both.shorten.and.obfus
7ac80 63 61 74 65 20 74 69 6d 65 20 69 6e 20 6c 6f 67 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d cate.time.in.logs.")..(defun.emm
7aca0 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 74 72 69 6d 20 28 73 29 0a 20 20 28 69 s-player-mpv-debug-trim.(s)...(i
7acc0 66 20 28 73 74 72 69 6e 67 70 20 73 29 0a 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 f.(stringp.s).......(replace-reg
7ace0 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 28 5e 5b 20 5c 74 5c 6e 5c 72 5d 2b 5c 5c 7c exp-in-string."\\(^[.\t\n\r]+\\|
7ad00 5b 20 5c 74 5c 6e 5c 72 5d 2b 24 5c 5c 29 22 20 22 22 20 73 20 74 20 74 29 0a 20 20 20 20 73 29 [.\t\n\r]+$\\)"."".s.t.t).....s)
7ad20 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d )..(defun.emms-player-mpv-debug-
7ad40 6d 73 67 20 28 74 70 6c 2d 6f 72 2d 6d 73 67 20 26 72 65 73 74 20 74 70 6c 2d 76 61 6c 75 65 73 msg.(tpl-or-msg.&rest.tpl-values
7ad60 29 0a 20 20 22 50 72 69 6e 74 20 64 65 62 75 67 20 6d 65 73 73 61 67 65 20 74 6f 20 2a 4d 65 73 )..."Print.debug.message.to.*Mes
7ad80 73 61 67 65 73 2a 20 69 66 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 sages*.if.`emms-player-mpv-debug
7ada0 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 4d 65 73 73 61 67 65 20 69 73 20 6f 6e 6c 79 20 66 6f '.is.non-nil..Message.is.only.fo
7adc0 72 6d 61 74 74 65 64 20 69 66 20 54 50 4c 2d 56 41 4c 55 45 53 20 69 73 20 6e 6f 6e 2d 65 6d 70 rmatted.if.TPL-VALUES.is.non-emp
7ade0 74 79 2e 0a 53 74 72 69 70 73 20 77 68 69 74 65 73 70 61 63 65 20 66 72 6f 6d 20 73 74 61 72 74 ty..Strips.whitespace.from.start
7ae00 2f 65 6e 64 20 6f 66 20 54 50 4c 2d 4f 52 2d 4d 53 47 20 61 6e 64 20 73 74 72 69 6e 67 73 20 69 /end.of.TPL-OR-MSG.and.strings.i
7ae20 6e 20 54 50 4c 2d 56 41 4c 55 45 53 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 n.TPL-VALUES."...(when.emms-play
7ae40 65 72 2d 6d 70 76 2d 64 65 62 75 67 0a 20 20 20 20 28 73 65 74 71 0a 20 20 20 20 20 74 70 6c 2d er-mpv-debug.....(setq......tpl-
7ae60 6f 72 2d 6d 73 67 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 74 72 or-msg.(emms-player-mpv-debug-tr
7ae80 69 6d 20 74 70 6c 2d 6f 72 2d 6d 73 67 29 0a 20 20 20 20 20 74 70 6c 2d 76 61 6c 75 65 73 20 28 im.tpl-or-msg)......tpl-values.(
7aea0 73 65 71 2d 6d 61 70 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d seq-map.#'emms-player-mpv-debug-
7aec0 74 72 69 6d 20 74 70 6c 2d 76 61 6c 75 65 73 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 74 70 trim.tpl-values)).....(unless.tp
7aee0 6c 2d 76 61 6c 75 65 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 70 6c 2d 6f 72 2d 6d 73 67 20 l-values.......(setq.tpl-or-msg.
7af00 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 25 22 20 22 25 (replace-regexp-in-string."%"."%
7af20 25 22 20 74 70 6c 2d 6f 72 2d 6d 73 67 20 74 20 74 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 %".tpl-or-msg.t.t))).....(let.((
7af40 74 73 20 28 66 6c 6f 61 74 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 ts.(float-time))).......(unless.
7af60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 74 73 2d 6f 66 66 73 65 74 20 emms-player-mpv-debug-ts-offset.
7af80 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 74 73 2d 6f (setq.emms-player-mpv-debug-ts-o
7afa0 66 66 73 65 74 20 74 73 29 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6d 65 73 73 61 67 ffset.ts)).......(apply.#'messag
7afc0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 70 6c 61 e..............(concat."emms-pla
7afe0 79 65 72 2d 6d 70 76 20 25 2e 31 66 20 22 20 74 70 6c 2d 6f 72 2d 6d 73 67 29 0a 20 20 20 20 20 yer-mpv.%.1f.".tpl-or-msg)......
7b000 20 20 20 20 20 20 20 20 28 2d 20 74 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 ........(-.ts.emms-player-mpv-de
7b020 62 75 67 2d 74 73 2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 74 70 6c 2d bug-ts-offset)..............tpl-
7b040 76 61 6c 75 65 73 29 29 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 20 6d 70 76 20 70 72 6f 63 65 73 values))))...;;.-----.mpv.proces
7b060 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 s..(defun.emms-player-mpv-proc-p
7b080 6c 61 79 69 6e 67 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 63 29 0a 20 20 22 52 65 74 laying-p.(&optional.proc)..."Ret
7b0a0 75 72 6e 20 77 68 65 74 68 65 72 20 70 6c 61 79 62 61 63 6b 20 69 6e 20 50 52 4f 43 20 6f 72 20 urn.whether.playback.in.PROC.or.
7b0c0 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 27 20 69 73 20 73 74 61 72 74 65 `emms-player-mpv-proc'.is.starte
7b0e0 64 2c 0a 77 68 69 63 68 20 69 73 20 64 69 73 74 69 6e 63 74 20 66 72 6f 6d 20 5c 22 73 74 61 72 d,.which.is.distinct.from.\"star
7b100 74 2d 63 6f 6d 6d 61 6e 64 20 73 65 6e 74 5c 22 20 61 6e 64 20 5c 22 70 72 6f 63 65 73 73 20 69 t-command.sent\".and.\"process.i
7b120 73 20 72 75 6e 6e 69 6e 67 5c 22 20 73 74 61 74 65 73 2e 0a 55 73 65 64 20 74 6f 20 73 69 67 6e s.running\".states..Used.to.sign
7b140 61 6c 20 65 6d 6d 73 20 76 69 61 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 al.emms.via.`emms-player-started
7b160 27 20 61 6e 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 27 20 63 61 6c 6c '.and.`emms-player-stopped'.call
7b180 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 20 28 6f 72 20 70 72 6f 63 20 65 6d 6d 73 2d s."...(let.((proc.(or.proc.emms-
7b1a0 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 29 29 29 0a 20 20 20 20 28 61 6e 64 20 70 72 6f 63 player-mpv-proc))).....(and.proc
7b1c0 20 28 70 72 6f 63 65 73 73 2d 67 65 74 20 70 72 6f 63 20 27 6d 70 76 2d 70 6c 61 79 69 6e 67 29 .(process-get.proc.'mpv-playing)
7b1e0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 )))..(defun.emms-player-mpv-proc
7b200 2d 70 6c 61 79 69 6e 67 20 28 73 74 61 74 65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 63 29 0a -playing.(state.&optional.proc).
7b220 20 20 22 53 65 74 20 70 72 6f 63 65 73 73 20 6d 70 76 2d 70 6c 61 79 69 6e 67 20 73 74 61 74 65 .."Set.process.mpv-playing.state
7b240 20 66 6c 61 67 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d .flag.for.`emms-player-mpv-proc-
7b260 70 6c 61 79 69 6e 67 2d 70 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 20 28 6f 72 20 70 playing-p'."...(let.((proc.(or.p
7b280 72 6f 63 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 29 29 29 0a 20 20 20 20 roc.emms-player-mpv-proc))).....
7b2a0 28 77 68 65 6e 20 70 72 6f 63 20 28 70 72 6f 63 65 73 73 2d 70 75 74 20 70 72 6f 63 20 27 6d 70 (when.proc.(process-put.proc.'mp
7b2c0 76 2d 70 6c 61 79 69 6e 67 20 73 74 61 74 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 v-playing.state))))..(defun.emms
7b2e0 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 73 79 6d 62 6f 6c 2d 69 64 20 28 73 79 6d 20 -player-mpv-proc-symbol-id.(sym.
7b300 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 63 29 0a 20 20 22 47 65 74 20 75 6e 69 71 75 65 20 70 72 &optional.proc)..."Get.unique.pr
7b320 6f 63 65 73 73 2d 73 70 65 63 69 66 69 63 20 69 64 20 69 6e 74 65 67 65 72 20 66 6f 72 20 53 59 ocess-specific.id.integer.for.SY
7b340 4d 20 6f 72 20 6e 69 6c 20 69 66 20 69 74 0a 77 61 73 20 61 6c 72 65 61 64 79 20 72 65 71 75 65 M.or.nil.if.it.was.already.reque
7b360 73 74 65 64 2e 22 0a 20 20 28 6c 65 74 0a 20 20 20 20 20 20 28 28 70 72 6f 63 20 28 6f 72 20 70 sted."...(let.......((proc.(or.p
7b380 72 6f 63 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 29 29 0a 20 20 20 20 20 roc.emms-player-mpv-proc))......
7b3a0 20 20 28 73 79 6d 2d 69 64 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6d 70 76 2d 73 ..(sym-id.(intern.(concat."mpv-s
7b3c0 79 6d 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 29 29 29 29 0a 20 20 20 20 28 ym-".(symbol-name.sym))))).....(
7b3e0 75 6e 6c 65 73 73 20 28 70 72 6f 63 65 73 73 2d 67 65 74 20 70 72 6f 63 20 73 79 6d 2d 69 64 29 unless.(process-get.proc.sym-id)
7b400 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 64 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 .......(let.((id.(emms-player-mp
7b420 76 2d 69 70 63 2d 69 64 2d 67 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 v-ipc-id-get))).........(process
7b440 2d 70 75 74 20 70 72 6f 63 20 73 79 6d 2d 69 64 20 69 64 29 0a 20 20 20 20 20 20 20 20 69 64 29 -put.proc.sym-id.id).........id)
7b460 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 )))..(defun.emms-player-mpv-proc
7b480 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 20 65 76 29 0a 20 20 28 6c 65 74 0a 20 20 20 20 20 -sentinel.(proc.ev)...(let......
7b4a0 20 28 28 73 74 61 74 75 73 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 29 .((status.(process-status.proc))
7b4c0 0a 20 20 20 20 20 20 20 28 70 6c 61 79 69 6e 67 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ........(playing.(emms-player-mp
7b4e0 76 2d 70 72 6f 63 2d 70 6c 61 79 69 6e 67 2d 70 20 70 72 6f 63 29 29 29 0a 20 20 20 20 28 65 6d v-proc-playing-p.proc))).....(em
7b500 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d 73 67 0a 20 20 20 20 20 22 70 72 ms-player-mpv-debug-msg......"pr
7b520 6f 63 5b 25 73 5d 3a 20 25 73 20 28 73 74 61 74 75 73 3d 25 73 2c 20 70 6c 61 79 69 6e 67 3d 25 oc[%s]:.%s.(status=%s,.playing=%
7b540 73 29 22 20 70 72 6f 63 20 65 76 20 73 74 61 74 75 73 20 70 6c 61 79 69 6e 67 29 0a 20 20 20 20 s)".proc.ev.status.playing).....
7b560 28 77 68 65 6e 20 28 61 6e 64 20 28 6d 65 6d 71 20 73 74 61 74 75 73 20 27 28 65 78 69 74 20 73 (when.(and.(memq.status.'(exit.s
7b580 69 67 6e 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 61 79 69 6e 67 29 0a ignal))................playing).
7b5a0 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 29 29 0a 0a ......(emms-player-stopped))))..
7b5c0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 69 6e 69 74 (defun.emms-player-mpv-proc-init
7b5e0 20 28 26 72 65 73 74 20 6d 65 64 69 61 2d 61 72 67 73 29 0a 20 20 22 69 6e 69 74 69 61 6c 69 7a .(&rest.media-args)..."initializ
7b600 65 20 6e 65 77 20 6d 70 76 20 70 72 6f 63 65 73 73 20 61 73 20 60 65 6d 6d 73 2d 70 6c 61 79 65 e.new.mpv.process.as.`emms-playe
7b620 72 2d 6d 70 76 2d 70 72 6f 63 27 2e 0a 4d 45 44 49 41 2d 41 52 47 53 20 61 72 65 20 75 73 65 64 r-mpv-proc'..MEDIA-ARGS.are.used
7b640 20 69 6e 73 74 65 61 64 20 6f 66 20 2d 2d 69 64 6c 65 2c 20 69 66 20 73 70 65 63 69 66 69 65 64 .instead.of.--idle,.if.specified
7b660 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 73 74 6f 70 29 ."...(emms-player-mpv-proc-stop)
7b680 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 66 69 ...(unless.(file-directory-p.(fi
7b6a0 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 le-name-directory.emms-player-mp
7b6c0 76 2d 69 70 63 2d 73 6f 63 6b 65 74 29 29 0a 20 20 20 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f v-ipc-socket)).....(make-directo
7b6e0 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 70 6c 61 ry.(file-name-directory.emms-pla
7b700 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 6f 63 6b 65 74 29 29 29 0a 20 20 28 6c 65 74 2a 0a 20 20 yer-mpv-ipc-socket)))...(let*...
7b720 20 20 20 20 28 28 61 72 67 76 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 72 61 6d ....((argv.emms-player-mpv-param
7b740 65 74 65 72 73 29 0a 20 20 20 20 20 20 20 28 61 72 67 76 20 28 61 70 70 65 6e 64 0a 20 20 20 20 eters)........(argv.(append.....
7b760 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d ..........(list.emms-player-mpv-
7b780 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 command-name)...............(if.
7b7a0 28 66 75 6e 63 74 69 6f 6e 70 20 61 72 67 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (functionp.argv)................
7b7c0 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 72 67 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(funcall.argv)...............
7b7e0 20 20 61 72 67 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f 72 ..argv)...............(list.(for
7b800 6d 61 74 20 22 2d 2d 69 6e 70 75 74 2d 69 70 63 2d 73 65 72 76 65 72 3d 25 73 22 20 65 6d 6d 73 mat."--input-ipc-server=%s".emms
7b820 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 6f 63 6b 65 74 29 29 0a 20 20 20 20 20 20 20 -player-mpv-ipc-socket))........
7b840 20 20 20 20 20 20 20 28 6f 72 20 6d 65 64 69 61 2d 61 72 67 73 20 27 28 22 2d 2d 69 64 6c 65 22 .......(or.media-args.'("--idle"
7b860 29 29 29 29 0a 20 20 20 20 20 20 20 28 65 6e 76 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 ))))........(env.emms-player-mpv
7b880 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 65 6e -environment)........(process-en
7b8a0 76 69 72 6f 6e 6d 65 6e 74 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vironment.(append...............
7b8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 65 71 2d 73 6f 6d 65 ...............(unless.(seq-some
7b8e0 20 27 6e 6f 74 20 65 6e 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'not.env)......................
7b900 20 20 20 20 20 20 20 20 20 20 70 72 6f 63 65 73 73 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 ..........process-environment)..
7b920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 ............................(seq
7b940 2d 66 69 6c 74 65 72 20 27 69 64 65 6e 74 69 74 79 20 65 6e 76 29 29 29 29 0a 20 20 20 20 28 73 -filter.'identity.env)))).....(s
7b960 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 0a 20 20 20 20 20 20 20 etq.emms-player-mpv-proc........
7b980 20 20 20 28 6d 61 6b 65 2d 70 72 6f 63 65 73 73 20 3a 6e 61 6d 65 20 22 65 6d 6d 73 2d 70 6c 61 ...(make-process.:name."emms-pla
7b9a0 79 65 72 2d 6d 70 76 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yer-mpv"........................
7b9c0 20 3a 62 75 66 66 65 72 20 6e 69 6c 20 3a 63 6f 6d 6d 61 6e 64 20 61 72 67 76 20 3a 6e 6f 71 75 .:buffer.nil.:command.argv.:noqu
7b9e0 65 72 79 20 74 20 3a 73 65 6e 74 69 6e 65 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ery.t.:sentinel.#'emms-player-mp
7ba00 76 2d 70 72 6f 63 2d 73 65 6e 74 69 6e 65 6c 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 v-proc-sentinel)).....(emms-play
7ba20 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d 73 67 20 22 70 72 6f 63 5b 25 73 5d 3a 20 73 74 61 72 er-mpv-debug-msg."proc[%s]:.star
7ba40 74 20 25 73 22 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 20 61 72 67 76 29 t.%s".emms-player-mpv-proc.argv)
7ba60 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d ))..(defun.emms-player-mpv-proc-
7ba80 73 74 6f 70 20 28 29 0a 20 20 22 53 74 6f 70 20 72 75 6e 6e 69 6e 67 20 60 65 6d 6d 73 2d 70 6c stop.()..."Stop.running.`emms-pl
7baa0 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 27 20 69 6e 73 74 61 6e 63 65 20 76 69 61 20 53 49 47 49 ayer-mpv-proc'.instance.via.SIGI
7bac0 4e 54 2c 20 69 66 20 61 6e 79 2e 0a 0a 60 64 65 6c 65 74 65 2d 70 72 6f 63 65 73 73 27 20 28 53 NT,.if.any...`delete-process'.(S
7bae0 49 47 4b 49 4c 4c 29 20 74 69 6d 65 72 20 69 73 20 73 74 61 72 74 65 64 20 69 66 0a 60 65 6d 6d IGKILL).timer.is.started.if.`emm
7bb00 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 6b 69 6c 6c 2d 64 65 6c 61 79 27 20 69 73 s-player-mpv-proc-kill-delay'.is
7bb20 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d .non-nil."...(when.emms-player-m
7bb40 70 76 2d 70 72 6f 63 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 63 20 65 6d 6d 73 2d 70 6c 61 pv-proc.....(let.((proc.emms-pla
7bb60 79 65 72 2d 6d 70 76 2d 70 72 6f 63 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 yer-mpv-proc)).......(emms-playe
7bb80 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d 73 67 20 22 70 72 6f 63 5b 25 73 5d 3a 20 73 74 6f 70 22 r-mpv-debug-msg."proc[%s]:.stop"
7bba0 20 70 72 6f 63 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 70 72 6f 63 65 73 73 2d 6c .proc).......(if.(not.(process-l
7bbc0 69 76 65 2d 70 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 70 ive-p.proc))...........(delete-p
7bbe0 72 6f 63 65 73 73 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 rocess.proc).........(emms-playe
7bc00 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 6c 61 79 69 6e 67 20 6e 69 6c 20 70 72 6f 63 29 0a 20 20 20 r-mpv-proc-playing.nil.proc)....
7bc20 20 20 20 20 20 28 69 6e 74 65 72 72 75 70 74 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 29 0a 20 20 .....(interrupt-process.proc)...
7bc40 20 20 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 ......(when.emms-player-mpv-proc
7bc60 2d 6b 69 6c 6c 2d 64 65 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 -kill-delay...........(run-at-ti
7bc80 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 me............emms-player-mpv-pr
7bca0 6f 63 2d 6b 69 6c 6c 2d 64 65 6c 61 79 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 oc-kill-delay.nil............(la
7bcc0 6d 62 64 61 20 28 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 mbda.(proc)..............(delete
7bce0 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 63 29 -process.proc))............proc)
7bd00 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 ))).....(setq.emms-player-mpv-pr
7bd20 6f 63 20 6e 69 6c 29 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 20 49 50 43 20 75 6e 69 78 20 73 6f oc.nil)))...;;.-----.IPC.unix.so
7bd40 63 6b 65 74 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 cket..(defun.emms-player-mpv-ipc
7bd60 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 20 65 76 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 -sentinel.(proc.ev)...(emms-play
7bd80 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d 73 67 20 22 69 70 63 5b 25 73 5d 3a 20 25 73 22 20 70 er-mpv-debug-msg."ipc[%s]:.%s".p
7bda0 72 6f 63 20 65 76 29 0a 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 28 70 72 6f 63 65 73 73 2d 73 roc.ev)...(when.(memq.(process-s
7bdc0 74 61 74 75 73 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 6f 70 65 6e tatus.proc)...............'(open
7bde0 20 72 75 6e 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 .run)).....(run-hooks.'emms-play
7be00 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 er-mpv-event-connect-hook).....(
7be20 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 when.emms-player-mpv-ipc-connect
7be40 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6d 64 20 65 6d 6d 73 2d 70 -command.......(let.((cmd.emms-p
7be60 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 29 29 0a layer-mpv-ipc-connect-command)).
7be80 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 ........(setq.emms-player-mpv-ip
7bea0 63 2d 63 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 c-connect-command.nil).........(
7bec0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 20 63 6d 64 emms-player-mpv-ipc-req-send.cmd
7bee0 20 6e 69 6c 20 70 72 6f 63 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 .nil.proc)))))..(defun.emms-play
7bf00 65 72 2d 6d 70 76 2d 69 70 63 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 20 73 29 0a 20 20 28 77 68 er-mpv-ipc-filter.(proc.s)...(wh
7bf20 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 en.(buffer-live-p.(process-buffe
7bf40 72 20 70 72 6f 63 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 r.proc)).....(with-current-buffe
7bf60 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 0a 20 20 20 20 20 20 28 6c r.(process-buffer.proc).......(l
7bf80 65 74 20 28 28 6d 6f 76 69 6e 67 20 28 3d 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 et.((moving.(=.(point)..........
7bfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 ..............(process-mark.proc
7bfc0 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 )))).........(save-excursion....
7bfe0 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 .......(goto-char.(process-mark.
7c000 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 73 29 0a 20 20 20 20 proc))...........(insert.s).....
7c020 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 ......(set-marker.(process-mark.
7c040 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 proc).......................(poi
7c060 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 6d 6f 76 69 6e 67 20 28 67 6f 74 6f 2d 63 nt))).........(if.moving.(goto-c
7c080 68 61 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 29 29 29 29 0a 20 20 20 20 20 har.(process-mark.proc))))......
7c0a0 20 3b 3b 20 50 72 6f 63 65 73 73 2f 72 65 6d 6f 76 65 20 61 6c 6c 20 63 6f 6d 70 6c 65 74 65 20 .;;.Process/remove.all.complete.
7c0c0 6c 69 6e 65 73 20 6f 66 20 6a 73 6f 6e 2c 20 69 66 20 61 6e 79 0a 20 20 20 20 20 20 28 6c 65 74 lines.of.json,.if.any.......(let
7c0e0 20 28 28 70 30 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 .((p0.(point-min))).........(whi
7c100 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 le.............(progn...........
7c120 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(goto-char.p0)..............
7c140 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 .(end-of-line)...............(eq
7c160 75 61 6c 20 28 66 6f 6c 6c 6f 77 69 6e 67 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 ual.(following-char)............
7c180 20 20 20 20 20 20 20 20 20 20 3f 5c 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 0a ..........?\n))...........(let*.
7c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 31 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 ..............((p1.(point)).....
7c1c0 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 ...........(json.(buffer-substri
7c1e0 6e 67 20 70 30 20 70 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d ng.p0.p1))).............(delete-
7c200 72 65 67 69 6f 6e 20 70 30 20 28 2b 20 70 31 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 region.p0.(+.p1.1)).............
7c220 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 63 76 20 6a 73 6f 6e 29 29 (emms-player-mpv-ipc-recv.json))
7c240 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 )))))..(defun.emms-player-mpv-ip
7c260 63 2d 63 6f 6e 6e 65 63 74 20 28 64 65 6c 61 79 73 29 0a 20 20 22 4d 61 6b 65 20 49 50 43 20 63 c-connect.(delays)..."Make.IPC.c
7c280 6f 6e 6e 65 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 2c 20 72 65 73 63 68 65 64 75 6c 69 6e 67 20 onnection.attempt,.rescheduling.
7c2a0 69 66 20 74 68 65 72 65 27 73 20 6e 6f 20 73 6f 63 6b 65 74 20 62 79 20 28 63 61 72 20 44 45 4c if.there's.no.socket.by.(car.DEL
7c2c0 41 59 53 29 2e 0a 28 63 64 72 20 44 45 4c 41 59 53 29 20 67 65 74 73 20 70 61 73 73 65 64 20 74 AYS)..(cdr.DELAYS).gets.passed.t
7c2e0 6f 20 6e 65 78 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 2c 0a 73 6f 20 69 74 o.next.connection.attempt,.so.it
7c300 20 63 61 6e 20 62 65 20 72 65 73 63 68 65 64 75 6c 65 64 20 66 75 72 74 68 65 72 20 75 6e 74 69 .can.be.rescheduled.further.unti
7c320 6c 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 73 20 6f 75 74 20 6f 66 20 44 45 4c 41 59 53 20 76 61 l.function.runs.out.of.DELAYS.va
7c340 6c 75 65 73 2e 0a 53 65 74 73 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d lues..Sets.`emms-player-mpv-ipc-
7c360 70 72 6f 63 27 20 76 61 6c 75 65 20 74 6f 20 72 65 73 75 6c 74 69 6e 67 20 70 72 6f 63 65 73 73 proc'.value.to.resulting.process
7c380 20 6f 6e 20 73 75 63 63 65 73 73 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 .on.success."...(emms-player-mpv
7c3a0 2d 64 65 62 75 67 2d 6d 73 67 20 22 69 70 63 3a 20 63 6f 6e 6e 65 63 74 2d 64 65 6c 61 79 20 25 -debug-msg."ipc:.connect-delay.%
7c3c0 73 22 20 28 63 61 72 20 64 65 6c 61 79 73 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c s".(car.delays))...(setq.emms-pl
7c3e0 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 ayer-mpv-ipc-proc.........(condi
7c400 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d tion-case.nil.............(make-
7c420 6e 65 74 77 6f 72 6b 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 network-process..............:na
7c440 6d 65 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 22 0a 20 20 20 20 20 20 20 me."emms-player-mpv-ipc"........
7c460 20 20 20 20 20 20 3a 66 61 6d 69 6c 79 20 27 6c 6f 63 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 ......:family.'local............
7c480 20 20 3a 73 65 72 76 69 63 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 ..:service.emms-player-mpv-ipc-s
7c4a0 6f 63 6b 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 6f 77 61 69 74 20 74 0a 20 20 20 ocket..............:nowait.t....
7c4c0 20 20 20 20 20 20 20 20 20 20 3a 63 6f 64 69 6e 67 20 27 28 75 74 66 2d 38 20 2e 20 75 74 66 2d ..........:coding.'(utf-8...utf-
7c4e0 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 8)..............:buffer.(get-buf
7c500 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 62 fer-create.emms-player-mpv-ipc-b
7c520 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 6f 71 75 65 72 79 20 74 0a 20 uffer)..............:noquery.t..
7c540 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 69 6c 74 65 72 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 ............:filter.#'emms-playe
7c560 72 2d 6d 70 76 2d 69 70 63 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 r-mpv-ipc-filter..............:s
7c580 65 6e 74 69 6e 65 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 65 entinel.#'emms-player-mpv-ipc-se
7c5a0 6e 74 69 6e 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 72 72 6f 72 20 6e 69 ntinel)...........(file-error.ni
7c5c0 6c 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 63 65 73 73 2d 6c 69 76 65 2d 70 20 65 l)))...(unless.(process-live-p.e
7c5e0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 29 0a 20 20 20 20 28 73 65 mms-player-mpv-ipc-proc).....(se
7c600 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 20 6e 69 6c 29 tq.emms-player-mpv-ipc-proc.nil)
7c620 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d )...(when.(and.(not.emms-player-
7c640 6d 70 76 2d 69 70 63 2d 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 61 79 mpv-ipc-proc)..............delay
7c660 73 29 0a 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 28 63 61 72 20 64 65 6c 61 79 73 29 s).....(run-at-time.(car.delays)
7c680 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 ..................nil.#'emms-pla
7c6a0 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 20 28 63 64 72 20 64 65 6c 61 79 73 29 yer-mpv-ipc-connect.(cdr.delays)
7c6c0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d )))..(defun.emms-player-mpv-ipc-
7c6e0 69 6e 69 74 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 6e 65 77 20 6d 70 76 20 69 70 init.()..."Initialize.new.mpv.ip
7c700 63 20 73 6f 63 6b 65 74 2f 66 69 6c 65 20 70 72 6f 63 65 73 73 20 61 6e 64 20 61 73 73 6f 63 69 c.socket/file.process.and.associ
7c720 61 74 65 64 20 73 74 61 74 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d ated.state."...(emms-player-mpv-
7c740 69 70 63 2d 73 74 6f 70 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 ipc-stop)...(emms-player-mpv-deb
7c760 75 67 2d 6d 73 67 20 22 69 70 63 3a 20 69 6e 69 74 22 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 ug-msg."ipc:.init")...(when.emms
7c780 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 74 69 6d 65 72 20 28 63 -player-mpv-ipc-connect-timer.(c
7c7a0 61 6e 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d ancel-timer.emms-player-mpv-ipc-
7c7c0 63 6f 6e 6e 65 63 74 2d 74 69 6d 65 72 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d connect-timer))...(with-current-
7c7e0 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 70 buffer.(get-buffer-create.emms-p
7c800 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 62 75 66 66 65 72 29 20 28 65 72 61 73 65 2d 62 75 66 layer-mpv-ipc-buffer).(erase-buf
7c820 66 65 72 29 29 0a 20 20 28 73 65 74 71 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 fer))...(setq....emms-player-mpv
7c840 2d 69 70 63 2d 69 64 20 31 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 -ipc-id.1....emms-player-mpv-ipc
7c860 2d 72 65 71 2d 74 61 62 6c 65 20 6e 69 6c 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 -req-table.nil....emms-player-mp
7c880 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 74 69 6d 65 72 20 6e 69 6c 0a 20 20 20 65 6d 6d 73 2d v-ipc-connect-timer.nil....emms-
7c8a0 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 74 69 6d 65 72 0a 20 20 20 player-mpv-ipc-connect-timer....
7c8c0 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 28 63 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 (run-at-time.(car.emms-player-mp
7c8e0 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 64 65 6c 61 79 73 29 0a 20 20 20 20 20 20 20 20 20 20 v-ipc-connect-delays)...........
7c900 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 ......nil.................#'emms
7c920 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 20 28 63 64 72 20 65 6d 6d -player-mpv-ipc-connect.(cdr.emm
7c940 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 64 65 6c 61 79 73 29 s-player-mpv-ipc-connect-delays)
7c960 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d )))..(defun.emms-player-mpv-ipc-
7c980 73 74 6f 70 20 28 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d stop.()...(when.emms-player-mpv-
7c9a0 69 70 63 2d 70 72 6f 63 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 ipc-proc.....(emms-player-mpv-de
7c9c0 62 75 67 2d 6d 73 67 20 22 69 70 63 3a 20 73 74 6f 70 22 29 0a 20 20 20 20 28 64 65 6c 65 74 65 bug-msg."ipc:.stop").....(delete
7c9e0 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f -process.emms-player-mpv-ipc-pro
7ca00 63 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 c).....(setq.emms-player-mpv-ipc
7ca20 2d 70 72 6f 63 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 -proc.nil)))..(defun.emms-player
7ca40 2d 6d 70 76 2d 69 70 63 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6f 70 65 6e 20 49 50 43 20 70 -mpv-ipc.()..."Return.open.IPC.p
7ca60 72 6f 63 65 73 73 20 6f 72 20 6e 69 6c 2c 20 28 72 65 2d 29 73 74 61 72 74 69 6e 67 20 6d 70 76 rocess.or.nil,.(re-)starting.mpv
7ca80 2f 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 66 20 6e 65 63 65 73 73 61 72 79 2e 0a 0a 52 65 74 75 72 /connection.if.necessary...Retur
7caa0 6e 20 6e 69 6c 20 77 68 65 6e 20 73 74 61 72 74 69 6e 67 20 61 73 79 6e 63 20 70 72 6f 63 65 73 n.nil.when.starting.async.proces
7cac0 73 2f 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 61 6e 64 20 61 6e 79 0a 66 6f 6c 6c 6f 77 2d 75 70 20 s/connection,.and.any.follow-up.
7cae0 63 6f 6d 6d 61 6e 64 20 73 68 6f 75 6c 64 20 62 65 20 73 74 6f 72 65 64 20 74 6f 0a 60 65 6d 6d command.should.be.stored.to.`emm
7cb00 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 s-player-mpv-ipc-connect-command
7cb20 27 20 69 6e 20 74 68 69 73 20 63 61 73 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 63 '.in.this.case."...(unless.(proc
7cb40 65 73 73 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 29 ess-live-p.emms-player-mpv-proc)
7cb60 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 69 6e 69 74 29 .....(emms-player-mpv-proc-init)
7cb80 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 63 65 73 73 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 )...(unless.(process-live-p.emms
7cba0 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 29 0a 20 20 20 20 28 65 6d 6d 73 2d -player-mpv-ipc-proc).....(emms-
7cbc0 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 6e 69 74 29 29 0a 20 20 28 61 6e 64 0a 20 20 20 player-mpv-ipc-init))...(and....
7cbe0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 0a 20 20 20 28 6d 65 6d emms-player-mpv-ipc-proc....(mem
7cc00 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 q.(process-status.emms-player-mp
7cc20 76 2d 69 70 63 2d 70 72 6f 63 29 20 27 28 6f 70 65 6e 20 72 75 6e 29 29 0a 20 20 20 65 6d 6d 73 v-ipc-proc).'(open.run))....emms
7cc40 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d -player-mpv-ipc-proc))...;;.----
7cc60 2d 20 49 50 43 20 70 72 6f 74 6f 63 6f 6c 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 -.IPC.protocol..(defun.emms-play
7cc80 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 2d 67 65 74 20 28 29 0a 20 20 22 47 65 74 20 6e 65 77 20 er-mpv-ipc-id-get.()..."Get.new.
7cca0 63 6f 6e 6e 65 63 74 69 6f 6e 2d 75 6e 69 71 75 65 20 69 64 20 76 61 6c 75 65 2c 20 74 72 61 63 connection-unique.id.value,.trac
7ccc0 6b 65 64 20 76 69 61 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 27 ked.via.`emms-player-mpv-ipc-id'
7cce0 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 70 63 2d 69 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ."...(let.((ipc-id.emms-player-m
7cd00 70 76 2d 69 70 63 2d 69 64 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 pv-ipc-id)).....(setq.emms-playe
7cd20 72 2d 6d 70 76 2d 69 70 63 2d 69 64 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 65 6d r-mpv-ipc-id...........(if.(<.em
7cd40 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 ms-player-mpv-ipc-id.emms-player
7cd60 2d 6d 70 76 2d 69 70 63 2d 69 64 2d 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -mpv-ipc-id-max)...............(
7cd80 31 2b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 69 64 29 0a 20 20 20 20 20 1+.emms-player-mpv-ipc-id)......
7cda0 20 20 20 20 20 20 20 31 29 29 0a 20 20 20 20 69 70 63 2d 69 64 29 29 0a 0a 28 64 65 66 75 6e 20 .......1)).....ipc-id))..(defun.
7cdc0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 20 28 63 6d emms-player-mpv-ipc-req-send.(cm
7cde0 64 20 26 6f 70 74 69 6f 6e 61 6c 20 68 61 6e 64 6c 65 72 20 70 72 6f 63 29 0a 20 20 22 53 65 6e d.&optional.handler.proc)..."Sen
7ce00 64 20 4a 53 4f 4e 20 49 50 43 20 72 65 71 75 65 73 74 20 61 6e 64 20 61 73 73 69 67 6e 20 48 41 d.JSON.IPC.request.and.assign.HA
7ce20 4e 44 4c 45 52 20 74 6f 20 72 65 73 70 6f 6e 73 65 20 66 6f 72 20 69 74 2c 20 69 66 20 61 6e 79 NDLER.to.response.for.it,.if.any
7ce40 2e 0a 0a 43 4d 44 20 76 61 6c 75 65 20 69 73 20 65 6e 63 6f 64 65 64 20 76 69 61 20 60 6a 73 6f ...CMD.value.is.encoded.via.`jso
7ce60 6e 2d 65 6e 63 6f 64 65 27 2e 0a 0a 48 41 4e 44 4c 45 52 20 66 75 6e 63 20 77 69 6c 6c 20 62 65 n-encode'...HANDLER.func.will.be
7ce80 20 63 61 6c 6c 65 64 20 77 69 74 68 20 64 65 63 6f 64 65 64 20 72 65 73 70 6f 6e 73 65 20 4a 53 .called.with.decoded.response.JS
7cea0 4f 4e 0a 61 73 20 28 68 61 6e 64 6c 65 72 20 64 61 74 61 20 65 72 72 29 2c 20 77 68 65 72 65 20 ON.as.(handler.data.err),.where.
7cec0 45 52 52 20 77 69 6c 6c 20 62 65 20 65 69 74 68 65 72 20 6e 69 6c 20 6f 6e 0a 5c 22 73 75 63 63 ERR.will.be.either.nil.on.\"succ
7cee0 65 73 73 5c 22 2c 20 5c 22 63 6f 6e 6e 65 63 74 69 6f 6e 2d 65 72 72 6f 72 5c 22 20 6f 72 20 77 ess\",.\"connection-error\".or.w
7cf00 68 61 74 65 76 65 72 20 69 73 20 69 6e 20 4a 53 4f 4e 2e 20 20 49 66 0a 48 41 4e 44 4c 45 52 20 hatever.is.in.JSON...If.HANDLER.
7cf20 69 73 20 6e 69 6c 2c 20 64 65 66 61 75 6c 74 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 is.nil,.default.`emms-player-mpv
7cf40 2d 69 70 63 2d 72 65 71 2d 65 72 72 6f 72 2d 70 72 69 6e 74 65 72 27 0a 77 69 6c 6c 20 62 65 20 -ipc-req-error-printer'.will.be.
7cf60 75 73 65 64 20 74 6f 20 61 74 20 6c 65 61 73 74 20 6c 6f 67 20 65 72 72 6f 72 73 2e 20 20 4d 75 used.to.at.least.log.errors...Mu
7cf80 6c 74 69 70 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 63 61 6e 20 62 65 0a 62 61 74 63 68 65 64 20 69 ltiple.commands.can.be.batched.i
7cfa0 6e 20 6f 6e 65 20 6c 69 73 74 20 61 73 20 5c 5c 3d 27 28 62 61 74 63 68 20 28 63 6d 64 31 20 2e n.one.list.as.\\='(batch.(cmd1..
7cfc0 20 68 61 6e 64 6c 65 72 31 29 20 2e 2e 2e 29 2c 20 69 6e 20 77 68 69 63 68 0a 63 61 73 65 20 63 .handler1)....),.in.which.case.c
7cfe0 6f 6d 6d 6f 6e 20 48 41 4e 44 4c 45 52 20 61 72 67 75 6d 65 6e 74 20 69 73 20 69 67 6e 6f 72 65 ommon.HANDLER.argument.is.ignore
7d000 64 2e 20 20 50 52 4f 43 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 0a 74 6f 20 61 76 6f d...PROC.can.be.specified.to.avo
7d020 69 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 27 20 63 61 6c 6c 20 28 65 id.`emms-player-mpv-ipc'.call.(e
7d040 2e 67 2e 20 66 72 6f 6d 20 73 65 6e 74 69 6e 65 6c 2f 66 69 6c 74 65 72 0a 66 75 6e 63 73 29 2e .g..from.sentinel/filter.funcs).
7d060 22 0a 20 20 28 64 6f 6c 69 73 74 0a 20 20 20 20 20 20 28 63 6d 64 2d 61 6e 64 2d 68 61 6e 64 6c "...(dolist.......(cmd-and-handl
7d080 65 72 0a 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6c 69 73 74 70 20 63 6d 64 29 0a 20 er........(if.(and.(listp.cmd)..
7d0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 20 63 6d 64 29 0a 20 20 20 ...............(eq.(car.cmd)....
7d0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 61 74 63 68 29 29 0a 20 20 20 20 20 20 .................'batch)).......
7d0e0 20 20 20 20 20 28 63 64 72 20 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 60 28 28 2c 63 6d 64 20 .....(cdr.cmd)..........`((,cmd.
7d100 2e 20 2c 68 61 6e 64 6c 65 72 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 ..,handler)))).....(cl-destructu
7d120 72 69 6e 67 2d 62 69 6e 64 20 28 63 6d 64 20 2e 20 68 61 6e 64 6c 65 72 29 0a 20 20 20 20 20 20 ring-bind.(cmd...handler).......
7d140 20 20 63 6d 64 2d 61 6e 64 2d 68 61 6e 64 6c 65 72 0a 20 20 20 20 20 20 28 6c 65 74 0a 20 20 20 ..cmd-and-handler.......(let....
7d160 20 20 20 20 20 20 20 28 28 72 65 71 2d 69 64 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 .......((req-id.(emms-player-mpv
7d180 2d 69 70 63 2d 69 64 2d 67 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 71 2d 70 72 -ipc-id-get))............(req-pr
7d1a0 6f 63 20 28 6f 72 20 70 72 6f 63 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 oc.(or.proc.(emms-player-mpv-ipc
7d1c0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 6c 65 72 20 28 6f 72 20 68 61 6e 64 )))............(handler.(or.hand
7d1e0 6c 65 72 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 65 72 ler.#'emms-player-mpv-ipc-req-er
7d200 72 6f 72 2d 70 72 69 6e 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 ror-printer))).........(unless.e
7d220 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 74 61 62 6c 65 0a 20 20 20 mms-player-mpv-ipc-req-table....
7d240 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 .......(setq.emms-player-mpv-ipc
7d260 2d 72 65 71 2d 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 29 0a 20 -req-table.(make-hash-table)))..
7d280 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6a 73 6f 6e 20 28 63 6f 6e 63 61 74 20 28 6a 73 6f 6e .......(let.((json.(concat.(json
7d2a0 2d 65 6e 63 6f 64 65 20 28 6c 69 73 74 20 3a 63 6f 6d 6d 61 6e 64 20 63 6d 64 20 3a 72 65 71 75 -encode.(list.:command.cmd.:requ
7d2c0 65 73 74 5f 69 64 20 72 65 71 2d 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 est_id.req-id)).................
7d2e0 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 ............"\n")))...........(e
7d300 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d 73 67 20 22 6a 73 6f 6e 20 3e mms-player-mpv-debug-msg."json.>
7d320 3e 20 25 73 22 20 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e >.%s".json)...........(condition
7d340 2d 63 61 73 65 20 5f 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 6e 20 61 -case._err...............;;.On.a
7d360 6e 79 20 64 69 73 63 6f 6e 6e 65 63 74 2c 20 61 73 73 75 6d 65 20 74 68 61 74 20 6d 70 76 20 70 ny.disconnect,.assume.that.mpv.p
7d380 72 6f 63 65 73 73 20 69 73 20 74 6f 20 62 6c 61 6d 65 20 61 6e 64 20 66 6f 72 63 65 20 72 65 73 rocess.is.to.blame.and.force.res
7d3a0 74 61 72 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e tart................(process-sen
7d3c0 64 2d 73 74 72 69 6e 67 20 72 65 71 2d 70 72 6f 63 20 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 d-string.req-proc.json).........
7d3e0 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c ....(error..............(emms-pl
7d400 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 73 74 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ayer-mpv-proc-stop).............
7d420 20 28 66 75 6e 63 61 6c 6c 20 68 61 6e 64 6c 65 72 20 6e 69 6c 20 27 63 6f 6e 6e 65 63 74 69 6f .(funcall.handler.nil.'connectio
7d440 6e 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 61 6e 64 n-error)..............(setq.hand
7d460 6c 65 72 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 68 61 6e 64 6c 65 ler.nil)))).........(when.handle
7d480 72 20 28 70 75 74 68 61 73 68 20 72 65 71 2d 69 64 20 68 61 6e 64 6c 65 72 20 65 6d 6d 73 2d 70 r.(puthash.req-id.handler.emms-p
7d4a0 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 74 61 62 6c 65 29 29 29 29 29 29 0a 0a 28 layer-mpv-ipc-req-table))))))..(
7d4c0 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 72 65 defun.emms-player-mpv-ipc-req-re
7d4e0 73 6f 6c 76 65 20 28 72 65 71 2d 69 64 20 64 61 74 61 20 65 72 72 29 0a 20 20 22 52 75 6e 20 68 solve.(req-id.data.err)..."Run.h
7d500 61 6e 64 6c 65 72 2d 66 75 6e 63 20 66 6f 72 20 73 70 65 63 69 66 69 65 64 20 72 65 71 2d 69 64 andler-func.for.specified.req-id
7d520 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 ."...(when.emms-player-mpv-ipc-r
7d540 65 71 2d 74 61 62 6c 65 0a 20 20 20 20 28 6c 65 74 0a 20 20 20 20 20 20 20 20 28 28 68 61 6e 64 eq-table.....(let.........((hand
7d560 6c 65 72 20 28 67 65 74 68 61 73 68 20 72 65 71 2d 69 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ler.(gethash.req-id.emms-player-
7d580 6d 70 76 2d 69 70 63 2d 72 65 71 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 72 mpv-ipc-req-table))..........(er
7d5a0 72 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 65 72 72 20 22 73 75 63 63 65 73 73 22 29 0a 20 20 r.(if.(string=.err."success")...
7d5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 65 72 72 29 29 29 0a 20 20 20 20 20 ................nil.err)))......
7d5e0 20 28 72 65 6d 68 61 73 68 20 72 65 71 2d 69 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 .(remhash.req-id.emms-player-mpv
7d600 2d 69 70 63 2d 72 65 71 2d 74 61 62 6c 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 68 61 6e 64 -ipc-req-table).......(when.hand
7d620 6c 65 72 20 28 66 75 6e 63 61 6c 6c 20 68 61 6e 64 6c 65 72 20 64 61 74 61 20 65 72 72 29 29 29 ler.(funcall.handler.data.err)))
7d640 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 ))..(defun.emms-player-mpv-ipc-r
7d660 65 71 2d 65 72 72 6f 72 2d 70 72 69 6e 74 65 72 20 28 5f 64 61 74 61 20 65 72 72 29 0a 20 20 22 eq-error-printer.(_data.err)..."
7d680 53 69 6d 70 6c 65 20 64 65 66 61 75 6c 74 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d Simple.default.`emms-player-mpv-
7d6a0 69 70 63 2d 72 65 71 2d 73 65 6e 64 27 20 68 61 6e 64 6c 65 72 20 74 6f 20 6c 6f 67 0a 65 72 72 ipc-req-send'.handler.to.log.err
7d6c0 6f 72 73 2c 20 69 66 20 61 6e 79 2e 22 0a 20 20 28 77 68 65 6e 20 65 72 72 20 28 6d 65 73 73 61 ors,.if.any."...(when.err.(messa
7d6e0 67 65 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 20 69 70 63 2d 65 72 72 6f 72 3a 20 25 ge."emms-player-mpv.ipc-error:.%
7d700 73 22 20 65 72 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 s".err)))..(defun.emms-player-mp
7d720 76 2d 69 70 63 2d 72 65 63 76 20 28 6a 73 6f 6e 29 0a 20 20 22 48 61 6e 64 6c 65 72 20 66 6f 72 v-ipc-recv.(json)..."Handler.for
7d740 20 61 6c 6c 20 4a 53 4f 4e 20 6c 69 6e 65 73 20 66 72 6f 6d 20 6d 70 76 20 70 72 6f 63 65 73 73 .all.JSON.lines.from.mpv.process
7d760 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 62 75 67 2d 6d 73 67 20 ."...(emms-player-mpv-debug-msg.
7d780 22 6a 73 6f 6e 20 3c 3c 20 25 73 22 20 6a 73 6f 6e 29 0a 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 "json.<<.%s".json)...(let*......
7d7a0 20 28 28 6a 73 6f 6e 2d 64 61 74 61 20 28 6a 73 6f 6e 2d 72 65 61 64 2d 66 72 6f 6d 2d 73 74 72 .((json-data.(json-read-from-str
7d7c0 69 6e 67 20 6a 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 28 72 65 71 2d 69 64 20 28 61 6c 69 73 74 ing.json))........(req-id.(alist
7d7e0 2d 67 65 74 20 27 72 65 71 75 65 73 74 5f 69 64 20 6a 73 6f 6e 2d 64 61 74 61 29 29 0a 20 20 20 -get.'request_id.json-data))....
7d800 20 20 20 20 28 65 76 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 76 65 6e 74 20 6a 73 6f 6e 2d 64 ....(ev.(alist-get.'event.json-d
7d820 61 74 61 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 72 65 71 2d 69 64 0a 20 20 20 20 20 20 3b 3b ata))).....(when.req-id.......;;
7d840 20 52 65 73 70 6f 6e 73 65 20 74 6f 20 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 28 65 6d 6d 73 .Response.to.command.......(emms
7d860 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 72 65 73 6f 6c 76 65 20 72 65 71 2d -player-mpv-ipc-req-resolve.req-
7d880 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 id..............................
7d8a0 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 64 61 74 61 20 6a 73 6f 6e 2d ..........(alist-get.'data.json-
7d8c0 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 data)...........................
7d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 72 72 6f 72 20 6a .............(alist-get.'error.j
7d900 73 6f 6e 2d 64 61 74 61 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 76 0a 20 20 20 20 20 20 3b son-data))).....(when.ev.......;
7d920 3b 20 6d 70 76 20 65 76 65 6e 74 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ;.mpv.event.......(emms-player-m
7d940 70 76 2d 65 76 65 6e 74 2d 68 61 6e 64 6c 65 72 20 6a 73 6f 6e 2d 64 61 74 61 29 0a 20 20 20 20 pv-event-handler.json-data).....
7d960 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 70 6c 61 79 ..(run-hook-with-args.'emms-play
7d980 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 20 6a 73 6f 6e 2d 64 61 74 61 er-mpv-event-functions.json-data
7d9a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 6f 62 73 ))))..(defun.emms-player-mpv-obs
7d9c0 65 72 76 65 2d 70 72 6f 70 65 72 74 79 20 28 73 79 6d 29 0a 20 20 22 53 65 6e 64 20 6d 70 76 20 erve-property.(sym)..."Send.mpv.
7d9e0 6f 62 73 65 72 76 65 5f 70 72 6f 70 65 72 74 79 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 70 72 6f observe_property.command.for.pro
7da00 70 65 72 74 79 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 53 59 4d 2e 0a 4f 6e 6c 79 20 73 65 perty.identified.by.SYM..Only.se
7da20 6e 64 73 20 63 6f 6d 6d 61 6e 64 20 6f 6e 63 65 20 70 65 72 20 70 72 6f 63 65 73 73 2c 20 72 65 nds.command.once.per.process,.re
7da40 6d 6f 76 69 6e 67 20 61 6e 79 0a 70 6f 74 65 6e 74 69 61 6c 20 64 75 70 6c 69 63 61 74 69 6f 6e moving.any.potential.duplication
7da60 20 69 66 20 75 73 65 64 20 66 6f 72 20 73 61 6d 65 20 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f .if.used.for.same.properties.fro
7da80 6d 20 64 69 66 66 65 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 m.different.functions."...(let.(
7daa0 28 69 64 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 73 79 6d 62 6f 6c (id.(emms-player-mpv-proc-symbol
7dac0 2d 69 64 20 73 79 6d 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 64 20 28 65 6d 6d 73 2d 70 6c -id.sym))).....(when.id.(emms-pl
7dae0 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 20 60 28 6f 62 73 65 72 76 65 5f ayer-mpv-ipc-req-send.`(observe_
7db00 70 72 6f 70 65 72 74 79 20 2c 69 64 20 2c 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 property.,id.,sym)))))..(defun.e
7db20 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 69 64 6c 65 20 28 29 0a 20 20 22 mms-player-mpv-event-idle.()..."
7db40 44 65 6c 61 79 65 64 20 63 68 65 63 6b 20 66 6f 72 20 73 77 69 74 63 68 69 6e 67 20 74 72 61 63 Delayed.check.for.switching.trac
7db60 6b 73 20 77 68 65 6e 20 6d 70 76 20 67 6f 65 73 20 69 64 6c 65 20 66 6f 72 20 6e 6f 20 67 6f 6f ks.when.mpv.goes.idle.for.no.goo
7db80 64 20 72 65 61 73 6f 6e 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 64 65 d.reason."...(emms-player-mpv-de
7dba0 62 75 67 2d 6d 73 67 20 22 69 64 6c 65 2d 63 68 65 63 6b 20 28 73 74 6f 70 70 65 64 3d 25 73 29 bug-msg."idle-check.(stopped=%s)
7dbc0 22 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f 70 70 65 64 29 0a 20 20 28 75 6e ".emms-player-mpv-stopped)...(un
7dbe0 6c 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f 70 70 65 64 20 28 65 6d less.emms-player-mpv-stopped.(em
7dc00 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ms-player-stopped)))..(defun.emm
7dc20 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d s-player-mpv-event-playing-time-
7dc40 73 79 6e 63 20 28 29 0a 20 20 22 52 65 71 75 65 73 74 20 61 6e 64 20 75 70 64 61 74 65 20 60 65 sync.()..."Request.and.update.`e
7dc60 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 27 20 61 66 74 65 72 20 70 6c 61 79 62 61 63 6b mms-playing-time'.after.playback
7dc80 0a 73 65 65 6b 2f 72 65 73 74 61 72 74 20 6f 72 20 75 6e 70 61 75 73 65 2e 22 0a 20 20 28 65 6d .seek/restart.or.unpause."...(em
7dca0 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 20 27 28 67 65 74 ms-player-mpv-ipc-req-send.'(get
7dcc0 5f 70 72 6f 70 65 72 74 79 20 74 69 6d 65 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 _property.time-pos).............
7dce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 70 ....................#'(lambda.(p
7dd00 6f 73 20 65 72 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 os.err).........................
7dd20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 72 72 20 28 65 6d 6d 73 2d 70 6c ............(unless.err.(emms-pl
7dd40 61 79 69 6e 67 2d 74 69 6d 65 2d 73 65 74 20 70 6f 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 aying-time-set.pos)))))..(defun.
7dd60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 68 61 6e 64 6c 65 72 20 28 6a emms-player-mpv-event-handler.(j
7dd80 73 6f 6e 2d 64 61 74 61 29 0a 20 20 22 48 61 6e 64 6c 65 72 20 66 6f 72 20 73 75 70 70 6f 72 74 son-data)..."Handler.for.support
7dda0 65 64 20 6d 70 76 20 65 76 65 6e 74 73 2c 20 69 6e 63 6c 75 64 69 6e 67 20 70 72 6f 70 65 72 74 ed.mpv.events,.including.propert
7ddc0 79 20 63 68 61 6e 67 65 73 2e 0a 0a 43 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 60 65 6d 6d 73 2d y.changes...Called.before.`emms-
7dde0 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 20 61 6e 64 20 player-mpv-event-functions'.and.
7de00 64 6f 65 73 20 73 61 6d 65 0a 74 68 69 6e 67 20 61 73 20 74 68 65 73 65 20 68 6f 6f 6b 73 2e 22 does.same.thing.as.these.hooks."
7de20 0a 20 20 28 70 63 61 73 65 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 76 65 6e 74 20 6a 73 6f 6e ...(pcase.(alist-get.'event.json
7de40 2d 64 61 74 61 29 0a 20 20 20 20 28 22 70 6c 61 79 62 61 63 6b 2d 72 65 73 74 61 72 74 22 0a 20 -data).....("playback-restart"..
7de60 20 20 20 20 3b 3b 20 53 65 70 61 72 61 74 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d ....;;.Separate.emms-player-mpv-
7de80 70 72 6f 63 2d 70 6c 61 79 69 6e 67 20 73 74 61 74 65 20 69 73 20 75 73 65 64 20 66 6f 72 20 65 proc-playing.state.is.used.for.e
7dea0 6d 6d 73 20 73 74 61 72 74 65 64 2f 73 74 6f 70 70 65 64 20 73 69 67 6e 61 6c 73 2c 0a 20 20 20 mms.started/stopped.signals,....
7dec0 20 20 3b 3b 20 20 62 65 63 61 75 73 65 20 73 74 61 72 74 2d 66 69 6c 65 2f 65 6e 64 2d 66 69 6c ..;;..because.start-file/end-fil
7dee0 65 20 61 72 65 20 61 6c 73 6f 20 65 6d 69 74 74 65 64 20 61 66 74 65 72 20 74 72 61 63 6b 2d 63 e.are.also.emitted.after.track-c
7df00 68 61 6e 67 65 20 61 6e 64 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 73 2c 0a 20 20 20 20 20 3b 3b hange.and.for.playlists,......;;
7df20 20 20 61 6e 64 20 64 6f 6e 27 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 61 63 74 75 61 6c ..and.don't.correspond.to.actual
7df40 20 70 6c 61 79 62 61 63 6b 20 73 74 61 74 65 2e 0a 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 .playback.state.......(unless.(e
7df60 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 6c 61 79 69 6e 67 2d 70 29 0a 20 mms-player-mpv-proc-playing-p)..
7df80 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 6c 61 79 ......(emms-player-mpv-proc-play
7dfa0 69 6e 67 20 74 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 ing.t)........(emms-player-start
7dfc0 65 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 29 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d ed.emms-player-mpv))......(emms-
7dfe0 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 79 player-mpv-event-playing-time-sy
7e000 6e 63 29 29 0a 20 20 20 20 28 22 70 61 75 73 65 22 0a 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 nc)).....("pause"......(unless.e
7e020 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 0a 20 20 20 20 20 20 20 28 73 65 74 71 mms-player-paused-p........(setq
7e040 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 74 29 0a 20 20 20 20 20 20 20 .emms-player-paused-p.t)........
7e060 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 (run-hooks.'emms-player-paused-h
7e080 6f 6f 6b 29 29 29 0a 20 20 20 20 28 22 75 6e 70 61 75 73 65 22 0a 20 20 20 20 20 28 65 6d 6d 73 ook))).....("unpause"......(emms
7e0a0 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 -player-mpv-event-playing-time-s
7e0c0 79 6e 63 29 0a 20 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 ync)......(when.emms-player-paus
7e0e0 65 64 2d 70 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 ed-p........(setq.emms-player-pa
7e100 75 73 65 64 2d 70 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 used-p.nil)........(run-hooks.'e
7e120 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 29 29 29 0a 20 20 20 20 28 22 mms-player-paused-hook))).....("
7e140 65 6e 64 2d 66 69 6c 65 22 0a 20 20 20 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d 70 6c 61 79 65 end-file"......(when.(emms-playe
7e160 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 6c 61 79 69 6e 67 2d 70 29 0a 20 20 20 20 20 20 20 28 65 6d r-mpv-proc-playing-p)........(em
7e180 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 6c 61 79 69 6e 67 20 6e 69 6c 29 0a ms-player-mpv-proc-playing.nil).
7e1a0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 0a 20 20 .......(emms-player-stopped))...
7e1c0 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 74 6f ...(when.emms-player-mpv-ipc-sto
7e1e0 70 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 65 6d 6d p-command........(unless.(eq.emm
7e200 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d 61 6e 64 20 74 29 s-player-mpv-ipc-stop-command.t)
7e220 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ..........(funcall.emms-player-m
7e240 70 76 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 28 73 65 pv-ipc-stop-command))........(se
7e260 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d tq.emms-player-mpv-ipc-stop-comm
7e280 61 6e 64 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 22 69 64 6c 65 22 0a 20 20 20 20 20 3b 3b 20 43 and.nil))).....("idle"......;;.C
7e2a0 61 6e 20 6d 65 61 6e 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 65 72 72 6f 72 20 62 65 66 6f 72 65 an.mean.any.kind.of.error.before
7e2c0 20 6f 72 20 64 75 72 69 6e 67 20 70 6c 61 79 62 61 63 6b 2e 0a 20 20 20 20 20 3b 3b 20 45 78 61 .or.during.playback.......;;.Exa
7e2e0 6d 70 6c 65 20 63 61 6e 20 62 65 20 61 63 63 65 73 73 2f 66 6f 72 6d 61 74 20 65 72 72 6f 72 2c mple.can.be.access/format.error,
7e300 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 73 74 61 72 74 2b 65 6e 64 20 77 69 74 68 6f 75 74 20 .resulting.in.start+end.without.
7e320 70 6c 61 79 62 61 63 6b 2d 72 65 73 74 61 72 74 2e 0a 20 20 20 20 20 28 63 61 6e 63 65 6c 2d 74 playback-restart.......(cancel-t
7e340 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 64 6c 65 2d 74 69 6d 65 72 29 imer.emms-player-mpv-idle-timer)
7e360 0a 20 20 20 20 20 28 73 65 74 71 0a 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ......(setq.......emms-player-mp
7e380 76 2d 69 64 6c 65 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 v-idle-timer.......(run-at-time.
7e3a0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 64 6c 65 2d 64 65 6c 61 79 20 6e 69 6c 20 23 emms-player-mpv-idle-delay.nil.#
7e3c0 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 69 64 6c 65 29 0a 20 20 20 'emms-player-mpv-event-idle)....
7e3e0 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d ...emms-player-mpv-ipc-stop-comm
7e400 61 6e 64 20 6e 69 6c 29 29 0a 20 20 20 20 28 22 73 74 61 72 74 2d 66 69 6c 65 22 20 28 63 61 6e and.nil)).....("start-file".(can
7e420 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 64 6c 65 2d 74 cel-timer.emms-player-mpv-idle-t
7e440 69 6d 65 72 29 29 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 20 4d 65 74 61 64 61 74 61 20 75 70 64 imer))))...;;.-----.Metadata.upd
7e460 61 74 65 20 68 6f 6f 6b 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ate.hooks..(defun.emms-player-mp
7e480 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 63 6f 6e 6e 65 63 74 2d 66 75 6e 63 20 28 29 0a 20 20 22 48 v-info-meta-connect-func.()..."H
7e4a0 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ook.function.for.`emms-player-mp
7e4c0 76 2d 65 76 65 6e 74 2d 63 6f 6e 6e 65 63 74 2d 68 6f 6f 6b 27 20 74 6f 20 75 70 64 61 74 65 0a v-event-connect-hook'.to.update.
7e4e0 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 6d 70 76 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 metadata.from.mpv."...(emms-play
7e500 65 72 2d 6d 70 76 2d 6f 62 73 65 72 76 65 2d 70 72 6f 70 65 72 74 79 20 27 6d 65 74 61 64 61 74 er-mpv-observe-property.'metadat
7e520 61 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 6f 62 73 65 72 76 65 2d 70 72 a)...(emms-player-mpv-observe-pr
7e540 6f 70 65 72 74 79 20 27 64 75 72 61 74 69 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d operty.'duration))..(defun.emms-
7e560 70 6c 61 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 65 76 65 6e 74 2d 66 75 6e 63 20 player-mpv-info-meta-event-func.
7e580 28 6a 73 6f 6e 2d 64 61 74 61 29 0a 20 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 (json-data)..."Hook.function.for
7e5a0 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e .`emms-player-mpv-event-function
7e5c0 73 27 20 74 6f 20 75 70 64 61 74 65 0a 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 6d 70 76 2e 22 s'.to.update.metadata.from.mpv."
7e5e0 0a 20 20 28 77 68 65 6e 0a 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 28 73 74 72 69 ...(when.......(and........(stri
7e600 6e 67 3d 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 76 65 6e 74 20 6a 73 6f 6e 2d 64 61 74 61 29 ng=.(alist-get.'event.json-data)
7e620 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 ................."property-chang
7e640 65 22 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 61 6c 69 73 74 2d 67 65 74 20 27 e")........(string=.(alist-get.'
7e660 6e 61 6d 65 20 6a 73 6f 6e 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.json-data).................
7e680 22 6d 65 74 61 64 61 74 61 22 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 2d 61 6c 69 "metadata")).....(let.((info-ali
7e6a0 73 74 20 28 61 6c 69 73 74 2d 67 65 74 20 27 64 61 74 61 20 6a 73 6f 6e 2d 64 61 74 61 29 29 29 st.(alist-get.'data.json-data)))
7e6c0 0a 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 66 6f 2d 61 6c 69 73 74 20 28 65 6d 6d 73 2d 70 6c .......(when.info-alist.(emms-pl
7e6e0 61 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 20 ayer-mpv-info-meta-update-track.
7e700 69 6e 66 6f 2d 61 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 info-alist)))))..(defun.emms-pla
7e720 79 65 72 2d 6d 70 76 2d 69 6e 66 6f 2d 6d 65 74 61 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 20 28 yer-mpv-info-meta-update-track.(
7e740 69 6e 66 6f 2d 61 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20 74 72 61 63 6b 29 0a 20 20 22 55 info-alist.&optional.track)..."U
7e760 70 64 61 74 65 20 54 52 41 43 4b 20 77 69 74 68 20 6d 70 76 20 6d 65 74 61 64 61 74 61 20 66 72 pdate.TRACK.with.mpv.metadata.fr
7e780 6f 6d 20 49 4e 46 4f 2d 41 4c 49 53 54 2e 0a 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 om.INFO-ALIST..`emms-playlist-cu
7e7a0 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 27 20 69 73 20 75 73 65 64 20 62 79 rrent-selected-track'.is.used.by
7e7c0 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6d 61 70 63 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 .default."...(mapc....(lambda.(c
7e7e0 63 29 0a 20 20 20 20 20 28 73 65 74 63 61 72 20 63 63 20 28 69 6e 74 65 72 6e 20 28 64 6f 77 6e c)......(setcar.cc.(intern.(down
7e800 63 61 73 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 63 63 29 29 29 29 29 29 0a case.(symbol-name.(car.cc)))))).
7e820 20 20 20 69 6e 66 6f 2d 61 6c 69 73 74 29 0a 20 20 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 0a 20 20 ...info-alist)...(cl-macrolet...
7e840 20 20 20 20 28 28 6b 65 79 20 28 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 60 28 61 6c 69 73 ....((key.(k).............`(alis
7e860 74 2d 67 65 74 20 27 2c 6b 20 69 6e 66 6f 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 28 73 t-get.',k.info-alist))........(s
7e880 65 74 2d 74 72 61 63 6b 2d 69 6e 66 6f 20 28 74 72 61 63 6b 20 26 72 65 73 74 20 62 6f 64 79 29 et-track-info.(track.&rest.body)
7e8a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 70 ........................(cons.'p
7e8c0 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rogn............................
7e8e0 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 ..(cl-loop.for.(k.v)............
7e900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 6e 20 62 6f ...........................on.bo
7e920 64 79 20 62 79 20 27 63 64 64 72 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 dy.by.'cddr.collect.............
7e940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 20 ..........................`(let.
7e960 28 28 76 61 6c 75 65 20 2c 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ((value.,v))....................
7e980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76 61 6c 75 ......................(when.valu
7e9a0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e...............................
7e9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 2c 74 72 .............(emms-track-set.,tr
7e9e0 61 63 6b 20 27 2c 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 69 6e 66 6f 2d 25 73 22 20 ack.',(intern.(format."info-%s".
7ea00 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k)).............................
7ea20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 ...............................v
7ea40 61 6c 75 65 29 29 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 6b 20 28 73 alue))))))).....(unless.track.(s
7ea60 65 74 71 20 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 etq.track.(emms-playlist-current
7ea80 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 73 65 74 2d 74 72 61 63 -selected-track))).....(set-trac
7eaa0 6b 2d 69 6e 66 6f 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k-info.track....................
7eac0 20 74 69 74 6c 65 20 28 6f 72 20 28 6b 65 79 20 74 69 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 .title.(or.(key.title)..........
7eae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 .....................(unless.(st
7eb00 72 69 6e 67 3d 20 22 22 20 28 6b 65 79 20 69 63 79 2d 74 69 74 6c 65 29 29 20 28 6b 65 79 20 69 ring=."".(key.icy-title)).(key.i
7eb20 63 79 2d 74 69 74 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cy-title))......................
7eb40 20 20 20 20 20 20 20 20 20 28 6b 65 79 20 69 63 79 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 .........(key.icy-name))........
7eb60 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 74 69 73 74 20 28 6f 72 20 28 6b 65 79 20 61 72 74 .............artist.(or.(key.art
7eb80 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ist)............................
7eba0 20 20 20 20 28 6b 65 79 20 61 6c 62 75 6d 5f 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 ....(key.album_artist)..........
7ebc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 20 69 63 79 2d 6e ......................(key.icy-n
7ebe0 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 62 75 6d 20 ame)).....................album.
7ec00 28 6b 65 79 20 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (key.album).....................
7ec20 74 72 61 63 6b 6e 75 6d 62 65 72 20 28 6b 65 79 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 tracknumber.(key.track).........
7ec40 20 20 20 20 20 20 20 20 20 20 20 20 79 65 61 72 20 28 6b 65 79 20 64 61 74 65 29 0a 20 20 20 20 ............year.(key.date).....
7ec60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 72 65 20 28 6b 65 79 20 67 65 6e 72 65 ................genre.(key.genre
7ec80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 74 65 20 28 6b 65 79 20 ).....................note.(key.
7eca0 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 comment)).....(emms-track-update
7ecc0 64 20 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d d.track)))..(defun.emms-player-m
7ece0 70 76 2d 69 6e 66 6f 2d 64 75 72 61 74 69 6f 6e 2d 65 76 65 6e 74 2d 66 75 6e 63 20 28 6a 73 6f pv-info-duration-event-func.(jso
7ed00 6e 2d 64 61 74 61 29 0a 20 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 65 6d n-data)..."Hook.function.for.`em
7ed20 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 65 76 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 20 74 ms-player-mpv-event-functions'.t
7ed40 6f 20 75 70 64 61 74 65 0a 74 72 61 63 6b 20 64 75 72 61 74 69 6f 6e 20 66 72 6f 6d 20 6d 70 76 o.update.track.duration.from.mpv
7ed60 2e 22 0a 20 20 28 77 68 65 6e 0a 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 28 73 74 ."...(when.......(and........(st
7ed80 72 69 6e 67 3d 20 28 61 6c 69 73 74 2d 67 65 74 20 27 65 76 65 6e 74 20 6a 73 6f 6e 2d 64 61 74 ring=.(alist-get.'event.json-dat
7eda0 61 29 20 22 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 22 29 0a 20 20 20 20 20 20 20 28 73 74 a)."property-change")........(st
7edc0 72 69 6e 67 3d 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6e 61 6d 65 20 6a 73 6f 6e 2d 64 61 74 61 ring=.(alist-get.'name.json-data
7ede0 29 20 22 64 75 72 61 74 69 6f 6e 22 29 29 0a 20 20 20 20 28 6c 65 74 0a 20 20 20 20 20 20 20 20 )."duration")).....(let.........
7ee00 28 28 64 75 72 61 74 69 6f 6e 20 28 61 6c 69 73 74 2d 67 65 74 20 27 64 61 74 61 20 6a 73 6f 6e ((duration.(alist-get.'data.json
7ee20 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c -data))..........(track.(emms-pl
7ee40 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 aylist-current-selected-track)))
7ee60 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 74 72 61 63 6b 20 28 6e 75 6d 62 65 72 70 .......(when.(and.track.(numberp
7ee80 20 64 75 72 61 74 69 6f 6e 29 20 28 3e 20 64 75 72 61 74 69 6f 6e 20 30 29 29 0a 20 20 20 20 20 .duration).(>.duration.0))......
7eea0 20 20 20 28 73 65 74 71 20 64 75 72 61 74 69 6f 6e 20 28 72 6f 75 6e 64 20 64 75 72 61 74 69 6f ...(setq.duration.(round.duratio
7eec0 6e 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 n)).........(emms-track-set.trac
7eee0 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 64 75 72 61 74 69 6f 6e 29 0a 20 k.'info-playing-time.duration)..
7ef00 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e .......(emms-track-set.track.'in
7ef20 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 69 6e 20 28 2f 20 64 75 72 61 74 69 6f 6e 20 fo-playing-time-min.(/.duration.
7ef40 36 30 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 60)).........(emms-track-set.tra
7ef60 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 65 63 20 28 25 20 64 75 72 ck.'info-playing-time-sec.(%.dur
7ef80 61 74 69 6f 6e 20 36 30 29 29 29 29 29 29 0a 0a 0a 3b 3b 20 2d 2d 2d 2d 2d 20 48 69 67 68 2d 6c ation.60))))))...;;.-----.High-l
7efa0 65 76 65 6c 20 45 4d 4d 53 20 69 6e 74 65 72 66 61 63 65 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 evel.EMMS.interface..(defun.emms
7efc0 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 20 28 63 6d 64 20 26 6f 70 74 69 6f 6e 61 6c 20 68 -player-mpv-cmd.(cmd.&optional.h
7efe0 61 6e 64 6c 65 72 29 0a 20 20 22 53 65 6e 64 20 6d 70 76 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 70 andler)..."Send.mpv.command.to.p
7f000 72 6f 63 65 73 73 2f 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 66 20 62 6f 74 68 20 61 72 65 20 72 75 rocess/connection.if.both.are.ru
7f020 6e 6e 69 6e 67 2c 0a 6f 72 20 6f 74 68 65 72 77 69 73 65 20 73 63 68 65 64 75 6c 65 20 73 74 61 nning,.or.otherwise.schedule.sta
7f040 72 74 2f 63 6f 6e 6e 65 63 74 20 61 6e 64 20 73 65 74 0a 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d rt/connect.and.set.`emms-player-
7f060 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 27 20 66 6f 72 20 60 65 6d mpv-ipc-connect-command'.for.`em
7f080 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 65 6e 74 69 6e 65 6c 27 2e 0a 4d 75 6c ms-player-mpv-ipc-sentinel'..Mul
7f0a0 74 69 70 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 63 61 6e 20 62 65 20 62 61 74 63 68 65 64 20 69 6e tiple.commands.can.be.batched.in
7f0c0 20 6f 6e 65 20 6c 69 73 74 20 61 73 20 5c 5c 3d 27 28 62 61 74 63 68 20 28 63 6d 64 31 20 2e 20 .one.list.as.\\='(batch.(cmd1...
7f0e0 68 61 6e 64 6c 65 72 31 29 20 2e 2e 2e 29 2c 0a 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 63 6f handler1)....),.in.which.case.co
7f100 6d 6d 6f 6e 20 48 41 4e 44 4c 45 52 20 61 72 67 75 6d 65 6e 74 20 69 73 20 69 67 6e 6f 72 65 64 mmon.HANDLER.argument.is.ignored
7f120 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 ."...(setq.emms-player-mpv-ipc-c
7f140 6f 6e 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 20 6e 69 6c 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f onnect-command.nil)...(let.((pro
7f160 63 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 29 29 29 0a 20 20 20 20 28 69 c.(emms-player-mpv-ipc))).....(i
7f180 66 20 70 72 6f 63 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 f.proc.......(emms-player-mpv-ip
7f1a0 63 2d 72 65 71 2d 73 65 6e 64 20 63 6d 64 20 68 61 6e 64 6c 65 72 20 70 72 6f 63 29 0a 20 20 20 c-req-send.cmd.handler.proc)....
7f1c0 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e ...(setq.emms-player-mpv-ipc-con
7f1e0 6e 65 63 74 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 nect-command.cmd))))..(defmacro.
7f200 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 2d 70 72 6f 67 20 28 63 6d 64 20 26 72 emms-player-mpv-cmd-prog.(cmd.&r
7f220 65 73 74 20 68 61 6e 64 6c 65 72 2d 62 6f 64 79 29 0a 20 20 22 4f 62 73 6f 6c 65 74 65 20 6d 61 est.handler-body)..."Obsolete.ma
7f240 63 72 6f 20 61 72 6f 75 6e 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 27 cro.around.`emms-player-mpv-cmd'
7f260 20 74 68 61 74 20 63 72 65 61 74 65 73 20 68 61 6e 64 6c 65 72 0a 63 61 6c 6c 62 61 63 6b 20 28 .that.creates.handler.callback.(
7f280 73 65 65 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e see.`emms-player-mpv-ipc-req-sen
7f2a0 64 27 29 20 66 72 6f 6d 20 48 41 4e 44 4c 45 52 2d 42 4f 44 59 0a 66 6f 72 6d 73 2c 20 77 68 69 d').from.HANDLER-BODY.forms,.whi
7f2c0 63 68 20 68 61 76 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 62 69 6e 64 69 6e 67 73 3a 0a 0a 2d 20 6d ch.have.following.bindings:..-.m
7f2e0 70 76 2d 63 6d 64 20 66 6f 72 20 43 4d 44 2e 0a 2d 20 6d 70 76 2d 64 61 74 61 20 66 6f 72 20 72 pv-cmd.for.CMD..-.mpv-data.for.r
7f300 65 73 70 6f 6e 73 65 20 64 61 74 61 20 28 64 65 63 6f 64 65 64 20 6a 73 6f 6e 2c 20 6e 69 6c 20 esponse.data.(decoded.json,.nil.
7f320 69 66 20 6e 6f 6e 65 29 2e 0a 2d 20 6d 70 76 2d 65 72 72 6f 72 20 66 6f 72 20 72 65 73 70 6f 6e if.none)..-.mpv-error.for.respon
7f340 73 65 20 65 72 72 6f 72 20 28 6e 69 6c 20 69 66 20 6e 6f 20 65 72 72 6f 72 2c 20 64 65 63 6f 64 se.error.(nil.if.no.error,.decod
7f360 65 64 20 6a 73 6f 6e 20 6f 72 0a 20 20 5c 5c 3d 27 63 6f 6e 6e 65 63 74 69 6f 6e 2d 65 72 72 6f ed.json.or...\\='connection-erro
7f380 72 29 2e 0a 0a 44 6f 20 6e 6f 74 20 75 73 65 20 69 74 20 77 69 74 68 20 6e 65 77 20 63 6f 64 65 r)...Do.not.use.it.with.new.code
7f3a0 20 2d 20 69 74 20 77 69 6c 6c 20 72 61 69 73 65 20 77 61 72 6e 69 6e 67 73 20 77 68 65 6e 20 75 .-.it.will.raise.warnings.when.u
7f3c0 73 65 64 0a 77 69 74 68 20 6c 65 78 69 63 61 6c 20 62 69 6e 64 69 6e 67 73 2c 20 61 6e 64 20 77 sed.with.lexical.bindings,.and.w
7f3e0 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 61 20 66 75 74 75 72 65 20 45 4d 4d 53 0a ill.be.removed.in.a.future.EMMS.
7f400 76 65 72 73 69 6f 6e 2e 22 0a 20 20 60 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d version."...`(emms-player-mpv-cm
7f420 64 20 2c 63 6d 64 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 d.,cmd.(apply-partially.........
7f440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6d ......................(lambda.(m
7f460 70 76 2d 63 6d 64 20 6d 70 76 2d 64 61 74 61 20 6d 70 76 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 pv-cmd.mpv-data.mpv-error)......
7f480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 68 61 6e ...........................,@han
7f4a0 64 6c 65 72 2d 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dler-body)......................
7f4c0 20 20 20 20 20 20 20 20 20 2c 63 6d 64 29 29 29 0a 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 .........,cmd)))..(make-obsolete
7f4e0 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 2d 70 72 6f 67 20 6e 69 6c 20 22 .'emms-player-mpv-cmd-prog.nil."
7f500 45 6d 6d 73 20 37 22 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 Emms.7")...(defun.emms-player-mp
7f520 76 2d 70 6c 61 79 61 62 6c 65 2d 70 20 28 74 72 61 63 6b 29 0a 20 20 28 6d 65 6d 71 20 28 65 6d v-playable-p.(track)...(memq.(em
7f540 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 27 28 66 ms-track-type.track).........'(f
7f560 69 6c 65 20 75 72 6c 20 73 74 72 65 61 6d 6c 69 73 74 20 70 6c 61 79 6c 69 73 74 29 29 29 0a 0a ile.url.streamlist.playlist)))..
7f580 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 61 72 74 20 28 74 72 (defun.emms-player-mpv-start.(tr
7f5a0 61 63 6b 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f ack)...(setq.emms-player-mpv-sto
7f5c0 70 70 65 64 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f pped.nil)...(emms-player-mpv-pro
7f5e0 63 2d 70 6c 61 79 69 6e 67 20 6e 69 6c 29 0a 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 74 c-playing.nil)...(let*.......((t
7f600 72 61 63 6b 2d 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 rack-name.(emms-track-get.track.
7f620 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 28 74 72 61 63 6b 2d 70 6c 61 79 6c 69 73 74 2d 6f 'name))........(track-playlist-o
7f640 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ption.........(and.emms-player-m
7f660 70 76 2d 75 73 65 2d 70 6c 61 79 6c 69 73 74 2d 6f 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 pv-use-playlist-option..........
7f680 20 20 20 20 28 6d 65 6d 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 ....(memq.(emms-track-get.track.
7f6a0 27 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 73 74 72 65 'type)....................'(stre
7f6c0 61 6d 6c 69 73 74 20 70 6c 61 79 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 20 28 70 6c 61 79 amlist.playlist))))........(play
7f6e0 2d 63 6d 64 20 60 28 62 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -cmd.`(batch....................
7f700 28 28 2c 28 69 66 20 74 72 61 63 6b 2d 70 6c 61 79 6c 69 73 74 2d 6f 70 74 69 6f 6e 20 27 6c 6f ((,(if.track-playlist-option.'lo
7f720 61 64 6c 69 73 74 20 27 6c 6f 61 64 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 adlist.'loadfile)...............
7f740 20 20 20 20 20 20 20 2c 74 72 61 63 6b 2d 6e 61 6d 65 20 72 65 70 6c 61 63 65 29 29 0a 20 20 20 .......,track-name.replace))....
7f760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 65 74 20 70 61 75 73 65 20 6e 6f 29 29 ................((set.pause.no))
7f780 29 29 0a 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 66 75 6e 63 0a 20 20 20 20 20 20 20 20 3b 3b ))........(start-func.........;;
7f7a0 20 54 72 79 20 72 75 6e 6e 69 6e 67 20 70 6c 61 79 2d 63 6d 64 20 61 6e 64 20 72 65 74 72 79 20 .Try.running.play-cmd.and.retry.
7f7c0 69 74 20 6f 6e 20 63 6f 6e 6e 20 66 61 69 6c 75 72 65 2c 20 65 2e 67 2e 20 69 66 20 6d 70 76 20 it.on.conn.failure,.e.g..if.mpv.
7f7e0 64 69 65 64 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 died.........(apply-partially.'e
7f800 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 20 70 6c 61 79 2d 63 6d 64 0a 20 20 20 20 mms-player-mpv-cmd.play-cmd.....
7f820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 6d .....................(lambda.(_m
7f840 70 76 2d 64 61 74 61 20 6d 70 76 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pv-data.mpv-error)..............
7f860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 6d 70 76 2d 65 72 72 6f ..............(when.(eq.mpv-erro
7f880 72 20 27 63 6f 6e 6e 65 63 74 69 6f 6e 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 r.'connection-error)............
7f8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ..................(emms-player-m
7f8c0 70 76 2d 63 6d 64 20 70 6c 61 79 2d 63 6d 64 29 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 65 6d pv-cmd.play-cmd)))))).....(if.em
7f8e0 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d 61 6e 64 0a 20 ms-player-mpv-ipc-stop-command..
7f900 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 .......(setq.emms-player-mpv-ipc
7f920 2d 73 74 6f 70 2d 63 6f 6d 6d 61 6e 64 20 73 74 61 72 74 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 -stop-command.start-func).......
7f940 28 66 75 6e 63 61 6c 6c 20 73 74 61 72 74 2d 66 75 6e 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 (funcall.start-func))))..(defun.
7f960 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f 70 20 28 29 0a 20 20 28 73 65 74 71 0a emms-player-mpv-stop.()...(setq.
7f980 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 74 6f 70 70 65 64 20 74 0a 20 20 20 ...emms-player-mpv-stopped.t....
7f9a0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 73 74 6f 70 2d 63 6f 6d 6d 61 6e 64 emms-player-mpv-ipc-stop-command
7f9c0 20 74 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 72 6f 63 2d 70 6c 61 79 .t)...(emms-player-mpv-proc-play
7f9e0 69 6e 67 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 20 ing.nil)...(emms-player-mpv-cmd.
7fa00 60 28 73 74 6f 70 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 `(stop))...(emms-player-stopped)
7fa20 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 75 73 65 )...(defun.emms-player-mpv-pause
7fa40 20 28 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 20 60 28 73 65 74 .()...(emms-player-mpv-cmd.`(set
7fa60 20 70 61 75 73 65 20 79 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 .pause.yes)))..(defun.emms-playe
7fa80 72 2d 6d 70 76 2d 72 65 73 75 6d 65 20 28 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d r-mpv-resume.()...(emms-player-m
7faa0 70 76 2d 63 6d 64 20 60 28 73 65 74 20 70 61 75 73 65 20 6e 6f 29 29 29 0a 0a 28 64 65 66 75 6e pv-cmd.`(set.pause.no)))..(defun
7fac0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 65 65 6b 20 28 73 65 63 29 0a 20 20 28 65 .emms-player-mpv-seek.(sec)...(e
7fae0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 63 6d 64 20 60 28 73 65 65 6b 20 2c 73 65 63 20 72 mms-player-mpv-cmd.`(seek.,sec.r
7fb00 65 6c 61 74 69 76 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d elative)))..(defun.emms-player-m
7fb20 70 76 2d 73 65 65 6b 2d 74 6f 20 28 73 65 63 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d pv-seek-to.(sec)...(emms-player-
7fb40 6d 70 76 2d 63 6d 64 20 60 28 73 65 65 6b 20 2c 73 65 63 20 61 62 73 6f 6c 75 74 65 29 29 29 0a mpv-cmd.`(seek.,sec.absolute))).
7fb60 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 .(emms-player-set.emms-player-mp
7fb80 76 20 27 70 61 75 73 65 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 75 73 65 v.'pause.#'emms-player-mpv-pause
7fba0 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ).(emms-player-set.emms-player-m
7fbc0 70 76 20 27 72 65 73 75 6d 65 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 72 65 73 pv.'resume.#'emms-player-mpv-res
7fbe0 75 6d 65 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 ume).(emms-player-set.emms-playe
7fc00 72 2d 6d 70 76 20 27 73 65 65 6b 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 73 65 r-mpv.'seek.#'emms-player-mpv-se
7fc20 65 6b 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 ek).(emms-player-set.emms-player
7fc40 2d 6d 70 76 20 27 73 65 65 6b 2d 74 6f 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d -mpv.'seek-to.#'emms-player-mpv-
7fc60 73 65 65 6b 2d 74 6f 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 seek-to)...(provide.'emms-player
7fc80 2d 6d 70 76 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 20 65 6e 64 -mpv).;;;.emms-player-mpv.el.end
7fca0 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 s.here..........................
7fcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 64 61 70 69 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-idapi.el...........
7fe20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
7fe80 30 30 30 33 32 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 32 35 34 00 20 30 00 00 00 0003236.00000000000.013254..0...
7fea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ff00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
7ff20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
7ff40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ff60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ff80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ffa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ffc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ffe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80000 3b 3b 3b 20 65 6d 6d 73 2d 69 64 61 70 69 2e 65 6c 20 2d 2d 2d 20 45 4d 4d 53 20 4d 75 73 69 63 ;;;.emms-idapi.el.---.EMMS.Music
80020 20 49 44 20 41 50 49 20 73 75 70 70 6f 72 74 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e .ID.API.support..-*-.lexical-bin
80040 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 3b 3b 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 ding:.t;.-*-.;;..;;.Copyright.(C
80060 29 20 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c ).2024.Free.Software.Foundation,
80080 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 .Inc...;;.Author:.Yoni.Rabkin.<y
800a0 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 rk@gnu.org>..;;.This.file.is.par
800c0 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 t.of.EMMS...;;.EMMS.is.free.soft
800e0 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e ware;.you.can.redistribute.it.an
80100 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d d/or.modify.it.;;.under.the.term
80120 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
80140 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 nse.as.published.by.;;.the.Free.
80160 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 Software.Foundation;.either.vers
80180 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e ion.3,.or.(at.your.option).;;.an
801a0 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 y.later.version...;;.EMMS.is.dis
801c0 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c tributed.in.the.hope.that.it.wil
801e0 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 l.be.useful,.but.WITHOUT.;;.ANY.
80200 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 WARRANTY;.without.even.the.impli
80220 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b ed.warranty.of.MERCHANTABILITY.;
80240 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 ;.or.FITNESS.FOR.A.PARTICULAR.PU
80260 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c RPOSE...See.the.GNU.General.Publ
80280 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a ic.;;.License.for.more.details..
802a0 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 .;;.You.should.have.received.a.c
802c0 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 opy.of.the.GNU.General.Public.Li
802e0 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 cense.;;.along.with.EMMS;.see.th
80300 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f e.file.COPYING..If.not,.write.to
80320 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e .the.Free.;;.Software.Foundation
80340 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 ,.Inc.,.51.Franklin.Street,.Fift
80360 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 h.Floor,.Boston,.;;.MA.02110-130
80380 31 2c 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 1,.USA....;;;.Commentary:.;;..;;
803a0 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 ;.Code:.(require.'emms-idapi-mus
803c0 69 63 62 72 61 69 6e 7a 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 icbrainz)...(defvar.emms-idapi-s
803e0 65 72 76 69 63 65 73 2d 61 6c 69 73 74 0a 20 20 27 28 28 6d 75 73 69 63 62 72 61 69 6e 7a 20 2e ervices-alist...'((musicbrainz..
80400 20 28 28 73 65 61 72 63 68 2d 66 20 2e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 .((search-f...emms-idapi-musicbr
80420 61 69 6e 7a 2d 73 65 61 72 63 68 29 0a 09 09 20 20 20 20 28 6e 61 6d 65 20 20 20 20 20 2e 20 22 ainz-search).......(name......."
80440 4d 75 73 69 63 42 72 61 69 6e 7a 22 29 0a 09 09 20 20 20 20 28 77 65 62 73 69 74 65 20 20 2e 20 MusicBrainz").......(website....
80460 22 68 74 74 70 73 3a 2f 2f 6d 75 73 69 63 62 72 61 69 6e 7a 2e 6f 72 67 2f 22 29 29 29 29 0a 20 "https://musicbrainz.org/"))))..
80480 20 22 41 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 20 6f 66 20 73 65 72 76 69 63 65 73 20 73 ."Association.list.of.services.s
804a0 75 70 70 6f 72 74 65 64 20 62 79 20 49 44 41 50 49 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d upported.by.IDAPI.")..(defvar.em
804c0 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 63 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 75 73 69 ms-idapi-service.nil..."The.musi
804e0 63 20 73 65 61 72 63 68 20 73 65 72 76 69 63 65 20 63 75 72 72 65 6e 74 6c 79 20 69 6e 20 75 73 c.search.service.currently.in.us
80500 65 2e 22 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 61 72 63 68 20 e.")...(defun.emms-idapi-search.
80520 28 73 65 72 76 69 63 65 20 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 0a 20 20 22 53 (service.search-term-alist)..."S
80540 65 61 72 63 68 20 61 67 61 69 6e 73 74 20 53 45 52 56 49 43 45 20 66 6f 72 20 53 45 41 52 43 48 earch.against.SERVICE.for.SEARCH
80560 2d 54 45 52 4d 2d 41 4c 49 53 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 65 61 72 63 68 2d 66 75 -TERM-ALIST."...(let.((search-fu
80580 6e 63 74 69 6f 6e 20 28 61 6c 69 73 74 2d 67 65 74 20 27 73 65 61 72 63 68 2d 66 0a 09 09 09 09 nction.(alist-get.'search-f.....
805a0 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 73 65 72 76 69 63 65 0a 09 09 09 09 09 20 20 20 20 ....(alist-get.service..........
805c0 20 20 20 65 6d 6d 73 2d 69 64 61 70 69 2d 73 65 72 76 69 63 65 73 2d 61 6c 69 73 74 29 29 29 29 ...emms-idapi-services-alist))))
805e0 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 73 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 29 0a 09 .....(if.(not.search-function)..
80600 28 65 72 72 6f 72 20 22 60 25 73 27 20 69 73 20 61 6e 20 75 6e 73 75 70 70 6f 72 74 65 64 20 73 (error."`%s'.is.an.unsupported.s
80620 65 72 76 69 63 65 2e 22 20 73 65 72 76 69 63 65 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 ervice.".service)).....(funcall.
80640 73 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 search-function.search-term-alis
80660 74 29 29 29 0a 09 20 20 20 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 29 t))).......(provide.'emms-idapi)
80680 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 64 61 70 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 ..;;;.emms-idapi.el.ends.here...
806a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
806c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
806e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
807a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
807c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
807e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 65 6c 00 00 00 00 00 00 00 emms-24/emms-bookmarks.el.......
80820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
80880 30 30 31 32 35 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 31 35 32 00 20 30 00 00 00 0012511.00000000000.014152..0...
808a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
808c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
808e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
80920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
80940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
809a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
809c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
809e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80a00 3b 3b 3b 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 65 6c 20 2d 2d 2d 20 42 6f 6f 6b 6d 61 ;;;.emms-bookmarks.el.---.Bookma
80a20 72 6b 73 20 66 6f 72 20 45 6d 6d 73 2e 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 rks.for.Emms...-*-.lexical-bindi
80a40 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 ng:.t;.-*-..;;.Copyright.(C).200
80a60 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 20 46 72 65 65 20 53 6f 66 74 77 61 72 6,.2007,.2008,.2009.Free.Softwar
80a80 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 e.Foundation,.Inc...;;.Author:.Y
80aa0 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 3b 3b 20 4b 65 79 77 oni.Rabkin.<yrk@gnu.org>.;;.Keyw
80ac0 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 62 6f 6f 6b 6d 61 72 6b 0a 0a 3b 3b 20 54 68 69 73 20 66 69 ords:.emms,.bookmark..;;.This.fi
80ae0 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 le.is.part.of.EMMS...;;.EMMS.is.
80b00 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
80b20 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 ute.it.and/or.modify.;;.it.under
80b40 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
80b60 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 blic.License.as.published.by.;;.
80b80 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 the.Free.Software.Foundation;.ei
80ba0 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.3,.or.(at.your.opti
80bc0 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).;;.any.later.version..;;.;;.
80be0 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 EMMS.is.distributed.in.the.hope.
80c00 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 that.it.will.be.useful,.;;.but.W
80c20 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 ITHOUT.ANY.WARRANTY;.without.eve
80c40 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 n.the.implied.warranty.of.;;.MER
80c60 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 CHANTABILITY.or.FITNESS.FOR.A.PA
80c80 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e RTICULAR.PURPOSE...See.the.;;.GN
80ca0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 U.General.Public.License.for.mor
80cc0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
80ce0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
80d00 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
80d20 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 .EMMS;.if.not,.write.to.the.Free
80d40 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 .Software.Foundation,.;;.Inc.,.5
80d60 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 1.Franklin.St,.Fifth.Floor,.Bost
80d80 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d on,.MA.02110-1301,.USA...;;;.Com
80da0 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 mentary:.;;.;;.You.can.use.this.
80dc0 74 6f 20 61 64 64 20 60 60 74 65 6d 70 6f 72 61 6c 20 62 6f 6f 6b 6d 61 72 6b 73 27 27 20 28 74 to.add.``temporal.bookmarks''.(t
80de0 65 72 6d 20 62 79 20 4c 75 63 61 73 0a 3b 3b 20 42 6f 6e 6e 65 74 29 20 74 6f 20 79 6f 75 72 20 erm.by.Lucas.;;.Bonnet).to.your.
80e00 6d 65 64 69 61 20 66 69 6c 65 73 2e 20 20 54 68 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 66 75 media.files...The.interesting.fu
80e20 6e 63 74 69 6f 6e 73 20 68 65 72 65 20 61 72 65 0a 3b 3b 20 60 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 nctions.here.are.;;.`emms-bookma
80e40 72 6b 73 2d 6e 65 78 74 27 2c 20 60 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 70 72 65 76 27 rks-next',.`emms-bookmarks-prev'
80e60 2c 20 60 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 61 64 64 27 0a 3b 3b 20 28 77 68 69 63 68 ,.`emms-bookmarks-add'.;;.(which
80e80 20 70 61 75 73 65 73 20 74 68 65 20 70 6c 61 79 65 72 20 77 68 69 6c 65 20 79 6f 75 20 64 65 73 .pauses.the.player.while.you.des
80ea0 63 72 69 62 65 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 29 20 61 6e 64 0a 3b 3b 20 60 65 6d 6d 73 cribe.the.bookmark).and.;;.`emms
80ec0 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 63 6c 65 61 72 27 2e 20 20 41 6c 6c 20 6f 66 20 77 68 69 63 68 -bookmarks-clear'...All.of.which
80ee0 20 64 6f 20 65 78 61 63 74 6c 79 20 77 68 61 74 20 79 6f 75 20 74 68 69 6e 6b 0a 3b 3b 20 74 68 .do.exactly.what.you.think.;;.th
80f00 65 79 20 64 6f 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0c 0a 3b 3b 20 64 65 70 65 6e 64 65 6e ey.do...;;;.Code:....;;.dependen
80f20 63 69 65 73 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 cies.(require.'emms).(require.'e
80f40 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d mms-playing-time)..(defvar.emms-
80f60 62 6f 6f 6b 6d 61 72 6b 73 2d 70 72 65 76 2d 6f 76 65 72 73 68 6f 6f 74 20 35 0a 20 20 22 54 69 bookmarks-prev-overshoot.5..."Ti
80f80 6d 65 20 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 73 6b 69 70 70 69 6e 67 20 61 20 70 72 65 me.in.seconds.for.skipping.a.pre
80fa0 76 69 6f 75 73 20 62 6f 6f 6b 6d 61 72 6b 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 vious.bookmark.")..(defun.emms-b
80fc0 6f 6f 6b 6d 61 72 6b 73 2d 72 65 73 65 74 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 6d 6f 76 65 ookmarks-reset.(track)..."Remove
80fe0 20 61 6c 6c 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 73 20 66 72 6f 6d 20 54 52 41 43 4b 2e 22 0a .all.the.bookmarks.from.TRACK.".
81000 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 62 6f 6f 6b 6d 61 72 ..(emms-track-set.track.'bookmar
81020 6b 73 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d ks.nil))..(defun.emms-bookmarks-
81040 73 74 72 61 69 67 68 74 2d 69 6e 73 65 72 74 69 6f 6e 2d 73 6f 72 74 20 28 69 74 65 6d 20 6c 20 straight-insertion-sort.(item.l.
81060 61 63 63 29 0a 20 20 22 49 6e 73 65 72 74 20 49 54 45 4d 20 69 6e 74 6f 20 74 68 65 20 61 6c 72 acc)..."Insert.ITEM.into.the.alr
81080 65 61 64 79 20 73 6f 72 74 65 64 20 4c 2c 20 41 43 43 20 73 68 6f 75 6c 64 20 62 65 20 6e 69 6c eady.sorted.L,.ACC.should.be.nil
810a0 2e 22 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 6c 29 0a 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 ."...(if.(null.l).......(append.
810c0 61 63 63 20 28 6c 69 73 74 20 69 74 65 6d 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 3c 20 28 acc.(list.item)).....(cond.((<.(
810e0 63 64 72 20 69 74 65 6d 29 20 28 63 64 72 20 28 63 61 72 20 6c 29 29 29 20 28 61 70 70 65 6e 64 cdr.item).(cdr.(car.l))).(append
81100 20 61 63 63 20 28 6c 69 73 74 20 69 74 65 6d 20 28 63 61 72 20 6c 29 29 20 28 63 64 72 20 6c 29 .acc.(list.item.(car.l)).(cdr.l)
81120 29 29 0a 09 20 20 28 74 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 73 74 72 61 69 67 68 ))....(t.(emms-bookmarks-straigh
81140 74 2d 69 6e 73 65 72 74 69 6f 6e 2d 73 6f 72 74 20 69 74 65 6d 20 28 63 64 72 20 6c 29 20 28 61 t-insertion-sort.item.(cdr.l).(a
81160 70 70 65 6e 64 20 61 63 63 20 28 6c 69 73 74 20 28 63 61 72 20 6c 29 29 29 29 29 29 29 29 0a 0a ppend.acc.(list.(car.l))))))))..
81180 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 67 65 74 20 28 74 72 61 63 6b (defun.emms-bookmarks-get.(track
811a0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 20 70 72 6f 70 65 72 74 )..."Return.the.bookmark.propert
811c0 79 20 66 72 6f 6d 20 54 52 41 43 4b 2e 22 0a 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 y.from.TRACK."...(emms-track-get
811e0 20 74 72 61 63 6b 20 27 62 6f 6f 6b 6d 61 72 6b 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 .track.'bookmarks))..(defun.emms
81200 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 73 65 74 20 28 74 72 61 63 6b 20 64 65 73 63 20 74 69 6d 65 29 -bookmarks-set.(track.desc.time)
81220 0a 20 20 22 53 65 74 20 62 6f 6f 6b 6d 61 72 6b 20 70 72 6f 70 65 72 74 79 20 66 6f 72 20 54 52 ..."Set.bookmark.property.for.TR
81240 41 43 4b 2c 20 74 65 78 74 20 44 45 53 43 20 61 74 20 54 49 4d 45 20 73 65 63 6f 6e 64 73 2e 22 ACK,.text.DESC.at.TIME.seconds."
81260 0a 20 20 28 6c 65 74 20 28 28 6f 6c 64 2d 62 6f 6f 6b 6d 61 72 6b 73 20 28 65 6d 6d 73 2d 74 72 ...(let.((old-bookmarks.(emms-tr
81280 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 62 6f 6f 6b 6d 61 72 6b 73 29 29 0a 09 28 6e 65 77 ack-get.track.'bookmarks))..(new
812a0 2d 62 6f 6f 6b 6d 61 72 6b 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 65 77 2d 62 -bookmarks.nil)).....(setq.new-b
812c0 6f 6f 6b 6d 61 72 6b 73 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 73 74 72 61 69 67 68 ookmarks.(emms-bookmarks-straigh
812e0 74 2d 69 6e 73 65 72 74 69 6f 6e 2d 73 6f 72 74 20 28 63 6f 6e 73 20 64 65 73 63 20 74 69 6d 65 t-insertion-sort.(cons.desc.time
81300 29 20 6f 6c 64 2d 62 6f 6f 6b 6d 61 72 6b 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d ).old-bookmarks.nil)).....(emms-
81320 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 62 6f 6f 6b 6d 61 72 6b 73 20 6e 65 77 2d 62 track-set.track.'bookmarks.new-b
81340 6f 6f 6b 6d 61 72 6b 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 ookmarks)))..(defun.emms-bookmar
81360 6b 73 2d 73 65 74 2d 63 75 72 72 65 6e 74 20 28 64 65 73 63 29 0a 20 20 22 53 65 74 20 62 6f 6f ks-set-current.(desc)..."Set.boo
81380 6b 6d 61 72 6b 20 70 72 6f 70 65 72 74 79 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 kmark.property.for.the.current.t
813a0 72 61 63 6b 20 77 69 74 68 20 74 65 78 74 20 44 45 53 43 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 6f rack.with.text.DESC."...(emms-bo
813c0 6f 6b 6d 61 72 6b 73 2d 73 65 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 okmarks-set.(emms-playlist-curre
813e0 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 20 64 65 73 63 20 65 6d 6d 73 2d 70 6c 61 nt-selected-track).desc.emms-pla
81400 79 69 6e 67 2d 74 69 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 ying-time))..(defun.emms-bookmar
81420 6b 73 2d 73 65 61 72 63 68 20 28 74 69 6d 65 20 74 72 61 63 6b 20 74 65 73 74 29 0a 20 20 22 52 ks-search.(time.track.test)..."R
81440 65 74 75 72 6e 20 61 20 62 6f 6f 6b 6d 61 72 6b 20 62 61 73 65 64 20 6f 6e 20 68 65 75 72 69 73 eturn.a.bookmark.based.on.heuris
81460 74 69 63 73 2e 0a 0a 54 49 4d 45 20 73 68 6f 75 6c 64 20 62 65 20 61 20 72 65 66 65 72 65 6e 63 tics...TIME.should.be.a.referenc
81480 65 20 70 6f 69 6e 74 20 69 6e 20 73 65 63 6f 6e 64 73 2e 0a 54 52 41 43 4b 20 73 68 6f 75 6c 64 e.point.in.seconds..TRACK.should
814a0 20 62 65 20 61 6e 20 45 6d 6d 73 20 74 72 61 63 6b 2e 0a 54 45 53 54 20 73 68 6f 75 6c 64 20 62 .be.an.Emms.track..TEST.should.b
814c0 65 20 61 20 6e 75 6d 65 72 69 63 61 6c 20 63 6f 6d 70 61 72 61 74 6f 72 20 70 72 65 64 69 63 61 e.a.numerical.comparator.predica
814e0 74 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 te."...(let*.((s.(append.(list.(
81500 63 6f 6e 73 20 22 74 69 6d 65 22 20 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 cons."time".time))..............
81520 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 65 6d 6d 73 2d 62 6f 6f 6b .......(copy-sequence.(emms-book
81540 6d 61 72 6b 73 2d 67 65 74 20 74 72 61 63 6b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 20 marks-get.track))))..........(s.
81560 28 73 6f 72 74 20 73 20 23 27 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 66 75 6e 63 61 6c 6c (sort.s.#'(lambda.(a.b).(funcall
81580 20 74 65 73 74 20 28 63 64 72 20 61 29 20 28 63 64 72 20 62 29 29 29 29 29 29 0a 20 20 20 20 28 .test.(cdr.a).(cdr.b)))))).....(
815a0 77 68 69 6c 65 20 28 6e 6f 74 20 28 3d 20 74 69 6d 65 20 28 63 64 61 72 20 73 29 29 29 0a 20 20 while.(not.(=.time.(cdar.s)))...
815c0 20 20 20 20 28 73 65 74 71 20 73 20 28 63 64 72 20 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 ....(setq.s.(cdr.s))).....(when.
815e0 28 63 64 72 20 73 29 0a 20 20 20 20 20 20 28 63 61 72 20 28 63 64 72 20 73 29 29 29 29 29 0a 0a (cdr.s).......(car.(cdr.s)))))..
81600 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 6e 65 78 74 2d 31 20 28 74 69 (defun.emms-bookmarks-next-1.(ti
81620 6d 65 20 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b me.track)..."Return.the.bookmark
81640 20 61 66 74 65 72 20 54 49 4d 45 20 66 6f 72 20 54 52 41 43 4b 2c 20 6f 74 68 65 72 77 69 73 65 .after.TIME.for.TRACK,.otherwise
81660 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d .return.nil."...(emms-bookmarks-
81680 73 65 61 72 63 68 20 74 69 6d 65 20 74 72 61 63 6b 20 23 27 3c 29 29 0a 0a 28 64 65 66 75 6e 20 search.time.track.#'<))..(defun.
816a0 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 70 72 65 76 2d 31 20 28 74 69 6d 65 20 74 72 61 63 emms-bookmarks-prev-1.(time.trac
816c0 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 20 62 65 66 6f 72 65 k)..."Return.the.bookmark.before
816e0 20 54 49 4d 45 20 66 6f 72 20 54 52 41 43 4b 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 .TIME.for.TRACK,.otherwise.retur
81700 6e 20 6e 69 6c 2e 22 0a 20 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 73 65 61 72 63 68 n.nil."...(emms-bookmarks-search
81720 20 28 2d 20 74 69 6d 65 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 70 72 65 76 2d 6f 76 65 .(-.time.emms-bookmarks-prev-ove
81740 72 73 68 6f 6f 74 29 20 74 72 61 63 6b 20 23 27 3e 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 rshoot).track.#'>))..(defun.emms
81760 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 67 6f 74 6f 20 28 73 65 61 72 63 68 2d 66 20 74 72 61 63 6b 20 -bookmarks-goto.(search-f.track.
81780 66 61 69 6c 75 72 65 2d 6d 65 73 73 61 67 65 29 0a 20 20 22 53 65 65 6b 20 74 68 65 20 70 6c 61 failure-message)..."Seek.the.pla
817a0 79 65 72 20 74 6f 20 61 20 62 6f 6f 6b 6d 61 72 6b 2e 0a 0a 53 45 41 52 43 48 2d 46 20 73 68 6f yer.to.a.bookmark...SEARCH-F.sho
817c0 75 6c 64 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 uld.be.a.function.which.returns.
817e0 61 20 62 6f 6f 6b 6d 61 72 6b 2e 0a 54 52 41 43 4b 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 45 a.bookmark..TRACK.should.be.an.E
81800 6d 6d 73 20 74 72 61 63 6b 2e 0a 46 41 49 4c 55 52 45 2d 4d 45 53 53 41 47 45 20 73 68 6f 75 6c mms.track..FAILURE-MESSAGE.shoul
81820 64 20 62 65 20 61 20 73 74 72 69 6e 67 2e 22 0a 20 20 3b 3b 20 6e 6f 74 65 20 74 68 61 74 20 77 d.be.a.string."...;;.note.that.w
81840 68 65 6e 20 65 6d 6d 73 20 69 73 20 70 61 75 73 65 64 20 74 68 65 6e 20 60 65 6d 6d 73 2d 70 6c hen.emms.is.paused.then.`emms-pl
81860 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 27 20 3d 3e 20 74 0a 20 20 28 77 68 65 6e 20 28 6e 6f ayer-playing-p'.=>.t...(when.(no
81880 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 29 0a 20 20 20 20 28 65 6d t.emms-player-playing-p).....(em
818a0 6d 73 2d 73 74 61 72 74 29 29 0a 20 20 28 6c 65 74 20 28 28 6d 20 28 66 75 6e 63 61 6c 6c 20 73 ms-start))...(let.((m.(funcall.s
818c0 65 61 72 63 68 2d 66 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 74 72 61 63 6b 29 earch-f.emms-playing-time.track)
818e0 29 29 0a 20 20 20 20 28 69 66 20 6d 0a 09 28 70 72 6f 67 6e 0a 09 20 20 28 65 6d 6d 73 2d 70 6c )).....(if.m..(progn....(emms-pl
81900 61 79 65 72 2d 73 65 65 6b 2d 74 6f 20 28 63 64 72 20 6d 29 29 0a 09 20 20 28 6d 65 73 73 61 67 ayer-seek-to.(cdr.m))....(messag
81920 65 20 22 25 73 22 20 28 63 61 72 20 6d 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 e."%s".(car.m))).......(message.
81940 22 25 73 22 20 66 61 69 6c 75 72 65 2d 6d 65 73 73 61 67 65 29 29 29 29 0a 0a 0c 0a 3b 3b 20 65 "%s".failure-message))))....;;.e
81960 6e 74 72 79 20 70 6f 69 6e 74 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 ntry.points..(defun.emms-bookmar
81980 6b 73 2d 6e 65 78 74 20 28 29 0a 20 20 22 53 65 65 6b 20 74 6f 20 74 68 65 20 6e 65 78 74 20 62 ks-next.()..."Seek.to.the.next.b
819a0 6f 6f 6b 6d 61 72 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 ookmark.in.the.current.track."..
819c0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 .(interactive)...(emms-bookmarks
819e0 2d 67 6f 74 6f 20 23 27 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 6e 65 78 74 2d 31 0a 09 09 -goto.#'emms-bookmarks-next-1...
81a00 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 .......(emms-playlist-current-se
81a20 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 0a 09 09 20 20 20 20 20 20 20 22 4e 6f 20 6e 65 78 74 20 lected-track).........."No.next.
81a40 62 6f 6f 6b 6d 61 72 6b 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 bookmark"))..(defun.emms-bookmar
81a60 6b 73 2d 70 72 65 76 20 28 29 0a 20 20 22 53 65 65 6b 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f ks-prev.()..."Seek.to.the.previo
81a80 75 73 20 62 6f 6f 6b 6d 61 72 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b us.bookmark.in.the.current.track
81aa0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d ."...(interactive)...(emms-bookm
81ac0 61 72 6b 73 2d 67 6f 74 6f 20 23 27 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 70 72 65 76 2d arks-goto.#'emms-bookmarks-prev-
81ae0 31 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 1..........(emms-playlist-curren
81b00 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 0a 09 09 20 20 20 20 20 20 20 22 4e 6f 20 70 t-selected-track).........."No.p
81b20 72 65 76 69 6f 75 73 20 62 6f 6f 6b 6d 61 72 6b 22 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 revious.bookmark"))..(defmacro.e
81b40 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 77 69 74 68 2d 70 61 75 73 65 64 2d 70 6c 61 79 65 72 mms-bookmarks-with-paused-player
81b60 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61 6c 20 42 4f 44 59 20 77 69 74 68 20 .(&rest.body)..."Eval.BODY.with.
81b80 70 6c 61 79 65 72 20 70 61 75 73 65 64 2e 22 0a 20 20 60 28 70 72 6f 67 6e 0a 20 20 20 20 20 28 player.paused."...`(progn......(
81ba0 77 68 65 6e 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 29 20 when.(not.emms-player-paused-p).
81bc0 28 65 6d 6d 73 2d 70 61 75 73 65 29 29 0a 20 20 20 20 20 2c 40 62 6f 64 79 0a 20 20 20 20 20 28 (emms-pause))......,@body......(
81be0 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 28 65 6d 6d 73 2d when.emms-player-paused-p.(emms-
81c00 70 61 75 73 65 29 29 29 29 0a 0a 3b 3b 20 63 61 6e 27 74 20 75 73 65 20 60 69 6e 74 65 72 61 63 pause))))..;;.can't.use.`interac
81c20 74 69 76 65 27 20 74 6f 20 70 72 6f 6d 74 20 74 68 65 20 75 73 65 72 20 68 65 72 65 20 62 65 63 tive'.to.promt.the.user.here.bec
81c40 61 75 73 65 20 77 65 20 77 61 6e 74 20 74 6f 0a 3b 3b 20 70 61 75 73 65 20 74 68 65 20 70 6c 61 ause.we.want.to.;;.pause.the.pla
81c60 79 65 72 20 62 65 66 6f 72 65 20 74 68 65 20 70 72 6f 6d 70 74 20 61 70 70 65 61 72 73 2e 0a 28 yer.before.the.prompt.appears..(
81c80 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 61 64 64 20 28 29 0a 20 20 22 41 defun.emms-bookmarks-add.()..."A
81ca0 64 64 20 61 20 6e 65 77 20 62 6f 6f 6b 6d 61 72 6b 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 dd.a.new.bookmark.to.the.current
81cc0 20 74 72 61 63 6b 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 61 75 73 65 73 20 74 68 .track...This.function.pauses.th
81ce0 65 20 70 6c 61 79 65 72 20 77 68 69 6c 65 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 e.player.while.prompting.the.use
81d00 72 20 66 6f 72 20 61 0a 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 6f 6f 6b 6d r.for.a.description.of.the.bookm
81d20 61 72 6b 2e 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 75 6d 65 73 20 74 68 65 20 70 ark...The.function.resumes.the.p
81d40 6c 61 79 65 72 0a 61 66 74 65 72 20 74 68 65 20 70 72 6f 6d 70 74 2e 22 0a 20 20 28 69 6e 74 65 layer.after.the.prompt."...(inte
81d60 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 77 69 74 68 2d ractive)...(emms-bookmarks-with-
81d80 70 61 75 73 65 64 2d 70 6c 61 79 65 72 0a 20 20 20 28 6c 65 74 20 28 28 64 65 73 63 20 28 72 65 paused-player....(let.((desc.(re
81da0 61 64 2d 73 74 72 69 6e 67 20 22 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 22 29 29 29 0a 20 20 20 ad-string."Description:.")))....
81dc0 20 20 28 69 66 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c ..(if.(emms-playlist-current-sel
81de0 65 63 74 65 64 2d 74 72 61 63 6b 29 0a 09 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 73 ected-track)...(emms-bookmarks-s
81e00 65 74 2d 63 75 72 72 65 6e 74 20 64 65 73 63 29 0a 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 et-current.desc)........(error."
81e20 4e 6f 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 74 6f 20 62 6f 6f 6b 6d 61 72 6b 22 29 29 29 No.current.track.to.bookmark")))
81e40 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 63 6c 65 61 72 20 ))..(defun.emms-bookmarks-clear.
81e60 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 73 20 66 ()..."Remove.all.the.bookmarks.f
81e80 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 rom.the.current.track."...(inter
81ea0 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 74 68 69 73 20 28 65 6d 6d 73 2d 70 6c 61 79 active)...(let.((this.(emms-play
81ec0 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 0a 20 list-current-selected-track)))..
81ee0 20 20 20 28 77 68 65 6e 20 74 68 69 73 20 28 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 72 65 ...(when.this.(emms-bookmarks-re
81f00 73 65 74 20 74 68 69 73 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 62 6f 6f set.this))))..(provide.'emms-boo
81f20 6b 6d 61 72 6b 73 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 65 6c 20 65 kmarks)..;;;.emms-bookmarks.el.e
81f40 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nds.here........................
81f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 63 6f 6d 70 61 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 emms-24/emms-compat.el..........
82020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
82080 30 30 31 33 33 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 34 35 37 00 20 30 00 00 00 0013367.00000000000.013457..0...
820a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
820c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
820e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
82120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
82140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
821a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
821c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
821e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82200 3b 3b 3b 20 65 6d 6d 73 2d 63 6f 6d 70 61 74 2e 65 6c 20 2d 2d 2d 20 43 6f 6d 70 61 74 69 62 69 ;;;.emms-compat.el.---.Compatibi
82220 6c 69 74 79 20 72 6f 75 74 69 6e 65 73 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 69 lity.routines.for.EMMS..-*-.lexi
82240 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 cal-binding:.t;.-*-..;;.Copyrigh
82260 74 20 28 43 29 20 32 30 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 t.(C).2005,.2006,.2007,.2008,.20
82280 30 39 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 09.Free.Software.Foundation,.Inc
822a0 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4d 69 63 68 61 65 6c 20 4f 6c 73 6f 6e 20 3c 6d 77 6f ...;;.Author:.Michael.Olson.<mwo
822c0 6c 73 6f 6e 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 lson@gnu.org>..;;.This.file.is.p
822e0 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f art.of.EMMS...;;.EMMS.is.free.so
82300 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 ftware;.you.can.redistribute.it.
82320 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 and/or.modify.;;.it.under.the.te
82340 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 rms.of.the.GNU.General.Public.Li
82360 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 cense.as.published.by.;;.the.Fre
82380 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 e.Software.Foundation;.either.ve
823a0 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 rsion.3,.or.(at.your.option).;;.
823c0 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 any.later.version..;;.;;.EMMS.is
823e0 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 .distributed.in.the.hope.that.it
82400 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 .will.be.useful,.;;.but.WITHOUT.
82420 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 ANY.WARRANTY;.without.even.the.i
82440 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 mplied.warranty.of.;;.MERCHANTAB
82460 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 ILITY.or.FITNESS.FOR.A.PARTICULA
82480 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 R.PURPOSE...See.the.;;.GNU.Gener
824a0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 al.Public.License.for.more.detai
824c0 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 ls..;;.;;.You.should.have.receiv
824e0 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 ed.a.copy.of.the.GNU.General.Pub
82500 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 lic.License.;;.along.with.EMMS;.
82520 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 see.the.file.COPYING...If.not,.w
82540 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 rite.to.the.;;.Free.Software.Fou
82560 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 ndation,.Inc.,.51.Franklin.St,.F
82580 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d ifth.Floor,.;;.Boston,.MA.02110-
825a0 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 1301,.USA...;;;.Commentary:..;;.
825c0 54 68 65 73 65 20 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 6d 61 63 72 6f 73 20 74 These.are.functions.and.macros.t
825e0 68 61 74 20 45 4d 4d 53 20 6e 65 65 64 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 62 65 0a 3b 3b hat.EMMS.needs.in.order.to.be.;;
82600 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 76 61 72 69 6f 75 73 20 45 6d 61 63 73 20 61 .compatible.with.various.Emacs.a
82620 6e 64 20 58 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a nd.XEmacs.versions...;;;.Code:..
82640 0c 0a 3b 3b 3b 20 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 ..;;;.Miscellaneous..(defun.emms
82660 2d 70 72 6f 70 65 72 74 69 7a 65 20 28 73 74 72 69 6e 67 20 26 72 65 73 74 20 70 72 6f 70 65 72 -propertize.(string.&rest.proper
82680 74 69 65 73 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 70 72 6f 70 65 72 74 69 7a 65 ties)...(if.(fboundp.'propertize
826a0 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 70 72 6f 70 65 72 74 69 7a 65 20 73 74 72 69 ).......(apply.#'propertize.stri
826c0 6e 67 20 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 28 73 65 74 2d 74 65 78 74 2d 70 72 6f ng.properties).....(set-text-pro
826e0 70 65 72 74 69 65 73 20 30 20 28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29 20 70 72 6f 70 65 72 perties.0.(length.string).proper
82700 74 69 65 73 20 73 74 72 69 6e 67 29 0a 20 20 20 20 73 74 72 69 6e 67 29 29 0a 0a 3b 3b 20 45 6d ties.string).....string))..;;.Em
82720 61 63 73 20 61 63 63 65 70 74 73 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 60 acs.accepts.three.arguments.to.`
82740 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 27 2c 20 62 75 74 20 74 68 65 20 58 45 6d 61 63 73 0a 3b make-obsolete',.but.the.XEmacs.;
82760 3b 20 76 65 72 73 69 6f 6e 20 6f 6e 6c 79 20 74 61 6b 65 73 20 74 77 6f 20 61 72 67 75 6d 65 6e ;.version.only.takes.two.argumen
82780 74 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 28 6f 6c ts.(defun.emms-make-obsolete.(ol
827a0 64 2d 6e 61 6d 65 20 6e 65 77 2d 6e 61 6d 65 20 77 68 65 6e 29 0a 20 20 22 4d 61 6b 65 20 74 68 d-name.new-name.when)..."Make.th
827c0 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 20 77 61 72 6e 20 74 68 61 74 20 4f 4c 44 2d 4e 41 e.byte-compiler.warn.that.OLD-NA
827e0 4d 45 20 69 73 20 6f 62 73 6f 6c 65 74 65 2e 0a 54 68 65 20 77 61 72 6e 69 6e 67 20 77 69 6c 6c ME.is.obsolete..The.warning.will
82800 20 73 61 79 20 74 68 61 74 20 4e 45 57 2d 4e 41 4d 45 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 .say.that.NEW-NAME.should.be.use
82820 64 20 69 6e 73 74 65 61 64 2e 0a 57 48 45 4e 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 69 d.instead..WHEN.should.be.a.stri
82840 6e 67 20 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 ng.indicating.when.the.function.
82860 77 61 73 0a 66 69 72 73 74 20 6d 61 64 65 20 6f 62 73 6f 6c 65 74 65 2c 20 65 69 74 68 65 72 20 was.first.made.obsolete,.either.
82880 74 68 65 20 66 69 6c 65 27 73 20 72 65 76 69 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 72 20 61 6e the.file's.revision.number.or.an
828a0 0a 45 4d 4d 53 20 72 65 6c 65 61 73 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 22 0a 20 .EMMS.release.version.number."..
828c0 20 28 69 66 20 28 66 65 61 74 75 72 65 70 20 27 78 65 6d 61 63 73 29 0a 20 20 20 20 20 20 28 6d .(if.(featurep.'xemacs).......(m
828e0 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 6f 6c 64 2d 6e 61 6d 65 20 6e 65 77 2d 6e 61 6d 65 29 0a ake-obsolete.old-name.new-name).
82900 20 20 20 20 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 6f 6c 64 2d 6e 61 6d 65 20 6e 65 77 2d ....(make-obsolete.old-name.new-
82920 6e 61 6d 65 20 77 68 65 6e 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 54 69 6d 65 20 61 6e 64 20 74 69 6d name.when)))....;;;.Time.and.tim
82940 65 72 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 28 74 ers..(defun.emms-cancel-timer.(t
82960 69 6d 65 72 29 0a 20 20 22 43 61 6e 63 65 6c 20 74 68 65 20 67 69 76 65 6e 20 54 49 4d 45 52 2e imer)..."Cancel.the.given.TIMER.
82980 22 0a 20 20 28 77 68 65 6e 20 74 69 6d 65 72 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 66 62 6f 75 "...(when.timer.....(cond.((fbou
829a0 6e 64 70 20 27 63 61 6e 63 65 6c 2d 74 69 6d 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 ndp.'cancel-timer)............(c
829c0 61 6e 63 65 6c 2d 74 69 6d 65 72 20 74 69 6d 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 ancel-timer.timer))...........((
829e0 66 62 6f 75 6e 64 70 20 27 64 65 6c 65 74 65 2d 69 74 69 6d 65 72 29 0a 20 20 20 20 20 20 20 20 fboundp.'delete-itimer).........
82a00 20 20 20 28 64 65 6c 65 74 65 2d 69 74 69 6d 65 72 20 74 69 6d 65 72 29 29 29 29 29 0a 0a 28 64 ...(delete-itimer.timer)))))..(d
82a20 65 66 75 6e 20 65 6d 6d 73 2d 74 69 6d 65 2d 6c 65 73 73 2d 70 20 28 74 31 20 74 32 29 0a 20 20 efun.emms-time-less-p.(t1.t2)...
82a40 22 53 61 79 20 77 68 65 74 68 65 72 20 74 69 6d 65 20 54 31 20 69 73 20 6c 65 73 73 20 74 68 61 "Say.whether.time.T1.is.less.tha
82a60 6e 20 74 69 6d 65 20 54 32 2e 22 0a 20 20 28 6f 72 20 28 3c 20 28 63 61 72 20 74 31 29 20 28 63 n.time.T2."...(or.(<.(car.t1).(c
82a80 61 72 20 74 32 29 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 28 63 61 72 20 74 31 29 20 28 ar.t2)).......(and.(=.(car.t1).(
82aa0 63 61 72 20 74 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 28 6e 74 68 20 31 20 74 31 car.t2))............(<.(nth.1.t1
82ac0 29 20 28 6e 74 68 20 31 20 74 32 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 48 69 67 68 6c 69 6e 65 ).(nth.1.t2)))))....;;;.Highline
82ae0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 61 63 74 69 76 61 74 65 2d 68 69 67 68 6c 69 67 68 74 ..(defun.emms-activate-highlight
82b00 69 6e 67 2d 6d 6f 64 65 20 28 29 0a 20 20 22 41 63 74 69 76 61 74 65 20 68 69 67 68 6c 69 6e 65 ing-mode.()..."Activate.highline
82b20 20 6d 6f 64 65 2e 22 0a 20 20 28 69 66 20 28 66 65 61 74 75 72 65 70 20 27 78 65 6d 61 63 73 29 .mode."...(if.(featurep.'xemacs)
82b40 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 .......(progn.........(require.'
82b60 68 69 67 68 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 68 69 67 68 6c 69 6e 65 2d 6c 6f 63 61 highline).........(highline-loca
82b80 6c 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 72 65 71 l-mode.1)).....(progn.......(req
82ba0 75 69 72 65 20 27 68 6c 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 68 6c 2d 6c 69 6e 65 2d 6d 6f uire.'hl-line).......(hl-line-mo
82bc0 64 65 20 31 29 29 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 68 6c 2d 6c de.1))))..(declare-function.hl-l
82be0 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 20 22 22 20 6e 69 6c 29 0a 0a 3b 3b 20 63 61 6c 6c 65 64 ine-highlight."".nil)..;;.called
82c00 20 66 72 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 .from.emms-lyrics.(defun.emms-li
82c20 6e 65 2d 68 69 67 68 6c 69 67 68 74 20 28 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 ne-highlight.()..."Highlight.the
82c40 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 20 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c 0a 65 6d 6d .current.line..You.must.call.emm
82c60 73 2d 61 63 74 69 76 61 74 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 6d 6f 64 65 20 62 65 66 s-activate-highlighting-mode.bef
82c80 6f 72 65 68 61 6e 64 2e 22 0a 20 20 28 69 66 20 28 66 65 61 74 75 72 65 70 20 27 78 65 6d 61 63 orehand."...(if.(featurep.'xemac
82ca0 73 29 0a 20 20 20 20 20 20 28 68 69 67 68 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 2d 63 75 72 s).......(highline-highlight-cur
82cc0 72 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 68 6c 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 rent-line).....(hl-line-highligh
82ce0 74 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 4d 6f 76 65 6d 65 6e 74 20 61 6e 64 20 70 6f 73 69 74 69 6f t)))....;;;.Movement.and.positio
82d00 6e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 76 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 n..(defun.emms-move-beginning-of
82d20 2d 6c 69 6e 65 20 28 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 62 65 67 -line.(arg)..."Move.point.to.beg
82d40 69 6e 6e 69 6e 67 20 6f 66 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 61 73 20 64 69 73 70 6c 61 inning.of.current.line.as.displa
82d60 79 65 64 2e 0a 49 66 20 74 68 65 72 65 27 73 20 61 6e 20 69 6d 61 67 65 20 69 6e 20 74 68 65 20 yed..If.there's.an.image.in.the.
82d80 6c 69 6e 65 2c 20 74 68 69 73 20 64 69 73 72 65 67 61 72 64 73 20 6e 65 77 6c 69 6e 65 73 0a 77 line,.this.disregards.newlines.w
82da0 68 69 63 68 20 61 72 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 65 78 74 20 74 68 61 74 20 74 hich.are.part.of.the.text.that.t
82dc0 68 65 20 69 6d 61 67 65 20 72 65 73 74 73 20 6f 6e 2e 22 0a 20 20 28 69 66 20 28 66 62 6f 75 6e he.image.rests.on."...(if.(fboun
82de0 64 70 20 27 6d 6f 76 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 dp.'move-beginning-of-line).....
82e00 20 20 28 6d 6f 76 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 61 72 67 29 0a 20 ..(move-beginning-of-line.arg)..
82e20 20 20 20 28 69 66 20 28 6e 75 6d 62 65 72 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 28 66 6f ...(if.(numberp.arg).........(fo
82e40 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 61 72 67 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 rward-line.(1-.arg)).......(forw
82e60 61 72 64 2d 6c 69 6e 65 20 30 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 6e 65 ard-line.0))))..(defun.emms-line
82e80 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 -number-at-pos.(&optional.pos)..
82ea0 20 22 52 65 74 75 72 6e 20 28 6e 61 72 72 6f 77 65 64 29 20 62 75 66 66 65 72 20 6c 69 6e 65 20 ."Return.(narrowed).buffer.line.
82ec0 6e 75 6d 62 65 72 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 50 4f 53 2e 0a 49 66 20 50 4f 53 20 69 number.at.position.POS..If.POS.i
82ee0 73 20 6e 69 6c 2c 20 75 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 6c 6f 63 61 74 69 s.nil,.use.current.buffer.locati
82f00 6f 6e 2e 22 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6c 69 6e 65 2d 6e 75 6d 62 65 72 on."...(if.(fboundp.'line-number
82f20 2d 61 74 2d 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 -at-pos).......(line-number-at-p
82f40 6f 73 20 70 6f 73 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6f 70 6f 69 6e 74 20 28 6f 72 20 70 6f os.pos).....(let.((opoint.(or.po
82f60 73 20 28 70 6f 69 6e 74 29 29 29 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 s.(point))).start).......(save-e
82f80 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 xcursion.........(goto-char.(poi
82fa0 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 70 6f nt-min)).........(setq.start.(po
82fc0 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6f 70 6f 69 6e 74 29 int)).........(goto-char.opoint)
82fe0 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 0a 20 20 20 20 20 20 .........(forward-line.0).......
83000 20 20 28 31 2b 20 28 63 6f 75 6e 74 2d 6c 69 6e 65 73 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 ..(1+.(count-lines.start.(point)
83020 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e ))))))....;;;.Regular.expression
83040 20 6d 61 74 63 68 69 6e 67 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 .matching..(defun.emms-replace-r
83060 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 28 72 65 67 65 78 70 20 72 65 70 6c 61 63 65 6d egexp-in-string.(regexp.replacem
83080 65 6e 74 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent.text........................
830a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 78 65 64 63 61 ...............&optional.fixedca
830c0 73 65 20 6c 69 74 65 72 61 6c 29 0a 20 20 22 52 65 70 6c 61 63 65 20 52 45 47 45 58 50 20 77 69 se.literal)..."Replace.REGEXP.wi
830e0 74 68 20 52 45 50 4c 41 43 45 4d 45 4e 54 20 69 6e 20 54 45 58 54 2e 0a 49 66 20 66 6f 75 72 74 th.REPLACEMENT.in.TEXT..If.fourt
83100 68 20 61 72 67 20 46 49 58 45 44 43 41 53 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 6f 20 6e h.arg.FIXEDCASE.is.non-nil,.do.n
83120 6f 74 20 61 6c 74 65 72 20 63 61 73 65 20 6f 66 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 74 65 78 ot.alter.case.of.replacement.tex
83140 74 2e 0a 49 66 20 66 69 66 74 68 20 61 72 67 20 4c 49 54 45 52 41 4c 20 69 73 20 6e 6f 6e 2d 6e t..If.fifth.arg.LITERAL.is.non-n
83160 69 6c 2c 20 69 6e 73 65 72 74 20 52 45 50 4c 41 43 45 4d 45 4e 54 20 6c 69 74 65 72 61 6c 6c 79 il,.insert.REPLACEMENT.literally
83180 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 66 62 6f 75 6e 64 70 20 27 72 65 70 6c 61 63 65 ."...(cond....((fboundp.'replace
831a0 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 28 72 65 70 6c 61 63 65 2d -regexp-in-string).....(replace-
831c0 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 72 65 67 65 78 70 20 72 65 70 6c 61 63 65 6d regexp-in-string.regexp.replacem
831e0 65 6e 74 20 74 65 78 74 20 66 69 78 65 64 63 61 73 65 20 6c 69 74 65 72 61 6c 29 29 0a 20 20 20 ent.text.fixedcase.literal))....
83200 28 28 61 6e 64 20 28 66 65 61 74 75 72 65 70 20 27 78 65 6d 61 63 73 29 20 28 66 62 6f 75 6e 64 ((and.(featurep.'xemacs).(fbound
83220 70 20 27 72 65 70 6c 61 63 65 2d 69 6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 28 72 65 70 6c p.'replace-in-string)).....(repl
83240 61 63 65 2d 69 6e 2d 73 74 72 69 6e 67 20 74 65 78 74 20 72 65 67 65 78 70 20 72 65 70 6c 61 63 ace-in-string.text.regexp.replac
83260 65 6d 65 6e 74 20 6c 69 74 65 72 61 6c 29 29 0a 20 20 20 28 74 20 28 6c 65 74 20 28 28 72 65 70 ement.literal))....(t.(let.((rep
83280 6c 2d 6c 65 6e 20 28 6c 65 6e 67 74 68 20 72 65 70 6c 61 63 65 6d 65 6e 74 29 29 0a 20 20 20 20 l-len.(length.replacement)).....
832a0 20 20 20 20 20 20 20 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 ........start).........(save-mat
832c0 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 73 ch-data...........(while.(setq.s
832e0 74 61 72 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 67 65 78 70 20 74 65 78 74 20 73 tart.(string-match.regexp.text.s
83300 74 61 72 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 tart)).............(setq.start.(
83320 2b 20 73 74 61 72 74 20 72 65 70 6c 2d 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +.start.repl-len)...............
83340 20 20 20 20 74 65 78 74 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 72 65 70 6c 61 63 65 6d ....text.(replace-match.replacem
83360 65 6e 74 20 66 69 78 65 64 63 61 73 65 20 6c 69 74 65 72 61 6c 20 74 65 78 74 29 29 29 29 29 0a ent.fixedcase.literal.text))))).
83380 20 20 20 20 20 20 74 65 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 74 63 68 ......text)))..(defun.emms-match
833a0 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6e 75 6d 20 26 6f 70 74 69 -string-no-properties.(num.&opti
833c0 6f 6e 61 6c 20 73 74 72 69 6e 67 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6d 61 74 onal.string)...(if.(fboundp.'mat
833e0 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 20 20 28 ch-string-no-properties).......(
83400 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 6e 75 6d 20 73 match-string-no-properties.num.s
83420 74 72 69 6e 67 29 0a 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 6e 75 6d 20 73 74 72 tring).....(match-string.num.str
83440 69 6e 67 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 43 6f 6d 6d 6f 6e 20 4c 69 73 70 0a 0a 28 64 65 66 75 ing)))....;;;.Common.Lisp..(defu
83460 6e 20 65 6d 6d 73 2d 64 65 6c 65 74 65 2d 69 66 20 28 70 72 65 64 69 63 61 74 65 20 73 65 71 29 n.emms-delete-if.(predicate.seq)
83480 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 69 74 65 6d 73 20 73 61 74 69 73 66 79 69 6e 67 20 ..."Remove.all.items.satisfying.
834a0 50 52 45 44 49 43 41 54 45 20 69 6e 20 53 45 51 2e 0a 54 68 69 73 20 69 73 20 61 20 64 65 73 74 PREDICATE.in.SEQ..This.is.a.dest
834c0 72 75 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 3a 20 69 74 20 72 65 75 73 65 73 20 74 68 65 20 ructive.function:.it.reuses.the.
834e0 73 74 6f 72 61 67 65 20 6f 66 20 53 45 51 0a 77 68 65 6e 65 76 65 72 20 70 6f 73 73 69 62 6c 65 storage.of.SEQ.whenever.possible
83500 2e 22 0a 20 20 3b 3b 20 72 65 6d 6f 76 65 20 66 72 6f 6d 20 63 61 72 0a 20 20 28 77 68 69 6c 65 ."...;;.remove.from.car...(while
83520 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 28 63 61 72 20 73 .(when.(funcall.predicate.(car.s
83540 65 71 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 71 20 28 63 64 72 20 73 eq))............(setq.seq.(cdr.s
83560 65 71 29 29 29 29 0a 20 20 3b 3b 20 72 65 6d 6f 76 65 20 66 72 6f 6d 20 63 64 72 0a 20 20 28 6c eq))))...;;.remove.from.cdr...(l
83580 65 74 20 28 28 70 74 72 20 73 65 71 29 0a 20 20 20 20 20 20 20 20 28 6e 65 78 74 20 28 63 64 72 et.((ptr.seq).........(next.(cdr
835a0 20 73 65 71 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 6e 65 78 74 0a 20 20 20 20 20 20 28 77 .seq))).....(while.next.......(w
835c0 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 28 63 61 72 20 6e 65 78 74 hen.(funcall.predicate.(car.next
835e0 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 70 74 72 20 28 69 66 20 28 63 6f 6e 73 )).........(setcdr.ptr.(if.(cons
83600 70 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.next).........................
83620 28 63 64 72 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (cdr.next)......................
83640 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 74 72 20 28 63 64 72 20 70 74 72 .nil))).......(setq.ptr.(cdr.ptr
83660 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 63 64 72 20 70 74 72 29 29 29 29 )).......(setq.next.(cdr.ptr))))
83680 0a 20 20 73 65 71 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6e 64 2d 69 66 20 28 70 72 ...seq)..(defun.emms-find-if.(pr
836a0 65 64 69 63 61 74 65 20 73 65 71 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 66 69 72 73 74 20 69 edicate.seq)..."Find.the.first.i
836c0 74 65 6d 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 49 43 41 54 45 20 69 6e 20 53 45 51 2e tem.satisfying.PREDICATE.in.SEQ.
836e0 0a 52 65 74 75 72 6e 20 74 68 65 20 6d 61 74 63 68 69 6e 67 20 69 74 65 6d 2c 20 6f 72 20 6e 69 .Return.the.matching.item,.or.ni
83700 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 0a 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e 64 l.if.not.found."...(catch.'found
83720 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 20 73 65 71 29 0a 20 20 20 20 20 20 28 77 68 65 .....(dolist.(el.seq).......(whe
83740 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 65 6c 29 0a 20 20 20 20 20 20 20 n.(funcall.predicate.el)........
83760 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 65 6c 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 .(throw.'found.el)))))..(defun.e
83780 6d 6d 73 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 28 70 72 65 64 69 63 61 74 65 20 73 65 71 mms-remove-if-not.(predicate.seq
837a0 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 69 74 65 6d 73 20 6e 6f 74 20 73 61 74 69 73 66 )..."Remove.all.items.not.satisf
837c0 79 69 6e 67 20 50 52 45 44 49 43 41 54 45 20 69 6e 20 53 45 51 2e 0a 54 68 69 73 20 69 73 20 61 ying.PREDICATE.in.SEQ..This.is.a
837e0 20 6e 6f 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 3b 20 69 74 20 6d 61 .non-destructive.function;.it.ma
83800 6b 65 73 20 61 20 63 6f 70 79 20 6f 66 20 53 45 51 20 74 6f 0a 61 76 6f 69 64 20 63 6f 72 72 75 kes.a.copy.of.SEQ.to.avoid.corru
83820 70 74 69 6e 67 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 53 45 51 2e 22 0a 20 20 28 6c 65 74 20 pting.the.original.SEQ."...(let.
83840 28 6e 65 77 73 65 71 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 20 73 65 71 29 0a 20 20 (newseq).....(dolist.(el.seq)...
83860 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 65 6c 29 ....(when.(funcall.predicate.el)
83880 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 73 65 71 20 28 63 6f 6e 73 20 65 6c 20 6e .........(setq.newseq.(cons.el.n
838a0 65 77 73 65 71 29 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 6e 65 77 73 65 71 29 29 ewseq)))).....(nreverse.newseq))
838c0 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 63 6f 6d 70 61 74 29 0a 3b 3b 3b 20 65 6d )..(provide.'emms-compat).;;;.em
838e0 6d 73 2d 63 6f 6d 70 61 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 ms-compat.el.ends.here..........
83900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
839a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
839c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
839e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 2e 65 6c 00 00 00 00 emms-24/emms-info-ogginfo.el....
83a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
83a80 30 30 30 36 30 34 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 34 37 00 20 30 00 00 00 0006044.00000000000.014547..0...
83aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
83b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
83b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83c00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 2e 65 6c 20 2d 2d 2d 20 45 6d 6d ;;;.emms-info-ogginfo.el.---.Emm
83c20 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 4f 67 67 20 56 6f 72 62 69 73 20 66 69 s.information.from.Ogg.Vorbis.fi
83c40 6c 65 73 2e 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d les..-*-.lexical-binding:.t;.-*-
83c60 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 35 2d 32 30 32 31 20 20 46 72 ..;;.Copyright.(C).2005-2021..Fr
83c80 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b ee.Software.Foundation,.Inc...;;
83ca0 20 41 75 74 68 6f 72 3a 20 4a 6f 72 67 65 6e 20 53 63 68 61 65 66 65 72 20 3c 66 6f 72 63 65 72 .Author:.Jorgen.Schaefer.<forcer
83cc0 40 66 6f 72 63 69 78 2e 63 78 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 59 6f 6e 69 20 52 61 62 6b @forcix.cx>.;;.........Yoni.Rabk
83ce0 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 in.<yrk@gnu.org>..;;.This.file.i
83d00 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 s.part.of.EMMS...;;.EMMS.is.free
83d20 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 .software;.you.can.redistribute.
83d40 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 it.and/or.modify.it.;;.under.the
83d60 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 .terms.of.the.GNU.General.Public
83d80 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 .License.as.published.by.;;.the.
83da0 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 Free.Software.Foundation;.either
83dc0 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b .version.3.of.the.License,.or.;;
83de0 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 .(at.your.option).any.later.vers
83e00 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 ion...;;.EMMS.is.distributed.in.
83e20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
83e40 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 .;;.but.WITHOUT.ANY.WARRANTY;.wi
83e60 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 thout.even.the.implied.warranty.
83e80 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 of.;;.MERCHANTABILITY.or.FITNESS
83ea0 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 .FOR.A.PARTICULAR.PURPOSE...See.
83ec0 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 the.;;.GNU.General.Public.Licens
83ee0 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 e.for.more.details...;;.You.shou
83f00 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
83f20 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
83f40 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 ng.with.EMMS;.if.not,.write.to.t
83f60 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 he.Free.Software.Foundation,.;;.
83f80 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f Inc.,.51.Franklin.St,.Fifth.Floo
83fa0 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a r,.Boston,.MA.02110-1301,.USA...
83fc0 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 ;;;.Commentary:.;;..;;;.Code:..(
83fe0 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 require.'emms-info)..(defgroup.e
84000 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 20 6e 69 6c 0a 20 20 22 41 6e 20 45 4d 4d 53 2d mms-info-ogginfo.nil..."An.EMMS-
84020 69 6e 66 6f 20 6d 65 74 68 6f 64 20 66 6f 72 20 67 65 74 74 69 6e 67 2c 20 75 73 69 6e 67 20 74 info.method.for.getting,.using.t
84040 68 65 20 65 78 74 65 72 6e 61 6c 20 6f 67 67 69 6e 66 6f 0a 70 72 6f 67 72 61 6d 22 0a 20 20 3a he.external.ogginfo.program"...:
84060 67 72 6f 75 70 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d group.'emms-info)..(defcustom.em
84080 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 75 ms-info-ogginfo-coding-system.'u
840a0 74 66 2d 38 0a 20 20 22 43 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 75 73 65 64 20 69 6e 20 74 68 tf-8..."Coding.system.used.in.th
840c0 65 20 6f 75 74 70 75 74 20 6f 66 20 6f 67 67 69 6e 66 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 63 e.output.of.ogginfo."...:type.'c
840e0 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 oding-system)..(defcustom.emms-i
84100 6e 66 6f 2d 6f 67 67 69 6e 66 6f 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 20 22 6f 67 67 69 6e 66 nfo-ogginfo-program-name."ogginf
84120 6f 22 0a 20 20 22 54 68 65 20 6e 61 6d 65 2f 70 61 74 68 20 6f 66 20 74 68 65 20 6f 67 67 69 6e o"..."The.name/path.of.the.oggin
84140 66 6f 20 74 61 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 fo.tag.program."...:type.'string
84160 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 20 28 74 72 61 )..(defun.emms-info-ogginfo.(tra
84180 63 6b 29 0a 20 20 22 41 64 64 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 ck)..."Add.track.information.to.
841a0 54 52 41 43 4b 2e 0a 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 6c 20 65 6c 65 6d 65 6e 74 20 TRACK..This.is.a.useful.element.
841c0 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 77 for.`emms-info-functions'."...(w
841e0 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 hen.(and.(emms-track-file-p.trac
84200 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c k)..............(string-match."\
84220 5c 2e 5b 4f 6f 5d 5b 47 67 5d 5b 47 67 5d 5c 5c 27 22 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e \.[Oo][Gg][Gg]\\'".(emms-track-n
84240 61 6d 65 20 74 72 61 63 6b 29 29 29 0a 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 ame.track)))......(with-temp-buf
84260 66 65 72 0a 20 20 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 69 6e 66 fer.......(call-process.emms-inf
84280 6f 2d 6f 67 67 69 6e 66 6f 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 o-ogginfo-program-name..........
842a0 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 20 28 65 6d 6d 73 2d 74 72 61 63 6b ...........nil.t.nil.(emms-track
842c0 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 70 6c 61 79 20 74 69 6d -name.track))........;;.play.tim
842e0 65 2c 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 2e 65 6c 20 5b 55 2e 20 4a 65 6e 73 65 6e 5d 0a e,.emms-info-ogg.el.[U..Jensen].
84300 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
84320 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 ....(when.(re-search-forward....
84340 20 20 20 20 20 20 20 20 20 20 22 50 6c 61 79 62 61 63 6b 20 6c 65 6e 67 74 68 3a 20 5c 5c 28 5b .........."Playback.length:.\\([
84360 30 2d 39 5d 2a 5c 5c 29 6d 3a 5c 5c 28 5b 30 2d 39 5d 2a 5c 5c 29 22 20 6e 69 6c 20 74 29 0a 20 0-9]*\\)m:\\([0-9]*\\)".nil.t)..
84380 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 75 74 65 73 20 28 73 74 72 69 6e 67 2d 74 .......(let*.((minutes.(string-t
843a0 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 o-number.(match-string.1))).....
843c0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e ...........(seconds.(string-to-n
843e0 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 umber.(match-string.2)))........
84400 20 20 20 20 20 20 20 20 28 70 74 69 6d 65 2d 74 6f 74 61 6c 20 28 2b 20 28 2a 20 6d 69 6e 75 74 ........(ptime-total.(+.(*.minut
84420 65 73 20 36 30 29 20 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 es.60).seconds))................
84440 28 70 74 69 6d 65 2d 6d 69 6e 20 6d 69 6e 75 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (ptime-min.minutes).............
84460 20 20 20 28 70 74 69 6d 65 2d 73 65 63 20 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 ...(ptime-sec.seconds)).........
84480 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c ..(emms-track-set.track.'info-pl
844a0 61 79 69 6e 67 2d 74 69 6d 65 20 70 74 69 6d 65 2d 74 6f 74 61 6c 29 0a 20 20 20 20 20 20 20 20 aying-time.ptime-total).........
844c0 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c ..(emms-track-set.track.'info-pl
844e0 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 69 6e 20 70 74 69 6d 65 2d 6d 69 6e 29 0a 20 20 20 20 20 20 aying-time-min.ptime-min).......
84500 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d ....(emms-track-set.track.'info-
84520 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 65 63 20 70 74 69 6d 65 2d 73 65 63 29 0a 20 20 20 20 playing-time-sec.ptime-sec).....
84540 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 ......(emms-track-set.track.'inf
84560 6f 2d 66 69 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 o-file.(emms-track-name.track)))
84580 29 0a 0a 20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 )........;;.all.the.rest.of.the.
845a0 69 6e 66 6f 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 info.available.......(goto-char.
845c0 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 (point-min)).......(when.(re-sea
845e0 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 2e 2a 5c 5c 2e 5c 5c 2e 5c 5c 2e 24 22 20 28 70 6f 69 rch-forward."^.*\\.\\.\\.$".(poi
84600 6e 74 2d 6d 61 78 29 20 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 7a 65 72 6f 70 nt-max).t).........(while.(zerop
84620 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 .(forward-line.1))...........(wh
84640 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 74 5c 5c 28 2e 2a 3f 5c 5c 29 3d 5c 5c 28 en.(looking-at."^\t\\(.*?\\)=\\(
84660 2e 2a 5c 5c 29 24 22 29 20 3b 20 72 65 63 6f 67 6e 69 7a 65 20 74 68 65 20 66 69 72 73 74 20 27 .*\\)$").;.recognize.the.first.'
84680 3d 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 20 28 6d 61 74 63 68 2d 73 ='.............(let.((a.(match-s
846a0 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 20 28 tring.1))...................(b.(
846c0 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match-string.2)))...............
846e0 28 77 68 65 6e 20 28 61 6e 64 20 28 3c 20 30 20 28 6c 65 6e 67 74 68 20 61 29 29 0a 20 20 20 20 (when.(and.(<.0.(length.a)).....
84700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 30 20 28 6c 65 6e 67 74 .....................(<.0.(lengt
84720 68 20 62 29 20 31 30 32 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d h.b).1024)).................(emm
84740 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-track-set.track...............
84760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 28 64 6f 77 6e 63 ..................(intern.(downc
84780 61 73 65 20 28 63 6f 6e 63 61 74 20 22 69 6e 66 6f 2d 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ase.(concat."info-".(match-strin
847a0 67 20 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.1)))).........................
847c0 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 29 29 29 29 29 ........(match-string.2)))))))))
847e0 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 29 0a )..(provide.'emms-info-ogginfo).
84800 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 2e 65 6c 20 65 6e 64 73 20 68 .;;;.emms-info-ogginfo.el.ends.h
84820 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ere.............................
84840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
848a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
848c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
848e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
849a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
849c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
849e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2e 65 6c 00 emms-24/emms-info-native-mp3.el.
84a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
84a80 30 30 36 36 33 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 31 35 00 20 30 00 00 00 0066373.00000000000.015115..0...
84aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
84b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
84b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84c00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2e 65 6c 20 2d 2d 2d 20 ;;;.emms-info-native-mp3.el.---.
84c20 45 4d 4d 53 20 69 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 4d 50 33 20 66 69 6c 65 EMMS.info.functions.for.MP3.file
84c40 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a s..-*-.lexical-binding:.t;.-*-..
84c60 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 34 20 46 72 65 65 20 ;;.Copyright.(C).2020-2024.Free.
84c80 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 Software.Foundation,.Inc...;;.Au
84ca0 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 thor:.Petteri.Hintsanen.<petteri
84cc0 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 h@iki.fi>..;;.This.file.is.part.
84ce0 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 of.EMMS...;;.EMMS.is.free.softwa
84d00 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f re;.you.can.redistribute.it.and/
84d20 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 or.modify.it.;;.under.the.terms.
84d40 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
84d60 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f e.as.published.by.;;.the.Free.So
84d80 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f ftware.Foundation;.either.versio
84da0 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 n.3,.or.(at.your.option).;;.any.
84dc0 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 later.version...;;.EMMS.is.distr
84de0 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 ibuted.in.the.hope.that.it.will.
84e00 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 be.useful,.but.WITHOUT.;;.ANY.WA
84e20 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 RRANTY;.without.even.the.implied
84e40 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 .warranty.of.MERCHANTABILITY.;;.
84e60 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 or.FITNESS.FOR.A.PARTICULAR.PURP
84e80 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 OSE...See.the.GNU.General.Public
84ea0 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b .;;.License.for.more.details...;
84ec0 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 ;.You.should.have.received.a.cop
84ee0 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 y.of.the.GNU.General.Public.Lice
84f00 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 nse.;;.along.with.EMMS;.see.the.
84f20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 file.COPYING..If.not,.write.to.t
84f40 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 he.Free.;;.Software.Foundation,.
84f60 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 Inc.,.51.Franklin.Street,.Fifth.
84f80 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c Floor,.Boston,.;;.MA.02110-1301,
84fa0 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 .USA...;;;.Commentary:..;;.This.
84fc0 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 65 78 74 72 file.contains.functions.for.extr
84fe0 61 63 74 69 6e 67 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 4d 50 33 20 66 69 6c 65 73 0a 3b acting.metadata.from.MP3.files.;
85000 3b 20 77 69 74 68 20 49 44 33 76 32 20 74 61 67 73 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 ;.with.ID3v2.tags...The.code.is.
85020 62 61 73 65 64 20 6f 6e 20 49 44 33 76 32 20 49 6e 66 6f 72 6d 61 6c 20 53 74 61 6e 64 61 72 64 based.on.ID3v2.Informal.Standard
85040 73 2c 0a 3b 3b 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 69 64 33 6c 69 62 2e 73 6f 75 72 63 65 66 s,.;;.see.https://id3lib.sourcef
85060 6f 72 67 65 2e 6e 65 74 2f 69 64 33 2f 0a 0a 3b 3b 20 41 6c 6c 20 49 44 33 76 32 20 76 65 72 73 orge.net/id3/..;;.All.ID3v2.vers
85080 69 6f 6e 73 20 73 68 6f 75 6c 64 20 62 65 20 72 65 63 6f 67 6e 69 7a 65 64 2c 20 62 75 74 20 6d ions.should.be.recognized,.but.m
850a0 61 6e 79 20 66 65 61 74 75 72 65 73 20 6c 69 6b 65 0a 3b 3b 20 43 52 43 2c 20 63 6f 6d 70 72 65 any.features.like.;;.CRC,.compre
850c0 73 73 69 6f 6e 20 61 6e 64 20 65 6e 63 72 79 70 74 69 6f 6e 20 61 72 65 20 6e 6f 74 20 73 75 70 ssion.and.encryption.are.not.sup
850e0 70 6f 72 74 65 64 2e 20 20 53 69 6e 63 65 20 4d 50 33 20 64 6f 65 73 0a 3b 3b 20 6e 6f 74 20 68 ported...Since.MP3.does.;;.not.h
85100 61 76 65 20 61 20 67 65 6e 65 72 61 6c 6c 79 20 61 67 72 65 65 64 2d 75 70 6f 6e 20 66 6f 72 6d ave.a.generally.agreed-upon.form
85120 61 74 20 66 6f 72 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 73 74 72 65 61 6d 0a 3b 3b 20 at.for.specifying.the.stream.;;.
85140 6c 65 6e 67 74 68 2c 20 74 68 65 20 72 65 70 6f 72 74 65 64 20 70 6c 61 79 69 6e 67 20 74 69 6d length,.the.reported.playing.tim
85160 65 20 69 73 20 6f 6e 6c 79 20 61 6e 20 65 73 74 69 6d 61 74 65 2e 20 20 46 6f 72 0a 3b 3b 20 63 e.is.only.an.estimate...For.;;.c
85180 6f 6e 73 74 61 6e 74 20 62 69 74 20 72 61 74 65 20 73 74 72 65 61 6d 73 20 74 68 65 20 65 73 74 onstant.bit.rate.streams.the.est
851a0 69 6d 61 74 65 20 69 73 20 75 73 75 61 6c 6c 79 20 61 63 63 75 72 61 74 65 2c 20 62 75 74 20 66 imate.is.usually.accurate,.but.f
851c0 6f 72 0a 3b 3b 20 76 61 72 69 61 62 6c 65 20 62 69 74 20 72 61 74 65 20 73 74 72 65 61 6d 73 20 or.;;.variable.bit.rate.streams.
851e0 69 74 20 6d 61 79 20 62 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 77 72 6f 6e 67 2c 20 65 73 70 65 it.may.be.completely.wrong,.espe
85200 63 69 61 6c 6c 79 20 69 66 0a 3b 3b 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 58 69 6e 67 2f 56 cially.if.;;.there.are.no.Xing/V
85220 42 52 49 20 68 65 61 64 65 72 73 20 65 6d 62 65 64 64 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65 BRI.headers.embedded.in.the.file
85240 2e 0a 0a 3b 3b 20 46 6f 72 20 74 65 63 68 6e 69 63 61 6c 20 64 65 74 61 69 6c 73 20 6f 6e 20 4d ...;;.For.technical.details.on.M
85260 50 33 20 64 75 72 61 74 69 6f 6e 20 65 73 74 69 6d 61 74 69 6f 6e 2c 20 73 65 65 0a 3b 3b 20 68 P3.duration.estimation,.see.;;.h
85280 74 74 70 73 3a 2f 2f 77 77 77 2e 63 6f 64 65 70 72 6f 6a 65 63 74 2e 63 6f 6d 2f 41 72 74 69 63 ttps://www.codeproject.com/Artic
852a0 6c 65 73 2f 38 32 39 35 2f 4d 50 45 47 2d 41 75 64 69 6f 2d 46 72 61 6d 65 2d 48 65 61 64 65 72 les/8295/MPEG-Audio-Frame-Header
852c0 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 ...;;;.Code:..(require.'emms).(r
852e0 65 71 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 equire.'bindat).(eval-when-compi
85300 6c 65 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 29 0a 0a 0c 0a 3b 3b 3b 20 49 44 33 le.(require.'subr-x))....;;;.ID3
85320 20 63 6f 64 65 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d .code..(defvar.emms-info-native-
85340 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 30 0a 20 20 22 4c 61 73 74 20 64 65 63 6f 64 65 64 id3v2--version.0..."Last.decoded
85360 20 49 44 33 76 32 20 76 65 72 73 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d .ID3v2.version.")..(defconst.emm
85380 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 6d 61 67 69 63 2d 70 61 74 74 65 s-info-native-id3v2--magic-patte
853a0 72 6e 20 22 49 44 33 22 0a 20 20 22 49 44 33 76 32 20 68 65 61 64 65 72 20 6d 61 67 69 63 20 70 rn."ID3"..."ID3v2.header.magic.p
853c0 61 74 74 65 72 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e attern.")..(defconst.emms-info-n
853e0 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a ative-id3v2--header-bindat-spec.
85400 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 ..(if.(eval-when-compile.(fbound
85420 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 p.'bindat-type)).......(bindat-t
85440 79 70 65 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 69 64 65 6e 74 69 66 69 65 72 20 73 74 72 ype.........(file-identifier.str
85460 20 33 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 65 71 75 .3).........(_.unit.(unless.(equ
85480 61 6c 20 66 69 6c 65 2d 69 64 65 6e 74 69 66 69 65 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 al.file-identifier.emms-info-nat
854a0 69 76 65 2d 69 64 33 76 32 2d 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 ive-id3v2--magic-pattern).......
854c0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 44 33 76 32 20 66 72 61 6d 69 6e ............(error."ID3v2.framin
854e0 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 g.mismatch:.expected.`%s',.got.`
85500 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d %s'"..........................em
85520 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 6d 61 67 69 63 2d 70 61 74 74 ms-info-native-id3v2--magic-patt
85540 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c ern..........................fil
85560 65 2d 69 64 65 6e 74 69 66 69 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e e-identifier))).........(version
85580 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 70 72 6f 67 6e 20 28 73 65 74 .u8).........(_.unit.(progn.(set
855a0 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f q.emms-info-native-id3v2--versio
855c0 6e 20 76 65 72 73 69 6f 6e 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 76 69 73 69 n.version).nil)).........(revisi
855e0 6f 6e 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 66 6c 61 67 73 20 62 69 74 73 20 31 29 0a 20 20 on.u8).........(flags.bits.1)...
85600 20 20 20 20 20 20 28 73 69 7a 65 2d 62 79 74 65 73 20 76 65 63 20 34 29 0a 20 20 20 20 20 20 20 ......(size-bytes.vec.4)........
85620 20 28 73 69 7a 65 20 75 6e 69 74 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 .(size.unit.(emms-info-native-id
85640 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 69 7a 65 20 27 74 61 67 20 73 69 7a 65 2d 62 79 74 65 3v2--checked-size.'tag.size-byte
85660 73 29 29 29 0a 20 20 20 20 27 28 28 66 69 6c 65 2d 69 64 65 6e 74 69 66 69 65 72 20 73 74 72 20 s))).....'((file-identifier.str.
85680 33 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6c 61 3).......(eval.(unless.(equal.la
856a0 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 6d 61 67 69 63 st.emms-info-native-id3v2--magic
856c0 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 -pattern)...............(error."
856e0 49 44 33 76 32 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 ID3v2.framing.mismatch:.expected
85700 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .`%s',.got.`%s'"................
85720 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 6d 61 ......emms-info-native-id3v2--ma
85740 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gic-pattern.....................
85760 20 6c 61 73 74 29 29 29 0a 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 .last))).......(version.u8).....
85780 20 20 28 65 76 61 6c 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 ..(eval.(setq.emms-info-native-i
857a0 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 6c 61 73 74 29 29 0a 20 20 20 20 20 20 28 72 65 76 69 d3v2--version.last)).......(revi
857c0 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 20 20 28 66 6c 61 67 73 20 62 69 74 73 20 31 29 0a 20 20 sion.u8).......(flags.bits.1)...
857e0 20 20 20 20 28 73 69 7a 65 2d 62 79 74 65 73 20 76 65 63 20 34 29 0a 20 20 20 20 20 20 28 73 69 ....(size-bytes.vec.4).......(si
85800 7a 65 20 65 76 61 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d ze.eval.(emms-info-native-id3v2-
85820 2d 63 68 65 63 6b 65 64 2d 73 69 7a 65 20 27 74 61 67 20 6c 61 73 74 29 29 29 29 0a 20 20 22 49 -checked-size.'tag.last))))..."I
85840 44 33 76 32 20 68 65 61 64 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 D3v2.header.specification.")..(d
85860 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d efconst.emms-info-native-id3v2--
85880 66 72 61 6d 65 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 frame-header-bindat-spec...(if.(
858a0 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 eval-when-compile.(fboundp.'bind
858c0 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 at-type)).......(bindat-type....
858e0 20 20 20 20 20 28 69 64 20 73 74 72 20 28 69 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 .....(id.str.(if.(=.emms-info-na
85900 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 29 20 33 20 34 29 29 0a 20 20 20 tive-id3v2--version.2).3.4))....
85920 20 20 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d .....(_.unit.(unless.(emms-info-
85940 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 69 native-id3v2--valid-frame-id-p.i
85960 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 44 33 d)...................(error."ID3
85980 76 32 20 66 72 61 6d 65 20 69 64 20 60 25 73 27 20 69 73 20 69 6e 76 61 6c 69 64 22 20 69 64 29 v2.frame.id.`%s'.is.invalid".id)
859a0 29 29 0a 20 20 20 20 20 20 20 20 28 73 69 7a 65 2d 62 79 74 65 73 20 76 65 63 20 28 69 66 20 28 )).........(size-bytes.vec.(if.(
859c0 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f =.emms-info-native-id3v2--versio
859e0 6e 20 32 29 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 28 73 69 7a 65 20 75 6e 69 74 20 28 65 n.2).3.4)).........(size.unit.(e
85a00 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 mms-info-native-id3v2--checked-s
85a20 69 7a 65 20 27 66 72 61 6d 65 20 73 69 7a 65 2d 62 79 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 ize.'frame.size-bytes)).........
85a40 28 66 6c 61 67 73 20 62 69 74 73 20 28 69 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 (flags.bits.(if.(=.emms-info-nat
85a60 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 29 20 30 20 32 29 29 29 0a 20 20 20 ive-id3v2--version.2).0.2)))....
85a80 20 27 28 28 69 64 20 73 74 72 20 28 65 76 61 6c 20 28 69 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 .'((id.str.(eval.(if.(=.emms-inf
85aa0 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 29 20 33 20 34 29 29 o-native-id3v2--version.2).3.4))
85ac0 29 0a 20 20 20 20 20 20 28 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 69 6e 66 6f ).......(eval.(unless.(emms-info
85ae0 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d 65 2d 69 64 2d 70 20 -native-id3v2--valid-frame-id-p.
85b00 6c 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 44 33 76 last)...............(error."ID3v
85b20 32 20 66 72 61 6d 65 20 69 64 20 60 25 73 27 20 69 73 20 69 6e 76 61 6c 69 64 22 20 6c 61 73 74 2.frame.id.`%s'.is.invalid".last
85b40 29 29 29 0a 20 20 20 20 20 20 28 73 69 7a 65 2d 62 79 74 65 73 20 76 65 63 20 28 65 76 61 6c 20 ))).......(size-bytes.vec.(eval.
85b60 28 69 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 (if.(=.emms-info-native-id3v2--v
85b80 65 72 73 69 6f 6e 20 32 29 20 33 20 34 29 29 29 0a 20 20 20 20 20 20 28 73 69 7a 65 20 65 76 61 ersion.2).3.4))).......(size.eva
85ba0 6c 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b l.(emms-info-native-id3v2--check
85bc0 65 64 2d 73 69 7a 65 20 27 66 72 61 6d 65 20 6c 61 73 74 29 29 0a 20 20 20 20 20 20 28 66 6c 61 ed-size.'frame.last)).......(fla
85be0 67 73 20 62 69 74 73 20 28 65 76 61 6c 20 28 69 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e gs.bits.(eval.(if.(=.emms-info-n
85c00 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 29 20 30 20 32 29 29 29 29 29 ative-id3v2--version.2).0.2)))))
85c20 0a 20 20 22 49 44 33 76 32 20 66 72 61 6d 65 20 68 65 61 64 65 72 20 73 70 65 63 69 66 69 63 61 ..."ID3v2.frame.header.specifica
85c40 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 tion.")..(defconst.emms-info-nat
85c60 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 6d 65 2d 74 6f 2d 69 6e 66 6f 0a 20 20 27 28 28 22 54 ive-id3v2--frame-to-info...'(("T
85c80 41 4c 22 20 20 2e 20 22 61 6c 62 75 6d 22 29 0a 20 20 20 20 28 22 54 41 4c 42 22 20 2e 20 22 61 AL"...."album").....("TALB"..."a
85ca0 6c 62 75 6d 22 29 0a 20 20 20 20 28 22 54 50 45 32 22 20 2e 20 22 61 6c 62 75 6d 61 72 74 69 73 lbum").....("TPE2"..."albumartis
85cc0 74 22 29 0a 20 20 20 20 28 22 54 53 4f 32 22 20 2e 20 22 61 6c 62 75 6d 61 72 74 69 73 74 73 6f t").....("TSO2"..."albumartistso
85ce0 72 74 22 29 0a 20 20 20 20 28 22 54 53 4f 41 22 20 2e 20 22 61 6c 62 75 6d 73 6f 72 74 22 29 0a rt").....("TSOA"..."albumsort").
85d00 20 20 20 20 28 22 54 50 31 22 20 20 2e 20 22 61 72 74 69 73 74 22 29 0a 20 20 20 20 28 22 54 50 ....("TP1"...."artist").....("TP
85d20 45 31 22 20 2e 20 22 61 72 74 69 73 74 22 29 0a 20 20 20 20 28 22 54 53 4f 50 22 20 2e 20 22 61 E1"..."artist").....("TSOP"..."a
85d40 72 74 69 73 74 73 6f 72 74 22 29 0a 20 20 20 20 28 22 54 43 4d 22 20 20 2e 20 22 63 6f 6d 70 6f rtistsort").....("TCM"...."compo
85d60 73 65 72 22 29 0a 20 20 20 20 28 22 54 43 4f 4d 22 20 2e 20 22 63 6f 6d 70 6f 73 65 72 22 29 0a ser").....("TCOM"..."composer").
85d80 20 20 20 20 28 22 54 53 4f 43 22 20 2e 20 22 63 6f 6d 70 6f 73 65 72 73 6f 72 74 22 29 0a 20 20 ....("TSOC"..."composersort")...
85da0 20 20 28 22 54 44 52 43 22 20 2e 20 22 64 61 74 65 22 29 0a 20 20 20 20 28 22 54 50 41 22 20 20 ..("TDRC"..."date").....("TPA"..
85dc0 2e 20 22 64 69 73 63 6e 75 6d 62 65 72 22 29 0a 20 20 20 20 28 22 54 50 4f 53 22 20 2e 20 22 64 .."discnumber").....("TPOS"..."d
85de0 69 73 63 6e 75 6d 62 65 72 22 29 0a 20 20 20 20 28 22 54 43 4f 4e 22 20 2e 20 67 65 6e 72 65 29 iscnumber").....("TCON"...genre)
85e00 0a 20 20 20 20 28 22 54 50 55 42 22 20 2e 20 22 6c 61 62 65 6c 22 29 0a 20 20 20 20 28 22 54 44 .....("TPUB"..."label").....("TD
85e20 4f 52 22 20 2e 20 22 6f 72 69 67 69 6e 61 6c 64 61 74 65 22 29 0a 20 20 20 20 28 22 54 4f 52 22 OR"..."originaldate").....("TOR"
85e40 20 20 2e 20 22 6f 72 69 67 69 6e 61 6c 79 65 61 72 22 29 0a 20 20 20 20 28 22 54 4f 52 59 22 20 ...."originalyear").....("TORY".
85e60 2e 20 22 6f 72 69 67 69 6e 61 6c 79 65 61 72 22 29 0a 20 20 20 20 28 22 54 49 54 32 22 20 2e 20 .."originalyear").....("TIT2"...
85e80 22 74 69 74 6c 65 22 29 0a 20 20 20 20 28 22 54 54 32 22 20 20 2e 20 22 74 69 74 6c 65 22 29 0a "title").....("TT2"...."title").
85ea0 20 20 20 20 28 22 54 53 4f 54 22 20 2e 20 22 74 69 74 6c 65 73 6f 72 74 22 29 0a 20 20 20 20 28 ....("TSOT"..."titlesort").....(
85ec0 22 54 52 4b 22 20 20 2e 20 22 74 72 61 63 6b 6e 75 6d 62 65 72 22 29 0a 20 20 20 20 28 22 54 52 "TRK"...."tracknumber").....("TR
85ee0 43 4b 22 20 2e 20 22 74 72 61 63 6b 6e 75 6d 62 65 72 22 29 0a 20 20 20 20 28 22 54 59 45 22 20 CK"..."tracknumber").....("TYE".
85f00 20 2e 20 22 79 65 61 72 22 29 0a 20 20 20 20 28 22 54 59 45 52 22 20 2e 20 22 79 65 61 72 22 29 ..."year").....("TYER"..."year")
85f20 0a 20 20 20 20 28 22 54 58 58 58 22 20 2e 20 75 73 65 72 2d 64 65 66 69 6e 65 64 29 29 0a 20 20 .....("TXXX"...user-defined))...
85f40 22 4d 61 70 70 69 6e 67 20 66 72 6f 6d 20 49 44 33 76 32 20 66 72 61 6d 65 20 69 64 65 6e 74 69 "Mapping.from.ID3v2.frame.identi
85f60 66 69 65 72 73 20 74 6f 20 45 4d 4d 53 20 69 6e 66 6f 20 66 69 65 6c 64 73 2e 0a 0a 53 6f 75 72 fiers.to.EMMS.info.fields...Sour
85f80 63 65 73 3a 0a 0a 2d 20 55 52 4c 20 60 68 74 74 70 73 3a 2f 2f 70 69 63 61 72 64 2d 64 6f 63 73 ces:..-.URL.`https://picard-docs
85fa0 2e 6d 75 73 69 63 62 72 61 69 6e 7a 2e 6f 72 67 2f 65 6e 2f 61 70 70 65 6e 64 69 63 65 73 2f 74 .musicbrainz.org/en/appendices/t
85fc0 61 67 5f 6d 61 70 70 69 6e 67 2e 68 74 6d 6c 27 0a 2d 20 55 52 4c 20 60 68 74 74 70 3a 2f 2f 77 ag_mapping.html'.-.URL.`http://w
85fe0 69 6b 69 2e 68 79 64 72 6f 67 65 6e 61 75 64 2e 69 6f 2f 69 6e 64 65 78 2e 70 68 70 3f 74 69 74 iki.hydrogenaud.io/index.php?tit
86000 6c 65 3d 46 6f 6f 62 61 72 32 30 30 30 3a 49 44 33 5f 54 61 67 5f 4d 61 70 70 69 6e 67 27 22 29 le=Foobar2000:ID3_Tag_Mapping'")
86020 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 69 64 33 76 31 2d 2d 67 65 6e ..(defconst.emms-info-id3v1--gen
86040 72 65 73 0a 20 20 27 28 28 30 20 2e 20 22 42 6c 75 65 73 22 29 0a 20 20 20 20 28 31 20 2e 20 22 res...'((0..."Blues").....(1..."
86060 43 6c 61 73 73 69 63 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 32 20 2e 20 22 43 6f 75 6e 74 72 79 Classic.Rock").....(2..."Country
86080 22 29 0a 20 20 20 20 28 33 20 2e 20 22 44 61 6e 63 65 22 29 0a 20 20 20 20 28 34 20 2e 20 22 44 ").....(3..."Dance").....(4..."D
860a0 69 73 63 6f 22 29 0a 20 20 20 20 28 35 20 2e 20 22 46 75 6e 6b 22 29 0a 20 20 20 20 28 36 20 2e isco").....(5..."Funk").....(6..
860c0 20 22 47 72 75 6e 67 65 22 29 0a 20 20 20 20 28 37 20 2e 20 22 48 69 70 2d 48 6f 70 22 29 0a 20 ."Grunge").....(7..."Hip-Hop")..
860e0 20 20 20 28 38 20 2e 20 22 4a 61 7a 7a 22 29 0a 20 20 20 20 28 39 20 2e 20 22 4d 65 74 61 6c 22 ...(8..."Jazz").....(9..."Metal"
86100 29 0a 20 20 20 20 28 31 30 20 2e 20 22 4e 65 77 20 41 67 65 22 29 0a 20 20 20 20 28 31 31 20 2e ).....(10..."New.Age").....(11..
86120 20 22 4f 6c 64 69 65 73 22 29 0a 20 20 20 20 28 31 32 20 2e 20 22 4f 74 68 65 72 22 29 0a 20 20 ."Oldies").....(12..."Other")...
86140 20 20 28 31 33 20 2e 20 22 50 6f 70 22 29 0a 20 20 20 20 28 31 34 20 2e 20 22 52 26 42 22 29 0a ..(13..."Pop").....(14..."R&B").
86160 20 20 20 20 28 31 35 20 2e 20 22 52 61 70 22 29 0a 20 20 20 20 28 31 36 20 2e 20 22 52 65 67 67 ....(15..."Rap").....(16..."Regg
86180 61 65 22 29 0a 20 20 20 20 28 31 37 20 2e 20 22 52 6f 63 6b 22 29 0a 20 20 20 20 28 31 38 20 2e ae").....(17..."Rock").....(18..
861a0 20 22 54 65 63 68 6e 6f 22 29 0a 20 20 20 20 28 31 39 20 2e 20 22 49 6e 64 75 73 74 72 69 61 6c ."Techno").....(19..."Industrial
861c0 22 29 0a 20 20 20 20 28 32 30 20 2e 20 22 41 6c 74 65 72 6e 61 74 69 76 65 22 29 0a 20 20 20 20 ").....(20..."Alternative").....
861e0 28 32 31 20 2e 20 22 53 6b 61 22 29 0a 20 20 20 20 28 32 32 20 2e 20 22 44 65 61 74 68 20 4d 65 (21..."Ska").....(22..."Death.Me
86200 74 61 6c 22 29 0a 20 20 20 20 28 32 33 20 2e 20 22 50 72 61 6e 6b 73 22 29 0a 20 20 20 20 28 32 tal").....(23..."Pranks").....(2
86220 34 20 2e 20 22 53 6f 75 6e 64 74 72 61 63 6b 22 29 0a 20 20 20 20 28 32 35 20 2e 20 22 45 75 72 4..."Soundtrack").....(25..."Eur
86240 6f 2d 54 65 63 68 6e 6f 22 29 0a 20 20 20 20 28 32 36 20 2e 20 22 41 6d 62 69 65 6e 74 22 29 0a o-Techno").....(26..."Ambient").
86260 20 20 20 20 28 32 37 20 2e 20 22 54 72 69 70 2d 48 6f 70 22 29 0a 20 20 20 20 28 32 38 20 2e 20 ....(27..."Trip-Hop").....(28...
86280 22 56 6f 63 61 6c 22 29 0a 20 20 20 20 28 32 39 20 2e 20 22 4a 61 7a 7a 2b 46 75 6e 6b 22 29 0a "Vocal").....(29..."Jazz+Funk").
862a0 20 20 20 20 28 33 30 20 2e 20 22 46 75 73 69 6f 6e 22 29 0a 20 20 20 20 28 33 31 20 2e 20 22 54 ....(30..."Fusion").....(31..."T
862c0 72 61 6e 63 65 22 29 0a 20 20 20 20 28 33 32 20 2e 20 22 43 6c 61 73 73 69 63 61 6c 22 29 0a 20 rance").....(32..."Classical")..
862e0 20 20 20 28 33 33 20 2e 20 22 49 6e 73 74 72 75 6d 65 6e 74 61 6c 22 29 0a 20 20 20 20 28 33 34 ...(33..."Instrumental").....(34
86300 20 2e 20 22 41 63 69 64 22 29 0a 20 20 20 20 28 33 35 20 2e 20 22 48 6f 75 73 65 22 29 0a 20 20 ..."Acid").....(35..."House")...
86320 20 20 28 33 36 20 2e 20 22 47 61 6d 65 22 29 0a 20 20 20 20 28 33 37 20 2e 20 22 53 6f 75 6e 64 ..(36..."Game").....(37..."Sound
86340 20 43 6c 69 70 22 29 0a 20 20 20 20 28 33 38 20 2e 20 22 47 6f 73 70 65 6c 22 29 0a 20 20 20 20 .Clip").....(38..."Gospel").....
86360 28 33 39 20 2e 20 22 4e 6f 69 73 65 22 29 0a 20 20 20 20 28 34 30 20 2e 20 22 41 6c 74 65 72 6e (39..."Noise").....(40..."Altern
86380 52 6f 63 6b 22 29 0a 20 20 20 20 28 34 31 20 2e 20 22 42 61 73 73 22 29 0a 20 20 20 20 28 34 32 Rock").....(41..."Bass").....(42
863a0 20 2e 20 22 53 6f 75 6c 22 29 0a 20 20 20 20 28 34 33 20 2e 20 22 50 75 6e 6b 22 29 0a 20 20 20 ..."Soul").....(43..."Punk")....
863c0 20 28 34 34 20 2e 20 22 53 70 61 63 65 22 29 0a 20 20 20 20 28 34 35 20 2e 20 22 4d 65 64 69 74 .(44..."Space").....(45..."Medit
863e0 61 74 69 76 65 22 29 0a 20 20 20 20 28 34 36 20 2e 20 22 49 6e 73 74 72 75 6d 65 6e 74 61 6c 20 ative").....(46..."Instrumental.
86400 50 6f 70 22 29 0a 20 20 20 20 28 34 37 20 2e 20 22 49 6e 73 74 72 75 6d 65 6e 74 61 6c 20 52 6f Pop").....(47..."Instrumental.Ro
86420 63 6b 22 29 0a 20 20 20 20 28 34 38 20 2e 20 22 45 74 68 6e 69 63 22 29 0a 20 20 20 20 28 34 39 ck").....(48..."Ethnic").....(49
86440 20 2e 20 22 47 6f 74 68 69 63 22 29 0a 20 20 20 20 28 35 30 20 2e 20 22 44 61 72 6b 77 61 76 65 ..."Gothic").....(50..."Darkwave
86460 22 29 0a 20 20 20 20 28 35 31 20 2e 20 22 54 65 63 68 6e 6f 2d 49 6e 64 75 73 74 72 69 61 6c 22 ").....(51..."Techno-Industrial"
86480 29 0a 20 20 20 20 28 35 32 20 2e 20 22 45 6c 65 63 74 72 6f 6e 69 63 22 29 0a 20 20 20 20 28 35 ).....(52..."Electronic").....(5
864a0 33 20 2e 20 22 50 6f 70 2d 46 6f 6c 6b 22 29 0a 20 20 20 20 28 35 34 20 2e 20 22 45 75 72 6f 64 3..."Pop-Folk").....(54..."Eurod
864c0 61 6e 63 65 22 29 0a 20 20 20 20 28 35 35 20 2e 20 22 44 72 65 61 6d 22 29 0a 20 20 20 20 28 35 ance").....(55..."Dream").....(5
864e0 36 20 2e 20 22 53 6f 75 74 68 65 72 6e 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 35 37 20 2e 20 22 6..."Southern.Rock").....(57..."
86500 43 6f 6d 65 64 79 22 29 0a 20 20 20 20 28 35 38 20 2e 20 22 43 75 6c 74 22 29 0a 20 20 20 20 28 Comedy").....(58..."Cult").....(
86520 35 39 20 2e 20 22 47 61 6e 67 73 74 61 22 29 0a 20 20 20 20 28 36 30 20 2e 20 22 54 6f 70 20 34 59..."Gangsta").....(60..."Top.4
86540 30 22 29 0a 20 20 20 20 28 36 31 20 2e 20 22 43 68 72 69 73 74 69 61 6e 20 52 61 70 22 29 0a 20 0").....(61..."Christian.Rap")..
86560 20 20 20 28 36 32 20 2e 20 22 50 6f 70 2f 46 75 6e 6b 22 29 0a 20 20 20 20 28 36 33 20 2e 20 22 ...(62..."Pop/Funk").....(63..."
86580 4a 75 6e 67 6c 65 22 29 0a 20 20 20 20 28 36 34 20 2e 20 22 4e 61 74 69 76 65 20 41 6d 65 72 69 Jungle").....(64..."Native.Ameri
865a0 63 61 6e 22 29 0a 20 20 20 20 28 36 35 20 2e 20 22 43 61 62 61 72 65 74 22 29 0a 20 20 20 20 28 can").....(65..."Cabaret").....(
865c0 36 36 20 2e 20 22 4e 65 77 20 57 61 76 65 22 29 0a 20 20 20 20 28 36 37 20 2e 20 22 50 73 79 63 66..."New.Wave").....(67..."Psyc
865e0 68 61 64 65 6c 69 63 22 29 0a 20 20 20 20 28 36 38 20 2e 20 22 52 61 76 65 22 29 0a 20 20 20 20 hadelic").....(68..."Rave").....
86600 28 36 39 20 2e 20 22 53 68 6f 77 74 75 6e 65 73 22 29 0a 20 20 20 20 28 37 30 20 2e 20 22 54 72 (69..."Showtunes").....(70..."Tr
86620 61 69 6c 65 72 22 29 0a 20 20 20 20 28 37 31 20 2e 20 22 4c 6f 2d 46 69 22 29 0a 20 20 20 20 28 ailer").....(71..."Lo-Fi").....(
86640 37 32 20 2e 20 22 54 72 69 62 61 6c 22 29 0a 20 20 20 20 28 37 33 20 2e 20 22 41 63 69 64 20 50 72..."Tribal").....(73..."Acid.P
86660 75 6e 6b 22 29 0a 20 20 20 20 28 37 34 20 2e 20 22 41 63 69 64 20 4a 61 7a 7a 22 29 0a 20 20 20 unk").....(74..."Acid.Jazz")....
86680 20 28 37 35 20 2e 20 22 50 6f 6c 6b 61 22 29 0a 20 20 20 20 28 37 36 20 2e 20 22 52 65 74 72 6f .(75..."Polka").....(76..."Retro
866a0 22 29 0a 20 20 20 20 28 37 37 20 2e 20 22 4d 75 73 69 63 61 6c 22 29 0a 20 20 20 20 28 37 38 20 ").....(77..."Musical").....(78.
866c0 2e 20 22 52 6f 63 6b 20 26 20 52 6f 6c 6c 22 29 0a 20 20 20 20 28 37 39 20 2e 20 22 48 61 72 64 .."Rock.&.Roll").....(79..."Hard
866e0 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 38 30 20 2e 20 22 46 6f 6c 6b 22 29 0a 20 20 20 20 28 38 .Rock").....(80..."Folk").....(8
86700 31 20 2e 20 22 46 6f 6c 6b 2d 52 6f 63 6b 22 29 0a 20 20 20 20 28 38 32 20 2e 20 22 4e 61 74 69 1..."Folk-Rock").....(82..."Nati
86720 6f 6e 61 6c 20 46 6f 6c 6b 22 29 0a 20 20 20 20 28 38 33 20 2e 20 22 53 77 69 6e 67 22 29 0a 20 onal.Folk").....(83..."Swing")..
86740 20 20 20 28 38 34 20 2e 20 22 46 61 73 74 20 46 75 73 69 6f 6e 22 29 0a 20 20 20 20 28 38 35 20 ...(84..."Fast.Fusion").....(85.
86760 2e 20 22 42 65 62 6f 62 22 29 0a 20 20 20 20 28 38 36 20 2e 20 22 4c 61 74 69 6e 22 29 0a 20 20 .."Bebob").....(86..."Latin")...
86780 20 20 28 38 37 20 2e 20 22 52 65 76 69 76 61 6c 22 29 0a 20 20 20 20 28 38 38 20 2e 20 22 43 65 ..(87..."Revival").....(88..."Ce
867a0 6c 74 69 63 22 29 0a 20 20 20 20 28 38 39 20 2e 20 22 42 6c 75 65 67 72 61 73 73 22 29 0a 20 20 ltic").....(89..."Bluegrass")...
867c0 20 20 28 39 30 20 2e 20 22 41 76 61 6e 74 67 61 72 64 65 22 29 0a 20 20 20 20 28 39 31 20 2e 20 ..(90..."Avantgarde").....(91...
867e0 22 47 6f 74 68 69 63 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 39 32 20 2e 20 22 50 72 6f 67 72 65 "Gothic.Rock").....(92..."Progre
86800 73 73 69 76 65 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 39 33 20 2e 20 22 50 73 79 63 68 65 64 65 ssive.Rock").....(93..."Psychede
86820 6c 69 63 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 39 34 20 2e 20 22 53 79 6d 70 68 6f 6e 69 63 20 lic.Rock").....(94..."Symphonic.
86840 52 6f 63 6b 22 29 0a 20 20 20 20 28 39 35 20 2e 20 22 53 6c 6f 77 20 52 6f 63 6b 22 29 0a 20 20 Rock").....(95..."Slow.Rock")...
86860 20 20 28 39 36 20 2e 20 22 42 69 67 20 42 61 6e 64 22 29 0a 20 20 20 20 28 39 37 20 2e 20 22 43 ..(96..."Big.Band").....(97..."C
86880 68 6f 72 75 73 22 29 0a 20 20 20 20 28 39 38 20 2e 20 22 45 61 73 79 20 4c 69 73 74 65 6e 69 6e horus").....(98..."Easy.Listenin
868a0 67 22 29 0a 20 20 20 20 28 39 39 20 2e 20 22 41 63 6f 75 73 74 69 63 22 29 0a 20 20 20 20 28 31 g").....(99..."Acoustic").....(1
868c0 30 30 20 2e 20 22 48 75 6d 6f 75 72 22 29 0a 20 20 20 20 28 31 30 31 20 2e 20 22 53 70 65 65 63 00..."Humour").....(101..."Speec
868e0 68 22 29 0a 20 20 20 20 28 31 30 32 20 2e 20 22 43 68 61 6e 73 6f 6e 22 29 0a 20 20 20 20 28 31 h").....(102..."Chanson").....(1
86900 30 33 20 2e 20 22 4f 70 65 72 61 22 29 0a 20 20 20 20 28 31 30 34 20 2e 20 22 43 68 61 6d 62 65 03..."Opera").....(104..."Chambe
86920 72 20 4d 75 73 69 63 22 29 0a 20 20 20 20 28 31 30 35 20 2e 20 22 53 6f 6e 61 74 61 22 29 0a 20 r.Music").....(105..."Sonata")..
86940 20 20 20 28 31 30 36 20 2e 20 22 53 79 6d 70 68 6f 6e 79 22 29 0a 20 20 20 20 28 31 30 37 20 2e ...(106..."Symphony").....(107..
86960 20 22 42 6f 6f 74 79 20 42 61 73 73 22 29 0a 20 20 20 20 28 31 30 38 20 2e 20 22 50 72 69 6d 75 ."Booty.Bass").....(108..."Primu
86980 73 22 29 0a 20 20 20 20 28 31 30 39 20 2e 20 22 50 6f 72 6e 20 47 72 6f 6f 76 65 22 29 0a 20 20 s").....(109..."Porn.Groove")...
869a0 20 20 28 31 31 30 20 2e 20 22 53 61 74 69 72 65 22 29 0a 20 20 20 20 28 31 31 31 20 2e 20 22 53 ..(110..."Satire").....(111..."S
869c0 6c 6f 77 20 4a 61 6d 22 29 0a 20 20 20 20 28 31 31 32 20 2e 20 22 43 6c 75 62 22 29 0a 20 20 20 low.Jam").....(112..."Club")....
869e0 20 28 31 31 33 20 2e 20 22 54 61 6e 67 6f 22 29 0a 20 20 20 20 28 31 31 34 20 2e 20 22 53 61 6d .(113..."Tango").....(114..."Sam
86a00 62 61 22 29 0a 20 20 20 20 28 31 31 35 20 2e 20 22 46 6f 6c 6b 6c 6f 72 65 22 29 0a 20 20 20 20 ba").....(115..."Folklore").....
86a20 28 31 31 36 20 2e 20 22 42 61 6c 6c 61 64 22 29 0a 20 20 20 20 28 31 31 37 20 2e 20 22 50 6f 77 (116..."Ballad").....(117..."Pow
86a40 65 72 20 42 61 6c 6c 61 64 22 29 0a 20 20 20 20 28 31 31 38 20 2e 20 22 52 68 79 74 68 6d 69 63 er.Ballad").....(118..."Rhythmic
86a60 20 53 6f 75 6c 22 29 0a 20 20 20 20 28 31 31 39 20 2e 20 22 46 72 65 65 73 74 79 6c 65 22 29 0a .Soul").....(119..."Freestyle").
86a80 20 20 20 20 28 31 32 30 20 2e 20 22 44 75 65 74 22 29 0a 20 20 20 20 28 31 32 31 20 2e 20 22 50 ....(120..."Duet").....(121..."P
86aa0 75 6e 6b 20 52 6f 63 6b 22 29 0a 20 20 20 20 28 31 32 32 20 2e 20 22 44 72 75 6d 20 53 6f 6c 6f unk.Rock").....(122..."Drum.Solo
86ac0 22 29 0a 20 20 20 20 28 31 32 33 20 2e 20 22 41 20 63 61 70 70 65 6c 6c 61 22 29 0a 20 20 20 20 ").....(123..."A.cappella").....
86ae0 28 31 32 34 20 2e 20 22 45 75 72 6f 2d 48 6f 75 73 65 22 29 0a 20 20 20 20 28 31 32 35 20 2e 20 (124..."Euro-House").....(125...
86b00 22 44 61 6e 63 65 20 48 61 6c 6c 22 29 29 0a 20 20 22 49 44 33 76 31 20 67 65 6e 72 65 73 2e 22 "Dance.Hall"))..."ID3v1.genres."
86b20 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 )..(defconst.emms-info-native-id
86b40 33 76 32 2d 2d 74 65 78 74 2d 65 6e 63 6f 64 69 6e 67 73 0a 20 20 27 28 28 30 20 2e 20 6c 61 74 3v2--text-encodings...'((0...lat
86b60 69 6e 2d 31 29 0a 20 20 20 20 28 31 20 2e 20 75 74 66 2d 31 36 29 0a 20 20 20 20 28 32 20 2e 20 in-1).....(1...utf-16).....(2...
86b80 75 66 74 2d 31 36 62 65 29 0a 20 20 20 20 28 33 20 2e 20 75 74 66 2d 38 29 29 0a 20 20 22 49 44 uft-16be).....(3...utf-8))..."ID
86ba0 33 76 32 20 74 65 78 74 20 65 6e 63 6f 64 69 6e 67 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 3v2.text.encodings.")..(defun.em
86bc0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 61 6c 69 64 2d 66 72 61 6d ms-info-native-id3v2--valid-fram
86be0 65 2d 69 64 2d 70 20 28 69 64 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 49 44 20 69 73 e-id-p.(id)..."Return.t.if.ID.is
86c00 20 61 20 70 72 6f 70 65 72 20 49 44 33 76 32 20 66 72 61 6d 65 20 69 64 65 6e 74 69 66 69 65 72 .a.proper.ID3v2.frame.identifier
86c20 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 69 66 20 28 3d 20 65 6d 6d 73 2d ,.nil.otherwise."...(if.(=.emms-
86c40 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 29 0a 20 20 info-native-id3v2--version.2)...
86c60 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 5b 41 2d 5a 30 2d 39 5d 5c 5c 7b 33 ....(string-match."^[A-Z0-9]\\{3
86c80 5c 5c 7d 24 22 20 69 64 29 0a 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 5b 41 \\}$".id).....(string-match."^[A
86ca0 2d 5a 30 2d 39 5d 5c 5c 7b 34 5c 5c 7d 24 22 20 69 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d -Z0-9]\\{4\\}$".id)))..(defun.em
86cc0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 2d 73 69 ms-info-native-id3v2--checked-si
86ce0 7a 65 20 28 65 6c 74 20 62 79 74 65 73 29 0a 20 20 22 43 61 6c 63 75 6c 61 74 65 20 49 44 33 76 ze.(elt.bytes)..."Calculate.ID3v
86d00 32 20 65 6c 65 6d 65 6e 74 20 45 4c 54 20 73 69 7a 65 20 66 72 6f 6d 20 42 59 54 45 53 2e 0a 45 2.element.ELT.size.from.BYTES..E
86d20 4c 54 20 6d 75 73 74 20 62 65 20 65 69 74 68 65 72 20 60 74 61 67 27 20 6f 72 20 60 66 72 61 6d LT.must.be.either.`tag'.or.`fram
86d40 65 27 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 73 69 7a 65 2e 20 20 53 69 67 6e 61 6c 20 61 6e e'...Return.the.size...Signal.an
86d60 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 73 69 7a 65 20 69 73 20 7a 65 72 6f 2e 22 0a 20 20 28 .error.if.the.size.is.zero."...(
86d80 6c 65 74 20 28 28 73 69 7a 65 20 28 63 6f 6e 64 20 28 28 65 71 20 65 6c 74 20 27 74 61 67 29 0a let.((size.(cond.((eq.elt.'tag).
86da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d .....................(emms-info-
86dc0 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 73 69 7a 65 20 62 79 74 65 73 20 native-id3v2--decode-size.bytes.
86de0 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 65 6c 74 t)).....................((eq.elt
86e00 20 27 66 72 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 .'frame)......................(i
86e20 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 76 65 72 f.(=.emms-info-native-id3v2--ver
86e40 73 69 6f 6e 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sion.4).........................
86e60 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 .(emms-info-native-id3v2--decode
86e80 2d 73 69 7a 65 20 62 79 74 65 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -size.bytes.t)..................
86ea0 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 ......(emms-info-native-id3v2--d
86ec0 65 63 6f 64 65 2d 73 69 7a 65 20 62 79 74 65 73 20 6e 69 6c 29 29 29 29 29 29 0a 20 20 20 20 28 ecode-size.bytes.nil)))))).....(
86ee0 69 66 20 28 7a 65 72 6f 70 20 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 if.(zerop.size).........(error."
86f00 49 44 33 76 32 20 74 61 67 2f 66 72 61 6d 65 20 73 69 7a 65 20 69 73 20 7a 65 72 6f 22 29 0a 20 ID3v2.tag/frame.size.is.zero")..
86f20 20 20 20 20 20 73 69 7a 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e .....size)))..(defun.emms-info-n
86f40 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 73 69 7a 65 20 28 62 79 74 65 73 20 ative-id3v2--decode-size.(bytes.
86f60 73 79 6e 63 73 61 66 65 29 0a 20 20 22 44 65 63 6f 64 65 20 49 44 33 76 32 20 65 6c 65 6d 65 6e syncsafe)..."Decode.ID3v2.elemen
86f80 74 20 73 69 7a 65 20 66 72 6f 6d 20 42 59 54 45 53 2e 0a 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 t.size.from.BYTES..Depending.on.
86fa0 53 59 4e 43 53 41 46 45 2c 20 42 59 54 45 53 20 61 72 65 20 69 6e 74 65 72 70 72 65 74 65 64 20 SYNCSAFE,.BYTES.are.interpreted.
86fc0 61 73 20 37 2d 20 6f 72 20 38 2d 62 69 74 0a 62 79 74 65 73 2c 20 4d 53 42 20 66 69 72 73 74 2e as.7-.or.8-bit.bytes,.MSB.first.
86fe0 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 64 65 63 6f 64 65 64 20 73 69 7a 65 2e 22 0a 20 20 28 6c ..Return.the.decoded.size."...(l
87000 65 74 20 28 28 6e 75 6d 2d 62 69 74 73 20 28 69 66 20 73 79 6e 63 73 61 66 65 20 37 20 38 29 29 et.((num-bits.(if.syncsafe.7.8))
87020 0a 20 20 20 20 20 20 20 20 28 6d 61 73 6b 20 28 69 66 20 73 79 6e 63 73 61 66 65 20 23 78 37 66 .........(mask.(if.syncsafe.#x7f
87040 20 23 78 66 66 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 27 2b 20 28 73 65 71 2d 6d 61 70 2d .#xff))).....(apply.'+.(seq-map-
87060 69 6e 64 65 78 65 64 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 20 69 64 78 29 0a 20 20 20 20 20 20 indexed.(lambda.(elt.idx).......
87080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 28 65 ...........................(*.(e
870a0 78 70 74 20 32 20 28 2a 20 6e 75 6d 2d 62 69 74 73 20 69 64 78 29 29 0a 20 20 20 20 20 20 20 20 xpt.2.(*.num-bits.idx)).........
870c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 ............................(log
870e0 61 6e 64 20 65 6c 74 20 6d 61 73 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 and.elt.mask))).................
87100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 76 65 72 73 65 20 62 79 74 65 73 29 29 29 ...............(reverse.bytes)))
87120 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 ))..(defun.emms-info-native-id3v
87140 32 2d 2d 64 65 63 6f 64 65 2d 68 65 61 64 65 72 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 2--decode-header.(filename)..."R
87160 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 49 44 33 76 32 20 68 65 61 64 65 72 20 66 72 6f 6d ead.and.decode.ID3v2.header.from
87180 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a .FILENAME."...(with-temp-buffer.
871a0 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 ....(set-buffer-multibyte.nil)..
871c0 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c ...(insert-file-contents-literal
871e0 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 30 20 31 30 29 0a 20 20 20 20 28 62 69 6e 64 61 ly.filename.nil.0.10).....(binda
87200 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d t-unpack.emms-info-native-id3v2-
87220 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 -header-bindat-spec.............
87240 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 .......(buffer-string))))..(defu
87260 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 n.emms-info-native-id3v2--checke
87280 64 2d 65 78 74 2d 68 65 61 64 65 72 2d 73 69 7a 65 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 d-ext-header-size.(filename)..."
872a0 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 49 44 33 76 32 20 65 78 74 65 6e 64 65 64 20 68 Read.and.decode.ID3v2.extended.h
872c0 65 61 64 65 72 20 73 69 7a 65 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 52 65 74 75 72 6e eader.size.from.FILENAME..Return
872e0 20 74 68 65 20 73 69 7a 65 2e 20 20 53 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 69 66 20 74 .the.size...Signal.an.error.if.t
87300 68 65 20 73 69 7a 65 20 69 73 20 7a 65 72 6f 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 he.size.is.zero."...(with-temp-b
87320 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 uffer.....(set-buffer-multibyte.
87340 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c nil).....(insert-file-contents-l
87360 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 31 30 20 31 34 29 0a 20 20 20 iterally.filename.nil.10.14)....
87380 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 .(emms-info-native-id3v2--checke
873a0 64 2d 73 69 7a 65 20 27 66 72 61 6d 65 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 d-size.'frame.(buffer-string))))
873c0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d ..(defun.emms-info-native-id3v2-
873e0 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 73 20 28 66 69 6c 65 6e 61 6d 65 20 62 65 67 69 6e 20 65 -decode-frames.(filename.begin.e
87400 6e 64 20 75 6e 73 79 6e 63 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 49 44 nd.unsync)..."Read.and.decode.ID
87420 33 76 32 20 74 65 78 74 20 66 72 61 6d 65 73 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 42 3v2.text.frames.from.FILENAME..B
87440 45 47 49 4e 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 6f 66 66 73 65 74 20 6f 66 20 66 69 72 EGIN.should.be.the.offset.of.fir
87460 73 74 20 62 79 74 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 66 72 61 6d 65 2c 20 61 6e 64 0a st.byte.of.the.first.frame,.and.
87480 45 4e 44 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 6f 66 66 73 65 74 20 61 66 74 65 72 20 74 END.should.be.the.offset.after.t
874a0 68 65 20 63 6f 6d 70 6c 65 74 65 20 49 44 33 76 32 20 74 61 67 2e 0a 0a 49 66 20 55 4e 53 59 4e he.complete.ID3v2.tag...If.UNSYN
874c0 43 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 66 72 61 6d 65 73 20 61 72 65 20 61 73 73 C.is.non-nil,.the.frames.are.ass
874e0 75 6d 65 64 20 74 6f 20 68 61 76 65 20 67 6f 6e 65 20 74 68 72 6f 75 67 68 0a 75 6e 73 79 6e 63 umed.to.have.gone.through.unsync
87500 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 61 6e 64 20 64 65 63 6f 64 65 64 20 61 73 20 73 75 63 68 2e hronization.and.decoded.as.such.
87520 0a 0a 52 65 74 75 72 6e 20 6d 65 74 61 64 61 74 61 20 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 28 ..Return.metadata.in.a.list.of.(
87540 46 49 45 4c 44 20 2e 20 56 41 4c 55 45 29 20 63 6f 6e 73 20 63 65 6c 6c 73 2e 22 0a 20 20 28 6c FIELD...VALUE).cons.cells."...(l
87560 65 74 20 28 28 6f 66 66 73 65 74 20 62 65 67 69 6e 29 0a 20 20 20 20 20 20 20 20 28 6c 69 6d 69 et.((offset.begin).........(limi
87580 74 20 28 2d 20 65 6e 64 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 t.(-.end.(emms-info-native-id3v2
875a0 2d 2d 66 72 61 6d 65 2d 68 65 61 64 65 72 2d 73 69 7a 65 29 29 29 0a 20 20 20 20 20 20 20 20 63 --frame-header-size))).........c
875c0 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 omments).....(ignore-errors.....
875e0 20 20 28 77 68 69 6c 65 20 28 3c 20 6f 66 66 73 65 74 20 6c 69 6d 69 74 29 0a 20 20 20 20 20 20 ..(while.(<.offset.limit).......
87600 20 20 28 6c 65 74 2a 20 28 28 66 72 61 6d 65 2d 64 61 74 61 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d ..(let*.((frame-data.(emms-info-
87620 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 0a 20 20 20 20 20 native-id3v2--decode-frame......
87640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 20 .......................filename.
87660 6f 66 66 73 65 74 20 75 6e 73 79 6e 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 offset.unsync))................(
87680 6e 65 78 74 2d 66 72 61 6d 65 2d 6f 66 66 73 65 74 20 28 63 61 72 20 66 72 61 6d 65 2d 64 61 74 next-frame-offset.(car.frame-dat
876a0 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 20 28 63 64 72 a))................(comment.(cdr
876c0 20 66 72 61 6d 65 2d 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 .frame-data)))...........(when.c
876e0 6f 6d 6d 65 6e 74 20 28 70 75 73 68 20 63 6f 6d 6d 65 6e 74 20 63 6f 6d 6d 65 6e 74 73 29 29 0a omment.(push.comment.comments)).
87700 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 6e 65 78 74 2d 66 72 61 6d ..........(setq.offset.next-fram
87720 65 2d 6f 66 66 73 65 74 29 29 29 29 0a 20 20 20 20 63 6f 6d 6d 65 6e 74 73 29 29 0a 0a 28 64 65 e-offset)))).....comments))..(de
87740 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 6d fun.emms-info-native-id3v2--fram
87760 65 2d 68 65 61 64 65 72 2d 73 69 7a 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c e-header-size.()..."Return.the.l
87780 61 73 74 20 64 65 63 6f 64 65 64 20 68 65 61 64 65 72 20 73 69 7a 65 20 69 6e 20 62 79 74 65 73 ast.decoded.header.size.in.bytes
877a0 2e 22 0a 20 20 28 69 66 20 28 3d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 ."...(if.(=.emms-info-native-id3
877c0 76 32 2d 2d 76 65 72 73 69 6f 6e 20 32 29 20 36 20 31 30 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d v2--version.2).6.10))..(defun.em
877e0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 ms-info-native-id3v2--decode-fra
87800 6d 65 20 28 66 69 6c 65 6e 61 6d 65 20 6f 66 66 73 65 74 20 75 6e 73 79 6e 63 29 0a 20 20 22 52 me.(filename.offset.unsync)..."R
87820 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 61 20 73 69 6e 67 6c 65 20 49 44 33 76 32 20 66 72 ead.and.decode.a.single.ID3v2.fr
87840 61 6d 65 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 53 74 61 72 74 20 72 65 61 64 69 6e 67 ame.from.FILENAME..Start.reading
87860 20 74 68 65 20 66 72 61 6d 65 20 66 72 6f 6d 20 62 79 74 65 20 6f 66 66 73 65 74 20 4f 46 46 53 .the.frame.from.byte.offset.OFFS
87880 45 54 2e 20 20 53 65 65 0a 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 ET...See.`emms-info-native-id3v2
878a0 2d 2d 72 65 61 64 2d 66 72 61 6d 65 2d 64 61 74 61 27 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f --read-frame-data'.for.details.o
878c0 6e 20 55 4e 53 59 4e 43 2e 0a 0a 53 6b 69 70 20 66 72 61 6d 65 73 20 74 68 61 74 20 64 6f 20 6e n.UNSYNC...Skip.frames.that.do.n
878e0 6f 74 20 6d 61 70 20 74 6f 20 61 6e 79 20 69 6e 66 6f 2d 69 64 20 69 6e 0a 60 65 6d 6d 73 2d 69 ot.map.to.any.info-id.in.`emms-i
87900 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 6d 65 2d 74 6f 2d 69 6e 66 6f 27 nfo-native-id3v2--frame-to-info'
87920 2e 0a 0a 52 65 74 75 72 6e 20 63 6f 6e 73 20 63 65 6c 6c 20 28 4e 45 58 54 20 2e 20 46 52 41 4d ...Return.cons.cell.(NEXT...FRAM
87940 45 29 2c 20 77 68 65 72 65 20 4e 45 58 54 20 69 73 20 74 68 65 20 6f 66 66 73 65 74 20 6f 66 20 E),.where.NEXT.is.the.offset.of.
87960 74 68 65 0a 6e 65 78 74 20 66 72 61 6d 65 20 28 69 66 20 61 6e 79 29 20 61 6e 64 20 46 52 41 4d the.next.frame.(if.any).and.FRAM
87980 45 20 69 73 20 74 68 65 20 64 65 63 6f 64 65 64 20 66 72 61 6d 65 2e 20 20 53 65 65 0a 60 65 6d E.is.the.decoded.frame...See.`em
879a0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 ms-info-native-id3v2--decode-fra
879c0 6d 65 2d 64 61 74 61 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 65 63 6f 64 65 64 20 28 65 6d me-data'."...(let*.((decoded.(em
879e0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 ms-info-native-id3v2--decode-fra
87a00 6d 65 2d 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c me-header....................fil
87a20 65 6e 61 6d 65 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 6f 66 ename.offset))..........(data-of
87a40 66 73 65 74 20 28 63 61 72 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 fset.(car.decoded))..........(he
87a60 61 64 65 72 20 28 63 64 72 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 72 ader.(cdr.decoded))..........(fr
87a80 61 6d 65 2d 69 64 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 ame-id.(bindat-get-field.header.
87aa0 27 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 69 64 20 28 63 64 72 20 28 61 73 'id))..........(info-id.(cdr.(as
87ac0 73 6f 63 20 66 72 61 6d 65 2d 69 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 soc.frame-id.emms-info-native-id
87ae0 33 76 32 2d 2d 66 72 61 6d 65 2d 74 6f 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 3v2--frame-to-info)))..........(
87b00 73 69 7a 65 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 73 size.(bindat-get-field.header.'s
87b20 69 7a 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 69 6e 66 6f 2d 69 64 20 75 6e 73 79 6e ize))).....(if.(or.info-id.unsyn
87b40 63 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 75 6e 73 79 6e c).........;;.Note.that.if.unsyn
87b60 63 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 77 65 20 68 61 76 65 20 74 6f 20 61 6c 77 61 79 73 20 c.is.non-nil,.we.have.to.always.
87b80 72 65 61 64 20 74 68 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 66 72 61 6d 65 20 74 6f 20 64 65 74 read.the.........;;.frame.to.det
87ba0 65 72 6d 69 6e 65 20 6e 65 78 74 2d 66 72 61 6d 65 2d 6f 66 66 73 65 74 2e 0a 20 20 20 20 20 20 ermine.next-frame-offset........
87bc0 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 ..(let*.((data.(emms-info-native
87be0 2d 69 64 33 76 32 2d 2d 72 65 61 64 2d 66 72 61 6d 65 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 -id3v2--read-frame-data.........
87c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 20 64 61 74 61 2d 6f 66 66 73 ..............filename.data-offs
87c20 65 74 20 73 69 7a 65 20 75 6e 73 79 6e 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.size.unsync))................
87c40 28 6e 65 78 74 2d 66 72 61 6d 65 2d 6f 66 66 73 65 74 20 28 63 61 72 20 64 61 74 61 29 29 0a 20 (next-frame-offset.(car.data))..
87c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d ..............(value.(emms-info-
87c80 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 64 61 74 61 0a native-id3v2--decode-frame-data.
87ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 64 61 74 61 .......................(cdr.data
87cc0 29 20 69 6e 66 6f 2d 69 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6e 65 78 ).info-id)))...........(cons.nex
87ce0 74 2d 66 72 61 6d 65 2d 6f 66 66 73 65 74 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 t-frame-offset.value)).......;;.
87d00 53 6b 69 70 20 74 68 65 20 66 72 61 6d 65 2e 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 2b 20 64 Skip.the.frame........(cons.(+.d
87d20 61 74 61 2d 6f 66 66 73 65 74 20 73 69 7a 65 29 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e ata-offset.size).nil))))..(defun
87d40 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d .emms-info-native-id3v2--decode-
87d60 66 72 61 6d 65 2d 68 65 61 64 65 72 20 28 66 69 6c 65 6e 61 6d 65 20 62 65 67 69 6e 29 0a 20 20 frame-header.(filename.begin)...
87d80 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 49 44 33 76 32 20 66 72 61 6d 65 20 68 65 61 "Read.and.decode.ID3v2.frame.hea
87da0 64 65 72 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 53 74 61 72 74 20 72 65 61 64 69 6e 67 der.from.FILENAME..Start.reading
87dc0 20 66 72 6f 6d 20 62 79 74 65 20 6f 66 66 73 65 74 20 42 45 47 49 4e 2e 0a 0a 52 65 74 75 72 6e .from.byte.offset.BEGIN...Return
87de0 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 28 4f 46 46 53 45 54 20 2e 20 48 45 41 44 45 52 29 2c 20 .a.cons.cell.(OFFSET...HEADER),.
87e00 77 68 65 72 65 20 4f 46 46 53 45 54 20 69 73 20 74 68 65 20 62 79 74 65 0a 6f 66 66 73 65 74 20 where.OFFSET.is.the.byte.offset.
87e20 61 66 74 65 72 20 74 68 65 20 66 72 61 6d 65 20 68 65 61 64 65 72 2c 20 61 6e 64 20 48 45 41 44 after.the.frame.header,.and.HEAD
87e40 45 52 20 69 73 20 74 68 65 20 64 65 63 6f 64 65 64 20 66 72 61 6d 65 0a 68 65 61 64 65 72 2e 22 ER.is.the.decoded.frame.header."
87e60 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 ...(with-temp-buffer.....(set-bu
87e80 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 74 20 28 28 65 ffer-multibyte.nil).....(let.((e
87ea0 6e 64 20 28 2b 20 62 65 67 69 6e 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 nd.(+.begin.(emms-info-native-id
87ec0 33 76 32 2d 2d 66 72 61 6d 65 2d 68 65 61 64 65 72 2d 73 69 7a 65 29 29 29 29 0a 20 20 20 20 20 3v2--frame-header-size))))......
87ee0 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 .(insert-file-contents-literally
87f00 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 62 65 67 69 6e 20 65 6e 64 29 0a 20 20 20 20 20 20 28 .filename.nil.begin.end).......(
87f20 63 6f 6e 73 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 cons.end.............(bindat-unp
87f40 61 63 6b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 6d ack.emms-info-native-id3v2--fram
87f60 65 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 e-header-bindat-spec............
87f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 ................(buffer-string))
87fa0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 ))))..(defun.emms-info-native-id
87fc0 33 76 32 2d 2d 72 65 61 64 2d 66 72 61 6d 65 2d 64 61 74 61 20 28 66 69 6c 65 6e 61 6d 65 20 62 3v2--read-frame-data.(filename.b
87fe0 65 67 69 6e 20 6e 75 6d 2d 62 79 74 65 73 20 75 6e 73 79 6e 63 29 0a 20 20 22 52 65 61 64 20 4e egin.num-bytes.unsync)..."Read.N
88000 55 4d 2d 42 59 54 45 53 20 6f 66 20 72 61 77 20 49 44 33 76 32 20 66 72 61 6d 65 20 64 61 74 61 UM-BYTES.of.raw.ID3v2.frame.data
88020 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 53 74 61 72 74 20 72 65 61 64 69 6e 67 20 66 72 .from.FILENAME..Start.reading.fr
88040 6f 6d 20 6f 66 66 73 65 74 20 42 45 47 49 4e 2e 20 20 49 66 20 55 4e 53 59 4e 43 20 69 73 20 6e om.offset.BEGIN...If.UNSYNC.is.n
88060 6f 6e 2d 6e 69 6c 2c 20 61 6c 6c 20 5c 22 46 46 0a 30 30 5c 22 20 62 79 74 65 20 63 6f 6d 62 69 on-nil,.all.\"FF.00\".byte.combi
88080 6e 61 74 69 6f 6e 73 20 61 72 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 5c 22 46 46 5c 22 2e 20 nations.are.replaced.by.\"FF\"..
880a0 20 52 65 70 6c 61 63 65 64 20 62 79 74 65 0a 70 61 69 72 73 20 61 72 65 20 63 6f 75 6e 74 65 64 .Replaced.byte.pairs.are.counted
880c0 20 61 73 20 6f 6e 65 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 74 77 6f 2c 20 74 6f 77 61 72 64 73 .as.one,.instead.of.two,.towards
880e0 20 4e 55 4d 2d 42 59 54 45 53 2e 0a 0a 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 .NUM-BYTES...Return.a.cons.cell.
88100 28 4f 46 46 53 45 54 20 2e 20 44 41 54 41 29 2c 20 77 68 65 72 65 20 4f 46 46 53 45 54 20 69 73 (OFFSET...DATA),.where.OFFSET.is
88120 20 74 68 65 20 62 79 74 65 0a 6f 66 66 73 65 74 20 61 66 74 65 72 20 4e 55 4d 2d 42 59 54 45 53 .the.byte.offset.after.NUM-BYTES
88140 20 62 79 74 65 73 20 68 61 76 65 20 62 65 65 6e 20 72 65 61 64 2c 20 61 6e 64 20 44 41 54 41 20 .bytes.have.been.read,.and.DATA.
88160 69 73 20 74 68 65 20 72 61 77 0a 64 61 74 61 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 is.the.raw.data."...(with-temp-b
88180 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 uffer.....(set-buffer-multibyte.
881a0 6e 69 6c 29 0a 20 20 20 20 28 69 66 20 75 6e 73 79 6e 63 0a 20 20 20 20 20 20 20 20 3b 3b 20 52 nil).....(if.unsync.........;;.R
881c0 65 76 65 72 73 65 20 75 6e 73 79 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 everse.unsynchronization........
881e0 20 20 28 6c 65 74 20 28 28 70 65 65 6b 2d 65 6e 64 20 28 2b 20 62 65 67 69 6e 20 28 2a 20 32 20 ..(let.((peek-end.(+.begin.(*.2.
88200 6e 75 6d 2d 62 79 74 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 num-bytes)))...............(end.
88220 6e 75 6d 2d 62 79 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 num-bytes))...........(insert-fi
88240 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e le-contents-literally.filename.n
88260 69 6c 20 62 65 67 69 6e 20 70 65 65 6b 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f il.begin.peek-end)...........(go
88280 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 to-char.(point-min))...........(
882a0 77 68 69 6c 65 20 28 61 6e 64 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 73 while.(and.(re-search-forward.(s
882c0 74 72 69 6e 67 20 32 35 35 20 30 29 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 tring.255.0).nil.t).............
882e0 20 20 20 20 20 20 20 20 20 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 6e 64 29 29 0a 20 20 20 20 20 ..........(<.(point).end))......
88300 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 28 73 74 72 69 6e 67 20 32 35 .......(replace-match.(string.25
88320 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 31 2b 20 65 6e 5)).............(setq.end.(1+.en
88340 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 31 d)))...........(delete-region.(1
88360 2b 20 6e 75 6d 2d 62 79 74 65 73 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 +.num-bytes).(point-max)).......
88380 20 20 20 20 28 63 6f 6e 73 20 28 2b 20 62 65 67 69 6e 20 65 6e 64 29 20 28 62 75 66 66 65 72 2d ....(cons.(+.begin.end).(buffer-
883a0 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 6f 20 75 6e 73 79 6e 63 68 72 6f 6e string))).......;;.No.unsynchron
883c0 69 7a 61 74 69 6f 6e 3a 20 72 65 61 64 20 74 68 65 20 64 61 74 61 20 61 73 2d 69 73 2e 0a 20 20 ization:.read.the.data.as-is....
883e0 20 20 20 20 28 6c 65 74 20 28 28 65 6e 64 20 28 2b 20 62 65 67 69 6e 20 6e 75 6d 2d 62 79 74 65 ....(let.((end.(+.begin.num-byte
88400 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e s))).........(insert-file-conten
88420 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 62 65 67 69 6e 20 ts-literally.filename.nil.begin.
88440 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 65 6e 64 20 28 62 75 66 66 65 72 2d 73 end).........(cons.end.(buffer-s
88460 74 72 69 6e 67 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 tring))))))..(defun.emms-info-na
88480 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 64 61 74 61 20 28 64 tive-id3v2--decode-frame-data.(d
884a0 61 74 61 20 69 6e 66 6f 2d 69 64 29 0a 20 20 22 44 65 63 6f 64 65 20 49 44 33 76 32 20 74 65 78 ata.info-id)..."Decode.ID3v2.tex
884c0 74 20 66 72 61 6d 65 20 64 61 74 61 20 44 41 54 41 2e 0a 49 66 20 49 4e 46 4f 2d 49 44 20 69 73 t.frame.data.DATA..If.INFO-ID.is
884e0 20 60 75 73 65 72 2d 64 65 66 69 6e 65 64 27 2c 20 61 73 73 75 6d 65 20 74 68 61 74 20 44 41 54 .`user-defined',.assume.that.DAT
88500 41 20 69 73 20 61 20 54 58 58 58 20 66 72 61 6d 65 0a 77 69 74 68 20 6b 65 79 2f 76 61 6c 75 65 A.is.a.TXXX.frame.with.key/value
88520 2d 70 61 69 72 2e 20 20 45 78 74 72 61 63 74 20 74 68 65 20 6b 65 79 20 61 6e 64 2c 20 69 66 20 -pair...Extract.the.key.and,.if.
88540 69 74 20 69 73 20 61 20 6d 61 70 70 65 64 0a 65 6c 65 6d 65 6e 74 20 69 6e 20 60 65 6d 6d 73 2d it.is.a.mapped.element.in.`emms-
88560 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 6d 65 2d 74 6f 2d 69 6e 66 6f info-native-id3v2--frame-to-info
88580 27 2c 20 75 73 65 20 69 74 20 61 73 20 49 4e 46 4f 2d 49 44 2e 0a 0a 49 66 20 49 4e 46 4f 2d 49 ',.use.it.as.INFO-ID...If.INFO-I
885a0 44 20 69 73 20 60 67 65 6e 72 65 27 2c 20 61 73 73 75 6d 65 20 74 68 61 74 20 44 41 54 41 20 69 D.is.`genre',.assume.that.DATA.i
885c0 73 20 65 69 74 68 65 72 20 61 6e 20 69 6e 74 65 67 72 61 6c 0a 49 44 33 76 31 20 67 65 6e 72 65 s.either.an.integral.ID3v1.genre
885e0 20 72 65 66 65 72 65 6e 63 65 20 6f 72 20 61 20 70 6c 61 69 6e 20 67 65 6e 72 65 20 73 74 72 69 .reference.or.a.plain.genre.stri
88600 6e 67 2e 20 20 49 6e 20 74 68 65 20 66 6f 72 6d 65 72 0a 63 61 73 65 20 6d 61 70 20 74 68 65 20 ng...In.the.former.case.map.the.
88620 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 20 73 74 72 69 6e 67 20 76 69 61 20 60 65 6d 6d 73 2d reference.to.a.string.via.`emms-
88640 69 6e 66 6f 2d 69 64 33 76 31 2d 2d 67 65 6e 72 65 73 27 3b 0a 69 6e 20 74 68 65 20 6c 61 74 74 info-id3v1--genres';.in.the.latt
88660 65 72 20 63 61 73 65 20 75 73 65 20 74 68 65 20 67 65 6e 72 65 20 73 74 72 69 6e 67 20 76 65 72 er.case.use.the.genre.string.ver
88680 62 61 74 69 6d 2e 0a 0a 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 28 49 4e 46 4f batim...Return.a.cons.cell.(INFO
886a0 2d 49 44 20 2e 20 56 41 4c 55 45 29 20 77 68 65 72 65 20 56 41 4c 55 45 20 69 73 20 74 68 65 20 -ID...VALUE).where.VALUE.is.the.
886c0 64 65 63 6f 64 65 64 0a 73 74 72 69 6e 67 2c 20 6f 72 20 6e 69 6c 20 69 66 20 74 68 65 20 64 65 decoded.string,.or.nil.if.the.de
886e0 63 6f 64 69 6e 67 20 66 61 69 6c 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 69 6e 66 6f 2d 69 64 0a coding.failed."...(when.info-id.
88700 20 20 20 20 28 6c 65 74 20 28 28 73 74 72 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 ....(let.((str.(emms-info-native
88720 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 73 74 72 69 6e 67 20 64 61 74 61 29 29 29 0a 20 20 -id3v2--decode-string.data)))...
88740 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 73 74 72 29 20 ....(cond.((string-empty-p.str).
88760 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 69 6e 66 6f 2d nil).............((stringp.info-
88780 69 64 29 20 28 63 6f 6e 73 20 69 6e 66 6f 2d 69 64 20 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 id).(cons.info-id.str)).........
887a0 20 20 20 20 28 28 65 71 20 69 6e 66 6f 2d 69 64 20 27 67 65 6e 72 65 29 0a 20 20 20 20 20 20 20 ....((eq.info-id.'genre)........
887c0 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 28 3f 5c 5c 28 5b ......(if.(string-match."^(?\\([
887e0 30 2d 39 5d 2b 5c 5c 29 29 3f 22 20 73 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0-9]+\\))?".str)................
88800 20 20 28 6c 65 74 20 28 28 76 31 2d 67 65 6e 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(let.((v1-genre...............
88820 20 20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 ..........(assoc.(string-to-numb
88840 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 74 72 29 29 0a 20 20 20 20 20 20 20 er.(match-string.1.str))........
88860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 ........................emms-inf
88880 6f 2d 69 64 33 76 31 2d 2d 67 65 6e 72 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 o-id3v1--genres)))..............
888a0 20 20 20 20 20 20 28 77 68 65 6e 20 76 31 2d 67 65 6e 72 65 20 28 63 6f 6e 73 20 22 67 65 6e 72 ......(when.v1-genre.(cons."genr
888c0 65 22 20 28 63 64 72 20 76 31 2d 67 65 6e 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 e".(cdr.v1-genre))))............
888e0 20 20 20 20 28 63 6f 6e 73 20 22 67 65 6e 72 65 22 20 73 74 72 29 29 29 0a 20 20 20 20 20 20 20 ....(cons."genre".str)))........
88900 20 20 20 20 20 28 28 65 71 20 69 6e 66 6f 2d 69 64 20 27 75 73 65 72 2d 64 65 66 69 6e 65 64 29 .....((eq.info-id.'user-defined)
88920 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 2d 76 61 6c 20 28 73 ..............(let*.((key-val.(s
88940 70 6c 69 74 2d 73 74 72 69 6e 67 20 73 74 72 20 28 73 74 72 69 6e 67 20 30 29 29 29 0a 20 20 20 plit-string.str.(string.0)))....
88960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 20 28 64 6f 77 6e 63 61 73 65 20 .................(key.(downcase.
88980 28 63 61 72 20 6b 65 79 2d 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (car.key-val))).................
889a0 20 20 20 20 28 76 61 6c 20 28 63 61 64 72 20 6b 65 79 2d 76 61 6c 29 29 29 0a 20 20 20 20 20 20 ....(val.(cadr.key-val))).......
889c0 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 72 61 73 73 6f 63 20 6b 65 79 20 .........(when.(and.(rassoc.key.
889e0 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 6d 65 2d 74 6f emms-info-native-id3v2--frame-to
88a00 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -info)..........................
88a20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 76 61 6c 29 29 29 0a 20 20 20 .(not.(string-empty-p.val)))....
88a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6b 65 79 20 76 61 6c 29 29 29 29 29 ..............(cons.key.val)))))
88a60 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 )))..(defun.emms-info-native-id3
88a80 76 32 2d 2d 64 65 63 6f 64 65 2d 73 74 72 69 6e 67 20 28 62 79 74 65 73 29 0a 20 20 22 44 65 63 v2--decode-string.(bytes)..."Dec
88aa0 6f 64 65 20 49 44 33 76 32 20 74 65 78 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 ode.ID3v2.text.information.from.
88ac0 42 59 54 45 53 2e 0a 52 65 6d 6f 76 65 20 74 68 65 20 74 65 72 6d 69 6e 61 74 69 6e 67 20 6e 75 BYTES..Remove.the.terminating.nu
88ae0 6c 6c 20 62 79 74 65 2c 20 69 66 20 61 6e 79 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 ll.byte,.if.any...Return.the.tex
88b00 74 20 61 73 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 65 6e 63 6f 64 69 6e 67 t.as.string."...(let*.((encoding
88b20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 74 65 78 74 2d 65 .(emms-info-native-id3v2--text-e
88b40 6e 63 6f 64 69 6e 67 20 62 79 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 ncoding.bytes))..........(decode
88b60 64 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 73 65 71 2d 72 65 73 d.(decode-coding-string.(seq-res
88b80 74 20 62 79 74 65 73 29 20 65 6e 63 6f 64 69 6e 67 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e t.bytes).encoding))).....(if.(an
88ba0 64 20 28 3e 20 28 6c 65 6e 67 74 68 20 64 65 63 6f 64 65 64 29 20 30 29 0a 20 20 20 20 20 20 20 d.(>.(length.decoded).0)........
88bc0 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 64 65 63 6f 64 65 64 20 ......(equal.(substring.decoded.
88be0 2d 31 29 20 22 5c 30 22 29 29 0a 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 64 65 -1)."\0")).........(substring.de
88c00 63 6f 64 65 64 20 30 20 2d 31 29 0a 20 20 20 20 20 20 64 65 63 6f 64 65 64 29 29 29 0a 0a 28 64 coded.0.-1).......decoded)))..(d
88c20 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 74 65 78 efun.emms-info-native-id3v2--tex
88c40 74 2d 65 6e 63 6f 64 69 6e 67 20 28 62 79 74 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 t-encoding.(bytes)..."Return.the
88c60 20 65 6e 63 6f 64 69 6e 67 20 66 6f 72 20 74 65 78 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 42 .encoding.for.text.information.B
88c80 59 54 45 53 2e 22 0a 20 20 28 61 6c 69 73 74 2d 67 65 74 20 28 73 65 71 2d 66 69 72 73 74 20 62 YTES."...(alist-get.(seq-first.b
88ca0 79 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 ytes)..............emms-info-nat
88cc0 69 76 65 2d 69 64 33 76 32 2d 2d 74 65 78 74 2d 65 6e 63 6f 64 69 6e 67 73 29 29 0a 0a 0c 0a 3b ive-id3v2--text-encodings))....;
88ce0 3b 3b 20 4d 50 33 20 63 6f 64 65 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f ;;.MP3.code..(defconst.emms-info
88d00 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 76 65 72 73 69 6f 6e 73 0a 20 20 27 28 28 30 20 2e 20 6d -native-mp3--versions...'((0...m
88d20 70 65 67 32 35 29 0a 20 20 20 20 28 31 20 2e 20 72 65 73 65 72 76 65 64 29 0a 20 20 20 20 28 32 peg25).....(1...reserved).....(2
88d40 20 2e 20 6d 70 65 67 32 29 0a 20 20 20 20 28 33 20 2e 20 6d 70 65 67 31 29 29 0a 20 20 22 4d 50 ...mpeg2).....(3...mpeg1))..."MP
88d60 45 47 20 76 65 72 73 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 EG.versions.")..(defconst.emms-i
88d80 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 6c 61 79 65 72 73 0a 20 20 27 28 28 30 20 2e 20 nfo-native-mp3--layers...'((0...
88da0 72 65 73 65 72 76 65 64 29 0a 20 20 20 20 28 31 20 2e 20 6c 61 79 65 72 49 49 49 29 0a 20 20 20 reserved).....(1...layerIII)....
88dc0 20 28 32 20 2e 20 6c 61 79 65 72 49 49 29 0a 20 20 20 20 28 33 20 2e 20 6c 61 79 65 72 49 29 29 .(2...layerII).....(3...layerI))
88de0 0a 20 20 22 4d 50 45 47 20 41 75 64 69 6f 20 4c 61 79 65 72 73 2e 22 29 0a 0a 28 64 65 66 63 6f ..."MPEG.Audio.Layers.")..(defco
88e00 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 63 68 61 6e 6e 65 nst.emms-info-native-mp3--channe
88e20 6c 2d 6d 6f 64 65 73 0a 20 20 27 28 28 30 20 2e 20 73 74 65 72 65 6f 29 0a 20 20 20 20 28 31 20 l-modes...'((0...stereo).....(1.
88e40 2e 20 6a 6f 69 6e 74 2d 73 74 65 72 65 6f 29 0a 20 20 20 20 28 32 20 2e 20 64 75 61 6c 2d 63 68 ..joint-stereo).....(2...dual-ch
88e60 61 6e 6e 65 6c 29 0a 20 20 20 20 28 33 20 2e 20 73 69 6e 67 6c 65 2d 63 68 61 6e 6e 65 6c 29 29 annel).....(3...single-channel))
88e80 0a 20 20 22 4d 50 45 47 20 63 68 61 6e 6e 65 6c 20 6d 6f 64 65 73 2e 22 29 0a 0a 28 64 65 66 63 ..."MPEG.channel.modes.")..(defc
88ea0 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 62 69 74 2d 72 onst.emms-info-native-mp3--bit-r
88ec0 61 74 65 73 0a 20 20 27 28 28 6d 70 65 67 31 2d 6c 61 79 65 72 49 20 20 20 20 20 20 20 20 66 72 ates...'((mpeg1-layerI........fr
88ee0 65 65 20 20 33 32 20 20 36 34 20 20 39 36 20 20 31 32 38 20 20 31 36 30 20 20 31 39 32 20 20 32 ee..32..64..96..128..160..192..2
88f00 32 34 20 20 32 35 36 20 20 32 38 38 20 20 33 32 30 20 20 33 35 32 20 20 33 38 34 20 20 34 31 36 24..256..288..320..352..384..416
88f20 20 20 34 34 38 20 20 72 65 73 65 72 76 65 64 29 0a 20 20 20 20 28 6d 70 65 67 31 2d 6c 61 79 65 ..448..reserved).....(mpeg1-laye
88f40 72 49 49 20 20 20 20 20 20 20 66 72 65 65 20 20 33 32 20 20 34 38 20 20 35 36 20 20 36 34 20 20 rII.......free..32..48..56..64..
88f60 20 38 30 20 20 20 39 36 20 20 20 31 31 32 20 20 31 32 38 20 20 31 36 30 20 20 31 39 32 20 20 32 .80...96...112..128..160..192..2
88f80 32 34 20 20 32 35 36 20 20 33 32 30 20 20 33 38 34 20 20 72 65 73 65 72 76 65 64 29 0a 20 20 20 24..256..320..384..reserved)....
88fa0 20 28 6d 70 65 67 31 2d 6c 61 79 65 72 49 49 49 20 20 20 20 20 20 66 72 65 65 20 20 33 32 20 20 .(mpeg1-layerIII......free..32..
88fc0 34 30 20 20 34 38 20 20 35 36 20 20 20 36 34 20 20 20 38 30 20 20 20 39 36 20 20 20 31 31 32 20 40..48..56...64...80...96...112.
88fe0 20 31 32 38 20 20 31 36 30 20 20 31 39 32 20 20 32 32 34 20 20 32 35 36 20 20 33 32 30 20 20 72 .128..160..192..224..256..320..r
89000 65 73 65 72 76 65 64 29 0a 20 20 20 20 28 6d 70 65 67 32 78 2d 6c 61 79 65 72 49 20 20 20 20 20 eserved).....(mpeg2x-layerI.....
89020 20 20 66 72 65 65 20 20 33 32 20 20 34 38 20 20 35 36 20 20 36 34 20 20 20 38 30 20 20 20 39 36 ..free..32..48..56..64...80...96
89040 20 20 20 31 31 32 20 20 31 32 38 20 20 31 34 34 20 20 31 36 30 20 20 31 37 36 20 20 31 39 32 20 ...112..128..144..160..176..192.
89060 20 32 32 34 20 20 32 35 36 20 20 72 65 73 65 72 76 65 64 29 0a 20 20 20 20 28 6d 70 65 67 32 78 .224..256..reserved).....(mpeg2x
89080 2d 6c 61 79 65 72 49 49 2d 49 49 49 20 20 66 72 65 65 20 20 38 20 20 20 31 36 20 20 32 34 20 20 -layerII-III..free..8...16..24..
890a0 33 32 20 20 20 34 30 20 20 20 34 38 20 20 20 35 36 20 20 20 36 34 20 20 20 38 30 20 20 20 39 36 32...40...48...56...64...80...96
890c0 20 20 20 31 31 32 20 20 31 32 38 20 20 31 34 34 20 20 31 36 30 20 20 72 65 73 65 72 76 65 64 29 ...112..128..144..160..reserved)
890e0 29 0a 20 20 22 42 69 74 20 72 61 74 65 73 20 66 6f 72 20 65 61 63 68 20 4d 50 45 47 20 76 65 72 )..."Bit.rates.for.each.MPEG.ver
89100 73 69 6f 6e 2f 6c 61 79 65 72 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 sion/layer.combination.")..(defc
89120 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 73 61 6d 70 6c onst.emms-info-native-mp3--sampl
89140 65 73 2d 70 65 72 2d 66 72 61 6d 65 0a 20 20 27 28 28 6c 61 79 65 72 49 20 20 20 20 20 20 20 20 es-per-frame...'((layerI........
89160 20 20 2e 20 33 38 34 29 0a 20 20 20 20 28 6c 61 79 65 72 49 49 20 20 20 20 20 20 20 20 20 2e 20 ....384).....(layerII...........
89180 31 31 35 32 29 0a 20 20 20 20 28 6c 61 79 65 72 49 49 49 2d 6d 70 65 67 31 20 20 2e 20 31 31 35 1152).....(layerIII-mpeg1....115
891a0 32 29 0a 20 20 20 20 28 6c 61 79 65 72 49 49 49 2d 6d 70 65 67 32 78 20 2e 20 35 37 36 29 29 0a 2).....(layerIII-mpeg2x...576)).
891c0 20 20 22 53 61 6d 70 6c 65 73 20 70 65 72 20 66 72 61 6d 65 20 66 6f 72 20 65 61 63 68 20 4d 50 .."Samples.per.frame.for.each.MP
891e0 45 47 20 76 65 72 73 69 6f 6e 2f 6c 61 79 65 72 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2e 22 29 0a EG.version/layer.combination.").
89200 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d .(defconst.emms-info-native-mp3-
89220 2d 73 61 6d 70 6c 65 2d 72 61 74 65 73 0a 20 20 27 28 28 6d 70 65 67 31 20 20 20 34 34 31 30 30 -sample-rates...'((mpeg1...44100
89240 20 20 34 38 30 30 30 20 20 33 32 30 30 30 20 20 72 65 73 65 72 76 65 64 29 0a 20 20 20 20 28 6d ..48000..32000..reserved).....(m
89260 70 65 67 32 20 20 20 32 32 30 35 30 20 20 32 34 30 30 30 20 20 31 36 30 30 30 20 20 72 65 73 65 peg2...22050..24000..16000..rese
89280 72 76 65 64 29 0a 20 20 20 20 28 6d 70 65 67 32 35 20 20 31 31 30 32 35 20 20 31 32 30 30 30 20 rved).....(mpeg25..11025..12000.
892a0 20 38 30 30 30 20 20 20 72 65 73 65 72 76 65 64 29 29 0a 20 20 22 53 61 6d 70 6c 65 20 72 61 74 .8000...reserved))..."Sample.rat
892c0 65 20 66 6f 72 20 65 61 63 68 20 4d 50 45 47 20 76 65 72 73 69 6f 6e 2f 6c 61 79 65 72 20 63 6f e.for.each.MPEG.version/layer.co
892e0 6d 62 69 6e 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 mbination.")..(defconst.emms-inf
89300 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 76 62 72 69 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 o-native-mp3--vbri-header-bindat
89320 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 -spec...(if.(eval-when-compile.(
89340 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 fboundp.'bindat-type)).......(bi
89360 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 69 64 20 73 74 72 20 34 29 0a 20 20 20 ndat-type.........(id.str.4)....
89380 20 20 20 20 20 28 76 65 72 73 69 6f 6e 20 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 .....(version.uint.16).........(
893a0 64 65 6c 61 79 20 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 71 75 61 6c 69 74 79 20 delay.uint.16).........(quality.
893c0 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 62 79 74 65 73 20 75 69 6e 74 20 33 32 29 uint.16).........(bytes.uint.32)
893e0 0a 20 20 20 20 20 20 20 20 28 66 72 61 6d 65 73 20 75 69 6e 74 20 33 32 29 29 0a 20 20 20 20 27 .........(frames.uint.32)).....'
89400 28 28 69 64 20 73 74 72 20 34 29 0a 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 20 75 31 36 29 0a ((id.str.4).......(version.u16).
89420 20 20 20 20 20 20 28 64 65 6c 61 79 20 75 31 36 29 0a 20 20 20 20 20 20 28 71 75 61 6c 69 74 79 ......(delay.u16).......(quality
89440 20 75 31 36 29 0a 20 20 20 20 20 20 28 62 79 74 65 73 20 75 33 32 29 0a 20 20 20 20 20 20 28 66 .u16).......(bytes.u32).......(f
89460 72 61 6d 65 73 20 75 33 32 29 29 29 0a 20 20 22 56 42 52 20 68 65 61 64 65 72 2c 20 56 42 52 49 rames.u32)))..."VBR.header,.VBRI
89480 20 66 6f 72 6d 61 74 2e 0a 54 68 69 73 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 70 .format..This.specification.is.p
894a0 75 72 70 6f 73 65 66 75 6c 6c 79 20 69 6e 63 6f 6d 70 6c 65 74 65 2c 20 61 73 20 77 65 20 61 72 urposefully.incomplete,.as.we.ar
894c0 65 0a 69 6e 74 65 72 65 73 74 65 64 20 6f 6e 6c 79 20 69 6e 20 74 68 65 20 66 72 61 6d 65 20 63 e.interested.only.in.the.frame.c
894e0 6f 75 6e 74 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 ount.")..(defconst.emms-info-nat
89500 69 76 65 2d 6d 70 33 2d 2d 78 69 6e 67 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 ive-mp3--xing-header-bindat-spec
89520 0a 20 20 20 20 28 69 66 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f .....(if.(eval-when-compile.(fbo
89540 75 6e 64 70 20 27 62 69 6e 64 61 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 28 62 69 6e undp.'bindat-type)).........(bin
89560 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 64 20 76 65 63 20 34 29 0a 20 20 dat-type...........(id.vec.4)...
89580 20 20 20 20 20 20 20 20 28 66 6c 61 67 73 20 62 69 74 73 20 34 29 0a 20 20 20 20 20 20 20 20 20 ........(flags.bits.4)..........
895a0 20 28 66 72 61 6d 65 73 20 75 69 6e 74 20 33 32 29 29 0a 20 20 20 20 20 20 27 28 28 69 64 20 76 .(frames.uint.32)).......'((id.v
895c0 65 63 20 34 29 0a 20 20 20 20 20 20 20 20 28 66 6c 61 67 73 20 62 69 74 73 20 34 29 0a 20 20 20 ec.4).........(flags.bits.4)....
895e0 20 20 20 20 20 28 66 72 61 6d 65 73 20 75 33 32 29 29 29 0a 20 20 22 56 42 52 20 68 65 61 64 65 .....(frames.u32)))..."VBR.heade
89600 72 2c 20 58 69 6e 67 2f 49 6e 66 6f 20 66 6f 72 6d 61 74 2e 0a 54 68 69 73 20 73 70 65 63 69 66 r,.Xing/Info.format..This.specif
89620 69 63 61 74 69 6f 6e 20 69 73 20 70 75 72 70 6f 73 65 66 75 6c 6c 79 20 69 6e 63 6f 6d 70 6c 65 ication.is.purposefully.incomple
89640 74 65 2c 20 61 73 20 77 65 20 61 72 65 0a 69 6e 74 65 72 65 73 74 65 64 20 6f 6e 6c 79 20 69 6e te,.as.we.are.interested.only.in
89660 20 74 68 65 20 66 72 61 6d 65 20 63 6f 75 6e 74 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 .the.frame.count.")..(defun.emms
89680 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 64 65 63 6f 64 65 2d 6d 65 74 61 64 61 74 61 -info-native-mp3-decode-metadata
896a0 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 6d .(filename)..."Read.and.decode.m
896c0 65 74 61 64 61 74 61 20 66 72 6f 6d 20 4d 50 33 20 66 69 6c 65 20 46 49 4c 45 4e 41 4d 45 2e 0a etadata.from.MP3.file.FILENAME..
896e0 52 65 74 75 72 6e 20 6d 65 74 61 64 61 74 61 20 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 28 46 49 Return.metadata.in.a.list.of.(FI
89700 45 4c 44 20 2e 20 56 41 4c 55 45 29 20 63 6f 6e 73 20 63 65 6c 6c 73 2c 20 6f 72 20 6e 69 6c 0a ELD...VALUE).cons.cells,.or.nil.
89720 69 6e 20 63 61 73 65 20 6f 66 20 65 72 72 6f 72 73 20 6f 72 20 69 66 20 74 68 65 72 65 20 77 65 in.case.of.errors.or.if.there.we
89740 72 65 20 6e 6f 20 6b 6e 6f 77 6e 20 66 69 65 6c 64 73 20 69 6e 20 46 49 4c 45 4e 41 4d 45 2e 0a re.no.known.fields.in.FILENAME..
89760 41 6c 73 6f 20 74 72 79 20 74 6f 20 65 73 74 69 6d 61 74 65 20 74 68 65 20 73 74 72 65 61 6d 20 Also.try.to.estimate.the.stream.
89780 64 75 72 61 74 69 6f 6e 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 20 69 6e 0a 60 70 6c 61 79 duration,.and.return.it.in.`play
897a0 69 6e 67 2d 74 69 6d 65 27 20 66 69 65 6c 64 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a ing-time'.field.if.successful...
897c0 53 65 65 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 66 72 61 See.`emms-info-native-id3v2--fra
897e0 6d 65 2d 74 6f 2d 69 6e 66 6f 27 20 66 6f 72 20 72 65 63 6f 67 6e 69 7a 65 64 20 66 69 65 6c 64 me-to-info'.for.recognized.field
89800 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 s."...(let*.(emms-info-native-id
89820 33 76 32 2d 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 20 28 65 3v2--version..........(header.(e
89840 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 68 65 mms-info-native-id3v2--decode-he
89860 61 64 65 72 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 67 2d 73 69 ader.filename))..........(tag-si
89880 7a 65 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 73 69 7a ze.(bindat-get-field.header.'siz
898a0 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 6e 73 79 6e 63 20 28 6d 65 6d 71 20 37 20 28 62 69 e))..........(unsync.(memq.7.(bi
898c0 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 66 6c 61 67 73 29 29 29 0a ndat-get-field.header.'flags))).
898e0 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 31 30 29 29 0a 20 20 20 20 28 77 68 65 6e 20 .........(offset.10)).....(when.
89900 28 6d 65 6d 71 20 36 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 (memq.6.(bindat-get-field.header
89920 20 27 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 74 68 65 20 65 78 74 65 .'flags)).......;;.Skip.the.exte
89940 6e 64 65 64 20 68 65 61 64 65 72 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 nded.header........(setq.offset.
89960 28 2b 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (+.offset.......................
89980 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 69 64 33 76 32 2d 2d 63 68 65 63 6b 65 64 (emms-info-native-id3v2--checked
899a0 2d 65 78 74 2d 68 65 61 64 65 72 2d 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ext-header-size................
899c0 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 ........filename)))).....(let.((
899e0 74 61 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 tags............(emms-info-nativ
89a00 65 2d 69 64 33 76 32 2d 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 73 0a 20 20 20 20 20 20 20 20 20 e-id3v2--decode-frames..........
89a20 20 20 20 66 69 6c 65 6e 61 6d 65 20 6f 66 66 73 65 74 20 28 2b 20 74 61 67 2d 73 69 7a 65 20 31 ...filename.offset.(+.tag-size.1
89a40 30 29 20 75 6e 73 79 6e 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 61 79 74 69 6d 65 0a 0).unsync))...........(playtime.
89a60 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 ...........(emms-info-native-mp3
89a80 2d 2d 64 65 63 6f 64 65 2d 64 75 72 61 74 69 6f 6e 20 66 69 6c 65 6e 61 6d 65 20 28 2b 20 74 61 --decode-duration.filename.(+.ta
89aa0 67 2d 73 69 7a 65 20 31 30 29 29 29 29 0a 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 74 61 67 73 20 g-size.10)))).......(nconc.tags.
89ac0 28 77 68 65 6e 20 70 6c 61 79 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (when.playtime..................
89ae0 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 22 70 6c 61 79 69 6e 67 2d 74 69 6d 65 22 20 70 6c ...(list.(cons."playing-time".pl
89b00 61 79 74 69 6d 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d aytime)))))))..(defun.emms-info-
89b20 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 64 65 63 6f 64 65 2d 64 75 72 61 74 69 6f 6e 20 28 66 69 6c native-mp3--decode-duration.(fil
89b40 65 6e 61 6d 65 20 6f 66 66 73 65 74 29 0a 20 20 22 44 65 63 6f 64 65 20 6f 72 20 65 73 74 69 6d ename.offset)..."Decode.or.estim
89b60 61 74 65 20 73 74 72 65 61 6d 20 64 75 72 61 74 69 6f 6e 20 66 6f 72 20 4d 50 33 20 66 69 6c 65 ate.stream.duration.for.MP3.file
89b80 20 46 49 4c 45 4e 41 4d 45 2e 0a 53 74 61 72 74 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 6e 65 63 .FILENAME..Start.looking.for.nec
89ba0 65 73 73 61 72 79 20 68 65 61 64 65 72 73 20 66 72 6f 6d 20 62 79 74 65 20 6f 66 66 73 65 74 20 essary.headers.from.byte.offset.
89bc0 4f 46 46 53 45 54 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 64 75 72 61 74 69 6f 6e 20 69 6e 20 OFFSET...Return.the.duration.in.
89be0 73 65 63 6f 6e 64 73 2c 20 6f 72 20 6e 69 6c 20 69 6e 20 63 61 73 65 20 6f 66 20 65 72 72 6f 72 seconds,.or.nil.in.case.of.error
89c00 73 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 s."...(with-temp-buffer.....(set
89c20 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 -buffer-multibyte.nil).....(inse
89c40 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e rt-file-contents-literally.filen
89c60 61 6d 65 20 6e 69 6c 20 6f 66 66 73 65 74 20 28 2b 20 6f 66 66 73 65 74 20 31 30 32 34 29 29 0a ame.nil.offset.(+.offset.1024)).
89c80 20 20 20 20 28 6c 65 74 2a 20 28 28 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ....(let*.((header.............(
89ca0 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 emms-info-native-mp3--find-and-d
89cc0 65 63 6f 64 65 2d 66 72 61 6d 65 2d 68 65 61 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ecode-frame-header))............
89ce0 28 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 (samples-per-frame.............(
89d00 61 6c 69 73 74 2d 67 65 74 20 27 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 20 68 65 61 alist-get.'samples-per-frame.hea
89d20 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 74 65 0a 20 20 der))............(sample-rate...
89d40 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 73 61 6d 70 6c 65 2d 72 61 74 ..........(alist-get.'sample-rat
89d60 65 20 68 65 61 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 69 74 2d 72 61 74 65 0a e.header))............(bit-rate.
89d80 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 62 69 74 2d 72 61 74 65 ............(alist-get.'bit-rate
89da0 20 68 65 61 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 72 61 6d 65 73 0a 20 20 20 .header))............(frames....
89dc0 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d .........(or.(emms-info-native-m
89de0 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 78 69 6e 67 2d 68 65 61 64 65 72 29 p3--find-and-decode-xing-header)
89e00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 .................(emms-info-nati
89e20 76 65 2d 6d 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 76 62 72 69 2d 68 65 61 ve-mp3--find-and-decode-vbri-hea
89e40 64 65 72 29 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 66 72 61 6d 65 73 der)))).......(cond.((and.frames
89e60 20 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 20 28 6e 75 6d 62 65 72 70 20 73 61 6d 70 .samples-per-frame.(numberp.samp
89e80 6c 65 2d 72 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 66 69 le-rate))..............;;.The.fi
89ea0 6c 65 20 68 61 73 20 61 20 75 73 61 62 6c 65 20 56 42 52 20 28 58 69 6e 67 2c 20 49 6e 66 6f 20 le.has.a.usable.VBR.(Xing,.Info.
89ec0 6f 72 20 56 42 52 49 29 20 68 65 61 64 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f or.VBRI).header...............(/
89ee0 20 28 2a 20 66 72 61 6d 65 73 20 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 29 20 73 61 .(*.frames.samples-per-frame).sa
89f00 6d 70 6c 65 2d 72 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 69 74 2d 72 61 74 mple-rate)).............(bit-rat
89f20 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 66 69 6c 65 20 64 6f 65 73 20 e..............;;.The.file.does.
89f40 6e 6f 74 20 68 61 76 65 20 61 20 75 73 61 62 6c 65 20 56 42 52 20 68 65 61 64 65 72 2c 20 74 68 not.have.a.usable.VBR.header,.th
89f60 65 72 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 73 74 69 6d 61 74 65 erefore..............;;.estimate
89f80 20 74 68 65 20 64 75 72 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d .the.duration...............(emm
89fa0 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 65 73 74 69 6d 61 74 65 2d 64 75 72 61 s-info-native-mp3--estimate-dura
89fc0 74 69 6f 6e 20 66 69 6c 65 6e 61 6d 65 20 62 69 74 2d 72 61 74 65 29 29 29 29 29 29 0a 0a 28 64 tion.filename.bit-rate))))))..(d
89fe0 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 66 69 6e 64 2d efun.emms-info-native-mp3--find-
8a000 61 6e 64 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 46 69 and-decode-frame-header.()..."Fi
8a020 6e 64 20 61 6e 64 20 64 65 63 6f 64 65 20 4d 50 33 20 61 75 64 69 6f 20 66 72 61 6d 65 20 68 65 nd.and.decode.MP3.audio.frame.he
8a040 61 64 65 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 52 65 ader.from.the.current.buffer..Re
8a060 74 75 72 6e 20 74 68 65 20 64 65 63 6f 64 65 64 20 68 65 61 64 65 72 20 69 6e 20 61 6e 20 61 6c turn.the.decoded.header.in.an.al
8a080 69 73 74 2c 20 6f 72 20 6e 69 6c 20 69 66 20 61 20 68 65 61 64 65 72 20 63 61 6e 6e 6f 74 0a 62 ist,.or.nil.if.a.header.cannot.b
8a0a0 65 20 66 6f 75 6e 64 20 6f 72 20 64 65 63 6f 64 65 64 2e 0a 0a 53 65 65 20 60 65 6d 6d 73 2d 69 e.found.or.decoded...See.`emms-i
8a0c0 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 68 65 61 nfo-native-mp3--decode-frame-hea
8a0e0 64 65 72 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 6c 65 74 20 28 68 65 61 64 65 der'.for.details."...(let.(heade
8a100 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 r).....(goto-char.(point-min))..
8a120 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 ...(ignore-errors.......(while.(
8a140 61 6e 64 20 28 6e 6f 74 20 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 and.(not.header)................
8a160 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 73 74 72 69 6e 67 20 32 35 35 29 20 ...(search-forward.(string.255).
8a180 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 79 74 65 73 0a 20 20 20 nil.t)).........(let.((bytes....
8a1a0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 65 2d 74 6f 2d 69 6e 74 0a 20 20 20 20 ............(emms-be-to-int.....
8a1c0 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f ............(buffer-substring-no
8a1e0 2d 70 72 6f 70 65 72 74 69 65 73 20 28 2d 20 28 70 6f 69 6e 74 29 20 31 29 0a 20 20 20 20 20 20 -properties.(-.(point).1).......
8a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8a220 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 70 6f 69 6e 74 29 20 33 29 29 29 29 29 0a 20 20 20 20 ..........(+.(point).3))))).....
8a240 20 20 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(setq.header..............
8a260 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 64 65 63 6f 64 65 ...(emms-info-native-mp3--decode
8a280 2d 66 72 61 6d 65 2d 68 65 61 64 65 72 20 62 79 74 65 73 29 29 29 29 29 0a 20 20 20 20 68 65 61 -frame-header.bytes))))).....hea
8a2a0 64 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d der))..(defun.emms-info-native-m
8a2c0 70 33 2d 2d 64 65 63 6f 64 65 2d 66 72 61 6d 65 2d 68 65 61 64 65 72 20 28 68 65 61 64 65 72 29 p3--decode-frame-header.(header)
8a2e0 0a 20 20 22 44 65 63 6f 64 65 20 33 32 2d 62 69 74 20 6e 75 6d 65 72 69 63 20 48 45 41 44 45 52 ..."Decode.32-bit.numeric.HEADER
8a300 20 64 61 74 61 2e 0a 50 61 63 6b 20 69 74 73 20 65 6c 65 6d 65 6e 74 73 20 74 6f 20 61 6e 20 61 .data..Pack.its.elements.to.an.a
8a320 6c 69 73 74 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 2e 20 20 52 65 74 75 72 list.and.return.the.list...Retur
8a340 6e 20 6e 69 6c 20 69 66 0a 48 45 41 44 45 52 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 4d 50 n.nil.if.HEADER.does.not.have.MP
8a360 33 20 73 79 6e 63 20 62 69 74 73 20 73 65 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 3d 20 28 6c 6f 3.sync.bits.set."...(when.(=.(lo
8a380 67 61 6e 64 20 68 65 61 64 65 72 20 23 78 66 66 65 30 30 30 30 30 29 20 23 78 66 66 65 30 30 30 gand.header.#xffe00000).#xffe000
8a3a0 30 30 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 76 65 72 73 69 6f 6e 2d 62 69 74 73 0a 20 20 20 00).....(let*.((version-bits....
8a3c0 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 .........(emms-extract-bits.head
8a3e0 65 72 20 31 39 20 32 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 79 65 72 2d 62 69 74 er.19.20))............(layer-bit
8a400 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 s.............(emms-extract-bits
8a420 20 68 65 61 64 65 72 20 31 37 20 31 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 72 63 2d .header.17.18))............(crc-
8a440 62 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 bit.............(emms-extract-bi
8a460 74 73 20 68 65 61 64 65 72 20 31 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 69 74 2d 72 ts.header.16))............(bit-r
8a480 61 74 65 2d 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 ate-bits.............(emms-extra
8a4a0 63 74 2d 62 69 74 73 20 68 65 61 64 65 72 20 31 32 20 31 35 29 29 0a 20 20 20 20 20 20 20 20 20 ct-bits.header.12.15))..........
8a4c0 20 20 28 73 61 6d 70 6c 65 2d 72 61 74 65 2d 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(sample-rate-bits.............
8a4e0 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 65 72 20 31 30 20 31 31 29 (emms-extract-bits.header.10.11)
8a500 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 61 64 64 69 6e 67 2d 62 69 74 0a 20 20 20 20 20 20 )............(padding-bit.......
8a520 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 65 72 20 ......(emms-extract-bits.header.
8a540 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 76 61 74 65 2d 62 69 74 0a 20 20 20 20 9))............(private-bit.....
8a560 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 65 ........(emms-extract-bits.heade
8a580 72 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d 6f 64 65 2d 62 r.8))............(channel-mode-b
8a5a0 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 its.............(emms-extract-bi
8a5c0 74 73 20 68 65 61 64 65 72 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 ts.header.6.7))............(mode
8a5e0 2d 65 78 74 65 6e 73 69 6f 6e 2d 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d -extension-bits.............(emm
8a600 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 65 72 20 34 20 35 29 29 0a 20 20 20 20 s-extract-bits.header.4.5)).....
8a620 20 20 20 20 20 20 20 28 63 6f 70 79 72 69 67 68 74 2d 62 69 74 0a 20 20 20 20 20 20 20 20 20 20 .......(copyright-bit...........
8a640 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 65 72 20 33 29 29 0a ..(emms-extract-bits.header.3)).
8a660 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 69 67 69 6e 61 6c 2d 62 69 74 0a 20 20 20 20 20 20 20 ...........(original-bit........
8a680 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 65 72 20 32 .....(emms-extract-bits.header.2
8a6a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 70 68 61 73 69 73 2d 62 69 74 73 0a 20 20 20 ))............(emphasis-bits....
8a6c0 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 68 65 61 64 .........(emms-extract-bits.head
8a6e0 65 72 20 30 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 0a 20 20 20 er.0.1))............(version....
8a700 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 76 65 72 73 69 6f 6e 2d 62 69 74 73 .........(alist-get.version-bits
8a720 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 ........................emms-inf
8a740 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 76 65 72 73 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 o-native-mp3--versions))........
8a760 20 20 20 20 28 6c 61 79 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 ....(layer.............(alist-ge
8a780 74 20 6c 61 79 65 72 2d 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.layer-bits....................
8a7a0 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 6c 61 79 65 72 73 ....emms-info-native-mp3--layers
8a7c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 6e 6e 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 ))............(channel-mode.....
8a7e0 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 63 68 61 6e 6e 65 6c 2d 6d 6f 64 65 2d ........(alist-get.channel-mode-
8a800 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 bits........................emms
8a820 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 63 68 61 6e 6e 65 6c 2d 6d 6f 64 65 73 29 -info-native-mp3--channel-modes)
8a840 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 2d 72 61 74 65 0a 20 20 20 20 20 20 )............(sample-rate.......
8a860 20 20 20 20 20 20 28 6e 74 68 20 73 61 6d 70 6c 65 2d 72 61 74 65 2d 62 69 74 73 0a 20 20 20 20 ......(nth.sample-rate-bits.....
8a880 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 76 65 72 73 69 6f 6e 0a .............(alist-get.version.
8a8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 ............................emms
8a8c0 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 73 61 6d 70 6c 65 2d 72 61 74 65 73 29 29 -info-native-mp3--sample-rates))
8a8e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 0a )............(samples-per-frame.
8a900 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 ............(emms-info-native-mp
8a920 33 2d 2d 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 3--samples-per-frame............
8a940 20 20 76 65 72 73 69 6f 6e 20 6c 61 79 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 69 ..version.layer))............(bi
8a960 74 2d 72 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 t-rate.............(emms-info-na
8a980 74 69 76 65 2d 6d 70 33 2d 2d 64 65 63 6f 64 65 2d 62 69 74 2d 72 61 74 65 0a 20 20 20 20 20 20 tive-mp3--decode-bit-rate.......
8a9a0 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e 20 6c 61 79 65 72 20 62 69 74 2d 72 61 74 65 2d 62 69 .......version.layer.bit-rate-bi
8a9c0 74 73 29 29 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 27 76 65 72 73 69 6f 6e ts))).......(list.(cons.'version
8a9e0 20 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 6c 61 79 .version).............(cons.'lay
8aa00 65 72 20 6c 61 79 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 63 72 63 er.layer).............(cons.'crc
8aa20 20 63 72 63 2d 62 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 62 69 74 .crc-bit).............(cons.'bit
8aa40 2d 72 61 74 65 20 62 69 74 2d 72 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e -rate.bit-rate).............(con
8aa60 73 20 27 73 61 6d 70 6c 65 2d 72 61 74 65 20 73 61 6d 70 6c 65 2d 72 61 74 65 29 0a 20 20 20 20 s.'sample-rate.sample-rate).....
8aa80 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 ........(cons.'samples-per-frame
8aaa0 20 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .samples-per-frame).............
8aac0 28 63 6f 6e 73 20 27 70 61 64 64 69 6e 67 20 70 61 64 64 69 6e 67 2d 62 69 74 29 0a 20 20 20 20 (cons.'padding.padding-bit).....
8aae0 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 70 72 69 76 61 74 65 20 70 72 69 76 61 74 65 2d 62 ........(cons.'private.private-b
8ab00 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 63 68 61 6e 6e 65 6c 2d 6d it).............(cons.'channel-m
8ab20 6f 64 65 20 63 68 61 6e 6e 65 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 ode.channel-mode).............(c
8ab40 6f 6e 73 20 27 6d 6f 64 65 2d 65 78 74 65 6e 73 69 6f 6e 20 6d 6f 64 65 2d 65 78 74 65 6e 73 69 ons.'mode-extension.mode-extensi
8ab60 6f 6e 2d 62 69 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 63 6f 70 79 on-bits).............(cons.'copy
8ab80 72 69 67 68 74 20 63 6f 70 79 72 69 67 68 74 2d 62 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 right.copyright-bit)............
8aba0 20 28 63 6f 6e 73 20 27 65 6d 70 68 61 73 69 73 20 65 6d 70 68 61 73 69 73 2d 62 69 74 73 29 0a .(cons.'emphasis.emphasis-bits).
8abc0 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 6f 72 69 67 69 6e 61 6c 20 6f 72 69 67 ............(cons.'original.orig
8abe0 69 6e 61 6c 2d 62 69 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d inal-bit)))))..(defun.emms-info-
8ac00 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d 78 69 6e 67 native-mp3--find-and-decode-xing
8ac20 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 46 69 6e 64 20 61 6e 64 20 64 65 63 6f 64 65 20 58 69 -header.()..."Find.and.decode.Xi
8ac40 6e 67 20 56 42 52 20 68 65 61 64 65 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 ng.VBR.header.from.the.current.b
8ac60 75 66 66 65 72 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 66 72 61 6d uffer..Return.the.number.of.fram
8ac80 65 73 20 69 6e 20 74 68 65 20 73 74 72 65 61 6d 2c 20 6f 72 20 6e 69 6c 20 69 66 20 61 20 68 65 es.in.the.stream,.or.nil.if.a.he
8aca0 61 64 65 72 0a 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 6f 72 20 64 65 63 6f 64 65 64 2e ader.cannot.be.found.or.decoded.
8acc0 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 77 "...(goto-char.(point-min))...(w
8ace0 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 58 69 6e 67 5c 5c 7c 49 hen.(re-search-forward."Xing\\|I
8ad00 6e 66 6f 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 nfo".(point-max).t).....(let.((h
8ad20 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 eader............(bindat-unpack.
8ad40 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 78 69 6e 67 2d 68 65 61 64 65 emms-info-native-mp3--xing-heade
8ad60 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-bindat-spec...................
8ad80 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 ........(buffer-string).........
8ada0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 6d 61 74 63 68 2d 62 65 67 ..................(1-.(match-beg
8adc0 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 inning.0))))).......(when.(memq.
8ade0 30 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 66 6c 61 67 0.(bindat-get-field.header.'flag
8ae00 73 29 29 0a 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 s)).........(bindat-get-field.he
8ae20 61 64 65 72 20 27 66 72 61 6d 65 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 ader.'frames)))))..(defun.emms-i
8ae40 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 66 69 6e 64 2d 61 6e 64 2d 64 65 63 6f 64 65 2d nfo-native-mp3--find-and-decode-
8ae60 76 62 72 69 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 46 69 6e 64 20 61 6e 64 20 64 65 63 6f 64 vbri-header.()..."Find.and.decod
8ae80 65 20 56 42 52 49 20 68 65 61 64 65 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 e.VBRI.header.from.the.current.b
8aea0 75 66 66 65 72 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 66 72 61 6d uffer..Return.the.number.of.fram
8aec0 65 73 20 69 6e 20 74 68 65 20 73 74 72 65 61 6d 2c 20 6f 72 20 6e 69 6c 20 69 66 20 61 20 68 65 es.in.the.stream,.or.nil.if.a.he
8aee0 61 64 65 72 0a 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 6f 72 20 64 65 63 6f 64 65 64 2e ader.cannot.be.found.or.decoded.
8af00 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 77 "...(goto-char.(point-min))...(w
8af20 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 56 42 52 49 22 20 28 70 hen.(re-search-forward."VBRI".(p
8af40 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 65 61 64 65 72 0a 20 oint-max).t).....(let.((header..
8af60 20 20 20 20 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 6e ..........(bindat-unpack.emms-in
8af80 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 76 62 72 69 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 fo-native-mp3--vbri-header-binda
8afa0 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-spec..........................
8afc0 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(buffer-string)................
8afe0 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 ...........(1-.(match-beginning.
8b000 30 29 29 29 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 0))))).......(bindat-get-field.h
8b020 65 61 64 65 72 20 27 66 72 61 6d 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 eader.'frames))))..(defun.emms-i
8b040 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 65 73 74 69 6d 61 74 65 2d 64 75 72 61 74 69 6f nfo-native-mp3--estimate-duratio
8b060 6e 20 28 66 69 6c 65 6e 61 6d 65 20 62 69 74 72 61 74 65 29 0a 20 20 22 45 73 74 69 6d 61 74 65 n.(filename.bitrate)..."Estimate
8b080 20 73 74 72 65 61 6d 20 64 75 72 61 74 69 6f 6e 20 66 6f 72 20 46 49 4c 45 4e 41 4d 45 2e 0a 41 .stream.duration.for.FILENAME..A
8b0a0 73 73 75 6d 65 20 63 6f 6e 73 74 61 6e 74 20 65 6e 63 6f 64 69 6e 67 20 62 69 74 20 72 61 74 65 ssume.constant.encoding.bit.rate
8b0c0 20 6f 66 20 42 49 54 52 41 54 45 20 6b 69 6c 6f 62 69 74 73 20 70 65 72 20 73 65 63 6f 6e 64 2e .of.BITRATE.kilobits.per.second.
8b0e0 0a 52 65 74 75 72 6e 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 73 74 72 65 61 6d 20 64 75 72 .Return.the.estimated.stream.dur
8b100 61 74 69 6f 6e 20 69 6e 20 73 65 63 6f 6e 64 73 2c 20 6f 72 20 6e 69 6c 20 69 6e 20 63 61 73 65 ation.in.seconds,.or.nil.in.case
8b120 0a 6f 66 20 65 72 72 6f 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 69 7a 65 0a 20 20 20 20 20 .of.errors."...(let.((size......
8b140 20 20 20 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 73 69 7a 65 0a 20 20 20 20 20 20 20 ....(file-attribute-size........
8b160 20 20 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 28 66 69 6c 65 2d 63 68 61 73 65 2d ...(file-attributes.(file-chase-
8b180 6c 69 6e 6b 73 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 links.filename))))).....(when.(a
8b1a0 6e 64 20 73 69 7a 65 20 28 6e 75 6d 62 65 72 70 20 62 69 74 72 61 74 65 29 29 0a 20 20 20 20 20 nd.size.(numberp.bitrate))......
8b1c0 20 28 2f 20 28 2a 20 38 20 73 69 7a 65 29 20 28 2a 20 31 30 30 30 20 62 69 74 72 61 74 65 29 29 .(/.(*.8.size).(*.1000.bitrate))
8b1e0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 )))..(defun.emms-info-native-mp3
8b200 2d 2d 64 65 63 6f 64 65 2d 62 69 74 2d 72 61 74 65 20 28 76 65 72 73 69 6f 6e 20 6c 61 79 65 72 --decode-bit-rate.(version.layer
8b220 20 62 69 74 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 62 69 74 20 72 61 74 65 20 66 6f .bits)..."Return.the.bit.rate.fo
8b240 72 20 4d 50 45 47 20 56 45 52 53 49 4f 4e 2f 4c 41 59 45 52 20 63 6f 6d 62 69 6e 61 74 69 6f 6e r.MPEG.VERSION/LAYER.combination
8b260 2e 0a 42 49 54 53 20 69 73 20 74 68 65 20 62 69 74 72 61 74 65 20 69 6e 64 65 78 20 66 72 6f 6d ..BITS.is.the.bitrate.index.from
8b280 20 4d 50 33 20 68 65 61 64 65 72 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 20 76 65 72 73 69 .MP3.header."...(cond.((eq.versi
8b2a0 6f 6e 20 27 6d 70 65 67 31 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 6c on.'mpeg1)..........(cond.((eq.l
8b2c0 61 79 65 72 20 27 6c 61 79 65 72 49 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e ayer.'layerI).................(n
8b2e0 74 68 20 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c th.bits......................(al
8b300 69 73 74 2d 67 65 74 20 27 6d 70 65 67 31 2d 6c 61 79 65 72 49 0a 20 20 20 20 20 20 20 20 20 20 ist-get.'mpeg1-layerI...........
8b320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d ......................emms-info-
8b340 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 62 69 74 2d 72 61 74 65 73 29 29 29 0a 20 20 20 20 20 20 20 native-mp3--bit-rates)))........
8b360 20 20 20 20 20 20 20 20 28 28 65 71 20 6c 61 79 65 72 20 27 6c 61 79 65 72 49 49 29 0a 20 20 20 ........((eq.layer.'layerII)....
8b380 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 .............(nth.bits..........
8b3a0 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6d 70 65 67 31 2d 6c 61 ............(alist-get.'mpeg1-la
8b3c0 79 65 72 49 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yerII...........................
8b3e0 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 62 69 74 2d ......emms-info-native-mp3--bit-
8b400 72 61 74 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 6c 61 79 rates)))................((eq.lay
8b420 65 72 20 27 6c 61 79 65 72 49 49 49 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e er.'layerIII).................(n
8b440 74 68 20 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c th.bits......................(al
8b460 69 73 74 2d 67 65 74 20 27 6d 70 65 67 31 2d 6c 61 79 65 72 49 49 49 0a 20 20 20 20 20 20 20 20 ist-get.'mpeg1-layerIII.........
8b480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 ........................emms-inf
8b4a0 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 62 69 74 2d 72 61 74 65 73 29 29 29 29 29 0a 20 20 20 o-native-mp3--bit-rates)))))....
8b4c0 20 20 20 20 20 28 74 20 28 63 6f 6e 64 20 28 28 65 71 20 6c 61 79 65 72 20 27 6c 61 79 65 72 49 .....(t.(cond.((eq.layer.'layerI
8b4e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 62 69 74 73 0a 20 20 )...................(nth.bits...
8b500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 .....................(alist-get.
8b520 27 6d 70 65 67 32 78 2d 6c 61 79 65 72 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'mpeg2x-layerI..................
8b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 .................emms-info-nativ
8b560 65 2d 6d 70 33 2d 2d 62 69 74 2d 72 61 74 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-mp3--bit-rates))).............
8b580 20 20 20 20 20 28 74 20 28 6e 74 68 20 62 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(t.(nth.bits...............
8b5a0 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6d 70 65 67 32 78 2d 6c 61 ...........(alist-get.'mpeg2x-la
8b5c0 79 65 72 49 49 2d 49 49 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yerII-III.......................
8b5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d ..............emms-info-native-m
8b600 70 33 2d 2d 62 69 74 2d 72 61 74 65 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d p3--bit-rates)))))))..(defun.emm
8b620 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 s-info-native-mp3--samples-per-f
8b640 72 61 6d 65 20 28 76 65 72 73 69 6f 6e 20 6c 61 79 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 rame.(version.layer)..."Return.t
8b660 68 65 20 73 61 6d 70 6c 65 73 20 70 65 72 20 66 72 61 6d 65 20 66 6f 72 20 4d 50 45 47 20 56 45 he.samples.per.frame.for.MPEG.VE
8b680 52 53 49 4f 4e 2f 4c 41 59 45 52 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2e 22 0a 20 20 28 63 6f 6e RSION/LAYER.combination."...(con
8b6a0 64 20 28 28 65 71 20 6c 61 79 65 72 20 27 6c 61 79 65 72 49 49 49 29 0a 20 20 20 20 20 20 20 20 d.((eq.layer.'layerIII).........
8b6c0 20 28 63 6f 6e 64 20 28 28 65 71 20 76 65 72 73 69 6f 6e 20 27 6d 70 65 67 31 29 0a 20 20 20 20 .(cond.((eq.version.'mpeg1).....
8b6e0 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6c 61 79 65 72 49 49 49 ............(alist-get.'layerIII
8b700 2d 6d 70 65 67 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -mpeg1..........................
8b720 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 73 61 6d 70 6c 65 73 2d ..emms-info-native-mp3--samples-
8b740 70 65 72 2d 66 72 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 61 per-frame))................(t.(a
8b760 6c 69 73 74 2d 67 65 74 20 27 6c 61 79 65 72 49 49 49 2d 6d 70 65 67 32 78 0a 20 20 20 20 20 20 list-get.'layerIII-mpeg2x.......
8b780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f .......................emms-info
8b7a0 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 29 29 -native-mp3--samples-per-frame))
8b7c0 29 29 0a 20 20 20 20 20 20 20 20 28 28 65 71 20 6c 61 79 65 72 20 27 6c 61 79 65 72 49 49 29 0a )).........((eq.layer.'layerII).
8b7e0 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6c 61 79 65 72 49 49 0a 20 20 20 .........(alist-get.'layerII....
8b800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 .................emms-info-nativ
8b820 65 2d 6d 70 33 2d 2d 73 61 6d 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 29 29 0a 20 20 20 20 20 e-mp3--samples-per-frame))......
8b840 20 20 20 28 28 65 71 20 6c 61 79 65 72 20 27 6c 61 79 65 72 49 29 0a 20 20 20 20 20 20 20 20 20 ...((eq.layer.'layerI)..........
8b860 28 61 6c 69 73 74 2d 67 65 74 20 27 6c 61 79 65 72 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (alist-get.'layerI..............
8b880 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 2d 73 61 6d .......emms-info-native-mp3--sam
8b8a0 70 6c 65 73 2d 70 65 72 2d 66 72 61 6d 65 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d ples-per-frame))))..(provide.'em
8b8c0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e ms-info-native-mp3)..;;;.emms-in
8b8e0 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 fo-native-mp3.el.ends.here......
8b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2e 65 6c 00 00 00 00 00 00 emms-24/emms-volume-mpv.el......
8ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8ba80 30 30 31 36 31 32 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 37 34 00 20 30 00 00 00 0016123.00000000000.014274..0...
8baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bb00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8bb20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc00 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2e 65 6c 20 2d 2d 2d 20 56 6f 6c 75 6d ;;;.emms-volume-mpv.el.---.Volum
8bc20 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 61 64 6a 75 73 74 20 6d 70 76 20 76 6f 6c 75 6d 65 20 e.function.to.adjust.mpv.volume.
8bc40 65 61 73 69 6c 79 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 easily..-*-.lexical-binding:.t;.
8bc60 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 35 20 20 46 72 65 65 -*-..;;.Copyright.(C).2025..Free
8bc80 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 .Software.Foundation,.Inc...;;.A
8bca0 75 74 68 6f 72 3a 20 52 69 63 68 61 72 64 20 53 65 6e 74 20 3c 72 69 63 68 61 72 64 40 66 72 65 uthor:.Richard.Sent.<richard@fre
8bcc0 61 6b 69 6e 67 70 65 6e 67 75 69 6e 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 akingpenguin.com>..;;.This.file.
8bce0 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 is.part.of.EMMS...;;.EMMS.is.fre
8bd00 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software;.you.can.redistribute
8bd20 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.;;.it.under.th
8bd40 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
8bd60 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 c.License.as.published.by.;;.the
8bd80 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 .Free.Software.Foundation;.eithe
8bda0 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 r.version.3,.or.(at.your.option)
8bdc0 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d .;;.any.later.version..;;.;;.EMM
8bde0 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 S.is.distributed.in.the.hope.tha
8be00 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 t.it.will.be.useful,.;;.but.WITH
8be20 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 OUT.ANY.WARRANTY;.without.even.t
8be40 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 he.implied.warranty.of.;;.MERCHA
8be60 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NTABILITY.or.FITNESS.FOR.A.PARTI
8be80 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 CULAR.PURPOSE...See.the.;;.GNU.G
8bea0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 eneral.Public.License.for.more.d
8bec0 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 etails..;;.;;.You.should.have.re
8bee0 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c ceived.a.copy.of.the.GNU.General
8bf00 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d .Public.License.;;.along.with.EM
8bf20 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 MS;.see.the.file.COPYING..If.not
8bf40 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 ,.write.to.the.;;.Free.Software.
8bf60 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 Foundation,.Inc.,.51.Franklin.St
8bf80 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 ,.Fifth.Floor,.;;.Boston,.MA.021
8bfa0 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 10-1301,.USA...;;;.Commentary:.;
8bfc0 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 61 20 66 75 6e 63 74 69 6f ;.;;.This.file.defines.a.functio
8bfe0 6e 20 74 6f 20 72 61 69 73 65 20 6f 72 20 6c 6f 77 65 72 20 74 68 65 20 76 6f 6c 75 6d 65 20 6f n.to.raise.or.lower.the.volume.o
8c000 66 20 6d 70 76 2e 0a 3b 3b 20 49 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 73 74 61 6e 64 2d 61 f.mpv..;;.It.can.be.used.stand-a
8c020 6c 6f 6e 65 20 62 79 20 70 61 73 73 69 6e 67 20 61 20 70 72 6f 63 65 73 73 20 6f 62 6a 65 63 74 lone.by.passing.a.process.object
8c040 2c 20 74 68 6f 75 67 68 20 69 74 0a 3b 3b 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 75 73 61 67 ,.though.it.;;.is.meant.for.usag
8c060 65 20 77 69 74 68 20 45 6d 6d 73 2c 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 77 69 74 68 20 65 e.with.Emms,.particularly.with.e
8c080 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 20 61 6e 64 0a 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 mms-volume.el.and.;;.emms-player
8c0a0 2d 6d 70 76 2e 65 6c 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 61 64 64 20 74 68 65 20 66 6f -mpv.el..;;.;;.To.use.add.the.fo
8c0c0 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 45 6d 6d 73 20 63 6f 6e 66 69 67 75 72 61 74 69 llowing.to.your.Emms.configurati
8c0e0 6f 6e 0a 3b 3b 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e on.;;.....(setq.emms-volume-chan
8c100 67 65 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 63 68 61 ge-function.'emms-volume-mpv-cha
8c120 6e 67 65 29 0a 0a 3b 3b 3b 20 48 69 73 74 6f 72 79 3a 0a 0a 3b 3b 20 4a 61 6e 75 61 72 79 20 32 nge)..;;;.History:..;;.January.2
8c140 30 32 35 3a 20 46 69 72 73 74 20 72 65 6c 65 61 73 65 2c 20 70 61 72 74 6c 79 20 62 61 73 65 64 025:.First.release,.partly.based
8c160 20 6f 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2e 65 6c 2e 0a 0a 3b 3b 3b 20 43 .on.emms-volume-pulse.el...;;;.C
8c180 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 29 ode:..(require.'emms-player-mpv)
8c1a0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6d 65 74 ..(defcustom.emms-volume-mpv-met
8c1c0 68 6f 64 20 27 6e 61 74 69 76 65 0a 20 20 22 48 6f 77 20 45 6d 6d 73 20 73 68 6f 75 6c 64 20 61 hod.'native..."How.Emms.should.a
8c1e0 74 74 65 6d 70 74 20 74 6f 20 61 64 6a 75 73 74 20 6d 70 76 27 73 20 76 6f 6c 75 6d 65 2e 0a 0a ttempt.to.adjust.mpv's.volume...
8c200 49 66 20 60 6e 61 74 69 76 65 27 2c 20 45 6d 6d 73 20 77 69 6c 6c 20 61 64 6a 75 73 74 20 6d 70 If.`native',.Emms.will.adjust.mp
8c220 76 27 73 20 76 6f 6c 75 6d 65 20 70 72 6f 70 65 72 74 79 2e 20 54 68 69 73 0a 70 72 6f 76 69 64 v's.volume.property..This.provid
8c240 65 73 20 74 68 65 20 73 61 6d 65 20 65 78 70 65 72 69 65 6e 63 65 20 61 73 20 61 64 6a 75 73 74 es.the.same.experience.as.adjust
8c260 69 6e 67 20 74 68 65 20 76 6f 6c 75 6d 65 20 73 6c 69 64 65 72 20 69 6e 0a 6d 70 76 2e 0a 0a 49 ing.the.volume.slider.in.mpv...I
8c280 66 20 60 73 79 73 74 65 6d 27 2c 20 45 6d 6d 73 20 77 69 6c 6c 20 61 64 6a 75 73 74 20 6d 70 76 f.`system',.Emms.will.adjust.mpv
8c2a0 27 73 20 61 6f 2d 76 6f 6c 75 6d 65 20 70 72 6f 70 65 72 74 79 2c 20 77 68 69 63 68 0a 61 64 6a 's.ao-volume.property,.which.adj
8c2c0 75 73 74 73 20 74 68 65 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 74 68 65 20 73 79 73 74 65 6d usts.the.volume.using.the.system
8c2e0 20 61 75 64 69 6f 20 73 65 72 76 69 63 65 2c 20 73 75 63 68 20 61 73 0a 50 75 6c 73 65 61 75 64 .audio.service,.such.as.Pulseaud
8c300 69 6f 2e 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 61 74 20 61 75 64 69 6f 20 73 65 72 76 io..Depending.on.what.audio.serv
8c320 69 63 65 20 69 73 20 62 65 69 6e 67 20 75 73 65 64 20 74 68 69 73 0a 6d 61 79 20 65 69 74 68 65 ice.is.being.used.this.may.eithe
8c340 72 20 63 68 61 6e 67 65 20 74 68 65 20 6d 70 76 20 61 70 70 6c 69 63 61 74 69 6f 6e 27 73 20 76 r.change.the.mpv.application's.v
8c360 6f 6c 75 6d 65 20 6f 72 20 67 6c 6f 62 61 6c 20 76 6f 6c 75 6d 65 2e 0a 0a 49 66 20 60 73 6d 61 olume.or.global.volume...If.`sma
8c380 72 74 27 2c 20 45 6d 6d 73 20 77 69 6c 6c 20 61 64 6a 75 73 74 20 62 6f 74 68 20 6d 70 76 27 73 rt',.Emms.will.adjust.both.mpv's
8c3a0 20 76 6f 6c 75 6d 65 20 61 6e 64 20 61 6f 2d 76 6f 6c 75 6d 65 0a 70 72 6f 70 65 72 74 69 65 73 .volume.and.ao-volume.properties
8c3c0 2e 20 57 68 65 6e 20 72 61 69 73 69 6e 67 20 76 6f 6c 75 6d 65 2c 20 74 68 65 20 6e 61 74 69 76 ..When.raising.volume,.the.nativ
8c3e0 65 20 76 6f 6c 75 6d 65 20 77 69 6c 6c 20 62 65 20 72 61 69 73 65 64 0a 74 6f 20 31 30 30 2e 20 e.volume.will.be.raised.to.100..
8c400 45 6d 6d 73 20 77 69 6c 6c 20 74 68 65 6e 20 73 77 69 74 63 68 20 74 6f 20 61 64 6a 75 73 74 69 Emms.will.then.switch.to.adjusti
8c420 6e 67 20 73 79 73 74 65 6d 20 76 6f 6c 75 6d 65 20 74 6f 20 31 30 30 0a 62 65 66 6f 72 65 20 72 ng.system.volume.to.100.before.r
8c440 61 69 73 69 6e 67 20 74 68 65 20 6e 61 74 69 76 65 20 76 6f 6c 75 6d 65 20 61 67 61 69 6e 2e 20 aising.the.native.volume.again..
8c460 57 68 65 6e 20 6c 6f 77 65 72 69 6e 67 20 76 6f 6c 75 6d 65 2c 0a 45 6d 6d 73 20 77 69 6c 6c 20 When.lowering.volume,.Emms.will.
8c480 6c 6f 77 65 72 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 76 6f 6c 75 6d 65 20 74 6f 20 31 30 30 lower.the.software.volume.to.100
8c4a0 2c 20 74 68 65 6e 20 6c 6f 77 65 72 20 73 79 73 74 65 6d 0a 76 6f 6c 75 6d 65 20 74 6f 20 30 2e ,.then.lower.system.volume.to.0.
8c4c0 0a 0a 42 6f 74 68 20 60 73 79 73 74 65 6d 27 20 61 6e 64 20 60 73 6d 61 72 74 27 20 72 65 71 75 ..Both.`system'.and.`smart'.requ
8c4e0 69 72 65 20 6d 70 76 20 74 6f 20 65 78 70 6f 73 65 20 74 68 65 20 61 6f 2d 76 6f 6c 75 6d 65 0a ire.mpv.to.expose.the.ao-volume.
8c500 70 72 6f 70 65 72 74 79 2e 20 54 68 69 73 20 70 72 6f 70 65 72 74 79 20 69 73 20 6f 6e 6c 79 20 property..This.property.is.only.
8c520 61 76 61 69 6c 61 62 6c 65 20 77 68 69 6c 65 20 6d 70 76 20 61 75 64 69 6f 20 6f 75 74 70 75 74 available.while.mpv.audio.output
8c540 0a 69 73 20 61 63 74 69 76 65 2e 20 49 66 20 61 75 64 69 6f 20 6f 75 74 70 75 74 20 69 73 20 6e .is.active..If.audio.output.is.n
8c560 6f 74 20 61 63 74 69 76 65 2c 20 74 68 65 20 76 6f 6c 75 6d 65 20 77 69 6c 6c 20 6e 6f 74 20 62 ot.active,.the.volume.will.not.b
8c580 65 0a 63 68 61 6e 67 65 64 2e 0a 0a 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 74 68 65 20 70 65 e.changed...Additionally,.the.pe
8c5a0 72 63 65 6e 74 61 67 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 61 6e 64 20 73 65 74 20 66 6f 72 rcentage.provided.by.and.set.for
8c5c0 20 61 6f 2d 76 6f 6c 75 6d 65 0a 61 6e 64 20 74 68 75 73 20 74 68 69 73 20 6d 6f 64 75 6c 65 20 .ao-volume.and.thus.this.module.
8c5e0 6d 61 79 20 6e 6f 74 20 6d 61 74 63 68 20 77 68 61 74 20 69 73 20 72 65 70 6f 72 74 65 64 20 62 may.not.match.what.is.reported.b
8c600 79 20 74 68 65 20 73 79 73 74 65 6d 0a 61 75 64 69 6f 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a y.the.system.audio.program."...:
8c620 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4d 50 56 20 56 type.'(choice.(const.:tag."MPV.V
8c640 6f 6c 75 6d 65 22 20 6e 61 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 olume".native)..................
8c660 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 53 79 73 74 65 6d 20 56 6f 6c 75 6d 65 22 20 73 79 73 74 (const.:tag."System.Volume".syst
8c680 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 em)..................(const.:tag
8c6a0 20 22 53 6d 61 72 74 22 20 73 6d 61 72 74 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d ."Smart".smart))...:group.'emms-
8c6c0 76 6f 6c 75 6d 65 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 volume)..(defvar.emms-volume-mpv
8c6e0 2d 2d 76 6f 6c 75 6d 65 2d 73 79 6e 63 20 28 6d 61 6b 65 2d 6d 75 74 65 78 20 22 65 6d 6d 73 2d --volume-sync.(make-mutex."emms-
8c700 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 76 6f 6c 75 6d 65 2d 73 79 6e 63 22 29 0a 20 20 22 45 6e 73 volume-mpv--volume-sync")..."Ens
8c720 75 72 65 20 6f 6e 6c 79 20 6f 6e 65 20 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 20 66 75 6e 63 74 ure.only.one.volume-change.funct
8c740 69 6f 6e 20 72 75 6e 73 20 74 6f 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 61 74 20 61 0a 74 69 6d 65 ion.runs.to.completion.at.a.time
8c760 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 73 79 6e 63 .")..(defun.emms-volume-mpv-sync
8c780 68 72 6f 6e 6f 75 73 2d 69 70 63 20 28 63 6d 64 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 63 29 hronous-ipc.(cmd.&optional.proc)
8c7a0 0a 20 20 22 52 75 6e 20 6d 70 76 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 67 65 74 20 72 65 73 75 ..."Run.mpv.command.and.get.resu
8c7c0 6c 74 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 66 6f 72 20 63 75 72 72 65 6e 74 20 74 68 72 lt.synchronously.for.current.thr
8c7e0 65 61 64 2e 0a 0a 54 68 69 73 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 72 75 6e 20 62 79 20 74 68 ead...This.must.not.be.run.by.th
8c800 65 20 6d 61 69 6e 20 74 68 72 65 61 64 2e 20 54 68 65 20 68 61 6e 64 6c 65 72 20 66 6f 72 0a 65 e.main.thread..The.handler.for.e
8c820 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 20 72 75 6e 73 mms-player-mpv-ipc-req-send.runs
8c840 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 74 68 72 65 61 64 2c 20 70 6f 74 65 6e 74 69 61 6c 6c 79 .in.the.main.thread,.potentially
8c860 0a 63 61 75 73 69 6e 67 20 61 20 64 65 61 64 6c 6f 63 6b 2e 22 0a 20 20 28 77 68 65 6e 20 28 65 .causing.a.deadlock."...(when.(e
8c880 71 20 6d 61 69 6e 2d 74 68 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 74 68 72 65 61 64 29 29 0a q.main-thread.(current-thread)).
8c8a0 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6e 6f 74 ....(error."This.function.cannot
8c8c0 20 62 65 20 69 6e 76 6f 6b 65 64 20 62 79 20 74 68 65 20 6d 61 69 6e 20 74 68 72 65 61 64 22 29 .be.invoked.by.the.main.thread")
8c8e0 29 0a 20 20 28 6c 65 74 2a 20 28 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 69 70 63 )...(let*.((emms-volume-mpv--ipc
8c900 2d 73 79 6e 63 20 28 6d 61 6b 65 2d 6d 75 74 65 78 20 22 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d -sync.(make-mutex."emms-volume-m
8c920 70 76 2d 2d 69 70 63 2d 73 79 6e 63 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 76 pv--ipc-sync"))..........(emms-v
8c940 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 69 70 63 2d 73 79 6e 63 2d 63 68 65 63 6b 20 28 6d 61 6b 65 2d olume-mpv--ipc-sync-check.(make-
8c960 63 6f 6e 64 69 74 69 6f 6e 2d 76 61 72 69 61 62 6c 65 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d condition-variable.emms-volume-m
8c980 70 76 2d 2d 69 70 63 2d 73 79 6e 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pv--ipc-sync....................
8c9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8c9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 ................"emms-volume-mpv
8c9e0 2d 2d 69 70 63 2d 73 79 6e 63 2d 63 68 65 63 6b 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6d --ipc-sync-check"))..........(em
8ca00 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 69 70 63 2d 73 79 6e 63 2d 72 65 70 6c 79 20 6e 69 ms-volume-mpv--ipc-sync-reply.ni
8ca20 6c 29 29 0a 20 20 20 20 28 77 69 74 68 2d 6d 75 74 65 78 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d l)).....(with-mutex.emms-volume-
8ca40 6d 70 76 2d 2d 69 70 63 2d 73 79 6e 63 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 mpv--ipc-sync.......(emms-player
8ca60 2d 6d 70 76 2d 69 70 63 2d 72 65 71 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 63 6d 64 0a 20 20 20 -mpv-ipc-req-send........cmd....
8ca80 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 64 61 74 61 20 65 72 72 29 0a 20 20 20 20 20 20 20 ....#'(lambda.(data.err)........
8caa0 20 20 20 20 28 77 69 74 68 2d 6d 75 74 65 78 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d ....(with-mutex.emms-volume-mpv-
8cac0 2d 69 70 63 2d 73 79 6e 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d -ipc-sync..............(setq.emm
8cae0 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 69 70 63 2d 73 79 6e 63 2d 72 65 70 6c 79 20 28 6c 69 s-volume-mpv--ipc-sync-reply.(li
8cb00 73 74 20 64 61 74 61 20 65 72 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 st.data.err))..............(cond
8cb20 69 74 69 6f 6e 2d 6e 6f 74 69 66 79 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 69 70 ition-notify.emms-volume-mpv--ip
8cb40 63 2d 73 79 6e 63 2d 63 68 65 63 6b 29 29 29 0a 20 20 20 20 20 20 20 70 72 6f 63 29 0a 20 20 20 c-sync-check)))........proc)....
8cb60 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d ...(while.(not.emms-volume-mpv--
8cb80 69 70 63 2d 73 79 6e 63 2d 72 65 70 6c 79 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 ipc-sync-reply).........(conditi
8cba0 6f 6e 2d 77 61 69 74 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 69 70 63 2d 73 79 6e on-wait.emms-volume-mpv--ipc-syn
8cbc0 63 2d 63 68 65 63 6b 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6d 75 6c 74 69 70 6c 65 2d 76 61 6c c-check)).......(cl-multiple-val
8cbe0 75 65 2d 62 69 6e 64 20 28 64 61 74 61 20 65 72 72 29 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d ue-bind.(data.err).emms-volume-m
8cc00 70 76 2d 2d 69 70 63 2d 73 79 6e 63 2d 72 65 70 6c 79 0a 20 20 20 20 20 20 20 20 28 69 66 20 65 pv--ipc-sync-reply.........(if.e
8cc20 72 72 20 28 65 72 72 6f 72 20 22 46 61 69 6c 65 64 20 74 6f 20 72 75 6e 20 25 73 2c 20 25 73 22 rr.(error."Failed.to.run.%s,.%s"
8cc40 20 63 6d 64 20 65 72 72 29 20 64 61 74 61 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 .cmd.err).data)))))..(defun.emms
8cc60 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 76 6f 6c 20 76 6f 6c 75 6d 65 2d 6d 61 -volume-mpv-limit.(vol.volume-ma
8cc80 78 20 26 6f 70 74 69 6f 6e 61 6c 20 76 6f 6c 75 6d 65 2d 6d 69 6e 29 0a 20 20 22 4c 69 6d 69 74 x.&optional.volume-min)..."Limit
8cca0 20 56 4f 4c 20 74 6f 20 74 68 65 20 72 61 6e 67 65 20 5b 30 20 2d 20 76 6f 6c 75 6d 65 2d 6d 61 .VOL.to.the.range.[0.-.volume-ma
8ccc0 78 5d 2e 22 0a 20 20 28 6d 61 78 20 28 6d 69 6e 20 76 6f 6c 20 76 6f 6c 75 6d 65 2d 6d 61 78 29 x]."...(max.(min.vol.volume-max)
8cce0 20 28 6f 72 20 76 6f 6c 75 6d 65 2d 6d 69 6e 20 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d .(or.volume-min.0)))..(defun.emm
8cd00 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 73 6d 61 72 74 2d 69 6e 63 72 65 6d 65 6e 74 20 28 6e s-volume-mpv--smart-increment.(n
8cd20 61 74 69 76 65 2d 6f 6c 64 20 73 79 73 74 65 6d 2d 6f 6c 64 20 61 6d 6f 75 6e 74 20 6e 61 74 69 ative-old.system-old.amount.nati
8cd40 76 65 2d 6d 61 78 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 3c 20 6e 61 74 69 76 65 2d 6f 6c ve-max)...(cond....((<.native-ol
8cd60 64 20 31 30 30 29 0a 20 20 20 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 d.100).....(list.(emms-volume-mp
8cd80 76 2d 6c 69 6d 69 74 20 28 2b 20 6e 61 74 69 76 65 2d 6f 6c 64 20 61 6d 6f 75 6e 74 29 20 31 30 v-limit.(+.native-old.amount).10
8cda0 30 29 20 73 79 73 74 65 6d 2d 6f 6c 64 29 29 0a 20 20 20 28 28 3c 20 73 79 73 74 65 6d 2d 6f 6c 0).system-old))....((<.system-ol
8cdc0 64 20 31 30 30 29 0a 20 20 20 20 28 6c 69 73 74 20 6e 61 74 69 76 65 2d 6f 6c 64 20 28 65 6d 6d d.100).....(list.native-old.(emm
8cde0 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 2b 20 73 79 73 74 65 6d 2d 6f 6c 64 s-volume-mpv-limit.(+.system-old
8ce00 20 61 6d 6f 75 6e 74 29 20 31 30 30 29 29 29 0a 20 20 20 28 74 20 28 6c 69 73 74 20 28 65 6d 6d .amount).100)))....(t.(list.(emm
8ce20 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 2b 20 6e 61 74 69 76 65 2d 6f 6c 64 s-volume-mpv-limit.(+.native-old
8ce40 20 61 6d 6f 75 6e 74 29 20 6e 61 74 69 76 65 2d 6d 61 78 29 20 73 79 73 74 65 6d 2d 6f 6c 64 29 .amount).native-max).system-old)
8ce60 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 73 6d 61 )))..(defun.emms-volume-mpv--sma
8ce80 72 74 2d 64 65 63 72 65 6d 65 6e 74 20 28 6e 61 74 69 76 65 2d 6f 6c 64 20 73 79 73 74 65 6d 2d rt-decrement.(native-old.system-
8cea0 6f 6c 64 20 61 6d 6f 75 6e 74 20 6e 61 74 69 76 65 2d 6d 61 78 29 0a 20 20 28 63 6f 6e 64 0a 20 old.amount.native-max)...(cond..
8cec0 20 20 28 28 3e 20 6e 61 74 69 76 65 2d 6f 6c 64 20 31 30 30 29 0a 20 20 20 20 28 6c 69 73 74 20 ..((>.native-old.100).....(list.
8cee0 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 2b 20 6e 61 74 69 76 65 (emms-volume-mpv-limit.(+.native
8cf00 2d 6f 6c 64 20 61 6d 6f 75 6e 74 29 20 6e 61 74 69 76 65 2d 6d 61 78 20 31 30 30 29 20 73 79 73 -old.amount).native-max.100).sys
8cf20 74 65 6d 2d 6f 6c 64 29 29 0a 20 20 20 28 74 20 28 6c 69 73 74 20 6e 61 74 69 76 65 2d 6f 6c 64 tem-old))....(t.(list.native-old
8cf40 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 2b 20 73 79 73 74 65 .(emms-volume-mpv-limit.(+.syste
8cf60 6d 2d 6f 6c 64 20 61 6d 6f 75 6e 74 29 20 31 30 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 m-old.amount).100)))))..(defun.e
8cf80 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 73 6d 61 72 74 2d 63 68 61 6e 67 65 20 28 6e 61 mms-volume-mpv--smart-change.(na
8cfa0 74 69 76 65 2d 6f 6c 64 20 73 79 73 74 65 6d 2d 6f 6c 64 20 61 6d 6f 75 6e 74 20 6e 61 74 69 76 tive-old.system-old.amount.nativ
8cfc0 65 2d 6d 61 78 29 0a 20 20 28 69 66 20 28 3e 3d 20 61 6d 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 e-max)...(if.(>=.amount.0)......
8cfe0 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 73 6d 61 72 74 2d 69 6e 63 72 65 6d 65 .(emms-volume-mpv--smart-increme
8d000 6e 74 20 6e 61 74 69 76 65 2d 6f 6c 64 20 73 79 73 74 65 6d 2d 6f 6c 64 20 61 6d 6f 75 6e 74 20 nt.native-old.system-old.amount.
8d020 6e 61 74 69 76 65 2d 6d 61 78 29 0a 20 20 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 native-max).....(emms-volume-mpv
8d040 2d 2d 73 6d 61 72 74 2d 64 65 63 72 65 6d 65 6e 74 20 6e 61 74 69 76 65 2d 6f 6c 64 20 73 79 73 --smart-decrement.native-old.sys
8d060 74 65 6d 2d 6f 6c 64 20 61 6d 6f 75 6e 74 20 6e 61 74 69 76 65 2d 6d 61 78 29 29 29 0a 0a 3b 3b tem-old.amount.native-max)))..;;
8d080 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d ;###autoload.(defun.emms-volume-
8d0a0 6d 70 76 2d 63 68 61 6e 67 65 20 28 61 6d 6f 75 6e 74 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f mpv-change.(amount.&optional.pro
8d0c0 63 29 0a 20 20 22 43 68 61 6e 67 65 20 76 6f 6c 75 6d 65 20 62 79 20 41 4d 4f 55 4e 54 20 75 73 c)..."Change.volume.by.AMOUNT.us
8d0e0 69 6e 67 20 6d 70 76 20 70 72 6f 63 65 73 73 20 50 52 4f 43 2e 22 0a 20 20 28 75 6e 6c 65 73 73 ing.mpv.process.PROC."...(unless
8d100 20 28 6f 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 70 72 6f 63 20 70 72 .(or.emms-player-mpv-ipc-proc.pr
8d120 6f 63 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 6d 70 76 20 69 73 20 6e 6f 74 20 63 75 72 72 65 oc).....(error."mpv.is.not.curre
8d140 6e 74 6c 79 20 72 75 6e 6e 69 6e 67 22 29 29 0a 20 20 3b 3b 20 6d 70 76 20 64 6f 65 73 20 6e 6f ntly.running"))...;;.mpv.does.no
8d160 74 20 70 72 6f 74 65 63 74 20 61 67 61 69 6e 73 74 20 73 74 6f 72 69 6e 67 20 76 6f 6c 75 6d 65 t.protect.against.storing.volume
8d180 73 20 3e 20 76 6f 6c 75 6d 65 2d 6d 61 78 2e 20 57 65 0a 20 20 3b 3b 20 6d 75 73 74 20 72 65 74 s.>.volume-max..We...;;.must.ret
8d1a0 72 69 65 76 65 20 76 6f 6c 75 6d 65 2d 6d 61 78 20 61 6e 64 20 76 65 72 69 66 79 20 74 68 65 20 rieve.volume-max.and.verify.the.
8d1c0 74 61 72 67 65 74 20 76 6f 6c 75 6d 65 2e 0a 20 20 28 6d 61 6b 65 2d 74 68 72 65 61 64 0a 20 20 target.volume....(make-thread...
8d1e0 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 28 77 69 74 68 2d 6d 75 74 65 78 20 65 6d 6d .(lambda.()......(with-mutex.emm
8d200 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 76 6f 6c 75 6d 65 2d 73 79 6e 63 0a 20 20 20 20 20 20 s-volume-mpv--volume-sync.......
8d220 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 46 61 69 6c 65 64 20 74 6f .(with-demoted-errors."Failed.to
8d240 20 61 64 6a 75 73 74 20 74 68 65 20 76 6f 6c 75 6d 65 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 .adjust.the.volume:.%s".........
8d260 20 28 6c 65 74 2a 20 28 28 6e 61 74 69 76 65 2d 6d 61 78 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 .(let*.((native-max.(emms-volume
8d280 2d 6d 70 76 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 69 70 63 20 27 28 67 65 74 5f 70 72 6f 70 65 -mpv-synchronous-ipc.'(get_prope
8d2a0 72 74 79 20 76 6f 6c 75 6d 65 2d 6d 61 78 29 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 rty.volume-max).proc))..........
8d2c0 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d 6f 6c 64 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d .......(native-old.(emms-volume-
8d2e0 6d 70 76 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 69 70 63 20 27 28 67 65 74 5f 70 72 6f 70 65 72 mpv-synchronous-ipc.'(get_proper
8d300 74 79 20 76 6f 6c 75 6d 65 29 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ty.volume).proc))...............
8d320 20 20 28 73 79 73 74 65 6d 2d 6f 6c 64 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 73 ..(system-old.(emms-volume-mpv-s
8d340 79 6e 63 68 72 6f 6e 6f 75 73 2d 69 70 63 20 27 28 67 65 74 5f 70 72 6f 70 65 72 74 79 20 61 6f ynchronous-ipc.'(get_property.ao
8d360 2d 76 6f 6c 75 6d 65 29 20 70 72 6f 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 -volume).proc)))............(pca
8d380 73 65 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 se.emms-volume-mpv-method.......
8d3a0 20 20 20 20 20 20 20 28 27 6e 61 74 69 76 65 20 28 6c 65 74 20 28 28 76 6f 6c 75 6d 65 20 28 65 .......('native.(let.((volume.(e
8d3c0 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 2b 20 6e 61 74 69 76 65 2d 6f mms-volume-mpv-limit.(+.native-o
8d3e0 6c 64 20 61 6d 6f 75 6e 74 29 20 6e 61 74 69 76 65 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 ld.amount).native-max)))........
8d400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 .................(emms-volume-mp
8d420 76 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 69 70 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 v-synchronous-ipc...............
8d440 20 20 20 20 20 20 20 20 20 20 20 60 28 73 65 74 5f 70 72 6f 70 65 72 74 79 20 76 6f 6c 75 6d 65 ...........`(set_property.volume
8d460 20 2c 76 6f 6c 75 6d 65 29 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .,volume).proc).................
8d480 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 61 74 69 76 65 20 76 6f 6c 75 6d 65 20 ........(message."Native.volume.
8d4a0 69 73 20 25 64 25 25 22 20 76 6f 6c 75 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 is.%d%%".volume)))..............
8d4c0 28 27 73 79 73 74 65 6d 20 28 6c 65 74 20 28 28 76 6f 6c 75 6d 65 20 28 65 6d 6d 73 2d 76 6f 6c ('system.(let.((volume.(emms-vol
8d4e0 75 6d 65 2d 6d 70 76 2d 6c 69 6d 69 74 20 28 2b 20 73 79 73 74 65 6d 2d 6f 6c 64 20 61 6d 6f 75 ume-mpv-limit.(+.system-old.amou
8d500 6e 74 29 20 31 30 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt).100)))......................
8d520 20 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 2d ...(emms-volume-mpv-synchronous-
8d540 69 70 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 73 ipc..........................`(s
8d560 65 74 5f 70 72 6f 70 65 72 74 79 20 61 6f 2d 76 6f 6c 75 6d 65 20 2c 76 6f 6c 75 6d 65 29 20 70 et_property.ao-volume.,volume).p
8d580 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 roc).........................(me
8d5a0 73 73 61 67 65 20 22 53 79 73 74 65 6d 20 76 6f 6c 75 6d 65 20 69 73 20 25 64 25 25 22 20 76 6f ssage."System.volume.is.%d%%".vo
8d5c0 6c 75 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 73 6d 61 72 74 20 28 63 6c lume)))..............('smart.(cl
8d5e0 2d 6d 75 6c 74 69 70 6c 65 2d 76 61 6c 75 65 2d 62 69 6e 64 20 28 6e 61 74 69 76 65 20 73 79 73 -multiple-value-bind.(native.sys
8d600 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 tem)..........................(e
8d620 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 2d 73 6d 61 72 74 2d 63 68 61 6e 67 65 20 6e 61 74 mms-volume-mpv--smart-change.nat
8d640 69 76 65 2d 6f 6c 64 20 73 79 73 74 65 6d 2d 6f 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ive-old.system-old..............
8d660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8d680 20 20 20 20 20 20 20 20 20 20 20 61 6d 6f 75 6e 74 20 6e 61 74 69 76 65 2d 6d 61 78 29 0a 20 20 ...........amount.native-max)...
8d6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d .....................(emms-volum
8d6c0 65 2d 6d 70 76 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 69 70 63 0a 20 20 20 20 20 20 20 20 20 20 e-mpv-synchronous-ipc...........
8d6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 73 65 74 5f 70 72 6f 70 65 72 74 79 20 76 6f 6c ..............`(set_property.vol
8d700 75 6d 65 20 2c 6e 61 74 69 76 65 29 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ume.,native).proc)..............
8d720 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 73 79 6e 63 68 ..........(emms-volume-mpv-synch
8d740 72 6f 6e 6f 75 73 2d 69 70 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ronous-ipc......................
8d760 20 20 20 60 28 73 65 74 5f 70 72 6f 70 65 72 74 79 20 61 6f 2d 76 6f 6c 75 6d 65 20 2c 73 79 73 ...`(set_property.ao-volume.,sys
8d780 74 65 6d 29 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tem).proc)......................
8d7a0 20 20 28 6d 65 73 73 61 67 65 20 22 4e 61 74 69 76 65 20 76 6f 6c 75 6d 65 20 69 73 20 25 64 25 ..(message."Native.volume.is.%d%
8d7c0 25 20 61 6e 64 20 73 79 73 74 65 6d 20 76 6f 6c 75 6d 65 20 69 73 20 25 64 25 25 22 0a 20 20 20 %.and.system.volume.is.%d%%"....
8d7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 74 .............................nat
8d800 69 76 65 20 73 79 73 74 65 6d 29 29 29 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 ive.system))))))))))..(provide.'
8d820 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d emms-volume-mpv)..;;;.emms-volum
8d840 65 2d 6d 70 76 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 e-mpv.el.ends.here..............
8d860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da00 65 6d 6d 73 2d 32 34 2f 64 69 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/dir.....................
8da20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8da80 30 30 30 31 31 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 33 37 36 00 20 30 00 00 00 0001140.00000000000.011376..0...
8daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8db00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8db20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc00 54 68 69 73 20 69 73 20 74 68 65 20 66 69 6c 65 20 2e 2e 2e 2f 69 6e 66 6f 2f 64 69 72 2c 20 77 This.is.the.file..../info/dir,.w
8dc20 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 74 6f 70 6d 6f 73 74 20 6e 6f 64 65 20 6f hich.contains.the.topmost.node.o
8dc40 66 20 74 68 65 20 49 6e 66 6f 20 68 69 65 72 61 72 63 68 79 2c 20 63 61 6c 6c 65 64 20 28 64 69 f.the.Info.hierarchy,.called.(di
8dc60 72 29 54 6f 70 2e 0a 54 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 69 6e 76 6f 6b 65 r)Top..The.first.time.you.invoke
8dc80 20 49 6e 66 6f 20 79 6f 75 20 73 74 61 72 74 20 6f 66 66 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 .Info.you.start.off.looking.at.t
8dca0 68 69 73 20 6e 6f 64 65 2e 0a 1f 0a 46 69 6c 65 3a 20 64 69 72 2c 09 4e 6f 64 65 3a 20 54 6f 70 his.node....File:.dir,.Node:.Top
8dcc0 09 54 68 69 73 20 69 73 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 49 4e 46 4f 20 74 72 65 .This.is.the.top.of.the.INFO.tre
8dce0 65 0a 0a 20 20 54 68 69 73 20 28 74 68 65 20 44 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 20 67 e....This.(the.Directory.node).g
8dd00 69 76 65 73 20 61 20 6d 65 6e 75 20 6f 66 20 6d 61 6a 6f 72 20 74 6f 70 69 63 73 2e 0a 20 20 54 ives.a.menu.of.major.topics....T
8dd20 79 70 69 6e 67 20 22 71 22 20 65 78 69 74 73 2c 20 22 48 22 20 6c 69 73 74 73 20 61 6c 6c 20 49 yping."q".exits,."H".lists.all.I
8dd40 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 2c 20 22 64 22 20 72 65 74 75 72 6e 73 20 68 65 72 65 2c 0a nfo.commands,."d".returns.here,.
8dd60 20 20 22 68 22 20 67 69 76 65 73 20 61 20 70 72 69 6d 65 72 20 66 6f 72 20 66 69 72 73 74 2d 74 .."h".gives.a.primer.for.first-t
8dd80 69 6d 65 72 73 2c 0a 20 20 22 6d 45 6d 61 63 73 3c 52 65 74 75 72 6e 3e 22 20 76 69 73 69 74 73 imers,..."mEmacs<Return>".visits
8dda0 20 74 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 2c 20 65 74 63 2e 0a 0a 20 20 49 6e 20 45 6d .the.Emacs.manual,.etc.....In.Em
8ddc0 61 63 73 2c 20 79 6f 75 20 63 61 6e 20 63 6c 69 63 6b 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 acs,.you.can.click.mouse.button.
8dde0 32 20 6f 6e 20 61 20 6d 65 6e 75 20 69 74 65 6d 20 6f 72 20 63 72 6f 73 73 20 72 65 66 65 72 65 2.on.a.menu.item.or.cross.refere
8de00 6e 63 65 0a 20 20 74 6f 20 73 65 6c 65 63 74 20 69 74 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 45 6d nce...to.select.it...*.Menu:..Em
8de20 61 63 73 0a 2a 20 45 6d 6d 73 3a 20 28 65 6d 6d 73 29 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 acs.*.Emms:.(emms)..............
8de40 20 20 20 20 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 74 65 6d 0a ....The.Emacs.Multimedia.System.
8de60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8df00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8df20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8df40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-pkg.el.............
8e020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8e080 30 30 30 30 36 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 35 31 00 20 30 00 00 00 0000673.00000000000.012751..0...
8e0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8e120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8e140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e200 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
8e220 20 66 72 6f 6d 20 65 6d 6d 73 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 .from.emms.el..-*-.no-byte-compi
8e240 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 65 6d 6d 73 22 le:.t.-*-.(define-package."emms"
8e260 20 22 32 34 22 20 22 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 74 ."24"."The.Emacs.Multimedia.Syst
8e280 65 6d 22 20 27 28 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29 20 28 6e 61 64 76 69 63 65 20 22 30 em".'((cl-lib."0.5").(nadvice."0
8e2a0 2e 33 22 29 20 28 73 65 71 20 22 30 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 35 33 64 62 32 62 66 .3").(seq."0")).:commit."53db2bf
8e2c0 31 66 30 34 37 35 63 39 34 30 34 66 35 36 64 36 37 61 62 37 35 65 64 66 31 66 64 66 31 38 64 66 1f0475c9404f56d67ab75edf1fdf18df
8e2e0 65 22 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 22 e".:authors.'(("Jorgen.Sch..fer"
8e300 20 2e 20 22 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 22 29 29 20 3a 6d 61 69 6e 74 61 69 ..."forcer@forcix.cx")).:maintai
8e320 6e 65 72 20 27 28 22 59 6f 6e 69 20 52 61 62 6b 69 6e 22 20 2e 20 22 79 72 6b 40 67 6e 75 2e 6f ner.'("Yoni.Rabkin"..."yrk@gnu.o
8e340 72 67 22 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 65 6d 6d 73 22 20 22 6d 70 33 22 20 22 6f rg").:keywords.'("emms"."mp3"."o
8e360 67 67 22 20 22 66 6c 61 63 22 20 22 6d 75 73 69 63 22 20 22 6d 70 65 67 22 20 22 76 69 64 65 6f gg"."flac"."music"."mpeg"."video
8e380 22 20 22 6d 75 6c 74 69 6d 65 64 69 61 22 29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 77 77 "."multimedia").:url."https://ww
8e3a0 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d 6d 73 2f 22 29 0a 00 00 00 00 00 w.gnu.org/software/emms/")......
8e3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-setup.el...........
8e420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8e480 30 30 32 31 30 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 32 32 00 20 30 00 00 00 0021070.00000000000.013322..0...
8e4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8e520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8e540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e600 3b 3b 3b 20 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 20 2d 2d 2d 20 53 65 74 75 70 20 73 63 72 69 ;;;.emms-setup.el.---.Setup.scri
8e620 70 74 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 pt.for.EMMS..-*-.lexical-binding
8e640 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 35 2d :.t;.-*-..;;.Copyright.(C).2005-
8e660 32 30 32 32 2c 20 32 30 32 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 2022,.2025..Free.Software.Founda
8e680 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b tion,.Inc...;;.Author:.Yoni.Rabk
8e6a0 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d in.<yrk@gnu.org>.;;.Keywords:.em
8e6c0 6d 73 20 73 65 74 75 70 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c ms.setup.multimedia..;;.This.fil
8e6e0 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 e.is.part.of.EMMS...;;.EMMS.is.f
8e700 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 ree.software;.you.can.redistribu
8e720 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 te.it.and/or.modify.;;.it.under.
8e740 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 the.terms.of.the.GNU.General.Pub
8e760 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 lic.License.as.published.by.;;.t
8e780 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 he.Free.Software.Foundation;.eit
8e7a0 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f her.version.3,.or.(at.your.optio
8e7c0 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d n).;;.any.later.version...;;.EMM
8e7e0 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 S.is.distributed.in.the.hope.tha
8e800 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 t.it.will.be.useful,.;;.but.WITH
8e820 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 OUT.ANY.WARRANTY;.without.even.t
8e840 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 he.implied.warranty.of.;;.MERCHA
8e860 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NTABILITY.or.FITNESS.FOR.A.PARTI
8e880 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 CULAR.PURPOSE...See.the.;;.GNU.G
8e8a0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 eneral.Public.License.for.more.d
8e8c0 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 etails...;;.You.should.have.rece
8e8e0 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
8e900 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 ublic.License.;;.along.with.EMMS
8e920 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c ;.see.the.file.COPYING...If.not,
8e940 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 .write.to.the.;;.Free.Software.F
8e960 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c oundation,.Inc.,.51.Franklin.St,
8e980 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 .Fifth.Floor,.;;.Boston,.MA.0211
8e9a0 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 0-1301,.USA...;;;.Commentary:..;
8e9c0 3b 20 54 68 69 73 20 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 60 65 6d 6d 73 2d 73 ;.This.file.provides.the.`emms-s
8e9e0 65 74 75 70 27 20 66 65 61 74 75 72 65 2e 20 57 69 74 68 20 60 65 6d 6d 73 2d 73 65 74 75 70 27 etup'.feature..With.`emms-setup'
8ea00 20 77 65 0a 3b 3b 20 63 61 6e 20 73 65 74 75 70 20 45 6d 6d 73 20 77 69 74 68 20 64 69 66 66 65 .we.;;.can.setup.Emms.with.diffe
8ea20 72 65 6e 74 20 66 65 61 74 75 72 65 73 20 65 6e 61 62 6c 65 64 2e 20 54 68 65 20 75 73 65 20 6f rent.features.enabled..The.use.o
8ea40 66 20 74 68 69 73 0a 3b 3b 20 66 65 61 74 75 72 65 20 69 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 f.this.;;.feature.is.documented.
8ea60 69 6e 20 74 68 65 20 45 6d 6d 73 20 6d 61 6e 75 61 6c 20 77 68 69 63 68 20 69 73 20 64 69 73 74 in.the.Emms.manual.which.is.dist
8ea80 72 69 62 75 74 65 64 20 77 69 74 68 0a 3b 3b 20 45 6d 6d 73 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 ributed.with.;;.Emms..;;.;;.The.
8eaa0 75 73 65 20 74 68 69 73 20 66 65 61 74 75 72 65 20 77 65 20 63 61 6e 20 69 6e 76 6f 6b 65 20 28 use.this.feature.we.can.invoke.(
8eac0 66 6f 72 20 65 78 61 6d 70 6c 65 29 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 72 65 71 for.example):.;;.;;.........(req
8eae0 75 69 72 65 20 27 65 6d 6d 73 2d 73 65 74 75 70 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 65 6d uire.'emms-setup).;;.........(em
8eb00 6d 73 2d 61 6c 6c 29 0a 3b 3b 0a 3b 3b 20 54 68 65 20 66 69 72 73 74 20 63 6f 6d 6d 61 6e 64 20 ms-all).;;.;;.The.first.command.
8eb20 6c 6f 61 64 73 20 74 68 65 20 66 65 61 74 75 72 65 20 69 6e 74 6f 20 45 6d 61 63 73 20 61 6e 64 loads.the.feature.into.Emacs.and
8eb40 20 74 68 65 20 73 65 63 6f 6e 64 0a 3b 3b 20 63 68 6f 6f 73 65 73 20 74 68 65 20 60 65 6d 6d 73 .the.second.;;.chooses.the.`emms
8eb60 2d 61 6c 6c 27 20 6c 65 76 65 6c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 -all'.level...;;;.Code:..(requir
8eb80 65 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 73 65 74 75 70 20 6e e.'emms)..(defgroup.emms-setup.n
8eba0 69 6c 0a 20 20 22 2a 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 74 il..."*The.Emacs.Multimedia.Syst
8ebc0 65 6d 20 73 65 74 75 70 20 75 74 69 6c 69 74 79 2e 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d em.setup.utility."...:prefix."em
8ebe0 6d 73 2d 73 65 74 75 70 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 75 6c 74 69 6d 65 64 69 61 29 0a ms-setup"...:group.'multimedia).
8ec00 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 65 66 61 75 6c 74 2d 70 .(defcustom.emms-setup-default-p
8ec20 6c 61 79 65 72 2d 6c 69 73 74 0a 20 20 27 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 layer-list...'(emms-player-mpg32
8ec40 31 0a 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6f 67 67 31 32 33 0a 20 20 20 20 65 6d 6d 1.....emms-player-ogg123.....emm
8ec60 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 65 6d s-player-mplayer-playlist.....em
8ec80 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 0a 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 ms-player-mplayer.....emms-playe
8eca0 72 2d 6d 70 76 0a 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 0a 20 20 20 20 65 6d r-mpv.....emms-player-vlc.....em
8ecc0 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 22 44 65 66 61 75 ms-player-vlc-playlist)..."Defau
8ece0 6c 74 20 6c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 66 6f 72 20 65 6d 6d 73 2d 73 65 74 75 lt.list.of.players.for.emms-setu
8ed00 70 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 79 6d 62 6f 6c 29 29 0a 0a 28 p."...:type.'(repeat.symbol))..(
8ed20 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 70 6c 61 79 65 defvar.emms-setup-discover-playe
8ed40 72 2d 61 6c 69 73 74 0a 20 20 27 28 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 20 r-alist...'((emms-player-mpg321.
8ed60 20 2e 20 22 6d 70 67 31 32 33 22 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6f 67 ..."mpg123").....(emms-player-og
8ed80 67 31 32 33 20 20 2e 20 22 6f 67 67 31 32 33 22 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 g123...."ogg123").....(emms-play
8eda0 65 72 2d 6d 70 6c 61 79 65 72 20 2e 20 22 6d 70 6c 61 79 65 72 22 29 0a 20 20 20 20 28 65 6d 6d er-mplayer..."mplayer").....(emm
8edc0 73 2d 70 6c 61 79 65 72 2d 6d 70 76 20 20 20 20 20 2e 20 22 6d 70 76 22 29 0a 20 20 20 20 28 65 s-player-mpv......."mpv").....(e
8ede0 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 20 20 20 20 20 2e 20 22 76 6c 63 22 29 29 0a 20 20 22 mms-player-vlc......."vlc"))..."
8ee00 41 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 61 6e 64 20 Association.list.of.players.and.
8ee20 74 68 65 69 72 20 62 69 6e 61 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d their.binaries.")..(defvar.emms-
8ee40 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 2d 61 6c 69 73 74 0a 20 20 27 28 28 65 setup-discover-info-alist...'((e
8ee60 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 20 2e 20 22 65 78 69 66 74 6f 6f 6c 22 29 0a mms-info-exiftool..."exiftool").
8ee80 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 20 2e 20 22 6d 65 74 61 66 ....(emms-info-metaflac..."metaf
8eea0 6c 61 63 22 29 0a 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 20 20 2e 20 lac").....(emms-info-mp3info....
8eec0 22 6d 70 33 69 6e 66 6f 22 29 0a 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 "mp3info").....(emms-info-ogginf
8eee0 6f 20 20 2e 20 22 6f 67 67 69 6e 66 6f 22 29 0a 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6f o...."ogginfo").....(emms-info-o
8ef00 70 75 73 69 6e 66 6f 20 2e 20 22 6f 70 75 73 69 6e 66 6f 22 29 29 0a 20 20 22 41 73 73 6f 63 69 pusinfo..."opusinfo"))..."Associ
8ef20 61 74 69 6f 6e 20 6c 69 73 74 20 6f 66 20 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 ation.list.of.info-functions.and
8ef40 20 74 68 65 69 72 20 62 69 6e 61 72 69 65 73 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f .their.binaries.")..;;;###autolo
8ef60 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 69 6e 69 6d 61 6c 69 73 74 69 63 20 28 29 0a 20 ad.(defun.emms-minimalistic.()..
8ef80 20 22 41 6e 20 45 6d 6d 73 20 73 65 74 75 70 20 73 63 72 69 70 74 2e 0a 49 6e 76 69 73 69 62 6c ."An.Emms.setup.script..Invisibl
8efa0 65 20 70 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 62 61 73 69 63 73 20 66 e.playlists.and.all.the.basics.f
8efc0 6f 72 20 70 6c 61 79 69 6e 67 20 6d 65 64 69 61 2e 22 0a 20 20 28 72 65 71 75 69 72 65 20 27 65 or.playing.media."...(require.'e
8efe0 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d mms-source-file)...(require.'emm
8f000 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 65 s-source-playlist)...(require.'e
8f020 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 65 mms-player-simple)...(require.'e
8f040 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 mms-player-mplayer)...(require.'
8f060 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d emms-player-mpv)...(require.'emm
8f080 73 2d 70 6c 61 79 65 72 2d 76 6c 63 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 s-player-vlc))..;;;###autoload.(
8f0a0 64 65 66 75 6e 20 65 6d 6d 73 2d 61 6c 6c 20 28 29 0a 20 20 22 41 6e 20 45 6d 6d 73 20 73 65 74 defun.emms-all.()..."An.Emms.set
8f0c0 75 70 20 73 63 72 69 70 74 2e 0a 45 76 65 72 79 74 68 69 6e 67 20 69 6e 63 6c 75 64 65 64 20 69 up.script..Everything.included.i
8f0e0 6e 20 74 68 65 20 60 65 6d 6d 73 2d 6d 69 6e 69 6d 61 6c 69 73 74 69 63 27 20 73 65 74 75 70 20 n.the.`emms-minimalistic'.setup.
8f100 61 6e 64 20 61 64 64 73 20 61 6c 6c 0a 74 68 65 20 73 74 61 62 6c 65 20 66 65 61 74 75 72 65 73 and.adds.all.the.stable.features
8f120 20 77 68 69 63 68 20 63 6f 6d 65 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 20 64 69 73 74 72 69 .which.come.with.the.Emms.distri
8f140 62 75 74 69 6f 6e 2e 22 0a 20 20 3b 3b 20 69 6e 63 6c 75 64 65 0a 20 20 28 65 6d 6d 73 2d 6d 69 bution."...;;.include...(emms-mi
8f160 6e 69 6d 61 6c 69 73 74 69 63 29 0a 20 20 3b 3b 20 64 65 66 69 6e 65 0a 20 20 28 65 76 61 6c 2d nimalistic)...;;.define...(eval-
8f180 61 6e 64 2d 63 6f 6d 70 69 6c 65 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 and-compile.....(require.'emms-p
8f1a0 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 laylist-mode).....(require.'emms
8f1c0 2d 69 6e 66 6f 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d -info).....(require.'emms-info-m
8f1e0 70 33 69 6e 66 6f 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d p3info).....(require.'emms-info-
8f200 6f 67 67 69 6e 66 6f 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f ogginfo).....(require.'emms-info
8f220 2d 6f 70 75 73 69 6e 66 6f 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e -opusinfo).....(require.'emms-in
8f240 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d fo-metaflac).....(require.'emms-
8f260 69 6e 66 6f 2d 74 69 6e 79 74 61 67 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 info-tinytag).....(require.'emms
8f280 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d -info-exiftool).....(require.'em
8f2a0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d ms-info-native).....(require.'em
8f2c0 6d 73 2d 63 61 63 68 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 6f 64 ms-cache).....(require.'emms-mod
8f2e0 65 2d 6c 69 6e 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 29 e-line).....(require.'emms-mark)
8f300 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 29 0a .....(require.'emms-tag-editor).
8f320 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 29 ....(require.'emms-tag-tracktag)
8f340 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 29 0a 20 20 .....(require.'emms-show-all)...
8f360 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 74 72 65 61 6d 73 29 0a 20 20 20 20 28 72 ..(require.'emms-streams).....(r
8f380 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 29 0a 20 20 20 20 28 72 65 71 75 69 72 equire.'emms-lyrics).....(requir
8f3a0 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 20 20 28 72 65 71 75 69 e.'emms-playing-time).....(requi
8f3c0 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 0a 20 20 20 20 28 72 65 71 75 69 72 re.'emms-player-mpd).....(requir
8f3e0 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 e.'emms-player-xine).....(requir
8f400 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 29 0a 20 20 20 20 28 72 65 71 75 e.'emms-playlist-sort).....(requ
8f420 69 72 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 ire.'emms-browser).....(require.
8f440 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 29 0a 20 20 20 20 28 72 65 71 75 69 'emms-mode-line-icon).....(requi
8f460 72 65 20 27 65 6d 6d 73 2d 63 75 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 re.'emms-cue).....(require.'emms
8f480 2d 62 6f 6f 6b 6d 61 72 6b 73 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c -bookmarks).....(require.'emms-l
8f4a0 61 73 74 2d 70 6c 61 79 65 64 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d ast-played).....(require.'emms-m
8f4c0 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 etaplaylist-mode).....(require.'
8f4e0 65 6d 6d 73 2d 73 74 72 65 61 6d 2d 69 6e 66 6f 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 emms-stream-info).....(require.'
8f500 65 6d 6d 73 2d 73 63 6f 72 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 68 emms-score).....(require.'emms-h
8f520 69 73 74 6f 72 79 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 31 38 6e 29 istory).....(require.'emms-i18n)
8f540 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 20 20 20 20 .....(require.'emms-volume).....
8f560 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 29 0a 20 (require.'emms-playlist-limit)..
8f580 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 ...(require.'emms-librefm-scrobb
8f5a0 6c 65 72 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d ler).....(require.'emms-librefm-
8f5c0 73 74 72 65 61 6d 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 70 72 69 73 stream).....(require.'emms-mpris
8f5e0 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 ).....(require.'emms-idapi-music
8f600 62 72 61 69 6e 7a 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 brainz).....(require.'emms-idapi
8f620 2d 62 72 6f 77 73 65 72 29 29 0a 20 20 3b 3b 20 73 65 74 75 70 0a 20 20 28 73 65 74 71 20 65 6d -browser))...;;.setup...(setq.em
8f640 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 23 ms-playlist-default-major-mode.#
8f660 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 28 61 64 64 2d 74 6f 2d 6c 'emms-playlist-mode)...(add-to-l
8f680 69 73 74 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 66 75 6e 63 74 ist.'emms-track-initialize-funct
8f6a0 69 6f 6e 73 20 23 27 65 6d 6d 73 2d 69 6e 66 6f 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 74 72 61 63 ions.#'emms-info-initialize-trac
8f6c0 6b 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 k)...(setq.emms-info-functions.'
8f6e0 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 69 (emms-info-native.emms-info-cuei
8f700 6e 66 6f 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 nfo))...(setq.emms-track-descrip
8f720 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d tion-function.#'emms-info-track-
8f740 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 65 description)...(when.(fboundp.'e
8f760 6d 6d 73 2d 63 61 63 68 65 29 09 09 3b 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 63 6f 6d 70 69 6c mms-cache)..;.work.around.compil
8f780 65 72 20 77 61 72 6e 69 6e 67 0a 20 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 20 31 29 29 0a 20 er.warning.....(emms-cache.1))..
8f7a0 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 28 65 6d 6d 73 .(emms-mode-line-mode.1)...(emms
8f7c0 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 62 6c 61 6e 6b 29 0a 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 -mode-line-blank)...(emms-lyrics
8f7e0 20 31 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 20 31 29 .1)...(emms-playing-time-mode.1)
8f800 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 ...(add-hook.'emms-player-starte
8f820 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 2d 75 70 64 61 74 65 d-hook.#'emms-last-played-update
8f840 2d 63 75 72 72 65 6e 74 29 0a 20 20 28 65 6d 6d 73 2d 73 63 6f 72 65 20 31 29 29 0a 0a 0a 3b 3b -current)...(emms-score.1))...;;
8f860 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 64 65 66 61 75 6c 74 ;###autoload.(defun.emms-default
8f880 2d 70 6c 61 79 65 72 73 20 28 29 0a 20 20 22 53 65 74 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d -players.()..."Set.`emms-player-
8f8a0 6c 69 73 74 27 20 74 6f 20 60 65 6d 6d 73 2d 73 65 74 75 70 2d 64 65 66 61 75 6c 74 2d 70 6c 61 list'.to.`emms-setup-default-pla
8f8c0 79 65 72 2d 6c 69 73 74 27 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d yer-list'."...(setq.emms-player-
8f8e0 6c 69 73 74 0a 09 65 6d 6d 73 2d 73 65 74 75 70 2d 64 65 66 61 75 6c 74 2d 70 6c 61 79 65 72 2d list..emms-setup-default-player-
8f900 6c 69 73 74 29 29 0a 0a 0a 0a 3b 3b 20 54 68 65 73 65 20 61 72 65 20 6b 65 70 74 20 61 72 6f 75 list))....;;.These.are.kept.arou
8f920 6e 64 20 69 6e 20 6f 72 64 65 72 20 6e 6f 74 20 74 6f 20 62 72 65 61 6b 20 61 6e 79 6f 6e 65 27 nd.in.order.not.to.break.anyone'
8f940 73 20 65 78 69 73 74 69 6e 67 0a 3b 3b 20 73 65 74 75 70 2e 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c s.existing.;;.setup..;;;###autol
8f960 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 64 65 76 65 6c 20 28 29 0a 20 20 28 65 6d 6d 73 oad.(defun.emms-devel.()...(emms
8f980 2d 61 6c 6c 29 29 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 27 65 6d 6d 73 2d 64 65 76 65 -all)).(make-obsolete.'emms-deve
8f9a0 6c 20 27 65 6d 6d 73 2d 61 6c 6c 20 22 34 2e 31 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f l.'emms-all."4.1")..;;;###autolo
8f9c0 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 61 6e 64 61 72 64 20 28 29 0a 20 20 28 65 6d ad.(defun.emms-standard.()...(em
8f9e0 6d 73 2d 61 6c 6c 29 29 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 27 65 6d 6d 73 2d 73 74 ms-all)).(make-obsolete.'emms-st
8fa00 61 6e 64 61 72 64 20 27 65 6d 6d 73 2d 61 6c 6c 20 22 34 2e 31 22 29 0a 0a 0a 3b 3b 3b 20 2d 2d andard.'emms-all."4.1")...;;;.--
8fa20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
8fa40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
8fa60 0a 3b 3b 3b 20 50 6c 61 79 65 72 20 64 69 73 63 6f 76 65 72 79 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d .;;;.Player.discovery.;;;.------
8fa80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
8faa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 ----------------------------.(de
8fac0 66 75 6e 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 62 69 6e 61 72 79 20 28 fun.emms-setup-discover-binary.(
8fae0 62 69 6e 2d 73 74 72 29 0a 20 20 22 46 69 6e 64 20 69 66 20 42 49 4e 2d 53 54 52 20 63 61 6e 20 bin-str)..."Find.if.BIN-STR.can.
8fb00 62 65 20 65 78 65 63 75 74 65 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6e 76 69 72 be.executed.in.the.current.envir
8fb20 6f 6e 6d 65 6e 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 20 73 79 73 74 65 6d onment."...(when.(not.(eq.system
8fb40 2d 74 79 70 65 20 27 67 6e 75 2f 6c 69 6e 75 78 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 -type.'gnu/linux)).....(error."P
8fb60 6c 61 79 65 72 20 64 69 73 63 6f 76 65 72 79 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f layer.discovery.only.supported.o
8fb80 6e 20 47 4e 55 2f 4c 69 6e 75 78 2e 22 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 n.GNU/Linux."))...(let.((result.
8fba0 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 77 68 69 63 68 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 (call-process."which".nil.nil.ni
8fbc0 6c 20 62 69 6e 2d 73 74 72 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 30 20 72 65 l.bin-str))).....(cond.((eq.0.re
8fbe0 73 75 6c 74 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 31 20 72 65 73 75 6c 74 sult).t)...........((eq.1.result
8fc00 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 32 20 72 65 73 75 6c 74 29 20 ).nil)...........((eq.2.result).
8fc20 28 65 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 60 77 68 (error."invalid.arguments.to.`wh
8fc40 69 63 68 27 2e 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 ich'.")))))..(defun.emms-setup-d
8fc60 69 73 63 6f 76 65 72 2d 70 6c 61 79 65 72 2d 68 61 73 2d 62 69 6e 61 72 79 2d 70 20 28 70 6c 61 iscover-player-has-binary-p.(pla
8fc80 79 65 72 29 0a 20 20 22 46 69 6e 64 20 69 66 20 50 4c 41 59 45 52 20 68 61 73 20 61 6e 20 65 78 yer)..."Find.if.PLAYER.has.an.ex
8fca0 63 65 63 75 74 61 62 6c 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6e 76 69 72 6f 6e cecutable.in.the.current.environ
8fcc0 6d 65 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 69 6e 2d 73 74 72 20 28 61 6c 69 73 74 2d 67 ment."...(let.((bin-str.(alist-g
8fce0 65 74 20 70 6c 61 79 65 72 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 70 6c et.player.emms-setup-discover-pl
8fd00 61 79 65 72 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 28 69 66 20 62 69 6e 2d 73 74 72 0a 09 28 ayer-alist))).....(if.bin-str..(
8fd20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 62 69 6e 61 72 79 20 62 69 6e 2d 73 emms-setup-discover-binary.bin-s
8fd40 74 72 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 tr).......nil)))..(defun.emms-se
8fd60 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 2d 68 61 73 2d 62 69 6e 61 72 79 2d 70 20 28 tup-discover-info-has-binary-p.(
8fd80 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 22 46 69 6e 64 20 69 66 20 49 4e 46 4f 2d 46 info-function)..."Find.if.INFO-F
8fda0 55 4e 43 54 49 4f 4e 20 68 61 73 20 61 6e 20 65 78 63 65 63 75 74 61 62 6c 65 20 69 6e 20 74 68 UNCTION.has.an.excecutable.in.th
8fdc0 65 20 63 75 72 72 65 6e 74 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 e.current.environment."...(let.(
8fde0 28 62 69 6e 2d 73 74 72 20 28 61 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 2d 66 75 6e 63 74 69 6f (bin-str.(alist-get.info-functio
8fe00 6e 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 2d 61 6c 69 73 74 n.emms-setup-discover-info-alist
8fe20 29 29 29 0a 20 20 20 20 28 69 66 20 62 69 6e 2d 73 74 72 0a 09 28 65 6d 6d 73 2d 73 65 74 75 70 ))).....(if.bin-str..(emms-setup
8fe40 2d 64 69 73 63 6f 76 65 72 2d 62 69 6e 61 72 79 20 62 69 6e 2d 73 74 72 29 0a 20 20 20 20 20 20 -discover-binary.bin-str).......
8fe60 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 nil)))..(defun.emms-setup-discov
8fe80 65 72 2d 70 6c 61 79 65 72 73 20 28 61 72 67 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 6c er-players.(arg)..."Interactivel
8fea0 79 20 61 64 64 20 70 6c 61 79 65 72 73 20 74 6f 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 y.add.players.to.`emms-player-li
8fec0 73 74 27 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 2c 20 61 6c 73 6f 20 69 6e 73 65 72 74 st'...With.a.prefix,.also.insert
8fee0 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 .the.configuration.at.point."...
8ff00 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 (interactive."P")...(when.(and.e
8ff20 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d mms-player-list..............(y-
8ff40 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 or-n-p.(format."`emms-player-lis
8ff60 74 27 20 69 73 20 61 6c 72 65 61 64 79 20 73 65 74 20 74 6f 20 25 73 2c 20 64 6f 20 79 6f 75 20 t'.is.already.set.to.%s,.do.you.
8ff80 77 61 6e 74 20 74 6f 20 65 6d 70 74 79 20 69 74 0a 66 69 72 73 74 3f 22 0a 09 09 09 20 20 20 20 want.to.empty.it.first?"........
8ffa0 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 ...emms-player-list))).....(setq
8ffc0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 6e 69 6c 29 29 0a 20 20 28 6c 65 74 20 28 .emms-player-list.nil))...(let.(
8ffe0 28 70 6c 61 79 65 72 73 20 28 63 6f 70 79 2d 74 72 65 65 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 (players.(copy-tree.emms-setup-d
90000 65 66 61 75 6c 74 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 efault-player-list))).....(while
90020 20 70 6c 61 79 65 72 73 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6c 61 79 65 72 20 28 63 61 .players.......(let.((player.(ca
90040 72 20 70 6c 61 79 65 72 73 29 29 29 0a 09 28 77 68 65 6e 20 28 65 6d 6d 73 2d 73 65 74 75 70 2d r.players)))..(when.(emms-setup-
90060 64 69 73 63 6f 76 65 72 2d 70 6c 61 79 65 72 2d 68 61 73 2d 62 69 6e 61 72 79 2d 70 20 70 6c 61 discover-player-has-binary-p.pla
90080 79 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 yer)...........(when.(y-or-n-p..
900a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 50 6c 61 79 65 72 20 ................(format."Player.
900c0 5c 22 25 73 5c 22 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 \"%s\".is.installed.on.your.syst
900e0 65 6d 2c 20 61 64 64 20 69 74 20 74 6f 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 6c 69 em,.add.it.to.the.Emms.player.li
90100 73 74 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c st?"..........................pl
90120 61 79 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 ayer)).............(add-to-list.
90140 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 70 6c 61 79 65 72 29 29 29 29 0a 20 20 20 'emms-player-list.player))))....
90160 20 20 20 28 73 65 74 71 20 70 6c 61 79 65 72 73 20 28 63 64 72 20 70 6c 61 79 65 72 73 29 29 29 ...(setq.players.(cdr.players)))
90180 29 0a 20 20 28 77 68 65 6e 20 61 72 67 0a 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 28 )...(when.arg.....(insert......(
901a0 66 6f 72 6d 61 74 20 22 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 27 format."(setq.emms-player-list.'
901c0 25 73 29 22 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 28 6d 65 73 73 %s)".emms-player-list)))...(mess
901e0 61 67 65 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 69 73 20 6e 6f 77 20 73 65 74 age."emms-player-list.is.now.set
90200 20 74 6f 3a 20 25 73 22 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 29 0a 0a 28 64 65 .to:.%s".emms-player-list))..(de
90220 66 75 6e 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 20 28 61 72 fun.emms-setup-discover-info.(ar
90240 67 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 6c 79 20 61 64 64 20 69 6e 66 6f 2d 66 75 6e g)..."Interactively.add.info-fun
90260 63 74 69 6f 6e 73 20 74 6f 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 27 2e ctions.to.`emms-info-functions'.
90280 0a 0a 57 69 74 68 20 70 72 65 66 69 78 2c 20 61 6c 73 6f 20 69 6e 73 65 72 74 20 74 68 65 20 63 ..With.prefix,.also.insert.the.c
902a0 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 onfiguration.at.point."...(inter
902c0 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 6e 61 74 69 76 65 2d 70 29 0a 20 20 active."P")...(let.(native-p)...
902e0 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 ..(when.(and.emms-info-functions
90300 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 ................(y-or-n-p.(forma
90320 74 20 22 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 27 20 69 73 20 61 6c 72 65 t."`emms-info-functions'.is.alre
90340 61 64 79 20 73 65 74 20 74 6f 20 25 73 2c 20 64 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 65 6d ady.set.to.%s,.do.you.want.to.em
90360 70 74 79 20 69 74 0a 66 69 72 73 74 3f 22 0a 09 09 09 09 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 pty.it.first?"......emms-info-fu
90380 6e 63 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f nctions))).......(setq.emms-info
903a0 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 79 2d 6f 72 -functions.nil)).....(when.(y-or
903c0 2d 6e 2d 70 0a 09 20 20 20 28 66 6f 72 6d 61 74 20 22 49 6e 73 74 61 6c 6c 20 74 68 65 20 62 75 -n-p.....(format."Install.the.bu
903e0 69 6c 74 2d 69 6e 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 27 20 69 6e 66 6f 20 66 ilt-in.`emms-info-native'.info.f
90400 75 6e 63 74 69 6f 6e 20 28 72 65 63 6f 6d 6d 65 6e 64 65 64 29 3f 22 29 29 0a 20 20 20 20 20 20 unction.(recommended)?")).......
90420 28 73 65 74 71 20 6e 61 74 69 76 65 2d 70 20 74 29 29 0a 20 20 20 20 28 6d 61 70 63 0a 20 20 20 (setq.native-p.t)).....(mapc....
90440 20 20 23 27 28 6c 61 6d 62 64 61 20 28 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 29 0a 09 20 28 77 ..#'(lambda.(info-function)...(w
90460 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e hen.(and.(emms-setup-discover-in
90480 66 6f 2d 68 61 73 2d 62 69 6e 61 72 79 2d 70 20 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 29 0a 09 fo-has-binary-p.info-function)..
904a0 09 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 0a 09 09 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4d .....(y-or-n-p........(format."M
904c0 65 74 61 2d 69 6e 66 6f 20 72 65 61 64 65 72 20 5c 22 25 73 5c 22 20 69 73 20 69 6e 73 74 61 6c eta-info.reader.\"%s\".is.instal
904e0 6c 65 64 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 61 64 64 20 69 74 20 74 6f 20 74 68 led.on.your.system,.add.it.to.th
90500 65 20 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 3f 22 0a 09 09 09 20 20 20 20 20 28 e.info-function.list?".........(
90520 61 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 20 65 6d 6d 73 2d 73 65 74 alist-get.info-function.emms-set
90540 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 2d 61 6c 69 73 74 29 29 29 29 0a 09 20 20 20 28 up-discover-info-alist)))).....(
90560 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 add-to-list.'emms-info-functions
90580 20 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 .info-function)))......(mapcar..
905a0 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 65 29 0a 09 20 20 28 63 61 72 20 65 29 29 0a 20 .....#'(lambda.(e)....(car.e))..
905c0 20 20 20 20 20 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 2d 61 6c .....emms-setup-discover-info-al
905e0 69 73 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 61 74 69 76 65 2d 70 0a 20 20 20 20 20 20 28 ist)).....(when.native-p.......(
90600 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 0a 09 20 20 20 20 28 63 setq.emms-info-functions......(c
90620 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d ons.'emms-info-native.emms-info-
90640 66 75 6e 63 74 69 6f 6e 73 29 29 29 29 0a 20 20 28 77 68 65 6e 20 61 72 67 0a 20 20 20 20 28 69 functions))))...(when.arg.....(i
90660 6e 73 65 72 74 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 28 73 65 74 71 20 65 6d 6d 73 2d 69 nsert......(format."(setq.emms-i
90680 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 25 73 29 22 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 nfo-functions.'%s)".emms-info-fu
906a0 6e 63 74 69 6f 6e 73 29 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 65 6d 6d 73 2d 69 6e 66 6f nctions)))...(message."emms-info
906c0 2d 66 75 6e 63 74 69 6f 6e 73 20 69 73 20 6e 6f 77 20 73 65 74 20 74 6f 3a 20 25 73 22 0a 09 20 -functions.is.now.set.to:.%s"...
906e0 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 29 29 0a 0a 28 64 65 66 75 6e 20 ..emms-info-functions))..(defun.
90700 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 20 28 29 0a 20 20 22 44 69 73 63 6f 76 emms-setup-discover.()..."Discov
90720 65 72 20 61 6e 64 20 6f 75 74 70 75 74 20 70 6c 61 79 65 72 73 20 61 6e 64 20 69 6e 66 6f 20 66 er.and.output.players.and.info.f
90740 75 6e 63 74 69 6f 6e 73 2e 0a 0a 53 63 61 6e 20 66 6f 72 20 6d 65 64 69 61 20 70 6c 61 79 65 72 unctions...Scan.for.media.player
90760 73 20 61 6e 64 20 6d 65 74 61 2d 64 61 74 61 20 72 65 61 64 65 72 73 20 6f 6e 20 74 68 65 20 75 s.and.meta-data.readers.on.the.u
90780 73 65 72 27 73 0a 6d 61 63 68 69 6e 65 20 61 6e 64 20 70 72 69 6e 74 20 6f 75 74 20 61 20 73 65 ser's.machine.and.print.out.a.se
907a0 74 75 70 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 73 65 tup."...(interactive)...(emms-se
907c0 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 70 6c 61 79 65 72 73 20 74 29 0a 20 20 28 6e 65 77 6c 69 tup-discover-players.t)...(newli
907e0 6e 65 29 0a 20 20 28 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 2d 69 6e 66 6f 20 ne)...(emms-setup-discover-info.
90800 74 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 73 65 74 75 70 29 0a 3b 3b 3b 20 t))...(provide.'emms-setup).;;;.
90820 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 emms-setup.el.ends.here.........
90840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
908a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
908c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
908e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
909a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
909c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
909e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2e 65 6c 00 00 00 00 emms-24/emms-info-tinytag.el....
90a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
90a80 30 30 30 37 33 34 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 37 37 00 20 30 00 00 00 0007341.00000000000.014577..0...
90aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
90b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
90b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90c00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2e 65 6c 20 2d 2d 2d 20 49 6e 66 ;;;.emms-info-tinytag.el.---.Inf
90c20 6f 2d 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d 4d 53 20 75 73 69 6e 67 20 74 69 6e 79 74 61 67 20 o-method.for.EMMS.using.tinytag.
90c40 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b .-*-.lexical-binding:.t;.-*-..;;
90c60 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 31 20 20 46 72 65 65 20 53 .Copyright.(C).2020-2021..Free.S
90c80 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 oftware.Foundation,.Inc...;;.Aut
90ca0 68 6f 72 3a 20 46 72 61 6e 20 42 75 72 73 74 61 6c 6c 20 3c 66 72 61 6e 2e 62 75 72 73 74 61 6c hor:.Fran.Burstall.<fran.burstal
90cc0 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6d 75 6c 74 69 6d l@gmail.com>.;;.Keywords:.multim
90ce0 65 64 69 61 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 edia..;;.EMMS.is.free.software;.
90d00 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d you.can.redistribute.it.and/or.m
90d20 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 odify.;;.it.under.the.terms.of.t
90d40 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 he.GNU.General.Public.License.as
90d60 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 .published.by.;;.the.Free.Softwa
90d80 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 re.Foundation,.either.version.3.
90da0 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f of.the.License,.or.;;.(at.your.o
90dc0 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d ption).any.later.version...;;.EM
90de0 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 MS.is.distributed.in.the.hope.th
90e00 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 at.it.will.be.useful,.;;.but.WIT
90e20 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 HOUT.ANY.WARRANTY;.without.even.
90e40 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 the.implied.warranty.of.;;.MERCH
90e60 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 ANTABILITY.or.FITNESS.FOR.A.PART
90e80 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 ICULAR.PURPOSE...See.the.;;.GNU.
90ea0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 General.Public.License.for.more.
90ec0 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 details...;;.You.should.have.rec
90ee0 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 eived.a.copy.of.the.GNU.General.
90f00 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d Public.License.;;.along.with.EMM
90f20 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 2e 20 20 49 66 20 6e 6f S;.see.the.file.COPYING....If.no
90f40 74 2c 20 73 65 65 0a 3b 3b 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c t,.see.;;.<https://www.gnu.org/l
90f60 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 icenses/>...;;;.Commentary:..;;.
90f80 54 68 69 73 20 63 6f 64 65 20 68 61 73 20 62 65 65 6e 20 61 64 61 70 74 65 64 20 66 72 6f 6d 20 This.code.has.been.adapted.from.
90fa0 63 6f 64 65 20 66 6f 75 6e 64 20 69 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2e 65 code.found.in.emms-info-libtag.e
90fc0 6c 2c 0a 3b 3b 20 77 72 69 74 74 65 6e 20 62 79 20 55 6c 72 69 6b 20 4a 65 6e 73 65 6e 20 3c 74 l,.;;.written.by.Ulrik.Jensen.<t
90fe0 65 72 72 79 70 40 64 61 69 6d 69 2e 61 75 2e 64 6b 3e 20 61 6e 64 20 4a 6f 72 67 65 6e 20 53 63 erryp@daimi.au.dk>.and.Jorgen.Sc
91000 68 c3 a4 66 65 72 0a 3b 3b 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 2e 0a 0a 3b h..fer.;;.<forcer@forcix.cx>...;
91020 3b 20 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 6d 65 74 68 6f 64 20 66 6f 72 20 67 65 ;.To.activate.this.method.for.ge
91040 74 74 69 6e 67 20 69 6e 66 6f 2c 20 75 73 65 3a 0a 0a 3b 3b 20 28 72 65 71 75 69 72 65 20 27 65 tting.info,.use:..;;.(require.'e
91060 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 29 0a 3b 3b 20 28 61 64 64 2d 74 6f 2d 6c 69 73 mms-info-tinytag).;;.(add-to-lis
91080 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 t.'emms-info-functions.'emms-inf
910a0 6f 2d 74 69 6e 79 74 61 67 29 0a 0a 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 20 73 68 6f o-tinytag)..;;.Note.that.you.sho
910c0 75 6c 64 20 72 65 6d 6f 76 65 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 20 61 6e 64 uld.remove.emms-info-mp3info.and
910e0 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 0a 3b 3b 20 66 72 6f 6d 20 74 68 65 20 65 .emms-info-ogginfo.;;.from.the.e
91100 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 6c 69 73 74 20 69 66 20 79 6f 75 20 77 mms-info-functions.list.if.you.w
91120 61 6e 74 20 74 6f 20 61 76 6f 69 64 0a 3b 3b 20 63 6f 6e 66 6c 69 63 74 73 2e 20 20 46 6f 72 20 ant.to.avoid.;;.conflicts...For.
91140 65 78 61 6d 70 6c 65 2c 20 74 6f 20 73 65 74 20 74 69 6e 79 74 61 67 20 61 73 20 79 6f 75 72 20 example,.to.set.tinytag.as.your.
91160 65 78 63 6c 75 73 69 76 65 20 69 6e 66 6f 0a 3b 3b 20 70 72 6f 76 69 64 65 72 3a 0a 0a 3b 3b 20 exclusive.info.;;.provider:..;;.
91180 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 (setq.emms-info-functions.'(emms
911a0 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 29 29 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 -info-tinytag))..;;.To.use.this.
911c0 70 72 6f 76 69 64 65 72 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 provider,.you.need.to.install.th
911e0 65 20 74 69 6e 79 74 61 67 20 70 79 74 68 6f 6e 20 6d 6f 64 75 6c 65 0a 3b 3b 20 77 69 74 68 20 e.tinytag.python.module.;;.with.
91200 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 3a 0a 0a 3b 3b 20 70 69 70 20 69 6e 73 74 61 6c 6c 20 something.like:..;;.pip.install.
91220 74 69 6e 79 74 61 67 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d tinytag..;;;.Code:..(require.'em
91240 6d 73 2d 69 6e 66 6f 29 0a 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 20 20 09 09 09 3b 73 65 ms-info).(require.'json).....;se
91260 65 20 62 65 6c 6f 77 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e e.below..(defgroup.emms-info-tin
91280 79 74 61 67 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 45 4d 4d 53 2e 22 0a 20 ytag.nil..."Options.for.EMMS."..
912a0 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d .:group.'emms-info)..(defvar.emm
912c0 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 75 74 s-info-tinytag-coding-system.'ut
912e0 66 2d 38 29 09 3b 69 73 20 74 68 69 73 20 75 73 65 64 20 61 6e 79 77 68 65 72 65 3f 0a 0a 28 64 f-8).;is.this.used.anywhere?..(d
91300 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2d 70 79 74 68 6f efcustom.emms-info-tinytag-pytho
91320 6e 2d 6e 61 6d 65 20 22 70 79 74 68 6f 6e 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 70 79 74 68 6f n-name."python"..."Name.of.pytho
91340 6e 20 77 65 20 75 73 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 73 74 72 69 6e 67 29 29 0a 0a 28 n.we.use."...:type.'(string))..(
91360 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2d 6b 6e 6f 77 defcustom.emms-info-tinytag-know
91380 6e 2d 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 28 72 65 67 65 78 70 2d 6f 70 74 20 27 28 22 6d 70 n-extensions...(regexp-opt.'("mp
913a0 33 22 20 22 6d 70 34 22 20 22 6d 34 61 22 20 22 6d 34 62 22 20 22 6f 67 67 22 20 22 6f 70 75 73 3"."mp4"."m4a"."m4b"."ogg"."opus
913c0 22 20 22 66 6c 61 63 22 20 22 77 6d 61 22 20 22 77 61 76 22 29 29 0a 20 20 22 52 65 67 65 78 70 "."flac"."wma"."wav"))..."Regexp
913e0 20 6f 66 20 6b 6e 6f 77 6e 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 68 61 74 20 60 65 6d 6d 73 2d .of.known.extensions.that.`emms-
91400 69 6e 66 6f 2d 74 69 6e 79 74 61 67 27 20 63 61 6e 20 68 61 6e 64 6c 65 2e 0a 0a 43 61 73 65 20 info-tinytag'.can.handle...Case.
91420 69 73 20 69 72 72 65 6c 65 76 61 6e 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 73 74 72 69 6e 67 is.irrelevant."...:type.'(string
91440 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2d 2d 69 ))..(defvar.emms-info-tinytag--i
91460 6e 66 6f 2d 66 69 65 6c 64 73 0a 20 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 2e 20 61 6c 62 nfo-fields...'((info-album...alb
91480 75 6d 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 61 6c 62 75 um).....(info-albumartist...albu
914a0 6d 61 72 74 69 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 2e 20 61 72 74 69 martist).....(info-artist...arti
914c0 73 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 2e 20 63 6f 6d 70 6f 73 65 st).....(info-composer...compose
914e0 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 2e 20 79 65 61 72 29 09 20 20 20 20 20 0a r).....(info-year...year).......
91500 20 20 20 20 28 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 20 2e 20 64 69 73 63 29 0a 20 20 20 ....(info-discnumber...disc)....
91520 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 2e 20 67 65 6e 72 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d .(info-genre...genre).....(info-
91540 6e 6f 74 65 20 2e 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 69 6e note...comment).....(info-playin
91560 67 2d 74 69 6d 65 20 2e 20 64 75 72 61 74 69 6f 6e 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 69 74 g-time...duration).....(info-tit
91580 6c 65 20 2e 20 74 69 74 6c 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 le...title).....(info-tracknumbe
915a0 72 20 2e 20 74 72 61 63 6b 29 29 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 r...track))..."An.alist.mapping.
915c0 69 6e 66 6f 2d 2a 20 66 69 65 6c 64 73 20 74 6f 20 74 69 6e 79 74 61 67 20 66 69 65 6c 64 73 2e info-*.fields.to.tinytag.fields.
915e0 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 20 28 74 72 ")..(defun.emms-info-tinytag.(tr
91600 61 63 6b 29 0a 20 20 22 53 65 74 20 74 61 67 73 20 66 6f 72 20 54 52 41 43 4b 20 75 73 69 6e 67 ack)..."Set.tags.for.TRACK.using
91620 20 74 69 6e 79 74 61 67 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 .tinytag."...(when.(and.(emms-tr
91640 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 09 20 20 20 20 20 28 6c 65 74 20 28 28 63 ack-file-p.track).......(let.((c
91660 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 74 29 29 0a 09 20 20 20 20 20 20 20 28 73 74 72 ase-fold-search.t)).........(str
91680 69 6e 67 2d 6d 61 74 63 68 0a 09 09 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2d 6b 6e ing-match...emms-info-tinytag-kn
916a0 6f 77 6e 2d 65 78 74 65 6e 73 69 6f 6e 73 0a 09 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d own-extensions...(emms-track-nam
916c0 65 20 74 72 61 63 6b 29 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 e.track)))).....(with-temp-buffe
916e0 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 0a 09 20 20 20 20 20 28 6c 65 74 20 r.......(when.(zerop.......(let.
91700 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 29 ((coding-system-for-read.'utf-8)
91720 29 0a 09 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 69 6e 66 ).........(call-process.emms-inf
91740 6f 2d 74 69 6e 79 74 61 67 2d 70 79 74 68 6f 6e 2d 6e 61 6d 65 0a 09 09 09 20 20 20 20 20 6e 69 o-tinytag-python-name.........ni
91760 6c 20 27 28 74 20 6e 69 6c 29 20 6e 69 6c 0a 09 09 09 20 20 20 20 20 22 2d 6d 22 20 22 74 69 6e l.'(t.nil).nil........."-m"."tin
91780 79 74 61 67 22 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 ytag".(emms-track-name.track))))
917a0 0a 09 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 3b 3b 20 74 69 ..(goto-char.(point-min))..;;.ti
917c0 6e 79 74 61 67 20 63 61 6e 20 6f 75 74 70 75 74 20 6a 73 6f 6e 20 6f 72 20 5b 63 74 5d 73 76 2e nytag.can.output.json.or.[ct]sv.
917e0 20 20 53 61 64 6c 79 2c 20 69 6e 20 74 68 65 20 6c 61 74 74 65 72 0a 09 3b 3b 20 63 61 73 65 2c ..Sadly,.in.the.latter..;;.case,
91800 20 6e 75 6c 6c 20 76 61 6c 75 65 73 20 61 72 65 20 75 6e 68 65 6c 70 66 75 6c 6c 79 20 72 65 70 .null.values.are.unhelpfully.rep
91820 72 65 73 65 6e 74 65 64 20 62 79 20 74 68 65 20 73 74 72 69 6e 67 0a 09 3b 3b 20 22 4e 6f 6e 65 resented.by.the.string..;;."None
91840 22 20 73 6f 20 77 65 20 70 61 72 73 65 20 74 68 65 20 6a 73 6f 6e 2e 0a 09 28 6c 65 74 20 28 28 ".so.we.parse.the.json...(let.((
91860 74 72 61 63 6b 2d 69 6e 66 6f 20 28 6a 73 6f 6e 2d 72 65 61 64 29 29 29 0a 09 20 20 28 64 6f 6c track-info.(json-read)))....(dol
91880 69 73 74 20 28 66 69 65 6c 64 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2d 2d 69 6e ist.(field.emms-info-tinytag--in
918a0 66 6f 2d 66 69 65 6c 64 73 29 0a 09 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 63 61 72 fo-fields)......(let.((name.(car
918c0 20 66 69 65 6c 64 29 29 0a 09 09 20 20 28 76 61 6c 75 65 20 28 61 6c 69 73 74 2d 67 65 74 20 28 .field)).....(value.(alist-get.(
918e0 63 64 72 20 66 69 65 6c 64 29 20 74 72 61 63 6b 2d 69 6e 66 6f 29 29 29 0a 09 20 20 20 20 20 20 cdr.field).track-info)))........
91900 28 77 68 65 6e 20 28 61 6e 64 20 76 61 6c 75 65 20 28 6f 72 20 28 6e 75 6d 62 65 72 70 20 76 61 (when.(and.value.(or.(numberp.va
91920 6c 75 65 29 20 28 3e 20 28 6c 65 6e 67 74 68 20 76 61 6c 75 65 29 0a 09 09 09 09 09 09 20 20 20 lue).(>.(length.value)..........
91940 20 20 20 30 29 29 29 0a 09 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 0a ...0)))...(emms-track-set.track.
91960 09 09 09 09 6e 61 6d 65 0a 09 09 09 09 28 63 6f 6e 64 20 28 28 65 71 20 6e 61 6d 65 20 27 69 6e ....name.....(cond.((eq.name.'in
91980 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 09 09 09 09 20 20 20 20 20 20 20 28 72 6f 75 fo-playing-time)............(rou
919a0 6e 64 20 76 61 6c 75 65 29 29 0a 09 09 09 09 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 6d 34 61 2c nd.value))...........;;.for.m4a,
919c0 20 64 69 73 63 20 6f 72 20 74 72 61 63 6b 20 69 73 20 61 6e 20 69 6e 74 3a 20 69 73 73 75 65 20 .disc.or.track.is.an.int:.issue.
919e0 72 61 69 73 65 64 20 75 70 73 74 72 65 61 6d 0a 09 09 09 09 20 20 20 20 20 20 28 28 61 6e 64 20 raised.upstream...........((and.
91a00 28 6f 72 20 28 65 71 20 6e 61 6d 65 20 27 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 29 0a 09 (or.(eq.name.'info-discnumber)..
91a20 09 09 09 09 09 28 65 71 20 6e 61 6d 65 20 27 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 29 .....(eq.name.'info-tracknumber)
91a40 29 0a 09 09 09 09 09 20 20 20 20 28 6e 75 6d 62 65 72 70 20 76 61 6c 75 65 29 29 0a 09 09 09 09 )..........(numberp.value)).....
91a60 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 76 61 6c 75 65 29 29 .......(number-to-string.value))
91a80 0a 09 09 09 09 20 20 20 20 20 20 28 74 20 76 61 6c 75 65 29 29 29 29 29 29 29 29 29 29 29 0a 0a ...........(t.value)))))))))))..
91aa0 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 29 0a 0a 3b 3b (provide.'emms-info-tinytag)..;;
91ac0 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 ;.emms-info-tinytag.el.ends.here
91ae0 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 2e 65 6c 00 00 00 emms-24/emms-info-exiftool.el...
91c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
91c80 30 30 30 36 34 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 35 33 00 20 30 00 00 00 0006470.00000000000.014753..0...
91ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
91d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
91d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 2e 65 6c 20 2d 2d 2d 20 69 6e ;;;.emms-info-exiftool.el.---.in
91e20 66 6f 2d 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d 4d 53 20 75 73 69 6e 67 20 65 78 69 66 74 6f 6f fo-method.for.EMMS.using.exiftoo
91e40 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a l..-*-.lexical-binding:.t;.-*-..
91e60 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2c 20 32 30 32 32 2c 20 32 30 32 ;;.Copyright.(C).2020,.2022,.202
91e80 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 5..Free.Software.Foundation,.Inc
91ea0 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 28 79 72 6b 40 67 ...;;.Author:.Yoni.Rabkin.(yrk@g
91ec0 6e 75 2e 6f 72 67 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6d 75 6c 74 69 6d 65 64 69 61 0a nu.org).;;.Keywords:.multimedia.
91ee0 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 .;;.EMMS.is.free.software;.you.c
91f00 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 an.redistribute.it.and/or.modify
91f20 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e .it.;;.under.the.terms.of.the.GN
91f40 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c U.General.Public.License.as.publ
91f60 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f ished.by.;;.the.Free.Software.Fo
91f80 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 undation,.either.version.3.of.th
91fa0 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e e.License,.or.;;.(at.your.option
91fc0 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 ).any.later.version...;;.EMMS.is
91fe0 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 .distributed.in.the.hope.that.it
92000 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 .will.be.useful,.but.WITHOUT.;;.
92020 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 ANY.WARRANTY;.without.even.the.i
92040 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 mplied.warranty.of.MERCHANTABILI
92060 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 TY.;;.or.FITNESS.FOR.A.PARTICULA
92080 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 R.PURPOSE...See.the.GNU.General.
920a0 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 Public.;;.License.for.more.detai
920c0 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 ls...;;.You.should.have.received
920e0 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 .a.copy.of.the.GNU.General.Publi
92100 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 c.License.;;.along.with.EMMS;.se
92120 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 e.the.file.COPYING....If.not,.se
92140 65 0a 3b 3b 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 e.;;.<https://www.gnu.org/licens
92160 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 28 73 65 74 71 es/>...;;;.Commentary:..;;.(setq
92180 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f .emms-info-functions.'(emms-info
921a0 2d 65 78 69 66 74 6f 6f 6c 29 29 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 79 6f 75 20 -exiftool))..;;.To.use.this.you.
921c0 77 6f 75 6c 64 20 6e 65 65 64 20 74 6f 20 68 61 76 65 20 65 78 69 66 74 6f 6f 6c 20 69 6e 73 74 would.need.to.have.exiftool.inst
921e0 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 0a 3b 3b 20 73 79 73 74 65 6d 2e 0a 0a 0a 3b 3b 3b 20 43 alled.on.your.;;.system....;;;.C
92200 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 28 72 65 71 75 ode:..(require.'emms-info).(requ
92220 69 72 65 20 27 6a 73 6f 6e 29 0a 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 69 6e 66 6f ire.'json)...(defgroup.emms-info
92240 2d 65 78 69 66 74 6f 6f 6c 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 45 4d 4d -exiftool.nil..."Options.for.EMM
92260 53 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 76 61 S."...:group.'emms-info)..(defva
92280 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 2d 66 69 65 6c 64 2d 6d 61 70 0a 20 r.emms-info-exiftool-field-map..
922a0 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 20 2e 20 41 6c 62 75 6d 29 0a 20 .'((info-album..........Album)..
922c0 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 20 2e 20 41 72 74 69 73 74 29 0a ...(info-artist.........Artist).
922e0 20 20 20 20 28 69 6e 66 6f 2d 74 69 74 6c 65 20 20 20 20 20 20 20 20 2e 20 54 69 74 6c 65 29 0a ....(info-title..........Title).
92300 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 20 20 2e 20 54 72 61 63 6b 4e 75 ....(info-tracknumber....TrackNu
92320 6d 62 65 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 20 20 20 20 2e 20 43 mber).....(info-composer.......C
92340 6f 6d 70 6f 73 65 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 20 20 20 20 20 20 20 20 omposer).....(info-year.........
92360 2e 20 59 65 61 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 20 20 20 2e ..Year).....(info-discnumber....
92380 20 44 69 73 63 6e 75 6d 62 65 72 29 0a 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 20 20 20 .Discnumber).....(info-genre....
923a0 20 20 20 20 2e 20 47 65 6e 72 65 29 0a 20 20 20 20 28 69 6e 66 6f 2d 6e 6f 74 65 20 20 20 20 20 ......Genre).....(info-note.....
923c0 20 20 20 20 2e 20 43 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 ......Comment).....(info-playing
923e0 2d 74 69 6d 65 20 2e 20 44 75 72 61 74 69 6f 6e 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 -time...Duration).....(info-albu
92400 6d 61 72 74 69 73 74 20 20 2e 20 41 6c 62 75 6d 61 72 74 69 73 74 29 29 0a 20 20 22 4d 61 70 70 martist....Albumartist))..."Mapp
92420 69 6e 67 20 66 6f 72 20 65 78 69 66 74 6f 6f 6c 20 6f 75 74 70 75 74 2e 22 29 0a 0a 0a 3b 3b 20 ing.for.exiftool.output.")...;;.
92440 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 69 6e 73 69 64 65 20 61 20 62 should.only.be.called.inside.a.b
92460 75 66 66 65 72 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6a 73 6f 6e 20 6f 75 74 70 75 74 uffer.containing.the.json.output
92480 20 6f 66 0a 3b 3b 20 65 78 69 66 74 6f 6f 6c 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f .of.;;.exiftool.(defun.emms-info
924a0 2d 65 78 69 66 74 6f 6f 6c 2d 74 69 6d 65 20 28 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 66 72 6f -exiftool-time.()..."Convert.fro
924c0 6d 20 65 78 69 66 74 6f 6f 6c 2d 74 69 6d 65 20 74 6f 20 73 65 63 6f 6e 64 73 2e 22 0a 20 20 28 m.exiftool-time.to.seconds."...(
924e0 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 save-excursion.....(goto-char.(p
92500 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f oint-min)).....(if.(re-search-fo
92520 72 77 61 72 64 20 22 64 75 72 61 74 69 6f 6e 2e 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3a 5c 5c rward."duration.+\\([0-9]+\\):\\
92540 28 5b 30 2d 39 5d 2b 5c 5c 29 3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 0a 09 09 09 20 20 20 28 ([0-9]+\\):\\([0-9]+\\)".......(
92560 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 09 28 6c 65 74 20 28 28 68 6f 75 72 73 20 20 20 28 73 point-max).t)..(let.((hours...(s
92580 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f tring-to-number.(match-string-no
925a0 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 0a 09 20 20 20 20 20 20 28 6d 69 6e 75 74 65 73 -properties.1)))........(minutes
925c0 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 .(string-to-number.(match-string
925e0 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 32 29 29 29 0a 09 20 20 20 20 20 20 28 73 65 63 6f -no-properties.2)))........(seco
92600 6e 64 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 nds.(string-to-number.(match-str
92620 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 33 29 29 29 29 0a 09 20 20 28 2b 20 28 2a ing-no-properties.3))))....(+.(*
92640 20 68 6f 75 72 73 20 36 30 20 36 30 29 0a 09 20 20 20 20 20 28 2a 20 6d 69 6e 75 74 65 73 20 36 .hours.60.60).......(*.minutes.6
92660 30 29 0a 09 20 20 20 20 20 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 20 20 20 30 29 29 29 0a 0a 28 0).......seconds)).......0)))..(
92680 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 20 28 74 72 61 63 6b 29 defun.emms-info-exiftool.(track)
926a0 0a 20 20 22 53 65 74 20 54 52 41 43 4b 20 69 6e 66 6f 20 75 73 69 6e 67 20 65 78 69 66 74 6f 6f ..."Set.TRACK.info.using.exiftoo
926c0 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 65 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 l."...(when.(eq.(emms-track-type
926e0 20 74 72 61 63 6b 29 20 27 66 69 6c 65 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 .track).'file).....(with-temp-bu
92700 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 0a 09 20 20 20 20 20 28 6c ffer.......(when.(zerop.......(l
92720 65 74 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 et.((coding-system-for-read.'utf
92740 2d 38 29 29 0a 09 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 65 78 69 66 -8)).........(call-process."exif
92760 74 6f 6f 6c 22 20 6e 69 6c 20 27 28 74 20 6e 69 6c 29 20 6e 69 6c 0a 09 09 09 20 20 20 20 20 22 tool".nil.'(t.nil).nil........."
92780 2d 6a 73 6f 6e 22 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 -json".(emms-track-name.track)))
927a0 29 0a 09 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 28 63 6f 6e )..(goto-char.(point-min))..(con
927c0 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 20 20 20 20 28 6c 65 74 20 28 28 6a 73 6f 6e dition-case.nil......(let.((json
927e0 2d 66 69 65 6c 64 73 20 28 65 6c 74 20 28 6a 73 6f 6e 2d 72 65 61 64 29 20 30 29 29 29 0a 09 20 -fields.(elt.(json-read).0)))...
92800 20 20 20 20 20 28 6d 61 70 63 0a 09 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 65 6c .....(mapc.........(lambda.(fiel
92820 64 2d 6d 61 70 29 0a 09 09 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 66 69 65 6c 64 20 28 63 61 72 d-map)....(let.((emms-field.(car
92840 20 66 69 65 6c 64 2d 6d 61 70 29 29 0a 09 09 20 20 20 20 20 20 20 28 65 78 69 66 74 6f 6f 6c 2d .field-map))..........(exiftool-
92860 66 69 65 6c 64 20 28 63 64 72 20 66 69 65 6c 64 2d 6d 61 70 29 29 29 0a 09 09 20 20 20 28 6c 65 field.(cdr.field-map)))......(le
92880 74 20 28 28 74 72 61 63 6b 2d 66 69 65 6c 64 20 28 61 73 73 6f 63 20 65 78 69 66 74 6f 6f 6c 2d t.((track-field.(assoc.exiftool-
928a0 66 69 65 6c 64 20 6a 73 6f 6e 2d 66 69 65 6c 64 73 29 29 29 0a 09 09 20 20 20 20 20 28 77 68 65 field.json-fields)))........(whe
928c0 6e 20 74 72 61 63 6b 2d 66 69 65 6c 64 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 n.track-field..........(emms-tra
928e0 63 6b 2d 73 65 74 0a 09 09 09 74 72 61 63 6b 0a 09 09 09 65 6d 6d 73 2d 66 69 65 6c 64 0a 09 09 ck-set....track....emms-field...
92900 09 28 63 6f 6e 64 20 28 28 65 71 20 65 6d 6d 73 2d 66 69 65 6c 64 20 27 69 6e 66 6f 2d 70 6c 61 .(cond.((eq.emms-field.'info-pla
92920 79 69 6e 67 2d 74 69 6d 65 29 0a 09 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d ying-time)...........(emms-info-
92940 65 78 69 66 74 6f 6f 6c 2d 74 69 6d 65 29 29 0a 09 09 09 20 20 20 20 20 20 28 28 6d 65 6d 71 20 exiftool-time))..........((memq.
92960 65 6d 6d 73 2d 66 69 65 6c 64 20 27 28 69 6e 66 6f 2d 61 6c 62 75 6d 0a 09 09 09 09 09 09 20 20 emms-field.'(info-album.........
92980 69 6e 66 6f 2d 61 72 74 69 73 74 0a 09 09 09 09 09 09 20 20 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 info-artist.........info-albumar
929a0 74 69 73 74 0a 09 09 09 09 09 09 20 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 09 09 09 09 09 tist.........info-composer......
929c0 09 20 20 69 6e 66 6f 2d 6e 6f 74 65 0a 09 09 09 09 09 09 20 20 69 6e 66 6f 2d 74 72 61 63 6b 6e ...info-note.........info-trackn
929e0 75 6d 62 65 72 0a 09 09 09 09 09 09 20 20 69 6e 66 6f 2d 74 69 74 6c 65 0a 09 09 09 09 09 09 20 umber.........info-title........
92a00 20 69 6e 66 6f 2d 79 65 61 72 0a 09 09 09 09 09 09 20 20 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 .info-year.........info-discnumb
92a20 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er))............................
92a40 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 28 63 64 72 20 74 72 61 63 6b 2d 66 69 65 6c ....(format."%s".(cdr.track-fiel
92a60 64 29 29 29 0a 09 09 09 20 20 20 20 20 20 28 74 20 28 63 64 72 20 74 72 61 63 6b 2d 66 69 65 6c d)))..........(t.(cdr.track-fiel
92a80 64 29 29 29 29 29 29 29 29 0a 09 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 d)))))))).........emms-info-exif
92aa0 74 6f 6f 6c 2d 66 69 65 6c 64 2d 6d 61 70 29 29 0a 09 20 20 28 65 72 72 6f 72 20 28 6d 65 73 73 tool-field-map))....(error.(mess
92ac0 61 67 65 20 22 65 72 72 6f 72 20 77 68 69 6c 65 20 72 65 61 64 69 6e 67 20 74 72 61 63 6b 20 69 age."error.while.reading.track.i
92ae0 6e 66 6f 22 29 29 29 0a 09 74 72 61 63 6b 29 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 nfo")))..track))))...(provide.'e
92b00 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 mms-info-exiftool)..;;;.emms-inf
92b20 6f 2d 65 78 69 66 74 6f 6f 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 o-exiftool.el.ends.here.........
92b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2e 65 6c 00 00 00 00 emms-24/emms-playing-time.el....
92c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
92c80 30 30 32 32 36 32 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 37 31 00 20 30 00 00 00 0022626.00000000000.014571..0...
92ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
92d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
92d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92e00 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2e 65 6c 20 2d 2d 2d 20 44 69 73 ;;;.emms-playing-time.el.---.Dis
92e20 70 6c 61 79 20 65 6d 6d 73 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c play.emms.playing.time.on.mode.l
92e40 69 6e 65 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d ine..-*-.lexical-binding:.t;.-*-
92e60 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 35 2d 32 30 32 34 20 20 46 72 ..;;.Copyright.(C).2005-2024..Fr
92e80 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b ee.Software.Foundation,.Inc...;;
92ea0 20 41 75 74 68 6f 72 3a 20 57 69 6c 6c 69 61 6d 20 58 75 20 3c 77 69 6c 6c 69 61 6d 2e 78 77 6c .Author:.William.Xu.<william.xwl
92ec0 40 67 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 28 79 72 6b 40 67 6e @gmail.com>,.Yoni.Rabkin.(yrk@gn
92ee0 75 2e 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 u.org)..;;.This.file.is.part.of.
92f00 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b EMMS...;;.EMMS.is.free.software;
92f20 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 .you.can.redistribute.it.and/or.
92f40 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 modify.;;.it.under.the.terms.of.
92f60 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 the.GNU.General.Public.License.a
92f80 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 s.published.by.;;.the.Free.Softw
92fa0 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 are.Foundation;.either.version.3
92fc0 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 ,.or.(at.your.option).;;.any.lat
92fe0 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 er.version..;;.;;.EMMS.is.distri
93000 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 buted.in.the.hope.that.it.will.b
93020 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 e.useful,.;;.but.WITHOUT.ANY.WAR
93040 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 RANTY;.without.even.the.implied.
93060 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f warranty.of.;;.MERCHANTABILITY.o
93080 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f r.FITNESS.FOR.A.PARTICULAR.PURPO
930a0 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c SE...See.the.;;.GNU.General.Publ
930c0 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a ic.License.for.more.details..;;.
930e0 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f ;;.You.should.have.received.a.co
93100 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 py.of.the.GNU.General.Public.Lic
93120 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c ense.;;.along.with.EMMS;.if.not,
93140 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e .write.to.the.Free.Software.Foun
93160 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c dation,.;;.Inc.,.51.Franklin.St,
93180 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 .Fifth.Floor,.Boston,.MA.02110-1
931a0 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 44 301,.USA...;;;.Commentary:..;;.D
931c0 69 73 70 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 isplay.playing.time.on.mode.line
931e0 2c 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 3a 20 30 31 3a 33 32 2f 30 34 3a 30 39 2e 0a 0a 3b ,.it.looks.like:.01:32/04:09...;
93200 3b 20 50 75 74 20 74 68 69 73 20 66 69 6c 65 20 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 61 64 2d 70 ;.Put.this.file.into.your.load-p
93220 61 74 68 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 0a ath.and.the.following.into.your.
93240 3b 3b 20 7e 2f 2e 65 6d 61 63 73 3a 0a 3b 3b 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d ;;.~/.emacs:.;;.....(require.'em
93260 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 3b 3b 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c ms-playing-time).;;.....(emms-pl
93280 61 79 69 6e 67 2d 74 69 6d 65 20 31 29 0a 0a 3b 3b 20 4e 6f 74 65 3a 20 60 28 65 6d 6d 73 2d 70 aying-time.1)..;;.Note:.`(emms-p
932a0 6c 61 79 69 6e 67 2d 74 69 6d 65 20 2d 31 29 27 20 77 69 6c 6c 20 64 69 73 61 62 6c 65 20 65 6d laying-time.-1)'.will.disable.em
932c0 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 6d 6f 64 75 6c 65 0a 3b 3b 20 63 6f 6d 70 6c 65 ms-playing-time.module.;;.comple
932e0 74 65 6c 79 2c 20 61 6e 64 20 69 73 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 20 28 73 tely,.and.is.not.recommended..(s
93300 69 6e 63 65 20 73 6f 6d 65 20 6f 74 68 65 72 20 65 6d 6d 73 20 6d 6f 64 75 6c 65 73 0a 3b 3b 20 ince.some.other.emms.modules.;;.
93320 6d 61 79 20 72 65 6c 79 20 6f 6e 20 69 74 27 29 0a 0a 3b 3b 20 49 6e 73 74 65 61 64 2c 20 74 6f may.rely.on.it')..;;.Instead,.to
93340 20 74 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 .toggle.displaying.playing.time.
93360 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2c 20 6f 6e 65 20 63 6f 75 6c 64 0a 3b 3b 20 63 61 6c 6c 20 on.mode.line,.one.could.;;.call.
93380 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 62 6c 65 2d 64 69 73 70 6c 61 `emms-playing-time-enable-displa
933a0 79 27 20 61 6e 64 0a 3b 3b 20 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 y'.and.;;.`emms-playing-time-dis
933c0 61 62 6c 65 2d 64 69 73 70 6c 61 79 27 2e 22 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 able-display'."..;;;.Code:..(req
933e0 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d uire.'emms-info).(require.'emms-
93400 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 0a 3b 3b 3b 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f player-simple)..;;;.Customizatio
93420 6e 73 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 ns..(defgroup.emms-playing-time.
93440 6e 69 6c 0a 20 20 22 50 6c 61 79 69 6e 67 2d 74 69 6d 65 20 6d 6f 64 75 6c 65 20 66 6f 72 20 45 nil..."Playing-time.module.for.E
93460 4d 4d 53 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f MMS."...:group.'emms)..(defcusto
93480 6d 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 73 68 6f 72 m.emms-playing-time-display-shor
934a0 74 2d 70 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 77 69 6c 6c 20 6f 6e 6c 79 20 64 69 73 t-p.nil..."Non-nil.will.only.dis
934c0 70 6c 61 79 20 65 6c 61 70 73 65 64 20 74 69 6d 65 2e 0a 65 2e 67 2e 2c 20 64 69 73 70 6c 61 79 play.elapsed.time..e.g.,.display
934e0 20 30 32 3a 33 37 20 69 6e 73 74 65 61 64 20 6f 66 20 30 32 3a 33 37 2f 30 35 3a 34 39 2e 22 0a .02:37.instead.of.02:37/05:49.".
93500 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d ..:type.'boolean)..(defcustom.em
93520 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 68 6f 75 72 73 2d 70 20 ms-playing-time-display-hours-p.
93540 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 77 69 6c 6c 20 64 69 73 70 6c 61 79 20 68 6f 75 72 73 20 t..."Non-nil.will.display.hours.
93560 69 6e 20 61 6c 6c 20 74 69 6d 65 73 20 73 69 78 74 79 20 6d 69 6e 75 74 65 73 20 6f 72 20 6c 6f in.all.times.sixty.minutes.or.lo
93580 6e 67 65 72 2e 0a 65 2e 67 2e 2c 20 64 69 73 70 6c 61 79 20 31 3a 31 39 3a 35 35 20 69 6e 73 74 nger..e.g.,.display.1:19:55.inst
935a0 65 61 64 20 6f 66 20 37 39 3a 35 35 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 ead.of.79:55."...:type.'boolean)
935c0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 ..(defcustom.emms-playing-time-d
935e0 69 73 70 6c 61 79 2d 66 6f 72 6d 61 74 20 22 20 25 73 20 22 0a 20 20 22 46 6f 72 6d 61 74 20 75 isplay-format.".%s."..."Format.u
93600 73 65 64 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 2e sed.for.displaying.playing.time.
93620 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 "...:type.'string)..(defcustom.e
93640 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 79 6c 65 20 27 74 69 6d 65 0a 20 20 22 mms-playing-time-style.'time..."
93660 53 74 79 6c 65 20 75 73 65 64 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 70 6c 61 79 69 6e Style.used.for.displaying.playin
93680 67 20 74 69 6d 65 2e 0a 56 61 6c 69 64 20 73 74 79 6c 65 73 20 61 72 65 20 60 74 69 6d 65 27 20 g.time..Valid.styles.are.`time'.
936a0 28 65 2e 67 2e 2c 20 30 31 3a 33 30 2f 34 3a 32 30 29 2c 0a 20 60 62 61 72 27 20 28 65 2e 67 2e (e.g.,.01:30/4:20),..`bar'.(e.g.
936c0 2c 20 5b 3d 3d 3d 3e 20 20 5d 29 2c 0a 61 6e 64 20 60 64 6f 77 6e 74 69 6d 65 27 20 28 65 2e 67 ,.[===>..]),.and.`downtime'.(e.g
936e0 2e 20 2d 30 33 3a 35 38 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a 0a 0c 0a ..-03:58)."...:type.'symbol)....
93700 3b 3b 3b 20 45 6d 6d 73 20 50 6c 61 79 69 6e 67 20 54 69 6d 65 0a 0a 28 64 65 66 69 6e 65 2d 6f ;;;.Emms.Playing.Time..(define-o
93720 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 65 6d 6d 73 2d 70 6c 61 bsolete-variable-alias.'emms-pla
93740 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 70 0a 20 20 27 65 6d 6d 73 2d 70 6c 61 79 ying-time-display-p...'emms-play
93760 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 ing-time-display-mode."Apr.2021"
93780 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 ).(defvar.emms-playing-time-disp
937a0 6c 61 79 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d lay-mode)..(defvar.emms-playing-
937c0 74 69 6d 65 20 30 0a 20 20 22 54 69 6d 65 20 65 6c 61 70 73 65 64 20 69 6e 20 63 75 72 72 65 6e time.0..."Time.elapsed.in.curren
937e0 74 20 74 72 61 63 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 t.track.")..(defvar.emms-playing
93800 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 22 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 -time-string."")..(defvar.emms-p
93820 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 74 69 6d 65 72 20 6e 69 6c 29 0a 0a laying-time-display-timer.nil)..
93840 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 (define-obsolete-variable-alias.
93860 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 70 0a 20 20 27 65 6d 6d 73 2d 70 6c 61 'emms-playing-time-p...'emms-pla
93880 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 29 0a 0a 28 64 65 66 ying-time-mode."Apr.2021")..(def
938a0 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 61 72 74 20 28 29 0a 20 20 un.emms-playing-time-start.()...
938c0 22 47 65 74 20 72 65 61 64 79 20 66 6f 72 20 64 69 73 70 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 "Get.ready.for.display.playing.t
938e0 69 6d 65 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 ime."...(setq.emms-playing-time.
93900 30 29 0a 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 0)...(unless.emms-playing-time-d
93920 69 73 70 6c 61 79 2d 74 69 6d 65 72 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 isplay-timer.....(setq.emms-play
93940 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 74 69 6d 65 72 0a 09 20 20 28 72 75 6e 2d 61 ing-time-display-timer....(run-a
93960 74 2d 74 69 6d 65 20 74 20 31 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 t-time.t.1.#'emms-playing-time-d
93980 69 73 70 6c 61 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d isplay))))..(defun.emms-playing-
939a0 74 69 6d 65 2d 73 74 6f 70 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 70 6c 61 79 69 6e 67 20 74 time-stop.()..."Remove.playing.t
939c0 69 6d 65 20 6f 6e 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 28 69 66 20 28 6f 72 ime.on.the.mode.line."...(if.(or
939e0 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 29 0a 09 20 20 65 .(not.emms-player-paused-p)....e
93a00 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 29 0a 20 20 20 20 20 20 28 70 72 6f mms-player-stopped-p).......(pro
93a20 67 6e 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 72 69 gn..(setq.emms-playing-time-stri
93a40 6e 67 20 22 22 29 0a 09 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 ng."")..(force-mode-line-update)
93a60 29 29 0a 20 20 28 65 6d 6d 73 2d 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 ))...(emms-cancel-timer.emms-pla
93a80 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 74 69 6d 65 72 29 0a 20 20 28 73 65 74 71 ying-time-display-timer)...(setq
93aa0 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 74 69 6d 65 72 .emms-playing-time-display-timer
93ac0 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 .nil))..(defun.emms-playing-time
93ae0 2d 70 61 75 73 65 20 28 29 0a 20 20 22 50 61 75 73 65 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 2e -pause.()..."Pause.playing.time.
93b00 22 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 0a 20 20 20 "...(if.emms-player-paused-p....
93b20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 6f 70 29 0a 20 20 20 20 ...(emms-playing-time-stop).....
93b40 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 (unless.emms-playing-time-displa
93b60 79 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 y-timer.......(setq.emms-playing
93b80 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 74 69 6d 65 72 0a 09 20 20 20 20 28 72 75 6e 2d 61 74 -time-display-timer......(run-at
93ba0 2d 74 69 6d 65 20 74 20 31 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 -time.t.1.#'emms-playing-time-di
93bc0 73 70 6c 61 79 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d splay)))))..(defun.emms-playing-
93be0 74 69 6d 65 2d 73 65 65 6b 20 28 73 65 63 29 0a 20 20 22 53 65 65 6b 20 66 6f 72 77 61 72 64 20 time-seek.(sec)..."Seek.forward.
93c00 6f 72 20 62 61 63 6b 77 61 72 64 20 53 45 43 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 2e 22 0a 20 or.backward.SEC.playing.time."..
93c20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 28 2b 20 65 6d 6d 73 .(setq.emms-playing-time.(+.emms
93c40 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 73 65 63 29 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 65 -playing-time.sec))...(when.(<.e
93c60 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 30 29 09 09 3b 20 62 61 63 6b 20 74 6f 20 73 mms-playing-time.0)..;.back.to.s
93c80 74 61 72 74 20 70 6f 69 6e 74 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e tart.point.....(setq.emms-playin
93ca0 67 2d 74 69 6d 65 20 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 g-time.0)))..(defun.emms-playing
93cc0 2d 74 69 6d 65 2d 73 65 74 20 28 73 65 63 29 0a 20 20 22 53 65 74 20 74 68 65 20 70 6c 61 79 69 -time-set.(sec)..."Set.the.playi
93ce0 6e 67 20 74 69 6d 65 20 74 6f 20 53 45 43 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c ng.time.to.SEC."...(setq.emms-pl
93d00 61 79 69 6e 67 2d 74 69 6d 65 20 73 65 63 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 65 6d 6d 73 2d aying-time.sec)...(when.(<.emms-
93d20 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 30 29 09 09 3b 20 62 61 63 6b 20 74 6f 20 73 74 61 72 74 playing-time.0)..;.back.to.start
93d40 20 70 6f 69 6e 74 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 .point.....(setq.emms-playing-ti
93d60 6d 65 20 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d me.0)))..(defun.emms-playing-tim
93d80 65 20 28 61 72 67 29 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f 6c 65 74 65 20 65 6d 6d e.(arg)...(declare.(obsolete.emm
93da0 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 29 29 s-playing-time-mode."Apr.2021"))
93dc0 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 20 28 69 66 20 28 ...(emms-playing-time-mode.(if.(
93de0 61 6e 64 20 61 72 67 20 28 3e 20 61 72 67 20 30 29 29 20 31 20 2d 31 29 29 29 0a 0a 0a 28 64 65 and.arg.(>.arg.0)).1.-1)))...(de
93e00 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d fine-minor-mode.emms-playing-tim
93e20 65 2d 6d 6f 64 65 0a 20 20 22 54 75 72 6e 20 6f 6e 20 65 6d 6d 73 20 70 6c 61 79 69 6e 67 20 74 e-mode..."Turn.on.emms.playing.t
93e40 69 6d 65 20 69 66 20 41 52 47 20 69 73 20 70 6f 73 69 74 69 76 65 2c 20 6f 66 66 20 6f 74 68 65 ime.if.ARG.is.positive,.off.othe
93e60 72 77 69 73 65 2e 0a 0a 4e 6f 74 65 3a 20 60 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d rwise...Note:.`(emms-playing-tim
93e80 65 20 2d 31 29 27 20 77 69 6c 6c 20 64 69 73 61 62 6c 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 e.-1)'.will.disable.emms-playing
93ea0 2d 74 69 6d 65 0a 6d 6f 64 75 6c 65 20 63 6f 6d 70 6c 65 74 65 6c 79 2c 20 61 6e 64 20 69 73 20 -time.module.completely,.and.is.
93ec0 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 20 28 73 69 6e 63 65 20 73 6f 6d 65 20 6f 74 68 not.recommended..(since.some.oth
93ee0 65 72 20 65 6d 6d 73 0a 6d 6f 64 75 6c 65 73 20 6d 61 79 20 72 65 6c 79 20 6f 6e 20 69 74 2e 29 er.emms.modules.may.rely.on.it.)
93f00 0a 0a 49 6e 73 74 65 61 64 2c 20 74 6f 20 74 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 ..Instead,.to.toggle.displaying.
93f20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2c 20 6f 6e 65 0a 63 playing.time.on.mode.line,.one.c
93f40 6f 75 6c 64 20 63 61 6c 6c 20 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 ould.call.`emms-playing-time-ena
93f60 62 6c 65 2d 64 69 73 70 6c 61 79 27 20 61 6e 64 0a 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 ble-display'.and.`emms-playing-t
93f80 69 6d 65 2d 64 69 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 27 2e 22 0a 20 20 3a 67 6c 6f 62 61 6c ime-disable-display'."...:global
93fa0 20 74 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 0a .t...(if.emms-playing-time-mode.
93fc0 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 3b 3b 20 46 49 58 4d 45 3a 20 4d 61 79 62 65 20 77 65 ......(progn..;;.FIXME:.Maybe.we
93fe0 20 73 68 6f 75 6c 64 6e 27 74 20 73 65 74 20 74 68 69 73 20 68 65 72 65 2c 20 61 6e 64 20 69 6e .shouldn't.set.this.here,.and.in
94000 73 74 65 61 64 20 74 68 65 20 75 73 65 72 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 68 6f 75 6c stead.the.users.........;;.shoul
94020 64 20 63 61 6c 6c 20 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 d.call.`emms-playing-time-displa
94040 79 2d 6d 6f 64 65 27 20 69 66 20 74 68 61 74 27 73 20 77 68 61 74 0a 20 20 20 20 20 20 20 20 3b y-mode'.if.that's.what.........;
94060 3b 20 74 68 65 79 20 77 61 6e 74 2e 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 ;.they.want...(setq.emms-playing
94080 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 74 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 -time-display-mode.t)..(emms-pla
940a0 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 2d 6c 69 6e 65 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 ying-time-mode-line)..(add-hook.
940c0 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 20 'emms-player-started-hook.......
940e0 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 61 72 74 29 0a 09 28 61 64 64 #'emms-playing-time-start)..(add
94100 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 20 -hook.'emms-player-stopped-hook.
94120 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 6f 70 29 0a ......#'emms-playing-time-stop).
94140 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 .(add-hook.'emms-player-finished
94160 2d 68 6f 6f 6b 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 -hook......#'emms-playing-time-s
94180 74 6f 70 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 top)..(add-hook.'emms-player-pau
941a0 73 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 sed-hook........#'emms-playing-t
941c0 69 6d 65 2d 70 61 75 73 65 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 ime-pause)..(add-hook.'emms-play
941e0 65 72 2d 73 65 65 6b 65 64 2d 66 75 6e 63 74 69 6f 6e 73 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 er-seeked-functions...#'emms-pla
94200 79 69 6e 67 2d 74 69 6d 65 2d 73 65 65 6b 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 ying-time-seek)..(add-hook.'emms
94220 2d 70 6c 61 79 65 72 2d 74 69 6d 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 65 6d 6d -player-time-set-functions.#'emm
94240 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 65 74 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 s-playing-time-set)).....(setq.e
94260 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 6e 69 mms-playing-time-display-mode.ni
94280 6c 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 6f 70 29 0a l).....(emms-playing-time-stop).
942a0 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 72 65 73 74 6f 72 65 2d 6d ....(emms-playing-time-restore-m
942c0 6f 64 65 2d 6c 69 6e 65 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 ode-line).....(remove-hook.'emms
942e0 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 20 23 27 65 6d 6d -player-started-hook.......#'emm
94300 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 61 72 74 29 0a 20 20 20 20 28 72 65 6d 6f 76 s-playing-time-start).....(remov
94320 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b e-hook.'emms-player-stopped-hook
94340 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 6f 70 29 .......#'emms-playing-time-stop)
94360 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 .....(remove-hook.'emms-player-f
94380 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 inished-hook......#'emms-playing
943a0 2d 74 69 6d 65 2d 73 74 6f 70 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d -time-stop).....(remove-hook.'em
943c0 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 20 20 23 27 65 ms-player-paused-hook........#'e
943e0 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 70 61 75 73 65 29 0a 20 20 20 20 28 72 65 6d mms-playing-time-pause).....(rem
94400 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 65 64 2d 66 75 6e ove-hook.'emms-player-seeked-fun
94420 63 74 69 6f 6e 73 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 65 65 ctions...#'emms-playing-time-see
94440 6b 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 k).....(remove-hook.'emms-player
94460 2d 74 69 6d 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 65 6d 6d 73 2d 70 6c 61 79 69 -time-set-functions.#'emms-playi
94480 6e 67 2d 74 69 6d 65 2d 73 65 74 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 ng-time-set)))..;;;###autoload.(
944a0 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 define-minor-mode.emms-playing-t
944c0 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 74 ime-display-mode..."Minor.mode.t
944e0 6f 20 64 69 73 70 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c o.display.playing.time.on.mode.l
94500 69 6e 65 2e 22 0a 20 20 3a 67 6c 6f 62 61 6c 20 74 0a 20 20 3b 3b 20 57 68 65 6e 20 64 69 73 61 ine."...:global.t...;;.When.disa
94520 62 6c 69 6e 67 20 74 68 65 20 6d 6f 64 65 2c 20 64 6f 6e 27 74 20 64 69 73 61 62 6c 65 20 60 65 bling.the.mode,.don't.disable.`e
94540 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 27 0a 20 mms-playing-time-display-mode'..
94560 20 3b 3b 20 73 69 6e 63 65 20 74 68 61 74 20 6d 61 79 20 62 65 20 75 73 65 64 20 62 79 20 6f 74 .;;.since.that.may.be.used.by.ot
94580 68 65 72 20 70 61 63 6b 61 67 65 73 2e 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 her.packages....(if.emms-playing
945a0 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 -time-display-mode.......(emms-p
945c0 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 31 29 29 29 0a 0a 3b laying-time-display-mode.1)))..;
945e0 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e ;;###autoload.(defun.emms-playin
94600 67 2d 74 69 6d 65 2d 65 6e 61 62 6c 65 2d 64 69 73 70 6c 61 79 20 28 29 0a 20 20 22 44 69 73 70 g-time-enable-display.()..."Disp
94620 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a lay.playing.time.on.mode.line.".
94640 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f 6c 65 74 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e ..(declare.(obsolete.emms-playin
94660 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 29 29 g-time-display-mode."Apr.2021"))
94680 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c ...(interactive)...(setq.emms-pl
946a0 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 74 29 29 0a 0a 3b 3b 3b aying-time-display-mode.t))..;;;
946c0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d ###autoload.(defun.emms-playing-
946e0 74 69 6d 65 2d 64 69 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 20 28 29 0a 20 20 22 52 65 6d 6f 76 time-disable-display.()..."Remov
94700 65 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 66 72 6f 6d 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a e.playing.time.from.mode.line.".
94720 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f 6c 65 74 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e ..(declare.(obsolete.emms-playin
94740 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 29 29 g-time-display-mode."Apr.2021"))
94760 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c ...(interactive)...(setq.emms-pl
94780 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 20 6e 69 6c 29 29 0a 0a 28 aying-time-display-mode.nil))..(
947a0 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 20 defun.emms-playing-time-display.
947c0 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 74 68 ()..."Display.playing.time.on.th
947e0 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 e.mode.line."...(setq.emms-playi
94800 6e 67 2d 74 69 6d 65 20 28 72 6f 75 6e 64 20 28 31 2b 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d ng-time.(round.(1+.emms-playing-
94820 74 69 6d 65 29 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d time)))...(setq.emms-playing-tim
94840 65 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 65 6d 6d 73 2d e-string.........(if.(null.emms-
94860 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 6d 6f 64 65 29 0a 20 20 20 20 20 playing-time-display-mode)......
94880 20 20 20 20 20 20 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 6f 74 61 .......""...........(let*.((tota
948a0 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-playing-time..................
948c0 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 .(or.(emms-track-get............
948e0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 ............(emms-playlist-curre
94900 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-selected-track)..............
94920 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 ..........'info-playing-time)...
94940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 29 0a 20 20 20 20 20 20 20 20 ....................0)).........
94960 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 0a 09 20 20 20 20 20 20 20 20 20 20 28 70 63 61 .........(string............(pca
94980 73 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 79 6c 65 0a 09 20 20 20 20 se.emms-playing-time-style......
949a0 20 20 20 20 20 20 20 20 28 27 64 6f 77 6e 74 69 6d 65 20 20 20 20 20 20 20 20 20 3b 20 60 64 6f ........('downtime.........;.`do
949c0 77 6e 74 69 6d 65 27 20 73 74 79 6c 65 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 wntime'.style...............(if.
949e0 28 6f 72 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 73 68 (or.emms-playing-time-display-sh
94a00 6f 72 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ort-p...........................
94a20 20 20 20 3b 3b 20 75 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 74 6f 74 61 6c 20 70 6c 61 79 69 6e ...;;.unable.to.get.total.playin
94a40 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-time..........................
94a60 20 20 20 20 28 65 71 20 74 6f 74 61 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 30 29 29 0a 20 ....(eq.total-playing-time.0))..
94a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c ........................(emms-pl
94aa0 61 79 69 6e 67 2d 74 69 6d 65 2d 66 6f 72 6d 61 74 2d 74 69 6d 65 20 65 6d 6d 73 2d 70 6c 61 79 aying-time-format-time.emms-play
94ac0 69 6e 67 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-time).......................
94ae0 20 28 63 6f 6e 63 61 74 20 22 2d 22 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d .(concat."-".(emms-playing-time-
94b00 66 6f 72 6d 61 74 2d 74 69 6d 65 0a 09 09 09 09 20 20 20 20 28 2d 20 74 6f 74 61 6c 2d 70 6c 61 format-time.........(-.total-pla
94b20 79 69 6e 67 2d 74 69 6d 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 29 29 29 29 ying-time.emms-playing-time)))))
94b40 0a 09 09 20 20 20 20 28 27 62 61 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 60 62 61 72 .......('bar..............;.`bar
94b60 27 20 73 74 79 6c 65 0a 09 09 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 74 6f 74 61 6c 2d '.style........(if.(zerop.total-
94b80 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 09 09 20 20 20 20 20 20 20 20 20 22 5b 3d 3d 3e 2e 2e playing-time)............"[==>..
94ba0 2e 2e 2e 2e 2e 2e 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......]"........................
94bc0 28 6c 65 74 20 28 3b 3b 20 70 65 72 63 65 6e 74 20 62 61 73 65 64 20 6f 6e 20 31 30 0a 20 20 20 (let.(;;.percent.based.on.10....
94be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 65 72 63 65 ..........................(perce
94c00 6e 74 20 28 2f 20 28 2a 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 31 30 29 0a 20 nt.(/.(*.emms-playing-time.10)..
94c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
94c40 20 20 20 20 20 20 20 20 74 6f 74 61 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 29 29 0a 20 20 ........total-playing-time)))...
94c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 .......................(concat."
94c80 5b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ["..............................
94ca0 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 70 65 72 63 65 6e 74 20 3f 3d 29 0a 20 20 20 ....(make-string.percent.?=)....
94cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3e ..............................">
94ce0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
94d00 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2d 20 31 30 20 70 65 72 63 65 6e 74 29 20 3f ...(make-string.(-.10.percent).?
94d20 5c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \s).............................
94d40 20 20 20 20 20 22 5d 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."]"))))....................
94d60 20 28 5f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 60 74 69 6d 65 27 20 73 74 79 .(_.................;.`time'.sty
94d80 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a le......................(concat.
94da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 ......................(emms-play
94dc0 69 6e 67 2d 74 69 6d 65 2d 66 6f 72 6d 61 74 2d 74 69 6d 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e ing-time-format-time.emms-playin
94de0 67 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 g-time).......................(u
94e00 6e 6c 65 73 73 20 28 6f 72 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 nless.(or.emms-playing-time-disp
94e20 6c 61 79 2d 73 68 6f 72 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lay-short-p.....................
94e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 74 ..............;;.unable.to.get.t
94e60 6f 74 61 6c 20 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 otal.playing-time...............
94e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 6f 74 61 6c 2d 70 6c ....................(eq.total-pl
94ea0 61 79 69 6e 67 2d 74 69 6d 65 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aying-time.0))..................
94ec0 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2f 22 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 .......(concat."/".(emms-playing
94ee0 2d 74 69 6d 65 2d 66 6f 72 6d 61 74 2d 74 69 6d 65 20 74 6f 74 61 6c 2d 70 6c 61 79 69 6e 67 2d -time-format-time.total-playing-
94f00 74 69 6d 65 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 time)))))))).............(format
94f20 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c 61 79 2d 66 6f 72 6d 61 .emms-playing-time-display-forma
94f40 74 20 73 74 72 69 6e 67 29 29 29 29 0a 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d t.string))))...(force-mode-line-
94f60 75 70 64 61 74 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 update))..(defun.emms-playing-ti
94f80 6d 65 2d 66 6f 72 6d 61 74 2d 74 69 6d 65 20 28 64 75 72 61 74 69 6f 6e 29 0a 20 20 22 46 6f 72 me-format-time.(duration)..."For
94fa0 6d 61 74 20 44 55 52 41 54 49 4f 4e 2c 20 61 20 70 6f 73 69 74 69 76 65 20 6e 75 6d 62 65 72 20 mat.DURATION,.a.positive.number.
94fc0 6f 66 20 73 65 63 6f 6e 64 73 2c 20 69 6e 74 6f 20 61 20 73 74 72 69 6e 67 2e 0a 0a 54 68 65 20 of.seconds,.into.a.string...The.
94fe0 73 74 72 69 6e 67 20 77 69 6c 6c 20 73 68 6f 77 20 74 68 65 20 6d 69 6e 75 74 65 73 20 61 6e 64 string.will.show.the.minutes.and
95000 20 73 65 63 6f 6e 64 73 20 61 6e 64 2c 20 69 66 0a 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 .seconds.and,.if.`emms-playing-t
95020 69 6d 65 2d 64 69 73 70 6c 61 79 2d 68 6f 75 72 73 2d 70 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 ime-display-hours-p'.is.non-nil.
95040 61 6e 64 20 74 68 65 20 64 75 72 61 74 69 6f 6e 20 69 73 0a 73 69 78 74 79 20 6d 69 6e 75 74 65 and.the.duration.is.sixty.minute
95060 73 20 6f 72 20 6d 6f 72 65 2c 20 74 68 65 20 68 6f 75 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 s.or.more,.the.hours."...(let.((
95080 6d 69 6e 75 74 65 73 20 28 2f 20 64 75 72 61 74 69 6f 6e 20 36 30 29 29 0a 20 20 20 20 20 20 20 minutes.(/.duration.60))........
950a0 20 28 73 65 63 6f 6e 64 73 20 28 25 20 64 75 72 61 74 69 6f 6e 20 36 30 29 29 29 0a 20 20 20 20 .(seconds.(%.duration.60))).....
950c0 28 69 66 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 70 6c (if.(and.emms-playing-time-displ
950e0 61 79 2d 68 6f 75 72 73 2d 70 20 28 3e 3d 20 6d 69 6e 75 74 65 73 20 36 30 29 29 0a 20 20 20 20 ay-hours-p.(>=.minutes.60)).....
95100 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 64 3a 25 30 32 64 3a 25 30 32 64 22 20 28 2f 20 6d 69 ....(format."%d:%02d:%02d".(/.mi
95120 6e 75 74 65 73 20 36 30 29 20 28 25 20 6d 69 6e 75 74 65 73 20 36 30 29 20 73 65 63 6f 6e 64 73 nutes.60).(%.minutes.60).seconds
95140 29 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 30 32 64 3a 25 30 32 64 22 20 6d 69 6e 75 ).......(format."%02d:%02d".minu
95160 74 65 73 20 73 65 63 6f 6e 64 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 tes.seconds))))..(defun.emms-pla
95180 79 69 6e 67 2d 74 69 6d 65 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 41 64 64 20 70 6c ying-time-mode-line.()..."Add.pl
951a0 61 79 69 6e 67 20 74 69 6d 65 20 74 6f 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 aying.time.to.the.mode.line."...
951c0 28 6f 72 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 20 28 73 65 74 71 20 67 6c 6f (or.global-mode-string.(setq.glo
951e0 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 20 27 28 22 22 29 29 29 0a 20 20 28 75 6e 6c 65 73 bal-mode-string.'("")))...(unles
95200 73 20 28 6d 65 6d 62 65 72 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 72 s.(member.'emms-playing-time-str
95220 69 6e 67 0a 09 09 20 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 ing.....global-mode-string).....
95240 28 73 65 74 71 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a 09 20 20 28 61 70 70 (setq.global-mode-string....(app
95260 65 6e 64 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a 09 09 20 20 27 28 65 6d 6d end.global-mode-string.....'(emm
95280 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 0a 28 64 65 66 s-playing-time-string)))))..(def
952a0 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 72 65 73 74 6f 72 65 2d 6d 6f 64 un.emms-playing-time-restore-mod
952c0 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 74 68 65 20 6d 6f 64 65 20 6c 69 e-line.()..."Restore.the.mode.li
952e0 6e 65 2e 22 0a 20 20 28 73 65 74 71 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a ne."...(setq.global-mode-string.
95300 09 28 72 65 6d 6f 76 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 74 72 69 .(remove.'emms-playing-time-stri
95320 6e 67 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 29 29 0a 20 20 28 66 6f 72 63 65 ng.global-mode-string))...(force
95340 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 -mode-line-update))..(provide.'e
95360 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 mms-playing-time)..;;;.emms-play
95380 69 6e 67 2d 74 69 6d 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 ing-time.el.ends.here...........
953a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
953c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
953e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6a 61 63 6b 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-jack.el............
95420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
95480 30 30 33 31 35 32 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 30 37 33 00 20 30 00 00 00 0031520.00000000000.013073..0...
954a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
954c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
954e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
95520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
95540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95600 3b 3b 3b 20 65 6d 6d 73 2d 6a 61 63 6b 2e 65 6c 20 2d 2d 2d 20 4a 61 63 6b 20 41 75 64 69 6f 20 ;;;.emms-jack.el.---.Jack.Audio.
95620 43 6f 6e 6e 65 63 74 69 6f 6e 20 4b 69 74 20 73 75 70 70 6f 72 74 20 20 2d 2a 2d 20 6c 65 78 69 Connection.Kit.support..-*-.lexi
95640 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 cal-binding:.t;.-*-..;;.Copyrigh
95660 74 20 28 43 29 20 32 30 30 35 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 t.(C).2005-2021..Free.Software.F
95680 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4d 61 72 69 oundation,.Inc...;;.Author:.Mari
956a0 6f 20 4c 61 6e 67 20 3c 6d 6c 61 6e 67 40 64 65 6c 79 73 69 64 2e 6f 72 67 3e 0a 3b 3b 20 4b 65 o.Lang.<mlang@delysid.org>.;;.Ke
956c0 79 77 6f 72 64 73 3a 20 6d 75 6c 74 69 6d 65 64 69 61 2c 20 70 72 6f 63 65 73 73 65 73 0a 0a 3b ywords:.multimedia,.processes..;
956e0 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f ;.This.file.is.free.software;.yo
95700 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 u.can.redistribute.it.and/or.mod
95720 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 ify.;;.it.under.the.terms.of.the
95740 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 .GNU.General.Public.License.as.p
95760 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ublished.by.;;.the.Free.Software
95780 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f .Foundation;.either.version.3,.o
957a0 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 r.(at.your.option).;;.any.later.
957c0 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 64 69 73 74 72 69 version...;;.This.file.is.distri
957e0 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 buted.in.the.hope.that.it.will.b
95800 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 e.useful,.;;.but.WITHOUT.ANY.WAR
95820 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 RANTY;.without.even.the.implied.
95840 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f warranty.of.;;.MERCHANTABILITY.o
95860 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f r.FITNESS.FOR.A.PARTICULAR.PURPO
95880 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c SE...See.the.;;.GNU.General.Publ
958a0 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b ic.License.for.more.details...;;
958c0 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 .You.should.have.received.a.copy
958e0 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .of.the.GNU.General.Public.Licen
95900 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 se.;;.along.with.GNU.Emacs;.see.
95920 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 the.file.COPYING...If.not,.write
95940 20 74 6f 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .to.;;.the.Free.Software.Foundat
95960 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 39 20 54 65 6d 70 6c 65 20 50 6c 61 63 65 20 2d 20 53 75 69 ion,.Inc.,.59.Temple.Place.-.Sui
95980 74 65 20 33 33 30 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 31 2d 31 33 30 37 te.330,.;;.Boston,.MA.02111-1307
959a0 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 4a 41 43 4b ,.USA...;;;.Commentary:..;;.JACK
959c0 20 69 73 20 61 20 6c 6f 77 2d 6c 61 74 65 6e 63 79 20 61 75 64 69 6f 20 73 65 72 76 65 72 2c 20 .is.a.low-latency.audio.server,.
959e0 77 72 69 74 74 65 6e 20 66 6f 72 20 50 4f 53 49 58 20 63 6f 6e 66 6f 72 6d 61 6e 74 0a 3b 3b 20 written.for.POSIX.conformant.;;.
95a00 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 73 20 73 75 63 68 20 61 73 20 47 4e 55 2f 4c 69 operating.systems.such.as.GNU/Li
95a20 6e 75 78 20 61 6e 64 20 41 70 70 6c 65 27 73 20 4f 53 20 58 2e 20 49 74 20 63 61 6e 20 63 6f 6e nux.and.Apple's.OS.X..It.can.con
95a40 6e 65 63 74 20 61 0a 3b 3b 20 6e 75 6d 62 65 72 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 61 70 nect.a.;;.number.of.different.ap
95a60 70 6c 69 63 61 74 69 6f 6e 73 20 74 6f 20 61 6e 20 61 75 64 69 6f 20 64 65 76 69 63 65 2c 20 61 plications.to.an.audio.device,.a
95a80 73 20 77 65 6c 6c 20 61 73 0a 3b 3b 20 61 6c 6c 6f 77 69 6e 67 20 74 68 65 6d 20 74 6f 20 73 68 s.well.as.;;.allowing.them.to.sh
95aa0 61 72 65 20 61 75 64 69 6f 20 62 65 74 77 65 65 6e 20 74 68 65 6d 73 65 6c 76 65 73 2e 20 49 74 are.audio.between.themselves..It
95ac0 73 20 63 6c 69 65 6e 74 73 20 63 61 6e 20 72 75 6e 20 69 6e 0a 3b 3b 20 74 68 65 69 72 20 6f 77 s.clients.can.run.in.;;.their.ow
95ae0 6e 20 70 72 6f 63 65 73 73 65 73 20 28 69 65 2e 20 61 73 20 6e 6f 72 6d 61 6c 20 61 70 70 6c 69 n.processes.(ie..as.normal.appli
95b00 63 61 74 69 6f 6e 73 29 2c 20 6f 72 20 74 68 65 79 20 63 61 6e 20 72 75 6e 0a 3b 3b 20 77 69 74 cations),.or.they.can.run.;;.wit
95b20 68 69 6e 20 74 68 65 20 4a 41 43 4b 20 73 65 72 76 65 72 20 28 69 65 2e 20 61 73 20 61 20 22 70 hin.the.JACK.server.(ie..as.a."p
95b40 6c 75 67 69 6e 22 29 2e 0a 3b 3b 0a 3b 3b 20 4a 41 43 4b 20 77 61 73 20 64 65 73 69 67 6e 65 64 lugin")..;;.;;.JACK.was.designed
95b60 20 66 72 6f 6d 20 74 68 65 20 67 72 6f 75 6e 64 20 75 70 20 66 6f 72 20 70 72 6f 66 65 73 73 69 .from.the.ground.up.for.professi
95b80 6f 6e 61 6c 20 61 75 64 69 6f 20 77 6f 72 6b 2c 20 61 6e 64 0a 3b 3b 20 69 74 73 20 64 65 73 69 onal.audio.work,.and.;;.its.desi
95ba0 67 6e 20 66 6f 63 75 73 65 73 20 6f 6e 20 74 77 6f 20 6b 65 79 20 61 72 65 61 73 3a 20 73 79 6e gn.focuses.on.two.key.areas:.syn
95bc0 63 68 72 6f 6e 6f 75 73 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 0a 3b 3b 20 63 6c 69 chronous.execution.of.all.;;.cli
95be0 65 6e 74 73 2c 20 61 6e 64 20 6c 6f 77 20 6c 61 74 65 6e 63 79 20 6f 70 65 72 61 74 69 6f 6e 2e ents,.and.low.latency.operation.
95c00 0a 3b 3b 0a 3b 3b 20 6a 61 63 6b 2e 65 6c 20 70 72 6f 76 69 64 65 73 20 61 20 66 61 73 63 69 6c .;;.;;.jack.el.provides.a.fascil
95c20 69 74 79 20 66 6f 72 20 73 74 61 72 74 69 6e 67 20 6a 61 63 6b 64 20 66 72 6f 6d 20 77 69 74 68 ity.for.starting.jackd.from.with
95c40 69 6e 20 45 6d 61 63 73 2e 0a 3b 3b 20 49 74 20 61 6c 73 6f 20 70 6f 76 69 64 65 73 20 63 6f 6e in.Emacs..;;.It.also.povides.con
95c60 76 65 6e 69 65 6e 63 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 70 72 6f 6d 70 74 69 6e 67 venience.functions.for.prompting
95c80 20 74 68 65 20 75 73 65 72 20 66 6f 72 0a 3b 3b 20 6a 61 63 6b 20 63 6c 69 65 6e 74 20 61 6e 64 .the.user.for.;;.jack.client.and
95ca0 20 70 6f 72 74 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2c 20 61 .port.names.in.the.minibuffer,.a
95cc0 73 20 77 65 6c 6c 20 61 73 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 73 20 60 6a 61 63 6b s.well.as.the.;;.functions.`jack
95ce0 2d 63 6f 6e 6e 65 63 74 27 20 61 6e 64 20 60 6a 61 63 6b 2d 64 69 73 63 6f 6e 6e 65 63 74 27 20 -connect'.and.`jack-disconnect'.
95d00 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 0a 3b 3b 20 72 65 61 72 72 61 6e 67 which.can.be.used.to.;;.rearrang
95d20 65 20 6a 61 63 6b 20 70 6f 72 74 20 77 69 72 69 6e 67 20 77 69 74 68 20 61 20 6d 69 6e 69 6d 75 e.jack.port.wiring.with.a.minimu
95d40 6d 20 6f 66 20 6b 65 79 73 74 72 6f 6b 65 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 m.of.keystrokes...;;;.Code:..(re
95d60 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 6f 6d 70 61 74 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 quire.'emms-compat)..(defgroup.e
95d80 6d 6d 73 2d 6a 61 63 6b 20 28 29 0a 20 20 22 4a 61 63 6b 20 41 75 64 69 6f 20 43 6f 6e 6e 65 63 mms-jack.()..."Jack.Audio.Connec
95da0 74 69 6f 6e 20 4b 69 74 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 63 65 73 73 65 73 29 0a 0a tion.Kit"...:group.'processes)..
95dc0 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6a 61 63 6b 2d 72 63 20 27 28 22 7e 2f 2e 6a 61 (defcustom.emms-jack-rc.'("~/.ja
95de0 63 6b 64 72 63 22 20 22 2f 65 74 63 2f 6a 61 63 6b 64 2e 63 6f 6e 66 22 29 0a 20 20 22 4a 41 43 ckdrc"."/etc/jackd.conf")..."JAC
95e00 4b 20 72 75 6e 20 63 6f 6e 74 72 6f 6c 20 70 61 74 68 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 K.run.control.paths."...:type.'(
95e20 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 repeat.string))..(defcustom.emms
95e40 2d 6a 61 63 6b 2d 75 73 65 2d 6a 61 63 6b 2d 72 63 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 -jack-use-jack-rc.t..."If.non-ni
95e60 6c 2c 20 74 72 79 20 74 6f 20 72 65 74 72 69 65 76 65 20 6a 61 63 6b 20 73 74 61 72 74 75 70 20 l,.try.to.retrieve.jack.startup.
95e80 61 72 67 75 6d 65 6e 74 73 20 66 72 6f 6d 20 72 75 6e 20 63 6f 6e 74 72 6f 6c 20 66 69 6c 65 73 arguments.from.run.control.files
95ea0 0a 6c 69 73 74 65 64 20 69 6e 20 60 6a 61 63 6b 2d 72 63 27 2e 20 20 49 66 20 6e 6f 20 72 63 20 .listed.in.`jack-rc'...If.no.rc.
95ec0 66 69 6c 65 20 69 73 20 66 6f 75 6e 64 20 6f 72 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 file.is.found.or.this.variable.i
95ee0 73 20 73 65 74 0a 74 6f 20 6e 69 6c 2c 20 75 73 65 20 74 68 65 20 45 6d 61 63 73 20 76 61 72 69 s.set.to.nil,.use.the.Emacs.vari
95f00 61 62 6c 65 73 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20 73 74 61 72 74 75 70 20 61 72 67 73 2e ables.to.build.the.startup.args.
95f20 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 "...:type.'boolean)..(defcustom.
95f40 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 67 72 61 6d 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 emms-jack-program.(executable-fi
95f60 6e 64 20 22 6a 61 63 6b 64 22 29 0a 20 20 22 4a 41 43 4b 20 65 78 65 63 75 74 61 62 6c 65 20 70 nd."jackd")..."JACK.executable.p
95f80 61 74 68 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d ath."...:type.'file)..(defcustom
95fa0 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 61 6d 70 6c 65 2d 72 61 74 65 20 34 34 31 30 30 0a 20 20 22 .emms-jack-sample-rate.44100..."
95fc0 44 65 66 61 75 6c 74 20 73 61 6d 70 6c 69 6e 67 20 72 61 74 65 20 66 6f 72 20 4a 41 43 4b 2e 22 Default.sampling.rate.for.JACK."
95fe0 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 ...:type.'integer)..(defcustom.e
96000 6d 6d 73 2d 6a 61 63 6b 2d 70 65 72 69 6f 64 2d 73 69 7a 65 20 31 32 38 0a 20 20 22 50 65 72 69 mms-jack-period-size.128..."Peri
96020 6f 64 20 73 69 7a 65 20 74 6f 20 75 73 65 20 77 68 65 6e 20 6c 61 75 6e 63 68 69 6e 67 20 6e 65 od.size.to.use.when.launching.ne
96040 77 20 4a 41 43 4b 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 w.JACK.process."...:type.'intege
96060 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6a 61 63 6b 2d 61 6c 73 61 2d 64 65 r)..(defcustom.emms-jack-alsa-de
96080 76 69 63 65 20 6e 69 6c 0a 20 20 22 41 4c 53 41 20 73 6f 75 6e 64 63 61 72 64 20 74 6f 20 75 73 vice.nil..."ALSA.soundcard.to.us
960a0 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 e."...:type.'(choice.(const.:tag
960c0 20 22 41 73 6b 22 20 6e 69 6c 29 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ."Ask".nil).string))..(defun.emm
960e0 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 61 6c 73 61 2d 64 65 76 69 63 65 20 28 29 0a 20 20 22 52 65 s-jack-read-alsa-device.()..."Re
96100 61 64 20 61 6e 20 41 4c 53 41 20 64 65 76 69 63 65 20 6e 61 6d 65 20 75 73 69 6e 67 20 74 68 65 ad.an.ALSA.device.name.using.the
96120 20 6d 69 6e 69 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 63 61 72 64 73 29 0a 20 20 20 .minibuffer."...(let.(cards)....
96140 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 .(with-temp-buffer.......(insert
96160 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 22 2f 70 72 6f 63 2f 61 73 6f 75 6e 64 2f 63 61 72 -file-contents."/proc/asound/car
96180 64 73 22 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 09 ds").......(while.(not.(eobp))..
961a0 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 5c 28 5b 30 2d 39 5d 5c 5c 29 20 5c 5c (if.(looking-at."^\\([0-9]\\).\\
961c0 5b 2e 2b 5c 5c 5d 3a 20 5c 5c 28 2e 2b 5c 5c 29 5c 6e 20 2b 5c 5c 28 2e 2a 5c 5c 29 24 22 29 0a [.+\\]:.\\(.+\\)\n.+\\(.*\\)$").
961e0 09 20 20 20 20 28 73 65 74 71 20 63 61 72 64 73 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 .....(setq.cards.(append.(list.(
96200 63 6f 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 20 28 6d 61 74 63 68 2d 73 74 72 cons.(match-string.3).(match-str
96220 69 6e 67 20 31 29 29 29 20 63 61 72 64 73 29 29 29 0a 09 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 ing.1))).cards)))..(forward-line
96240 20 31 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 22 68 77 3a 22 20 28 63 64 72 20 28 61 73 .1))).....(concat."hw:".(cdr.(as
96260 73 6f 63 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 43 61 72 64 3a 20 22 20 63 61 soc.(completing-read."Card:.".ca
96280 72 64 73 20 6e 69 6c 20 74 29 20 63 61 72 64 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d rds.nil.t).cards)))))..(defun.em
962a0 6d 73 2d 6a 61 63 6b 2d 61 6c 73 61 2d 64 65 76 69 63 65 20 28 29 0a 20 20 28 6f 72 20 65 6d 6d ms-jack-alsa-device.()...(or.emm
962c0 73 2d 6a 61 63 6b 2d 61 6c 73 61 2d 64 65 76 69 63 65 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 s-jack-alsa-device.(emms-jack-re
962e0 61 64 2d 61 6c 73 61 2d 64 65 76 69 63 65 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d ad-alsa-device)))..(defcustom.em
96300 6d 73 2d 6a 61 63 6b 2d 6f 75 74 70 75 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 4a 41 43 ms-jack-output-buffer-name."*JAC
96320 4b 20 6f 75 74 70 75 74 2a 22 0a 20 20 22 4f 75 74 70 75 74 20 62 75 66 66 65 72 20 6e 61 6d 65 K.output*"..."Output.buffer.name
96340 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 ."...:type.'string)..(defun.emms
96360 2d 6a 61 63 6b 2d 61 72 67 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f -jack-args.()..."Return.a.list.o
96380 66 20 73 74 61 72 74 75 70 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 75 73 65 2e 0a 46 69 72 73 f.startup.arguments.to.use..Firs
963a0 74 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 70 61 74 68 t.element.is.the.executable.path
963c0 2e 22 0a 20 20 28 6f 72 20 28 61 6e 64 20 65 6d 6d 73 2d 6a 61 63 6b 2d 75 73 65 2d 6a 61 63 6b ."...(or.(and.emms-jack-use-jack
963e0 2d 72 63 0a 09 20 20 20 28 63 61 74 63 68 20 27 72 63 2d 66 6f 75 6e 64 0a 09 20 20 20 20 20 28 -rc.....(catch.'rc-found.......(
96400 6c 65 74 20 28 28 66 69 6c 65 73 20 28 6d 61 70 63 61 72 20 23 27 65 78 70 61 6e 64 2d 66 69 6c let.((files.(mapcar.#'expand-fil
96420 65 2d 6e 61 6d 65 20 65 6d 6d 73 2d 6a 61 63 6b 2d 72 63 29 29 29 0a 09 20 20 20 20 20 20 20 28 e-name.emms-jack-rc))).........(
96440 77 68 69 6c 65 20 66 69 6c 65 73 0a 09 09 20 28 69 66 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d while.files....(if.(file-exists-
96460 70 20 28 63 61 72 20 66 69 6c 65 73 29 29 0a 09 09 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 p.(car.files))........(with-temp
96480 2d 62 75 66 66 65 72 0a 09 09 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f -buffer..........(insert-file-co
964a0 6e 74 65 6e 74 73 20 28 63 61 72 20 66 69 6c 65 73 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 ntents.(car.files))..........(wh
964c0 65 6e 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 30 29 0a 09 09 09 20 28 74 68 72 6f en.(>.(buffer-size).0).....(thro
964e0 77 20 27 72 63 2d 66 6f 75 6e 64 0a 09 09 09 09 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 62 w.'rc-found.....(split-string.(b
96500 75 66 66 65 72 2d 73 74 72 69 6e 67 29 20 22 5b 5c 6e 20 5c 74 5d 2b 22 29 29 29 29 29 0a 09 09 uffer-string)."[\n.\t]+")))))...
96520 20 28 73 65 74 71 20 66 69 6c 65 73 20 28 63 64 72 20 66 69 6c 65 73 29 29 29 29 0a 09 20 20 20 .(setq.files.(cdr.files)))).....
96540 20 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 ..nil)).......(list.emms-jack-pr
96560 6f 67 72 61 6d 0a 09 20 20 20 20 22 2d 76 22 0a 09 20 20 20 20 22 2d 52 22 0a 09 20 20 20 20 22 ogram......"-v"......"-R"......"
96580 2d 64 61 6c 73 61 22 0a 09 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2d 64 25 73 22 20 28 65 6d 6d -dalsa"......(format."-d%s".(emm
965a0 73 2d 6a 61 63 6b 2d 61 6c 73 61 2d 64 65 76 69 63 65 29 29 0a 09 20 20 20 20 28 66 6f 72 6d 61 s-jack-alsa-device))......(forma
965c0 74 20 22 2d 72 25 64 22 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 61 6d 70 6c 65 2d 72 61 74 65 29 0a t."-r%d".emms-jack-sample-rate).
965e0 09 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2d 70 25 64 22 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 65 .....(format."-p%d".emms-jack-pe
96600 72 69 6f 64 2d 73 69 7a 65 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6a riod-size))))..(defcustom.emms-j
96620 61 63 6b 2d 73 65 74 2d 72 74 6c 69 6d 69 74 73 20 74 0a 20 20 22 55 73 65 20 73 65 74 5f 72 74 ack-set-rtlimits.t..."Use.set_rt
96640 6c 69 6d 69 74 73 20 28 69 66 20 61 76 61 69 6c 61 62 6c 65 29 20 74 6f 20 67 61 69 6e 20 72 65 limits.(if.available).to.gain.re
96660 61 6c 74 69 6d 65 20 70 72 69 6f 72 69 74 69 65 73 20 69 66 20 2d 52 0a 69 73 20 67 69 76 65 6e altime.priorities.if.-R.is.given
96680 20 69 6e 20 6a 61 63 6b 64 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2e 22 0a 20 20 3a 74 79 70 65 .in.jackd.command-line."...:type
966a0 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6a 61 63 6b .'boolean)..(defcustom.emms-jack
966c0 2d 73 65 74 2d 72 74 6c 69 6d 69 74 73 2d 70 72 6f 67 72 61 6d 20 28 65 78 65 63 75 74 61 62 6c -set-rtlimits-program.(executabl
966e0 65 2d 66 69 6e 64 20 22 73 65 74 5f 72 74 6c 69 6d 69 74 73 22 29 0a 20 20 22 50 61 74 68 20 74 e-find."set_rtlimits")..."Path.t
96700 6f 20 73 65 74 5f 72 74 6c 69 6d 69 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a o.set_rtlimits."...:type.'file).
96720 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 6d 61 79 62 65 2d 72 74 6c 69 6d 69 74 73 .(defun.emms-jack-maybe-rtlimits
96740 20 28 61 72 67 73 29 0a 20 20 28 69 66 20 28 61 6e 64 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 65 74 .(args)...(if.(and.emms-jack-set
96760 2d 72 74 6c 69 6d 69 74 73 0a 09 20 20 20 28 6f 72 20 28 6d 65 6d 62 65 72 20 22 2d 52 22 20 61 -rtlimits.....(or.(member."-R".a
96780 72 67 73 29 20 28 6d 65 6d 62 65 72 20 22 2d 2d 72 65 61 6c 74 69 6d 65 22 20 61 72 67 73 29 29 rgs).(member."--realtime".args))
967a0 0a 09 20 20 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 65 .....(file-exists-p.emms-jack-se
967c0 74 2d 72 74 6c 69 6d 69 74 73 2d 70 72 6f 67 72 61 6d 29 29 0a 20 20 20 20 20 20 28 61 70 70 65 t-rtlimits-program)).......(appe
967e0 6e 64 20 28 6c 69 73 74 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 65 74 2d 72 74 6c 69 6d 69 74 73 2d nd.(list.emms-jack-set-rtlimits-
96800 70 72 6f 67 72 61 6d 20 22 2d 72 22 29 20 61 72 67 73 29 0a 20 20 20 20 61 72 67 73 29 29 0a 0a program."-r").args).....args))..
96820 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 0a 0a (defvar.emms-jack-process.nil)..
96840 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 6c 6f 61 64 20 30 29 0a 0a 28 64 65 66 76 (defvar.emms-jack-load.0)..(defv
96860 61 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 6d 61 78 2d 75 73 65 63 73 20 30 29 0a 0a 28 64 65 66 76 ar.emms-jack-max-usecs.0)..(defv
96880 61 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 70 61 72 65 20 30 29 0a 0a 28 64 65 66 75 6e 20 65 6d ar.emms-jack-spare.0)..(defun.em
968a0 6d 73 2d 6a 61 63 6b 2d 6f 75 74 70 75 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 28 6f 72 20 28 ms-jack-output-buffer.()...(or.(
968c0 67 65 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 6f 75 74 70 75 74 2d 62 75 66 66 get-buffer.emms-jack-output-buff
968e0 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 er-name).......(with-current-buf
96900 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 6a 61 63 6b fer.(get-buffer-create.emms-jack
96920 2d 6f 75 74 70 75 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 09 28 73 65 74 71 20 6d 61 6a 6f -output-buffer-name)..(setq.majo
96940 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6a 61 63 6b 2d 6d 6f 64 65 0a 09 20 20 20 20 20 20 6d 6f r-mode.'emms-jack-mode........mo
96960 64 65 2d 6e 61 6d 65 20 22 4a 41 43 4b 22 0a 09 20 20 20 20 20 20 6d 6f 64 65 2d 6c 69 6e 65 2d de-name."JACK"........mode-line-
96980 66 6f 72 6d 61 74 20 28 63 6f 70 79 2d 74 72 65 65 20 6d 6f 64 65 2d 6c 69 6e 65 2d 66 6f 72 6d format.(copy-tree.mode-line-form
969a0 61 74 29 29 0a 09 28 73 65 74 63 61 72 20 28 6e 74 68 63 64 72 20 31 36 20 6d 6f 64 65 2d 6c 69 at))..(setcar.(nthcdr.16.mode-li
969c0 6e 65 2d 66 6f 72 6d 61 74 29 0a 09 09 60 28 3a 65 76 61 6c 20 28 66 6f 72 6d 61 74 20 22 6c 6f ne-format)...`(:eval.(format."lo
969e0 61 64 3a 25 2e 32 66 22 20 65 6d 6d 73 2d 6a 61 63 6b 2d 6c 6f 61 64 29 29 29 0a 09 28 61 64 64 ad:%.2f".emms-jack-load)))..(add
96a00 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 62 75 66 66 65 72 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6a -hook.'kill-buffer-hook.#'emms-j
96a20 61 63 6b 2d 6b 69 6c 6c 20 6e 69 6c 20 74 29 0a 09 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ack-kill.nil.t)..(current-buffer
96a40 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 78 72 75 6e 73 20 6e 69 ))))..(defvar.emms-jack-xruns.ni
96a60 6c 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 66 69 6c 74 65 72 20 28 70 72 6f l)..(defun.emms-jack-filter.(pro
96a80 63 20 73 74 72 69 6e 67 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 c.string)...(with-current-buffer
96aa0 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 0a 20 20 20 20 28 6c 65 74 20 .(process-buffer.proc).....(let.
96ac0 28 28 6d 6f 76 69 6e 67 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 ((moving.(=.(point).(process-mar
96ae0 6b 20 70 72 6f 63 29 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e k.proc)))).......(save-excursion
96b00 0a 09 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 09 20 20 28 69 66 20 28 73 74 72 69 6e ..(save-match-data....(if.(strin
96b20 67 2d 6d 61 74 63 68 20 22 5e 6c 6f 61 64 20 3d 20 5c 5c 28 5b 5e 20 5d 2b 5c 5c 29 20 6d 61 78 g-match."^load.=.\\([^.]+\\).max
96b40 20 75 73 65 63 73 3a 20 5c 5c 28 5b 5e 2c 5d 2b 5c 5c 29 2c 20 73 70 61 72 65 20 3d 20 5c 5c 28 .usecs:.\\([^,]+\\),.spare.=.\\(
96b60 2e 2b 5c 5c 29 24 22 20 73 74 72 69 6e 67 29 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d .+\\)$".string)........(setq.emm
96b80 73 2d 6a 61 63 6b 2d 6c 6f 61 64 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d s-jack-load.(string-to-number.(m
96ba0 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 74 72 69 6e 67 29 29 0a 09 09 20 20 20 20 65 6d 6d atch-string.1.string)).......emm
96bc0 73 2d 6a 61 63 6b 2d 6d 61 78 2d 75 73 65 63 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 s-jack-max-usecs.(string-to-numb
96be0 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 73 74 72 69 6e 67 29 29 0a 09 09 20 20 er.(match-string.2.string)).....
96c00 20 20 65 6d 6d 73 2d 6a 61 63 6b 2d 73 70 61 72 65 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d ..emms-jack-spare.(string-to-num
96c20 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 73 74 72 69 6e 67 29 29 29 0a 09 20 ber.(match-string.3.string)))...
96c40 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 2a 2a 2a 2a 20 61 6c 73 61 ...(if.(string-match."^****.alsa
96c60 5f 70 63 6d 3a 20 78 72 75 6e 20 6f 66 20 61 74 20 6c 65 61 73 74 20 5c 5c 28 5b 5e 20 5d 2b 5c _pcm:.xrun.of.at.least.\\([^.]+\
96c80 5c 29 20 6d 73 65 63 73 24 22 20 73 74 72 69 6e 67 29 0a 09 09 28 70 75 73 68 20 28 73 74 72 69 \).msecs$".string)...(push.(stri
96ca0 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 74 72 ng-to-number.(match-string.1.str
96cc0 69 6e 67 29 29 20 65 6d 6d 73 2d 6a 61 63 6b 2d 78 72 75 6e 73 29 0a 09 20 20 20 20 20 20 28 67 ing)).emms-jack-xruns)........(g
96ce0 6f 74 6f 2d 63 68 61 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 29 29 0a 09 20 oto-char.(process-mark.proc))...
96d00 20 20 20 20 20 28 69 6e 73 65 72 74 20 73 74 72 69 6e 67 29 0a 09 20 20 20 20 20 20 28 73 65 74 .....(insert.string)........(set
96d20 2d 6d 61 72 6b 65 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 29 20 28 70 6f 69 -marker.(process-mark.proc).(poi
96d40 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6d 6f 76 69 6e 67 20 28 67 6f 74 nt)))))).......(when.moving.(got
96d60 6f 2d 63 68 61 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 29 29 29 29 29 29 0a o-char.(process-mark.proc)))))).
96d80 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 72 75 6e 6e 69 6e 67 2d 70 20 28 29 0a 20 .(defun.emms-jack-running-p.()..
96da0 20 28 61 6e 64 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 63 65 73 73 20 28 70 72 6f 63 65 73 73 .(and.emms-jack-process.(process
96dc0 70 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 20 28 65 71 20 p.emms-jack-process)........(eq.
96de0 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 63 65 73 (process-status.emms-jack-proces
96e00 73 29 20 27 72 75 6e 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6a 61 63 6b s).'run)))..(defcustom.emms-jack
96e20 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 77 68 -started-hook.nil..."Hook.run.wh
96e40 65 6e 20 60 65 6d 6d 73 2d 6a 61 63 6b 2d 73 74 61 72 74 27 20 73 75 63 63 65 73 73 66 75 6c 6c en.`emms-jack-start'.successfull
96e60 79 20 73 74 61 72 74 65 64 20 61 20 6e 65 77 20 4a 41 43 4b 20 69 6e 74 61 6e 63 65 2e 22 0a 20 y.started.a.new.JACK.intance."..
96e80 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d .:type.'hook)..(defun.emms-jack-
96ea0 73 74 61 72 74 20 28 29 0a 20 20 22 53 74 61 72 74 20 74 68 65 20 4a 41 43 4b 20 70 72 6f 63 65 start.()..."Start.the.JACK.proce
96ec0 73 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 65 6d 6d 73 ss."...(interactive)...(if.(emms
96ee0 2d 6a 61 63 6b 2d 72 75 6e 6e 69 6e 67 2d 70 29 20 28 65 72 72 6f 72 20 22 4a 41 43 4b 20 61 6c -jack-running-p).(error."JACK.al
96f00 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 22 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6a ready.running").....(setq.emms-j
96f20 61 63 6b 2d 70 72 6f 63 65 73 73 0a 09 20 20 28 61 70 70 6c 79 20 23 27 73 74 61 72 74 2d 70 72 ack-process....(apply.#'start-pr
96f40 6f 63 65 73 73 20 22 6a 61 63 6b 22 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 6f 75 74 70 75 74 2d 62 ocess."jack".(emms-jack-output-b
96f60 75 66 66 65 72 29 0a 09 09 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 6d 61 79 62 65 2d 72 74 6c 69 6d uffer)....(emms-jack-maybe-rtlim
96f80 69 74 73 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 61 72 67 73 29 29 29 29 0a 20 20 20 20 28 73 65 74 its.(emms-jack-args)))).....(set
96fa0 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 65 72 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 63 65 73 -process-filter.emms-jack-proces
96fc0 73 20 23 27 65 6d 6d 73 2d 6a 61 63 6b 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 28 72 75 6e 2d 68 s.#'emms-jack-filter).....(run-h
96fe0 6f 6f 6b 73 20 27 65 6d 6d 73 2d 6a 61 63 6b 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 29 0a 20 20 ooks.'emms-jack-started-hook)...
97000 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 6f ..(switch-to-buffer.(emms-jack-o
97020 75 74 70 75 74 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 utput-buffer))))..(defun.emms-ja
97040 63 6b 2d 6b 69 6c 6c 20 28 29 0a 20 20 22 4b 69 6c 6c 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 ck-kill.()..."Kill.the.currently
97060 20 72 75 6e 6e 69 6e 67 20 4a 41 43 4b 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 28 69 6e 74 65 72 .running.JACK.process."...(inter
97080 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 75 6e 6e 69 active)...(when.(emms-jack-runni
970a0 6e 67 2d 70 29 20 28 64 65 6c 65 74 65 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 6a 61 63 6b 2d ng-p).(delete-process.emms-jack-
970c0 70 72 6f 63 65 73 73 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6a 61 63 6b 2d 70 72 6f 63 process))...(setq.emms-jack-proc
970e0 65 73 73 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 73 74 ess.nil))..(defun.emms-jack-rest
97100 61 72 74 20 28 29 0a 20 20 22 52 65 73 74 61 72 74 20 4a 41 43 4b 2e 22 0a 20 20 28 69 6e 74 65 art.()..."Restart.JACK."...(inte
97120 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 75 6e 6e 69 6e ractive)...(if.(emms-jack-runnin
97140 67 2d 70 29 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 6b 69 6c 6c 29 29 0a 20 20 28 73 69 74 2d 66 6f g-p).(emms-jack-kill))...(sit-fo
97160 72 20 30 29 0a 20 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 r.0)...(emms-jack-start))..(defu
97180 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 n.emms-jack-list.()..."Retrieve.
971a0 61 20 6c 69 73 74 20 6f 66 20 4a 41 43 4b 20 63 6c 69 65 6e 74 73 2f 70 6f 72 74 73 2e 22 0a 20 a.list.of.JACK.clients/ports."..
971c0 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f .(with-temp-buffer.....(call-pro
971e0 63 65 73 73 20 22 6a 61 63 6b 5f 6c 73 70 22 20 6e 69 6c 20 74 20 6e 69 6c 20 22 2d 63 70 6c 22 cess."jack_lsp".nil.t.nil."-cpl"
97200 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ).....(goto-char.(point-min))...
97220 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 20 63 75 72 72 65 6e 74 2d 70 6f 72 74 29 0a 20 20 20 ..(let.(result.current-port)....
97240 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 09 28 63 6f 6e 64 0a 09 20 ...(while.(not.(eobp))..(cond...
97260 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 5c 28 5b 5e 20 5c 74 3a 5d 2b 5c 5c 29 3a 5c 5c ((looking-at."^\\([^.\t:]+\\):\\
97280 28 2e 2b 5c 5c 29 24 22 29 0a 09 20 20 28 6c 65 74 20 28 28 70 72 6f 67 72 61 6d 20 28 6d 61 74 (.+\\)$")....(let.((program.(mat
972a0 63 68 2d 73 74 72 69 6e 67 20 31 29 29 0a 09 09 28 70 6f 72 74 20 28 6d 61 74 63 68 2d 73 74 72 ch-string.1))...(port.(match-str
972c0 69 6e 67 20 32 29 29 29 0a 09 20 20 20 20 28 69 66 20 28 61 73 73 6f 63 20 70 72 6f 67 72 61 6d ing.2)))......(if.(assoc.program
972e0 20 72 65 73 75 6c 74 29 0a 09 09 28 73 65 74 63 64 72 20 28 61 73 73 6f 63 20 70 72 6f 67 72 61 .result)...(setcdr.(assoc.progra
97300 6d 20 72 65 73 75 6c 74 29 0a 09 09 09 28 61 70 70 65 6e 64 20 28 63 64 72 20 28 61 73 73 6f 63 m.result)....(append.(cdr.(assoc
97320 20 70 72 6f 67 72 61 6d 20 72 65 73 75 6c 74 29 29 20 28 6c 69 73 74 20 28 73 65 74 71 20 63 75 .program.result)).(list.(setq.cu
97340 72 72 65 6e 74 2d 70 6f 72 74 20 28 6c 69 73 74 20 70 6f 72 74 29 29 29 29 29 0a 09 20 20 20 20 rrent-port.(list.port)))))......
97360 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 0a 09 09 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 ..(setq.result.......(append.(li
97380 73 74 20 28 6c 69 73 74 20 70 72 6f 67 72 61 6d 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d 70 st.(list.program.(setq.current-p
973a0 6f 72 74 20 28 6c 69 73 74 20 70 6f 72 74 29 29 29 29 20 72 65 73 75 6c 74 29 29 29 29 29 0a 09 ort.(list.port)))).result)))))..
973c0 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 20 20 20 5c 5c 28 5b 5e 20 5c 74 3a 5d 2b 5c 5c .((looking-at."^...\\([^.\t:]+\\
973e0 29 3a 5c 5c 28 2e 2b 5c 5c 29 24 22 29 0a 09 20 20 28 69 66 20 28 61 73 73 6f 63 20 27 63 6f 6e ):\\(.+\\)$")....(if.(assoc.'con
97400 6e 65 63 74 69 6f 6e 73 20 28 63 64 72 20 63 75 72 72 65 6e 74 2d 70 6f 72 74 29 29 0a 09 20 20 nections.(cdr.current-port))....
97420 20 20 20 20 28 73 65 74 63 64 72 20 28 61 73 73 6f 63 20 27 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 ....(setcdr.(assoc.'connections.
97440 28 63 64 72 20 63 75 72 72 65 6e 74 2d 70 6f 72 74 29 29 0a 09 09 20 20 20 20 20 20 28 61 70 70 (cdr.current-port)).........(app
97460 65 6e 64 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 63 75 72 end.(cdr.(assoc.'connections.cur
97480 72 65 6e 74 2d 70 6f 72 74 29 29 0a 09 09 09 20 20 20 20 20 20 28 6c 69 73 74 20 28 6c 69 73 74 rent-port))..........(list.(list
974a0 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 .(match-string.1).(match-string.
974c0 32 29 29 29 29 29 0a 09 20 20 20 20 28 73 65 74 63 64 72 20 63 75 72 72 65 6e 74 2d 70 6f 72 74 2)))))......(setcdr.current-port
974e0 0a 09 09 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 6c 69 73 74 20 27 63 6f 6e 6e .......(append.(list.(list.'conn
97500 65 63 74 69 6f 6e 73 20 28 6c 69 73 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 28 ections.(list.(match-string.1).(
97520 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 20 28 63 64 72 20 63 75 72 72 65 6e 74 2d match-string.2)))).(cdr.current-
97540 70 6f 72 74 29 29 29 29 29 0a 09 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 74 70 72 6f port)))))...((looking-at."^\tpro
97560 70 65 72 74 69 65 73 3a 20 5c 5c 28 2e 2b 5c 5c 29 2c 24 22 29 0a 09 20 20 28 73 65 74 63 64 72 perties:.\\(.+\\),$")....(setcdr
97580 20 63 75 72 72 65 6e 74 2d 70 6f 72 74 0a 09 09 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 .current-port.....(append.(list.
975a0 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 27 70 72 6f 70 65 72 74 69 65 73 29 20 28 6d 61 70 63 (append.(list.'properties).(mapc
975c0 61 72 20 23 27 69 6e 74 65 72 6e 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 ar.#'intern.(split-string.(match
975e0 2d 73 74 72 69 6e 67 20 31 29 20 22 2c 22 29 29 29 29 20 28 63 64 72 20 63 75 72 72 65 6e 74 2d -string.1).",")))).(cdr.current-
97600 70 6f 72 74 29 29 29 29 29 0a 09 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 port)))))..(forward-line.1))....
97620 20 20 20 72 65 73 75 6c 74 29 29 29 0a 09 20 20 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 ...result))).....(defun.emms-jac
97640 6b 2d 70 6f 72 74 73 20 28 70 72 6f 67 72 61 6d 29 0a 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 k-ports.(program)...(cdr.(assoc.
97660 70 72 6f 67 72 61 6d 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 program.(emms-jack-list))))..(de
97680 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 67 65 74 2d 70 6f 72 74 2d 63 6f 6e 6e 65 63 74 69 6f fun.emms-jack-get-port-connectio
976a0 6e 73 20 28 70 72 6f 67 72 61 6d 20 70 6f 72 74 29 0a 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 ns.(program.port)...(cdr.(assoc.
976c0 27 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 6f 72 74 20 28 65 'connections.(cdr.(assoc.port.(e
976e0 6d 6d 73 2d 6a 61 63 6b 2d 70 6f 72 74 73 20 70 72 6f 67 72 61 6d 29 29 29 29 29 29 0a 0a 28 64 mms-jack-ports.program))))))..(d
97700 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 67 65 74 2d 70 6f 72 74 2d 70 72 6f 70 65 72 74 69 efun.emms-jack-get-port-properti
97720 65 73 20 28 70 72 6f 67 72 61 6d 20 70 6f 72 74 29 0a 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 es.(program.port)...(cdr.(assoc.
97740 27 70 72 6f 70 65 72 74 69 65 73 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 6f 72 74 20 28 65 6d 'properties.(cdr.(assoc.port.(em
97760 6d 73 2d 6a 61 63 6b 2d 70 6f 72 74 73 20 70 72 6f 67 72 61 6d 29 29 29 29 29 29 0a 0a 28 64 65 ms-jack-ports.program))))))..(de
97780 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 67 65 74 2d 64 69 72 65 63 74 69 6f 6e 20 28 70 72 6f fun.emms-jack-get-direction.(pro
977a0 67 72 61 6d 20 70 6f 72 74 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 70 73 20 28 65 6d 6d 73 2d gram.port)...(let.((props.(emms-
977c0 6a 61 63 6b 2d 67 65 74 2d 70 6f 72 74 2d 70 72 6f 70 65 72 74 69 65 73 20 70 72 6f 67 72 61 6d jack-get-port-properties.program
977e0 20 70 6f 72 74 29 29 29 0a 20 20 20 20 28 6f 72 20 28 63 61 72 20 28 6d 65 6d 62 65 72 20 27 6f .port))).....(or.(car.(member.'o
97800 75 74 70 75 74 20 70 72 6f 70 73 29 29 0a 09 28 63 61 72 20 28 6d 65 6d 62 65 72 20 27 69 6e 70 utput.props))..(car.(member.'inp
97820 75 74 20 70 72 6f 70 73 29 29 0a 09 28 65 72 72 6f 72 20 22 4e 65 69 74 68 65 72 20 69 6e 70 75 ut.props))..(error."Neither.inpu
97840 74 20 6e 6f 72 20 6f 75 74 70 75 74 20 70 6f 72 74 22 29 29 29 29 0a 20 20 20 20 20 20 0a 28 64 t.nor.output.port"))))........(d
97860 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 72 6f 67 72 61 6d 20 28 70 72 6f efun.emms-jack-read-program.(pro
97880 6d 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 65 64 69 63 61 74 65 29 0a 20 20 28 6c 65 74 20 mpt.&optional.predicate)...(let.
978a0 28 28 70 72 6f 67 73 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 72 65 64 69 63 61 74 65 ((progs.(if.(functionp.predicate
978c0 29 0a 09 09 20 20 20 28 65 6d 6d 73 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 70 72 65 64 69 )......(emms-remove-if-not.predi
978e0 63 61 74 65 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 6c 69 73 74 29 29 0a 09 09 20 28 65 6d 6d 73 2d cate.(emms-jack-list))....(emms-
97900 6a 61 63 6b 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 70 72 6f 67 73 20 jack-list)))).....(unless.progs.
97920 28 65 72 72 6f 72 20 22 4e 6f 20 6d 61 74 63 68 69 6e 67 20 4a 41 43 4b 20 63 6c 69 65 6e 74 73 (error."No.matching.JACK.clients
97940 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 28 6c 65 6e 67 74 68 20 70 72 6f .found")).....(if.(<.(length.pro
97960 67 73 29 20 32 29 20 28 63 61 61 72 20 70 72 6f 67 73 29 0a 20 20 20 20 20 20 28 63 6f 6d 70 6c gs).2).(caar.progs).......(compl
97980 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 70 72 6f 67 73 20 6e 69 6c 20 74 29 29 29 eting-read.prompt.progs.nil.t)))
979a0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 75 6e 69 71 75 65 2d 70 6f 72 74 2d )..(defun.emms-jack-unique-port-
979c0 6e 61 6d 65 20 28 73 74 72 69 6e 67 73 29 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 22 22 name.(strings)...(let.((start.""
979e0 29 0a 09 28 6d 61 78 6c 65 6e 20 28 61 70 70 6c 79 20 23 27 6d 69 6e 20 28 6d 61 70 63 61 72 20 )..(maxlen.(apply.#'min.(mapcar.
97a00 23 27 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 73 29 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 #'length.strings)))).....(while.
97a20 28 61 6e 64 20 28 3c 20 28 6c 65 6e 67 74 68 20 73 74 61 72 74 29 20 6d 61 78 6c 65 6e 29 0a 09 (and.(<.(length.start).maxlen)..
97a40 09 28 63 61 74 63 68 20 27 6e 6f 74 2d 6f 6b 0a 09 09 20 20 28 6c 65 74 20 28 28 6e 65 78 74 63 .(catch.'not-ok.....(let.((nextc
97a60 68 61 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 72 20 73 74 72 69 6e 67 73 29 20 28 6c 65 har.(substring.(car.strings).(le
97a80 6e 67 74 68 20 73 74 61 72 74 29 20 28 31 2b 20 28 6c 65 6e 67 74 68 20 73 74 61 72 74 29 29 29 ngth.start).(1+.(length.start)))
97aa0 29 29 0a 09 09 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 0a 09 09 09 )).......(mapc.(lambda.(str)....
97ac0 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 28 63 6f 6e 63 61 74 20 73 74 61 ....(unless.(string=.(concat.sta
97ae0 72 74 20 6e 65 78 74 63 68 61 72 29 20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 20 30 20 28 31 rt.nextchar).(substring.str.0.(1
97b00 2b 20 28 6c 65 6e 67 74 68 20 73 74 61 72 74 29 29 29 29 0a 09 09 09 20 20 20 20 20 20 28 74 68 +.(length.start))))..........(th
97b20 72 6f 77 20 27 6e 6f 74 2d 6f 6b 20 6e 69 6c 29 29 29 0a 09 09 09 20 20 73 74 72 69 6e 67 73 29 row.'not-ok.nil)))......strings)
97b40 0a 09 09 20 20 20 20 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 73 .......t))).......(setq.start.(s
97b60 75 62 73 74 72 69 6e 67 20 28 63 61 72 20 73 74 72 69 6e 67 73 29 20 30 20 28 31 2b 20 28 6c 65 ubstring.(car.strings).0.(1+.(le
97b80 6e 67 74 68 20 73 74 61 72 74 29 29 29 29 29 0a 20 20 20 20 73 74 61 72 74 29 29 0a 0a 28 64 65 ngth.start))))).....start))..(de
97ba0 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 6f 72 74 20 28 70 72 6f 67 72 61 6d fun.emms-jack-read-port.(program
97bc0 20 70 72 6f 6d 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 65 64 69 63 61 74 65 29 0a 20 20 28 .prompt.&optional.predicate)...(
97be0 6c 65 74 20 28 28 70 6f 72 74 73 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 72 65 64 69 let.((ports.(if.(functionp.predi
97c00 63 61 74 65 29 0a 09 09 20 20 20 28 65 6d 6d 73 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 70 cate)......(emms-remove-if-not.p
97c20 72 65 64 69 63 61 74 65 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 70 6f 72 74 73 20 70 72 6f 67 72 61 redicate.(emms-jack-ports.progra
97c40 6d 29 29 0a 09 09 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 70 6f 72 74 73 20 70 72 6f 67 72 61 6d 29 m))....(emms-jack-ports.program)
97c60 29 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 28 6c 65 6e 67 74 68 20 70 6f 72 74 73 29 20 32 29 ))).....(if.(<.(length.ports).2)
97c80 20 28 63 61 61 72 20 70 6f 72 74 73 29 0a 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d .(caar.ports).......(completing-
97ca0 72 65 61 64 20 70 72 6f 6d 70 74 20 70 6f 72 74 73 20 6e 69 6c 20 74 0a 20 20 20 20 20 20 20 20 read.prompt.ports.nil.t.........
97cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 75 6e 69 71 75 65 ...............(emms-jack-unique
97ce0 2d 70 6f 72 74 2d 6e 61 6d 65 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 70 6f 72 74 73 29 29 -port-name.(mapcar.#'car.ports))
97d00 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a 61 63 6b 2d 63 6f 6e 6e 65 63 74 20 28 ))))..(defun.emms-jack-connect.(
97d20 66 72 6f 6d 2d 70 72 6f 67 72 61 6d 20 66 72 6f 6d 2d 70 6f 72 74 20 74 6f 2d 70 72 6f 67 72 61 from-program.from-port.to-progra
97d40 6d 20 74 6f 2d 70 6f 72 74 29 0a 20 20 22 43 6f 6e 6e 65 63 74 20 46 52 4f 4d 2d 50 52 4f 47 52 m.to-port)..."Connect.FROM-PROGR
97d60 41 4d 27 73 20 6f 75 74 70 75 74 20 70 6f 72 74 20 46 52 4f 4d 2d 50 4f 52 54 20 74 6f 20 54 4f AM's.output.port.FROM-PORT.to.TO
97d80 2d 50 52 4f 47 52 41 4d 27 73 20 69 6e 70 75 74 20 70 6f 72 74 0a 54 4f 2d 50 4f 52 54 2e 0a 49 -PROGRAM's.input.port.TO-PORT..I
97da0 66 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 20 74 68 65 20 64 69 72 65 f.called.interactively,.the.dire
97dc0 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 ction.does.not.matter."...(inter
97de0 61 63 74 69 76 65 0a 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 67 20 28 65 6d 6d 73 2d 6a 61 63 active....(let*.((prog.(emms-jac
97e00 6b 2d 72 65 61 64 2d 70 72 6f 67 72 61 6d 20 22 43 6f 6e 6e 65 63 74 3a 20 22 29 29 0a 09 20 20 k-read-program."Connect:."))....
97e20 28 70 6f 72 74 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 6f 72 74 20 70 72 6f 67 20 (port.(emms-jack-read-port.prog.
97e40 28 66 6f 72 6d 61 74 20 22 43 6f 6e 6e 65 63 74 20 25 73 20 70 6f 72 74 3a 20 22 20 70 72 6f 67 (format."Connect.%s.port:.".prog
97e60 29 29 29 0a 09 20 20 28 74 6f 2d 74 79 70 65 20 28 69 66 20 28 65 71 20 28 65 6d 6d 73 2d 6a 61 )))....(to-type.(if.(eq.(emms-ja
97e80 63 6b 2d 67 65 74 2d 64 69 72 65 63 74 69 6f 6e 20 70 72 6f 67 20 70 6f 72 74 29 20 27 69 6e 70 ck-get-direction.prog.port).'inp
97ea0 75 74 29 20 27 6f 75 74 70 75 74 20 27 69 6e 70 75 74 29 29 0a 09 20 20 28 74 6f 2d 70 72 6f 67 ut).'output.'input))....(to-prog
97ec0 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 72 6f 67 72 61 6d 0a 09 09 20 28 66 6f 72 .(emms-jack-read-program....(for
97ee0 6d 61 74 20 22 43 6f 6e 6e 65 63 74 20 25 73 20 70 6f 72 74 20 25 73 20 74 6f 3a 20 22 20 70 72 mat."Connect.%s.port.%s.to:.".pr
97f00 6f 67 20 70 6f 72 74 29 0a 09 09 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 67 29 0a 09 09 20 20 20 og.port)....(lambda.(prog)......
97f20 28 65 6d 6d 73 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 70 6f 72 74 29 0a 09 09 09 (emms-find-if.(lambda.(port)....
97f40 09 20 20 20 28 6d 65 6d 62 65 72 20 74 6f 2d 74 79 70 65 20 28 61 73 73 6f 63 20 27 70 72 6f 70 ....(member.to-type.(assoc.'prop
97f60 65 72 74 69 65 73 0a 09 09 09 09 09 09 09 20 20 28 63 64 72 20 70 6f 72 74 29 29 29 29 0a 09 09 erties..........(cdr.port))))...
97f80 09 09 20 28 63 64 72 20 70 72 6f 67 29 29 29 29 29 0a 09 20 20 28 74 6f 2d 70 6f 72 74 20 28 65 ...(cdr.prog)))))....(to-port.(e
97fa0 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 6f 72 74 0a 09 09 20 20 20 20 74 6f 2d 70 72 6f 67 mms-jack-read-port.......to-prog
97fc0 0a 09 09 20 20 20 20 28 66 6f 72 6d 61 74 20 22 43 6f 6e 6e 65 63 74 20 25 73 20 70 6f 72 74 20 .......(format."Connect.%s.port.
97fe0 25 73 20 74 6f 20 25 73 20 70 6f 72 74 3a 20 22 20 70 72 6f 67 20 70 6f 72 74 20 74 6f 2d 70 72 %s.to.%s.port:.".prog.port.to-pr
98000 6f 67 29 0a 09 09 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 6f 72 74 29 0a 09 09 20 20 20 20 20 og).......(lambda.(port)........
98020 20 28 6d 65 6d 62 65 72 20 74 6f 2d 74 79 70 65 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 70 72 .(member.to-type.(cdr.(assoc.'pr
98040 6f 70 65 72 74 69 65 73 20 28 63 64 72 20 70 6f 72 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 operties.(cdr.port))))))))......
98060 28 69 66 20 28 65 71 20 74 6f 2d 74 79 70 65 20 27 69 6e 70 75 74 29 0a 09 20 28 6c 69 73 74 20 (if.(eq.to-type.'input)...(list.
98080 70 72 6f 67 20 70 6f 72 74 20 74 6f 2d 70 72 6f 67 20 74 6f 2d 70 6f 72 74 29 0a 20 20 20 20 20 prog.port.to-prog.to-port)......
980a0 20 20 28 6c 69 73 74 20 74 6f 2d 70 72 6f 67 20 74 6f 2d 70 6f 72 74 20 70 72 6f 67 20 70 6f 72 ..(list.to-prog.to-port.prog.por
980c0 74 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 63 61 6c 6c 2d 70 72 6f 63 t))))...(let.((result.(call-proc
980e0 65 73 73 20 22 6a 61 63 6b 5f 63 6f 6e 6e 65 63 74 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 09 ess."jack_connect".nil.nil.nil..
98100 09 09 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25 73 22 20 66 72 6f 6d 2d 70 72 6f ........(format."%s:%s".from-pro
98120 67 72 61 6d 20 66 72 6f 6d 2d 70 6f 72 74 29 0a 09 09 09 20 20 20 20 20 20 28 66 6f 72 6d 61 74 gram.from-port)..........(format
98140 20 22 25 73 3a 25 73 22 20 20 74 6f 2d 70 72 6f 67 72 61 6d 20 74 6f 2d 70 6f 72 74 29 29 29 29 ."%s:%s"..to-program.to-port))))
98160 0a 20 20 20 20 28 69 66 20 28 3d 20 72 65 73 75 6c 74 20 30 29 0a 09 28 6d 65 73 73 61 67 65 20 .....(if.(=.result.0)..(message.
98180 22 4a 41 43 4b 3a 20 43 6f 6e 6e 65 63 74 65 64 20 25 73 3a 25 73 20 74 6f 20 25 73 3a 25 73 22 "JACK:.Connected.%s:%s.to.%s:%s"
981a0 0a 09 09 20 66 72 6f 6d 2d 70 72 6f 67 72 61 6d 20 66 72 6f 6d 2d 70 6f 72 74 20 74 6f 2d 70 72 ....from-program.from-port.to-pr
981c0 6f 67 72 61 6d 20 74 6f 2d 70 6f 72 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6a ogram.to-port))))..(defun.emms-j
981e0 61 63 6b 2d 64 69 73 63 6f 6e 6e 65 63 74 20 28 66 72 6f 6d 2d 70 72 6f 67 72 61 6d 20 66 72 6f ack-disconnect.(from-program.fro
98200 6d 2d 70 6f 72 74 20 74 6f 2d 70 72 6f 67 72 61 6d 20 74 6f 2d 70 6f 72 74 29 0a 20 20 22 44 69 m-port.to-program.to-port)..."Di
98220 73 63 6f 6e 6e 65 63 74 20 46 52 4f 4d 2d 50 52 4f 47 52 41 4d 27 73 20 6f 75 74 70 75 74 20 70 sconnect.FROM-PROGRAM's.output.p
98240 6f 72 74 20 46 52 4f 4d 2d 50 4f 52 54 20 66 72 6f 6d 20 54 4f 2d 50 52 4f 47 52 41 4d 27 73 0a ort.FROM-PORT.from.TO-PROGRAM's.
98260 69 6e 70 75 74 20 70 6f 72 74 20 54 4f 2d 50 4f 52 54 2e 0a 49 66 20 63 61 6c 6c 65 64 20 69 6e input.port.TO-PORT..If.called.in
98280 74 65 72 61 63 74 69 76 65 6c 79 2c 20 74 68 65 20 64 69 72 65 63 74 69 6f 6e 20 69 73 20 6e 6f teractively,.the.direction.is.no
982a0 74 20 72 65 6c 65 76 61 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 t.relevant."...(interactive....(
982c0 6c 65 74 2a 20 28 28 70 72 6f 67 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 72 6f 67 let*.((prog.(emms-jack-read-prog
982e0 72 61 6d 0a 09 09 20 22 44 69 73 63 6f 6e 6e 65 63 74 3a 20 22 0a 09 09 20 28 6c 61 6d 62 64 61 ram...."Disconnect:."....(lambda
98300 20 28 70 72 6f 67 29 0a 09 09 20 20 20 28 65 6d 6d 73 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 .(prog)......(emms-find-if.(lamb
98320 64 61 20 28 70 6f 72 74 29 20 28 61 73 73 6f 63 20 27 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 28 63 da.(port).(assoc.'connections.(c
98340 64 72 20 70 6f 72 74 29 29 29 0a 09 09 09 09 20 28 63 64 72 20 70 72 6f 67 29 29 29 29 29 0a 09 dr.port)))......(cdr.prog)))))..
98360 20 20 28 70 6f 72 74 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 72 65 61 64 2d 70 6f 72 74 20 70 72 6f ..(port.(emms-jack-read-port.pro
98380 67 0a 09 09 20 28 66 6f 72 6d 61 74 20 22 44 69 73 63 6f 6e 6e 65 63 74 20 25 73 20 70 6f 72 74 g....(format."Disconnect.%s.port
983a0 3a 20 22 20 70 72 6f 67 29 0a 09 09 20 28 6c 61 6d 62 64 61 20 28 70 6f 72 74 29 0a 09 09 20 20 :.".prog)....(lambda.(port).....
983c0 20 28 61 73 73 6f 63 20 27 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 28 63 64 72 20 70 6f 72 74 29 29 .(assoc.'connections.(cdr.port))
983e0 29 29 29 0a 09 20 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 67 )))....(connections.(emms-jack-g
98400 65 74 2d 70 6f 72 74 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 70 72 6f 67 20 70 6f 72 74 29 29 0a et-port-connections.prog.port)).
98420 09 20 20 28 66 72 6f 6d 20 28 6c 69 73 74 20 70 72 6f 67 20 70 6f 72 74 29 29 0a 09 20 20 28 74 ...(from.(list.prog.port))....(t
98440 6f 20 28 69 66 20 28 3c 20 28 6c 65 6e 67 74 68 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 20 32 29 o.(if.(<.(length.connections).2)
98460 0a 09 09 20 20 28 63 61 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 0a 09 09 28 6c 65 74 2a 20 28 .....(car.connections)...(let*.(
98480 28 74 6f 2d 70 72 6f 67 73 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 09 09 09 09 20 20 20 28 (to-progs.(let.(result)........(
984a0 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 63 6f 6e 6e 29 0a 09 09 09 09 09 20 20 20 28 69 66 20 mapc.(lambda.(conn).........(if.
984c0 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 28 63 61 72 20 63 6f 6e 6e 29 20 72 65 73 75 6c 74 29 29 (not.(member.(car.conn).result))
984e0 0a 09 09 09 09 09 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 0a 09 09 09 09 09 09 .............(setq.result.......
98500 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 63 61 72 20 63 6f 6e 6e 29 29 0a 09 .....(append.(list.(car.conn))..
98520 09 09 09 09 09 09 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 0a 09 09 09 09 09 20 63 6f 6e 6e ...........result)))).......conn
98540 65 63 74 69 6f 6e 73 29 0a 09 09 09 09 20 20 20 28 6d 61 70 63 61 72 20 23 27 6c 69 73 74 20 72 ections)........(mapcar.#'list.r
98560 65 73 75 6c 74 29 29 29 0a 09 09 20 20 20 20 20 20 20 28 74 6f 2d 70 72 6f 67 20 28 69 66 20 28 esult)))..........(to-prog.(if.(
98580 3c 20 28 6c 65 6e 67 74 68 20 74 6f 2d 70 72 6f 67 73 29 20 32 29 0a 09 09 09 09 20 20 20 20 28 <.(length.to-progs).2).........(
985a0 63 61 61 72 20 74 6f 2d 70 72 6f 67 73 29 0a 09 09 09 09 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 caar.to-progs).......(completing
985c0 2d 72 65 61 64 0a 09 09 09 09 20 20 20 28 66 6f 72 6d 61 74 20 22 44 69 73 63 6f 6e 6e 65 63 74 -read........(format."Disconnect
985e0 20 25 73 20 70 6f 72 74 20 25 73 20 66 72 6f 6d 3a 20 22 0a 09 09 09 09 09 20 20 20 70 72 6f 67 .%s.port.%s.from:.".........prog
98600 20 70 6f 72 74 29 20 74 6f 2d 70 72 6f 67 73 20 6e 69 6c 20 74 29 29 29 29 0a 09 09 20 20 28 73 .port).to-progs.nil.t)))).....(s
98620 65 74 71 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 28 65 6d 6d 73 2d 72 65 6d 6f 76 65 2d 69 66 2d etq.connections.(emms-remove-if-
98640 6e 6f 74 0a 09 09 09 09 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6f 6e 6e 29 0a 09 09 09 09 not..........(lambda.(conn).....
98660 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 63 61 72 20 63 6f 6e 6e 29 20 74 6f 2d 70 72 .......(string=.(car.conn).to-pr
98680 6f 67 29 29 0a 09 09 09 09 20 20 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 29 0a 09 09 20 20 og))..........connections)).....
986a0 28 69 66 20 28 3c 20 28 6c 65 6e 67 74 68 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 20 32 29 0a 09 (if.(<.(length.connections).2)..
986c0 09 20 20 20 20 20 20 28 63 61 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 0a 09 09 20 20 20 20 28 .......(car.connections).......(
986e0 6c 65 74 20 28 28 74 6f 2d 70 6f 72 74 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 09 let.((to-port.(completing-read..
98700 09 09 09 20 20 20 20 28 66 6f 72 6d 61 74 20 22 44 69 73 63 6f 6e 6e 65 63 74 20 25 73 20 70 6f .......(format."Disconnect.%s.po
98720 72 74 20 25 73 20 66 72 6f 6d 20 25 73 20 70 6f 72 74 3a 20 22 0a 09 09 09 09 09 20 20 20 20 70 rt.%s.from.%s.port:."..........p
98740 72 6f 67 20 70 6f 72 74 20 74 6f 2d 70 72 6f 67 29 0a 09 09 09 09 20 20 20 20 28 6d 61 70 63 61 rog.port.to-prog).........(mapca
98760 72 20 23 27 63 64 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 20 6e 69 6c 20 74 29 29 29 0a 09 09 r.#'cdr.connections).nil.t)))...
98780 20 20 20 20 20 20 28 6c 69 73 74 20 74 6f 2d 70 72 6f 67 20 74 6f 2d 70 6f 72 74 29 29 29 29 29 ......(list.to-prog.to-port)))))
987a0 29 29 0a 20 20 20 20 20 28 69 66 20 28 65 71 20 28 65 6d 6d 73 2d 6a 61 63 6b 2d 67 65 74 2d 64 ))......(if.(eq.(emms-jack-get-d
987c0 69 72 65 63 74 69 6f 6e 20 70 72 6f 67 20 70 6f 72 74 29 20 27 6f 75 74 70 75 74 29 0a 09 20 28 irection.prog.port).'output)...(
987e0 61 70 70 65 6e 64 20 66 72 6f 6d 20 74 6f 29 0a 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 74 append.from.to)........(append.t
98800 6f 20 66 72 6f 6d 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 63 61 6c 6c o.from))))...(let.((result.(call
98820 2d 70 72 6f 63 65 73 73 20 22 6a 61 63 6b 5f 64 69 73 63 6f 6e 6e 65 63 74 22 20 6e 69 6c 20 6e -process."jack_disconnect".nil.n
98840 69 6c 20 6e 69 6c 0a 09 09 09 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25 73 22 20 il.nil..........(format."%s:%s".
98860 66 72 6f 6d 2d 70 72 6f 67 72 61 6d 20 66 72 6f 6d 2d 70 6f 72 74 29 0a 09 09 09 20 20 20 20 20 from-program.from-port).........
98880 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25 73 22 20 20 74 6f 2d 70 72 6f 67 72 61 6d 20 74 6f 2d .(format."%s:%s"..to-program.to-
988a0 70 6f 72 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 72 65 73 75 6c 74 20 30 29 0a 09 28 port)))).....(if.(=.result.0)..(
988c0 6d 65 73 73 61 67 65 20 22 4a 41 43 4b 3a 20 44 69 73 63 6f 6e 6e 65 63 74 65 64 20 25 73 3a 25 message."JACK:.Disconnected.%s:%
988e0 73 20 66 72 6f 6d 20 25 73 3a 25 73 22 0a 09 09 20 66 72 6f 6d 2d 70 72 6f 67 72 61 6d 20 66 72 s.from.%s:%s"....from-program.fr
98900 6f 6d 2d 70 6f 72 74 20 74 6f 2d 70 72 6f 67 72 61 6d 20 74 6f 2d 70 6f 72 74 29 29 29 29 0a 0a om-port.to-program.to-port))))..
98920 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6a 61 63 6b 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 6a 61 (provide.'emms-jack).;;;.emms-ja
98940 63 6b 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ck.el.ends.here.................
98960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
989a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
989c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
989e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98a00 65 6d 6d 73 2d 32 34 2f 52 45 41 44 4d 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/README..................
98a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
98a80 30 30 30 31 31 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 35 35 34 00 20 30 00 00 00 0001130.00000000000.011554..0...
98aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
98b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
98b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98c00 45 6d 6d 73 20 69 73 20 74 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 Emms.is.the.Emacs.Multimedia.Sys
98c20 74 65 6d 2e 20 45 6d 6d 73 20 64 69 73 70 6c 61 79 73 20 61 6e 64 20 70 6c 61 79 73 0a 6d 75 6c tem..Emms.displays.and.plays.mul
98c40 74 69 6d 65 64 69 61 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 47 4e 55 2f 45 6d 61 63 73 20 75 73 timedia.from.within.GNU/Emacs.us
98c60 69 6e 67 20 61 20 76 61 72 69 65 74 79 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 70 6c 61 79 65 72 ing.a.variety.of.external.player
98c80 73 0a 61 6e 64 20 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 20 73 6f 75 72 63 65 73 2e 0a 0a 45 s.and.from.different.sources...E
98ca0 6d 6d 73 20 63 61 6e 20 72 75 6e 20 61 73 20 61 20 6d 69 6e 69 6d 61 6c 69 73 74 20 70 6c 61 79 mms.can.run.as.a.minimalist.play
98cc0 65 72 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 77 69 74 68 20 61 20 68 61 6e 64 66 75 6c er.and.controlled.with.a.handful
98ce0 20 6f 66 0a 4d 2d 78 20 45 6d 61 63 73 20 63 6f 6d 6d 61 6e 64 73 2c 20 6f 72 20 61 20 66 75 6c .of.M-x.Emacs.commands,.or.a.ful
98d00 6c 79 2d 66 6c 65 64 67 65 64 2c 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 65 64 69 61 0a 62 72 ly-fledged,.interactive.media.br
98d20 6f 77 73 65 72 2e 20 45 6d 6d 73 20 63 61 6e 20 64 69 73 70 6c 61 79 20 61 6c 62 75 6d 20 61 72 owser..Emms.can.display.album.ar
98d40 74 2c 20 70 6c 61 79 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 2c 20 74 61 67 20 6d 75 73 t,.play.streaming.audio,.tag.mus
98d60 69 63 0a 66 69 6c 65 73 2c 20 73 65 61 72 63 68 20 66 6f 72 20 6c 79 72 69 63 73 2c 20 70 72 6f ic.files,.search.for.lyrics,.pro
98d80 76 69 64 65 20 4d 50 44 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 2c 20 63 6f 6e 74 72 6f 6c 20 74 vide.MPD.connectivity,.control.t
98da0 68 65 0a 76 6f 6c 75 6d 65 2c 20 61 6e 64 20 6d 6f 72 65 2e 0a 0a 50 6c 65 61 73 65 20 72 65 61 he.volume,.and.more...Please.rea
98dc0 64 20 74 68 65 20 69 6e 66 6f 20 66 69 6e 65 20 6d 61 6e 75 61 6c 20 77 68 69 63 68 20 69 73 20 d.the.info.fine.manual.which.is.
98de0 73 68 69 70 70 65 64 20 77 69 74 68 20 45 6d 6d 73 20 61 6e 64 0a 61 76 61 69 6c 61 62 6c 65 20 shipped.with.Emms.and.available.
98e00 69 6e 20 74 68 65 20 64 6f 63 20 64 69 72 65 63 74 6f 72 79 2e 20 57 65 20 64 6f 20 6f 75 72 20 in.the.doc.directory..We.do.our.
98e20 62 65 73 74 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 69 74 27 73 0a 75 70 20 74 best.to.make.sure.that.it's.up.t
98e40 6f 20 64 61 74 65 20 61 6e 64 20 69 6e 66 6f 72 6d 61 74 69 76 65 2e 0a 00 00 00 00 00 00 00 00 o.date.and.informative..........
98e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2e 65 6c 00 00 00 emms-24/emms-playlist-sort.el...
99020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
99080 30 30 32 31 31 32 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 31 31 00 20 30 00 00 00 0021125.00000000000.015011..0...
990a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
990c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
990e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
99120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
99140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
991a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
991c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
991e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99200 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2e 65 6c 20 2d 2d 2d 20 73 6f ;;;.emms-playlist-sort.el.---.so
99220 72 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 rt.emms.playlist..-*-.lexical-bi
99240 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 nding:.t;.-*-..;;.Copyright.(C).
99260 32 30 30 35 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 2005-2021..Free.Software.Foundat
99280 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 57 69 6c 6c 69 61 6d 20 58 75 ion,.Inc...;;.Author:.William.Xu
992a0 20 3c 77 69 6c 6c 69 61 6d 2e 78 77 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 .<william.xwl@gmail.com>..;;.Thi
992c0 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 s.file.is.part.of.EMMS...;;.EMMS
992e0 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 .is.free.software;.you.can.redis
99300 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 tribute.it.and/or.modify.;;.it.u
99320 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 nder.the.terms.of.the.GNU.Genera
99340 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 l.Public.License.as.published.by
99360 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e .;;.the.Free.Software.Foundation
99380 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 ;.either.version.3,.or.(at.your.
993a0 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b option).;;.any.later.version..;;
993c0 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 .;;.EMMS.is.distributed.in.the.h
993e0 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 ope.that.it.will.be.useful,.;;.b
99400 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 ut.WITHOUT.ANY.WARRANTY;.without
99420 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b .even.the.implied.warranty.of.;;
99440 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 .MERCHANTABILITY.or.FITNESS.FOR.
99460 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b A.PARTICULAR.PURPOSE...See.the.;
99480 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 ;.GNU.General.Public.License.for
994a0 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 .more.details..;;.;;.You.should.
994c0 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 have.received.a.copy.of.the.GNU.
994e0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 General.Public.License.;;.along.
99500 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 with.EMMS;.if.not,.write.to.the.
99520 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 Free.Software.Foundation,.;;.Inc
99540 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 .,.51.Franklin.St,.Fifth.Floor,.
99560 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b Boston,.MA.02110-1301,.USA...;;;
99580 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 .Code:..(require.'cl-lib).(requi
995a0 72 65 20 27 65 6d 6d 73 2d 6c 61 73 74 2d 70 6c 61 79 65 64 29 0a 28 72 65 71 75 69 72 65 20 27 re.'emms-last-played).(require.'
995c0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 55 73 65 72 20 43 75 emms-playlist-mode)..;;;.User.Cu
995e0 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 stomizations..(defgroup.emms-pla
99600 79 6c 69 73 74 2d 73 6f 72 74 20 6e 69 6c 0a 20 20 22 53 6f 72 74 69 6e 67 20 45 6d 61 63 73 20 ylist-sort.nil..."Sorting.Emacs.
99620 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 74 65 6d 20 70 6c 61 79 6c 69 73 74 73 2e 22 0a 20 20 Multimedia.System.playlists."...
99640 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 22 0a 20 20 :prefix."emms-playlist-sort-"...
99660 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 :group.'emms)..(defcustom.emms-p
99680 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 6c 69 73 74 20 27 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 laylist-sort-list.'(info-artist.
996a0 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 22 53 6f 72 74 69 6e 67 20 6c 69 73 74 20 75 73 65 64 info-album)..."Sorting.list.used
996c0 20 62 79 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6c 69 73 74 27 .by.`emms-playlist-sort-by-list'
996e0 2e 0a 43 75 72 72 65 6e 74 6c 79 20 69 74 20 75 6e 64 65 72 73 74 61 6e 64 73 20 74 68 65 20 66 ..Currently.it.understands.the.f
99700 6f 6c 6c 6f 77 69 6e 67 20 66 69 65 6c 64 73 3a 20 6e 61 6d 65 20 69 6e 66 6f 2d 61 72 74 69 73 ollowing.fields:.name.info-artis
99720 74 0a 69 6d 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 69 t.imfo-composer.info-performer.i
99740 6e 66 6f 2d 74 69 74 6c 65 20 69 6e 66 6f 2d 61 6c 62 75 6d 20 69 6e 66 6f 2d 67 65 6e 72 65 0a nfo-title.info-album.info-genre.
99760 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 info-playing-time.info-tracknumb
99780 65 72 20 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 79 er.info-discnumber."...:type.'sy
997a0 6d 62 6f 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d mbol)..(defcustom.emms-playlist-
997c0 73 6f 72 74 2d 70 72 65 66 69 78 20 22 53 22 0a 20 20 22 50 72 65 66 69 78 20 6b 65 79 20 73 65 sort-prefix."S"..."Prefix.key.se
997e0 71 75 65 6e 63 65 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 6d quence.for.`emms-playlist-sort-m
99800 61 70 27 2e 0a 52 65 6d 65 6d 62 65 72 20 74 6f 20 63 61 6c 6c 20 60 65 6d 6d 73 2d 70 6c 61 79 ap'..Remember.to.call.`emms-play
99820 6c 69 73 74 2d 73 6f 72 74 2d 6d 61 70 2d 73 65 74 75 70 27 20 69 66 20 79 6f 75 20 6d 6f 64 69 list-sort-map-setup'.if.you.modi
99840 66 79 20 69 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 0c 0a 3b 3b 3b 20 fy.it."...:type.'string)....;;;.
99860 55 73 65 72 20 49 6e 74 65 72 66 61 63 65 73 0a 0a 28 64 65 66 6d 61 63 72 6f 20 64 65 66 69 6e User.Interfaces..(defmacro.defin
99880 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 28 61 74 74 72 69 62 75 74 65 29 e-emms-playlist-sort.(attribute)
998a0 0a 20 20 22 4d 61 63 72 6f 20 66 6f 72 20 64 65 66 69 6e 69 6e 67 20 65 6d 6d 73 20 70 6c 61 79 ..."Macro.for.defining.emms.play
998c0 6c 69 73 74 20 73 6f 72 74 20 66 75 6e 63 74 69 6f 6e 73 20 6f 6e 20 73 74 72 69 6e 67 73 20 2e list.sort.functions.on.strings..
998e0 22 0a 20 20 60 28 64 65 66 75 6e 20 2c 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 65 6d "...`(defun.,(intern.(format."em
99900 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 25 73 22 20 61 74 74 72 69 62 75 74 ms-playlist-sort-by-%s".attribut
99920 65 29 29 20 28 29 0a 20 20 20 20 20 2c 28 66 6f 72 6d 61 74 20 22 53 6f 72 74 20 65 6d 6d 73 20 e)).()......,(format."Sort.emms.
99940 70 6c 61 79 6c 69 73 74 20 62 79 20 25 73 2c 20 69 6e 63 72 65 61 73 69 6e 67 6c 79 2e 0a 57 69 playlist.by.%s,.increasingly..Wi
99960 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 64 65 63 72 65 61 73 69 6e 67 th.a.prefix.argument,.decreasing
99980 6c 79 2e 22 20 61 74 74 72 69 62 75 74 65 29 0a 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 ly.".attribute)......(interactiv
999a0 65 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 0a 20 20 20 20 e)......(emms-playlist-sort.....
999c0 20 20 27 28 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 ..'(lambda.(a.b)..........(funca
999e0 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d ll...........(if.current-prefix-
99a00 61 72 67 20 27 65 6d 6d 73 2d 73 74 72 69 6e 67 3e 20 27 65 6d 6d 73 2d 73 74 72 69 6e 67 3c 29 arg.'emms-string>.'emms-string<)
99a20 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 28 71 75 ...........(emms-track-get.a.(qu
99a40 6f 74 65 20 2c 61 74 74 72 69 62 75 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 ote.,attribute))...........(emms
99a60 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 28 71 75 6f 74 65 20 2c 61 74 74 72 69 62 75 74 65 29 29 -track-get.b.(quote.,attribute))
99a80 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 )))))..(define-emms-playlist-sor
99aa0 74 20 6e 61 6d 65 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f t.name).(define-emms-playlist-so
99ac0 72 74 20 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d rt.info-albumartist).(define-emm
99ae0 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 28 64 65 s-playlist-sort.info-artist).(de
99b00 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 69 6e 66 6f 2d 63 6f 6d fine-emms-playlist-sort.info-com
99b20 70 6f 73 65 72 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 poser).(define-emms-playlist-sor
99b40 74 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 t.info-performer).(define-emms-p
99b60 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 28 64 65 66 69 6e 65 laylist-sort.info-title).(define
99b80 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a -emms-playlist-sort.info-album).
99ba0 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 69 6e 66 6f 2d (define-emms-playlist-sort.info-
99bc0 79 65 61 72 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 year).(define-emms-playlist-sort
99be0 20 69 6e 66 6f 2d 6e 6f 74 65 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .info-note)..(defun.emms-playlis
99c00 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 74 75 72 61 6c 2d 6f 72 64 65 72 20 28 29 0a 20 20 22 53 6f t-sort-by-natural-order.()..."So
99c20 72 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 79 20 6e 61 74 75 72 61 6c 20 6f 72 64 65 rt.emms.playlist.by.natural.orde
99c40 72 2e 0a 53 65 65 20 60 65 6d 6d 73 2d 73 6f 72 74 2d 6e 61 74 75 72 61 6c 2d 6f 72 64 65 72 2d r..See.`emms-sort-natural-order-
99c60 6c 65 73 73 2d 70 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d less-p'."...(interactive)...(emm
99c80 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 27 65 6d 6d 73 2d 73 6f 72 74 2d 6e 61 74 75 72 s-playlist-sort.'emms-sort-natur
99ca0 61 6c 2d 6f 72 64 65 72 2d 6c 65 73 73 2d 70 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 al-order-less-p))..(defun.emms-p
99cc0 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6c 69 73 74 20 28 29 0a 20 20 22 53 6f 72 74 20 laylist-sort-by-list.()..."Sort.
99ce0 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 79 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d emms.playlist.by.`emms-playlist-
99d00 73 6f 72 74 2d 6c 69 73 74 27 2e 0a 54 68 65 20 73 6f 72 74 20 77 69 6c 6c 20 62 65 20 63 61 72 sort-list'..The.sort.will.be.car
99d20 72 69 65 64 20 6f 75 74 20 75 6e 74 69 6c 20 63 6f 6d 70 61 72 73 69 6f 6e 20 73 75 63 63 65 65 ried.out.until.comparsion.succee
99d40 64 73 2c 20 69 6e 63 72 65 61 73 69 6e 67 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 ds,.increasingly."...(interactiv
99d60 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 27 65 6d 6d 73 2d 70 e)...(emms-playlist-sort.'emms-p
99d80 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6c 69 73 74 2d 70 29 29 0a 0a 28 64 65 66 75 6e laylist-sort-by-list-p))..(defun
99da0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 68 75 66 66 6c 65 20 28 29 0a 20 20 22 53 6f 72 .emms-playlist-shuffle.()..."Sor
99dc0 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 72 61 6e 64 6f 6d 6c 79 2e 22 0a 20 20 28 69 6e t.emms.playlist.randomly."...(in
99de0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 73 68 75 66 66 6c 65 29 29 0a 0a 28 64 teractive)...(emms-shuffle))..(d
99e00 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f efun.emms-playlist-sort-by-rando
99e20 6d 20 28 29 0a 20 20 22 53 6f 72 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 72 61 6e 64 6f m.()..."Sort.emms.playlist.rando
99e40 6d 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 73 68 mly."...(interactive)...(emms-sh
99e60 75 66 66 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f uffle))..(defun.emms-playlist-so
99e80 72 74 2d 62 79 2d 6c 61 73 74 2d 70 6c 61 79 65 64 20 28 29 0a 20 20 22 53 6f 72 74 20 65 6d 6d rt-by-last-played.()..."Sort.emm
99ea0 73 20 70 6c 61 79 6c 69 73 74 20 62 79 20 6c 61 73 74 20 70 6c 61 79 65 64 20 74 69 6d 65 2c 20 s.playlist.by.last.played.time,.
99ec0 69 6e 63 72 65 61 73 69 6e 67 6c 79 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 increasingly..With.a.prefix.argu
99ee0 6d 65 6e 74 2c 20 64 65 63 72 65 61 73 69 6e 67 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 ment,.decreasingly."...(interact
99f00 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 0a 20 20 20 27 28 ive)...(emms-playlist-sort....'(
99f20 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 lambda.(a.b).......(funcall.....
99f40 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 27 6e 6f 74 20 27 ...(if.current-prefix-arg.'not.'
99f60 69 64 65 6e 74 69 74 79 29 0a 20 20 20 20 20 20 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 0a 20 20 identity)........(time-less-p...
99f80 20 20 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 27 6c 61 73 ......(or.(emms-track-get.a.'las
99fa0 74 2d 70 6c 61 79 65 64 29 20 27 28 30 20 30 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 t-played).'(0.0.0)).........(or.
99fc0 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 27 6c 61 73 74 2d 70 6c 61 79 65 64 29 20 (emms-track-get.b.'last-played).
99fe0 27 28 30 20 30 20 30 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 '(0.0.0)))))))..(defun.emms-play
9a000 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 70 6c 61 79 2d 63 6f 75 6e 74 20 28 29 0a 20 20 22 53 6f list-sort-by-play-count.()..."So
9a020 72 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 79 20 70 6c 61 79 2d 63 6f 75 6e 74 2c 20 rt.emms.playlist.by.play-count,.
9a040 69 6e 63 72 65 61 73 69 6e 67 6c 79 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 increasingly..With.a.prefix.argu
9a060 6d 65 6e 74 2c 20 64 65 63 72 65 61 73 69 6e 67 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 ment,.decreasingly."...(interact
9a080 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 0a 20 20 20 27 28 ive)...(emms-playlist-sort....'(
9a0a0 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 lambda.(a.b).......(funcall.....
9a0c0 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 27 6e 6f 74 20 27 ...(if.current-prefix-arg.'not.'
9a0e0 69 64 65 6e 74 69 74 79 29 0a 20 20 20 20 20 20 20 28 3c 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 identity)........(<.(or.(emms-tr
9a100 61 63 6b 2d 67 65 74 20 61 20 27 70 6c 61 79 2d 63 6f 75 6e 74 29 20 30 29 0a 20 20 20 20 20 20 ack-get.a.'play-count).0).......
9a120 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 27 70 6c 61 79 2d ....(or.(emms-track-get.b.'play-
9a140 63 6f 75 6e 74 29 20 30 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 count).0))))))..(defun.emms-play
9a160 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 20 28 29 0a 20 list-sort-by-file-extension.()..
9a180 20 22 53 6f 72 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 79 20 66 69 6c 65 20 65 78 74 ."Sort.emms.playlist.by.file.ext
9a1a0 65 6e 73 69 6f 6e 2c 20 69 6e 63 72 65 61 73 69 6e 67 6c 79 2e 0a 57 69 74 68 20 61 20 70 72 65 ension,.increasingly..With.a.pre
9a1c0 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 64 65 63 72 65 61 73 69 6e 67 6c 79 2e 22 0a 20 20 28 fix.argument,.decreasingly."...(
9a1e0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f interactive)...(emms-playlist-so
9a200 72 74 0a 20 20 20 27 28 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 20 20 20 20 20 28 66 75 6e 63 rt....'(lambda.(a.b).......(func
9a220 61 6c 6c 0a 20 20 20 20 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 all........(if.current-prefix-ar
9a240 67 20 27 65 6d 6d 73 2d 73 74 72 69 6e 67 3e 20 27 65 6d 6d 73 2d 73 74 72 69 6e 67 3c 29 0a 20 g.'emms-string>.'emms-string<)..
9a260 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 28 65 6d 6d 73 ......(file-name-extension.(emms
9a280 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 28 66 69 6c -track-get.a.'name))........(fil
9a2a0 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 e-name-extension.(emms-track-get
9a2c0 20 62 20 27 6e 61 6d 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 .b.'name))))))..(defun.emms-play
9a2e0 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 6d 74 69 6d 65 20 28 29 0a 20 20 22 53 6f list-sort-by-file-mtime.()..."So
9a300 72 74 20 65 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 79 20 66 69 6c 65 20 6d 74 69 6d 65 2c 20 rt.emms.playlist.by.file.mtime,.
9a320 6e 65 77 65 73 74 20 66 69 72 73 74 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 newest.first..With.a.prefix.argu
9a340 6d 65 6e 74 2c 20 6f 6c 64 65 73 74 20 66 69 72 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 ment,.oldest.first."...(interact
9a360 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 0a 20 20 20 27 28 ive)...(emms-playlist-sort....'(
9a380 6c 61 6d 62 64 61 20 28 61 20 62 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 lambda.(a.b).......(funcall.....
9a3a0 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 09 20 20 20 27 74 ...(if.current-prefix-arg.....'t
9a3c0 69 6d 65 2d 6c 65 73 73 2d 70 0a 09 20 28 6c 61 6d 62 64 61 20 28 74 31 20 74 32 29 20 28 6e 6f ime-less-p...(lambda.(t1.t2).(no
9a3e0 74 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 74 31 20 74 32 29 29 29 29 0a 20 20 20 20 20 20 20 t.(time-less-p.t1.t2))))........
9a400 28 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 6d 74 69 6d 65 20 61 29 0a 20 (emms-info-track-file-mtime.a)..
9a420 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 6d 74 69 6d ......(emms-info-track-file-mtim
9a440 65 20 62 29 29 29 29 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 e.b)))))...(defvar.emms-playlist
9a460 2d 73 6f 72 74 2d 6d 61 70 20 6e 69 6c 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 -sort-map.nil)..(defun.emms-play
9a480 6c 69 73 74 2d 73 6f 72 74 2d 6d 61 70 2d 73 65 74 75 70 20 28 29 0a 20 20 22 53 65 74 75 70 20 list-sort-map-setup.()..."Setup.
9a4a0 73 6f 72 74 20 6d 61 70 20 77 69 74 68 20 6c 61 74 65 73 74 20 60 65 6d 6d 73 2d 70 6c 61 79 6c sort.map.with.latest.`emms-playl
9a4c0 69 73 74 2d 73 6f 72 74 2d 70 72 65 66 69 78 27 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d ist-sort-prefix'."...(setq.emms-
9a4e0 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 playlist-sort-map.........(let.(
9a500 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 (map.(make-sparse-keymap))).....
9a520 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6e 22 29 20 ......(define-key.map.(kbd."n").
9a540 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 74 75 72 61 6c 2d #'emms-playlist-sort-by-natural-
9a560 6f 72 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 order)...........(define-key.map
9a580 20 28 6b 62 64 20 22 61 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d .(kbd."a").#'emms-playlist-sort-
9a5a0 62 79 2d 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e by-info-artist)...........(defin
9a5c0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 41 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c e-key.map.(kbd."A").#'emms-playl
9a5e0 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 ist-sort-by-info-albumartist)...
9a600 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 22 ........(define-key.map.(kbd."c"
9a620 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 70 6c 61 79 2d 63 ).#'emms-playlist-sort-by-play-c
9a640 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 ount)...........(define-key.map.
9a660 28 6b 62 64 20 22 62 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 (kbd."b").#'emms-playlist-sort-b
9a680 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d y-info-album)...........(define-
9a6a0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6c 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 key.map.(kbd."l").#'emms-playlis
9a6c0 74 2d 73 6f 72 74 2d 62 79 2d 6c 61 73 74 2d 70 6c 61 79 65 64 29 0a 20 20 20 20 20 20 20 20 20 t-sort-by-last-played)..........
9a6e0 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 74 22 29 20 23 27 65 6d 6d .(define-key.map.(kbd."t").#'emm
9a700 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 s-playlist-sort-by-info-title)..
9a720 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 65 .........(define-key.map.(kbd."e
9a740 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d ").#'emms-playlist-sort-by-file-
9a760 65 78 74 65 6e 73 69 6f 6e 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 extension)............(define-ke
9a780 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d y.map.(kbd."p").#'emms-playlist-
9a7a0 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 29 0a 20 20 20 20 20 20 20 20 sort-by-info-performer).........
9a7c0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 79 22 29 20 23 27 65 6d ..(define-key.map.(kbd."y").#'em
9a7e0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 79 65 61 72 29 0a 20 ms-playlist-sort-by-info-year)..
9a800 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6f .........(define-key.map.(kbd."o
9a820 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d ").#'emms-playlist-sort-by-info-
9a840 6e 6f 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 note)...........(define-key.map.
9a860 28 6b 62 64 20 22 43 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 (kbd."C").#'emms-playlist-sort-b
9a880 79 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 0a 09 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 y-info-composer)....(define-key.
9a8a0 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f map.(kbd."r").#'emms-playlist-so
9a8c0 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d rt-by-random)...........(define-
9a8e0 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4c 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 key.map.(kbd."L").#'emms-playlis
9a900 74 2d 73 6f 72 74 2d 62 79 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e t-sort-by-list)...........(defin
9a920 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4e 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c e-key.map.(kbd."N").#'emms-playl
9a940 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 6d 65 29 0a 09 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 ist-sort-by-name)....(define-key
9a960 20 6d 61 70 20 28 6b 62 64 20 22 54 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 .map.(kbd."T").#'emms-playlist-s
9a980 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 6d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 6d 61 70 ort-by-file-mtime)...........map
9a9a0 29 29 0a 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ))....(define-key.emms-playlist-
9a9c0 6d 6f 64 65 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 mode-map...............emms-play
9a9e0 6c 69 73 74 2d 73 6f 72 74 2d 70 72 65 66 69 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 list-sort-prefix.emms-playlist-s
9aa00 6f 72 74 2d 6d 61 70 29 29 0a 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 ort-map))..(setq.emms-playlist-s
9aa20 6f 72 74 2d 6d 61 70 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 6d 61 70 2d ort-map.(emms-playlist-sort-map-
9aa40 73 65 74 75 70 29 29 0a 0a 0c 0a 3b 3b 3b 20 4c 6f 77 20 4c 65 76 65 6c 20 46 75 6e 63 74 69 6f setup))....;;;.Low.Level.Functio
9aa60 6e 73 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 28 70 ns..(defun.emms-playlist-sort.(p
9aa80 72 65 64 69 63 61 74 65 29 0a 20 20 22 53 6f 72 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 redicate)..."Sort.the.playlist.b
9aaa0 75 66 66 65 72 20 62 79 20 50 52 45 44 49 43 41 54 45 2e 22 0a 20 20 28 65 6d 6d 73 2d 77 69 74 uffer.by.PREDICATE."...(emms-wit
9aac0 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 20 28 65 6d 6d 73 2d h-inhibit-read-only-t.....(emms-
9aae0 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 playlist-ensure-playlist-buffer)
9ab00 0a 20 20 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 .....(let.((current.(emms-playli
9ab20 73 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 st-selected-track))...........(t
9ab40 72 61 63 6b 73 20 28 6e 72 65 76 65 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 racks.(nreverse.................
9ab60 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 ...(emms-playlist-tracks-in-regi
9ab80 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 on.....................(point-mi
9aba0 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 n).(point-max))))).......(delete
9abc0 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 -region.(point-min).(point-max))
9abe0 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 .......(run-hooks.'emms-playlist
9ac00 2d 63 6c 65 61 72 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 65 6d 6d -cleared-hook).......(mapc.#'emm
9ac20 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 28 73 6f 72 74 20 74 72 s-playlist-insert-track.(sort.tr
9ac40 61 63 6b 73 20 70 72 65 64 69 63 61 74 65 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6f acks.predicate)).......(let.((po
9ac60 73 20 28 77 68 65 6e 20 63 75 72 72 65 6e 74 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 s.(when.current.(text-property-a
9ac80 6e 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 09 09 09 09 09 ny.(point-min).(point-max)......
9aca0 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 20 63 75 72 72 65 6e 74 29 29 29 29 0a 09 .......'emms-track.current))))..
9acc0 28 69 66 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 (if.pos.............(emms-playli
9ace0 73 74 2d 73 65 6c 65 63 74 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 st-select.pos)...........(emms-p
9ad00 6c 61 79 6c 69 73 74 2d 66 69 72 73 74 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 laylist-first))).......(goto-cha
9ad20 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 r.(point-min)))))..(defun.emms-s
9ad40 6f 72 74 2d 6e 61 74 75 72 61 6c 2d 6f 72 64 65 72 2d 6c 65 73 73 2d 70 20 28 61 20 62 29 0a 20 ort-natural-order-less-p.(a.b)..
9ad60 20 22 53 6f 72 74 20 74 77 6f 20 74 72 61 63 6b 73 20 62 79 20 6e 61 74 75 72 61 6c 20 6f 72 64 ."Sort.two.tracks.by.natural.ord
9ad80 65 72 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 61 er..This.is.the.order.in.which.a
9ada0 6c 62 75 6d 73 20 77 68 65 72 65 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 70 6c 61 79 65 lbums.where.intended.to.be.playe
9adc0 64 2e 0a 69 65 2e 20 62 79 20 61 6c 62 75 6d 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 6e 20 62 79 d..ie..by.album.name.and.then.by
9ade0 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 6c 62 75 6d 2d 61 .track.number."...(let.((album-a
9ae00 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 .(emms-track-get.a.'info-album))
9ae20 0a 20 20 20 20 20 20 20 20 28 61 6c 62 75 6d 2d 62 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 .........(album-b.(emms-track-ge
9ae40 74 20 62 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 0a 09 28 64 69 73 63 6e 75 6d 2d 61 20 28 73 t.b.'info-album))..(discnum-a.(s
9ae60 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d tring-to-number.(or.(emms-track-
9ae80 67 65 74 20 61 20 27 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 29 20 22 30 22 29 29 29 0a 09 get.a.'info-discnumber)."0")))..
9aea0 28 64 69 73 63 6e 75 6d 2d 62 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6f 72 (discnum-b.(string-to-number.(or
9aec0 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 27 69 6e 66 6f 2d 64 69 73 63 6e 75 6d .(emms-track-get.b.'info-discnum
9aee0 62 65 72 29 20 22 30 22 29 29 29 0a 09 28 74 72 61 63 6b 6e 75 6d 2d 61 20 28 73 74 72 69 6e 67 ber)."0")))..(tracknum-a.(string
9af00 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 -to-number.(or.(emms-track-get.a
9af20 20 27 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 29 20 22 30 22 29 29 29 0a 09 28 74 72 61 .'info-tracknumber)."0")))..(tra
9af40 63 6b 6e 75 6d 2d 62 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6f 72 20 28 65 cknum-b.(string-to-number.(or.(e
9af60 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 27 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 mms-track-get.b.'info-tracknumbe
9af80 72 29 20 22 30 22 29 29 29 29 0a 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 73 74 72 69 6e 67 3c r)."0")))).....(or.(emms-string<
9afa0 20 61 6c 62 75 6d 2d 61 20 61 6c 62 75 6d 2d 62 29 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 61 .album-a.album-b).........(and.a
9afc0 6c 62 75 6d 2d 61 20 61 6c 62 75 6d 2d 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 lbum-a.album-b..............(str
9afe0 69 6e 67 3d 20 61 6c 62 75 6d 2d 61 20 61 6c 62 75 6d 2d 62 29 0a 09 20 20 20 20 20 28 6f 72 20 ing=.album-a.album-b).......(or.
9b000 28 3c 20 64 69 73 63 6e 75 6d 2d 61 20 64 69 73 63 6e 75 6d 2d 62 29 0a 09 09 20 28 61 6e 64 20 (<.discnum-a.discnum-b)....(and.
9b020 28 3d 20 64 69 73 63 6e 75 6d 2d 61 20 64 69 73 63 6e 75 6d 2d 62 29 0a 09 09 20 20 20 20 20 20 (=.discnum-a.discnum-b).........
9b040 28 3c 20 74 72 61 63 6b 6e 75 6d 2d 61 20 74 72 61 63 6b 6e 75 6d 2d 62 29 29 29 29 29 29 29 0a (<.tracknum-a.tracknum-b))))))).
9b060 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6c 69 .(defun.emms-playlist-sort-by-li
9b080 73 74 2d 70 20 28 61 20 62 29 0a 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 st-p.(a.b)...(catch.'return.....
9b0a0 28 64 6f 6c 69 73 74 20 28 69 6e 66 6f 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 (dolist.(info.emms-playlist-sort
9b0c0 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 20 69 6e 66 6f 0a 20 20 20 20 20 -list).......(cl-case.info......
9b0e0 20 20 20 28 28 6e 61 6d 65 20 69 6e 66 6f 2d 61 72 74 69 73 74 20 69 6e 66 6f 2d 63 6f 6d 70 6f ...((name.info-artist.info-compo
9b100 73 65 72 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 69 6e 66 6f 2d 74 69 74 6c 65 20 69 6e ser.info-performer.info-title.in
9b120 66 6f 2d 61 6c 62 75 6d 20 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 20 20 20 20 20 20 20 20 20 28 77 fo-album.info-genre)..........(w
9b140 68 65 6e 20 28 65 6d 6d 73 2d 73 74 72 69 6e 67 3c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 hen.(emms-string<.(emms-track-ge
9b160 74 20 61 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.a.info).......................
9b180 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 69 6e 66 6f 29 29 0a .......(emms-track-get.b.info)).
9b1a0 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 74 29 29 29 0a 20 ...........(throw.'return.t)))..
9b1c0 20 20 20 20 20 20 20 28 28 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 20 20 .......((info-playing-time).....
9b1e0 20 20 20 20 20 28 77 68 65 6e 20 28 3c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 .....(when.(<.(emms-track-get.a.
9b200 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 info)...................(emms-tr
9b220 61 63 6b 2d 67 65 74 20 62 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 ack-get.b.info))............(thr
9b240 6f 77 20 27 72 65 74 75 72 6e 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 69 6e 66 6f 2d 74 ow.'return.t))).........((info-t
9b260 72 61 63 6b 6e 75 6d 62 65 72 20 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 29 0a 20 20 20 20 racknumber.info-discnumber).....
9b280 20 20 20 20 20 28 77 68 65 6e 20 28 3c 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 .....(when.(<.(string-to-number.
9b2a0 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 61 20 69 6e 66 6f 29 20 22 30 22 29 (or.(emms-track-get.a.info)."0")
9b2c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e )...................(string-to-n
9b2e0 75 6d 62 65 72 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 62 20 69 6e 66 6f umber.(or.(emms-track-get.b.info
9b300 29 20 22 30 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 )."0")))............(throw.'retu
9b320 72 6e 20 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 72 69 6e 67 3c rn.t)))))))..(defun.emms-string<
9b340 20 28 73 31 20 73 32 29 0a 20 20 28 73 74 72 69 6e 67 3c 20 28 64 6f 77 6e 63 61 73 65 20 28 6f .(s1.s2)...(string<.(downcase.(o
9b360 72 20 73 31 20 22 22 29 29 20 28 64 6f 77 6e 63 61 73 65 20 28 6f 72 20 73 32 20 22 22 29 29 29 r.s1."")).(downcase.(or.s2."")))
9b380 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 72 69 6e 67 3e 20 28 73 31 20 73 32 29 0a 20 )..(defun.emms-string>.(s1.s2)..
9b3a0 20 28 6c 65 74 20 28 28 61 20 28 64 6f 77 6e 63 61 73 65 20 28 6f 72 20 73 31 20 22 22 29 29 29 .(let.((a.(downcase.(or.s1."")))
9b3c0 0a 20 20 20 20 20 20 20 20 28 62 20 28 64 6f 77 6e 63 61 73 65 20 28 6f 72 20 73 32 20 22 22 29 .........(b.(downcase.(or.s2."")
9b3e0 29 29 29 0a 20 20 20 20 28 6e 6f 74 20 28 6f 72 20 28 73 74 72 69 6e 67 3d 20 61 20 62 29 20 28 ))).....(not.(or.(string=.a.b).(
9b400 73 74 72 69 6e 67 3c 20 61 20 62 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 string<.a.b)))))..(provide.'emms
9b420 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 -playlist-sort)..;;;.emms-playli
9b440 73 74 2d 73 6f 72 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 st-sort.el.ends.here............
9b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 emms-24/emms-volume.el..........
9b620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
9b680 30 30 31 34 31 36 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 34 37 36 00 20 30 00 00 00 0014163.00000000000.013476..0...
9b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
9b720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
9b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b800 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 20 2d 2d 2d 20 56 6f 6c 75 6d 65 20 66 75 ;;;.emms-volume.el.---.Volume.fu
9b820 6e 63 74 69 6f 6e 73 20 61 6e 64 20 61 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 74 6f 20 61 64 6a 75 nctions.and.a.minor.mode.to.adju
9b840 73 74 20 76 6f 6c 75 6d 65 20 65 61 73 69 6c 79 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 st.volume.easily..-*-.lexical-bi
9b860 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 nding:.t;.-*-..;;.Copyright.(C).
9b880 32 30 30 36 2d 32 30 32 33 2c 20 32 30 32 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 2006-2023,.2025..Free.Software.F
9b8a0 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4d 61 72 74 oundation,.Inc...;;.Author:.Mart
9b8c0 69 6e 20 53 63 68 6f 65 6e 6d 61 6b 65 72 73 20 3c 61 69 76 69 72 75 40 64 69 61 6d 6f 6e 64 2d in.Schoenmakers.<aiviru@diamond-
9b8e0 61 67 65 2e 6e 65 74 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 42 72 75 6e 6f 20 46 c3 a9 6c 69 78 age.net>.;;.........Bruno.F..lix
9b900 20 52 65 7a 65 6e 64 65 20 52 69 62 65 69 72 6f 20 3c 6f 69 74 6f 66 65 6c 69 78 40 67 6e 75 2e .Rezende.Ribeiro.<oitofelix@gnu.
9b920 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d org>..;;.This.file.is.part.of.EM
9b940 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 MS...;;.EMMS.is.free.software;.y
9b960 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f ou.can.redistribute.it.and/or.mo
9b980 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 dify.;;.it.under.the.terms.of.th
9b9a0 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 e.GNU.General.Public.License.as.
9b9c0 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 published.by.;;.the.Free.Softwar
9b9e0 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 e.Foundation;.either.version.3,.
9ba00 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 or.(at.your.option).;;.any.later
9ba20 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 .version..;;.;;.EMMS.is.distribu
9ba40 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 ted.in.the.hope.that.it.will.be.
9ba60 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 useful,.;;.but.WITHOUT.ANY.WARRA
9ba80 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 NTY;.without.even.the.implied.wa
9baa0 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 rranty.of.;;.MERCHANTABILITY.or.
9bac0 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 FITNESS.FOR.A.PARTICULAR.PURPOSE
9bae0 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 ...See.the.;;.GNU.General.Public
9bb00 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b .License.for.more.details..;;.;;
9bb20 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 .You.should.have.received.a.copy
9bb40 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .of.the.GNU.General.Public.Licen
9bb60 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 se.;;.along.with.EMMS;.see.the.f
9bb80 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 ile.COPYING..If.not,.write.to.th
9bba0 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 e.;;.Free.Software.Foundation,.I
9bbc0 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 nc.,.51.Franklin.St,.Fifth.Floor
9bbe0 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e ,.;;.Boston,.MA.02110-1301,.USA.
9bc00 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c ..;;;.Commentary:.;;.;;.This.fil
9bc20 65 20 70 72 6f 76 69 64 65 73 20 67 65 6e 65 72 61 6c 6c 79 20 74 77 6f 20 74 68 69 6e 67 73 3a e.provides.generally.two.things:
9bc40 0a 3b 3b 20 47 65 6e 65 72 69 63 20 76 6f 6c 75 6d 65 20 73 65 74 74 69 6e 67 20 66 75 6e 63 74 .;;.Generic.volume.setting.funct
9bc60 69 6f 6e 73 20 61 6e 64 20 73 6f 6d 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 62 69 6e 64 69 6e ions.and.some.appropriate.bindin
9bc80 67 73 20 66 6f 72 20 45 4d 4d 53 0a 3b 3b 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 2e gs.for.EMMS.;;.playlist.buffers.
9bca0 20 54 68 65 73 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 62 6f 75 6e 64 20 74 6f 20 67 6c 6f 62 .These.can.also.be.bound.to.glob
9bcc0 61 6c 20 6b 65 79 73 2c 68 6f 77 65 76 65 72 2c 20 74 68 65 0a 3b 3b 20 73 65 63 6f 6e 64 20 70 al.keys,however,.the.;;.second.p
9bce0 61 72 74 20 6d 61 79 20 62 65 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 66 6f 72 20 74 68 69 73 2e art.may.be.more.useful.for.this.
9bd00 20 54 68 69 73 20 70 61 72 74 20 70 72 6f 76 69 64 65 73 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b .This.part.provides.functions.;;
9bd20 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 62 6f 75 6e 64 20 74 6f 20 61 20 67 6c 6f 62 61 6c 20 6b .meant.to.be.bound.to.a.global.k
9bd40 65 79 20 28 74 68 65 20 61 75 74 68 6f 72 20 75 73 65 73 20 43 2d 63 20 65 20 2b 20 61 6e 64 20 ey.(the.author.uses.C-c.e.+.and.
9bd60 43 2d 63 20 65 20 2d 29 2c 0a 3b 3b 20 77 68 69 63 68 20 74 68 65 6e 20 74 65 6d 70 6f 72 61 72 C-c.e.-),.;;.which.then.temporar
9bd80 69 6c 79 20 61 63 74 69 76 61 74 65 73 20 61 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 61 6c 6c 6f 77 ily.activates.a.minor.mode.allow
9bda0 69 6e 67 20 79 6f 75 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 0a 3b 3b 20 76 6f 6c 75 6d 65 20 ing.you.to.change.the.;;.volume.
9bdc0 77 69 74 68 20 6a 75 73 74 20 2b 20 61 6e 64 20 2d 2e 20 54 68 69 73 20 6d 6f 64 65 20 64 65 61 with.just.+.and.-..This.mode.dea
9bde0 63 74 69 76 61 74 65 73 20 61 20 73 68 6f 72 74 20 28 63 6f 6e 66 69 67 75 72 61 62 6c 65 29 0a ctivates.a.short.(configurable).
9be00 3b 3b 20 61 6d 6f 75 6e 74 20 6f 66 20 74 69 6d 65 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 74 ;;.amount.of.time.after.the.last
9be20 20 76 6f 6c 75 6d 65 20 63 68 61 6e 67 65 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 66 6f 72 20 .volume.change..This.allows.for.
9be40 65 61 73 69 65 72 20 76 6f 6c 75 6d 65 0a 3b 3b 20 61 64 6a 75 73 74 6d 65 6e 74 20 77 69 74 68 easier.volume.;;.adjustment.with
9be60 6f 75 74 20 67 65 74 74 69 6e 67 20 69 6e 20 74 68 65 20 77 61 79 2e 0a 0a 3b 3b 3b 20 48 69 73 out.getting.in.the.way...;;;.His
9be80 74 6f 72 79 3a 0a 0a 3b 3b 20 4d 61 79 20 32 30 30 36 3a 20 46 69 72 73 74 20 73 74 61 62 20 61 tory:..;;.May.2006:.First.stab.a
9bea0 74 20 77 72 69 74 69 6e 67 20 74 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 2e 0a 3b 3b 0a 3b 3b 20 t.writing.the.minor.mode..;;.;;.
9bec0 33 30 20 4d 61 79 20 32 30 30 36 3a 20 43 6c 65 61 6e 75 70 20 61 6e 64 20 72 65 73 74 72 75 63 30.May.2006:.Cleanup.and.restruc
9bee0 74 75 72 69 6e 67 20 74 6f 20 66 69 74 20 77 69 74 68 20 45 4d 4d 53 2e 0a 0a 3b 3b 3b 20 54 6f turing.to.fit.with.EMMS...;;;.To
9bf00 64 6f 3a 0a 0a 3b 3b 20 53 6f 6d 65 20 6f 66 20 74 68 69 73 20 63 6f 75 6c 64 20 62 65 6e 65 66 do:..;;.Some.of.this.could.benef
9bf20 69 74 20 66 72 6f 6d 20 61 64 64 69 6e 67 20 63 75 73 74 6f 6d 69 7a 65 20 69 6e 74 65 72 66 61 it.from.adding.customize.interfa
9bf40 63 65 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 ces...;;;.Code:...(require.'emms
9bf60 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a ).(require.'emms-playlist-mode).
9bf80 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 29 0a 28 72 (require.'emms-volume-amixer).(r
9bfa0 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 29 0a 28 72 65 71 75 equire.'emms-volume-pulse).(requ
9bfc0 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 29 0a 28 72 65 71 75 ire.'emms-volume-mixerctl).(requ
9bfe0 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 29 0a 28 72 65 71 75 ire.'emms-volume-sndioctl).(requ
9c000 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 29 0a 0a 3b 3b 20 43 75 73 74 6f 6d ire.'emms-volume-mpv)..;;.Custom
9c020 69 7a 65 20 67 72 6f 75 70 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 20 ize.group.(defgroup.emms-volume.
9c040 6e 69 6c 0a 20 20 22 56 6f 6c 75 6d 65 20 73 65 74 74 69 6e 67 20 66 6f 72 20 45 4d 4d 53 2e 22 nil..."Volume.setting.for.EMMS."
9c060 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d ...:group.'emms)..(defcustom.emm
9c080 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 28 63 6f 6e 64 s-volume-change-function...(cond
9c0a0 0a 20 20 20 3b 3b 20 63 68 65 63 6b 20 66 6f 72 20 73 6e 64 69 6f 63 74 6c 20 66 69 72 73 74 20 ....;;.check.for.sndioctl.first.
9c0c0 74 6f 20 61 76 6f 69 64 20 70 69 63 6b 69 6e 67 20 75 70 20 6d 69 78 65 72 63 74 6c 20 6f 72 20 to.avoid.picking.up.mixerctl.or.
9c0e0 70 61 63 74 6c 0a 20 20 20 3b 3b 20 6f 6e 20 4f 70 65 6e 42 53 44 2e 0a 20 20 20 28 28 65 78 65 pactl....;;.on.OpenBSD.....((exe
9c100 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 73 6e 64 69 6f 63 74 6c 22 29 20 23 27 65 6d 6d 73 2d cutable-find."sndioctl").#'emms-
9c120 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2d 63 68 61 6e 67 65 29 0a 20 20 20 28 28 65 78 65 volume-sndioctl-change)....((exe
9c140 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 61 6d 69 78 65 72 22 29 20 23 27 65 6d 6d 73 2d 76 6f cutable-find."amixer").#'emms-vo
9c160 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 68 61 6e 67 65 29 0a 20 20 20 28 28 65 78 65 63 75 74 61 lume-amixer-change)....((executa
9c180 62 6c 65 2d 66 69 6e 64 20 22 70 61 63 74 6c 22 29 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d ble-find."pactl").#'emms-volume-
9c1a0 70 75 6c 73 65 2d 63 68 61 6e 67 65 29 0a 20 20 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 pulse-change)....((executable-fi
9c1c0 6e 64 20 22 6d 69 78 65 72 63 74 6c 22 29 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 nd."mixerctl").#'emms-volume-mix
9c1e0 65 72 63 74 6c 2d 63 68 61 6e 67 65 29 0a 20 20 20 28 74 20 23 27 28 6c 61 6d 62 64 61 20 28 5f erctl-change)....(t.#'(lambda.(_
9c200 61 6d 6f 75 6e 74 29 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 25 73 22 20 22 4e 6f 20 73 75 70 amount).(user-error."%s"."No.sup
9c220 70 6f 72 74 65 64 20 6d 69 78 65 72 20 66 6f 75 6e 64 2e 20 20 50 6c 65 61 73 65 2c 20 64 65 66 ported.mixer.found...Please,.def
9c240 69 6e 65 20 e2 80 98 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 ine....emms-volume-change-functi
9c260 6f 6e e2 80 99 2e 22 29 29 29 29 0a 20 20 22 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 75 on...."))))..."The.function.to.u
9c280 73 65 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 49 66 20 79 6f 75 20 se.to.change.the.volume..If.you.
9c2a0 68 61 76 65 20 79 6f 75 72 20 6f 77 6e 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 63 68 61 6e have.your.own.functions.for.chan
9c2c0 67 69 6e 67 20 76 6f 6c 75 6d 65 2c 20 73 65 74 20 74 68 69 73 2e 22 0a 20 20 3a 74 79 70 65 20 ging.volume,.set.this."...:type.
9c2e0 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6d 69 78 65 72 22 20 65 6d '(choice.(const.:tag."Amixer".em
9c300 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 ms-volume-amixer-change)........
9c320 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4d 50 44 22 20 65 6d 6d 73 ..........(const.:tag."MPD".emms
9c340 2d 76 6f 6c 75 6d 65 2d 6d 70 64 2d 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -volume-mpd-change).............
9c360 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 6d 70 76 22 20 65 6d 6d 73 2d 76 6f 6c 75 .....(const.:tag."mpv".emms-volu
9c380 6d 65 2d 6d 70 76 2d 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me-mpv-change)..................
9c3a0 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 50 75 6c 73 65 41 75 64 69 6f 22 20 65 6d 6d 73 2d 76 6f (const.:tag."PulseAudio".emms-vo
9c3c0 6c 75 6d 65 2d 70 75 6c 73 65 2d 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 lume-pulse-change)..............
9c3e0 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4d 69 78 65 72 63 74 6c 22 20 65 6d 6d 73 2d ....(const.:tag."Mixerctl".emms-
9c400 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2d 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 volume-mixerctl-change).........
9c420 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 53 6e 64 69 6f 63 74 6c 22 20 .........(const.:tag."Sndioctl".
9c440 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2d 63 68 61 6e 67 65 29 0a 20 20 20 emms-volume-sndioctl-change)....
9c460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 4c 69 ..............(function.:tag."Li
9c480 73 70 20 66 75 6e 63 74 69 6f 6e 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 sp.function")))..(defcustom.emms
9c4a0 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 20 32 0a 20 20 22 54 68 65 20 61 -volume-change-amount.2..."The.a
9c4c0 6d 6f 75 6e 74 20 74 6f 20 75 73 65 20 77 68 65 6e 20 72 61 69 73 69 6e 67 20 6f 72 20 6c 6f 77 mount.to.use.when.raising.or.low
9c4e0 65 72 69 6e 67 20 74 68 65 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 74 68 65 0a 65 6d 6d 73 2d ering.the.volume.using.the.emms-
9c500 76 6f 6c 75 6d 65 20 69 6e 74 65 72 66 61 63 65 2e 0a 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 62 volume.interface...This.should.b
9c520 65 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 e.a.positive.integer."...:type.'
9c540 69 6e 74 65 67 65 72 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 65 6c integer)..(defun.emms-volume-sel
9c560 65 63 74 2d 67 65 74 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 ect-get-function.()..."Return.th
9c580 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 67 65 74 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 e.corresponding.get.function."..
9c5a0 20 28 63 6f 6e 64 20 28 28 6e 6f 74 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d .(cond.((not.emms-volume-change-
9c5c0 66 75 6e 63 74 69 6f 6e 29 0a 09 20 28 65 72 72 6f 72 20 22 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 function)...(error."`emms-volume
9c5e0 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 27 20 69 73 20 6e 6f 74 20 73 65 74 22 29 29 0a -change-function'.is.not.set")).
9c600 09 28 28 65 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f .((eq.emms-volume-change-functio
9c620 6e 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 68 61 6e 67 65 29 0a 09 n.#'emms-volume-amixer-change)..
9c640 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 67 65 74 29 0a 09 28 28 65 71 .#'emms-volume-amixer-get)..((eq
9c660 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 .emms-volume-change-function.#'e
9c680 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 63 68 61 6e 67 65 29 0a 09 20 23 27 65 6d 6d mms-volume-pulse-change)...#'emm
9c6a0 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2d 67 65 74 29 0a 09 28 74 20 28 65 72 72 6f 72 20 22 s-volume-pulse-get)..(t.(error."
9c6c0 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 76 6f 6c could.not.find.corresponding.vol
9c6e0 75 6d 65 20 67 65 74 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 25 73 22 0a 09 09 20 20 ume.getter.function.for.%s".....
9c700 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 29 29 29 29 0a emms-volume-change-function)))).
9c720 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 67 65 74 20 28 29 0a 20 20 22 52 65 .(defun.emms-volume-get.()..."Re
9c740 74 75 72 6e 20 74 68 65 20 76 6f 6c 75 6d 65 20 61 73 20 61 6e 20 69 6e 74 65 67 65 72 20 69 6e turn.the.volume.as.an.integer.in
9c760 20 74 68 65 20 72 61 6e 67 65 20 5b 30 2d 31 30 30 5d 2e 22 0a 20 20 28 66 75 6e 63 61 6c 6c 20 .the.range.[0-100]."...(funcall.
9c780 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 65 6c 65 63 74 2d 67 65 74 2d 66 75 6e 63 74 69 6f 6e (emms-volume-select-get-function
9c7a0 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d )))..;;;###autoload.(defun.emms-
9c7c0 76 6f 6c 75 6d 65 2d 72 61 69 73 65 20 28 29 0a 20 20 22 52 61 69 73 65 20 74 68 65 20 76 6f 6c volume-raise.()..."Raise.the.vol
9c7e0 75 6d 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 75 6e 63 61 6c 6c ume."...(interactive)...(funcall
9c800 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 20 65 6d 6d .emms-volume-change-function.emm
9c820 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 29 29 0a 0a 3b 3b 3b 23 23 23 s-volume-change-amount))..;;;###
9c840 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 autoload.(defun.emms-volume-lowe
9c860 72 20 28 29 0a 20 20 22 4c 6f 77 65 72 20 74 68 65 20 76 6f 6c 75 6d 65 2e 22 0a 20 20 28 69 6e r.()..."Lower.the.volume."...(in
9c880 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 76 6f 6c 75 6d teractive)...(funcall.emms-volum
9c8a0 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 20 28 2d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 e-change-function.(-.emms-volume
9c8c0 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 -change-amount)))..(define-key.e
9c8e0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2b 22 29 20 mms-playlist-mode-map.(kbd."+").
9c900 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 #'emms-volume-raise).(define-key
9c920 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 2d 22 .emms-playlist-mode-map.(kbd."-"
9c940 29 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 72 29 0a 0a 3b 3b 20 43 6f 64 65 20 ).#'emms-volume-lower)..;;.Code.
9c960 73 70 65 63 69 66 69 63 20 74 6f 20 74 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 2e 0a 28 64 65 66 specific.to.the.minor.mode..(def
9c980 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 ine-minor-mode.emms-volume-minor
9c9a0 2d 6d 6f 64 65 0a 20 20 22 41 6c 6c 6f 77 73 20 76 6f 6c 75 6d 65 20 73 65 74 74 69 6e 67 20 77 -mode..."Allows.volume.setting.w
9c9c0 69 74 68 20 2b 20 61 6e 64 20 2d 20 61 66 74 65 72 20 61 6e 20 69 6e 69 74 69 61 6c 20 6b 65 79 ith.+.and.-.after.an.initial.key
9c9e0 20 63 6f 6d 62 6f 2e 22 0a 20 20 3a 67 6c 6f 62 61 6c 20 74 0a 20 20 3a 69 6e 69 74 2d 76 61 6c .combo."...:global.t...:init-val
9ca00 75 65 20 6e 69 6c 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 20 28 2b 2f 2d 29 22 0a 20 20 3a 6b 65 ue.nil...:lighter.".(+/-)"...:ke
9ca20 79 6d 61 70 20 27 28 28 22 2b 22 20 2e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 70 ymap.'(("+"...emms-volume-mode-p
9ca40 6c 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 2d 22 20 2e 20 65 6d 6d 73 2d 76 6f 6c lus).............("-"...emms-vol
9ca60 75 6d 65 2d 6d 6f 64 65 2d 6d 69 6e 75 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d ume-mode-minus)))..(defvar.emms-
9ca80 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 6f 75 74 20 32 0a 20 20 22 2a 54 68 65 20 74 69 volume-mode-timeout.2..."*The.ti
9caa0 6d 65 6f 75 74 20 69 6e 20 61 6d 6f 75 6e 74 20 6f 66 20 73 65 63 6f 6e 64 73 20 75 73 65 64 20 meout.in.amount.of.seconds.used.
9cac0 62 79 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 22 29 0a 0a by.`emms-volume-minor-mode'.")..
9cae0 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 72 20 6e (defvar.emms-volume-mode-timer.n
9cb00 69 6c 0a 20 20 22 54 68 65 20 74 69 6d 65 72 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e il..."The.timer.`emms-volume-min
9cb20 6f 72 2d 6d 6f 64 65 27 20 75 73 65 73 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 or-mode'.uses.")..;;;###autoload
9cb40 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 70 6c 75 73 20 28 29 .(defun.emms-volume-mode-plus.()
9cb60 0a 20 20 22 52 61 69 73 65 20 76 6f 6c 75 6d 65 20 61 6e 64 20 65 6e 61 62 6c 65 20 6f 72 20 65 ..."Raise.volume.and.enable.or.e
9cb80 78 74 65 6e 64 20 74 68 65 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 xtend.the.`emms-volume-minor-mod
9cba0 65 27 20 74 69 6d 65 6f 75 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 e'.timeout."...(interactive)...(
9cbc0 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 29 0a 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d emms-volume-raise)...(emms-volum
9cbe0 65 2d 6d 6f 64 65 2d 73 74 61 72 74 2d 6f 72 2d 65 78 74 65 6e 64 29 29 0a 0a 3b 3b 3b 23 23 23 e-mode-start-or-extend))..;;;###
9cc00 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 autoload.(defun.emms-volume-mode
9cc20 2d 6d 69 6e 75 73 20 28 29 0a 20 20 22 4c 6f 77 65 72 20 76 6f 6c 75 6d 65 20 61 6e 64 20 65 6e -minus.()..."Lower.volume.and.en
9cc40 61 62 6c 65 20 6f 72 20 65 78 74 65 6e 64 20 74 68 65 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d able.or.extend.the.`emms-volume-
9cc60 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 74 69 6d 65 6f 75 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 minor-mode'.timeout."...(interac
9cc80 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 72 29 0a 20 20 28 65 tive)...(emms-volume-lower)...(e
9cca0 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 73 74 61 72 74 2d 6f 72 2d 65 78 74 65 6e 64 29 mms-volume-mode-start-or-extend)
9ccc0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 64 69 73 61 62 )..(defun.emms-volume-mode-disab
9cce0 6c 65 2d 74 69 6d 65 72 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 60 65 6d 6d 73 2d 76 6f 6c le-timer.()..."Disable.`emms-vol
9cd00 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 74 69 6d 65 72 2e 22 0a 20 20 28 63 61 6e 63 65 ume-minor-mode'.timer."...(cance
9cd20 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 72 29 0a l-timer.emms-volume-mode-timer).
9cd40 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 72 20 6e ..(setq.emms-volume-mode-timer.n
9cd60 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 73 65 il))..(defun.emms-volume-mode-se
9cd80 74 2d 74 69 6d 65 72 20 28 29 0a 20 20 22 53 65 74 20 61 20 6e 65 77 20 60 65 6d 6d 73 2d 76 6f t-timer.()..."Set.a.new.`emms-vo
9cda0 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 74 69 6d 65 72 2e 22 0a 20 20 28 77 68 65 6e lume-minor-mode'.timer."...(when
9cdc0 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 72 0a 20 20 20 20 28 65 6d 6d .emms-volume-mode-timer.....(emm
9cde0 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 64 69 73 61 62 6c 65 2d 74 69 6d 65 72 29 29 0a 20 20 s-volume-mode-disable-timer))...
9ce00 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 72 20 28 72 75 (setq.emms-volume-mode-timer.(ru
9ce20 6e 2d 61 74 2d 74 69 6d 65 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 6f n-at-time.emms-volume-mode-timeo
9ce40 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ut..............................
9ce60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............nil..............
9ce80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 ...............................#
9cea0 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 72 2d 74 69 6d 65 6f 75 74 29 'emms-volume-mode-timer-timeout)
9cec0 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 ))..(defun.emms-volume-mode-time
9cee0 72 2d 74 69 6d 65 6f 75 74 20 28 29 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 64 69 73 61 r-timeout.()..."Function.to.disa
9cf00 62 6c 65 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 61 74 20 ble.`emms-volume-minor-mode'.at.
9cf20 74 69 6d 65 6f 75 74 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f timeout."...(setq.emms-volume-mo
9cf40 64 65 2d 74 69 6d 65 72 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e de-timer.nil)...(emms-volume-min
9cf60 6f 72 2d 6d 6f 64 65 20 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 or-mode.-1))..(defun.emms-volume
9cf80 2d 6d 6f 64 65 2d 73 74 61 72 74 2d 6f 72 2d 65 78 74 65 6e 64 20 28 29 0a 20 20 22 53 74 61 72 -mode-start-or-extend.()..."Star
9cfa0 74 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 6f 72 20 65 78 t.`emms-volume-minor-mode'.or.ex
9cfc0 74 65 6e 64 20 69 74 73 20 72 75 6e 6e 69 6e 67 20 74 69 6d 65 2e 22 0a 20 20 28 77 68 65 6e 20 tend.its.running.time."...(when.
9cfe0 28 6e 75 6c 6c 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 29 0a 20 20 (null.emms-volume-minor-mode)...
9d000 20 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 31 29 29 0a 20 20 ..(emms-volume-minor-mode.1))...
9d020 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 73 65 74 2d 74 69 6d 65 72 29 29 0a 0a 28 (emms-volume-mode-set-timer))..(
9d040 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 76 provide.'emms-volume).;;;.emms-v
9d060 6f 6c 75 6d 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 olume.el.ends.here..............
9d080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d200 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6d 70 72 69 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-mpris.el...........
9d220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
9d280 30 30 35 30 32 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 31 34 00 20 30 00 00 00 0050230.00000000000.013314..0...
9d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
9d320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
9d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d400 3b 3b 3b 20 65 6d 6d 73 2d 6d 70 72 69 73 2e 65 6c 20 2d 2d 2d 20 4d 70 72 69 73 20 69 6e 74 65 ;;;.emms-mpris.el.---.Mpris.inte
9d420 72 66 61 63 65 20 66 6f 72 20 45 4d 4d 53 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 rface.for.EMMS........-*-.lexica
9d440 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 l-binding:.t;.-*-..;;.Copyright.
9d460 28 43 29 20 32 30 32 32 2c 20 32 30 32 33 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f (C).2022,.2023..Free.Software.Fo
9d480 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 46 72 61 6e 20 undation,.Inc...;;.Author:.Fran.
9d4a0 42 75 72 73 74 61 6c 6c 20 3c 66 72 61 6e 2e 62 75 72 73 74 61 6c 6c 40 67 6d 61 69 6c 2e 63 6f Burstall.<fran.burstall@gmail.co
9d4c0 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 m>.;;.Keywords:.multimedia..;;.T
9d4e0 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f his.program.is.free.software;.yo
9d500 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 u.can.redistribute.it.and/or.mod
9d520 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 ify.;;.it.under.the.terms.of.the
9d540 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 .GNU.General.Public.License.as.p
9d560 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ublished.by.;;.the.Free.Software
9d580 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 .Foundation,.either.version.3.of
9d5a0 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 .the.License,.or.;;.(at.your.opt
9d5c0 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 ion).any.later.version...;;.This
9d5e0 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 .program.is.distributed.in.the.h
9d600 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 ope.that.it.will.be.useful,.;;.b
9d620 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 ut.WITHOUT.ANY.WARRANTY;.without
9d640 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b .even.the.implied.warranty.of.;;
9d660 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 .MERCHANTABILITY.or.FITNESS.FOR.
9d680 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b A.PARTICULAR.PURPOSE...See.the.;
9d6a0 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 ;.GNU.General.Public.License.for
9d6c0 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 .more.details...;;.You.should.ha
9d6e0 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 ve.received.a.copy.of.the.GNU.Ge
9d700 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 neral.Public.License.;;.along.wi
9d720 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 th.this.program...If.not,.see.<h
9d740 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a ttps://www.gnu.org/licenses/>...
9d760 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 ;;;.Commentary:.;;.This.package.
9d780 70 72 6f 76 69 64 65 73 20 61 20 64 62 75 73 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 45 4d 4d provides.a.dbus.interface.to.EMM
9d7a0 53 2e 0a 0a 3b 3b 20 55 73 61 67 65 3a 0a 3b 3b 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 S...;;.Usage:.;;..(require.'emms
9d7c0 2d 6d 70 72 69 73 29 0a 3b 3b 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 29 0a -mpris).;;..(emms-mpris-enable).
9d7e0 0a 3b 3b 20 53 77 69 74 63 68 20 6f 66 66 20 77 69 74 68 0a 3b 3b 20 20 28 65 6d 6d 73 2d 6d 70 .;;.Switch.off.with.;;..(emms-mp
9d800 72 69 73 2d 64 69 73 61 62 6c 65 29 0a 0a 3b 3b 20 43 61 76 65 61 74 73 3a 20 74 68 69 73 20 69 ris-disable)..;;.Caveats:.this.i
9d820 73 20 6e 6f 74 20 71 75 69 74 65 20 61 20 63 6f 6d 70 6c 65 74 65 20 69 6d 70 6c 65 6d 65 6e 74 s.not.quite.a.complete.implement
9d840 61 74 69 6f 6e 20 6f 66 20 74 68 65 0a 3b 3b 20 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 ation.of.the.;;.org.mpris.MediaP
9d860 6c 61 79 65 72 32 20 61 6e 64 20 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 layer2.and.org.mpris.MediaPlayer
9d880 32 2e 50 6c 61 79 65 72 20 69 6e 74 65 72 66 61 63 65 73 0a 3b 3b 20 28 73 65 65 0a 3b 3b 20 68 2.Player.interfaces.;;.(see.;;.h
9d8a0 74 74 70 73 3a 2f 2f 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2e 66 72 65 65 64 65 73 6b 74 6f ttps://specifications.freedeskto
9d8c0 70 2e 6f 72 67 2f 6d 70 72 69 73 2d 73 70 65 63 2f 6c 61 74 65 73 74 2f 69 6e 64 65 78 2e 68 74 p.org/mpris-spec/latest/index.ht
9d8e0 6d 6c 29 2e 0a 3b 3b 20 57 68 61 74 20 69 73 20 6d 69 73 73 69 6e 67 3a 0a 3b 3b 20 20 2d 20 56 ml)..;;.What.is.missing:.;;..-.V
9d900 6f 6c 75 6d 65 3a 20 74 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 65 61 73 79 20 62 75 74 20 74 olume:.this.should.be.easy.but.t
9d920 68 65 72 65 20 73 65 65 6d 73 20 74 6f 20 62 65 20 6e 6f 20 77 61 79 20 74 6f 20 67 65 74 20 61 here.seems.to.be.no.way.to.get.a
9d940 0a 3b 3b 20 73 69 6d 70 6c 65 20 70 65 72 63 65 6e 74 61 67 65 20 74 6f 20 72 65 70 6f 72 74 20 .;;.simple.percentage.to.report.
9d960 74 68 65 20 76 6f 6c 75 6d 65 2d 2d 2d 65 76 65 72 79 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 0a 3b the.volume---every.emms-volume.;
9d980 3b 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 72 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 20 69 6e ;.controller.returns.a.string.in
9d9a0 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 6f 72 6d 61 74 2c 20 73 69 67 68 2e 0a 0a 0a 0c 0a 3b .a.different.format,.sigh......;
9d9c0 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 2a 20 57 68 61 74 20 77 65 20 6e 65 65 64 0a 28 72 65 71 75 ;;.Code:..;;*.What.we.need.(requ
9d9e0 69 72 65 20 27 64 62 75 73 29 0a 28 72 65 71 75 69 72 65 20 27 75 72 6c 2d 70 61 72 73 65 29 0a ire.'dbus).(require.'url-parse).
9da00 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 62 (require.'emms).(require.'emms-b
9da20 72 6f 77 73 65 72 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 rowser).(require.'emms-playing-t
9da40 69 6d 65 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 ime).(require.'cl-lib).(require.
9da60 27 70 63 61 73 65 29 0a 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 28 72 65 71 75 69 'pcase).(require.'subr-x).(requi
9da80 72 65 20 27 73 65 71 29 0a 0a 3b 3b 2a 20 44 62 75 73 20 63 6f 6d 70 6f 6e 65 6e 74 73 0a 28 64 re.'seq)..;;*.Dbus.components.(d
9daa0 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 20 22 6f 72 67 2e efconst.emms-mpris-service."org.
9dac0 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 65 6d 6d 73 22 0a 20 20 22 54 68 65 20 mpris.MediaPlayer2.emms"..."The.
9dae0 73 65 72 76 69 63 65 20 77 65 20 65 78 70 6f 73 65 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 service.we.expose.")..(defconst.
9db00 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 20 22 2f 6f 72 67 2f 6d 70 72 69 73 2f 4d 65 64 69 emms-mpris-path."/org/mpris/Medi
9db20 61 50 6c 61 79 65 72 32 22 0a 20 20 22 4f 75 72 20 6f 62 6a 65 63 74 20 70 61 74 68 2e 22 29 0a aPlayer2"..."Our.object.path.").
9db40 0a 3b 3b 2a 20 52 65 67 69 73 74 65 72 20 61 6e 64 20 75 70 64 61 74 65 0a 28 64 65 66 75 6e 20 .;;*.Register.and.update.(defun.
9db60 65 6d 6d 73 2d 6d 70 72 69 73 2d 72 65 67 69 73 74 65 72 2d 6d 65 74 68 6f 64 20 28 69 66 61 63 emms-mpris-register-method.(ifac
9db80 65 20 6d 65 74 68 6f 64 20 68 61 6e 64 6c 65 72 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 4d 45 e.method.handler)..."Register.ME
9dba0 54 48 4f 44 20 77 69 74 68 20 48 41 4e 44 4c 45 52 20 6f 6e 20 69 6e 74 65 72 66 61 63 65 20 49 THOD.with.HANDLER.on.interface.I
9dbc0 46 41 43 45 2e 22 0a 20 20 28 64 62 75 73 2d 72 65 67 69 73 74 65 72 2d 6d 65 74 68 6f 64 20 3a FACE."...(dbus-register-method.:
9dbe0 73 65 73 73 69 6f 6e 0a 09 09 09 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 0a 09 09 session....emms-mpris-service...
9dc00 09 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 09 69 66 61 63 65 0a 09 09 09 6d 65 74 .emms-mpris-path....iface....met
9dc20 68 6f 64 0a 09 09 09 68 61 6e 64 6c 65 72 0a 09 09 09 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d hod....handler....t))..(defun.em
9dc40 6d 73 2d 6d 70 72 69 73 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 70 65 72 74 79 20 28 69 66 61 63 ms-mpris-register-property.(ifac
9dc60 65 20 70 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 20 76 61 6c 75 65 29 0a 20 20 22 52 65 67 69 e.property.access.value)..."Regi
9dc80 73 74 65 72 20 50 52 4f 50 45 52 54 59 20 6f 6e 20 69 6e 74 65 72 66 61 63 65 20 49 46 41 43 45 ster.PROPERTY.on.interface.IFACE
9dca0 2e 0a 0a 56 41 4c 55 45 20 69 73 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 2c 20 41 ...VALUE.is.the.initial.value,.A
9dcc0 43 43 45 53 53 20 74 68 65 20 61 63 63 65 73 73 20 6d 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 CCESS.the.access.mode."...(let.(
9dce0 28 76 61 6c 20 28 63 6f 6e 64 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 76 61 6c 75 65 29 20 28 66 (val.(cond.((functionp.value).(f
9dd00 75 6e 63 61 6c 6c 20 76 61 6c 75 65 29 29 0a 09 09 20 20 20 28 28 61 6e 64 20 28 73 79 6d 62 6f uncall.value))......((and.(symbo
9dd20 6c 70 20 76 61 6c 75 65 29 20 28 62 6f 75 6e 64 70 20 76 61 6c 75 65 29 29 20 28 73 79 6d 62 6f lp.value).(boundp.value)).(symbo
9dd40 6c 2d 76 61 6c 75 65 20 76 61 6c 75 65 29 29 0a 09 09 20 20 20 28 74 20 76 61 6c 75 65 29 29 29 l-value.value))......(t.value)))
9dd60 29 0a 20 20 20 20 28 64 62 75 73 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 70 65 72 74 79 20 3a 73 ).....(dbus-register-property.:s
9dd80 65 73 73 69 6f 6e 0a 09 09 09 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 ession........emms-mpris-service
9dda0 0a 09 09 09 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 09 20 20 20 20 69 ........emms-mpris-path........i
9ddc0 66 61 63 65 0a 09 09 09 20 20 20 20 70 72 6f 70 65 72 74 79 0a 09 09 09 20 20 20 20 61 63 63 65 face........property........acce
9dde0 73 73 0a 09 09 09 20 20 20 20 76 61 6c 0a 09 09 09 20 20 20 20 3b 3b 20 65 6d 69 74 20 73 69 67 ss........val........;;.emit.sig
9de00 6e 61 6c 20 77 68 65 6e 20 72 65 61 64 77 72 69 74 65 20 70 72 6f 70 65 72 74 69 65 73 20 63 68 nal.when.readwrite.properties.ch
9de20 61 6e 67 65 0a 09 09 09 20 20 20 20 28 65 71 75 61 6c 20 61 63 63 65 73 73 20 3a 72 65 61 64 77 ange........(equal.access.:readw
9de40 72 69 74 65 29 0a 09 09 09 20 20 20 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d rite)........t)))..(defun.emms-m
9de60 70 72 69 73 2d 72 65 67 69 73 74 65 72 2d 69 66 61 63 65 20 28 73 70 65 63 29 0a 20 20 22 52 65 pris-register-iface.(spec)..."Re
9de80 67 69 73 74 65 72 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 77 69 74 68 20 73 70 65 63 20 53 50 gister.an.interface.with.spec.SP
9dea0 45 43 20 6f 6e 20 74 68 65 20 45 4d 4d 53 20 73 65 72 76 69 63 65 2e 0a 0a 54 68 65 20 73 70 65 EC.on.the.EMMS.service...The.spe
9dec0 63 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 49 46 41 43 45 20 4d c.is.a.list.of.the.form.(IFACE.M
9dee0 45 54 48 4f 44 53 20 50 52 4f 50 53 29 2e 0a 0a 49 46 41 43 45 20 69 73 20 61 20 73 74 72 69 6e ETHODS.PROPS)...IFACE.is.a.strin
9df00 67 20 6e 61 6d 69 6e 67 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 62 65 69 6e 67 20 72 65 67 g.naming.the.interface.being.reg
9df20 69 73 74 65 72 65 64 2e 0a 0a 4d 45 54 48 4f 44 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6d istered...METHODS.is.a.list.of.m
9df40 65 74 68 6f 64 73 20 74 6f 20 72 65 67 69 73 74 65 72 20 6f 6e 20 74 68 65 20 69 6e 74 65 72 66 ethods.to.register.on.the.interf
9df60 61 63 65 2e 0a 45 61 63 68 20 6d 65 74 68 6f 64 20 69 73 20 61 20 6c 69 73 74 20 28 4e 41 4d 45 ace..Each.method.is.a.list.(NAME
9df80 20 46 4e 29 20 77 69 74 68 20 4e 41 4d 45 20 61 20 73 74 72 69 6e 67 20 61 6e 64 20 46 4e 20 74 .FN).with.NAME.a.string.and.FN.t
9dfa0 68 65 0a 66 75 6e 63 74 69 6f 6e 20 74 68 65 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 2e 0a 0a 50 he.function.the.method.calls...P
9dfc0 52 4f 50 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 70 65 72 74 69 65 73 20 74 6f 20 ROPS.is.a.list.of.properties.to.
9dfe0 72 65 67 69 73 74 65 72 20 6f 6e 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 2e 0a 45 61 63 68 20 register.on.the.interface..Each.
9e000 70 72 6f 70 65 72 74 79 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 property.is.a.list.of.the.form.(
9e020 4e 41 4d 45 20 41 43 43 45 53 53 20 56 41 4c 29 20 77 69 74 68 0a 4e 41 4d 45 20 61 20 73 74 72 NAME.ACCESS.VAL).with.NAME.a.str
9e040 69 6e 67 2c 20 41 43 43 45 53 53 20 61 20 6b 65 79 77 6f 72 64 20 61 6e 64 20 56 41 4c 20 65 69 ing,.ACCESS.a.keyword.and.VAL.ei
9e060 74 68 65 72 20 61 20 66 75 6e 63 74 69 6f 6e 0a 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 ther.a.function.that.returns.the
9e080 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 2c 20 .default.value.of.the.property,.
9e0a0 61 20 76 61 72 69 61 62 6c 65 0a 77 68 69 63 68 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 74 68 a.variable.which.evaluates.to.th
9e0c0 61 74 20 76 61 6c 75 65 20 6f 72 20 74 68 65 20 76 61 6c 75 65 20 69 74 73 65 6c 66 2e 22 0a 20 at.value.or.the.value.itself."..
9e0e0 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 69 66 61 63 65 20 6d .(cl-destructuring-bind.(iface.m
9e100 65 74 68 6f 64 73 20 70 72 6f 70 73 29 20 73 70 65 63 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 ethods.props).spec.....(dolist.(
9e120 6d 65 74 68 6f 64 20 6d 65 74 68 6f 64 73 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 65 method.methods).......(apply.#'e
9e140 6d 6d 73 2d 6d 70 72 69 73 2d 72 65 67 69 73 74 65 72 2d 6d 65 74 68 6f 64 20 69 66 61 63 65 20 mms-mpris-register-method.iface.
9e160 6d 65 74 68 6f 64 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 72 6f 70 20 70 72 6f 70 73 method)).....(dolist.(prop.props
9e180 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 72 65 67 69 ).......(apply.#'emms-mpris-regi
9e1a0 73 74 65 72 2d 70 72 6f 70 65 72 74 79 20 69 66 61 63 65 20 70 72 6f 70 29 29 29 29 0a 0a 0a 3b ster-property.iface.prop))))...;
9e1c0 3b 2a 20 49 6e 74 65 72 66 61 63 65 73 0a 0a 3b 3b 2a 2a 20 4d 65 64 69 61 50 6c 61 79 65 72 32 ;*.Interfaces..;;**.MediaPlayer2
9e1e0 20 69 6e 74 65 72 66 61 63 65 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6d .interface..(defvar.emms-mpris-m
9e200 65 64 69 61 70 6c 61 79 65 72 2d 69 66 61 63 65 2d 73 70 65 63 0a 20 20 27 28 22 6f 72 67 2e 6d ediaplayer-iface-spec...'("org.m
9e220 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 22 0a 20 20 20 20 28 28 22 52 61 69 73 65 22 pris.MediaPlayer2".....(("Raise"
9e240 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 28 22 51 75 69 74 22 20 69 67 6e 6f 72 65 29 29 0a 20 .ignore)......("Quit".ignore))..
9e260 20 20 20 28 28 22 43 61 6e 51 75 69 74 22 20 3a 72 65 61 64 20 6e 69 6c 29 0a 20 20 20 20 20 28 ...(("CanQuit".:read.nil)......(
9e280 22 43 61 6e 52 61 69 73 65 22 20 3a 72 65 61 64 20 6e 69 6c 29 0a 20 20 20 20 20 28 22 48 61 73 "CanRaise".:read.nil)......("Has
9e2a0 54 72 61 63 6b 4c 69 73 74 22 20 3a 72 65 61 64 20 6e 69 6c 29 0a 20 20 20 20 20 28 22 49 64 65 TrackList".:read.nil)......("Ide
9e2c0 6e 74 69 74 79 22 20 3a 72 65 61 64 20 22 45 4d 4d 53 20 6d 65 64 69 61 20 70 6c 61 79 65 72 22 ntity".:read."EMMS.media.player"
9e2e0 29 0a 20 20 20 20 20 28 22 53 75 70 70 6f 72 74 65 64 55 72 69 53 63 68 65 6d 65 73 22 20 3a 72 )......("SupportedUriSchemes".:r
9e300 65 61 64 20 28 3a 61 72 72 61 79 20 22 66 69 6c 65 22 29 29 0a 20 20 20 20 20 28 22 53 75 70 70 ead.(:array."file"))......("Supp
9e320 6f 72 74 65 64 4d 69 6d 65 54 79 70 65 73 22 20 3a 72 65 61 64 20 28 3a 61 72 72 61 79 20 22 61 ortedMimeTypes".:read.(:array."a
9e340 75 64 69 6f 2f 6d 70 65 67 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 67 67 22 29 29 29 29 udio/mpeg"."application/ogg"))))
9e360 0a 20 20 22 49 6e 74 65 72 66 61 63 65 20 73 70 65 63 20 66 6f 72 20 4d 65 64 69 61 50 6c 61 79 ..."Interface.spec.for.MediaPlay
9e380 65 72 32 2e 22 29 0a 0a 3b 3b 2a 2a 20 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 72 er2.")..;;**.MediaPlayer2.Player
9e3a0 20 69 6e 74 65 72 66 61 63 65 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 .interface..(defvar.emms-mpris-p
9e3c0 6c 61 79 65 72 2d 69 66 61 63 65 2d 73 70 65 63 0a 20 20 27 28 22 6f 72 67 2e 6d 70 72 69 73 2e layer-iface-spec...'("org.mpris.
9e3e0 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 72 22 0a 20 20 20 3b 3b 20 4d 65 74 68 6f MediaPlayer2.Player"....;;.Metho
9e400 64 73 3a 0a 20 20 20 20 28 28 22 4f 70 65 6e 55 72 69 22 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6f ds:.....(("OpenUri".emms-mpris-o
9e420 70 65 6e 2d 75 72 69 29 0a 20 20 20 20 20 28 22 4e 65 78 74 22 20 28 6c 61 6d 62 64 61 20 28 29 pen-uri)......("Next".(lambda.()
9e440 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 65 6d 6d 73 2d 6e 65 78 74 29 29 20 3a 69 67 .(ignore-errors.(emms-next)).:ig
9e460 6e 6f 72 65 29 29 0a 20 20 20 20 20 28 22 50 72 65 76 69 6f 75 73 22 20 28 6c 61 6d 62 64 61 20 nore))......("Previous".(lambda.
9e480 28 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 65 6d 6d 73 2d 70 72 65 76 69 6f 75 73 ().(ignore-errors.(emms-previous
9e4a0 29 29 20 3a 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 28 22 50 61 75 73 65 22 20 28 6c 61 6d 62 )).:ignore))......("Pause".(lamb
9e4c0 64 61 20 28 29 20 28 65 6d 6d 73 2d 70 61 75 73 65 29 20 3a 69 67 6e 6f 72 65 29 29 0a 20 20 20 da.().(emms-pause).:ignore))....
9e4e0 20 20 28 22 50 6c 61 79 50 61 75 73 65 22 20 28 6c 61 6d 62 64 61 20 28 29 20 28 65 6d 6d 73 2d ..("PlayPause".(lambda.().(emms-
9e500 70 61 75 73 65 29 20 3a 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 28 22 53 74 6f 70 22 20 28 6c pause).:ignore))......("Stop".(l
9e520 61 6d 62 64 61 20 28 29 20 28 65 6d 6d 73 2d 73 74 6f 70 29 20 3a 69 67 6e 6f 72 65 29 29 0a 20 ambda.().(emms-stop).:ignore))..
9e540 20 20 20 20 28 22 50 6c 61 79 22 20 28 6c 61 6d 62 64 61 20 28 29 20 28 65 6d 6d 73 2d 70 61 75 ....("Play".(lambda.().(emms-pau
9e560 73 65 29 20 3a 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 28 22 53 65 65 6b 22 20 65 6d 6d 73 2d se).:ignore))......("Seek".emms-
9e580 6d 70 72 69 73 2d 73 65 65 6b 29 0a 20 20 20 20 20 28 22 53 65 74 50 6f 73 69 74 69 6f 6e 22 20 mpris-seek)......("SetPosition".
9e5a0 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 74 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 3b 3b 20 emms-mpris-set-position))....;;.
9e5c0 50 72 6f 70 65 72 74 69 65 73 3a 20 53 68 75 66 66 6c 65 2c 20 4c 6f 6f 70 53 74 61 74 75 73 2c Properties:.Shuffle,.LoopStatus,
9e5e0 20 56 6f 6c 75 6d 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 28 79 65 74 29 0a 20 20 20 20 .Volume.not.supported.(yet).....
9e600 28 28 22 4c 6f 6f 70 53 74 61 74 75 73 22 20 3a 72 65 61 64 77 72 69 74 65 20 65 6d 6d 73 2d 6d (("LoopStatus".:readwrite.emms-m
9e620 70 72 69 73 2d 6c 6f 6f 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 28 22 53 68 75 66 66 6c 65 pris-loop-status)......("Shuffle
9e640 22 20 3a 72 65 61 64 77 72 69 74 65 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 ".:readwrite.emms-random-playlis
9e660 74 29 0a 20 20 20 20 20 28 22 50 6c 61 79 62 61 63 6b 53 74 61 74 75 73 22 20 3a 72 65 61 64 20 t)......("PlaybackStatus".:read.
9e680 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 28 22 52 61 74 65 22 20 emms-mpris-status)......("Rate".
9e6a0 3a 72 65 61 64 77 72 69 74 65 20 31 2e 30 29 0a 20 20 20 20 20 28 22 4d 69 6e 69 6d 75 6d 52 61 :readwrite.1.0)......("MinimumRa
9e6c0 74 65 22 20 3a 72 65 61 64 20 31 2e 30 29 0a 20 20 20 20 20 28 22 4d 61 78 69 6d 75 6d 52 61 74 te".:read.1.0)......("MaximumRat
9e6e0 65 22 20 3a 72 65 61 64 20 31 2e 30 29 0a 20 20 20 20 20 28 22 50 6f 73 69 74 69 6f 6e 22 20 3a e".:read.1.0)......("Position".:
9e700 72 65 61 64 20 28 3a 69 6e 74 36 34 20 30 29 29 09 3b 74 68 69 6e 6b 20 6d 6f 72 65 20 61 62 6f read.(:int64.0)).;think.more.abo
9e720 75 74 20 74 68 69 73 0a 20 20 20 20 20 28 22 43 61 6e 47 6f 4e 65 78 74 22 20 3a 72 65 61 64 20 ut.this......("CanGoNext".:read.
9e740 74 29 0a 20 20 20 20 20 28 22 43 61 6e 47 6f 50 72 65 76 69 6f 75 73 22 20 3a 72 65 61 64 20 74 t)......("CanGoPrevious".:read.t
9e760 29 0a 20 20 20 20 20 28 22 43 61 6e 50 6c 61 79 22 20 3a 72 65 61 64 20 74 29 0a 20 20 20 20 20 )......("CanPlay".:read.t)......
9e780 28 22 43 61 6e 50 61 75 73 65 22 20 3a 72 65 61 64 20 74 29 0a 20 20 20 20 20 28 22 43 61 6e 50 ("CanPause".:read.t)......("CanP
9e7a0 61 75 73 65 22 20 3a 72 65 61 64 20 74 29 0a 20 20 20 20 20 28 22 43 61 6e 43 6f 6e 74 72 6f 6c ause".:read.t)......("CanControl
9e7c0 22 20 3a 72 65 61 64 20 74 29 0a 20 20 20 20 20 28 22 43 61 6e 53 65 65 6b 22 20 3a 72 65 61 64 ".:read.t)......("CanSeek".:read
9e7e0 20 74 29 0a 20 20 20 20 20 28 22 4d 65 74 61 64 61 74 61 22 20 3a 72 65 61 64 20 65 6d 6d 73 2d .t)......("Metadata".:read.emms-
9e800 6d 70 72 69 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 64 61 74 61 29 29 29 0a 20 20 22 49 6e 74 mpris-current-metadata)))..."Int
9e820 65 72 66 61 63 65 20 73 70 65 63 20 66 6f 72 20 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 erface.spec.for.MediaPlayer2.Pla
9e840 79 65 72 2e 22 29 0a 3b 3b 2a 2a 20 49 6e 74 72 6f 73 70 65 63 74 69 6f 6e 20 69 6e 74 65 72 66 yer.").;;**.Introspection.interf
9e860 61 63 65 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 78 6d 6c 0a 20 20 22 3c ace..(defvar.emms-mpris-xml..."<
9e880 21 44 4f 43 54 59 50 45 20 6e 6f 64 65 20 50 55 42 4c 49 43 20 5c 22 2d 2f 2f 66 72 65 65 64 65 !DOCTYPE.node.PUBLIC.\"-//freede
9e8a0 73 6b 74 6f 70 2f 2f 44 54 44 20 44 2d 42 55 53 20 4f 62 6a 65 63 74 20 49 6e 74 72 6f 73 70 65 sktop//DTD.D-BUS.Object.Introspe
9e8c0 63 74 69 6f 6e 20 31 2e 30 2f 2f 45 4e 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ction.1.0//EN\".................
9e8e0 20 20 20 20 20 20 5c 22 68 74 74 70 3a 2f 2f 77 77 77 2e 66 72 65 65 64 65 73 6b 74 6f 70 2e 6f ......\"http://www.freedesktop.o
9e900 72 67 2f 73 74 61 6e 64 61 72 64 73 2f 64 62 75 73 2f 31 2e 30 2f 69 6e 74 72 6f 73 70 65 63 74 rg/standards/dbus/1.0/introspect
9e920 2e 64 74 64 5c 22 3e 0a 3c 21 2d 2d 20 47 44 42 75 73 20 32 2e 36 36 2e 38 20 2d 2d 3e 0a 3c 6e .dtd\">.<!--.GDBus.2.66.8.-->.<n
9e940 6f 64 65 3e 0a 20 20 3c 69 6e 74 65 72 66 61 63 65 20 6e 61 6d 65 3d 5c 22 6f 72 67 2e 66 72 65 ode>...<interface.name=\"org.fre
9e960 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 2e 50 72 6f 70 65 72 74 69 65 73 5c 22 3e 0a 20 20 20 20 edesktop.DBus.Properties\">.....
9e980 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 47 65 74 5c 22 3e 0a 20 20 20 20 20 20 3c 61 72 67 <method.name=\"Get\">.......<arg
9e9a0 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 69 6e 74 65 72 66 61 63 65 5f 6e 61 6d .type=\"s\".name=\"interface_nam
9e9c0 65 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 20 20 3c 61 72 e\".direction=\"in\"/>.......<ar
9e9e0 67 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 70 72 6f 70 65 72 74 79 5f 6e 61 6d g.type=\"s\".name=\"property_nam
9ea00 65 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 20 20 3c 61 72 e\".direction=\"in\"/>.......<ar
9ea20 67 20 74 79 70 65 3d 5c 22 76 5c 22 20 6e 61 6d 65 3d 5c 22 76 61 6c 75 65 5c 22 20 64 69 72 65 g.type=\"v\".name=\"value\".dire
9ea40 63 74 69 6f 6e 3d 5c 22 6f 75 74 5c 22 2f 3e 0a 20 20 20 20 3c 2f 6d 65 74 68 6f 64 3e 0a 20 20 ction=\"out\"/>.....</method>...
9ea60 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 47 65 74 41 6c 6c 5c 22 3e 0a 20 20 20 20 20 ..<method.name=\"GetAll\">......
9ea80 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 69 6e 74 65 72 66 61 63 .<arg.type=\"s\".name=\"interfac
9eaa0 65 5f 6e 61 6d 65 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 e_name\".direction=\"in\"/>.....
9eac0 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 61 7b 73 76 7d 5c 22 20 6e 61 6d 65 3d 5c 22 70 72 6f ..<arg.type=\"a{sv}\".name=\"pro
9eae0 70 65 72 74 69 65 73 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 6f 75 74 5c 22 2f 3e 0a 20 20 perties\".direction=\"out\"/>...
9eb00 20 20 3c 2f 6d 65 74 68 6f 64 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 53 ..</method>.....<method.name=\"S
9eb20 65 74 5c 22 3e 0a 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 et\">.......<arg.type=\"s\".name
9eb40 3d 5c 22 69 6e 74 65 72 66 61 63 65 5f 6e 61 6d 65 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 =\"interface_name\".direction=\"
9eb60 69 6e 5c 22 2f 3e 0a 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d in\"/>.......<arg.type=\"s\".nam
9eb80 65 3d 5c 22 70 72 6f 70 65 72 74 79 5f 6e 61 6d 65 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 e=\"property_name\".direction=\"
9eba0 69 6e 5c 22 2f 3e 0a 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 76 5c 22 20 6e 61 6d in\"/>.......<arg.type=\"v\".nam
9ebc0 65 3d 5c 22 76 61 6c 75 65 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 e=\"value\".direction=\"in\"/>..
9ebe0 20 20 20 3c 2f 6d 65 74 68 6f 64 3e 0a 20 20 20 20 3c 73 69 67 6e 61 6c 20 6e 61 6d 65 3d 5c 22 ...</method>.....<signal.name=\"
9ec00 50 72 6f 70 65 72 74 69 65 73 43 68 61 6e 67 65 64 5c 22 3e 0a 20 20 20 20 20 20 3c 61 72 67 20 PropertiesChanged\">.......<arg.
9ec20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 69 6e 74 65 72 66 61 63 65 5f 6e 61 6d 65 type=\"s\".name=\"interface_name
9ec40 5c 22 2f 3e 0a 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 61 7b 73 76 7d 5c 22 20 6e \"/>.......<arg.type=\"a{sv}\".n
9ec60 61 6d 65 3d 5c 22 63 68 61 6e 67 65 64 5f 70 72 6f 70 65 72 74 69 65 73 5c 22 2f 3e 0a 20 20 20 ame=\"changed_properties\"/>....
9ec80 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 61 73 5c 22 20 6e 61 6d 65 3d 5c 22 69 6e 76 61 6c ...<arg.type=\"as\".name=\"inval
9eca0 69 64 61 74 65 64 5f 70 72 6f 70 65 72 74 69 65 73 5c 22 2f 3e 0a 20 20 20 20 3c 2f 73 69 67 6e idated_properties\"/>.....</sign
9ecc0 61 6c 3e 0a 20 20 3c 2f 69 6e 74 65 72 66 61 63 65 3e 0a 20 20 3c 69 6e 74 65 72 66 61 63 65 20 al>...</interface>...<interface.
9ece0 6e 61 6d 65 3d 5c 22 6f 72 67 2e 66 72 65 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 2e 49 6e 74 72 name=\"org.freedesktop.DBus.Intr
9ed00 6f 73 70 65 63 74 61 62 6c 65 5c 22 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c ospectable\">.....<method.name=\
9ed20 22 49 6e 74 72 6f 73 70 65 63 74 5c 22 3e 0a 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c "Introspect\">.......<arg.type=\
9ed40 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 78 6d 6c 5f 64 61 74 61 5c 22 20 64 69 72 65 63 74 69 6f 6e "s\".name=\"xml_data\".direction
9ed60 3d 5c 22 6f 75 74 5c 22 2f 3e 0a 20 20 20 20 3c 2f 6d 65 74 68 6f 64 3e 0a 20 20 3c 2f 69 6e 74 =\"out\"/>.....</method>...</int
9ed80 65 72 66 61 63 65 3e 0a 20 20 3c 69 6e 74 65 72 66 61 63 65 20 6e 61 6d 65 3d 5c 22 6f 72 67 2e erface>...<interface.name=\"org.
9eda0 66 72 65 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 2e 50 65 65 72 5c 22 3e 0a 20 20 20 20 3c 6d 65 freedesktop.DBus.Peer\">.....<me
9edc0 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 50 69 6e 67 5c 22 2f 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 thod.name=\"Ping\"/>.....<method
9ede0 20 6e 61 6d 65 3d 5c 22 47 65 74 4d 61 63 68 69 6e 65 49 64 5c 22 3e 0a 20 20 20 20 20 20 3c 61 .name=\"GetMachineId\">.......<a
9ee00 72 67 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 6d 61 63 68 69 6e 65 5f 75 75 69 rg.type=\"s\".name=\"machine_uui
9ee20 64 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 6f 75 74 5c 22 2f 3e 0a 20 20 20 20 3c 2f 6d 65 d\".direction=\"out\"/>.....</me
9ee40 74 68 6f 64 3e 0a 20 20 3c 2f 69 6e 74 65 72 66 61 63 65 3e 0a 20 20 3c 69 6e 74 65 72 66 61 63 thod>...</interface>...<interfac
9ee60 65 20 6e 61 6d 65 3d 5c 22 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 5c e.name=\"org.mpris.MediaPlayer2\
9ee80 22 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 52 61 69 73 65 5c 22 2f 3e 0a ">.....<method.name=\"Raise\"/>.
9eea0 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 51 75 69 74 5c 22 2f 3e 0a 20 20 20 20 ....<method.name=\"Quit\"/>.....
9eec0 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e 51 <property.type=\"b\".name=\"CanQ
9eee0 75 69 74 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f uit\".access=\"read\"/>.....<pro
9ef00 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e 52 61 69 73 65 perty.type=\"b\".name=\"CanRaise
9ef20 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f 70 65 72 \".access=\"read\"/>.....<proper
9ef40 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 48 61 73 54 72 61 63 6b 4c 69 73 ty.type=\"b\".name=\"HasTrackLis
9ef60 74 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f 70 65 t\".access=\"read\"/>.....<prope
9ef80 72 74 79 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 49 64 65 6e 74 69 74 79 5c 22 rty.type=\"s\".name=\"Identity\"
9efa0 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f 70 65 72 74 79 .access=\"read\"/>.....<property
9efc0 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 44 65 73 6b 74 6f 70 45 6e 74 72 79 5c .type=\"s\".name=\"DesktopEntry\
9efe0 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f 70 65 72 74 ".access=\"read\"/>.....<propert
9f000 79 20 74 79 70 65 3d 5c 22 61 73 5c 22 20 6e 61 6d 65 3d 5c 22 53 75 70 70 6f 72 74 65 64 55 72 y.type=\"as\".name=\"SupportedUr
9f020 69 53 63 68 65 6d 65 73 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 iSchemes\".access=\"read\"/>....
9f040 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 61 73 5c 22 20 6e 61 6d 65 3d 5c 22 53 75 .<property.type=\"as\".name=\"Su
9f060 70 70 6f 72 74 65 64 4d 69 6d 65 54 79 70 65 73 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 pportedMimeTypes\".access=\"read
9f080 5c 22 2f 3e 0a 20 20 3c 2f 69 6e 74 65 72 66 61 63 65 3e 0a 20 20 3c 69 6e 74 65 72 66 61 63 65 \"/>...</interface>...<interface
9f0a0 20 6e 61 6d 65 3d 5c 22 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 .name=\"org.mpris.MediaPlayer2.P
9f0c0 6c 61 79 65 72 5c 22 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 4e 65 78 74 layer\">.....<method.name=\"Next
9f0e0 5c 22 2f 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 50 72 65 76 69 6f 75 73 \"/>.....<method.name=\"Previous
9f100 5c 22 2f 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 50 61 75 73 65 5c 22 2f \"/>.....<method.name=\"Pause\"/
9f120 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 50 6c 61 79 50 61 75 73 65 5c 22 >.....<method.name=\"PlayPause\"
9f140 2f 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 53 74 6f 70 5c 22 2f 3e 0a 20 />.....<method.name=\"Stop\"/>..
9f160 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 50 6c 61 79 5c 22 2f 3e 0a 20 20 20 20 3c ...<method.name=\"Play\"/>.....<
9f180 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 53 65 65 6b 5c 22 3e 0a 20 20 20 20 20 20 3c 61 72 67 method.name=\"Seek\">.......<arg
9f1a0 20 74 79 70 65 3d 5c 22 78 5c 22 20 6e 61 6d 65 3d 5c 22 4f 66 66 73 65 74 5c 22 20 64 69 72 65 .type=\"x\".name=\"Offset\".dire
9f1c0 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 3c 2f 6d 65 74 68 6f 64 3e 0a 20 20 20 ction=\"in\"/>.....</method>....
9f1e0 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 53 65 74 50 6f 73 69 74 69 6f 6e 5c 22 3e 0a 20 .<method.name=\"SetPosition\">..
9f200 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 6f 5c 22 20 6e 61 6d 65 3d 5c 22 54 72 61 63 .....<arg.type=\"o\".name=\"Trac
9f220 6b 49 64 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 20 20 3c kId\".direction=\"in\"/>.......<
9f240 61 72 67 20 74 79 70 65 3d 5c 22 78 5c 22 20 6e 61 6d 65 3d 5c 22 50 6f 73 69 74 69 6f 6e 5c 22 arg.type=\"x\".name=\"Position\"
9f260 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 3c 2f 6d 65 74 68 6f 64 .direction=\"in\"/>.....</method
9f280 3e 0a 20 20 20 20 3c 6d 65 74 68 6f 64 20 6e 61 6d 65 3d 5c 22 4f 70 65 6e 55 72 69 5c 22 3e 0a >.....<method.name=\"OpenUri\">.
9f2a0 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 55 72 69 ......<arg.type=\"s\".name=\"Uri
9f2c0 5c 22 20 64 69 72 65 63 74 69 6f 6e 3d 5c 22 69 6e 5c 22 2f 3e 0a 20 20 20 20 3c 2f 6d 65 74 68 \".direction=\"in\"/>.....</meth
9f2e0 6f 64 3e 0a 20 20 20 20 3c 73 69 67 6e 61 6c 20 6e 61 6d 65 3d 5c 22 53 65 65 6b 65 64 5c 22 3e od>.....<signal.name=\"Seeked\">
9f300 0a 20 20 20 20 20 20 3c 61 72 67 20 74 79 70 65 3d 5c 22 78 5c 22 20 6e 61 6d 65 3d 5c 22 50 6f .......<arg.type=\"x\".name=\"Po
9f320 73 69 74 69 6f 6e 5c 22 2f 3e 0a 20 20 20 20 3c 2f 73 69 67 6e 61 6c 3e 0a 20 20 20 20 3c 70 72 sition\"/>.....</signal>.....<pr
9f340 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 50 6c 61 79 62 61 63 operty.type=\"s\".name=\"Playbac
9f360 6b 53 74 61 74 75 73 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 kStatus\".access=\"read\"/>.....
9f380 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 73 5c 22 20 6e 61 6d 65 3d 5c 22 4c 6f 6f 70 <property.type=\"s\".name=\"Loop
9f3a0 53 74 61 74 75 73 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 77 72 69 74 65 5c 22 2f 3e 0a Status\".access=\"readwrite\"/>.
9f3c0 20 20 20 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 64 5c 22 20 6e 61 6d 65 3d 5c 22 ....<property.type=\"d\".name=\"
9f3e0 52 61 74 65 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 77 72 69 74 65 5c 22 2f 3e 0a 20 20 Rate\".access=\"readwrite\"/>...
9f400 20 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 53 68 ..<property.type=\"b\".name=\"Sh
9f420 75 66 66 6c 65 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 77 72 69 74 65 5c 22 2f 3e 0a 20 uffle\".access=\"readwrite\"/>..
9f440 20 20 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 61 7b 73 76 7d 5c 22 20 6e 61 6d 65 ...<property.type=\"a{sv}\".name
9f460 3d 5c 22 4d 65 74 61 64 61 74 61 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a =\"Metadata\".access=\"read\"/>.
9f480 20 20 20 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 64 5c 22 20 6e 61 6d 65 3d 5c 22 ....<property.type=\"d\".name=\"
9f4a0 56 6f 6c 75 6d 65 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 77 72 69 74 65 5c 22 2f 3e 0a Volume\".access=\"readwrite\"/>.
9f4c0 20 20 20 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 78 5c 22 20 6e 61 6d 65 3d 5c 22 ....<property.type=\"x\".name=\"
9f4e0 50 6f 73 69 74 69 6f 6e 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 Position\".access=\"read\"/>....
9f500 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 64 5c 22 20 6e 61 6d 65 3d 5c 22 4d 69 6e .<property.type=\"d\".name=\"Min
9f520 69 6d 75 6d 52 61 74 65 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 imumRate\".access=\"read\"/>....
9f540 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 64 5c 22 20 6e 61 6d 65 3d 5c 22 4d 61 78 .<property.type=\"d\".name=\"Max
9f560 69 6d 75 6d 52 61 74 65 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 imumRate\".access=\"read\"/>....
9f580 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e .<property.type=\"b\".name=\"Can
9f5a0 47 6f 4e 65 78 74 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c GoNext\".access=\"read\"/>.....<
9f5c0 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e 47 6f property.type=\"b\".name=\"CanGo
9f5e0 50 72 65 76 69 6f 75 73 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 Previous\".access=\"read\"/>....
9f600 20 3c 70 72 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e .<property.type=\"b\".name=\"Can
9f620 50 6c 61 79 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 Play\".access=\"read\"/>.....<pr
9f640 6f 70 65 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e 50 61 75 73 operty.type=\"b\".name=\"CanPaus
9f660 65 5c 22 20 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f 70 65 e\".access=\"read\"/>.....<prope
9f680 72 74 79 20 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e 53 65 65 6b 5c 22 20 rty.type=\"b\".name=\"CanSeek\".
9f6a0 61 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 20 20 3c 70 72 6f 70 65 72 74 79 20 access=\"read\"/>.....<property.
9f6c0 74 79 70 65 3d 5c 22 62 5c 22 20 6e 61 6d 65 3d 5c 22 43 61 6e 43 6f 6e 74 72 6f 6c 5c 22 20 61 type=\"b\".name=\"CanControl\".a
9f6e0 63 63 65 73 73 3d 5c 22 72 65 61 64 5c 22 2f 3e 0a 20 20 3c 2f 69 6e 74 65 72 66 61 63 65 3e 0a ccess=\"read\"/>...</interface>.
9f700 3c 2f 6e 6f 64 65 3e 0a 22 0a 20 20 22 4d 70 72 69 73 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e </node>."..."Mpris.introspection
9f720 20 64 61 74 61 20 66 6f 72 20 65 6d 6d 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d .data.for.emms.")..(defun.emms-m
9f740 70 72 69 73 2d 69 6e 74 72 6f 73 70 65 63 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 64 62 75 pris-introspect.()..."Return.dbu
9f760 73 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e 20 64 61 74 61 2e 22 0a 20 20 65 6d 6d 73 2d 6d 70 s.introspection.data."...emms-mp
9f780 72 69 73 2d 78 6d 6c 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 6e 74 ris-xml)..(defvar.emms-mpris-int
9f7a0 72 6f 73 70 65 63 74 61 62 6c 65 2d 69 66 61 63 65 2d 73 70 65 63 0a 20 20 27 28 22 6f 72 67 2e rospectable-iface-spec...'("org.
9f7c0 66 72 65 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 2e 49 6e 74 72 6f 73 70 65 63 74 61 62 6c 65 22 freedesktop.DBus.Introspectable"
9f7e0 0a 20 20 20 20 28 28 22 49 6e 74 72 6f 73 70 65 63 74 22 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 .....(("Introspect".emms-mpris-i
9f800 6e 74 72 6f 73 70 65 63 74 29 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 22 49 6e 74 72 6f 73 70 65 ntrospect)).....nil)..."Introspe
9f820 63 74 61 62 6c 65 20 69 6e 74 65 72 66 61 63 65 20 73 70 65 63 20 66 6f 72 20 64 62 75 73 2e 22 ctable.interface.spec.for.dbus."
9f840 29 0a 0a 3b 3b 2a 2a 20 50 72 6f 70 65 72 74 69 65 73 20 69 6e 74 65 72 66 61 63 65 0a 0a 3b 3b )..;;**.Properties.interface..;;
9f860 20 57 65 20 72 65 2d 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22 47 65 74 22 20 61 6e 64 20 22 .We.re-implement.the."Get".and."
9f880 47 65 74 41 6c 6c 22 20 6d 65 74 68 6f 64 73 20 6f 66 20 74 68 65 0a 3b 3b 20 64 62 75 73 2e 70 GetAll".methods.of.the.;;.dbus.p
9f8a0 72 6f 70 65 72 74 69 65 73 20 69 6e 74 65 72 66 61 63 65 2e 20 20 46 6f 72 20 77 68 79 3f 20 20 roperties.interface...For.why?..
9f8c0 57 65 6c 6c 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 68 61 6e 64 6c 65 72 0a 3b 3b 20 6c 6f 6f Well,.the.default.handler.;;.loo
9f8e0 6b 73 20 75 70 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 70 72 6f 70 65 72 74 79 20 69 6e ks.up.the.value.of.a.property.in
9f900 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 77 68 69 63 68 20 77 6f 72 6b 73 20 66 69 6e 65 0a 3b .a.hash.table.which.works.fine.;
9f920 3b 20 75 6e 6c 65 73 73 20 77 65 20 77 61 6e 74 20 74 68 65 20 22 50 6f 73 69 74 69 6f 6e 22 20 ;.unless.we.want.the."Position".
9f940 70 72 6f 70 65 72 74 79 20 6f 66 20 74 68 65 20 50 6c 61 79 65 72 20 69 6e 74 65 72 66 61 63 65 property.of.the.Player.interface
9f960 0a 3b 3b 20 77 68 69 63 68 20 63 68 61 6e 67 65 73 20 61 6c 6c 20 74 68 65 20 74 69 6d 65 20 28 .;;.which.changes.all.the.time.(
9f980 61 6e 64 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 20 and.we.don't.want.to.update.the.
9f9a0 74 61 62 6c 65 0a 3b 3b 20 65 76 65 72 79 20 73 65 63 6f 6e 64 21 29 2e 20 20 53 6f 20 77 65 20 table.;;.every.second!)...So.we.
9f9c0 77 72 61 70 20 74 68 65 20 64 65 66 61 75 6c 74 20 68 61 6e 64 6c 65 72 20 74 6f 20 75 70 64 61 wrap.the.default.handler.to.upda
9f9e0 74 65 20 74 68 65 0a 3b 3b 20 50 6f 73 69 74 69 6f 6e 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 te.the.;;.Position.entry.in.the.
9fa00 74 61 62 6c 65 20 62 65 66 6f 72 65 20 64 65 6c 65 67 61 74 69 6e 67 20 74 6f 20 74 68 65 20 64 table.before.delegating.to.the.d
9fa20 65 66 61 75 6c 74 0a 3b 3b 20 68 61 6e 64 6c 65 72 2e 20 20 54 68 69 73 20 69 73 20 61 20 62 69 efault.;;.handler...This.is.a.bi
9fa40 74 20 6f 66 20 61 20 68 61 63 6b 20 69 6e 20 74 68 61 74 20 77 65 20 67 6f 20 72 61 74 68 65 72 t.of.a.hack.in.that.we.go.rather
9fa60 20 62 65 79 6f 6e 64 20 74 68 65 0a 3b 3b 20 41 50 49 20 6f 66 20 64 62 75 73 2e 65 6c 20 61 6e .beyond.the.;;.API.of.dbus.el.an
9fa80 64 20 68 6f 70 65 20 74 68 61 74 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 73 20 64 6f 20 6e 6f 74 d.hope.that.the.internals.do.not
9faa0 20 63 68 61 6e 67 65 2e 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 75 70 64 61 .change...(defun.emms-mpris-upda
9fac0 74 65 2d 70 6f 73 69 74 69 6f 6e 2d 68 61 73 68 2d 76 61 6c 75 65 20 28 29 0a 20 20 22 55 70 64 te-position-hash-value.()..."Upd
9fae0 61 74 65 20 74 68 65 20 44 2d 42 75 73 20 68 61 73 68 2d 74 61 62 6c 65 2e 0a 0a 52 65 66 72 65 ate.the.D-Bus.hash-table...Refre
9fb00 73 68 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 68 61 73 68 2d 74 61 62 6c 65 20 63 sh.the.value.in.the.hash-table.c
9fb20 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 50 6f 73 69 74 69 6f 6e 0a 70 72 6f orresponding.to.the.Position.pro
9fb40 70 65 72 74 79 20 6f 66 20 74 68 65 20 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 perty.of.the.org.mpris.MediaPlay
9fb60 65 72 32 2e 50 6c 61 79 65 72 20 69 6e 74 65 72 66 61 63 65 2e 22 0a 20 20 28 70 75 74 68 61 73 er2.Player.interface."...(puthas
9fb80 68 20 28 6c 69 73 74 20 3a 70 72 6f 70 65 72 74 79 20 3a 73 65 73 73 69 6f 6e 20 22 6f 72 67 2e h.(list.:property.:session."org.
9fba0 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 72 22 20 22 50 6f 73 69 mpris.MediaPlayer2.Player"."Posi
9fbc0 74 69 6f 6e 22 29 0a 09 20 20 20 28 6c 69 73 74 20 28 6c 69 73 74 20 6e 69 6c 0a 09 09 20 20 20 tion").....(list.(list.nil......
9fbe0 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 0a 09 09 20 20 20 20 20 20 20 ....emms-mpris-service..........
9fc00 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a emms-mpris-path..........(list.:
9fc20 72 65 61 64 20 6e 69 6c 20 28 6c 69 73 74 20 3a 76 61 72 69 61 6e 74 20 3a 69 6e 74 36 34 20 28 read.nil.(list.:variant.:int64.(
9fc40 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 63 2d 74 6f 2d 6d 75 73 65 63 20 65 6d 6d 73 2d 70 6c 61 emms-mpris-sec-to-musec.emms-pla
9fc60 79 69 6e 67 2d 74 69 6d 65 29 29 29 29 29 0a 09 20 20 20 64 62 75 73 2d 72 65 67 69 73 74 65 72 ying-time))))).....dbus-register
9fc80 65 64 2d 6f 62 6a 65 63 74 73 2d 74 61 62 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ed-objects-table))..(defun.emms-
9fca0 6d 70 72 69 73 2d 67 65 74 2d 70 72 6f 70 65 72 74 79 2d 68 61 6e 64 6c 65 72 20 28 26 72 65 73 mpris-get-property-handler.(&res
9fcc0 74 20 61 72 67 73 29 0a 20 20 22 48 61 6e 64 6c 65 20 47 65 74 20 61 6e 64 20 47 65 74 41 6c 6c t.args)..."Handle.Get.and.GetAll
9fce0 20 65 76 65 6e 74 20 66 6f 72 20 70 72 6f 70 65 72 74 79 20 69 6e 20 41 52 47 53 2e 0a 0a 54 68 .event.for.property.in.ARGS...Th
9fd00 65 20 50 6f 73 69 74 69 6f 6e 20 70 72 6f 70 65 72 74 79 20 67 65 74 73 20 72 65 66 72 65 73 68 e.Position.property.gets.refresh
9fd20 65 64 20 62 65 66 6f 72 65 20 64 65 6c 65 67 61 74 69 6e 67 0a 74 6f 20 60 64 62 75 73 2d 70 72 ed.before.delegating.to.`dbus-pr
9fd40 6f 70 65 72 74 79 2d 68 61 6e 64 6c 65 72 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 61 73 74 operty-handler'."...(let*.((last
9fd60 2d 69 6e 70 75 74 2d 65 76 65 6e 74 20 6c 61 73 74 2d 69 6e 70 75 74 2d 65 76 65 6e 74 29 29 0a -input-event.last-input-event)).
9fd80 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 75 70 64 61 74 65 2d 70 6f 73 69 74 69 6f 6e 2d ....(emms-mpris-update-position-
9fda0 68 61 73 68 2d 76 61 6c 75 65 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 64 62 75 73 2d 70 72 hash-value).....(apply.#'dbus-pr
9fdc0 6f 70 65 72 74 79 2d 68 61 6e 64 6c 65 72 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 operty-handler.args)))..(defvar.
9fde0 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 72 6f 70 65 72 74 69 65 73 2d 69 66 61 63 65 2d 73 70 65 63 emms-mpris-properties-iface-spec
9fe00 0a 20 20 27 28 22 6f 72 67 2e 66 72 65 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 2e 50 72 6f 70 65 ...'("org.freedesktop.DBus.Prope
9fe20 72 74 69 65 73 22 0a 20 20 20 20 28 28 22 47 65 74 22 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 67 65 rties".....(("Get".emms-mpris-ge
9fe40 74 2d 70 72 6f 70 65 72 74 79 2d 68 61 6e 64 6c 65 72 29 0a 20 20 20 20 20 28 22 47 65 74 41 6c t-property-handler)......("GetAl
9fe60 6c 22 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 67 65 74 2d 70 72 6f 70 65 72 74 79 2d 68 61 6e 64 6c l".emms-mpris-get-property-handl
9fe80 65 72 29 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 22 50 61 72 74 69 61 6c 20 50 72 6f 70 65 72 74 er)).....nil)..."Partial.Propert
9fea0 69 65 73 20 69 6e 74 65 72 66 61 63 65 20 73 70 65 63 20 66 6f 72 20 64 62 75 73 2e 22 29 0a 0a ies.interface.spec.for.dbus.")..
9fec0 0c 0a 3b 3b 2a 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 3b 3b 2a 2a 20 55 74 69 6c 69 ..;;*.Implementation..;;**.Utili
9fee0 74 69 65 73 0a 3b 3b 20 45 6d 6d 73 20 74 68 69 6e 6b 73 20 69 6e 20 73 65 63 6f 6e 64 73 20 62 ties.;;.Emms.thinks.in.seconds.b
9ff00 75 74 20 6d 70 72 69 73 20 69 6e 20 6d 69 63 72 6f 73 65 63 6f 6e 64 73 0a 28 64 65 66 75 6e 20 ut.mpris.in.microseconds.(defun.
9ff20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6d 75 73 65 63 2d 74 6f 2d 73 65 63 20 28 6d 73 29 0a 20 20 22 emms-mpris-musec-to-sec.(ms)..."
9ff40 43 6f 6e 76 65 72 74 20 4d 53 20 6d 69 63 72 6f 73 65 63 6f 6e 64 73 20 74 6f 20 73 65 63 6f 6e Convert.MS.microseconds.to.secon
9ff60 64 73 2e 22 0a 20 20 28 2a 20 6d 73 20 2e 30 30 30 30 30 31 29 29 0a 0a 28 64 65 66 75 6e 20 65 ds."...(*.ms..000001))..(defun.e
9ff80 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 63 2d 74 6f 2d 6d 75 73 65 63 20 28 73 29 0a 20 20 22 43 6f mms-mpris-sec-to-musec.(s)..."Co
9ffa0 6e 76 65 72 74 20 53 20 73 65 63 6f 6e 64 73 20 74 6f 20 6d 69 63 72 6f 73 65 63 6f 6e 64 73 2e nvert.S.seconds.to.microseconds.
9ffc0 22 0a 20 20 28 74 72 75 6e 63 61 74 65 20 28 2a 20 73 20 31 30 30 30 30 30 30 29 29 29 0a 0a 3b "...(truncate.(*.s.1000000)))..;
9ffe0 3b 20 54 72 61 63 6b 2d 69 64 20 69 73 20 61 20 64 2d 62 75 73 20 6f 62 6a 65 63 74 20 69 64 20 ;.Track-id.is.a.d-bus.object.id.
a0000 61 6e 64 20 74 68 65 73 65 20 68 61 76 65 20 72 75 6c 65 73 2e 2e 2e 0a 28 64 65 66 75 6e 20 65 and.these.have.rules....(defun.e
a0020 6d 6d 73 2d 6d 70 72 69 73 2d 74 72 61 63 6b 2d 69 64 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 mms-mpris-track-id.(track)..."Re
a0040 74 75 72 6e 20 74 72 61 63 6b 2d 69 64 20 6f 66 20 54 52 41 43 4b 20 61 73 20 44 2d 42 75 73 20 turn.track-id.of.TRACK.as.D-Bus.
a0060 6f 62 6a 65 63 74 20 69 64 2e 22 0a 20 20 3b 3b 20 46 49 58 20 4d 45 3a 20 74 68 69 73 20 77 6f object.id."...;;.FIX.ME:.this.wo
a0080 6e 27 74 20 77 6f 72 6b 20 69 66 20 77 65 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 72 61 n't.work.if.we.implement.the.tra
a00a0 63 6b 6c 69 73 74 20 69 6e 74 65 72 66 61 63 65 0a 20 20 3b 3b 20 61 6e 64 20 74 68 65 20 74 72 cklist.interface...;;.and.the.tr
a00c0 61 63 6b 6c 69 73 74 20 68 61 73 20 72 65 70 65 61 74 65 64 20 74 72 61 63 6b 73 2e 0a 20 20 28 acklist.has.repeated.tracks....(
a00e0 63 6f 6e 63 61 74 20 22 2f 22 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 64 62 75 73 2d 65 73 63 concat."/".(mapconcat.#'dbus-esc
a0100 61 70 65 2d 61 73 2d 69 64 65 6e 74 69 66 69 65 72 0a 09 09 09 20 28 73 70 6c 69 74 2d 73 74 72 ape-as-identifier.....(split-str
a0120 69 6e 67 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 ing.(emms-track-get.track.'name)
a0140 20 22 2f 22 20 74 29 0a 09 09 09 20 22 2f 22 29 29 29 0a 0a 3b 3b 2a 2a 20 55 70 64 61 74 65 20 ."/".t)....."/")))..;;**.Update.
a0160 70 72 6f 70 65 72 74 69 65 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 75 70 64 properties.(defun.emms-mpris-upd
a0180 61 74 65 2d 70 72 6f 70 65 72 74 79 20 28 69 66 61 63 65 20 70 72 6f 70 65 72 74 79 20 61 63 63 ate-property.(iface.property.acc
a01a0 65 73 73 20 76 61 6c 75 65 29 0a 20 20 22 55 70 64 61 74 65 20 50 52 4f 50 45 52 54 59 20 6f 6e ess.value)..."Update.PROPERTY.on
a01c0 20 69 6e 74 65 72 66 61 63 65 20 49 46 41 43 45 20 74 6f 20 56 41 4c 55 45 2e 22 0a 20 20 28 64 .interface.IFACE.to.VALUE."...(d
a01e0 62 75 73 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 70 65 72 74 79 20 3a 73 65 73 73 69 6f 6e 0a 09 bus-register-property.:session..
a0200 09 09 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 0a 09 09 09 20 20 65 6d 6d 73 ....emms-mpris-service......emms
a0220 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 09 20 20 69 66 61 63 65 0a 09 09 09 20 20 70 72 6f 70 -mpris-path......iface......prop
a0240 65 72 74 79 0a 09 09 09 20 20 61 63 63 65 73 73 0a 09 09 09 20 20 76 61 6c 75 65 0a 09 09 09 20 erty......access......value.....
a0260 20 74 20 6e 69 6c 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 67 6e .t.nil))..(defvar.emms-mpris-ign
a0280 6f 72 65 2d 73 69 67 6e 61 6c 2d 70 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 77 ore-signal-p.nil..."Non-nil.if.w
a02a0 65 20 73 68 6f 75 6c 64 20 69 67 6e 6f 72 65 20 61 20 50 72 6f 70 65 72 74 69 65 73 43 68 61 6e e.should.ignore.a.PropertiesChan
a02c0 67 65 64 20 73 69 67 6e 61 6c 2e 0a 0a 57 65 20 64 6f 20 74 68 69 73 20 77 68 65 6e 20 77 65 20 ged.signal...We.do.this.when.we.
a02e0 68 61 76 65 20 61 6c 72 65 61 64 79 20 74 61 6b 65 6e 20 61 63 74 69 6f 6e 20 76 69 61 20 74 68 have.already.taken.action.via.th
a0300 65 20 45 4d 4d 53 20 55 49 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d e.EMMS.UI.")..(defun.emms-mpris-
a0320 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 2d 68 61 6e 64 6c 65 72 20 28 5f 73 65 72 76 69 63 property-change-handler.(_servic
a0340 65 20 63 68 61 6e 67 65 73 20 5f 69 6e 76 61 6c 69 64 61 74 65 64 29 0a 20 20 22 52 65 73 70 6f e.changes._invalidated)..."Respo
a0360 6e 64 20 74 6f 20 50 72 6f 70 65 72 74 69 65 73 43 68 61 6e 67 65 64 20 73 69 67 6e 61 6c 20 62 nd.to.PropertiesChanged.signal.b
a0380 79 20 75 70 64 61 74 69 6e 67 20 65 6d 6d 73 20 73 74 61 74 65 20 74 6f 20 72 65 66 6c 65 63 74 y.updating.emms.state.to.reflect
a03a0 20 43 48 41 4e 47 45 53 2e 22 0a 20 20 28 69 66 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 67 6e 6f .CHANGES."...(if.emms-mpris-igno
a03c0 72 65 2d 73 69 67 6e 61 6c 2d 70 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6d 70 72 re-signal-p.......(setq.emms-mpr
a03e0 69 73 2d 69 67 6e 6f 72 65 2d 73 69 67 6e 61 6c 2d 70 20 6e 69 6c 29 0a 20 20 20 20 28 77 68 65 is-ignore-signal-p.nil).....(whe
a0400 6e 2d 6c 65 74 20 28 28 70 61 79 6c 6f 61 64 20 28 61 73 73 6f 63 20 22 4c 6f 6f 70 53 74 61 74 n-let.((payload.(assoc."LoopStat
a0420 75 73 22 20 63 68 61 6e 67 65 73 29 29 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 28 63 61 61 us".changes))).......(pcase.(caa
a0440 64 72 20 70 61 79 6c 6f 61 64 29 0a 09 28 22 54 72 61 63 6b 22 20 28 73 65 74 71 20 65 6d 6d 73 dr.payload)..("Track".(setq.emms
a0460 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 6e 69 6c 0a 09 09 20 20 20 20 20 20 20 65 6d -repeat-playlist.nil..........em
a0480 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 74 29 29 0a 09 28 22 50 6c 61 79 6c 69 73 74 22 ms-repeat-track.t))..("Playlist"
a04a0 20 28 73 65 74 71 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 74 0a 09 09 .(setq.emms-repeat-playlist.t...
a04c0 09 20 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 6e 69 6c 29 29 0a 09 28 5f 20 28 ...emms-repeat-track.nil))..(_.(
a04e0 73 65 74 71 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 6e 69 6c 0a 09 09 setq.emms-repeat-playlist.nil...
a0500 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 .emms-repeat-track.nil)))).....(
a0520 77 68 65 6e 2d 6c 65 74 20 28 28 70 61 79 6c 6f 61 64 20 28 61 73 73 6f 63 20 22 53 68 75 66 66 when-let.((payload.(assoc."Shuff
a0540 6c 65 22 20 63 68 61 6e 67 65 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d le".changes))).......(setq.emms-
a0560 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 20 28 63 61 61 64 72 20 70 61 79 6c 6f 61 64 29 29 random-playlist.(caadr.payload))
a0580 0a 20 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 0a .......(if.emms-random-playlist.
a05a0 09 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 ...(setq.emms-player-next-functi
a05c0 6f 6e 20 23 27 65 6d 6d 73 2d 72 61 6e 64 6f 6d 29 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c on.#'emms-random)..(setq.emms-pl
a05e0 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 6e 65 78 74 2d 6e ayer-next-function.#'emms-next-n
a0600 6f 65 72 72 6f 72 29 29 29 29 29 0a 0a 3b 3b 2a 2a 2a 20 50 6c 61 79 62 61 63 6b 20 73 74 61 74 oerror)))))..;;***.Playback.stat
a0620 75 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 74 61 74 75 73 20 28 29 0a 20 us.(defun.emms-mpris-status.()..
a0640 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 6c 61 79 62 61 63 6b 20 73 74 61 74 75 73 20 6f 66 20 ."Return.the.playback.status.of.
a0660 45 4d 4d 53 20 61 73 20 73 74 72 69 6e 67 3a 20 50 6c 61 79 69 6e 67 2c 20 50 61 75 73 65 64 20 EMMS.as.string:.Playing,.Paused.
a0680 6f 72 20 53 74 6f 70 70 65 64 2e 22 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 or.Stopped."...(if.emms-player-p
a06a0 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 laying-p.......(if.emms-player-p
a06c0 61 75 73 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 22 50 61 75 73 65 64 22 20 22 50 6c 61 79 aused-p..........."Paused"."Play
a06e0 69 6e 67 22 29 0a 20 20 20 20 22 53 74 6f 70 70 65 64 22 29 29 0a 0a 3b 3b 2a 2a 2a 20 4c 6f 6f ing")....."Stopped"))..;;***.Loo
a0700 70 20 73 74 61 74 75 73 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6c 6f 6f 70 2d p.status.(defun.emms-mpris-loop-
a0720 73 74 61 74 75 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 6f 6f 70 20 73 74 61 status.()..."Return.the.loop.sta
a0740 74 75 73 20 6f 66 20 45 4d 4d 53 20 61 73 20 61 20 73 74 72 69 6e 67 3a 20 54 72 61 63 6b 2c 20 tus.of.EMMS.as.a.string:.Track,.
a0760 50 6c 61 79 6c 69 73 74 20 6f 72 20 4e 6f 6e 65 2e 22 0a 20 20 28 63 6f 6e 64 20 28 65 6d 6d 73 Playlist.or.None."...(cond.(emms
a0780 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 22 54 72 61 63 6b 22 29 0a 09 28 65 6d 6d 73 2d 72 65 -repeat-track."Track")..(emms-re
a07a0 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 22 50 6c 61 79 6c 69 73 74 22 29 0a 09 28 74 20 22 4e peat-playlist."Playlist")..(t."N
a07c0 6f 6e 65 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 61 64 76 69 73 one")))..(defun.emms-mpris-advis
a07e0 65 2d 6c 6f 6f 70 2d 73 74 61 74 75 73 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 64 62 75 73 20 e-loop-status.()..."Update.dbus.
a0800 76 61 6c 75 65 20 6f 66 20 4c 6f 6f 70 53 74 61 74 75 73 2e 0a 0a 49 6e 74 65 6e 64 65 64 20 74 value.of.LoopStatus...Intended.t
a0820 6f 20 61 64 76 69 73 65 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 2a 2e 22 0a o.advise.emms-toggle-repeat-*.".
a0840 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 67 6e 6f 72 65 2d 73 69 67 6e 61 6c ..(setq.emms-mpris-ignore-signal
a0860 2d 70 20 74 29 0a 20 20 28 64 62 75 73 2d 73 65 74 2d 70 72 6f 70 65 72 74 79 20 3a 73 65 73 73 -p.t)...(dbus-set-property.:sess
a0880 69 6f 6e 0a 09 09 20 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 0a 09 09 ion........emms-mpris-service...
a08a0 20 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 20 20 20 20 20 22 6f 72 67 .....emms-mpris-path........"org
a08c0 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 72 22 0a 09 09 20 20 .mpris.MediaPlayer2.Player".....
a08e0 20 20 20 22 4c 6f 6f 70 53 74 61 74 75 73 22 0a 09 09 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 ..."LoopStatus"........(emms-mpr
a0900 69 73 2d 6c 6f 6f 70 2d 73 74 61 74 75 73 29 29 29 0a 0a 3b 3b 2a 2a 2a 20 53 68 75 66 66 6c 65 is-loop-status)))..;;***.Shuffle
a0920 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 61 64 76 69 73 65 2d 73 68 75 66 66 6c .(defun.emms-mpris-advise-shuffl
a0940 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 64 62 75 73 20 76 61 6c 75 65 20 6f 66 20 53 68 75 e.()..."Update.dbus.value.of.Shu
a0960 66 66 6c 65 2e 0a 0a 49 6e 74 65 6e 64 65 64 20 74 6f 20 61 64 76 69 73 65 20 60 65 6d 6d 73 2d ffle...Intended.to.advise.`emms-
a0980 74 6f 67 67 6c 65 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 27 2e 22 0a 20 20 28 73 65 74 toggle-random-playlist'."...(set
a09a0 71 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 67 6e 6f 72 65 2d 73 69 67 6e 61 6c 2d 70 20 74 29 0a q.emms-mpris-ignore-signal-p.t).
a09c0 20 20 28 64 62 75 73 2d 73 65 74 2d 70 72 6f 70 65 72 74 79 20 3a 73 65 73 73 69 6f 6e 0a 09 09 ..(dbus-set-property.:session...
a09e0 20 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 0a 09 09 20 20 20 20 20 65 .....emms-mpris-service........e
a0a00 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 20 20 20 20 20 22 6f 72 67 2e 6d 70 72 69 73 mms-mpris-path........"org.mpris
a0a20 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 72 22 0a 09 09 20 20 20 20 20 22 53 68 .MediaPlayer2.Player"........"Sh
a0a40 75 66 66 6c 65 22 0a 09 09 20 20 20 20 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 uffle"........emms-random-playli
a0a60 73 74 29 29 0a 0a 3b 3b 2a 2a 2a 20 4d 65 74 61 64 61 74 61 0a 0a 28 64 65 66 76 61 72 20 65 6d st))..;;***.Metadata..(defvar.em
a0a80 6d 73 2d 6d 70 72 69 73 2d 6d 65 74 61 64 61 74 61 2d 64 69 63 74 0a 20 20 27 28 28 69 6e 66 6f ms-mpris-metadata-dict...'((info
a0aa0 2d 61 6c 62 75 6d 20 22 78 65 73 61 6d 3a 61 6c 62 75 6d 22 20 3a 73 29 0a 20 20 20 20 28 69 6e -album."xesam:album".:s).....(in
a0ac0 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 22 78 65 73 61 6d 3a 61 6c 62 75 6d 41 72 74 69 73 fo-albumartist."xesam:albumArtis
a0ae0 74 22 20 3a 61 73 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 22 78 65 73 61 6d 3a t".:as).....(info-artist."xesam:
a0b00 61 72 74 69 73 74 22 20 3a 61 73 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 artist".:as).....(info-composer.
a0b20 22 78 65 73 61 6d 3a 63 6f 6d 70 6f 73 65 72 22 20 3a 61 73 29 0a 20 20 20 20 28 69 6e 66 6f 2d "xesam:composer".:as).....(info-
a0b40 64 69 73 63 6e 75 6d 62 65 72 20 22 78 65 73 61 6d 3a 64 69 73 63 4e 75 6d 62 65 72 22 20 3a 69 discnumber."xesam:discNumber".:i
a0b60 6e 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 20 22 78 65 73 61 6d nt).....(info-tracknumber."xesam
a0b80 3a 74 72 61 63 6b 4e 75 6d 62 65 72 22 20 3a 69 6e 74 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 69 :trackNumber".:int).....(info-ti
a0ba0 74 6c 65 20 22 78 65 73 61 6d 3a 74 69 74 6c 65 22 20 3a 73 29 0a 20 20 20 20 28 70 6c 61 79 2d tle."xesam:title".:s).....(play-
a0bc0 63 6f 75 6e 74 20 22 78 65 73 61 6d 3a 75 73 65 43 6f 75 6e 74 22 20 3a 69 6e 74 29 29 0a 20 20 count."xesam:useCount".:int))...
a0be0 22 44 69 63 74 69 6f 6e 61 72 79 20 62 65 74 77 65 65 6e 20 65 6d 6d 73 20 6d 65 74 61 64 61 74 "Dictionary.between.emms.metadat
a0c00 61 20 61 6e 64 20 6d 70 72 69 73 20 6d 65 74 61 64 61 74 61 2e 0a 0a 45 61 63 68 20 65 6e 74 72 a.and.mpris.metadata...Each.entr
a0c20 79 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 69 6e 66 6f 2d 66 69 65 6c 64 20 6d 70 72 69 73 2d y.of.the.form.(info-field.mpris-
a0c40 66 69 65 6c 64 20 64 62 75 73 2d 74 79 70 65 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 field.dbus-type).")..(defun.emms
a0c60 2d 6d 70 72 69 73 2d 64 69 63 74 20 28 6b 20 76 20 26 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 29 -mpris-dict.(k.v.&optional.type)
a0c80 0a 20 20 22 52 65 74 75 72 6e 20 61 20 64 62 75 73 20 64 69 63 74 2d 65 6e 74 72 79 20 77 69 74 ..."Return.a.dbus.dict-entry.wit
a0ca0 68 20 6b 65 79 20 4b 20 61 6e 64 20 76 61 6c 75 65 20 56 2c 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 h.key.K.and.value.V,.optionally.
a0cc0 6f 66 20 74 79 70 65 20 54 59 50 45 2e 22 0a 20 20 28 69 66 20 74 79 70 65 0a 20 20 20 20 20 20 of.type.TYPE."...(if.type.......
a0ce0 28 6c 69 73 74 20 3a 64 69 63 74 2d 65 6e 74 72 79 20 6b 20 28 6c 69 73 74 20 3a 76 61 72 69 61 (list.:dict-entry.k.(list.:varia
a0d00 6e 74 20 74 79 70 65 20 76 29 29 0a 20 20 20 20 28 6c 69 73 74 20 3a 64 69 63 74 2d 65 6e 74 72 nt.type.v)).....(list.:dict-entr
a0d20 79 20 6b 20 28 6c 69 73 74 20 3a 76 61 72 69 61 6e 74 20 76 29 29 29 29 0a 0a 28 64 65 66 75 6e y.k.(list.:variant.v))))..(defun
a0d40 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 6f 6e 76 65 72 74 2d 66 69 65 6c 64 20 28 74 72 61 63 6b .emms-mpris-convert-field.(track
a0d60 20 69 6e 66 6f 20 6b 65 79 20 74 79 70 65 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 66 69 65 6c 64 .info.key.type)..."Convert.field
a0d80 20 49 4e 46 4f 20 6f 66 20 54 52 41 43 4b 20 69 6e 74 6f 20 64 62 75 73 20 64 69 63 74 2d 65 6e .INFO.of.TRACK.into.dbus.dict-en
a0da0 74 72 79 20 77 69 74 68 20 6b 65 79 20 4b 45 59 20 61 6e 64 20 74 79 70 65 20 54 59 50 45 2e 22 try.with.key.KEY.and.type.TYPE."
a0dc0 0a 20 20 28 6c 65 74 20 28 28 64 61 74 61 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 ...(let.((data.(emms-track-get.t
a0de0 72 61 63 6b 20 69 6e 66 6f 29 29 0a 09 76 61 6c 75 65 29 0a 20 20 20 20 28 77 68 65 6e 20 64 61 rack.info))..value).....(when.da
a0e00 74 61 0a 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 75 65 20 28 70 63 61 73 65 20 74 79 70 65 ta.......(setq.value.(pcase.type
a0e20 0a 09 09 20 20 20 20 28 3a 61 73 20 28 6c 69 73 74 20 3a 61 72 72 61 79 20 64 61 74 61 29 29 0a .......(:as.(list.:array.data)).
a0e40 09 09 20 20 20 20 28 3a 69 6e 74 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 64 61 74 61 29 20 28 ......(:int.(if.(stringp.data).(
a0e60 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 74 61 29 20 64 61 74 61 29 29 0a 09 09 string-to-number.data).data))...
a0e80 20 20 20 20 28 3a 73 20 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 ....(:s.data))).......(emms-mpri
a0ea0 73 2d 64 69 63 74 20 6b 65 79 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d s-dict.key.value))))..(defun.emm
a0ec0 73 2d 6d 70 72 69 73 2d 6d 65 74 61 64 61 74 61 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 s-mpris-metadata.(track)..."Retu
a0ee0 72 6e 20 6d 70 72 69 73 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 54 52 41 43 4b 2e 22 0a 20 20 rn.mpris.metadata.for.TRACK."...
a0f00 28 6c 65 74 20 28 28 74 72 61 63 6b 2d 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 (let.((track-name.(emms-track-ge
a0f20 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 09 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 3b t.track.'name))..metadata).....;
a0f40 3b 20 73 74 61 6e 64 61 72 64 20 66 69 65 6c 64 73 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 ;.standard.fields.....(dolist.(f
a0f60 69 65 6c 64 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6d 65 74 61 64 61 74 61 2d 64 69 63 74 29 0a 20 ield.emms-mpris-metadata-dict)..
a0f80 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 6e 74 72 79 20 28 61 70 70 6c 79 20 23 27 .....(when-let.((entry.(apply.#'
a0fa0 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 6f 6e 76 65 72 74 2d 66 69 65 6c 64 20 74 72 61 63 6b 20 66 emms-mpris-convert-field.track.f
a0fc0 69 65 6c 64 29 29 29 0a 09 28 70 75 73 68 20 65 6e 74 72 79 20 6d 65 74 61 64 61 74 61 29 29 29 ield)))..(push.entry.metadata)))
a0fe0 0a 20 20 20 20 3b 3b 20 75 72 6c 0a 20 20 20 20 28 70 75 73 68 20 28 65 6d 6d 73 2d 6d 70 72 69 .....;;.url.....(push.(emms-mpri
a1000 73 2d 64 69 63 74 20 22 78 65 73 61 6d 3a 75 72 6c 22 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 s-dict."xesam:url".(url-encode-u
a1020 72 6c 20 28 63 6f 6e 63 61 74 20 22 66 69 6c 65 3a 22 20 74 72 61 63 6b 2d 6e 61 6d 65 29 29 29 rl.(concat."file:".track-name)))
a1040 20 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 3b 3b 20 61 72 74 55 72 6c 0a 20 20 20 20 3b 3b 20 .metadata).....;;.artUrl.....;;.
a1060 53 68 6f 63 6b 69 6e 67 6c 79 2c 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 Shockingly,.emms-browser-get-cov
a1080 65 72 2d 66 72 6f 6d 2d 70 61 74 68 20 6e 65 65 64 73 20 61 20 67 72 61 70 68 69 63 61 6c 20 64 er-from-path.needs.a.graphical.d
a10a0 69 73 70 6c 61 79 20 74 6f 0a 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 28 69 74 20 65 76 isplay.to.....;;.function.(it.ev
a10c0 65 6e 74 75 61 6c 6c 79 20 63 61 6c 6c 73 20 69 6d 61 67 65 2d 73 69 7a 65 29 20 73 6f 20 77 65 entually.calls.image-size).so.we
a10e0 20 63 68 65 63 6b 20 74 68 65 72 65 20 69 73 20 6f 6e 65 2e 2e 2e 0a 20 20 20 20 28 77 68 65 6e .check.there.is.one........(when
a1100 20 28 73 65 71 2d 73 6f 6d 65 20 23 27 64 69 73 70 6c 61 79 2d 67 72 61 70 68 69 63 2d 70 20 28 .(seq-some.#'display-graphic-p.(
a1120 66 72 61 6d 65 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 61 frame-list)).......(when-let.((a
a1140 72 74 2d 66 69 6c 65 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 63 6f 76 65 72 2d rt-file.(emms-browser-get-cover-
a1160 66 72 6f 6d 2d 70 61 74 68 20 74 72 61 63 6b 2d 6e 61 6d 65 20 27 6d 65 64 69 75 6d 29 29 29 0a from-path.track-name.'medium))).
a1180 09 28 70 75 73 68 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 64 69 63 74 20 22 6d 70 72 69 73 3a 61 .(push.(emms-mpris-dict."mpris:a
a11a0 72 74 55 72 6c 22 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 22 rtUrl".(url-encode-url.(concat."
a11c0 66 69 6c 65 3a 2f 2f 22 20 61 72 74 2d 66 69 6c 65 29 29 29 20 6d 65 74 61 64 61 74 61 29 29 29 file://".art-file))).metadata)))
a11e0 0a 20 20 20 20 3b 3b 20 6c 65 6e 67 74 68 0a 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 28 65 .....;;.length.....(push......(e
a1200 6d 6d 73 2d 6d 70 72 69 73 2d 64 69 63 74 20 22 6d 70 72 69 73 3a 6c 65 6e 67 74 68 22 0a 09 09 mms-mpris-dict."mpris:length"...
a1220 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 63 2d 74 6f 2d 6d 75 73 65 63 20 28 ......(emms-mpris-sec-to-musec.(
a1240 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 emms-track-get.track.'info-playi
a1260 6e 67 2d 74 69 6d 65 20 30 29 29 0a 09 09 20 20 20 20 20 20 3a 69 6e 74 36 34 29 0a 20 20 20 20 ng-time.0)).........:int64).....
a1280 20 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 3b 3b 20 74 72 61 63 6b 69 64 0a 20 20 20 20 28 70 .metadata).....;;.trackid.....(p
a12a0 75 73 68 0a 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 64 69 63 74 20 22 6d 70 72 69 73 ush......(emms-mpris-dict."mpris
a12c0 3a 74 72 61 63 6b 69 64 22 0a 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 74 72 :trackid".........(emms-mpris-tr
a12e0 61 63 6b 2d 69 64 20 74 72 61 63 6b 29 0a 09 09 20 20 20 20 20 20 3a 6f 62 6a 65 63 74 2d 70 61 ack-id.track).........:object-pa
a1300 74 68 29 0a 20 20 20 20 20 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 28 63 6f 6e 73 20 3a 61 72 th)......metadata).....(cons.:ar
a1320 72 61 79 20 6d 65 74 61 64 61 74 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 ray.metadata)))..(defun.emms-mpr
a1340 69 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 64 61 74 61 20 28 29 0a 20 20 22 52 65 74 75 72 6e is-current-metadata.()..."Return
a1360 20 6d 65 74 61 64 61 74 61 20 6f 66 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 69 66 20 69 74 .metadata.of.current.track.if.it
a1380 20 65 78 69 73 74 73 2c 20 65 6c 73 65 20 72 65 74 75 72 6e 20 61 20 70 6c 61 63 65 68 6f 6c 64 .exists,.else.return.a.placehold
a13a0 65 72 2e 22 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 er."...(if-let.((track.(emms-pla
a13c0 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 0a ylist-current-selected-track))).
a13e0 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 6d 65 74 61 64 61 74 61 20 74 72 61 63 6b ......(emms-mpris-metadata.track
a1400 29 0a 20 20 20 20 27 28 3a 61 72 72 61 79 20 28 3a 64 69 63 74 2d 65 6e 74 72 79 20 22 6d 70 72 ).....'(:array.(:dict-entry."mpr
a1420 69 73 3a 74 72 61 63 6b 69 64 22 20 28 3a 76 61 72 69 61 6e 74 20 3a 6f 62 6a 65 63 74 2d 70 61 is:trackid".(:variant.:object-pa
a1440 74 68 20 22 2f 6e 6f 2f 74 72 61 63 6b 2f 68 65 72 65 22 29 29 29 29 29 0a 0a 3b 3b 2a 2a 2a 20 th."/no/track/here")))))..;;***.
a1460 75 70 64 61 74 65 20 74 68 65 6d 21 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 update.them!.(defun.emms-mpris-c
a1480 68 61 6e 67 65 2d 73 74 61 74 75 73 20 28 29 0a 20 20 22 4e 6f 74 69 66 79 20 65 6d 6d 73 20 73 hange-status.()..."Notify.emms.s
a14a0 74 61 74 75 73 20 74 6f 20 64 62 75 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 66 61 63 65 20 22 tatus.to.dbus."...(let.((iface."
a14c0 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 72 22 29 29 org.mpris.MediaPlayer2.Player"))
a14e0 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 75 70 64 61 74 65 2d 70 72 6f 70 65 72 74 79 .....(emms-mpris-update-property
a1500 20 69 66 61 63 65 0a 09 09 09 09 22 50 6c 61 79 62 61 63 6b 53 74 61 74 75 73 22 0a 09 09 09 09 .iface....."PlaybackStatus".....
a1520 3a 72 65 61 64 0a 09 09 09 09 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 74 61 74 75 73 29 29 0a 20 :read.....(emms-mpris-status))..
a1540 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 75 70 64 61 74 65 2d 70 72 6f 70 65 72 74 79 20 69 ...(emms-mpris-update-property.i
a1560 66 61 63 65 0a 09 09 09 09 22 4d 65 74 61 64 61 74 61 22 0a 09 09 09 09 3a 72 65 61 64 0a 09 09 face....."Metadata".....:read...
a1580 09 09 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 64 61 74 61 29 29 ..(emms-mpris-current-metadata))
a15a0 29 29 0a 0a 0a 3b 3b 2a 2a 20 53 65 65 6b 20 61 6e 64 20 53 65 74 50 6f 73 69 74 69 6f 6e 0a 0a ))...;;**.Seek.and.SetPosition..
a15c0 3b 3b 2a 2a 2a 20 53 69 67 6e 61 6c 20 70 6f 73 69 74 69 6f 6e 20 63 68 61 6e 67 65 20 28 61 66 ;;***.Signal.position.change.(af
a15e0 74 65 72 20 53 65 65 6b 20 6f 72 20 53 65 74 50 6f 73 69 74 69 6f 6e 29 0a 28 64 65 66 75 6e 20 ter.Seek.or.SetPosition).(defun.
a1600 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 69 67 6e 61 6c 2d 70 6f 73 69 74 69 6f 6e 20 28 70 6f 73 29 emms-mpris-signal-position.(pos)
a1620 0a 20 20 22 53 65 6e 64 20 5c 22 53 65 65 6b 65 64 5c 22 20 73 69 67 6e 61 6c 20 77 69 74 68 20 ..."Send.\"Seeked\".signal.with.
a1640 6e 65 77 20 70 6f 73 69 74 69 6f 6e 20 50 4f 53 20 28 69 6e 20 73 65 63 6f 6e 64 73 29 2e 22 0a new.position.POS.(in.seconds).".
a1660 20 20 28 64 62 75 73 2d 73 65 6e 64 2d 73 69 67 6e 61 6c 20 3a 73 65 73 73 69 6f 6e 0a 09 09 20 ..(dbus-send-signal.:session....
a1680 20 20 20 6e 69 6c 0a 09 09 20 20 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 20 ...nil.......emms-mpris-path....
a16a0 20 20 20 22 6f 72 67 2e 6d 70 72 69 73 2e 4d 65 64 69 61 50 6c 61 79 65 72 32 2e 50 6c 61 79 65 ..."org.mpris.MediaPlayer2.Playe
a16c0 72 22 0a 09 09 20 20 20 20 22 53 65 65 6b 65 64 22 0a 09 09 20 20 20 20 3a 69 6e 74 36 34 0a 09 r"......."Seeked".......:int64..
a16e0 09 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 63 2d 74 6f 2d 6d 75 73 65 63 20 70 6f .....(emms-mpris-sec-to-musec.po
a1700 73 29 29 29 0a 0a 3b 3b 2a 2a 2a 20 53 65 65 6b 20 6d 65 74 68 6f 64 0a 28 64 65 66 75 6e 20 65 s)))..;;***.Seek.method.(defun.e
a1720 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 65 6b 20 28 6d 73 29 0a 20 20 22 4d 65 74 68 6f 64 20 74 6f mms-mpris-seek.(ms)..."Method.to
a1740 20 73 65 65 6b 20 62 79 20 4d 53 20 6d 69 63 72 6f 73 65 63 6f 6e 64 73 2e 22 0a 20 20 28 65 6d .seek.by.MS.microseconds."...(em
a1760 6d 73 2d 73 65 65 6b 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 65 6d 6d 73 2d ms-seek.(number-to-string.(emms-
a1780 6d 70 72 69 73 2d 6d 75 73 65 63 2d 74 6f 2d 73 65 63 20 6d 73 29 29 29 0a 20 20 28 65 6d 6d 73 mpris-musec-to-sec.ms)))...(emms
a17a0 2d 6d 70 72 69 73 2d 73 69 67 6e 61 6c 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 -mpris-signal-position.emms-play
a17c0 69 6e 67 2d 74 69 6d 65 29 0a 20 20 3a 69 67 6e 6f 72 65 29 0a 0a 3b 3b 2a 2a 2a 20 53 65 74 50 ing-time)...:ignore)..;;***.SetP
a17e0 6f 73 69 74 69 6f 6e 20 6d 65 74 68 6f 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 osition.method.(defun.emms-mpris
a1800 2d 73 65 74 2d 70 6f 73 69 74 69 6f 6e 20 28 74 72 61 63 6b 2d 69 64 20 70 6f 73 29 0a 20 20 22 -set-position.(track-id.pos)..."
a1820 4d 65 74 68 6f 64 20 74 6f 20 73 65 65 6b 20 74 6f 20 50 4f 53 20 28 69 6e 20 6d 69 63 72 6f 73 Method.to.seek.to.POS.(in.micros
a1840 65 63 6f 6e 64 73 29 20 69 66 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 68 61 73 20 69 64 20 econds).if.current.track.has.id.
a1860 54 52 41 43 4b 2d 49 44 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 TRACK-ID."...(let*.((track.(emms
a1880 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b -playlist-current-selected-track
a18a0 29 29 0a 09 20 28 64 75 72 61 74 69 6f 6e 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 ))...(duration.(emms-track-get.t
a18c0 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 30 29 29 0a 09 20 28 63 rack.'info-playing-time.0))...(c
a18e0 75 72 72 65 6e 74 2d 74 72 61 63 6b 2d 69 64 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d 74 72 61 63 urrent-track-id.(emms-mpris-trac
a1900 6b 2d 69 64 20 74 72 61 63 6b 29 29 0a 09 20 28 70 6f 73 2d 69 6e 2d 73 65 63 73 20 28 65 6d 6d k-id.track))...(pos-in-secs.(emm
a1920 73 2d 6d 70 72 69 73 2d 6d 75 73 65 63 2d 74 6f 2d 73 65 63 20 70 6f 73 29 29 29 0a 20 20 20 20 s-mpris-musec-to-sec.pos))).....
a1940 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 74 72 61 63 6b 2d 69 (when.(and.(string-equal.track-i
a1960 64 20 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 2d 69 64 29 0a 09 20 20 20 20 20 20 20 28 3c 3d 20 d.current-track-id).........(<=.
a1980 30 2e 30 20 70 6f 73 2d 69 6e 2d 73 65 63 73 20 64 75 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 0.0.pos-in-secs.duration))......
a19a0 20 28 65 6d 6d 73 2d 73 65 65 6b 2d 74 6f 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 .(emms-seek-to.(number-to-string
a19c0 20 70 6f 73 2d 69 6e 2d 73 65 63 73 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 .pos-in-secs)).......(emms-mpris
a19e0 2d 73 69 67 6e 61 6c 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 -signal-position.emms-playing-ti
a1a00 6d 65 29 29 0a 20 20 20 20 3a 69 67 6e 6f 72 65 29 29 0a 0a 3b 3b 2a 2a 20 4f 70 65 6e 55 52 49 me)).....:ignore))..;;**.OpenURI
a1a20 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6f 70 65 6e 2d 75 72 69 20 28 75 72 ..(defun.emms-mpris-open-uri.(ur
a1a40 69 29 0a 20 20 22 4d 65 74 68 6f 64 20 66 6f 72 20 6f 70 65 6e 69 6e 67 20 66 69 6c 65 20 55 52 i)..."Method.for.opening.file.UR
a1a60 49 20 61 6e 64 20 70 6c 61 79 69 6e 67 20 69 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 61 72 I.and.playing.it."...(let*.((par
a1a80 73 65 64 2d 75 72 69 20 28 75 72 6c 2d 67 65 6e 65 72 69 63 2d 70 61 72 73 65 2d 75 72 6c 20 75 sed-uri.(url-generic-parse-url.u
a1aa0 72 69 29 29 0a 09 20 28 66 69 6c 65 20 28 75 72 6c 2d 75 6e 68 65 78 2d 73 74 72 69 6e 67 20 28 ri))...(file.(url-unhex-string.(
a1ac0 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 20 70 61 72 73 65 64 2d 75 72 69 29 29 29 0a 09 20 28 74 79 url-filename.parsed-uri)))...(ty
a1ae0 70 65 20 28 75 72 6c 2d 74 79 70 65 20 70 61 72 73 65 64 2d 75 72 69 29 29 29 0a 20 20 20 20 28 pe.(url-type.parsed-uri))).....(
a1b00 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 74 79 70 65 20 22 66 69 when.(and.(string-equal.type."fi
a1b20 6c 65 22 29 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 le").(file-exists-p.file))......
a1b40 20 28 63 6f 6e 64 20 28 28 66 69 6c 65 2d 72 65 67 75 6c 61 72 2d 70 20 66 69 6c 65 29 20 28 65 .(cond.((file-regular-p.file).(e
a1b60 6d 6d 73 2d 70 6c 61 79 2d 66 69 6c 65 20 66 69 6c 65 29 29 0a 09 20 20 20 20 28 28 66 69 6c 65 mms-play-file.file))......((file
a1b80 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 20 28 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 -directory-p.file).(emms-play-di
a1ba0 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 29 29 29 0a 20 20 3a 69 67 6e 6f 72 65 29 0a 0c 0a 0a rectory.file)))))...:ignore)....
a1bc0 3b 3b 2a 20 45 6e 74 72 79 20 70 6f 69 6e 74 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6d 70 ;;*.Entry.point..(defvar.emms-mp
a1be0 72 69 73 2d 65 6e 61 62 6c 65 64 2d 70 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 ris-enabled-p.nil..."Non-nil.if.
a1c00 74 68 65 20 45 4d 4d 53 20 6d 70 72 69 73 20 73 65 72 76 69 63 65 20 69 73 20 65 6e 61 62 6c 65 the.EMMS.mpris.service.is.enable
a1c20 64 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 20 28 d.")..(defun.emms-mpris-enable.(
a1c40 29 0a 20 20 22 41 63 74 69 76 61 74 65 20 45 4d 4d 53 20 64 62 75 73 20 73 65 72 76 69 63 65 2e )..."Activate.EMMS.dbus.service.
a1c60 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 "...(interactive)...(unless.emms
a1c80 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 64 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 -mpris-enabled-p.....(emms-mpris
a1ca0 2d 72 65 67 69 73 74 65 72 2d 69 66 61 63 65 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 6d 65 64 69 61 -register-iface.emms-mpris-media
a1cc0 70 6c 61 79 65 72 2d 69 66 61 63 65 2d 73 70 65 63 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 player-iface-spec).....(emms-mpr
a1ce0 69 73 2d 72 65 67 69 73 74 65 72 2d 69 66 61 63 65 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 6c 61 is-register-iface.emms-mpris-pla
a1d00 79 65 72 2d 69 66 61 63 65 2d 73 70 65 63 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 70 72 69 73 2d yer-iface-spec).....(emms-mpris-
a1d20 72 65 67 69 73 74 65 72 2d 69 66 61 63 65 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 69 6e 74 72 6f 73 register-iface.emms-mpris-intros
a1d40 70 65 63 74 61 62 6c 65 2d 69 66 61 63 65 2d 73 70 65 63 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d pectable-iface-spec).....(emms-m
a1d60 70 72 69 73 2d 72 65 67 69 73 74 65 72 2d 69 66 61 63 65 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 pris-register-iface.emms-mpris-p
a1d80 72 6f 70 65 72 74 69 65 73 2d 69 66 61 63 65 2d 73 70 65 63 29 0a 20 20 20 20 28 64 62 75 73 2d roperties-iface-spec).....(dbus-
a1da0 72 65 67 69 73 74 65 72 2d 73 65 72 76 69 63 65 20 3a 73 65 73 73 69 6f 6e 20 65 6d 6d 73 2d 6d register-service.:session.emms-m
a1dc0 70 72 69 73 2d 73 65 72 76 69 63 65 20 3a 61 6c 6c 6f 77 2d 72 65 70 6c 61 63 65 6d 65 6e 74 29 pris-service.:allow-replacement)
a1de0 0a 20 20 20 20 28 64 62 75 73 2d 72 65 67 69 73 74 65 72 2d 73 69 67 6e 61 6c 20 3a 73 65 73 73 .....(dbus-register-signal.:sess
a1e00 69 6f 6e 0a 09 09 09 20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 0a 09 09 09 20 ion......emms-mpris-service.....
a1e20 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 61 74 68 0a 09 09 09 20 20 64 62 75 73 2d 69 6e 74 65 72 .emms-mpris-path......dbus-inter
a1e40 66 61 63 65 2d 70 72 6f 70 65 72 74 69 65 73 0a 09 09 09 20 20 22 50 72 6f 70 65 72 74 69 65 73 face-properties......"Properties
a1e60 43 68 61 6e 67 65 64 22 0a 09 09 09 20 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 70 72 6f 70 65 Changed"......#'emms-mpris-prope
a1e80 72 74 79 2d 63 68 61 6e 67 65 2d 68 61 6e 64 6c 65 72 0a 09 09 09 20 20 3a 65 61 76 65 73 64 72 rty-change-handler......:eavesdr
a1ea0 6f 70 29 0a 20 20 20 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 65 6d 6d 73 2d 74 6f 67 67 6c 65 op).....(advice-add.'emms-toggle
a1ec0 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 3a 61 66 74 65 72 20 23 27 65 6d 6d 73 2d 6d 70 72 69 -repeat-track.:after.#'emms-mpri
a1ee0 73 2d 61 64 76 69 73 65 2d 6c 6f 6f 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 28 61 64 76 69 63 s-advise-loop-status).....(advic
a1f00 65 2d 61 64 64 20 27 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 e-add.'emms-toggle-repeat-playli
a1f20 73 74 20 3a 61 66 74 65 72 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 61 64 76 69 73 65 2d 6c 6f st.:after.#'emms-mpris-advise-lo
a1f40 6f 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 65 6d 6d 73 op-status).....(advice-add.'emms
a1f60 2d 74 6f 67 67 6c 65 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 20 3a 61 66 74 65 72 20 23 -toggle-random-playlist.:after.#
a1f80 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 61 64 76 69 73 65 2d 73 68 75 66 66 6c 65 29 0a 20 20 20 20 'emms-mpris-advise-shuffle).....
a1fa0 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 (add-hook.'emms-player-started-h
a1fc0 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 68 61 6e 67 65 2d 73 74 61 74 75 73 29 0a ook.#'emms-mpris-change-status).
a1fe0 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 ....(add-hook.'emms-player-pause
a2000 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 68 61 6e 67 65 2d 73 74 61 74 75 d-hook.#'emms-mpris-change-statu
a2020 73 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 s).....(add-hook.'emms-player-st
a2040 6f 70 70 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 68 61 6e 67 65 2d 73 opped-hook.#'emms-mpris-change-s
a2060 74 61 74 75 73 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 tatus).....(add-hook.'emms-playe
a2080 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 68 61 r-finished-hook.#'emms-mpris-cha
a20a0 6e 67 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6d 70 72 69 73 nge-status).....(setq.emms-mpris
a20c0 2d 65 6e 61 62 6c 65 64 2d 70 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 72 -enabled-p.t)))..(defun.emms-mpr
a20e0 69 73 2d 64 69 73 61 62 6c 65 20 28 29 0a 20 20 22 54 75 72 6e 20 6f 66 66 20 45 4d 4d 53 20 64 is-disable.()..."Turn.off.EMMS.d
a2100 62 75 73 20 73 65 72 76 69 63 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 bus.service."...(interactive)...
a2120 28 77 68 65 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 64 2d 70 0a 20 20 20 20 28 (when.emms-mpris-enabled-p.....(
a2140 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 remove-hook.'emms-player-started
a2160 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 68 61 6e 67 65 2d 73 74 61 74 75 73 -hook.#'emms-mpris-change-status
a2180 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ).....(remove-hook.'emms-player-
a21a0 70 61 75 73 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 63 68 61 6e 67 65 2d paused-hook.#'emms-mpris-change-
a21c0 73 74 61 74 75 73 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 status).....(remove-hook.'emms-p
a21e0 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d layer-stopped-hook.#'emms-mpris-
a2200 63 68 61 6e 67 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 change-status).....(remove-hook.
a2220 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 'emms-player-finished-hook.#'emm
a2240 73 2d 6d 70 72 69 73 2d 63 68 61 6e 67 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 28 61 64 76 69 s-mpris-change-status).....(advi
a2260 63 65 2d 72 65 6d 6f 76 65 20 27 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 74 72 ce-remove.'emms-toggle-repeat-tr
a2280 61 63 6b 20 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 61 64 76 69 73 65 2d 6c 6f 6f 70 2d 73 74 ack..#'emms-mpris-advise-loop-st
a22a0 61 74 75 73 29 0a 20 20 20 20 28 61 64 76 69 63 65 2d 72 65 6d 6f 76 65 20 27 65 6d 6d 73 2d 74 atus).....(advice-remove.'emms-t
a22c0 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 20 23 27 65 6d 6d 73 2d 6d 70 oggle-repeat-playlist..#'emms-mp
a22e0 72 69 73 2d 61 64 76 69 73 65 2d 6c 6f 6f 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 28 61 64 76 ris-advise-loop-status).....(adv
a2300 69 63 65 2d 72 65 6d 6f 76 65 20 27 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 61 6e 64 6f 6d 2d 70 ice-remove.'emms-toggle-random-p
a2320 6c 61 79 6c 69 73 74 20 23 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 61 64 76 69 73 65 2d 73 68 75 66 laylist.#'emms-mpris-advise-shuf
a2340 66 6c 65 29 0a 20 20 20 20 3b 3b 20 43 61 6c 6c 20 74 68 69 73 20 74 77 69 63 65 3a 20 77 65 20 fle).....;;.Call.this.twice:.we.
a2360 68 61 76 65 20 74 77 6f 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 22 47 65 74 22 20 6f 6e 20 74 68 have.two.methods.for."Get".on.th
a2380 65 20 50 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 3b 3b 20 69 6e 74 65 72 66 61 63 65 20 28 74 e.Properties.....;;.interface.(t
a23a0 68 65 72 65 20 2f 6d 75 73 74 2f 20 62 65 20 61 20 62 65 74 74 65 72 20 77 61 79 20 74 6f 20 64 here./must/.be.a.better.way.to.d
a23c0 6f 20 74 68 69 73 21 29 3a 0a 20 20 20 20 28 64 62 75 73 2d 75 6e 72 65 67 69 73 74 65 72 2d 73 o.this!):.....(dbus-unregister-s
a23e0 65 72 76 69 63 65 20 3a 73 65 73 73 69 6f 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 ervice.:session.emms-mpris-servi
a2400 63 65 29 0a 20 20 20 20 28 64 62 75 73 2d 75 6e 72 65 67 69 73 74 65 72 2d 73 65 72 76 69 63 65 ce).....(dbus-unregister-service
a2420 20 3a 73 65 73 73 69 6f 6e 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 73 65 72 76 69 63 65 29 0a 20 20 .:session.emms-mpris-service)...
a2440 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 64 2d 70 20 6e 69 6c ..(setq.emms-mpris-enabled-p.nil
a2460 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6d 70 72 69 73 29 0a 3b 3b 3b 20 )))...(provide.'emms-mpris).;;;.
a2480 65 6d 6d 73 2d 6d 70 72 69 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 emms-mpris.el.ends.here.........
a24a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a24c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a24e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a25a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a25c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a25e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 00 00 00 emms-24/emms-volume-amixer.el...
a2620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
a2680 30 30 30 36 32 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 36 34 00 20 30 00 00 00 0006273.00000000000.014764..0...
a26a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a26c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a26e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
a2720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
a2740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a27a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a27c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a27e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a2800 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 20 2d 2d 2d 20 61 20 ;;;.emms-volume-amixer.el.---.a.
a2820 6d 6f 64 65 20 66 6f 72 20 63 68 61 6e 67 69 6e 67 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 61 mode.for.changing.volume.using.a
a2840 6d 69 78 65 72 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d mixer..-*-.lexical-binding:.t;.-
a2860 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2c 20 32 30 30 37 2c *-..;;.Copyright.(C).2006,.2007,
a2880 20 32 30 30 38 2c 20 32 30 30 39 2c 20 32 30 32 33 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 .2008,.2009,.2023..Free.Software
a28a0 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4d 61 .Foundation,.Inc...;;.Author:.Ma
a28c0 72 74 69 6e 20 53 63 68 6f 65 6e 6d 61 6b 65 72 73 20 3c 61 69 76 69 72 75 40 64 69 61 6d 6f 6e rtin.Schoenmakers.<aiviru@diamon
a28e0 64 2d 61 67 65 2e 6e 65 74 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 d-age.net>..;;.This.file.is.part
a2900 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 .of.EMMS...;;.EMMS.is.free.softw
a2920 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 are;.you.can.redistribute.it.and
a2940 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 /or.modify.;;.it.under.the.terms
a2960 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .of.the.GNU.General.Public.Licen
a2980 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 se.as.published.by.;;.the.Free.S
a29a0 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 oftware.Foundation;.either.versi
a29c0 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 on.3,.or.(at.your.option).;;.any
a29e0 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 .later.version..;;.;;.EMMS.is.di
a2a00 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 stributed.in.the.hope.that.it.wi
a2a20 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 ll.be.useful,.;;.but.WITHOUT.ANY
a2a40 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c .WARRANTY;.without.even.the.impl
a2a60 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 ied.warranty.of.;;.MERCHANTABILI
a2a80 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 TY.or.FITNESS.FOR.A.PARTICULAR.P
a2aa0 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 URPOSE...See.the.;;.GNU.General.
a2ac0 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e Public.License.for.more.details.
a2ae0 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 .;;.;;.You.should.have.received.
a2b00 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 a.copy.of.the.GNU.General.Public
a2b20 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 .License.;;.along.with.EMMS;.see
a2b40 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 .the.file.COPYING...If.not,.writ
a2b60 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 e.to.the.;;.Free.Software.Founda
a2b80 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 tion,.Inc.,.51.Franklin.St,.Fift
a2ba0 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 h.Floor,.;;.Boston,.MA.02110-130
a2bc0 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 1,.USA...;;;.Commentary:..;;.Thi
a2be0 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 61 20 66 65 77 20 73 69 6d 70 6c 65 20 66 75 6e 63 s.file.defines.a.few.simple.func
a2c00 74 69 6f 6e 73 20 74 6f 20 72 61 69 73 65 20 6f 72 20 6c 6f 77 65 72 20 74 68 65 20 76 6f 6c 75 tions.to.raise.or.lower.the.volu
a2c20 6d 65 0a 3b 3b 20 75 73 69 6e 67 20 61 6d 69 78 65 72 2e 20 49 74 20 63 61 6e 20 62 65 20 75 73 me.;;.using.amixer..It.can.be.us
a2c40 65 64 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 2c 20 74 68 6f 75 67 68 20 69 74 27 73 20 6d 65 61 6e ed.stand-alone,.though.it's.mean
a2c60 74 20 66 6f 72 20 75 73 61 67 65 0a 3b 3b 20 77 69 74 68 20 45 4d 4d 53 2c 20 70 61 72 74 69 63 t.for.usage.;;.with.EMMS,.partic
a2c80 75 6c 61 72 6c 79 20 77 69 74 68 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 0a 0a 3b 3b 3b 20 ularly.with.emms-volume.el..;;;.
a2ca0 48 69 73 74 6f 72 79 3a 0a 0a 3b 3b 20 4d 61 79 20 33 30 20 32 30 30 36 3a 20 46 69 72 73 74 20 History:..;;.May.30.2006:.First.
a2cc0 63 6c 65 61 6e 75 70 20 61 6e 64 20 63 6f 6c 6c 61 74 69 6f 6e 20 6f 66 20 61 6d 69 78 65 72 20 cleanup.and.collation.of.amixer.
a2ce0 66 75 6e 63 74 69 6f 6e 73 20 69 6e 74 6f 20 61 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 functions.into.a.;;.............
a2d00 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 66 6f 72 20 72 65 6c 65 61 73 61 62 69 6c 69 74 79 .separate.file.for.releasability
a2d20 2e 0a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 76 6f ....;;;.Code:.(defcustom.emms-vo
a2d40 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 6f 6e 74 72 6f 6c 20 22 4d 61 73 74 65 72 22 0a 20 20 22 lume-amixer-control."Master"..."
a2d60 54 68 65 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 76 6f 6c 75 6d 65 The.control.to.change.the.volume
a2d80 20 77 69 74 68 2e 0a 43 6f 6e 74 72 6f 6c 73 20 69 6e 63 6c 75 64 65 73 20 5c 22 4d 61 73 74 65 .with..Controls.includes.\"Maste
a2da0 72 5c 22 2c 20 5c 22 50 43 4d 5c 22 2c 20 65 74 63 2e 20 46 6f 72 20 61 20 66 75 6c 6c 20 6c 69 r\",.\"PCM\",.etc..For.a.full.li
a2dc0 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 0a 63 6f 6e 74 72 6f 6c 73 2c 20 72 75 6e 20 60 61 st.of.available.controls,.run.`a
a2de0 6d 69 78 65 72 20 63 6f 6e 74 72 6f 6c 73 27 20 69 6e 20 61 20 73 68 65 6c 6c 2e 22 0a 20 20 3a mixer.controls'.in.a.shell."...:
a2e00 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4d 61 73 74 65 type.'(choice.(const.:tag."Maste
a2e20 72 22 20 22 4d 61 73 74 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 r"."Master")..................(c
a2e40 6f 6e 73 74 20 3a 74 61 67 20 22 50 43 4d 22 20 22 50 43 4d 22 29 0a 20 20 20 20 20 20 20 20 20 onst.:tag."PCM"."PCM")..........
a2e60 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 53 6f 6d 65 74 68 69 6e 67 20 ........(string.:tag."Something.
a2e80 65 6c 73 65 3a 20 22 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 else:."))...:group.'emms-volume)
a2ea0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d ..(defcustom.emms-volume-amixer-
a2ec0 63 61 72 64 20 30 0a 20 20 22 54 68 65 20 63 61 72 64 20 6e 75 6d 62 65 72 20 74 6f 20 63 68 61 card.0..."The.card.number.to.cha
a2ee0 6e 67 65 20 76 6f 6c 75 6d 65 2e 0a 54 68 65 20 63 61 72 64 20 69 73 20 69 64 65 6e 74 69 66 69 nge.volume..The.card.is.identifi
a2f00 65 64 20 62 79 20 61 20 6e 75 6d 62 65 72 2e 20 46 6f 72 20 61 20 66 75 6c 6c 20 6c 69 73 74 20 ed.by.a.number..For.a.full.list.
a2f20 72 75 6e 20 60 63 61 74 0a 2f 70 72 6f 63 2f 61 73 6f 75 6e 64 2f 63 61 72 64 73 27 20 69 6e 20 run.`cat./proc/asound/cards'.in.
a2f40 61 20 73 68 65 6c 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 a.shell."...:type.'integer...:gr
a2f60 6f 75 70 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d oup.'emms-volume)..(defvar.emms-
a2f80 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 76 6f 6c 75 6d 65 2d 72 65 67 65 78 70 0a 20 20 22 5c volume-amixer-volume-regexp..."\
a2fa0 5c 5b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 25 5c 5c 5d 22 0a 20 20 22 52 65 67 65 78 70 20 74 6f \[\\([0-9]+\\)%\\]"..."Regexp.to
a2fc0 20 63 61 70 74 75 72 65 20 74 68 65 20 76 6f 6c 75 6d 65 20 66 72 6f 6d 20 61 6d 69 78 65 72 20 .capture.the.volume.from.amixer.
a2fe0 6f 75 74 70 75 74 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e output.")..;;;###autoload.(defun
a3000 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 68 61 6e 67 65 20 28 61 6d 6f 75 .emms-volume-amixer-change.(amou
a3020 6e 74 29 0a 20 20 22 43 68 61 6e 67 65 20 61 6d 69 78 65 72 20 6d 61 73 74 65 72 20 76 6f 6c 75 nt)..."Change.amixer.master.volu
a3040 6d 65 20 62 79 20 41 4d 4f 55 4e 54 2e 22 0a 20 20 28 6d 65 73 73 61 67 65 20 22 50 6c 61 79 62 me.by.AMOUNT."...(message."Playb
a3060 61 63 6b 20 63 68 61 6e 6e 65 6c 73 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 ack.channels:.%s"............(wi
a3080 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 th-temp-buffer..............(whe
a30a0 6e 20 28 7a 65 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 n.(zerop.....................(ca
a30c0 6c 6c 2d 70 72 6f 63 65 73 73 20 22 61 6d 69 78 65 72 22 20 6e 69 6c 20 28 63 75 72 72 65 6e 74 ll-process."amixer".nil.(current
a30e0 2d 62 75 66 66 65 72 29 20 6e 69 6c 0a 09 09 09 09 20 20 22 2d 63 22 0a 09 09 09 09 20 20 28 66 -buffer).nil......."-c".......(f
a3100 6f 72 6d 61 74 20 22 25 64 22 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 61 ormat."%d".emms-volume-amixer-ca
a3120 72 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rd).............................
a3140 20 20 20 20 20 20 22 73 73 65 74 22 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d ......"sset".emms-volume-amixer-
a3160 63 6f 6e 74 72 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 control.........................
a3180 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 64 25 25 25 73 22 20 28 61 62 73 20 ..........(format."%d%%%s".(abs.
a31a0 61 6d 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 amount).........................
a31c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 61 6d 6f 75 6e 74 20 ..................(if.(<.amount.
a31e0 30 29 20 22 2d 22 20 22 2b 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 0)."-"."+"))))................(i
a3200 66 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 65 6d 6d 73 2d 76 6f 6c 75 6d f.(re-search-backward.emms-volum
a3220 65 2d 61 6d 69 78 65 72 2d 76 6f 6c 75 6d 65 2d 72 65 67 65 78 70 20 6e 69 6c 20 74 29 0a 20 20 e-amixer-volume-regexp.nil.t)...
a3240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 .................(match-string.1
a3260 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 ))))))..(defun.emms-volume-amixe
a3280 72 2d 67 65 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 61 6d 69 78 65 72 20 76 6f r-get.()..."Return.the.amixer.vo
a32a0 6c 75 6d 65 2e 0a 0a 4e 75 6d 62 65 72 20 69 73 20 6c 69 6d 69 74 65 64 20 74 6f 20 74 68 65 20 lume...Number.is.limited.to.the.
a32c0 72 61 6e 67 65 20 5b 30 2d 31 30 30 5d 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 20 28 77 69 74 68 range.[0-100]."...(let.((v.(with
a32e0 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 09 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 0a -temp-buffer.......(when.(zerop.
a3300 09 09 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 61 6d 69 78 65 72 22 20 6e 69 6c ......(call-process."amixer".nil
a3320 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 6e 69 6c 0a 09 09 09 09 20 20 22 2d 63 22 .(current-buffer).nil......."-c"
a3340 0a 09 09 09 09 20 20 28 66 6f 72 6d 61 74 20 22 25 64 22 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d .......(format."%d".emms-volume-
a3360 61 6d 69 78 65 72 2d 63 61 72 64 29 0a 09 09 09 09 20 20 22 73 67 65 74 22 20 65 6d 6d 73 2d 76 amixer-card)......."sget".emms-v
a3380 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 63 6f 6e 74 72 6f 6c 29 29 0a 09 20 20 20 20 20 20 20 28 olume-amixer-control)).........(
a33a0 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 09 09 20 20 20 20 65 6d 6d if.(re-search-backward.......emm
a33c0 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2d 76 6f 6c 75 6d 65 2d 72 65 67 65 78 70 20 6e 69 s-volume-amixer-volume-regexp.ni
a33e0 6c 20 74 29 0a 09 09 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 0a 09 09 20 6e 69 l.t)......(match-string.1)....ni
a3400 6c 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 76 0a 09 28 6d 61 78 20 28 6d 69 6e 20 28 73 74 72 l))))).....(if.v..(max.(min.(str
a3420 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 29 20 31 30 30 29 20 30 29 0a 20 20 20 20 20 20 28 ing-to-number.v).100).0).......(
a3440 65 72 72 6f 72 20 22 63 6f 75 6c 64 20 6e 6f 74 20 67 65 74 20 76 6f 6c 75 6d 65 20 66 72 6f 6d error."could.not.get.volume.from
a3460 20 61 6d 69 78 65 72 20 62 61 63 6b 65 6e 64 22 29 29 29 29 0a 0a 0a 0a 28 70 72 6f 76 69 64 65 .amixer.backend"))))....(provide
a3480 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d .'emms-volume-amixer)..;;;.emms-
a34a0 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 volume-amixer.el.ends.here......
a34c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a34e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-info.el............
a3620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
a3680 30 30 31 32 35 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 32 34 00 20 30 00 00 00 0012545.00000000000.013124..0...
a36a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a36c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
a3720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
a3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3800 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2e 65 6c 20 2d 2d 2d 20 52 65 74 72 69 65 76 69 6e 67 20 ;;;.emms-info.el.---.Retrieving.
a3820 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 track.information..-*-.lexical-b
a3840 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
a3860 20 32 30 30 35 2d 32 30 32 34 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 .2005-2024..Free.Software.Founda
a3880 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 72 67 65 6e 20 53 63 tion,.Inc...;;.Author:.Jorgen.Sc
a38a0 68 61 65 66 65 72 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 0a 0a 3b 3b 20 54 68 haefer.<forcer@forcix.cx>..;;.Th
a38c0 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d is.file.is.part.of.EMMS...;;.EMM
a38e0 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 S.is.free.software;.you.can.redi
a3900 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20 stribute.it.and/or.;;.modify.it.
a3920 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 under.the.terms.of.the.GNU.Gener
a3940 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 70 75 62 6c 69 73 68 65 al.Public.License.;;.as.publishe
a3960 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f d.by.the.Free.Software.Foundatio
a3980 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f 66 20 74 68 65 20 4c 69 n;.either.version.3.;;.of.the.Li
a39a0 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c cense,.or.(at.your.option).any.l
a39c0 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 ater.version...;;.EMMS.is.distri
a39e0 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 buted.in.the.hope.that.it.will.b
a3a00 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 e.useful,.;;.but.WITHOUT.ANY.WAR
a3a20 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 RANTY;.without.even.the.implied.
a3a40 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f warranty.of.;;.MERCHANTABILITY.o
a3a60 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f r.FITNESS.FOR.A.PARTICULAR.PURPO
a3a80 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c SE...See.the.;;.GNU.General.Publ
a3aa0 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b ic.License.for.more.details...;;
a3ac0 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 .You.should.have.received.a.copy
a3ae0 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .of.the.GNU.General.Public.Licen
a3b00 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 se.;;.along.with.EMMS;.if.not,.w
a3b20 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 rite.to.the.Free.Software.;;.Fou
a3b40 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 ndation,.Inc.,.51.Franklin.St,.F
a3b60 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 0a 3b 3b 20 30 32 31 31 30 2d ifth.Floor,.Boston,.MA.;;.02110-
a3b80 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 1301,.USA...;;;.Commentary:..;;.
a3ba0 54 68 69 73 20 45 4d 4d 53 20 6d 6f 64 75 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 77 61 79 20 This.EMMS.module.provides.a.way.
a3bc0 74 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 61 20 74 72 61 63 6b 2e 0a to.add.information.for.a.track..
a3be0 3b 3b 20 54 68 69 73 20 63 61 6e 20 75 73 65 20 61 6e 20 49 44 33 20 6f 72 20 4f 47 47 20 63 6f ;;.This.can.use.an.ID3.or.OGG.co
a3c00 6d 6d 65 6e 74 20 6c 69 6b 65 20 73 79 6e 74 61 78 2e 0a 0a 3b 3b 20 54 68 65 20 63 6f 64 65 20 mment.like.syntax...;;.The.code.
a3c20 77 69 6c 6c 20 61 64 64 20 69 6e 66 6f 20 73 79 6d 62 6f 6c 73 20 74 6f 20 74 68 65 20 74 72 61 will.add.info.symbols.to.the.tra
a3c40 63 6b 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 79 6d 62 6f 6c 73 0a 3b 3b 20 61 72 65 ck..The.following.symbols.;;.are
a3c60 20 64 65 66 69 6e 65 64 3a 0a 0a 3b 3b 20 69 6e 66 6f 2d 61 72 74 69 73 74 20 2d 20 73 74 72 69 .defined:..;;.info-artist.-.stri
a3c80 6e 67 20 6e 61 6d 69 6e 67 20 74 68 65 20 61 72 74 69 73 74 0a 3b 3b 20 69 6e 66 6f 2d 63 6f 6d ng.naming.the.artist.;;.info-com
a3ca0 70 6f 73 65 72 20 2d 20 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 74 68 65 20 63 6f 6d 70 6f 73 poser.-.string.naming.the.compos
a3cc0 65 72 0a 3b 3b 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 2d 20 73 74 72 69 6e 67 20 6e 61 er.;;.info-performer.-.string.na
a3ce0 6d 69 6e 67 20 74 68 65 20 70 65 72 66 6f 72 6d 65 72 0a 3b 3b 20 69 6e 66 6f 2d 74 69 74 6c 65 ming.the.performer.;;.info-title
a3d00 20 2d 20 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 74 68 65 20 74 69 74 6c 65 20 6f 66 20 74 68 .-.string.naming.the.title.of.th
a3d20 65 20 73 6f 6e 67 0a 3b 3b 20 69 6e 66 6f 2d 61 6c 62 75 6d 20 2d 20 73 74 72 69 6e 67 20 6e 61 e.song.;;.info-album.-.string.na
a3d40 6d 69 6e 67 20 74 68 65 20 61 6c 62 75 6d 0a 3b 3b 20 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 ming.the.album.;;.info-tracknumb
a3d60 65 72 20 2d 20 73 74 72 69 6e 67 28 3f 29 20 6e 61 6d 69 6e 67 20 74 68 65 20 74 72 61 63 6b 20 er.-.string(?).naming.the.track.
a3d80 6e 75 6d 62 65 72 0a 3b 3b 20 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 20 2d 20 73 74 72 69 number.;;.info-discnumber.-.stri
a3da0 6e 67 20 6e 61 6d 69 6e 67 20 74 68 65 20 64 69 73 63 20 6e 75 6d 62 65 72 0a 3b 3b 20 69 6e 66 ng.naming.the.disc.number.;;.inf
a3dc0 6f 2d 79 65 61 72 20 2d 20 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 74 68 65 20 79 65 61 72 0a o-year.-.string.naming.the.year.
a3de0 3b 3b 20 69 6e 66 6f 2d 6e 6f 74 65 20 2d 20 73 74 72 69 6e 67 20 6f 66 20 66 72 65 65 2d 66 6f ;;.info-note.-.string.of.free-fo
a3e00 72 6d 20 65 6e 74 72 79 0a 3b 3b 20 69 6e 66 6f 2d 67 65 6e 72 65 20 2d 20 73 74 72 69 6e 67 20 rm.entry.;;.info-genre.-.string.
a3e20 6e 61 6d 69 6e 67 20 74 68 65 20 67 65 6e 72 65 0a 3b 3b 20 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 naming.the.genre.;;.info-playing
a3e40 2d 74 69 6d 65 20 2d 20 6e 75 6d 62 65 72 20 67 69 76 69 6e 67 20 74 68 65 20 73 65 63 6f 6e 64 -time.-.number.giving.the.second
a3e60 73 20 6f 66 20 70 6c 61 79 74 69 6d 65 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 s.of.playtime..;;;.Code:..(requi
a3e80 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 re.'emms).(require.'emms-later-d
a3ea0 6f 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 69 6e 66 6f 20 6e 69 6c 0a 20 20 22 2a o)..(defgroup.emms-info.nil..."*
a3ec0 54 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 49 44 33 2c 20 4f 47 47 2c 20 65 74 63 Track.information..ID3,.OGG,.etc
a3ee0 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 ."...:group.'emms)..(defcustom.e
a3f00 6d 6d 73 2d 69 6e 66 6f 2d 61 75 74 6f 2d 75 70 64 61 74 65 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 mms-info-auto-update.t..."Non-ni
a3f20 6c 20 77 68 65 6e 20 45 4d 4d 53 20 73 68 6f 75 6c 64 20 75 70 64 61 74 65 20 74 72 61 63 6b 20 l.when.EMMS.should.update.track.
a3f40 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 66 69 6c 65 20 63 68 61 6e 67 65 73 2e information.if.the.file.changes.
a3f60 0a 54 68 69 73 20 77 69 6c 6c 20 63 61 75 73 65 20 68 61 72 64 20 64 72 69 76 65 20 61 63 74 69 .This.will.cause.hard.drive.acti
a3f80 76 69 74 79 20 6f 6e 20 74 72 61 63 6b 20 6c 6f 61 64 69 6e 67 2e 20 49 66 20 74 68 69 73 20 69 vity.on.track.loading..If.this.i
a3fa0 73 0a 74 6f 6f 20 61 6e 6e 6f 79 69 6e 67 20 66 6f 72 20 79 6f 75 2c 20 73 65 74 20 74 68 69 73 s.too.annoying.for.you,.set.this
a3fc0 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c .variable.to.nil."...:type.'bool
a3fe0 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 ean)..(defcustom.emms-info-async
a4000 68 72 6f 6e 6f 75 73 6c 79 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 74 72 61 63 hronously.t..."Non-nil.when.trac
a4020 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 61 64 65 64 20 61 k.information.should.be.loaded.a
a4040 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e synchronously."...:type.'boolean
a4060 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 72 65 70 6f 72 74 2d 65 )..(defcustom.emms-info-report-e
a4080 61 63 68 2d 6e 75 6d 2d 74 72 61 63 6b 73 20 32 30 30 0a 20 20 22 4e 6f 6e 2d 7a 65 72 6f 20 77 ach-num-tracks.200..."Non-zero.w
a40a0 69 6c 6c 20 72 65 70 6f 72 74 20 70 72 6f 67 72 65 73 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 ill.report.progress.information.
a40c0 65 76 65 72 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 72 61 63 6b 73 2e 0a 54 68 65 20 64 65 66 61 every.number.of.tracks..The.defa
a40e0 75 6c 74 20 69 73 20 74 6f 20 64 69 73 70 6c 61 79 20 61 20 6d 65 73 73 61 67 65 20 65 76 65 72 ult.is.to.display.a.message.ever
a4100 79 20 32 30 30 20 74 72 61 63 6b 73 2e 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 6f y.200.tracks..This.variable.is.o
a4120 6e 6c 79 20 75 73 65 64 20 77 68 65 6e 20 61 64 64 69 6e 67 20 74 72 61 63 6b 73 20 61 73 79 6e nly.used.when.adding.tracks.asyn
a4140 63 68 72 6f 6e 6f 75 73 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 29 0a 0a chronously."...:type.'integer)..
a4160 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 6e (defcustom.emms-info-functions.n
a4180 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20 61 64 64 20 69 6e 66 6f 72 6d il..."Functions.which.add.inform
a41a0 61 74 69 6f 6e 20 74 6f 20 74 72 61 63 6b 73 2e 0a 45 61 63 68 20 69 73 20 63 61 6c 6c 65 64 20 ation.to.tracks..Each.is.called.
a41c0 77 69 74 68 20 61 20 74 72 61 63 6b 20 61 73 20 61 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 74 79 with.a.track.as.argument."...:ty
a41e0 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d pe.'hook)..(defcustom.emms-info-
a4200 69 6e 69 74 2d 64 6f 6e 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 43 61 6c 6c 65 64 20 61 66 74 init-done-hook.nil..."Called.aft
a4220 65 72 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 61 er.asynchronously.initializing.a
a4240 6c 6c 20 74 72 61 63 6b 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 ll.tracks."...:type.'hook)..(def
a4260 76 61 72 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 74 72 61 63 6b var.emms-info-asynchronous-track
a4280 73 20 30 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 74 72 61 63 6b 73 20 77 65 27 72 65 20 77 61 s.0..."Number.of.tracks.we're.wa
a42a0 69 74 69 6e 67 20 66 6f 72 20 74 6f 20 62 65 20 64 6f 6e 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 iting.for.to.be.done.")..(defun.
a42c0 65 6d 6d 73 2d 69 6e 66 6f 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 74 72 61 63 6b 20 28 74 72 61 63 emms-info-initialize-track.(trac
a42e0 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 63 65 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 k.&optional.force)..."Initialize
a4300 20 54 52 41 43 4b 20 77 69 74 68 20 65 6d 6d 73 2d 69 6e 66 6f 20 69 6e 66 6f 72 6d 61 74 69 6f .TRACK.with.emms-info.informatio
a4320 6e 2e 0a 55 70 64 61 74 65 20 54 52 41 43 4b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 69 n..Update.TRACK.information.if.i
a4340 74 20 69 73 20 6e 65 77 20 6f 72 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 73 69 t.is.new.or.has.been.modified.si
a4360 6e 63 65 0a 6c 61 73 74 20 75 70 64 61 74 65 2c 20 6f 72 20 69 66 20 46 4f 52 43 45 20 69 73 20 nce.last.update,.or.if.FORCE.is.
a4380 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 73 75 69 74 61 62 6c 65 20 76 61 6c non-nil...This.is.a.suitable.val
a43a0 75 65 20 66 6f 72 20 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 66 75 ue.for.`emms-track-initialize-fu
a43c0 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d nctions'."...(if.(not.emms-info-
a43e0 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f asynchronously).......(emms-info
a4400 2d 72 65 61 6c 6c 79 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 74 72 61 63 6b 20 74 72 61 63 6b 20 66 -really-initialize-track.track.f
a4420 6f 72 63 65 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 orce).....(setq.emms-info-asynch
a4440 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 20 28 31 2b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e ronous-tracks.(1+.emms-info-asyn
a4460 63 68 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 61 74 65 chronous-tracks)).....(emms-late
a4480 72 2d 64 6f 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 72 65 61 6c 6c 79 2d 69 6e 69 74 69 61 6c 69 7a r-do.'emms-info-really-initializ
a44a0 65 2d 74 72 61 63 6b 20 74 72 61 63 6b 20 66 6f 72 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 e-track.track.force)))..(defun.e
a44c0 6d 6d 73 2d 69 6e 66 6f 2d 72 65 61 6c 6c 79 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 74 72 61 63 6b mms-info-really-initialize-track
a44e0 20 28 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 63 65 29 0a 20 20 22 52 65 61 6c .(track.&optional.force)..."Real
a4500 6c 79 20 69 6e 69 74 69 61 6c 69 7a 65 20 54 52 41 43 4b 2e 0a 52 65 74 75 72 6e 20 74 20 77 68 ly.initialize.TRACK..Return.t.wh
a4520 65 6e 20 74 68 65 20 74 72 61 63 6b 20 67 6f 74 20 63 68 61 6e 67 65 64 2e 22 0a 20 20 28 6c 65 en.the.track.got.changed."...(le
a4540 74 20 28 28 66 69 6c 65 2d 6d 74 69 6d 65 20 28 77 68 65 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 t.((file-mtime.(when.emms-info-a
a4560 75 74 6f 2d 75 70 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uto-update......................
a4580 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 6d 74 69 6d 65 20 74 72 61 .(emms-info-track-file-mtime.tra
a45a0 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 6d 74 69 6d 65 20 28 65 6d 6d 73 2d ck))).........(info-mtime.(emms-
a45c0 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6d 74 69 6d 65 29 29 29 0a 0a track-get.track.'info-mtime)))..
a45e0 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 66 69 6c 65 27 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 ....;;.if.the.file's.been.modifi
a4600 65 64 20 6f 72 20 69 73 20 6e 65 77 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 ed.or.is.new.....(when.(or.(not.
a4620 66 69 6c 65 2d 6d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 69 file-mtime)...............(not.i
a4640 6e 66 6f 2d 6d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 nfo-mtime)...............(emms-t
a4660 69 6d 65 2d 6c 65 73 73 2d 70 20 69 6e 66 6f 2d 6d 74 69 6d 65 20 66 69 6c 65 2d 6d 74 69 6d 65 ime-less-p.info-mtime.file-mtime
a4680 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 63 65 29 0a 20 20 20 20 20 20 28 72 75 )...............force).......(ru
a46a0 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 n-hook-with-args.'emms-info-func
a46c0 74 69 6f 6e 73 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 3b 3b 20 6e 6f 74 20 73 65 74 20 62 79 tions.track).......;;.not.set.by
a46e0 20 69 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 66 69 6c 65 .info.functions.......(when.file
a4700 2d 6d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 -mtime.........(emms-track-set.t
a4720 72 61 63 6b 20 27 69 6e 66 6f 2d 6d 74 69 6d 65 20 66 69 6c 65 2d 6d 74 69 6d 65 29 29 0a 20 20 rack.'info-mtime.file-mtime))...
a4740 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 64 20 74 72 61 63 6b 29 29 0a ....(emms-track-updated.track)).
a4760 0a 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 .....(when.emms-info-asynchronou
a4780 73 6c 79 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 sly.......(setq.emms-info-asynch
a47a0 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 20 28 31 2d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e ronous-tracks.(1-.emms-info-asyn
a47c0 63 68 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 chronous-tracks)).......(if.(zer
a47e0 6f 70 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 op.emms-info-asynchronous-tracks
a4800 29 0a 09 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d )....(progn......(run-hook-with-
a4820 61 72 67 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 69 6e 69 74 2d 64 6f 6e 65 2d 68 6f 6f 6b 29 0a args.'emms-info-init-done-hook).
a4840 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 4d 4d 53 3a 20 41 6c 6c 20 ............(message."EMMS:.All.
a4860 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6c 6f 61 64 65 64 2e 22 29 29 0a 20 20 20 track.information.loaded."))....
a4880 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 65 6d 6d 73 2d 69 6e 66 6f 2d 72 65 .....(unless.(zerop.emms-info-re
a48a0 70 6f 72 74 2d 65 61 63 68 2d 6e 75 6d 2d 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 port-each-num-tracks)...........
a48c0 28 69 66 20 28 7a 65 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 20 65 (if.(zerop................(mod.e
a48e0 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 0a 20 20 20 mms-info-asynchronous-tracks....
a4900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 72 65 70 6f 72 .................emms-info-repor
a4920 74 2d 65 61 63 68 2d 6e 75 6d 2d 74 72 61 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 t-each-num-tracks)).............
a4940 20 20 28 6d 65 73 73 61 67 65 20 22 45 4d 4d 53 3a 20 25 64 20 74 72 61 63 6b 73 20 74 6f 20 67 ..(message."EMMS:.%d.tracks.to.g
a4960 6f 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 o.."........................emms
a4980 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2d 74 72 61 63 6b 73 29 29 29 29 29 29 29 -info-asynchronous-tracks)))))))
a49a0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 6d 74 ..(defun.emms-info-track-file-mt
a49c0 69 6d 65 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6d 74 69 6d 65 20 ime.(track)..."Return.the.mtime.
a49e0 6f 66 20 74 68 65 20 66 69 6c 65 20 6f 66 20 54 52 41 43 4b 2c 20 69 66 20 61 6e 79 2e 0a 52 65 of.the.file.of.TRACK,.if.any..Re
a4a00 74 75 72 6e 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 69 66 20 28 65 71 20 28 turn.nil.otherwise."...(if.(eq.(
a4a20 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 emms-track-type.track)..........
a4a40 20 27 66 69 6c 65 29 0a 20 20 20 20 20 20 28 6e 74 68 20 35 20 28 66 69 6c 65 2d 61 74 74 72 69 .'file).......(nth.5.(file-attri
a4a60 62 75 74 65 73 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 0a butes.(emms-track-name.track))).
a4a80 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 ....nil))..(defun.emms-info-trac
a4aa0 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 k-description.(track)..."Return.
a4ac0 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 a.description.of.TRACK."...(let.
a4ae0 28 28 61 72 74 69 73 74 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 ((artist....(emms-track-get.trac
a4b00 6b 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 09 28 61 6c 62 75 6d 20 20 20 20 20 28 65 6d k.'info-artist))..(album.....(em
a4b20 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 29 ms-track-get.track.'info-album))
a4b40 0a 09 28 63 6f 6d 70 6f 73 65 72 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 ..(composer..(emms-track-get.tra
a4b60 63 6b 20 27 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 74 69 74 ck.'info-composer)).........(tit
a4b80 6c 65 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e le.....(emms-track-get.track.'in
a4ba0 66 6f 2d 74 69 74 6c 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 61 6e 64 fo-title))).....(cond......((and
a4bc0 20 63 6f 6d 70 6f 73 65 72 20 61 72 74 69 73 74 20 74 69 74 6c 65 20 61 6c 62 75 6d 29 0a 20 20 .composer.artist.title.album)...
a4be0 20 20 20 20 28 63 6f 6e 63 61 74 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 63 6f 6d 70 6f 73 65 ....(concat.(if.(string=.compose
a4c00 72 20 61 72 74 69 73 74 29 0a 09 09 20 20 61 72 74 69 73 74 0a 09 09 28 63 6f 6e 63 61 74 20 20 r.artist).....artist...(concat..
a4c20 61 72 74 69 73 74 20 22 20 2d 20 22 20 63 6f 6d 70 6f 73 65 72 29 29 0a 09 20 20 20 20 20 20 22 artist.".-.".composer))........"
a4c40 20 2d 20 22 20 61 6c 62 75 6d 20 22 20 2d 20 22 20 74 69 74 6c 65 29 29 0a 20 20 20 20 20 28 28 .-.".album.".-.".title))......((
a4c60 61 6e 64 20 61 72 74 69 73 74 20 74 69 74 6c 65 20 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 28 63 and.artist.title.album).......(c
a4c80 6f 6e 63 61 74 20 61 72 74 69 73 74 20 22 20 2d 20 22 20 61 6c 62 75 6d 20 22 20 2d 20 22 20 74 oncat.artist.".-.".album.".-.".t
a4ca0 69 74 6c 65 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 61 72 74 69 73 74 20 74 69 74 6c 65 29 0a itle))......((and.artist.title).
a4cc0 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 61 72 74 69 73 74 20 22 20 2d 20 22 20 74 69 74 6c 65 ......(concat.artist.".-.".title
a4ce0 29 29 0a 20 20 20 20 20 28 74 69 74 6c 65 0a 20 20 20 20 20 20 74 69 74 6c 65 29 0a 20 20 20 20 ))......(title.......title).....
a4d00 20 28 74 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 69 6d 70 6c 65 2d 64 65 73 .(t.......(emms-track-simple-des
a4d20 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 cription.track)))))..(provide.'e
a4d40 6d 6d 73 2d 69 6e 66 6f 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2e 65 6c 20 65 6e 64 73 20 mms-info).;;;.emms-info.el.ends.
a4d60 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 here............................
a4d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2e 65 6c 00 00 emms-24/emms-player-mplayer.el..
a4e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
a4e80 30 30 30 34 37 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 33 35 00 20 30 00 00 00 0004734.00000000000.015135..0...
a4ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
a4f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
a4f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5000 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2e 65 6c 20 2d 2d 2d 20 6d ;;;.emms-player-mplayer.el.---.m
a5020 70 6c 61 79 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 player.support.for.EMMS..-*-.lex
a5040 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 ical-binding:.t;.-*-..;;.Copyrig
a5060 68 74 20 28 43 29 20 32 30 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 ht.(C).2005,.2006,.2007,.2008,.2
a5080 30 30 39 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 009.Free.Software.Foundation,.In
a50a0 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 57 69 6c 6c 69 61 6d 20 58 75 20 3c 77 69 6c 6c c...;;.Authors:.William.Xu.<will
a50c0 69 61 6d 2e 78 77 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 4a iam.xwl@gmail.com>.;;..........J
a50e0 6f 72 67 65 6e 20 53 63 68 61 65 66 65 72 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 orgen.Schaefer.<forcer@forcix.cx
a5100 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e >..;;.This.file.is.part.of.EMMS.
a5120 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 ..;;.EMMS.is.free.software;.you.
a5140 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f can.redistribute.it.and/or.;;.mo
a5160 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 dify.it.under.the.terms.of.the.G
a5180 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 NU.General.Public.License.;;.as.
a51a0 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 published.by.the.Free.Software.F
a51c0 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f oundation;.either.version.3.;;.o
a51e0 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f f.the.License,.or.(at.your.optio
a5200 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 n).any.later.version...;;.EMMS.i
a5220 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 s.distributed.in.the.hope.that.i
a5240 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 t.will.be.useful,.;;.but.WITHOUT
a5260 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 .ANY.WARRANTY;.without.even.the.
a5280 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 implied.warranty.of.;;.MERCHANTA
a52a0 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c BILITY.or.FITNESS.FOR.A.PARTICUL
a52c0 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 AR.PURPOSE...See.the.;;.GNU.Gene
a52e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 ral.Public.License.for.more.deta
a5300 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 ils...;;.You.should.have.receive
a5320 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c d.a.copy.of.the.GNU.General.Publ
a5340 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 ic.License.;;.along.with.EMMS;.i
a5360 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 f.not,.write.to.the.Free.Softwar
a5380 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c e.Foundation,.;;.Inc.,.51.Frankl
a53a0 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 in.St,.Fifth.Floor,.Boston,.MA.0
a53c0 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 2110-1301,.USA...;;;.Commentary:
a53e0 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 76 69 64 65 73 20 61 20 70 6c 61 79 65 72 20 74 68 61 74 ..;;.This.provides.a.player.that
a5400 20 75 73 65 73 20 6d 70 6c 61 79 65 72 2e 20 49 74 20 73 75 70 70 6f 72 74 73 20 70 61 75 73 65 .uses.mplayer..It.supports.pause
a5420 20 61 6e 64 0a 3b 3b 20 73 65 65 6b 69 6e 67 2e 20 46 6f 72 20 6c 6f 61 64 69 6e 67 20 73 75 62 .and.;;.seeking..For.loading.sub
a5440 74 69 74 6c 65 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 74 72 79 20 61 64 64 69 6e 67 titles.automatically,.try.adding
a5460 0a 3b 3b 20 22 73 75 62 2d 66 75 7a 7a 69 6e 65 73 73 3d 31 22 20 74 6f 20 79 6f 75 72 20 60 7e .;;."sub-fuzziness=1".to.your.`~
a5480 2f 2e 6d 70 6c 61 79 65 72 2f 63 6f 6e 66 69 67 27 2c 20 73 65 65 20 6d 70 6c 61 79 65 72 20 6d /.mplayer/config',.see.mplayer.m
a54a0 61 6e 75 61 6c 20 66 6f 72 0a 3b 3b 20 6d 6f 72 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 anual.for.;;.more...;;;.Code:..(
a54c0 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 6f 6d 70 61 74 29 0a 28 72 65 71 75 69 72 65 20 27 require.'emms-compat).(require.'
a54e0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 0a 28 64 65 66 69 6e 65 2d 65 6d 6d emms-player-simple)..(define-emm
a5500 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 6d 70 6c 61 79 65 72 20 27 28 66 69 6c 65 20 75 s-simple-player.mplayer.'(file.u
a5520 72 6c 29 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 60 5c 5c 28 68 74 74 70 5b 73 5d 3f 5c 5c 7c rl)...(concat."\\`\\(http[s]?\\|
a5540 6d 6d 73 5c 5c 29 3a 2f 2f 5c 5c 7c 22 0a 09 20 20 28 61 70 70 6c 79 20 23 27 65 6d 6d 73 2d 70 mms\\)://\\|"....(apply.#'emms-p
a5560 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 0a 09 09 20 65 6d 6d 73 2d 70 6c 61 79 layer-simple-regexp....emms-play
a5580 65 72 2d 62 61 73 65 2d 66 6f 72 6d 61 74 2d 6c 69 73 74 29 29 0a 20 20 22 6d 70 6c 61 79 65 72 er-base-format-list))..."mplayer
a55a0 22 20 22 2d 73 6c 61 76 65 22 20 22 2d 71 75 69 65 74 22 20 22 2d 72 65 61 6c 6c 79 2d 71 75 69 "."-slave"."-quiet"."-really-qui
a55c0 65 74 22 29 0a 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 et")..(define-emms-simple-player
a55e0 20 6d 70 6c 61 79 65 72 2d 70 6c 61 79 6c 69 73 74 20 27 28 73 74 72 65 61 6d 6c 69 73 74 29 0a .mplayer-playlist.'(streamlist).
a5600 20 20 22 5c 5c 60 68 74 74 70 5b 73 5d 3f 3a 2f 2f 22 0a 20 20 22 6d 70 6c 61 79 65 72 22 20 22 .."\\`http[s]?://"..."mplayer"."
a5620 2d 73 6c 61 76 65 22 20 22 2d 71 75 69 65 74 22 20 22 2d 72 65 61 6c 6c 79 2d 71 75 69 65 74 22 -slave"."-quiet"."-really-quiet"
a5640 20 22 2d 70 6c 61 79 6c 69 73 74 22 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 ."-playlist")..(emms-player-set.
a5660 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 0a 09 09 20 27 70 61 75 73 65 0a 09 09 emms-player-mplayer....'pause...
a5680 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2d 70 61 75 73 65 29 0a 0a 3b 3b .'emms-player-mplayer-pause)..;;
a56a0 3b 20 50 61 75 73 65 20 69 73 20 61 6c 73 6f 20 72 65 73 75 6d 65 20 66 6f 72 20 6d 70 6c 61 79 ;.Pause.is.also.resume.for.mplay
a56c0 65 72 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d er.(emms-player-set.emms-player-
a56e0 6d 70 6c 61 79 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 73 75 6d 65 mplayer..................'resume
a5700 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 0a 28 65 6d 6d 73 2d 70 6c ..................nil)..(emms-pl
a5720 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 0a 09 09 20 ayer-set.emms-player-mplayer....
a5740 27 73 65 65 6b 0a 09 09 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2d 73 65 'seek....'emms-player-mplayer-se
a5760 65 6b 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 ek)..(emms-player-set.emms-playe
a5780 72 2d 6d 70 6c 61 79 65 72 0a 09 09 20 27 73 65 65 6b 2d 74 6f 0a 09 09 20 27 65 6d 6d 73 2d 70 r-mplayer....'seek-to....'emms-p
a57a0 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2d 73 65 65 6b 2d 74 6f 29 0a 0a 28 64 65 66 75 6e 20 65 layer-mplayer-seek-to)..(defun.e
a57c0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2d 70 61 75 73 65 20 28 29 0a 20 20 22 44 mms-player-mplayer-pause.()..."D
a57e0 65 70 65 6e 64 73 20 6f 6e 20 6d 70 6c 61 79 65 72 27 73 20 2d 73 6c 61 76 65 20 6d 6f 64 65 2e epends.on.mplayer's.-slave.mode.
a5800 22 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 0a 20 20 20 65 6d 6d 73 "...(process-send-string....emms
a5820 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 70 61 75 -player-simple-process-name."pau
a5840 73 65 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 se\n"))..(defun.emms-player-mpla
a5860 79 65 72 2d 73 65 65 6b 20 28 73 65 63 29 0a 20 20 22 44 65 70 65 6e 64 73 20 6f 6e 20 6d 70 6c yer-seek.(sec)..."Depends.on.mpl
a5880 61 79 65 72 27 73 20 2d 73 6c 61 76 65 20 6d 6f 64 65 2e 22 0a 20 20 28 70 72 6f 63 65 73 73 2d ayer's.-slave.mode."...(process-
a58a0 73 65 6e 64 2d 73 74 72 69 6e 67 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c send-string....emms-player-simpl
a58c0 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 73 65 65 6b 20 e-process-name....(format."seek.
a58e0 25 64 5c 6e 22 20 73 65 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 %d\n".sec)))..(defun.emms-player
a5900 2d 6d 70 6c 61 79 65 72 2d 73 65 65 6b 2d 74 6f 20 28 73 65 63 29 0a 20 20 22 44 65 70 65 6e 64 -mplayer-seek-to.(sec)..."Depend
a5920 73 20 6f 6e 20 6d 70 6c 61 79 65 72 27 73 20 2d 73 6c 61 76 65 20 6d 6f 64 65 2e 22 0a 20 20 28 s.on.mplayer's.-slave.mode."...(
a5940 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 process-send-string....emms-play
a5960 65 72 2d 73 69 6d 70 6c 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 0a 20 20 20 28 66 6f 72 6d 61 er-simple-process-name....(forma
a5980 74 20 22 73 65 65 6b 20 25 64 20 32 5c 6e 22 20 73 65 63 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 t."seek.%d.2\n".sec)))..(provide
a59a0 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 29 0a 3b 3b 3b 20 65 6d 6d 73 2d .'emms-player-mplayer).;;;.emms-
a59c0 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 player-mplayer.el.ends.here.....
a59e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2e 65 6c 00 00 00 00 00 emms-24/emms-info-native.el.....
a5a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
a5a80 30 30 31 30 31 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 30 30 00 20 30 00 00 00 0010116.00000000000.014400..0...
a5aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
a5b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
a5b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5c00 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2e 65 6c 20 2d 2d 2d 20 4e 61 74 69 ;;;.emms-info-native.el.---.Nati
a5c20 76 65 20 45 6d 61 63 73 20 4c 69 73 70 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d ve.Emacs.Lisp.info.method.for.EM
a5c40 4d 53 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a MS.-*-.lexical-binding:.t;.-*-..
a5c60 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 2d 32 30 32 33 20 46 72 65 65 20 ;;.Copyright.(C).2020-2023.Free.
a5c80 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 Software.Foundation,.Inc...;;.Au
a5ca0 74 68 6f 72 3a 20 50 65 74 74 65 72 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 thor:.Petteri.Hintsanen.<petteri
a5cc0 68 40 69 6b 69 2e 66 69 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 h@iki.fi>..;;.This.file.is.part.
a5ce0 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 of.EMMS...;;.EMMS.is.free.softwa
a5d00 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f re;.you.can.redistribute.it.and/
a5d20 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 or.modify.it.;;.under.the.terms.
a5d40 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
a5d60 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f e.as.published.by.;;.the.Free.So
a5d80 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f ftware.Foundation;.either.versio
a5da0 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 n.3,.or.(at.your.option).;;.any.
a5dc0 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 later.version...;;.EMMS.is.distr
a5de0 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 ibuted.in.the.hope.that.it.will.
a5e00 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 be.useful,.but.WITHOUT.;;.ANY.WA
a5e20 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 RRANTY;.without.even.the.implied
a5e40 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 .warranty.of.MERCHANTABILITY.;;.
a5e60 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 or.FITNESS.FOR.A.PARTICULAR.PURP
a5e80 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 OSE...See.the.GNU.General.Public
a5ea0 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b .;;.License.for.more.details...;
a5ec0 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 ;.You.should.have.received.a.cop
a5ee0 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 y.of.the.GNU.General.Public.Lice
a5f00 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 nse.;;.along.with.EMMS;.see.the.
a5f20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 file.COPYING..If.not,.write.to.t
a5f40 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 he.Free.;;.Software.Foundation,.
a5f60 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 Inc.,.51.Franklin.Street,.Fifth.
a5f80 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c Floor,.Boston,.;;.MA.02110-1301,
a5fa0 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 .USA...;;;.Commentary:..;;.This.
a5fc0 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 6e 61 74 69 76 65 20 65 6d 6d 73 2d 69 6e 66 6f file.provides.a.native.emms-info
a5fe0 2d 6d 65 74 68 6f 64 20 66 6f 72 20 45 4d 4d 53 2e 20 20 48 65 72 65 0a 3b 3b 20 22 6e 61 74 69 -method.for.EMMS...Here.;;."nati
a6000 76 65 22 20 6d 65 61 6e 73 20 61 20 70 75 72 65 20 45 6d 61 63 73 20 4c 69 73 70 20 69 6d 70 6c ve".means.a.pure.Emacs.Lisp.impl
a6020 65 6d 65 6e 74 61 74 69 6f 6e 20 69 6e 73 74 65 61 64 20 6f 66 20 6f 6e 65 0a 3b 3b 20 72 65 6c ementation.instead.of.one.;;.rel
a6040 79 69 6e 67 20 6f 6e 20 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 20 6f 72 20 6c 69 62 72 61 72 ying.on.external.tools.or.librar
a6060 69 65 73 20 6c 69 6b 65 0a 3b 3b 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 ies.like.;;.`emms-info-native-og
a6080 67 69 6e 66 6f 27 20 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 27 2e 0a 3b 3b ginfo'.or.`emms-info-libtag'..;;
a60a0 0a 3b 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 68 6f 64 2c 20 61 64 64 20 60 65 6d 6d .;;.To.use.this.method,.add.`emm
a60c0 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 27 20 74 6f 0a 3b 3b 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d s-info-native'.to.;;.`emms-info-
a60e0 66 75 6e 63 74 69 6f 6e 73 27 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 functions'..;;.;;.The.following.
a6100 66 69 6c 65 20 66 6f 72 6d 61 74 73 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 3a 0a 3b 3b 0a 3b file.formats.are.supported:.;;.;
a6120 3b 20 2d 20 56 6f 72 62 69 73 3a 20 4f 67 67 20 56 6f 72 62 69 73 20 49 20 50 72 6f 66 69 6c 65 ;.-.Vorbis:.Ogg.Vorbis.I.Profile
a6140 2c 20 66 69 6c 65 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 20 60 2e 6f 67 67 27 2c 0a 3b 3b 20 ,.filename.extension.`.ogg',.;;.
a6160 20 20 65 6c 65 6d 65 6e 74 61 72 79 20 73 74 72 65 61 6d 73 20 6f 6e 6c 79 2e 0a 3b 3b 0a 3b 3b ..elementary.streams.only..;;.;;
a6180 20 2d 20 4f 70 75 73 3a 20 4f 67 67 20 4f 70 75 73 20 70 72 6f 66 69 6c 65 2c 20 66 69 6c 65 6e .-.Opus:.Ogg.Opus.profile,.filen
a61a0 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 20 60 2e 6f 70 75 73 27 2c 20 65 6c 65 6d 65 6e 74 61 72 ame.extension.`.opus',.elementar
a61c0 79 0a 3b 3b 20 20 20 73 74 72 65 61 6d 73 20 6f 6e 6c 79 2e 0a 3b 3b 0a 3b 3b 20 2d 20 46 4c 41 y.;;...streams.only..;;.;;.-.FLA
a61e0 43 20 73 74 72 65 61 6d 73 20 69 6e 20 6e 61 74 69 76 65 20 65 6e 63 61 70 73 75 6c 61 74 69 6f C.streams.in.native.encapsulatio
a6200 6e 20 66 6f 72 6d 61 74 2c 20 66 69 6c 65 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 0a 3b 3b 20 n.format,.filename.extension.;;.
a6220 20 20 60 2e 66 6c 61 63 27 2e 0a 3b 3b 0a 3b 3b 20 2d 20 4d 50 33 20 66 69 6c 65 73 20 77 69 74 ..`.flac'..;;.;;.-.MP3.files.wit
a6240 68 20 65 78 74 65 6e 73 69 6f 6e 20 60 2e 6d 70 33 27 20 61 6e 64 20 49 44 33 76 32 20 74 61 67 h.extension.`.mp3'.and.ID3v2.tag
a6260 73 2e 20 20 41 6c 6c 20 49 44 33 76 32 0a 3b 3b 20 20 20 76 65 72 73 69 6f 6e 73 20 73 68 6f 75 s...All.ID3v2.;;...versions.shou
a6280 6c 64 20 77 6f 72 6b 2c 20 62 75 74 20 6d 61 6e 79 20 66 65 61 74 75 72 65 73 20 6c 69 6b 65 20 ld.work,.but.many.features.like.
a62a0 63 6f 6d 70 72 65 73 73 69 6f 6e 20 61 6e 64 0a 3b 3b 20 20 20 65 6e 63 72 79 70 74 69 6f 6e 20 compression.and.;;...encryption.
a62c0 61 72 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 2e 0a 3b 3b 0a 3b 3b 20 2d 20 53 50 43 20 66 are.not.supported..;;.;;.-.SPC.f
a62e0 69 6c 65 73 20 77 69 74 68 20 65 78 74 65 6e 73 69 6f 6e 20 60 2e 73 70 63 27 20 61 6e 64 20 49 iles.with.extension.`.spc'.and.I
a6300 44 36 36 36 20 74 61 67 73 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20 61 75 64 69 6f 0a 3b 3b 20 D666.tags...This.is.an.audio.;;.
a6320 20 20 66 69 6c 65 20 62 61 73 65 64 20 6f 6e 20 61 20 6d 65 6d 6f 72 79 20 64 75 6d 70 20 66 72 ..file.based.on.a.memory.dump.fr
a6340 6f 6d 20 61 6e 20 53 50 43 37 30 30 2c 20 61 20 73 70 65 63 69 61 6c 20 61 75 64 69 6f 20 63 68 om.an.SPC700,.a.special.audio.ch
a6360 69 70 0a 3b 3b 20 20 20 66 6f 75 6e 64 20 77 69 74 68 69 6e 20 53 75 70 65 72 20 4e 69 6e 74 65 ip.;;...found.within.Super.Ninte
a6380 6e 64 6f 73 2e 0a 3b 3b 0a 3b 3b 20 46 6f 72 6d 61 74 20 64 65 74 65 63 74 69 6f 6e 20 69 73 20 ndos..;;.;;.Format.detection.is.
a63a0 62 61 73 65 64 20 73 6f 6c 65 6c 79 20 6f 6e 20 66 69 6c 65 6e 61 6d 65 20 65 78 74 65 6e 73 69 based.solely.on.filename.extensi
a63c0 6f 6e 2c 20 77 68 69 63 68 20 69 73 0a 3b 3b 20 6d 61 74 63 68 65 64 20 63 61 73 65 2d 69 6e 73 on,.which.is.;;.matched.case-ins
a63e0 65 6e 73 69 74 69 76 65 6c 79 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 ensitively...;;;.Code:..(require
a6400 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f .'emms-info).(require.'emms-info
a6420 2d 6e 61 74 69 76 65 2d 66 6c 61 63 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 -native-flac).(require.'emms-inf
a6440 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 o-native-ogg).(require.'emms-inf
a6460 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 o-native-mp3).(require.'emms-inf
a6480 6f 2d 6e 61 74 69 76 65 2d 73 70 63 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d o-native-spc)..(defun.emms-info-
a64a0 6e 61 74 69 76 65 20 28 74 72 61 63 6b 29 0a 20 20 22 53 65 74 20 69 6e 66 6f 20 66 69 65 6c 64 native.(track)..."Set.info.field
a64c0 73 20 66 6f 72 20 54 52 41 43 4b 2e 0a 53 75 70 70 6f 72 74 73 20 4f 67 67 20 56 6f 72 62 69 73 s.for.TRACK..Supports.Ogg.Vorbis
a64e0 2f 4f 70 75 73 2c 20 46 4c 41 43 2c 20 4d 50 33 20 61 6e 64 20 53 50 43 20 66 69 6c 65 73 2e 22 /Opus,.FLAC,.MP3.and.SPC.files."
a6500 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 6e 76 0a 20 20 20 20 20 20 28 6c 65 ...(condition-case.env.......(le
a6520 74 2a 20 28 28 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d t*.((filename...............(emm
a6540 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 s-track-name.track))............
a6560 20 20 28 69 6e 66 6f 2d 66 69 65 6c 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d ..(info-fields...............(em
a6580 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 2d 64 65 63 6f 64 65 2d 69 6e 66 6f 2d 66 69 65 6c ms-info-native--decode-info-fiel
a65a0 64 73 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 09 28 64 6f 6c 69 73 74 20 28 66 69 65 6c 64 20 69 ds.filename)))..(dolist.(field.i
a65c0 6e 66 6f 2d 66 69 65 6c 64 73 29 0a 09 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 69 6e 74 65 nfo-fields)....(let.((name.(inte
a65e0 72 6e 20 28 63 6f 6e 63 61 74 20 22 69 6e 66 6f 2d 22 20 28 63 61 72 20 66 69 65 6c 64 29 29 29 rn.(concat."info-".(car.field)))
a6600 29 0a 09 09 28 76 61 6c 75 65 20 28 63 64 72 20 66 69 65 6c 64 29 29 29 0a 20 20 20 20 20 20 20 )...(value.(cdr.field)))........
a6620 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 76 61 6c 75 65 29 0a 20 20 20 20 20 .....(when.(stringp.value)......
a6640 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 75 65 20 28 73 74 72 69 6e 67 2d 74 72 69 .........(setq.value.(string-tri
a6660 6d 2d 72 69 67 68 74 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d m-right.value))).............(em
a6680 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 6e 61 6d 65 20 76 61 6c 75 65 29 29 29 ms-track-set.track.name.value)))
a66a0 29 0a 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 20 22 65 6d 6d 73 2d 69 6e 66 6f ).....(error.(message."emms-info
a66c0 2d 6e 61 74 69 76 65 20 65 72 72 6f 72 20 70 72 6f 63 65 73 73 69 6e 67 20 25 73 3a 20 25 73 22 -native.error.processing.%s:.%s"
a66e0 0a 09 09 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 20 65 .......(emms-track-name.track).e
a6700 6e 76 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d nv))))..(defun.emms-info-native-
a6720 2d 64 65 63 6f 64 65 2d 69 6e 66 6f 2d 66 69 65 6c 64 73 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 -decode-info-fields.(filename)..
a6740 20 22 44 65 63 6f 64 65 20 69 6e 66 6f 20 66 69 65 6c 64 73 20 66 72 6f 6d 20 46 49 4c 45 4e 41 ."Decode.info.fields.from.FILENA
a6760 4d 45 2e 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 28 46 49 45 4c 44 20 2e 20 56 41 ME..Return.a.list.of.(FIELD...VA
a6780 4c 55 45 29 20 63 6f 6e 73 20 63 65 6c 6c 73 2c 20 77 68 65 72 65 20 46 49 45 4c 44 20 69 73 20 LUE).cons.cells,.where.FIELD.is.
a67a0 61 6e 0a 69 6e 66 6f 20 66 69 65 6c 64 20 61 6e 64 20 56 41 4c 55 45 20 69 73 20 74 68 65 20 63 an.info.field.and.VALUE.is.the.c
a67c0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f 20 76 61 6c 75 65 2e 20 20 42 6f 74 68 20 61 orresponding.info.value...Both.a
a67e0 72 65 0a 73 74 72 69 6e 67 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 65 61 6d 2d 74 79 70 re.strings."...(let.((stream-typ
a6800 65 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 2d 66 69 6e 64 2d 73 74 72 65 61 6d e.(emms-info-native--find-stream
a6820 2d 74 79 70 65 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6f 72 -type.filename))).....(cond.((or
a6840 20 28 65 71 20 73 74 72 65 61 6d 2d 74 79 70 65 20 27 76 6f 72 62 69 73 29 20 28 65 71 20 73 74 .(eq.stream-type.'vorbis).(eq.st
a6860 72 65 61 6d 2d 74 79 70 65 20 27 6f 70 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6d ream-type.'opus))............(em
a6880 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6f 67 67 2d 64 65 63 6f 64 65 2d 6d 65 74 61 64 61 ms-info-native-ogg-decode-metada
a68a0 74 61 20 66 69 6c 65 6e 61 6d 65 20 73 74 72 65 61 6d 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 ta.filename.stream-type)).......
a68c0 20 20 20 20 28 28 65 71 20 73 74 72 65 61 6d 2d 74 79 70 65 20 27 66 6c 61 63 29 0a 20 20 20 20 ....((eq.stream-type.'flac).....
a68e0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 66 6c 61 63 2d 64 65 .......(emms-info-native-flac-de
a6900 63 6f 64 65 2d 6d 65 74 61 64 61 74 61 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 code-metadata.filename))........
a6920 20 20 20 28 28 65 71 20 73 74 72 65 61 6d 2d 74 79 70 65 20 27 6d 70 33 29 0a 20 20 20 20 20 20 ...((eq.stream-type.'mp3).......
a6940 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2d 64 65 63 6f 64 .....(emms-info-native-mp3-decod
a6960 65 2d 6d 65 74 61 64 61 74 61 20 66 69 6c 65 6e 61 6d 65 29 29 0a 09 20 20 28 28 65 71 20 73 74 e-metadata.filename))....((eq.st
a6980 72 65 61 6d 2d 74 79 70 65 20 27 73 70 63 29 0a 09 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e ream-type.'spc).....(emms-info-n
a69a0 61 74 69 76 65 2d 73 70 63 2d 64 65 63 6f 64 65 2d 69 64 36 36 36 20 66 69 6c 65 6e 61 6d 65 29 ative-spc-decode-id666.filename)
a69c0 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 )...........(t.nil))))..(defun.e
a69e0 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 2d 66 69 6e 64 2d 73 74 72 65 61 6d 2d 74 79 70 mms-info-native--find-stream-typ
a6a00 65 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 44 65 64 75 63 65 20 74 68 65 20 73 74 72 65 61 e.(filename)..."Deduce.the.strea
a6a20 6d 20 74 79 70 65 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 54 68 69 73 20 69 73 20 61 20 m.type.from.FILENAME..This.is.a.
a6a40 6e 61 69 76 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 74 68 61 74 20 72 65 6c 69 65 73 naive.implementation.that.relies
a6a60 20 73 6f 6c 65 6c 79 20 6f 6e 20 66 69 6c 65 6e 61 6d 65 0a 65 78 74 65 6e 73 69 6f 6e 2e 0a 0a .solely.on.filename.extension...
a6a80 52 65 74 75 72 6e 20 6f 6e 65 20 6f 66 20 60 76 6f 72 62 69 73 27 2c 20 60 6f 70 75 73 27 2c 20 Return.one.of.`vorbis',.`opus',.
a6aa0 60 66 6c 61 63 27 2c 20 60 6d 70 33 27 20 6f 72 20 60 73 70 63 27 2c 20 6f 72 20 6e 69 6c 20 69 `flac',.`mp3'.or.`spc',.or.nil.i
a6ac0 66 0a 74 68 65 20 73 74 72 65 61 6d 20 74 79 70 65 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 64 75 f.the.stream.type.cannot.be.dedu
a6ae0 63 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 ced."...(let.((case-fold-search.
a6b00 74 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2e 6f t)).....(cond.((string-match.".o
a6b20 67 67 24 22 20 66 69 6c 65 6e 61 6d 65 29 20 27 76 6f 72 62 69 73 29 0a 20 20 20 20 20 20 20 20 gg$".filename).'vorbis).........
a6b40 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2e 6f 70 75 73 24 22 20 66 69 6c 65 6e 61 ..((string-match.".opus$".filena
a6b60 6d 65 29 20 27 6f 70 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 me).'opus)...........((string-ma
a6b80 74 63 68 20 22 2e 66 6c 61 63 24 22 20 66 69 6c 65 6e 61 6d 65 29 20 27 66 6c 61 63 29 0a 20 20 tch.".flac$".filename).'flac)...
a6ba0 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2e 6d 70 33 24 22 20 66 ........((string-match.".mp3$".f
a6bc0 69 6c 65 6e 61 6d 65 29 20 27 6d 70 33 29 0a 09 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 ilename).'mp3)....((string-match
a6be0 20 22 2e 73 70 63 24 22 20 66 69 6c 65 6e 61 6d 65 29 20 27 73 70 63 29 0a 20 20 20 20 20 20 20 .".spc$".filename).'spc)........
a6c00 20 20 20 28 74 20 6e 69 6c 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 6e ...(t.nil))))..(provide.'emms-in
a6c20 66 6f 2d 6e 61 74 69 76 65 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 fo-native)..;;;.emms-info-native
a6c40 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .el.ends.here...................
a6c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2e 69 6e 66 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms.info...............
a6e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
a6e80 30 36 37 33 32 37 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 34 30 00 20 30 00 00 00 0673272.00000000000.012540..0...
a6ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
a6f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
a6f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a6fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a7000 54 68 69 73 20 69 73 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 70 72 6f 64 75 63 65 64 This.is.doc7SuRxP.info,.produced
a7020 20 62 79 20 6d 61 6b 65 69 6e 66 6f 20 76 65 72 73 69 6f 6e 20 36 2e 38 20 66 72 6f 6d 0a 65 6d .by.makeinfo.version.6.8.from.em
a7040 6d 73 2e 74 65 78 69 6e 66 6f 2e 0a 0a 28 43 29 20 32 30 30 34 2c 20 32 30 30 35 2c 20 32 30 30 ms.texinfo...(C).2004,.2005,.200
a7060 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 2c 20 32 30 31 30 2c 20 32 30 31 31 2c 6,.2007,.2008,.2009,.2010,.2011,
a7080 20 32 30 31 34 2c 20 32 30 31 35 2c 20 32 30 31 36 2c 0a 32 30 32 30 2c 20 32 30 32 31 2c 20 32 .2014,.2015,.2016,.2020,.2021,.2
a70a0 30 32 32 2c 20 32 30 32 33 2c 20 32 30 32 34 2c 20 32 30 32 35 20 46 72 65 65 20 53 6f 66 74 77 022,.2023,.2024,.2025.Free.Softw
a70c0 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 20 20 20 20 20 50 65 72 6d 69 73 are.Foundation,.Inc.......Permis
a70e0 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 sion.is.granted.to.copy,.distrib
a7100 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 0a 20 20 20 20 20 64 6f 63 75 ute.and/or.modify.this......docu
a7120 6d 65 6e 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 ment.under.the.terms.of.the.GNU.
a7140 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 0a 20 20 20 20 Free.Documentation.License,.....
a7160 20 56 65 72 73 69 6f 6e 20 31 2e 31 20 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f .Version.1.1.or.any.later.versio
a7180 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 n.published.by.the.Free.Software
a71a0 0a 20 20 20 20 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 77 69 74 68 20 6e 6f 20 49 6e 76 61 72 69 ......Foundation;.with.no.Invari
a71c0 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 ant.Sections,.no.Front-Cover.Tex
a71e0 74 73 2c 20 61 6e 64 0a 20 20 20 20 20 6e 6f 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 ts,.and......no.Back-Cover.Texts
a7200 2e 20 20 41 20 63 6f 70 79 20 6f 66 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e 63 6c ...A.copy.of.the.license.is.incl
a7220 75 64 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 uded.in.the......section.entitle
a7240 64 20 22 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 d."GNU.Free.Documentation.Licens
a7260 65 22 2e 0a 49 4e 46 4f 2d 44 49 52 2d 53 45 43 54 49 4f 4e 20 45 6d 61 63 73 0a 53 54 41 52 54 e"..INFO-DIR-SECTION.Emacs.START
a7280 2d 49 4e 46 4f 2d 44 49 52 2d 45 4e 54 52 59 0a 2a 20 45 6d 6d 73 3a 20 28 65 6d 6d 73 29 2e 20 -INFO-DIR-ENTRY.*.Emms:.(emms)..
a72a0 20 20 20 20 20 20 20 20 20 20 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 ..........The.Emacs.Multimedia.S
a72c0 79 73 74 65 6d 0a 45 4e 44 2d 49 4e 46 4f 2d 44 49 52 2d 45 4e 54 52 59 0a 0a 1f 0a 46 69 6c 65 ystem.END-INFO-DIR-ENTRY....File
a72e0 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 6f 70 2c 20 20 4e :.doc7SuRxP.info,..Node:.Top,..N
a7300 65 78 74 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 28 64 69 72 29 2c ext:.Introduction,..Prev:.(dir),
a7320 20 20 55 70 3a 20 28 64 69 72 29 0a 0a 45 6d 6d 73 20 4d 61 6e 75 61 6c 0a 2a 2a 2a 2a 2a 2a 2a ..Up:.(dir)..Emms.Manual.*******
a7340 2a 2a 2a 2a 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 4d 61 6e 75 61 6c 20 66 6f 72 20 74 68 65 ****..This.is.the.Manual.for.the
a7360 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 74 65 6d 2e 0a 0a 20 20 20 28 43 .Emacs.Multimedia.System......(C
a7380 29 20 32 30 30 34 2c 20 32 30 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 ).2004,.2005,.2006,.2007,.2008,.
a73a0 32 30 30 39 2c 20 32 30 31 30 2c 20 32 30 31 31 2c 20 32 30 31 34 2c 20 32 30 31 35 2c 20 32 30 2009,.2010,.2011,.2014,.2015,.20
a73c0 31 36 2c 0a 32 30 32 30 2c 20 32 30 32 31 2c 20 32 30 32 32 2c 20 32 30 32 33 2c 20 32 30 32 34 16,.2020,.2021,.2022,.2023,.2024
a73e0 2c 20 32 30 32 35 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c ,.2025.Free.Software.Foundation,
a7400 20 49 6e 63 2e 0a 20 20 20 20 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 .Inc.......Permission.is.granted
a7420 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 .to.copy,.distribute.and/or.modi
a7440 66 79 20 74 68 69 73 0a 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 20 75 6e 64 65 72 20 74 68 65 20 fy.this......document.under.the.
a7460 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 terms.of.the.GNU.Free.Documentat
a7480 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 0a 20 20 20 20 20 56 65 72 73 69 6f 6e 20 31 2e 31 20 6f 72 ion.License,......Version.1.1.or
a74a0 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 .any.later.version.published.by.
a74c0 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 20 20 20 20 20 46 6f 75 6e 64 61 74 69 6f the.Free.Software......Foundatio
a74e0 6e 3b 20 77 69 74 68 20 6e 6f 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 6e n;.with.no.Invariant.Sections,.n
a7500 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 2c 20 61 6e 64 0a 20 20 20 20 20 6e 6f o.Front-Cover.Texts,.and......no
a7520 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 2e 20 20 41 20 63 6f 70 79 20 6f 66 20 74 68 .Back-Cover.Texts...A.copy.of.th
a7540 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 0a 20 20 20 e.license.is.included.in.the....
a7560 20 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 64 20 22 47 4e 55 20 46 72 65 65 20 44 6f 63 ..section.entitled."GNU.Free.Doc
a7580 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 22 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 53 umentation.License"...*.Menu:..S
a75a0 74 61 72 74 69 6e 67 20 6f 75 74 0a 2a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3a 3a 20 20 20 20 tarting.out.*.Introduction::....
a75c0 20 20 20 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 45 6d 6d 73 2e 0a 2a 20 51 75 69 63 ....Introduction.to.Emms..*.Quic
a75e0 6b 73 74 61 72 74 20 47 75 69 64 65 3a 3a 20 20 20 20 46 69 72 73 74 20 73 74 65 70 73 20 77 69 kstart.Guide::....First.steps.wi
a7600 74 68 20 45 6d 6d 73 20 66 6f 72 20 6e 65 77 20 75 73 65 72 73 2e 0a 2a 20 49 6e 73 74 61 6c 6c th.Emms.for.new.users..*.Install
a7620 61 74 69 6f 6e 3a 3a 20 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 69 6e 73 74 61 6c 6c 20 45 6d ation::........How.to.install.Em
a7640 6d 73 20 6f 6e 20 79 6f 75 72 20 53 79 73 74 65 6d 2e 0a 2a 20 53 65 74 75 70 3a 3a 20 20 20 20 ms.on.your.System..*.Setup::....
a7660 20 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 73 65 74 75 70 20 45 6d 6d 73 2e 0a 2a 20 ...........How.to.setup.Emms..*.
a7680 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 3a 20 20 20 20 20 20 20 4d 6f 72 65 20 64 65 74 61 69 Configuration::.......More.detai
a76a0 6c 65 64 20 73 65 74 75 70 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 0a 2a 20 47 led.setup.and.configuration..*.G
a76c0 65 74 74 69 6e 67 20 48 65 6c 70 3a 3a 20 20 20 20 20 20 20 20 57 68 65 72 65 20 74 6f 20 67 65 etting.Help::........Where.to.ge
a76e0 74 20 68 65 6c 70 20 77 69 74 68 20 45 6d 6d 73 20 61 6e 64 20 6d 61 6b 65 20 73 75 67 67 65 73 t.help.with.Emms.and.make.sugges
a7700 74 69 6f 6e 73 2e 0a 2a 20 46 6f 72 6d 61 74 73 20 61 6e 64 20 46 72 65 65 64 6f 6d 3a 3a 20 46 tions..*.Formats.and.Freedom::.F
a7720 69 6c 65 20 66 6f 72 6d 61 74 73 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 73 ile.formats.without.restrictions
a7740 2e 0a 0a 45 6d 6d 73 20 62 61 73 69 63 73 0a 2a 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 3a ...Emms.basics.*.Basic.Commands:
a7760 3a 20 20 20 20 20 20 48 6f 77 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 45 6d 6d 73 20 77 69 74 68 20 :......How.to.control.Emms.with.
a7780 65 61 73 65 2e 0a 2a 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 3a 3a 20 20 20 20 20 20 20 54 68 ease..*.The.Core.File::.......Th
a77a0 65 20 69 6e 6e 65 72 20 63 6f 72 65 20 6f 66 20 45 6d 6d 73 2e 0a 2a 20 53 6f 75 72 63 65 73 3a e.inner.core.of.Emms..*.Sources:
a77c0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 20 66 6f 72 20 70 6c 61 79 6c 69 :.............Sources.for.playli
a77e0 73 74 73 2d 63 72 65 61 74 69 6f 6e 2e 0a 2a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 3a 3a sts-creation..*.Simple.Players::
a7800 20 20 20 20 20 20 53 6f 6d 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 73 2e 0a 2a 20 50 6c 61 ......Some.simple.players..*.Pla
a7820 79 6c 69 73 74 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 45 6d 6d 73 20 6f 72 67 61 ylists::...........How.Emms.orga
a7840 6e 69 7a 65 73 20 6d 65 64 69 61 2e 0a 0a 41 64 76 61 6e 63 65 64 20 46 65 61 74 75 72 65 73 0a nizes.media...Advanced.Features.
a7860 2a 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 3a 3a 20 20 20 20 20 20 20 20 4d 6f 72 *.Track.Information::........Mor
a7880 65 20 6e 61 72 72 61 74 69 76 65 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 6f 6e 73 2e 0a e.narrative.track.descriptions..
a78a0 2a 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 3a 3a 20 20 20 20 49 6e 74 *.Interactive.Playlists::....Int
a78c0 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 2a 20 4d 61 72 6b 61 62 6c 65 20 50 eractive.Playlists..*.Markable.P
a78e0 6c 61 79 6c 69 73 74 73 3a 3a 20 20 20 20 20 20 20 41 6c 6c 6f 77 20 74 72 61 63 6b 73 20 74 6f laylists::.......Allow.tracks.to
a7900 20 62 65 20 6d 61 72 6b 65 64 2e 0a 2a 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 3a 3a 20 20 .be.marked..*.Extending.Emms::..
a7920 20 20 20 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 6e 65 77 20 70 6c 61 79 65 72 73 20 61 .....How.to.define.new.players.a
a7940 6e 64 20 6d 6f 64 75 6c 65 73 2e 0a 0a 4d 6f 64 75 6c 65 73 20 61 6e 64 20 45 78 74 65 6e 73 69 nd.modules...Modules.and.Extensi
a7960 6f 6e 73 0a 2a 20 54 68 65 20 42 72 6f 77 73 65 72 3a 3a 20 20 20 20 20 20 20 20 20 20 41 64 76 ons.*.The.Browser::..........Adv
a7980 61 6e 63 65 64 20 6d 65 74 61 64 61 74 61 20 62 72 6f 77 73 69 6e 67 2e 0a 2a 20 54 68 65 20 46 anced.metadata.browsing..*.The.F
a79a0 69 6c 74 65 72 20 53 79 73 74 65 6d 3a 3a 20 20 20 20 41 64 76 61 6e 63 65 64 20 6d 65 74 61 64 ilter.System::....Advanced.metad
a79c0 61 74 61 20 66 69 6c 74 65 72 69 6e 67 2e 0a 2a 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 ata.filtering..*.Sorting.Playlis
a79e0 74 73 3a 3a 20 20 20 20 53 6f 72 74 69 6e 67 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 ts::....Sorting.the.order.of.the
a7a00 20 74 72 61 63 6b 73 2e 0a 2a 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 73 74 73 3a .tracks..*.Persistent.Playlists:
a7a20 3a 20 52 65 73 74 6f 72 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 6f 6e 20 65 6d 61 63 73 20 73 :.Restoring.playlists.on.emacs.s
a7a40 74 61 72 74 75 70 2e 0a 2a 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 3a 3a 20 20 20 20 20 20 tartup..*.Editing.Tracks::......
a7a60 20 45 64 69 74 69 6e 67 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 .Editing.track.information.from.
a7a80 77 69 74 68 69 6e 20 45 6d 6d 73 2e 0a 2a 20 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 3a 3a 20 within.Emms..*.Emms.Mode.Line::.
a7aa0 20 20 20 20 20 20 45 6d 6d 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 6d 6f ......Emms.information.on.the.mo
a7ac0 64 65 20 6c 69 6e 65 2e 0a 2a 20 4c 69 6d 69 74 69 6e 67 3a 3a 20 20 20 20 20 20 20 20 20 20 20 de.line..*.Limiting::...........
a7ae0 20 20 44 65 72 69 76 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 ..Derive.a.new.playlist.from.the
a7b00 20 63 75 72 72 65 6e 74 2e 0a 2a 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 3a .current..*.Music.Player.Daemon:
a7b20 3a 20 20 49 6e 74 65 72 66 61 63 65 20 74 6f 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 :..Interface.to.Music.Player.Dae
a7b40 6d 6f 6e 2e 0a 2a 20 4c 79 72 69 63 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 69 mon..*.Lyrics::...............Di
a7b60 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 2a splaying.lyrics.synchronously..*
a7b80 20 56 6f 6c 75 6d 65 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 68 61 6e 67 69 6e 67 .Volume::...............Changing
a7ba0 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 2a 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 3a 3a .the.volume..*.Streaming.Audio::
a7bc0 20 20 20 20 20 20 49 6e 74 65 72 66 61 63 65 20 74 6f 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 ......Interface.to.streaming.aud
a7be0 69 6f 2e 0a 2a 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 3a 3a 20 20 20 20 20 20 20 20 53 65 61 io..*.Radio.Browser::........Sea
a7c00 72 63 68 20 66 6f 72 20 69 6e 74 65 72 6e 65 74 20 72 61 64 69 6f 20 73 74 61 74 69 6f 6e 73 0a rch.for.internet.radio.stations.
a7c20 2a 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 3a 3a 20 20 48 6f 77 20 74 6f 20 *.APE./.FLAC.Commands::..How.to.
a7c40 70 6c 61 79 20 6e 65 78 74 20 6f 72 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 play.next.or.previous.track.in.t
a7c60 68 65 73 65 20 66 69 6c 65 73 2e 0a 2a 20 42 6f 6f 6b 6d 61 72 6b 73 3a 3a 20 20 20 20 20 20 20 hese.files..*.Bookmarks::.......
a7c80 20 20 20 20 20 53 61 76 69 6e 67 20 61 20 70 6c 61 63 65 20 69 6e 20 61 20 6d 65 64 69 61 20 66 .....Saving.a.place.in.a.media.f
a7ca0 69 6c 65 2e 0a 2a 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 3a 3a 20 20 20 4d 61 ile..*.Managing.Playlists::...Ma
a7cc0 6e 61 67 69 6e 67 20 6d 75 6c 74 69 70 6c 65 20 70 6c 61 79 6c 69 73 74 73 2e 0a 2a 20 47 4e 55 naging.multiple.playlists..*.GNU
a7ce0 20 46 4d 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 6e 65 63 74 20 74 6f 20 6d .FM::...............Connect.to.m
a7d00 75 73 69 63 20 63 6f 6d 6d 75 6e 69 74 79 20 77 65 62 73 69 74 65 73 2e 0a 2a 20 4c 69 73 74 65 usic.community.websites..*.Liste
a7d20 6e 62 72 61 69 6e 7a 3a 3a 20 20 20 20 20 20 20 20 20 4e 6f 74 69 66 79 20 6c 69 73 74 65 6e 62 nbrainz::.........Notify.listenb
a7d40 72 61 69 6e 7a 20 6f 66 20 74 72 61 63 6b 73 20 70 6c 61 79 65 64 2e 0a 2a 20 44 2d 42 75 73 3a rainz.of.tracks.played..*.D-Bus:
a7d60 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 74 72 6f 6c 20 45 6d 6d 73 20 6f 76 :................Control.Emms.ov
a7d80 65 72 20 44 2d 42 75 73 2e 0a 0a 43 6f 70 79 69 6e 67 20 61 6e 64 20 6c 69 63 65 6e 73 65 0a 2a er.D-Bus...Copying.and.license.*
a7da0 20 43 6f 70 79 69 6e 67 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 47 4e 55 20 47 .Copying::.............The.GNU.G
a7dc0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 67 69 76 65 73 20 79 6f 75 20 eneral.Public.License.gives.you.
a7de0 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 permission.to...................
a7e00 20 20 20 20 20 20 20 20 20 20 72 65 64 69 73 74 72 69 62 75 74 65 20 45 6d 6d 73 20 6f 6e 20 63 ..........redistribute.Emms.on.c
a7e20 65 72 74 61 69 6e 20 74 65 72 6d 73 3b 20 69 74 20 61 6c 73 6f 20 65 78 70 6c 61 69 6e 73 0a 20 ertain.terms;.it.also.explains..
a7e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 61 74 20 ...........................that.
a7e60 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 2e 0a 2a 20 54 68 65 20 47 4e 55 20 there.is.no.warranty..*.The.GNU.
a7e80 46 44 4c 3a 3a 20 20 20 20 20 20 20 20 20 54 68 65 20 6c 69 63 65 6e 73 65 20 66 6f 72 20 74 68 FDL::.........The.license.for.th
a7ea0 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 0a 49 6e 64 69 63 65 73 0a 2a 20 43 6f 6e is.documentation...Indices.*.Con
a7ec0 63 65 70 74 20 49 6e 64 65 78 3a 3a 0a 2a 20 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 78 3a 3a 0a cept.Index::.*.Function.Index::.
a7ee0 2a 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 3a 3a 0a 2a 20 4b 65 79 62 69 6e 64 69 6e 67 20 *.Variable.Index::.*.Keybinding.
a7f00 49 6e 64 65 78 3a 3a 0a 0a 2d 2d 20 54 68 65 20 44 65 74 61 69 6c 65 64 20 4e 6f 64 65 20 4c 69 Index::..--.The.Detailed.Node.Li
a7f20 73 74 69 6e 67 20 2d 2d 0a 0a 48 65 72 65 20 61 72 65 20 73 6f 6d 65 20 6f 74 68 65 72 20 6e 6f sting.--..Here.are.some.other.no
a7f40 64 65 73 20 77 68 69 63 68 20 61 72 65 20 72 65 61 6c 6c 79 20 69 6e 66 65 72 69 6f 72 73 20 6f des.which.are.really.inferiors.o
a7f60 66 20 74 68 65 20 6f 6e 65 73 0a 61 6c 72 65 61 64 79 20 6c 69 73 74 65 64 2c 20 6d 65 6e 74 69 f.the.ones.already.listed,.menti
a7f80 6f 6e 65 64 20 68 65 72 65 20 73 6f 20 79 6f 75 20 63 61 6e 20 67 65 74 20 74 6f 20 74 68 65 6d oned.here.so.you.can.get.to.them
a7fa0 20 69 6e 20 6f 6e 65 20 73 74 65 70 3a 0a 0a 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 2a 20 43 6f .in.one.step:..Installation.*.Co
a7fc0 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 3a 3a 20 20 20 20 20 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d mpiling.Emms::......Compiling.Em
a7fe0 6d 73 20 69 6e 74 6f 20 42 79 74 65 2d 43 6f 64 65 2e 0a 0a 54 68 65 20 43 6f 72 65 20 46 69 6c ms.into.Byte-Code...The.Core.Fil
a8000 65 0a 2a 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 3a 3a 20 20 20 20 20 56 61 72 69 61 62 6c e.*.User.Variables::.....Variabl
a8020 65 73 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 74 77 65 61 6b 2e 0a 2a 20 48 6f 6f 6b es.for.the.user.to.tweak..*.Hook
a8040 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 6f 6b 73 20 66 6f 72 20 69 6d 70 6f 72 s::..............Hooks.for.impor
a8060 74 61 6e 74 20 45 6d 6d 73 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 2a 20 43 6f 72 65 20 46 75 6e 63 tant.Emms.functions..*.Core.Func
a8080 74 69 6f 6e 73 3a 3a 20 20 20 20 20 50 72 6f 76 69 64 69 6e 67 20 74 68 65 20 62 61 73 69 63 20 tions::.....Providing.the.basic.
a80a0 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 6f 66 20 45 6d 6d 73 2e 0a 0a 54 72 61 63 6b 20 49 6e functionality.of.Emms...Track.In
a80c0 66 6f 72 6d 61 74 69 6f 6e 0a 2a 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 3a 3a formation.*.Metadata.Utilities::
a80e0 20 53 75 70 70 6f 72 74 65 64 20 65 78 74 65 72 6e 61 6c 20 6d 65 74 61 64 61 74 61 20 75 74 69 .Supported.external.metadata.uti
a8100 6c 69 74 69 65 73 2e 0a 2a 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 3a lities..*.Defining.Info.Methods:
a8120 3a 20 20 20 20 44 65 66 69 6e 69 6e 67 20 6e 65 77 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 2e 0a :....Defining.new.info.methods..
a8140 0a 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 2a 20 4e 65 77 20 50 6c 61 79 65 72 3a 3a 20 20 .Extending.Emms.*.New.Player::..
a8160 20 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 61 20 6e 65 77 .............How.to.define.a.new
a8180 20 70 6c 61 79 65 72 2e 0a 2a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c .player..*.Simple.Player.for.`pl
a81a0 61 79 27 3a 3a 20 45 78 61 6d 70 6c 65 20 70 6c 61 79 65 72 20 75 73 69 6e 67 20 27 70 6c 61 79 ay'::.Example.player.using.'play
a81c0 27 2e 0a 2a 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 3a 3a 20 20 20 20 20 20 '..*.More.Complex.Player::......
a81e0 45 78 61 6d 70 6c 65 20 6f 66 20 61 20 63 6f 6d 70 6c 65 78 20 70 6c 61 79 65 72 20 75 73 69 6e Example.of.a.complex.player.usin
a8200 67 20 27 6d 70 67 33 32 31 27 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 g.'mpg321'.....File:.doc7SuRxP.i
a8220 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 2c 20 20 4e 65 78 74 3a nfo,..Node:.Introduction,..Next:
a8240 20 51 75 69 63 6b 73 74 61 72 74 20 47 75 69 64 65 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 20 49 .Quickstart.Guide,..Up:.Top..1.I
a8260 6e 74 72 6f 64 75 63 74 69 6f 6e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 ntroduction.**************..Emms
a8280 20 69 73 20 74 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 2d 4d 65 64 69 61 20 53 79 73 74 65 6d .is.the.Emacs.Multi-Media.System
a82a0 2e 20 20 45 6d 6d 73 20 6f 72 67 61 6e 69 7a 65 73 20 70 6c 61 79 6c 69 73 74 73 2c 20 61 6c 6c ...Emms.organizes.playlists,.all
a82c0 6f 77 73 0a 62 72 6f 77 73 69 6e 67 20 74 68 72 6f 75 67 68 20 74 72 61 63 6b 20 61 6e 64 20 61 ows.browsing.through.track.and.a
a82e0 6c 62 75 6d 20 6d 65 74 61 64 61 74 61 2c 20 61 6e 64 20 70 6c 61 79 73 20 66 69 6c 65 73 20 62 lbum.metadata,.and.plays.files.b
a8300 79 20 63 61 6c 6c 69 6e 67 0a 65 78 74 65 72 6e 61 6c 20 70 6c 61 79 65 72 73 2e 0a 0a 20 20 20 y.calling.external.players......
a8320 54 68 69 73 20 6d 61 6e 75 61 6c 20 74 72 69 65 73 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 69 This.manual.tries.to.be.the.defi
a8340 6e 69 74 69 76 65 20 73 6f 75 72 63 65 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f nitive.source.of.information.abo
a8360 75 74 0a 45 6d 6d 73 2c 20 61 6e 20 6f 6e 6c 69 6e 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 ut.Emms,.an.online.version.of.th
a8380 65 20 6d 61 6e 75 61 6c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 3a 0a 3c 68 74 74 70 3a e.manual.is.available.at:.<http:
a83a0 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d 6d 73 2f 6d 61 6e 75 //www.gnu.org/software/emms/manu
a83c0 61 6c 2f 3e 2e 0a 0a 20 20 20 54 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 al/>......The.basic.functionalit
a83e0 79 20 6f 66 20 45 6d 6d 73 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 72 65 65 20 70 61 72 74 y.of.Emms.consists.of.three.part
a8400 73 3a 20 54 68 65 20 63 6f 72 65 2c 0a 74 68 65 20 73 6f 75 72 63 65 73 2c 20 61 6e 64 20 74 68 s:.The.core,.the.sources,.and.th
a8420 65 20 70 6c 61 79 65 72 73 2e 0a 0a 20 20 20 54 68 65 20 63 6f 72 65 20 72 65 73 69 64 65 73 20 e.players......The.core.resides.
a8440 69 6e 20 27 65 6d 6d 73 2e 65 6c 27 2c 20 70 72 6f 76 69 64 65 73 20 61 20 73 69 6d 70 6c 65 20 in.'emms.el',.provides.a.simple.
a8460 70 6c 61 79 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 0a 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e playlist,.and.the.basic.function
a8480 61 6c 69 74 79 20 74 6f 20 75 73 65 20 61 6c 6c 20 74 68 65 20 6f 74 68 65 72 20 66 65 61 74 75 ality.to.use.all.the.other.featu
a84a0 72 65 73 20 6f 66 20 45 6d 6d 73 2e 20 20 49 74 20 70 72 6f 76 69 64 65 73 0a 74 68 65 20 63 6f res.of.Emms...It.provides.the.co
a84c0 6d 6d 6f 6e 20 75 73 65 72 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 69 6e 74 65 72 66 61 63 65 mmon.user.commands.and.interface
a84e0 73 20 66 6f 72 20 6f 74 68 65 72 20 70 61 72 74 73 2e 20 20 49 74 20 74 68 69 6e 6b 73 20 69 6e s.for.other.parts...It.thinks.in
a8500 0a 74 72 61 63 6b 73 2c 20 77 68 65 72 65 20 61 20 74 72 61 63 6b 20 69 73 20 74 68 65 20 63 6f .tracks,.where.a.track.is.the.co
a8520 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 61 20 74 79 70 65 20 61 6e 64 20 61 20 6e 61 6d 65 20 2d mbination.of.a.type.and.a.name.-
a8540 20 65 2e 67 2e 0a 74 68 65 20 74 72 61 63 6b 20 74 79 70 65 20 27 66 69 6c 65 20 68 61 73 20 61 .e.g..the.track.type.'file.has.a
a8560 20 6e 61 6d 65 20 74 68 61 74 20 69 73 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 2e 20 20 4f 74 .name.that.is.the.file.name...Ot
a8580 68 65 72 20 74 72 61 63 6b 0a 74 79 70 65 73 20 61 72 65 20 70 6f 73 73 69 62 6c 65 2e 0a 0a 20 her.track.types.are.possible....
a85a0 20 20 54 6f 20 67 65 74 20 74 6f 20 74 72 61 63 6b 73 2c 20 74 68 65 20 63 6f 72 65 20 6e 65 65 ..To.get.to.tracks,.the.core.nee
a85c0 64 73 20 73 6f 75 72 63 65 73 2e 20 20 54 68 65 20 66 69 6c 65 0a 27 65 6d 6d 73 2d 73 6f 75 72 ds.sources...The.file.'emms-sour
a85e0 63 65 2d 66 69 6c 65 2e 65 6c 27 20 70 72 6f 76 69 64 65 73 20 73 69 6d 70 6c 65 20 73 6f 75 72 ce-file.el'.provides.simple.sour
a8600 63 65 73 20 74 6f 20 69 6e 74 65 72 61 63 74 20 77 69 74 68 20 74 68 65 20 66 69 6c 65 0a 73 79 ces.to.interact.with.the.file.sy
a8620 73 74 65 6d 2e 0a 0a 20 20 20 57 68 65 6e 20 45 6d 6d 73 20 66 69 6e 61 6c 6c 79 20 68 61 73 20 stem......When.Emms.finally.has.
a8640 74 68 65 20 73 6f 75 72 63 65 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2c 20 69 74 20 the.sources.in.the.playlist,.it.
a8660 6e 65 65 64 73 20 61 20 70 6c 61 79 65 72 0a 74 6f 20 70 6c 61 79 20 74 68 65 6d 2e 20 20 27 65 needs.a.player.to.play.them...'e
a8680 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 27 20 64 65 66 69 6e 65 73 20 61 20 mms-player-simple.el'.defines.a.
a86a0 66 65 77 20 75 73 65 66 75 6c 20 70 6c 61 79 65 72 73 20 61 6e 64 0a 70 72 6f 76 69 64 65 73 20 few.useful.players.and.provides.
a86c0 61 20 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 64 20 77 61 79 20 6f 66 20 70 72 6f 76 69 64 69 a.straightforward.way.of.providi
a86e0 6e 67 20 79 6f 75 72 20 6f 77 6e 2e 0a 0a 20 20 20 54 68 65 20 45 6d 6d 73 20 63 6f 6d 65 73 20 ng.your.own......The.Emms.comes.
a8700 77 69 74 68 20 6d 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 66 65 61 74 75 72 65 73 20 74 6f with.many.additional.features.to
a8720 20 65 78 74 65 6e 64 20 74 68 65 0a 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 62 65 79 6f 6e 64 .extend.the.functionality.beyond
a8740 20 74 68 65 20 63 6f 72 65 2e 0a 0a 20 20 20 54 68 65 20 77 61 79 20 45 6d 6d 73 20 77 6f 72 6b .the.core......The.way.Emms.work
a8760 73 20 69 73 20 65 61 73 79 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 77 69 74 68 20 79 6f 75 72 s.is.easy.to.customize.with.your
a8780 20 6f 77 6e 20 63 6f 64 65 20 6f 72 20 62 79 0a 75 73 69 6e 67 20 27 4d 2d 78 20 63 75 73 74 6f .own.code.or.by.using.'M-x.custo
a87a0 6d 69 7a 65 27 20 6f 72 20 62 79 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c mize'.or.by.changing.the.variabl
a87c0 65 73 20 64 69 72 65 63 74 6c 79 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e es.directly.....File:.doc7SuRxP.
a87e0 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 51 75 69 63 6b 73 74 61 72 74 20 47 75 69 64 65 2c 20 20 info,..Node:.Quickstart.Guide,..
a8800 4e 65 78 74 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 49 6e 74 72 6f Next:.Installation,..Prev:.Intro
a8820 64 75 63 74 69 6f 6e 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 20 51 75 69 63 6b 73 74 61 72 74 20 duction,..Up:.Top..2.Quickstart.
a8840 47 75 69 64 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 69 73 20 63 Guide.******************..This.c
a8860 68 61 70 74 65 72 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 20 68 6f 77 20 74 6f 20 73 65 74 75 70 hapter.demonstrates.how.to.setup
a8880 20 45 6d 6d 73 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 73 74 61 72 74 0a 6c 69 73 74 .Emms.so.that.you.can.start.list
a88a0 65 6e 69 6e 67 20 74 6f 20 79 6f 75 72 20 6d 75 73 69 63 20 77 69 74 68 6f 75 74 20 68 61 76 69 ening.to.your.music.without.havi
a88c0 6e 67 20 74 6f 20 72 65 61 64 20 61 6c 6c 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 ng.to.read.all.of.the.documentat
a88e0 69 6f 6e 0a 66 69 72 73 74 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 20 74 6c 3b 64 72 20 76 65 ion.first...This.is.the.tl;dr.ve
a8900 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6d 61 6e 75 61 6c 2e 0a 0a 20 20 20 54 68 65 20 66 69 72 rsion.of.the.manual......The.fir
a8920 73 74 20 74 68 69 6e 67 20 74 6f 20 64 6f 20 69 73 20 74 6f 20 6c 6f 61 64 20 45 6d 6d 73 20 76 st.thing.to.do.is.to.load.Emms.v
a8940 69 61 20 47 4e 55 20 45 4c 50 41 2e 20 49 6e 76 6f 6b 65 20 27 4d 2d 78 0a 6c 69 73 74 2d 70 61 ia.GNU.ELPA..Invoke.'M-x.list-pa
a8960 63 6b 61 67 65 73 27 20 61 6e 64 20 63 68 6f 6f 73 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 45 6d ckages'.and.choose.to.install.Em
a8980 6d 73 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 45 6d ms......If.you.are.installing.Em
a89a0 6d 73 20 6d 61 6e 75 61 6c 6c 79 2c 20 74 68 65 6e 20 73 74 61 72 74 20 62 79 20 74 65 6c 6c 69 ms.manually,.then.start.by.telli
a89c0 6e 67 20 45 6d 61 63 73 0a 77 68 65 72 65 20 79 6f 75 72 20 63 6f 70 79 20 6f 66 20 45 6d 6d 73 ng.Emacs.where.your.copy.of.Emms
a89e0 20 69 73 20 6c 6f 63 61 74 65 64 2e 20 20 4c 65 74 27 73 20 73 61 79 20 79 6f 75 20 68 61 76 65 .is.located...Let's.say.you.have
a8a00 20 69 74 20 69 6e 0a 27 7e 2f 65 6c 69 73 70 2f 65 6d 6d 73 2f 27 2e 20 20 53 6f 20 61 64 64 20 .it.in.'~/elisp/emms/'...So.add.
a8a20 74 68 69 73 20 6c 69 6e 65 20 74 6f 20 79 6f 75 72 20 27 2e 65 6d 61 63 73 27 3a 0a 0a 20 20 20 this.line.to.your.'.emacs':.....
a8a40 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 20 22 7e 2f 65 6c 69 ..(add-to-list.'load-path."~/eli
a8a60 73 70 2f 65 6d 6d 73 2f 6c 69 73 70 2f 22 29 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 sp/emms/lisp/")......(require.'e
a8a80 6d 6d 73 2d 73 65 74 75 70 29 0a 0a 20 20 20 28 4d 6f 72 65 20 64 65 74 61 69 6c 65 64 20 69 6e mms-setup).....(More.detailed.in
a8aa0 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 69 6e 73 74 61 6c 6c 69 6e 67 20 45 6d 6d 73 20 formation.about.installing.Emms.
a8ac0 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 0a 69 6e 73 74 61 6c 6c 61 74 69 6f 6e can.be.found.in.the.installation
a8ae0 20 63 68 61 70 74 65 72 2c 20 2a 4e 6f 74 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 3a 2e 29 .chapter,.*Note.Installation::.)
a8b00 0a 0a 20 20 20 45 69 74 68 65 72 20 77 61 79 2c 20 79 6f 75 20 61 72 65 20 6e 6f 77 20 72 65 61 .....Either.way,.you.are.now.rea
a8b20 64 79 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 45 6d 6d 73 2e 20 20 59 6f 75 72 20 45 6d 6d 73 dy.to.configure.Emms...Your.Emms
a8b40 20 63 6f 6e 66 69 67 0a 63 61 6e 20 62 65 20 61 73 20 73 69 6d 70 6c 65 20 61 73 20 74 68 72 65 .config.can.be.as.simple.as.thre
a8b60 65 20 6c 69 6e 65 73 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 20 20 20 20 28 65 6d e.lines...For.example:.......(em
a8b80 6d 73 2d 61 6c 6c 29 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c ms-all)......(setq.emms-player-l
a8ba0 69 73 74 20 27 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c 63 29 0a 20 20 20 20 20 20 20 20 20 ist.'(emms-player-vlc)..........
a8bc0 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 ..emms-info-functions.'(emms-inf
a8be0 6f 2d 6e 61 74 69 76 65 29 29 0a 0a 20 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d o-native)).....The.function.'emm
a8c00 73 2d 61 6c 6c 27 20 6c 6f 61 64 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 73 74 61 62 6c 65 20 66 s-all'.loads.all.of.the.stable.f
a8c20 65 61 74 75 72 65 73 20 69 6e 20 45 6d 6d 73 2e 0a 0a 20 20 20 45 6d 6d 73 20 63 61 6e 20 61 75 eatures.in.Emms......Emms.can.au
a8c40 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 20 74 68 61 74 20 27 73 65 74 71 27 tomatically.generate.that.'setq'
a8c60 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 72 20 79 6f 75 20 62 61 73 65 64 0a 6f 6e 20 77 68 69 63 .statement.for.you.based.on.whic
a8c80 68 20 70 6c 61 79 65 72 73 20 61 6e 64 20 6d 65 74 61 64 61 74 61 20 72 65 61 64 65 72 73 20 79 h.players.and.metadata.readers.y
a8ca0 6f 75 20 68 61 76 65 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d ou.have.installed.on.your.system
a8cc0 2e 0a 4a 75 73 74 20 69 6e 76 6f 6b 65 20 27 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 ..Just.invoke.'emms-setup-discov
a8ce0 65 72 27 20 61 6e 64 20 61 6e 73 77 65 72 20 61 20 66 65 77 20 71 75 65 73 74 69 6f 6e 73 2e 0a er'.and.answer.a.few.questions..
a8d00 0a 20 20 20 54 68 65 20 76 61 72 69 61 62 6c 65 20 45 4d 4d 53 2d 50 4c 41 59 45 52 2d 4c 49 53 ....The.variable.EMMS-PLAYER-LIS
a8d20 54 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 74 68 61 74 20 45 6d 6d 73 T.is.a.list.of.players.that.Emms
a8d40 20 73 68 6f 75 6c 64 0a 63 61 6c 6c 20 74 6f 20 70 6c 61 79 20 79 6f 75 72 20 6d 65 64 69 61 2e .should.call.to.play.your.media.
a8d60 20 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 77 65 20 61 73 73 75 6d 65 20 74 68 61 74 ..In.this.example.we.assume.that
a8d80 20 79 6f 75 20 68 61 76 65 20 56 4c 43 0a 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 20 .you.have.VLC.installed.on.your.
a8da0 73 79 73 74 65 6d 2e 20 20 42 75 74 20 69 66 20 79 6f 75 20 75 73 65 20 6d 70 76 20 6f 72 20 6d system...But.if.you.use.mpv.or.m
a8dc0 70 6c 61 79 65 72 20 69 6e 73 74 65 61 64 2c 20 6a 75 73 74 0a 63 68 61 6e 67 65 20 27 65 6d 6d player.instead,.just.change.'emm
a8de0 73 2d 70 6c 61 79 65 72 2d 76 6c 63 27 20 74 6f 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 s-player-vlc'.to.'emms-player-mp
a8e00 76 27 20 6f 72 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 27 3b 0a 79 6f 75 v'.or.'emms-player-mplayer';.you
a8e20 20 67 65 74 20 74 68 65 20 69 64 65 61 2e 0a 0a 20 20 20 54 68 65 20 76 61 72 69 61 62 6c 65 20 .get.the.idea......The.variable.
a8e40 45 4d 4d 53 2d 49 4e 46 4f 2d 46 55 4e 43 54 49 4f 4e 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 EMMS-INFO-FUNCTIONS.is.a.list.of
a8e60 20 77 61 79 73 20 66 6f 72 20 45 6d 6d 73 20 74 6f 20 72 65 61 64 0a 74 68 65 20 6d 65 74 61 64 .ways.for.Emms.to.read.the.metad
a8e80 61 74 61 20 69 6e 20 79 6f 75 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2c 20 73 6f 20 74 68 61 74 ata.in.your.media.files,.so.that
a8ea0 20 45 6d 6d 73 20 63 61 6e 20 64 69 73 70 6c 61 79 20 74 68 65 20 73 6f 6e 67 0a 74 69 74 6c 65 .Emms.can.display.the.song.title
a8ec0 2c 20 61 72 74 69 73 74 20 6e 61 6d 65 2c 20 65 74 63 2e 20 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d ,.artist.name,.etc...'emms-info-
a8ee0 6e 61 74 69 76 65 27 20 69 73 20 61 20 6d 65 74 61 64 61 74 61 20 72 65 61 64 65 72 0a 77 72 69 native'.is.a.metadata.reader.wri
a8f00 74 74 65 6e 20 65 6e 74 69 72 65 6c 79 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 2c 20 62 75 74 tten.entirely.in.Emacs.Lisp,.but
a8f20 20 74 68 65 72 65 20 61 72 65 20 61 6c 73 6f 20 6f 74 68 65 72 20 62 61 63 6b 65 6e 64 73 20 77 .there.are.also.other.backends.w
a8f40 68 69 63 68 0a 63 61 6c 6c 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 73 20 73 75 63 68 hich.call.external.programs.such
a8f60 20 61 73 20 54 69 6e 79 54 61 67 2c 20 54 61 67 6c 69 62 2c 20 45 78 69 66 74 6f 6f 6c 2c 20 61 .as.TinyTag,.Taglib,.Exiftool,.a
a8f80 6e 64 20 65 74 63 2e 0a 0a 20 20 20 52 65 6c 6f 61 64 20 79 6f 75 72 20 45 6d 61 63 73 20 69 6e nd.etc......Reload.your.Emacs.in
a8fa0 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 2c 20 6f 72 20 72 65 73 74 61 72 74 20 45 6d itialization.file,.or.restart.Em
a8fc0 61 63 73 20 74 6f 20 6c 65 74 20 74 68 65 0a 63 68 61 6e 67 65 73 20 68 61 76 65 20 61 6e 20 65 acs.to.let.the.changes.have.an.e
a8fe0 66 66 65 63 74 2e 0a 0a 20 20 20 41 64 64 20 61 6c 6c 20 79 6f 75 72 20 6d 75 73 69 63 20 74 6f ffect......Add.all.your.music.to
a9000 20 61 20 70 6c 61 79 6c 69 73 74 20 62 79 20 69 6e 76 6f 6b 69 6e 67 20 27 4d 2d 78 0a 65 6d 6d .a.playlist.by.invoking.'M-x.emm
a9020 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 52 45 54 20 7e 2f 6d 79 5f 6d 75 s-add-directory-tree.RET.~/my_mu
a9040 73 69 63 5f 64 69 72 65 63 74 6f 72 79 2f 20 52 45 54 27 2e 20 20 57 68 65 6e 20 79 6f 75 20 64 sic_directory/.RET'...When.you.d
a9060 6f 0a 74 68 69 73 20 45 6d 6d 73 20 77 69 6c 6c 20 73 74 61 72 74 20 72 65 61 64 69 6e 67 20 6d o.this.Emms.will.start.reading.m
a9080 65 74 61 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 73 20 61 6e 64 20 70 6f 70 75 6c etadata.from.the.files.and.popul
a90a0 61 74 69 6e 67 20 74 68 65 0a 63 61 63 68 65 2e 20 20 54 68 69 73 20 6d 61 79 20 74 61 6b 65 20 ating.the.cache...This.may.take.
a90c0 61 20 77 68 69 6c 65 2e 0a 0a 20 20 20 57 68 65 6e 20 79 6f 75 20 61 72 65 20 64 6f 6e 65 2c 20 a.while......When.you.are.done,.
a90e0 79 6f 75 20 63 61 6e 20 6c 6f 61 64 20 74 68 65 20 62 72 6f 77 73 65 72 20 77 69 74 68 20 27 4d you.can.load.the.browser.with.'M
a9100 2d 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 27 2c 0a 6f 72 20 76 69 65 77 20 79 6f 75 72 20 70 -x.emms-browser',.or.view.your.p
a9120 6c 61 79 6c 69 73 74 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 20 27 4d 2d 78 20 65 6d 6d 73 2d laylist.directly.with.'M-x.emms-
a9140 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 27 20 28 77 68 65 6e 20 69 6e 0a 74 68 65 20 70 playlist-mode-go'.(when.in.the.p
a9160 6c 61 79 6c 69 73 74 20 79 6f 75 20 63 61 6e 20 68 69 74 20 27 52 45 54 27 20 6f 6e 20 61 20 74 laylist.you.can.hit.'RET'.on.a.t
a9180 72 61 63 6b 20 74 6f 20 73 74 61 72 74 20 70 6c 61 79 69 6e 67 20 69 74 2e 29 0a 0a 20 20 20 4e rack.to.start.playing.it.).....N
a91a0 6f 77 20 79 6f 75 20 63 61 6e 20 73 74 61 72 74 20 65 78 70 6c 6f 72 69 6e 67 20 45 6d 6d 73 2e ow.you.can.start.exploring.Emms.
a91c0 20 20 49 74 27 73 20 70 72 6f 62 61 62 6c 79 20 62 65 73 74 20 74 6f 20 62 65 67 69 6e 20 77 69 ..It's.probably.best.to.begin.wi
a91e0 74 68 0a 74 68 65 20 62 61 73 69 63 20 63 6f 6d 6d 61 6e 64 73 20 28 2a 6e 6f 74 65 20 42 61 73 th.the.basic.commands.(*note.Bas
a9200 69 63 20 43 6f 6d 6d 61 6e 64 73 3a 3a 29 2c 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 ic.Commands::),.the.interactive.
a9220 70 6c 61 79 6c 69 73 74 73 0a 28 2a 6e 6f 74 65 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 playlists.(*note.Interactive.Pla
a9240 79 6c 69 73 74 73 3a 3a 29 2c 20 61 6e 64 20 74 68 65 20 62 72 6f 77 73 65 72 20 28 2a 6e 6f 74 ylists::),.and.the.browser.(*not
a9260 65 20 54 68 65 20 42 72 6f 77 73 65 72 3a 3a 29 2e 0a 0a 20 20 20 4d 6f 72 65 20 64 65 74 61 69 e.The.Browser::)......More.detai
a9280 6c 20 61 62 6f 75 74 20 73 65 74 74 69 6e 67 20 75 70 20 45 6d 6d 73 20 63 61 6e 20 62 65 20 66 l.about.setting.up.Emms.can.be.f
a92a0 6f 75 6e 64 20 69 6e 20 74 68 65 20 73 65 74 75 70 20 63 68 61 70 74 65 72 2c 0a 2a 4e 6f 74 65 ound.in.the.setup.chapter,.*Note
a92c0 20 53 65 74 75 70 3a 3a 2e 0a 0a 20 20 20 4e 65 65 64 20 68 65 6c 70 3f 20 20 54 68 65 72 65 20 .Setup::......Need.help?..There.
a92e0 61 72 65 20 6b 6e 6f 77 6c 65 64 67 65 61 62 6c 65 20 70 65 6f 70 6c 65 20 6f 6e 20 74 68 65 20 are.knowledgeable.people.on.the.
a9300 23 65 6d 61 63 73 20 63 68 61 6e 6e 65 6c 20 6f 6e 0a 69 72 63 20 28 69 72 63 2e 6c 69 62 65 72 #emacs.channel.on.irc.(irc.liber
a9320 61 2e 63 68 61 74 29 2c 20 61 6e 64 20 45 6d 6d 73 20 68 61 73 20 61 20 6d 61 69 6c 69 6e 67 20 a.chat),.and.Emms.has.a.mailing.
a9340 6c 69 73 74 20 61 74 20 65 6d 6d 73 2d 68 65 6c 70 40 67 6e 75 2e 6f 72 67 2e 0a 0a 1f 0a 46 69 list.at.emms-help@gnu.org.....Fi
a9360 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 73 74 61 le:.doc7SuRxP.info,..Node:.Insta
a9380 6c 6c 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 53 65 74 75 70 2c 20 20 50 72 65 76 3a 20 51 75 llation,..Next:.Setup,..Prev:.Qu
a93a0 69 63 6b 73 74 61 72 74 20 47 75 69 64 65 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 33 20 49 6e 73 74 ickstart.Guide,..Up:.Top..3.Inst
a93c0 61 6c 6c 61 74 69 6f 6e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 69 73 allation.**************..Emms.is
a93e0 20 61 76 61 69 6c 61 62 6c 65 20 76 69 61 20 47 4e 55 20 45 4c 50 41 2c 20 77 68 69 63 68 20 74 .available.via.GNU.ELPA,.which.t
a9400 61 6b 65 73 20 63 61 72 65 20 6f 66 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e akes.care.of.all.of.the.followin
a9420 67 0a 73 74 65 70 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 0a 20 20 20 49 66 20 79 6f g.steps.automatically......If.yo
a9440 75 20 61 72 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 45 6d 6d 73 20 6d 61 6e 75 61 6c 6c 79 2c 20 u.are.installing.Emms.manually,.
a9460 79 6f 75 20 6e 65 65 64 20 74 6f 20 70 75 74 20 61 6c 6c 20 74 68 65 20 2e 65 6c 0a 66 69 6c 65 you.need.to.put.all.the..el.file
a9480 73 20 6f 66 20 65 6d 6d 73 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 79 6f 75 72 s.of.emms.in.a.directory.in.your
a94a0 20 6c 6f 61 64 2d 70 61 74 68 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 .load-path...For.example,.if.you
a94c0 20 70 75 74 0a 61 6c 6c 20 74 68 6f 73 65 20 66 69 6c 65 73 20 69 6e 74 6f 20 7e 2f 65 6c 69 73 .put.all.those.files.into.~/elis
a94e0 70 2f 65 6d 6d 73 2f 2c 20 74 68 65 6e 20 69 6e 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 73 2c 20 p/emms/,.then.in.your.~/.emacs,.
a9500 79 6f 75 20 73 68 6f 75 6c 64 0a 61 64 64 3a 0a 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 you.should.add:.......(add-to-li
a9520 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 20 22 7e 2f 65 6c 69 73 70 2f 65 6d 6d 73 2f 6c 69 73 70 st.'load-path."~/elisp/emms/lisp
a9540 2f 22 29 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 3a 3a /")..*.Menu:..*.Compiling.Emms::
a9560 20 20 20 20 20 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 20 69 6e 74 6f 20 42 79 74 65 2d 43 ......Compiling.Emms.into.Byte-C
a9580 6f 64 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e ode.....File:.doc7SuRxP.info,..N
a95a0 6f 64 65 3a 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 2c 20 20 55 70 3a 20 49 6e 73 74 61 6c ode:.Compiling.Emms,..Up:.Instal
a95c0 6c 61 74 69 6f 6e 0a 0a 33 2e 31 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 0a 3d 3d 3d 3d 3d lation..3.1.Compiling.Emms.=====
a95e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 =============..If.you.are.using.
a9600 58 45 6d 61 63 73 2c 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 65 64 69 74 20 27 4d XEmacs,.you.will.need.to.edit.'M
a9620 61 6b 65 66 69 6c 65 27 20 61 73 20 66 6f 6c 6c 6f 77 73 0a 62 65 66 6f 72 65 20 63 6f 6e 74 69 akefile'.as.follows.before.conti
a9640 6e 75 69 6e 67 2e 0a 0a 20 20 20 20 20 45 4d 41 43 53 3d 78 65 6d 61 63 73 0a 20 20 20 20 20 53 nuing........EMACS=xemacs......S
a9660 49 54 45 46 4c 41 47 3d 2d 6e 6f 2d 73 69 74 65 2d 66 69 6c 65 0a 0a 20 20 20 59 6f 75 20 63 61 ITEFLAG=-no-site-file.....You.ca
a9680 6e 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 20 45 6d 6d 73 20 62 79 20 66 69 72 73 74 20 65 6e 74 n.byte-compile.Emms.by.first.ent
a96a0 65 72 69 6e 67 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 74 ering.the.directory.containing.t
a96c0 68 65 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 he.Emms.source.code,.followed.by
a96e0 20 69 6e 76 6f 6b 69 6e 67 3a 0a 0a 20 20 20 27 6d 61 6b 65 27 0a 0a 20 20 20 57 68 69 63 68 20 .invoking:.....'make'.....Which.
a9700 77 69 6c 6c 20 62 79 74 65 20 63 6f 6d 70 69 6c 65 20 45 6d 6d 73 2e 20 20 59 6f 75 20 63 61 6e will.byte.compile.Emms...You.can
a9720 20 74 68 65 6e 20 69 6e 76 6f 6b 65 3a 0a 0a 20 20 20 27 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 27 .then.invoke:.....'make.install'
a9740 0a 0a 20 20 20 57 68 69 63 68 20 77 69 6c 6c 20 69 6e 73 74 61 6c 6c 20 45 6d 6d 73 20 69 6e 74 .....Which.will.install.Emms.int
a9760 6f 20 79 6f 75 72 20 45 6d 61 63 73 20 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 72 6f 76 69 64 o.your.Emacs.directories.(provid
a9780 65 64 20 79 6f 75 0a 68 61 76 65 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 65 72 6d ed.you.have.the.appropriate.perm
a97a0 69 73 73 69 6f 6e 73 20 74 6f 20 64 6f 20 73 6f 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 29 issions.to.do.so.on.your.system)
a97c0 2e 0a 0a 20 20 20 4e 6f 74 65 20 74 68 61 74 20 45 6d 6d 73 20 69 73 20 61 20 6c 69 67 68 74 2d ......Note.that.Emms.is.a.light-
a97e0 77 65 69 67 68 74 20 61 6e 64 20 61 67 69 6c 65 20 70 72 6f 67 72 61 6d 2c 20 79 6f 75 20 63 61 weight.and.agile.program,.you.ca
a9800 6e 20 74 68 65 72 65 66 6f 72 65 0a 72 75 6e 20 45 6d 6d 73 20 6a 75 73 74 20 66 69 6e 65 20 77 n.therefore.run.Emms.just.fine.w
a9820 69 74 68 6f 75 74 20 62 79 74 65 20 63 6f 6d 70 69 6c 69 6e 67 20 69 74 2e 0a 0a 1f 0a 46 69 6c ithout.byte.compiling.it.....Fil
a9840 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 65 74 75 70 2c e:.doc7SuRxP.info,..Node:.Setup,
a9860 20 20 4e 65 78 74 3a 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 49 6e ..Next:.Configuration,..Prev:.In
a9880 73 74 61 6c 6c 61 74 69 6f 6e 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 34 20 53 65 74 75 70 0a 2a 2a stallation,..Up:.Top..4.Setup.**
a98a0 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 27 65 6d 6d 73 2d 73 65 74 75 70 27 20 66 65 61 74 75 72 65 20 *****..The.'emms-setup'.feature.
a98c0 69 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 2d 73 65 is.provided.by.the.file.'emms-se
a98e0 74 75 70 2e 65 6c 27 2e 20 20 49 74 20 69 73 0a 65 73 73 65 6e 74 69 61 6c 6c 79 20 61 20 63 6f tup.el'...It.is.essentially.a.co
a9900 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 73 68 6f 72 74 63 75 74 73 20 66 6f 72 20 6c 6f 61 64 69 6e llection.of.shortcuts.for.loadin
a9920 67 20 64 69 66 66 65 72 65 6e 74 20 45 6d 6d 73 0a 66 65 61 74 75 72 65 73 20 71 75 69 63 6b 6c g.different.Emms.features.quickl
a9940 79 2c 20 62 75 74 20 65 76 65 72 79 74 68 69 6e 67 20 79 6f 75 20 63 61 6e 20 64 6f 20 77 69 74 y,.but.everything.you.can.do.wit
a9960 68 20 27 65 6d 6d 73 2d 73 65 74 75 70 27 20 63 61 6e 20 61 6c 73 6f 0a 62 65 20 64 6f 6e 65 20 h.'emms-setup'.can.also.be.done.
a9980 6d 61 6e 75 61 6c 6c 79 2e 0a 0a 20 20 20 57 65 20 75 73 65 20 27 65 6d 6d 73 2d 73 65 74 75 70 manually......We.use.'emms-setup
a99a0 27 20 62 79 20 63 61 6c 6c 69 6e 67 20 6f 6e 65 20 6f 66 20 74 68 65 20 73 65 74 75 70 20 66 75 '.by.calling.one.of.the.setup.fu
a99c0 6e 63 74 69 6f 6e 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6d 69 6e nctions....--.Function:.emms-min
a99e0 69 6d 61 6c 69 73 74 69 63 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 65 74 75 70 20 73 63 72 imalistic......An.Emms.setup.scr
a9a00 69 70 74 2e 20 20 50 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 62 61 73 69 ipt...Playlists.and.all.the.basi
a9a20 63 73 20 66 6f 72 20 70 6c 61 79 69 6e 67 0a 20 20 20 20 20 6d 65 64 69 61 2c 20 62 75 74 20 6e cs.for.playing......media,.but.n
a9a40 6f 74 68 69 6e 67 20 65 6c 73 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 othing.else....--.Function:.emms
a9a60 2d 61 6c 6c 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 65 74 75 70 20 73 63 72 69 70 74 2e 20 -all......An.Emms.setup.script..
a9a80 20 4c 6f 61 64 73 20 61 6c 6c 20 74 68 65 20 73 74 61 62 6c 65 20 66 65 61 74 75 72 65 73 20 77 .Loads.all.the.stable.features.w
a9aa0 68 69 63 68 20 63 6f 6d 65 0a 20 20 20 20 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 20 64 69 73 hich.come......with.the.Emms.dis
a9ac0 74 72 69 62 75 74 69 6f 6e 2e 0a 0a 20 20 20 27 65 6d 6d 73 2d 73 65 74 75 70 27 20 61 6c 73 6f tribution......'emms-setup'.also
a9ae0 20 63 6f 6d 65 73 20 77 69 74 68 20 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 66 75 6e 63 74 69 .comes.with.a.convenience.functi
a9b00 6f 6e 20 74 6f 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 0a 6c 69 73 74 20 6f 66 20 6d 65 64 69 on.to.set.a.default.list.of.medi
a9b20 61 20 70 6c 61 79 65 72 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 64 a.players....--.Function:.emms-d
a9b40 65 66 61 75 6c 74 2d 70 6c 61 79 65 72 73 0a 20 20 20 20 20 53 65 74 20 45 4d 4d 53 2d 50 4c 41 efault-players......Set.EMMS-PLA
a9b60 59 45 52 2d 4c 49 53 54 20 74 6f 20 45 4d 4d 53 2d 53 45 54 55 50 2d 44 45 46 41 55 4c 54 2d 50 YER-LIST.to.EMMS-SETUP-DEFAULT-P
a9b80 4c 41 59 45 52 2d 4c 49 53 54 2e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 6f 66 20 63 6f 75 72 73 LAYER-LIST......You.can.of.cours
a9ba0 65 20 77 72 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 45 6d 6d 73 20 73 65 74 75 70 20 66 75 6e 63 e.write.your.own.Emms.setup.func
a9bc0 74 69 6f 6e 73 20 6c 69 6b 65 20 74 68 65 20 61 62 6f 76 65 0a 62 79 20 6c 6f 6f 6b 69 6e 67 20 tions.like.the.above.by.looking.
a9be0 61 74 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 at.the.existing.function.definit
a9c00 69 6f 6e 73 20 69 6e 20 27 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 27 2e 0a 0a 1f 0a 46 69 6c 65 ions.in.'emms-setup.el'.....File
a9c20 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 6e 66 69 67 75 :.doc7SuRxP.info,..Node:.Configu
a9c40 72 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 47 65 74 74 69 6e 67 20 48 65 6c 70 2c 20 20 50 72 ration,..Next:.Getting.Help,..Pr
a9c60 65 76 3a 20 53 65 74 75 70 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 35 20 43 6f 6e 66 69 67 75 72 61 ev:.Setup,..Up:.Top..5.Configura
a9c80 74 69 6f 6e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 69 73 20 63 68 61 70 74 tion.***************..This.chapt
a9ca0 65 72 20 64 69 73 63 75 73 73 65 73 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f er.discusses.the.configuration.o
a9cc0 66 20 45 6d 6d 73 20 69 6e 20 6d 6f 72 65 20 64 65 74 61 69 6c 2e 0a 0a 20 20 20 54 68 65 20 66 f.Emms.in.more.detail......The.f
a9ce0 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 66 72 61 67 6d 65 6e 74 20 70 72 6f 76 69 64 65 73 20 ollowing.code.fragment.provides.
a9d00 61 20 6d 69 6e 69 6d 61 6c 20 45 6d 6d 73 20 73 65 74 75 70 20 77 69 74 68 6f 75 74 0a 75 73 69 a.minimal.Emms.setup.without.usi
a9d20 6e 67 20 74 68 65 20 6c 61 79 65 72 20 6f 66 20 27 65 6d 6d 73 2d 73 65 74 75 70 27 2e 20 20 49 ng.the.layer.of.'emms-setup'...I
a9d40 74 20 63 61 6e 20 6d 61 79 62 65 20 62 65 20 75 73 65 64 20 74 6f 20 62 65 74 74 65 72 0a 75 6e t.can.maybe.be.used.to.better.un
a9d60 64 65 72 73 74 61 6e 64 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 73 20 6f 66 20 45 6d 6d 73 2e 20 derstand.the.internals.of.Emms..
a9d80 20 59 6f 75 20 63 61 6e 20 73 65 65 20 68 6f 77 20 45 6d 6d 73 20 6e 65 65 64 73 20 74 6f 20 6b .You.can.see.how.Emms.needs.to.k
a9da0 6e 6f 77 0a 61 62 6f 75 74 20 70 6c 61 79 65 72 73 20 28 74 68 65 73 65 20 61 72 65 20 64 65 66 now.about.players.(these.are.def
a9dc0 69 6e 65 64 20 69 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 27 29 20 61 6e ined.in.'emms-player-simple').an
a9de0 64 20 61 62 6f 75 74 0a 73 6f 75 72 63 65 73 20 66 6f 72 20 74 72 61 63 6b 73 20 28 74 72 69 76 d.about.sources.for.tracks.(triv
a9e00 69 61 6c 20 66 69 6c 65 20 73 79 73 74 65 6d 20 62 61 73 65 64 20 73 6f 75 72 63 65 73 2c 20 73 ial.file.system.based.sources,.s
a9e20 75 63 68 20 61 73 20 74 68 69 73 0a 27 65 6d 6d 73 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 uch.as.this.'emms-directory-tree
a9e40 27 2c 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 ',.are.defined.in.'emms-source-f
a9e60 69 6c 65 27 29 2e 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 ile')........(require.'emms-play
a9e80 65 72 2d 73 69 6d 70 6c 65 29 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 er-simple)......(require.'emms-s
a9ea0 6f 75 72 63 65 2d 66 69 6c 65 29 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d ource-file)......(require.'emms-
a9ec0 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 source-playlist)......(setq.emms
a9ee0 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 27 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 -player-list.'(emms-player-mpg32
a9f00 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1...............................
a9f20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6f 67 67 31 32 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 emms-player-ogg123..............
a9f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c .................emms-player-mpl
a9f60 61 79 65 72 29 29 0a 0a 20 20 20 46 6f 72 20 61 20 64 69 73 63 75 73 73 69 6f 6e 20 6f 6e 20 68 ayer)).....For.a.discussion.on.h
a9f80 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 6c 61 79 65 72 73 2c ow.to.define.additional.players,
a9fa0 20 73 65 65 20 2a 4e 6f 74 65 0a 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 3a 3a 2e 0a 0a 20 20 .see.*Note.Simple.Players::.....
a9fc0 20 4d 75 63 68 20 6f 66 20 74 68 65 20 62 65 68 61 76 69 6f 75 72 20 6f 66 20 45 6d 6d 73 20 63 .Much.of.the.behaviour.of.Emms.c
a9fe0 61 6e 20 62 65 20 63 68 61 6e 67 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 76 61 72 69 61 62 6c an.be.changed.by.setting.variabl
aa000 65 73 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d es..For.example:.......(setq.emm
aa020 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 6e 69 6c 29 0a 20 20 20 20 20 s-info-asynchronously.nil)......
aa040 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 (setq.emms-playlist-buffer-name.
aa060 22 2a 4d 75 73 69 63 2a 22 29 0a 0a 20 20 20 54 68 65 20 66 69 72 73 74 20 27 73 65 74 71 27 20 "*Music*").....The.first.'setq'.
aa080 74 75 72 6e 73 20 6f 66 66 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64 61 74 turns.off.the.asynchronous.updat
aa0a0 69 6e 67 20 6f 66 20 69 6e 66 6f 20 74 61 67 73 2e 0a 54 68 65 20 73 65 63 6f 6e 64 20 73 65 74 ing.of.info.tags..The.second.set
aa0c0 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 45 6d 6d 73 20 70 s.the.default.name.of.the.Emms.p
aa0e0 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 41 6e 6f 74 68 65 72 20 77 61 79 20 laylist.buffer......Another.way.
aa100 74 6f 20 63 68 61 6e 67 65 20 45 6d 6d 73 20 76 61 72 69 61 62 6c 65 73 20 69 73 20 74 6f 20 75 to.change.Emms.variables.is.to.u
aa120 73 65 20 74 68 65 20 4d 2d 78 20 27 63 75 73 74 6f 6d 69 7a 65 27 0a 6d 65 63 68 61 6e 69 73 6d se.the.M-x.'customize'.mechanism
aa140 20 70 72 6f 76 69 64 65 64 20 62 79 20 45 6d 61 63 73 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 .provided.by.Emacs...*.Menu:..*.
aa160 46 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 3a 3a 20 20 20 20 20 46 69 Finding.files.and.speed::.....Fi
aa180 6e 64 69 6e 67 20 66 69 6c 65 73 20 71 75 69 63 6b 6c 79 20 6f 72 20 70 6f 72 74 61 62 6c 79 2e nding.files.quickly.or.portably.
aa1a0 0a 2a 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.Setup.Examples::.............
aa1c0 20 45 78 61 6d 70 6c 65 73 20 6f 66 20 77 61 79 73 20 74 6f 20 73 65 74 75 70 20 45 6d 6d 73 2e .Examples.of.ways.to.setup.Emms.
aa1e0 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ....File:.doc7SuRxP.info,..Node:
aa200 20 46 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 2c 20 20 4e 65 78 74 3a .Finding.files.and.speed,..Next:
aa220 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 2c 20 20 55 70 3a 20 43 6f 6e 66 69 67 75 72 61 74 .Setup.Examples,..Up:.Configurat
aa240 69 6f 6e 0a 0a 35 2e 31 20 46 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 ion..5.1.Finding.files.and.speed
aa260 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 45 6d .===========================..Em
aa280 6d 73 20 6e 65 65 64 73 20 74 6f 20 74 72 61 76 65 72 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 ms.needs.to.traverse.directories
aa2a0 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 66 69 6e 64 20 70 6c 61 79 61 62 6c 65 20 6d 65 64 69 61 .in.order.to.find.playable.media
aa2c0 2e 20 20 54 68 65 0a 64 65 66 61 75 6c 74 20 6d 65 74 68 6f 64 20 45 6d 6d 73 20 75 73 65 73 20 ...The.default.method.Emms.uses.
aa2e0 74 6f 20 61 63 68 69 76 65 20 74 68 69 73 20 69 73 0a 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 to.achive.this.is.'emms-source-f
aa300 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 69 6e 74 65 72 6e 61 6c 27 20 61 73 20 ile-directory-tree-internal'.as.
aa320 64 65 66 69 6e 65 64 20 69 6e 0a 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 27 defined.in.'emms-source-file.el'
aa340 2e 20 20 54 68 65 20 61 62 6f 76 65 20 6d 65 74 68 6f 64 20 69 73 20 77 72 69 74 74 65 6e 20 70 ...The.above.method.is.written.p
aa360 6f 72 74 61 62 6c 79 20 61 6e 64 20 77 69 6c 6c 0a 61 6c 77 61 79 73 20 77 6f 72 6b 2c 20 62 75 ortably.and.will.always.work,.bu
aa380 74 20 6d 69 67 68 74 20 62 65 20 74 6f 6f 20 73 6c 6f 77 20 69 66 20 77 65 20 77 61 6e 74 20 74 t.might.be.too.slow.if.we.want.t
aa3a0 6f 20 6c 6f 61 64 20 73 65 76 65 72 61 6c 20 68 75 6e 64 72 65 64 0a 74 72 61 63 6b 73 20 28 6f o.load.several.hundred.tracks.(o
aa3c0 72 20 6d 6f 72 65 29 2e 0a 0a 20 20 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 r.more)......'emms-source-file.e
aa3e0 6c 27 20 64 65 66 69 6e 65 73 20 61 6e 6f 74 68 65 72 20 6d 65 74 68 6f 64 20 66 6f 72 20 66 69 l'.defines.another.method.for.fi
aa400 6e 64 69 6e 67 20 66 69 6c 65 73 2c 0a 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 nding.files,.'emms-source-file-d
aa420 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 69 6e 64 27 20 77 68 69 63 68 20 75 73 65 73 20 47 irectory-tree-find'.which.uses.G
aa440 4e 55 2f 66 69 6e 64 2e 0a 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 NU/find..'emms-source-file-direc
aa460 74 6f 72 79 2d 74 72 65 65 2d 66 69 6e 64 27 20 69 73 20 75 73 75 61 6c 6c 79 20 61 6e 20 6f 72 tory-tree-find'.is.usually.an.or
aa480 64 65 72 20 6f 66 20 6d 61 67 6e 69 74 75 64 65 0a 66 61 73 74 65 72 2c 20 62 75 74 20 6f 66 20 der.of.magnitude.faster,.but.of.
aa4a0 63 6f 75 72 73 65 20 77 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20 69 66 20 79 6f 75 20 64 6f 20 6e course.will.not.work.if.you.do.n
aa4c0 6f 74 20 68 61 76 65 20 47 4e 55 2f 66 69 6e 64 0a 69 6e 73 74 61 6c 6c 65 64 2e 0a 0a 20 20 20 ot.have.GNU/find.installed......
aa4e0 54 68 65 20 6d 65 74 68 6f 64 20 45 6d 6d 73 20 77 69 6c 6c 20 75 73 65 20 69 73 20 64 65 66 69 The.method.Emms.will.use.is.defi
aa500 6e 65 64 20 69 6e 20 74 68 65 20 63 75 73 74 6f 6d 69 73 61 62 6c 65 20 76 61 72 69 61 62 6c 65 ned.in.the.customisable.variable
aa520 0a 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 49 52 45 43 54 4f 52 59 2d 54 52 45 45 .EMMS-SOURCE-FILE-DIRECTORY-TREE
aa540 2d 46 55 4e 43 54 49 4f 4e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e -FUNCTION.....File:.doc7SuRxP.in
aa560 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 2c 20 20 50 72 65 76 fo,..Node:.Setup.Examples,..Prev
aa580 3a 20 46 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 2c 20 20 55 70 3a 20 :.Finding.files.and.speed,..Up:.
aa5a0 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 0a 35 2e 32 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 Configuration..5.2.Setup.Example
aa5c0 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 57 68 61 74 20 66 6f 6c 6c 6f s.==================..What.follo
aa5e0 77 20 61 72 65 20 73 61 6d 70 6c 65 73 20 66 72 6f 6d 20 72 65 61 6c 2d 77 6f 72 6c 64 20 45 6d w.are.samples.from.real-world.Em
aa600 6d 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 77 68 69 63 68 20 73 68 6f 77 0a 73 6f 6d ms.configurations.which.show.som
aa620 65 20 6f 66 20 74 68 65 20 76 61 72 69 65 74 79 20 61 6e 64 20 62 72 65 61 64 74 68 20 6f 66 20 e.of.the.variety.and.breadth.of.
aa640 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 70 65 6f 70 6c 65 20 6d 61 6b 65 20 74 6f 20 74 68 65 modifications.people.make.to.the
aa660 0a 64 65 66 61 75 6c 74 20 45 6d 6d 73 20 73 65 74 75 70 2e 0a 0a 20 20 20 54 68 65 20 66 6f 6c .default.Emms.setup......The.fol
aa680 6c 6f 77 69 6e 67 20 65 78 63 65 72 70 74 20 69 6e 63 6c 75 64 65 73 20 64 62 75 73 20 69 6e 74 lowing.excerpt.includes.dbus.int
aa6a0 65 67 72 61 74 69 6f 6e 2c 20 64 65 66 69 6e 69 6e 67 20 61 20 22 72 65 63 65 6e 74 22 0a 66 69 egration,.defining.a."recent".fi
aa6c0 6c 74 65 72 20 66 6f 72 20 74 68 65 20 2a 4e 6f 74 65 20 54 68 65 20 42 72 6f 77 73 65 72 3a 3a lter.for.the.*Note.The.Browser::
aa6e0 2c 20 70 65 72 73 69 73 74 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 76 69 61 0a 27 65 6d 6d 73 2d ,.persistent.playlist.via.'emms-
aa700 68 69 73 74 6f 72 79 2e 65 6c 27 2c 20 61 6e 64 20 65 6e 61 62 6c 69 6e 67 20 73 65 6e 64 69 6e history.el',.and.enabling.sendin
aa720 67 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 69 74 68 0a 27 65 6d 6d 73 2d 6c g.track.information.with.'emms-l
aa740 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2e 65 6c 27 3a 0a 0a 20 20 20 20 20 20 20 3b 3b 20 6e 6f ibrefm-stream.el':.........;;.no
aa760 74 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d tifications........(require.'emm
aa780 73 2d 64 62 75 73 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 64 62 75 73 2d 65 6e 61 62 6c 65 s-dbus)........(emms-dbus-enable
aa7a0 29 0a 20 20 20 20 20 20 20 3b 3b 20 63 6f 76 65 72 73 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 )........;;.covers........(setq.
aa7c0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 20 23 27 65 6d 6d 73 2d 62 72 6f 77 73 emms-browser-covers.#'emms-brows
aa7e0 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 79 6e 63 29 0a 20 20 20 20 20 20 er-cache-thumbnail-async).......
aa800 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 73 6d .(setq.emms-browser-thumbnail-sm
aa820 61 6c 6c 2d 73 69 7a 65 20 36 34 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 all-size.64)........(setq.emms-b
aa840 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 6d 65 64 69 75 6d 2d 73 69 7a 65 20 31 32 38 rowser-thumbnail-medium-size.128
aa860 29 0a 20 20 20 20 20 20 20 3b 3b 20 66 69 6c 74 65 72 73 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 )........;;.filters........(emms
aa880 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 61 6c 6c 22 20 23 27 69 67 6e -browser-make-filter."all".#'ign
aa8a0 6f 72 65 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 ore)........(emms-browser-make-f
aa8c0 69 6c 74 65 72 20 22 72 65 63 65 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 ilter."recent"...........(lambda
aa8e0 20 28 74 72 61 63 6b 29 20 28 3c 20 33 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d .(track).(<.30..............(tim
aa900 65 2d 74 6f 2d 6e 75 6d 62 65 72 2d 6f 66 2d 64 61 79 73 0a 20 20 20 20 20 20 20 28 74 69 6d 65 e-to-number-of-days........(time
aa920 2d 73 75 62 74 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 -subtract.(current-time)........
aa940 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 6d 74 69 6d ......(emms-info-track-file-mtim
aa960 65 20 74 72 61 63 6b 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 e.track))))))........(emms-brows
aa980 65 72 2d 73 65 74 2d 66 69 6c 74 65 72 20 28 61 73 73 6f 63 20 22 61 6c 6c 22 20 65 6d 6d 73 2d er-set-filter.(assoc."all".emms-
aa9a0 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 73 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 68 69 73 74 browser-filters))........;;.hist
aa9c0 6f 72 79 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 29 0a 20 ory........(emms-history-load)..
aa9e0 20 20 20 20 20 20 3b 3b 20 6c 69 62 72 65 2d 66 6d 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c ......;;.libre-fm........(emms-l
aaa00 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 29 0a 0a 20 20 20 49 6e 20 ibrefm-scrobbler-enable).....In.
aaa20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 the.following.it.is.possible.to.
aaa40 73 65 65 20 68 6f 77 20 73 6f 6d 65 20 6f 66 20 64 65 66 61 75 6c 74 73 20 61 72 65 20 73 65 74 see.how.some.of.defaults.are.set
aaa60 0a 72 65 67 61 72 64 69 6e 67 20 73 61 76 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 2c 20 70 6c 61 .regarding.saving.playlists,.pla
aaa80 79 6c 69 73 74 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c 20 61 64 64 69 6e 67 20 73 70 65 63 69 61 ylist.interaction,.adding.specia
aaaa0 6c 0a 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 61 20 73 70 65 63 69 66 69 63 20 70 6c 61 79 65 72 l.arguments.to.a.specific.player
aaac0 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 70 6c 61 79 65 72 2d .backend.and.configuring.player-
aaae0 73 70 65 63 69 66 69 63 0a 76 6f 6c 75 6d 65 20 63 6f 6e 74 72 6f 6c 20 6f 70 74 69 6f 6e 73 20 specific.volume.control.options.
aab00 65 6e 61 62 6c 65 64 20 76 69 61 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 27 2e 0a 0a 20 enabled.via.'emms-volume.el'....
aab20 20 20 20 20 20 20 28 73 65 74 71 2d 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 ......(setq-default.........emms
aab40 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 22 -source-file-default-directory."
aab60 2f 6d 6e 74 2f 64 62 2f 6d 65 64 69 61 43 6f 72 65 2f 73 6f 75 6e 64 5f 6d 75 73 69 63 2f 22 0a /mnt/db/mediaCore/sound_music/".
aab80 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 64 65 .........emms-source-playlist-de
aaba0 66 61 75 6c 74 2d 66 6f 72 6d 61 74 20 27 6d 33 75 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 fault-format.'m3u.........emms-p
aabc0 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 77 68 65 6e 2d 67 6f 20 74 0a 20 20 laylist-mode-center-when-go.t...
aabe0 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f ......emms-playlist-default-majo
aac00 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 0a 20 20 20 20 20 r-mode.'emms-playlist-mode......
aac20 20 20 20 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d 61 74 20 22 4e 50 3a 20 25 73 22 0a 0a 20 20 ...emms-show-format."NP:.%s"....
aac40 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 27 28 65 6d 6d 73 2d 70 6c ......emms-player-list.'(emms-pl
aac60 61 79 65 72 2d 6d 70 76 29 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ayer-mpv).........emms-player-mp
aac80 76 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 27 28 22 50 55 4c 53 45 5f 50 52 4f 50 5f 6d 65 64 69 v-environment.'("PULSE_PROP_medi
aaca0 61 2e 72 6f 6c 65 3d 6d 75 73 69 63 22 29 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 a.role=music").........emms-play
aacc0 65 72 2d 6d 70 76 2d 70 61 72 61 6d 65 74 65 72 73 20 27 28 22 2d 2d 71 75 69 65 74 22 20 22 2d er-mpv-parameters.'("--quiet"."-
aace0 2d 72 65 61 6c 6c 79 2d 71 75 69 65 74 22 20 22 2d 2d 6e 6f 2d 61 75 64 69 6f 2d 64 69 73 70 6c -really-quiet"."--no-audio-displ
aad00 61 79 22 20 22 2d 2d 66 6f 72 63 65 2d 77 69 6e 64 6f 77 3d 6e 6f 22 20 22 2d 2d 76 6f 3d 6e 75 ay"."--force-window=no"."--vo=nu
aad20 6c 6c 22 29 0a 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 ll")..........emms-volume-change
aad40 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 63 68 61 6e 67 -function.'emms-volume-mpv-chang
aad60 65 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6d 65 74 68 6f 64 e.........emms-volume-mpv-method
aad80 20 27 73 6d 61 72 74 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f .'smart)....File:.doc7SuRxP.info
aada0 2c 20 20 4e 6f 64 65 3a 20 47 65 74 74 69 6e 67 20 48 65 6c 70 2c 20 20 4e 65 78 74 3a 20 46 6f ,..Node:.Getting.Help,..Next:.Fo
aadc0 72 6d 61 74 73 20 61 6e 64 20 46 72 65 65 64 6f 6d 2c 20 20 50 72 65 76 3a 20 43 6f 6e 66 69 67 rmats.and.Freedom,..Prev:.Config
aade0 75 72 61 74 69 6f 6e 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 36 20 47 65 74 74 69 6e 67 20 48 65 6c uration,..Up:.Top..6.Getting.Hel
aae00 70 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 p.**************..If.you.have.a.
aae20 62 75 67 20 74 6f 20 72 65 70 6f 72 74 2c 20 6e 65 65 64 20 68 65 6c 70 2c 20 6f 72 20 77 69 73 bug.to.report,.need.help,.or.wis
aae40 68 20 74 6f 20 73 75 67 67 65 73 74 20 61 20 66 65 61 74 75 72 65 2c 0a 70 6c 65 61 73 65 20 66 h.to.suggest.a.feature,.please.f
aae60 65 65 6c 20 66 72 65 65 20 74 6f 20 75 73 65 20 74 68 65 20 45 6d 6d 73 20 6d 61 69 6c 69 6e 67 eel.free.to.use.the.Emms.mailing
aae80 20 6c 69 73 74 2e 20 20 54 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6c 69 73 74 0a .list...The.address.of.the.list.
aaea0 69 73 20 65 6d 6d 73 2d 68 65 6c 70 40 67 6e 75 2e 6f 72 67 2e 20 20 54 6f 20 73 75 62 73 63 72 is.emms-help@gnu.org...To.subscr
aaec0 69 62 65 20 74 6f 20 69 74 2c 20 76 69 73 69 74 0a 3c 68 74 74 70 3a 2f 2f 6c 69 73 74 73 2e 67 ibe.to.it,.visit.<http://lists.g
aaee0 6e 75 2e 6f 72 67 2f 6d 61 69 6c 6d 61 6e 2f 6c 69 73 74 69 6e 66 6f 2f 65 6d 6d 73 2d 68 65 6c nu.org/mailman/listinfo/emms-hel
aaf00 70 3e 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 66 61 6d 69 6c 69 61 72 20 77 69 74 68 p>......If.you.are.familiar.with
aaf20 20 74 68 65 20 47 6d 61 6e 65 20 73 65 72 76 69 63 65 2c 20 74 68 65 72 65 20 69 73 20 61 20 47 .the.Gmane.service,.there.is.a.G
aaf40 6d 61 6e 65 0a 6e 65 77 73 67 72 6f 75 70 20 77 68 69 63 68 20 6d 69 72 72 6f 72 73 20 74 68 69 mane.newsgroup.which.mirrors.thi
aaf60 73 20 6d 61 69 6c 69 6e 67 20 61 64 64 72 65 73 73 20 61 74 20 67 6d 61 6e 65 2e 65 6d 61 63 73 s.mailing.address.at.gmane.emacs
aaf80 2e 65 6d 6d 73 2e 75 73 65 72 2e 0a 0a 20 20 20 45 6d 6d 73 20 61 6c 73 6f 20 68 61 73 20 61 20 .emms.user......Emms.also.has.a.
aafa0 77 65 62 73 69 74 65 20 61 74 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 website.at.<http://www.gnu.org/s
aafc0 6f 66 74 77 61 72 65 2f 65 6d 6d 73 2f 3e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 oftware/emms/>.....File:.doc7SuR
aafe0 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 6f 72 6d 61 74 73 20 61 6e 64 20 46 72 65 65 xP.info,..Node:.Formats.and.Free
ab000 64 6f 6d 2c 20 20 4e 65 78 74 3a 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2c 20 20 50 72 65 dom,..Next:.Basic.Commands,..Pre
ab020 76 3a 20 47 65 74 74 69 6e 67 20 48 65 6c 70 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 37 20 46 6f 72 v:.Getting.Help,..Up:.Top..7.For
ab040 6d 61 74 73 20 61 6e 64 20 46 72 65 65 64 6f 6d 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a mats.and.Freedom.***************
ab060 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 62 ******..Emms.is.free.software,.b
ab080 75 74 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 20 69 74 20 63 ut.some.of.the.file.formats.it.c
ab0a0 61 6e 20 70 6c 61 79 20 63 61 72 72 79 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 2c 20 74 68 65 79 an.play.carry.restrictions,.they
ab0c0 20 61 72 65 20 70 72 6f 70 72 69 65 74 61 72 79 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 2e 20 20 .are.proprietary.file.formats...
ab0e0 50 72 6f 70 72 69 65 74 61 72 79 20 73 6f 66 74 77 61 72 65 0a 63 6f 6d 70 61 6e 69 65 73 20 61 Proprietary.software.companies.a
ab100 72 65 20 70 75 73 68 69 6e 67 20 6f 75 74 20 61 75 64 69 6f 20 61 6e 64 20 76 69 64 65 6f 20 66 re.pushing.out.audio.and.video.f
ab120 6f 72 6d 61 74 73 20 77 68 69 63 68 20 72 65 73 74 72 69 63 74 20 77 68 65 6e 2c 0a 77 68 65 72 ormats.which.restrict.when,.wher
ab140 65 20 61 6e 64 20 68 6f 77 20 79 6f 75 20 63 61 6e 20 70 6c 61 79 20 74 68 65 6d 2c 20 61 6e 64 e.and.how.you.can.play.them,.and
ab160 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 65 72 73 20 66 72 6f 6d 20 77 72 69 74 69 6e .restrict.developers.from.writin
ab180 67 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 69 6e 74 65 72 61 63 74 73 20 g.free.software.which.interacts.
ab1a0 77 69 74 68 20 74 68 65 6d 2e 0a 0a 20 20 20 52 65 73 74 72 69 63 74 69 76 65 20 66 69 6c 65 20 with.them......Restrictive.file.
ab1c0 66 6f 72 6d 61 74 73 20 70 75 74 20 74 68 65 20 63 6f 72 70 6f 72 61 74 65 20 62 6f 74 74 6f 6d formats.put.the.corporate.bottom
ab1e0 2d 6c 69 6e 65 20 62 65 66 6f 72 65 20 74 68 65 0a 70 75 62 6c 69 63 20 69 6e 74 65 72 65 73 74 -line.before.the.public.interest
ab200 2e 0a 0a 20 20 20 46 6f 72 74 75 6e 61 74 65 6c 79 20 74 68 65 72 65 20 61 72 65 20 61 6c 74 65 ......Fortunately.there.are.alte
ab220 72 6e 61 74 69 76 65 73 20 6c 69 6b 65 20 4f 67 67 2e 20 20 4f 67 67 20 69 73 20 61 20 70 72 6f rnatives.like.Ogg...Ogg.is.a.pro
ab240 66 65 73 73 69 6f 6e 61 6c 0a 67 72 61 64 65 20 6d 75 6c 74 69 6d 65 64 69 61 20 66 6f 72 6d 61 fessional.grade.multimedia.forma
ab260 74 2e 20 20 4f 67 67 20 56 6f 72 62 69 73 20 69 73 20 74 68 65 20 63 6f 6d 70 72 65 73 73 65 64 t...Ogg.Vorbis.is.the.compressed
ab280 20 61 75 64 69 6f 20 66 6f 72 6d 61 74 0a 28 6c 69 6b 65 20 4d 50 33 29 2c 20 61 6e 64 20 4f 67 .audio.format.(like.MP3),.and.Og
ab2a0 67 20 54 68 65 6f 72 61 20 69 73 20 74 68 65 20 76 69 64 65 6f 20 66 6f 72 6d 61 74 2e 20 20 46 g.Theora.is.the.video.format...F
ab2c0 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0a 67 6f 20 74 6f 20 3c 68 74 74 70 or.more.information,.go.to.<http
ab2e0 3a 2f 2f 77 77 77 2e 78 69 70 68 2e 6f 72 67 2f 3e 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 77 61 ://www.xiph.org/>......If.you.wa
ab300 6e 74 20 74 6f 20 74 72 61 6e 73 63 6f 64 65 20 61 75 64 69 6f 20 69 6e 74 6f 20 61 20 6c 6f 73 nt.to.transcode.audio.into.a.los
ab320 73 6c 65 73 73 20 66 6f 72 6d 61 74 2c 20 79 6f 75 20 63 61 6e 20 74 72 79 0a 46 4c 41 43 20 28 sless.format,.you.can.try.FLAC.(
ab340 46 72 65 65 20 4c 6f 73 73 6c 65 73 73 20 41 75 64 69 6f 20 43 6f 64 65 63 29 2e 20 20 46 4c 41 Free.Lossless.Audio.Codec)...FLA
ab360 43 20 73 74 61 6e 64 73 20 6f 75 74 20 61 73 20 74 68 65 20 66 61 73 74 65 73 74 20 61 6e 64 0a C.stands.out.as.the.fastest.and.
ab380 6d 6f 73 74 20 77 69 64 65 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6c 6f 73 73 6c 65 73 73 20 61 most.widely.supported.lossless.a
ab3a0 75 64 69 6f 20 63 6f 64 65 63 2c 20 61 6e 64 20 74 68 65 20 6f 6e 6c 79 20 6f 6e 65 20 74 68 61 udio.codec,.and.the.only.one.tha
ab3c0 74 20 61 74 0a 6f 6e 63 65 20 69 73 20 6e 6f 6e 2d 70 72 6f 70 72 69 65 74 61 72 79 2c 20 69 73 t.at.once.is.non-proprietary,.is
ab3e0 20 75 6e 65 6e 63 75 6d 62 65 72 65 64 20 62 79 20 70 61 74 65 6e 74 73 20 61 6e 64 20 68 61 73 .unencumbered.by.patents.and.has
ab400 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 64 65 20 66 6f 72 20 61 20 72 65 66 65 72 65 6e 63 65 .the.source.code.for.a.reference
ab420 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 72 65 65 6c 79 20 61 76 61 69 6c 61 62 6c 65 .implementation.freely.available
ab440 2e 20 20 46 6f 72 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 46 4c ...For.more.information.about.FL
ab460 41 43 2c 20 67 6f 20 74 6f 20 3c 68 74 74 70 3a 2f 2f 66 6c 61 63 2e 73 6f 75 72 63 65 66 6f 72 AC,.go.to.<http://flac.sourcefor
ab480 67 65 2e 6e 65 74 2f 3e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 ge.net/>.....File:.doc7SuRxP.inf
ab4a0 6f 2c 20 20 4e 6f 64 65 3a 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2c 20 20 4e 65 78 74 3a o,..Node:.Basic.Commands,..Next:
ab4c0 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 2c 20 20 50 72 65 76 3a 20 46 6f 72 6d 61 74 73 20 61 .The.Core.File,..Prev:.Formats.a
ab4e0 6e 64 20 46 72 65 65 64 6f 6d 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 38 20 42 61 73 69 63 20 43 6f nd.Freedom,..Up:.Top..8.Basic.Co
ab500 6d 6d 61 6e 64 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 42 65 66 6f 72 65 20 mmands.****************..Before.
ab520 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 63 6f 6d 6d 61 6e you.can.use.the.interface.comman
ab540 64 73 2c 20 79 6f 75 20 6e 65 65 64 20 61 20 70 6c 61 79 6c 69 73 74 20 74 6f 20 73 74 61 72 74 ds,.you.need.a.playlist.to.start
ab560 0a 77 69 74 68 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 .with...The.following.commands.a
ab580 6c 6c 6f 77 20 79 6f 75 20 74 6f 20 61 64 64 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 llow.you.to.add.to.the.current.p
ab5a0 6c 61 79 6c 69 73 74 0a 66 72 6f 6d 20 64 69 66 66 65 72 65 6e 74 20 73 6f 75 72 63 65 73 3a 0a laylist.from.different.sources:.
ab5c0 0a 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 77 69 74 68 20 ....Note.that.the.commands.with.
ab5e0 74 68 65 20 22 65 6d 6d 73 2d 61 64 64 2d 22 20 70 72 65 66 69 78 20 61 64 64 20 74 68 65 20 73 the."emms-add-".prefix.add.the.s
ab600 6f 75 72 63 65 20 74 6f 0a 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 74 20 64 6f 20 6e 6f 74 ource.to.the.playlist.but.do.not
ab620 20 73 74 61 72 74 20 70 6c 61 79 69 6e 67 20 69 74 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 20 20 .start.playing.it.immediately...
ab640 43 6f 6e 76 65 72 73 65 6c 79 2c 20 74 68 65 0a 63 6f 6d 6d 61 6e 64 73 20 77 69 74 68 20 74 68 Conversely,.the.commands.with.th
ab660 65 20 22 65 6d 6d 73 2d 70 6c 61 79 2d 22 20 70 72 65 66 69 78 20 62 65 67 69 6e 20 70 6c 61 79 e."emms-play-".prefix.begin.play
ab680 69 6e 67 20 74 68 65 20 74 72 61 63 6b 0a 69 6d 6d 65 64 69 61 74 65 6c 79 2e 0a 0a 20 20 20 54 ing.the.track.immediately......T
ab6a0 68 69 73 20 63 72 65 61 74 65 73 20 74 68 65 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 his.creates.the.active.playlist.
ab6c0 61 6e 64 20 71 75 65 75 65 20 61 73 20 6e 65 65 64 65 64 2e 20 20 54 68 65 20 61 63 74 69 76 65 and.queue.as.needed...The.active
ab6e0 0a 71 75 65 75 65 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73 77 69 74 63 68 .queue.will.automatically.switch
ab700 20 74 6f 20 61 6e 79 20 70 6c 61 79 6c 69 73 74 73 20 74 68 61 74 20 61 72 65 20 62 72 6f 77 73 .to.any.playlists.that.are.brows
ab720 65 64 20 74 6f 0a 73 75 63 68 20 74 68 61 74 20 74 68 65 20 6e 65 78 74 20 73 6f 6e 67 20 70 6c ed.to.such.that.the.next.song.pl
ab740 61 79 65 64 20 77 69 6c 6c 20 63 6f 6d 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 6c ayed.will.come.from.the.currentl
ab760 79 20 76 69 65 77 65 64 0a 70 6c 61 79 6c 69 73 74 2e 0a 0a 20 20 20 4c 6f 63 6b 69 6e 67 20 74 y.viewed.playlist......Locking.t
ab780 68 65 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 74 6f 20 69 74 73 20 he.active.playlist.queue.to.its.
ab7a0 70 6c 61 79 6c 69 73 74 20 77 69 6c 6c 20 70 72 65 76 65 6e 74 20 69 74 0a 66 72 6f 6d 20 63 68 playlist.will.prevent.it.from.ch
ab7c0 61 6e 67 69 6e 67 2c 20 61 6c 6c 6f 77 69 6e 67 20 66 6f 72 20 62 72 6f 77 73 69 6e 67 20 6f 74 anging,.allowing.for.browsing.ot
ab7e0 68 65 72 20 70 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 73 65 6e 64 69 6e 67 20 73 6f 6e 67 73 0a her.playlists.and.sending.songs.
ab800 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 66 to.the.current.active.playlist.f
ab820 72 6f 6d 20 74 68 65 6d 2e 0a 0a 20 20 20 4c 6f 63 6b 69 6e 67 20 74 68 65 20 71 75 65 75 65 20 rom.them......Locking.the.queue.
ab840 74 6f 20 69 74 73 20 70 6c 61 79 6c 69 73 74 20 61 6c 6c 6f 77 73 20 66 6f 72 20 6c 69 76 65 20 to.its.playlist.allows.for.live.
ab860 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 0a 63 75 72 61 74 65 64 20 70 6c 61 79 6c 69 73 74 20 62 creation.of.a.curated.playlist.b
ab880 79 20 62 72 6f 77 73 69 6e 67 20 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 73 20 61 73 20 77 65 y.browsing.other.playlists.as.we
ab8a0 6c 6c 20 61 73 20 74 68 65 20 6d 75 73 69 63 0a 64 61 74 61 62 61 73 65 20 61 6e 64 20 66 69 6c ll.as.the.music.database.and.fil
ab8c0 65 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6c es....--.Function:.emms-play-fil
ab8e0 65 20 66 69 6c 65 0a 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 73 69 6e 67 6c e.file......A.source.for.a.singl
ab900 65 20 66 69 6c 65 20 2d 20 65 69 74 68 65 72 20 46 49 4c 45 2c 20 6f 72 20 71 75 65 72 69 65 64 e.file.-.either.FILE,.or.queried
ab920 20 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e 0a 20 20 20 20 20 49 66 20 63 61 6c 6c 65 64 20 77 .from.the.user.......If.called.w
ab940 69 74 68 20 61 20 70 72 65 66 69 78 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 20 61 64 ith.a.prefix.the.file.will.be.ad
ab960 64 65 64 20 6c 69 6b 65 0a 20 20 20 20 20 27 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 27 2e 0a 20 ded.like......'emms-add-file'...
ab980 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 20 66 69 6c 65 0a --.Function:.emms-add-file.file.
ab9a0 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 .....A.source.for.a.single.file.
ab9c0 2d 20 65 69 74 68 65 72 20 46 49 4c 45 2c 20 6f 72 20 71 75 65 72 69 65 64 20 66 72 6f 6d 20 74 -.either.FILE,.or.queried.from.t
ab9e0 68 65 20 75 73 65 72 2e 0a 20 20 20 20 20 49 66 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 he.user.......If.called.with.a.p
aba00 72 65 66 69 78 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 20 70 6c 61 79 65 64 20 6c 69 refix.the.file.will.be.played.li
aba20 6b 65 0a 20 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6c 65 27 2e 0a 20 2d 2d 20 46 75 ke......'emms-play-file'...--.Fu
aba40 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 0a nction:.emms-play-directory.dir.
aba60 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 .....A.source.for.a.whole.direct
aba80 6f 72 79 20 74 72 65 65 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 71 75 65 72 69 65 ory.tree.-.either.DIR,.or.querie
abaa0 64 20 66 72 6f 6d 0a 20 20 20 20 20 74 68 65 20 75 73 65 72 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 d.from......the.user...--.Functi
abac0 6f 6e 3a 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 0a 20 20 20 20 20 on:.emms-add-directory.dir......
abae0 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 A.source.for.a.whole.directory.t
abb00 72 65 65 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 71 75 65 72 69 65 64 20 66 72 6f ree.-.either.DIR,.or.queried.fro
abb20 6d 0a 20 20 20 20 20 74 68 65 20 75 73 65 72 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 m......the.user...--.Function:.e
abb40 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 64 69 72 0a 20 20 20 20 mms-play-directory-tree.dir.....
abb60 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 .A.source.for.multiple.directory
abb80 20 74 72 65 65 73 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 74 68 65 20 76 61 6c 75 .trees.-.either.DIR,.or.the.valu
abba0 65 20 6f 66 0a 20 20 20 20 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 45 46 41 55 e.of......EMMS-SOURCE-FILE-DEFAU
abbc0 4c 54 2d 44 49 52 45 43 54 4f 52 59 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 LT-DIRECTORY...--.Function:.emms
abbe0 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 64 69 72 0a 20 20 20 20 20 41 20 73 -add-directory-tree.dir......A.s
abc00 6f 75 72 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 ource.for.multiple.directory.tre
abc20 65 73 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 74 68 65 20 76 61 6c 75 65 20 6f 66 es.-.either.DIR,.or.the.value.of
abc40 0a 20 20 20 20 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 45 46 41 55 4c 54 2d 44 ......EMMS-SOURCE-FILE-DEFAULT-D
abc60 49 52 45 43 54 4f 52 59 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 IRECTORY...--.Function:.emms-pla
abc80 79 2d 75 72 6c 20 75 72 6c 0a 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 6e 20 55 y-url.url......A.source.for.an.U
abca0 52 4c 20 2d 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 RL.-.for.example,.for.streaming.
abcc0 6f 76 65 72 20 68 74 74 70 2c 20 70 6c 61 79 69 6e 67 0a 20 20 20 20 20 6f 76 65 72 20 73 66 74 over.http,.playing......over.sft
abce0 70 2c 20 6f 72 20 70 6c 61 79 69 6e 67 20 6c 6f 63 61 6c 20 66 69 6c 65 73 20 28 77 69 74 68 20 p,.or.playing.local.files.(with.
abd00 74 68 65 20 22 66 69 6c 65 3a 2f 2f 22 20 73 63 68 65 6d 65 29 2e 0a 20 2d 2d 20 46 75 6e 63 74 the."file://".scheme)...--.Funct
abd20 69 6f 6e 3a 20 65 6d 6d 73 2d 61 64 64 2d 75 72 6c 20 75 72 6c 0a 20 20 20 20 20 41 20 73 6f 75 ion:.emms-add-url.url......A.sou
abd40 72 63 65 20 66 6f 72 20 61 6e 20 55 52 4c 20 2d 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 66 6f rce.for.an.URL.-.for.example,.fo
abd60 72 20 73 74 72 65 61 6d 69 6e 67 20 6f 76 65 72 20 68 74 74 70 2c 20 70 6c 61 79 69 6e 67 0a 20 r.streaming.over.http,.playing..
abd80 20 20 20 20 6f 76 65 72 20 73 66 74 70 2c 20 6f 72 20 70 6c 61 79 69 6e 67 20 6c 6f 63 61 6c 20 ....over.sftp,.or.playing.local.
abda0 66 69 6c 65 73 20 28 77 69 74 68 20 74 68 65 20 22 66 69 6c 65 3a 2f 2f 22 20 73 63 68 65 6d 65 files.(with.the."file://".scheme
abdc0 29 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 6c )...--.Function:.emms-play-playl
abde0 69 73 74 20 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 74 ist.playlist......A.source.for.t
abe00 68 65 20 4d 33 75 20 6f 72 20 50 4c 53 20 70 6c 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 20 66 72 he.M3u.or.PLS.playlist.format.fr
abe20 6f 6d 20 74 68 65 20 66 69 6c 65 20 50 4c 41 59 4c 49 53 54 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 om.the.file.PLAYLIST...--.Functi
abe40 6f 6e 3a 20 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 20 70 6c 61 79 6c 69 73 74 0a 20 on:.emms-add-playlist.playlist..
abe60 20 20 20 20 41 20 73 6f 75 72 63 65 20 66 6f 72 20 74 68 65 20 4d 33 75 20 6f 72 20 50 4c 53 20 ....A.source.for.the.M3u.or.PLS.
abe80 70 6c 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 20 50 4c playlist.format.from.the.file.PL
abea0 41 59 4c 49 53 54 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 2d AYLIST...--.Function:.emms-play-
abec0 66 69 6e 64 20 64 69 72 20 72 65 67 65 78 70 0a 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 74 68 find.dir.regexp......A.source.th
abee0 61 74 20 77 69 6c 6c 20 66 69 6e 64 20 66 69 6c 65 73 20 69 6e 20 44 49 52 20 6f 72 0a 20 20 20 at.will.find.files.in.DIR.or....
abf00 20 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 45 46 41 55 4c 54 2d 44 49 52 45 43 ..EMMS-SOURCE-FILE-DEFAULT-DIREC
abf20 54 4f 52 59 20 77 68 69 63 68 20 6d 61 74 63 68 20 52 45 47 45 58 50 2e 0a 20 2d 2d 20 46 75 6e TORY.which.match.REGEXP...--.Fun
abf40 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6e 64 20 64 69 72 20 72 65 67 65 78 70 0a ction:.emms-add-find.dir.regexp.
abf60 20 20 20 20 20 41 20 73 6f 75 72 63 65 20 74 68 61 74 20 77 69 6c 6c 20 66 69 6e 64 20 66 69 6c .....A.source.that.will.find.fil
abf80 65 73 20 69 6e 20 44 49 52 20 6f 72 0a 20 20 20 20 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 es.in.DIR.or......EMMS-SOURCE-FI
abfa0 4c 45 2d 44 45 46 41 55 4c 54 2d 44 49 52 45 43 54 4f 52 59 20 77 68 69 63 68 20 6d 61 74 63 68 LE-DEFAULT-DIRECTORY.which.match
abfc0 20 52 45 47 45 58 50 2e 0a 0a 20 20 20 54 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 .REGEXP......The.basic.functiona
abfe0 6c 69 74 79 20 6f 66 20 45 6d 6d 73 20 69 73 20 6a 75 73 74 20 74 6f 20 70 6c 61 79 20 6d 75 73 lity.of.Emms.is.just.to.play.mus
ac000 69 63 20 77 69 74 68 6f 75 74 20 62 65 69 6e 67 0a 6e 6f 74 69 63 65 64 2e 20 20 49 74 20 70 72 ic.without.being.noticed...It.pr
ac020 6f 76 69 64 65 73 20 61 20 66 65 77 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 73 6b 69 70 20 74 68 ovides.a.few.commands.to.skip.th
ac040 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 61 6e 64 20 73 75 63 68 2c 0a 62 75 74 20 6f 74 e.current.track.and.such,.but.ot
ac060 68 65 72 20 74 68 61 6e 20 74 68 61 74 20 69 74 20 64 6f 65 73 6e 27 74 20 73 68 6f 77 20 75 70 her.than.that.it.doesn't.show.up
ac080 2e 20 20 45 6d 6d 73 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 62 ...Emms.provides.the.following.b
ac0a0 61 73 69 63 20 75 73 65 72 20 63 6f 6d 6d 61 6e 64 73 20 28 77 68 69 63 68 20 79 6f 75 20 6d 69 asic.user.commands.(which.you.mi
ac0c0 67 68 74 20 77 61 6e 74 20 74 6f 20 62 69 6e 64 20 74 6f 20 6b 65 79 73 74 72 6f 6b 65 73 29 3a ght.want.to.bind.to.keystrokes):
ac0e0 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 74 61 72 74 0a 20 20 20 20 20 ...--.Function:.emms-start......
ac100 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 Start.playing.the.current.playli
ac120 73 74 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 74 6f 70 0a 20 20 20 20 20 st..--.Function:.emms-stop......
ac140 53 74 6f 70 20 70 6c 61 79 69 6e 67 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d Stop.playing..--.Function:.emms-
ac160 6e 65 78 74 0a 20 20 20 20 20 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 6e 65 78 74 next......Start.playing.the.next
ac180 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 0a 20 2d 2d 20 46 75 6e 63 74 .track.in.the.playlist..--.Funct
ac1a0 69 6f 6e 3a 20 65 6d 6d 73 2d 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 53 74 61 72 74 20 70 6c ion:.emms-previous......Start.pl
ac1c0 61 79 69 6e 67 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 aying.previous.track.in.the.play
ac1e0 6c 69 73 74 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 68 75 66 66 6c 65 0a list..--.Function:.emms-shuffle.
ac200 20 20 20 20 20 53 68 75 66 66 6c 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 .....Shuffle.the.current.playlis
ac220 74 2e 20 20 54 68 69 73 20 75 73 65 73 0a 20 20 20 20 20 45 4d 4d 53 2d 50 4c 41 59 4c 49 53 54 t...This.uses......EMMS-PLAYLIST
ac240 2d 53 48 55 46 46 4c 45 2d 46 55 4e 43 54 49 4f 4e 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a -SHUFFLE-FUNCTION...--.Function:
ac260 20 65 6d 6d 73 2d 73 6f 72 74 0a 20 20 20 20 20 53 6f 72 74 20 74 68 65 20 63 75 72 72 65 6e 74 .emms-sort......Sort.the.current
ac280 20 70 6c 61 79 6c 69 73 74 2e 20 20 54 68 69 73 20 75 73 65 73 20 45 4d 4d 53 2d 50 4c 41 59 4c .playlist...This.uses.EMMS-PLAYL
ac2a0 49 53 54 2d 53 4f 52 54 2d 46 55 4e 43 54 49 4f 4e 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a IST-SORT-FUNCTION...--.Function:
ac2c0 20 65 6d 6d 73 2d 6c 6f 63 6b 2d 71 75 65 75 65 0a 20 20 20 20 20 4c 6f 63 6b 20 74 68 65 20 63 .emms-lock-queue......Lock.the.c
ac2e0 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 74 6f 20 urrent.active.playlist.queue.to.
ac300 69 74 73 20 70 6c 61 79 6c 69 73 74 2e 0a 20 20 20 20 20 45 4d 4d 53 2d 50 4c 41 59 4c 49 53 54 its.playlist.......EMMS-PLAYLIST
ac320 2d 53 4f 52 54 2d 46 55 4e 43 54 49 4f 4e 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d -SORT-FUNCTION...--.Function:.em
ac340 6d 73 2d 75 6e 6c 6f 63 6b 2d 71 75 65 75 65 0a 20 20 20 20 20 55 6e 6c 6f 63 6b 20 74 68 65 20 ms-unlock-queue......Unlock.the.
ac360 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 66 72 current.active.playlist.queue.fr
ac380 6f 6d 20 69 74 73 20 70 6c 61 79 6c 69 73 74 2e 0a 20 20 20 20 20 45 4d 4d 53 2d 50 4c 41 59 4c om.its.playlist.......EMMS-PLAYL
ac3a0 49 53 54 2d 53 4f 52 54 2d 46 55 4e 43 54 49 4f 4e 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a IST-SORT-FUNCTION...--.Function:
ac3c0 20 65 6d 6d 73 2d 73 68 6f 77 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 73 65 72 74 70 0a 20 20 20 .emms-show.&optional.insertp....
ac3e0 20 20 44 65 73 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 74 72 61 63 ..Describe.the.current.Emms.trac
ac400 6b 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 20 20 49 66 20 49 4e 53 45 52 54 50 k.in.the.minibuffer...If.INSERTP
ac420 20 69 73 0a 20 20 20 20 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 65 72 74 20 74 68 65 20 64 65 73 .is......non-nil,.insert.the.des
ac440 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 cription.into.the.current.buffer
ac460 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 .instead.......This.function.use
ac480 73 20 45 4d 4d 53 2d 53 48 4f 57 2d 46 4f 52 4d 41 54 20 74 6f 20 66 6f 72 6d 61 74 20 74 68 65 s.EMMS-SHOW-FORMAT.to.format.the
ac4a0 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 20 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 27 .current.track.....The.command.'
ac4c0 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 27 20 77 69 6c 6c 20 70 6f 70 20 75 70 20 61 20 77 69 6e emms-show-all'.will.pop.up.a.win
ac4e0 64 6f 77 20 77 69 74 68 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 0a 69 6e 66 6f 72 6d 61 74 69 6f dow.with.the.complete.informatio
ac500 6e 20 61 62 6f 75 74 20 74 68 65 20 74 72 61 63 6b 20 62 65 69 6e 67 20 70 6c 61 79 65 64 2e 20 n.about.the.track.being.played..
ac520 20 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 27 20 69 73 20 70 72 6f 76 69 64 65 64 0a 62 79 20 .'emms-show-all'.is.provided.by.
ac540 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2e 65 6c 27 2c 20 77 68 69 63 68 20 69 73 20 69 6e 63 'emms-show-all.el',.which.is.inc
ac560 6c 75 64 65 64 20 69 6e 20 74 68 65 20 27 65 6d 6d 73 2d 61 6c 6c 27 20 73 65 74 75 70 20 6c 65 luded.in.the.'emms-all'.setup.le
ac580 76 65 6c 2e 0a 53 65 65 20 2a 4e 6f 74 65 20 53 65 74 75 70 3a 3a 2e 0a 0a 1f 0a 46 69 6c 65 3a vel..See.*Note.Setup::.....File:
ac5a0 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 65 20 43 6f 72 65 .doc7SuRxP.info,..Node:.The.Core
ac5c0 20 46 69 6c 65 2c 20 20 4e 65 78 74 3a 20 53 6f 75 72 63 65 73 2c 20 20 50 72 65 76 3a 20 42 61 .File,..Next:.Sources,..Prev:.Ba
ac5e0 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 39 20 54 68 65 20 43 6f sic.Commands,..Up:.Top..9.The.Co
ac600 72 65 20 46 69 6c 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 63 6f 72 re.File.***************..The.cor
ac620 65 20 66 69 6c 65 20 27 65 6d 6d 73 2e 65 6c 27 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 61 6c e.file.'emms.el'.provides.the.al
ac640 6c 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 70 6c 61 79 69 6e 67 0a 6d 75 l.basic.functions.for.playing.mu
ac660 73 69 63 2c 20 67 65 6e 65 72 61 74 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 64 65 sic,.generating.playlists.and.de
ac680 66 69 6e 69 6e 67 20 70 6c 61 79 65 72 73 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 55 73 65 72 fining.players...*.Menu:..*.User
ac6a0 20 56 61 72 69 61 62 6c 65 73 3a 3a 20 20 20 20 20 56 61 72 69 61 62 6c 65 73 20 66 6f 72 20 74 .Variables::.....Variables.for.t
ac6c0 68 65 20 75 73 65 72 20 74 6f 20 74 77 65 61 6b 2e 0a 2a 20 48 6f 6f 6b 73 3a 3a 20 20 20 20 20 he.user.to.tweak..*.Hooks::.....
ac6e0 20 20 20 20 20 20 20 20 20 48 6f 6f 6b 73 20 66 6f 72 20 69 6d 70 6f 72 74 61 6e 74 20 45 6d 6d .........Hooks.for.important.Emm
ac700 73 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 2a 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 3a 3a 20 s.functions..*.Core.Functions::.
ac720 20 20 20 20 50 72 6f 76 69 64 69 6e 67 20 74 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e ....Providing.the.basic.function
ac740 61 6c 69 74 79 20 6f 66 20 45 6d 6d 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 ality.of.Emms.....File:.doc7SuRx
ac760 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 2c 20 20 P.info,..Node:.User.Variables,..
ac780 4e 65 78 74 3a 20 48 6f 6f 6b 73 2c 20 20 55 70 3a 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 0a Next:.Hooks,..Up:.The.Core.File.
ac7a0 0a 39 2e 31 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .9.1.User.Variables.============
ac7c0 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 63 6f 72 65 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 61 20 ======..The.core.file.defines.a.
ac7e0 6e 75 6d 62 65 72 20 6f 66 20 75 73 65 72 20 76 61 72 69 61 62 6c 65 73 2e 0a 0a 20 2d 2d 20 55 number.of.user.variables....--.U
ac800 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 0a 20 20 20 ser.Option:.emms-player-list....
ac820 20 20 41 20 6c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 45 6d 6d 73 20 63 61 6e 20 75 73 65 ..A.list.of.players.Emms.can.use
ac840 2e 20 20 59 6f 75 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 69 73 20 69 6e 20 6f 72 64 65 72 ...You.need.to.set.this.in.order
ac860 20 74 6f 0a 20 20 20 20 20 75 73 65 20 45 6d 6d 73 20 74 6f 20 70 6c 61 79 20 6d 65 64 69 61 2e .to......use.Emms.to.play.media.
ac880 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d ..--.User.Option:.emms-show-form
ac8a0 61 74 0a 20 20 20 20 20 54 68 65 20 66 6f 72 6d 61 74 20 74 6f 20 75 73 65 20 66 6f 72 20 27 65 at......The.format.to.use.for.'e
ac8c0 6d 6d 73 2d 73 68 6f 77 27 2e 20 20 41 6e 79 20 22 25 73 22 20 69 73 20 72 65 70 6c 61 63 65 64 mms-show'...Any."%s".is.replaced
ac8e0 20 62 79 20 77 68 61 74 0a 20 20 20 20 20 45 4d 4d 53 2d 54 52 41 43 4b 2d 44 45 53 43 52 49 50 .by.what......EMMS-TRACK-DESCRIP
ac900 54 49 4f 4e 2d 46 55 4e 43 54 49 4f 4e 20 72 65 74 75 72 6e 73 20 66 6f 72 20 74 68 65 20 63 75 TION-FUNCTION.returns.for.the.cu
ac920 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 0a 20 20 20 20 20 74 72 61 63 6b 2e 0a 20 2d 2d 20 rrently.playing......track...--.
ac940 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 User.Option:.emms-repeat-playlis
ac960 74 0a 20 20 20 20 20 4e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c t......Non-nil.if.the.Emms.playl
ac980 69 73 74 20 73 68 6f 75 6c 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 70 65 61 74 20 ist.should.automatically.repeat.
ac9a0 74 68 65 0a 20 20 20 20 20 70 6c 61 79 6c 69 73 74 2e 20 20 49 66 20 6e 69 6c 2c 20 70 6c 61 79 the......playlist...If.nil,.play
ac9c0 62 61 63 6b 20 77 69 6c 6c 20 73 74 6f 70 20 77 68 65 6e 20 74 68 65 20 6c 61 73 74 20 74 72 61 back.will.stop.when.the.last.tra
ac9e0 63 6b 20 66 69 6e 69 73 68 65 73 0a 20 20 20 20 20 70 6c 61 79 69 6e 67 2e 0a 20 2d 2d 20 55 73 ck.finishes......playing...--.Us
aca00 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f er.Option:.emms-track-descriptio
aca20 6e 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 64 65 73 n-function......Function.for.des
aca40 63 72 69 62 69 6e 67 20 61 6e 20 45 6d 6d 73 20 74 72 61 63 6b 20 69 6e 20 61 20 75 73 65 72 2d cribing.an.Emms.track.in.a.user-
aca60 66 72 69 65 6e 64 6c 79 20 77 61 79 2e 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 friendly.way...--.User.Option:.e
aca80 6d 6d 73 2d 73 6f 72 74 2d 6c 65 73 73 70 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 41 20 66 mms-sort-lessp-function......A.f
acaa0 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 74 77 6f 20 74 72 61 63 6b 73 unction.that.compares.two.tracks
acac0 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 0a 20 20 20 ,.and.returns.non-nil.if.the....
acae0 20 20 66 69 72 73 74 20 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 73 6f 72 74 65 64 20 62 ..first.track.should.be.sorted.b
acb00 65 66 6f 72 65 20 74 68 65 20 73 65 63 6f 6e 64 20 28 73 65 65 20 61 6c 73 6f 20 27 73 6f 72 74 efore.the.second.(see.also.'sort
acb20 27 29 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f ').....File:.doc7SuRxP.info,..No
acb40 64 65 3a 20 48 6f 6f 6b 73 2c 20 20 4e 65 78 74 3a 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 de:.Hooks,..Next:.Core.Functions
acb60 2c 20 20 50 72 65 76 3a 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 2c 20 20 55 70 3a 20 54 68 ,..Prev:.User.Variables,..Up:.Th
acb80 65 20 43 6f 72 65 20 46 69 6c 65 0a 0a 39 2e 32 20 48 6f 6f 6b 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d e.Core.File..9.2.Hooks.=========
acba0 0a 0a 54 68 65 20 63 6f 72 65 20 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 68 6f 6f 6b 20 76 61 ..The.core.file.provides.hook.va
acbc0 72 69 61 62 6c 65 73 20 66 6f 72 20 74 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 6c riables.for.the.basic.functional
acbe0 69 74 79 20 6f 66 0a 45 6d 6d 73 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 ity.of.Emms....--.User.Option:.e
acc00 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 41 20 68 mms-player-started-hook......A.h
acc20 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 73 74 61 72 ook.run.when.an.Emms.player.star
acc40 74 65 64 20 70 6c 61 79 69 6e 67 2e 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d ted.playing...--.User.Option:.em
acc60 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 41 20 68 6f ms-player-stopped-hook......A.ho
acc80 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 73 74 6f 70 70 ok.run.when.an.Emms.player.stopp
acca0 65 64 20 70 6c 61 79 69 6e 67 2e 20 20 53 65 65 20 61 6c 73 6f 0a 20 20 20 20 20 45 4d 4d 53 2d ed.playing...See.also......EMMS-
accc0 50 4c 41 59 45 52 2d 46 49 4e 49 53 48 45 44 2d 48 4f 4f 4b 2e 0a 20 2d 2d 20 55 73 65 72 20 4f PLAYER-FINISHED-HOOK...--.User.O
acce0 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 75 72 63 65 2d 69 6e 73 65 ption:.emms-playlist-source-inse
acd00 72 74 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 20 73 rted-hook......Hook.run.when.a.s
acd20 6f 75 72 63 65 20 67 6f 74 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 70 6c 61 79 ource.got.inserted.into.the.play
acd40 6c 69 73 74 2e 20 20 54 68 65 20 62 75 66 66 65 72 0a 20 20 20 20 20 69 73 20 6e 61 72 72 6f 77 list...The.buffer......is.narrow
acd60 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 74 72 61 63 6b 73 2e 0a 20 2d 2d 20 55 73 65 72 20 4f ed.to.the.new.tracks...--.User.O
acd80 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 69 6f 6e 2d 63 ption:.emms-playlist-selection-c
acda0 68 61 6e 67 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 hanged-hook......Hook.run.after.
acdc0 61 6e 6f 74 68 65 72 20 74 72 61 63 6b 20 69 73 20 73 65 6c 65 63 74 65 64 20 69 6e 20 74 68 65 another.track.is.selected.in.the
acde0 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 2e 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a .Emms.playlist...--.User.Option:
ace00 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 .emms-playlist-cleared-hook.....
ace20 20 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 .Hook.run.after.the.current.Emms
ace40 20 70 6c 61 79 6c 69 73 74 20 69 73 20 63 6c 65 61 72 65 64 2e 20 20 54 68 69 73 20 68 61 70 70 .playlist.is.cleared...This.happ
ace60 65 6e 73 0a 20 20 20 20 20 62 6f 74 68 20 77 68 65 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 ens......both.when.the.playlist.
ace80 69 73 20 63 6c 65 61 72 65 64 20 61 6e 64 20 77 68 65 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 is.cleared.and.when.a.new.buffer
acea0 20 69 73 20 63 72 65 61 74 65 64 0a 20 20 20 20 20 66 6f 72 20 69 74 2e 0a 20 2d 2d 20 55 73 65 .is.created......for.it...--.Use
acec0 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 r.Option:.emms-player-finished-h
acee0 6f 6f 6b 0a 20 20 20 20 20 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 45 6d 6d 73 20 70 ook......Hook.run.when.an.Emms.p
acf00 6c 61 79 65 72 20 66 69 6e 69 73 68 65 73 20 70 6c 61 79 69 6e 67 20 61 20 74 72 61 63 6b 2e 20 layer.finishes.playing.a.track..
acf20 20 50 6c 65 61 73 65 20 70 61 79 0a 20 20 20 20 20 61 74 74 65 6e 74 69 6f 6e 20 74 6f 20 74 68 .Please.pay......attention.to.th
acf40 65 20 64 69 66 66 65 72 65 6e 63 65 73 20 62 65 74 77 65 65 6e 20 45 4d 4d 53 2d 50 4c 41 59 45 e.differences.between.EMMS-PLAYE
acf60 52 2d 46 49 4e 49 53 48 45 44 2d 48 4f 4f 4b 20 61 6e 64 0a 20 20 20 20 20 45 4d 4d 53 2d 50 4c R-FINISHED-HOOK.and......EMMS-PL
acf80 41 59 45 52 2d 53 54 4f 50 50 45 44 2d 48 4f 4f 4b 2e 20 20 54 68 65 20 66 6f 72 6d 65 72 20 69 AYER-STOPPED-HOOK...The.former.i
acfa0 73 20 63 61 6c 6c 65 64 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20 20 70 6c 61 79 s.called.only.when.the......play
acfc0 65 72 20 69 73 20 73 74 6f 70 70 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 3b 20 74 68 65 er.is.stopped.interactively;.the
acfe0 20 6c 61 74 74 65 72 2c 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 20 70 6c 61 79 65 72 0a 20 20 .latter,.only.when.the.player...
ad000 20 20 20 61 63 74 75 61 6c 6c 79 20 66 69 6e 69 73 68 65 73 20 70 6c 61 79 69 6e 67 20 61 20 74 ...actually.finishes.playing.a.t
ad020 72 61 63 6b 2e 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 rack...--.User.Option:.emms-play
ad040 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 0a 20 20 20 20 20 48 6f 6f 6b 20 72 75 6e 20 77 68 65 er-paused-hook......Hook.run.whe
ad060 6e 20 61 20 70 6c 61 79 65 72 20 69 73 20 70 61 75 73 65 64 20 6f 72 20 72 65 73 75 6d 65 64 2e n.a.player.is.paused.or.resumed.
ad080 20 20 55 73 65 0a 20 20 20 20 20 45 4d 4d 53 2d 50 4c 41 59 45 52 2d 50 41 55 53 45 44 2d 50 20 ..Use......EMMS-PLAYER-PAUSED-P.
ad0a0 74 6f 20 66 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 2e 0a 0a 1f 0a 46 69 to.find.the.current.state.....Fi
ad0c0 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 72 65 20 le:.doc7SuRxP.info,..Node:.Core.
ad0e0 46 75 6e 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 48 6f 6f 6b 73 2c 20 20 55 70 3a 20 54 68 Functions,..Prev:.Hooks,..Up:.Th
ad100 65 20 43 6f 72 65 20 46 69 6c 65 0a 0a 39 2e 33 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 0a e.Core.File..9.3.Core.Functions.
ad120 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 63 6f 72 65 20 66 69 6c ==================..The.core.fil
ad140 65 20 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 e.also.defines.all.the.functions
ad160 20 69 6d 70 6f 72 74 61 6e 74 20 74 6f 20 74 68 65 20 62 61 73 69 63 20 75 73 65 0a 6f 66 20 45 .important.to.the.basic.use.of.E
ad180 6d 6d 73 2e 0a 0a 20 20 20 54 68 65 72 65 20 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 mms......There.are.functions.whi
ad1a0 63 68 20 64 65 61 6c 20 77 69 74 68 20 6d 6f 76 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 70 6c 61 ch.deal.with.movement.in.the.pla
ad1c0 79 6c 69 73 74 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6e 65 78 74 2d ylist....--.Function:.emms-next-
ad1e0 6e 6f 65 72 72 6f 72 0a 20 20 20 20 20 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 6e noerror......Start.playing.the.n
ad200 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 2e 20 ext.track.in.the.Emms.playlist..
ad220 20 55 6e 6c 69 6b 65 0a 20 20 20 20 20 27 65 6d 6d 73 2d 6e 65 78 74 27 2c 20 74 68 69 73 20 66 .Unlike......'emms-next',.this.f
ad240 75 6e 63 74 69 6f 6e 20 64 6f 65 73 6e 27 74 20 73 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 unction.doesn't.signal.an.error.
ad260 77 68 65 6e 20 63 61 6c 6c 65 64 20 61 74 0a 20 20 20 20 20 74 68 65 20 65 6e 64 20 6f 66 20 74 when.called.at......the.end.of.t
ad280 68 65 20 70 6c 61 79 6c 69 73 74 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 he.playlist...This.function.shou
ad2a0 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 0a 20 20 20 20 20 6e 6f 20 70 ld.only.be.called.when......no.p
ad2c0 6c 61 79 65 72 20 69 73 20 70 6c 61 79 69 6e 67 2e 20 20 54 68 69 73 20 69 73 20 61 20 67 6f 6f layer.is.playing...This.is.a.goo
ad2e0 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 75 74 20 69 6e 0a 20 20 20 20 20 27 65 6d 6d 73 2d d.function.to.put.in......'emms-
ad300 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 27 2e 0a 20 2d 2d 20 46 75 6e 63 74 player-finished-hook'...--.Funct
ad320 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 0a 20 20 20 20 20 4d 6f 76 ion:.emms-playlist-next......Mov
ad340 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 e.to.the.next.track.in.the.curre
ad360 6e 74 20 62 75 66 66 65 72 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c nt.buffer...--.Function:.emms-pl
ad380 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 4d 6f 76 65 20 74 6f 20 74 68 65 aylist-previous......Move.to.the
ad3a0 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 .previous.track.in.the.current.b
ad3c0 75 66 66 65 72 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d uffer...--.Function:.emms-random
ad3e0 0a 20 20 20 20 20 4a 75 6d 70 20 74 6f 20 61 20 72 61 6e 64 6f 6d 20 74 72 61 63 6b 2e 0a 20 2d ......Jump.to.a.random.track...-
ad400 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 70 -.Function:.emms-toggle-repeat-p
ad420 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 54 6f 67 67 6c 65 20 77 68 65 74 68 65 72 20 65 6d 6d 73 laylist......Toggle.whether.emms
ad440 20 72 65 70 65 61 74 73 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 66 74 65 72 20 69 74 20 69 .repeats.the.playlist.after.it.i
ad460 73 20 64 6f 6e 65 2e 20 20 53 65 65 0a 20 20 20 20 20 45 4d 4d 53 2d 52 45 50 45 41 54 2d 50 4c s.done...See......EMMS-REPEAT-PL
ad480 41 59 4c 49 53 54 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 6f 67 67 6c AYLIST...--.Function:.emms-toggl
ad4a0 65 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 54 6f 67 67 6c 65 20 77 68 65 74 68 e-repeat-track......Toggle.wheth
ad4c0 65 72 20 65 6d 6d 73 20 72 65 70 65 61 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 er.emms.repeats.the.current.trac
ad4e0 6b 2e 20 20 53 65 65 0a 20 20 20 20 20 45 4d 4d 53 2d 52 45 50 45 41 54 2d 54 52 41 43 4b 2e 0a k...See......EMMS-REPEAT-TRACK..
ad500 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 61 6e 64 6f 6d .--.Function:.emms-toggle-random
ad520 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 54 6f 67 67 6c 65 20 77 68 65 74 68 65 72 20 65 6d -playlist......Toggle.whether.em
ad540 6d 73 20 70 6c 61 79 73 20 74 68 65 20 74 72 61 63 6b 73 20 72 61 6e 64 6f 6d 6c 79 20 6f 72 20 ms.plays.the.tracks.randomly.or.
ad560 73 65 71 75 65 6e 74 69 61 6c 6c 79 2e 20 20 53 65 65 0a 20 20 20 45 4d 4d 53 2d 52 41 4e 44 4f sequentially...See....EMMS-RANDO
ad580 4d 2d 50 4c 41 59 4c 49 53 54 2e 0a 0a 20 20 20 53 6f 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 64 M-PLAYLIST......Some.functions.d
ad5a0 65 61 6c 20 77 69 74 68 20 74 68 65 20 67 65 74 74 69 6e 67 20 61 6e 64 20 73 65 74 74 69 6e 67 eal.with.the.getting.and.setting
ad5c0 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f .track.information....--.Functio
ad5e0 6e 3a 20 65 6d 6d 73 2d 74 72 61 63 6b 20 74 79 70 65 20 6e 61 6d 65 0a 20 20 20 20 20 43 72 65 n:.emms-track.type.name......Cre
ad600 61 74 65 20 61 20 74 72 61 63 6b 20 77 69 74 68 20 74 79 70 65 20 54 59 50 45 20 61 6e 64 20 6e ate.a.track.with.type.TYPE.and.n
ad620 61 6d 65 20 4e 41 4d 45 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 72 61 ame.NAME...--.Function:.emms-tra
ad640 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 74 79 ck-type.track......Return.the.ty
ad660 70 65 20 6f 66 20 54 52 41 43 4b 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d pe.of.TRACK...--.Function:.emms-
ad680 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 track-name.track......Return.the
ad6a0 20 6e 61 6d 65 20 6f 66 20 54 52 41 43 4b 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d .name.of.TRACK...--.Function:.em
ad6c0 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 6e 61 6d 65 20 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 ms-track-get.name.track.&optiona
ad6e0 6c 20 69 6e 65 78 69 73 74 65 6e 74 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c l.inexistent......Return.the.val
ad700 75 65 20 6f 66 20 4e 41 4d 45 20 66 6f 72 20 54 52 41 43 4b 2e 20 20 49 66 20 74 68 65 72 65 20 ue.of.NAME.for.TRACK...If.there.
ad720 69 73 20 6e 6f 20 76 61 6c 75 65 2c 20 72 65 74 75 72 6e 0a 20 20 20 20 20 44 45 46 41 55 4c 54 is.no.value,.return......DEFAULT
ad740 20 28 6f 72 20 6e 69 6c 2c 20 69 66 20 6e 6f 74 20 67 69 76 65 6e 29 2e 0a 20 2d 2d 20 46 75 6e .(or.nil,.if.not.given)...--.Fun
ad760 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 6e 61 6d 65 ction:.emms-track-set.track.name
ad780 20 76 61 6c 75 65 0a 20 20 20 20 20 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 4e 41 4d .value......Set.the.value.of.NAM
ad7a0 45 20 66 6f 72 20 54 52 41 43 4b 20 74 6f 20 56 41 4c 55 45 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 E.for.TRACK.to.VALUE...--.Functi
ad7c0 6f 6e 3a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b on:.emms-track-description.track
ad7e0 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 54 52 ......Return.a.description.of.TR
ad800 41 43 4b 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 0a 20 20 20 20 20 45 4d ACK...This.function.uses......EM
ad820 4d 53 2d 54 52 41 43 4b 2d 44 45 53 43 52 49 50 54 49 4f 4e 2d 46 55 4e 43 54 49 4f 4e 2e 0a 20 MS-TRACK-DESCRIPTION-FUNCTION...
ad840 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 6f 72 20 74 72 61 --.Function:.emms-player-for.tra
ad860 63 6b 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 6e 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 63 61 ck......Return.an.Emms.player.ca
ad880 70 61 62 6c 65 20 6f 66 20 70 6c 61 79 69 6e 67 20 54 52 41 43 4b 2e 20 20 54 68 69 73 20 77 69 pable.of.playing.TRACK...This.wi
ad8a0 6c 6c 20 62 65 20 74 68 65 0a 20 20 20 20 20 66 69 72 73 74 20 70 6c 61 79 65 72 20 77 68 6f 73 ll.be.the......first.player.whos
ad8c0 65 20 50 4c 41 59 41 42 4c 45 50 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 6e 6f 6e e.PLAYABLEP.function.returns.non
ad8e0 2d 6e 69 6c 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 0a 20 20 20 20 20 73 75 63 68 20 70 6c 61 -nil,.or.nil.if.no......such.pla
ad900 79 65 72 20 65 78 69 73 74 73 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 yer.exists...--.Function:.emms-p
ad920 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 0a 20 laylist-current-selected-track..
ad940 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 ....Return.the.currently.selecte
ad960 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e d.track.in.the.current.playlist.
ad980 0a 0a 20 20 20 54 68 65 72 65 20 61 72 65 20 61 6c 73 6f 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 .....There.are.also.functions.wh
ad9a0 69 63 68 20 64 65 61 6c 20 77 69 74 68 20 74 68 65 20 70 6c 61 79 69 6e 67 20 69 74 73 65 6c 66 ich.deal.with.the.playing.itself
ad9c0 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 ....--.Function:.emms-player-sta
ad9e0 72 74 20 74 72 61 63 6b 0a 20 20 20 20 20 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 54 52 41 43 rt.track......Start.playing.TRAC
ada00 4b 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f K...--.Function:.emms-player-sto
ada20 70 0a 20 20 20 20 20 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e p......Stop.the.currently.playin
ada40 67 20 70 6c 61 79 65 72 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 g.player...--.Function:.emms-pla
ada60 79 65 72 2d 73 74 6f 70 70 65 64 0a 20 20 20 20 20 44 65 63 6c 61 72 65 20 74 68 61 74 20 74 68 yer-stopped......Declare.that.th
ada80 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 69 73 20 66 69 6e 69 73 68 65 e.current.Emms.player.is.finishe
adaa0 64 2e 20 20 54 68 69 73 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 0a 20 20 20 20 20 62 65 20 64 6f 6e d...This.should.only......be.don
adac0 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 69 74 73 65 6c 66 2e 0a e.by.the.current.player.itself..
adae0 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 65 65 6b 20 64 75 72 61 74 69 6f ..--.Function:.emms-seek.duratio
adb00 6e 0a 20 20 20 20 20 53 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 62 n......Seek.the.current.player.b
adb20 79 20 44 55 52 41 54 49 4f 4e 20 66 72 6f 6d 20 69 74 73 20 63 75 72 72 65 6e 74 20 70 6f 73 69 y.DURATION.from.its.current.posi
adb40 74 69 6f 6e 2e 20 20 54 68 65 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 20 44 55 52 41 54 49 4f tion...The......argument.DURATIO
adb60 4e 20 63 61 6e 20 62 65 3a 0a 0a 20 20 20 20 20 20 20 20 2d 20 41 20 73 69 6e 67 6c 65 20 6e 75 N.can.be:..........-.A.single.nu
adb80 6d 62 65 72 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 69 73 20 69 6e 74 65 72 70 mber,.in.which.case.it.is.interp
adba0 72 65 74 65 64 20 61 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 20 20 20 20 20 20 20 20 2d 20 41 20 73 reted.as.seconds...........-.A.s
adbc0 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 20 5b 2d 5d 5b 48 48 3a 5d 4d 4d 3a 53 53 2e 6d 2c 20 77 tring.of.form.[-][HH:]MM:SS.m,.w
adbe0 68 65 72 65 20 48 48 20 69 73 20 68 6f 75 72 73 2c 20 4d 4d 20 69 73 0a 20 20 20 20 20 20 20 20 here.HH.is.hours,.MM.is.........
adc00 20 20 6d 69 6e 75 74 65 73 2c 20 61 6e 64 20 53 53 20 69 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 20 ..minutes,.and.SS.is.seconds....
adc20 20 20 20 20 49 6e 20 62 6f 74 68 20 66 6f 72 6d 73 20 73 65 63 6f 6e 64 73 20 63 61 6e 20 62 65 ....In.both.forms.seconds.can.be
adc40 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 20 41 20 6e 65 67 .a.floating.point.number...A.neg
adc60 61 74 69 76 65 0a 20 20 20 20 20 76 61 6c 75 65 20 73 65 65 6b 73 20 62 61 63 6b 77 61 72 64 73 ative......value.seeks.backwards
adc80 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 65 65 6b 2d 74 6f 20 74 69 ....--.Function:.emms-seek-to.ti
adca0 6d 65 73 74 61 6d 70 0a 20 20 20 20 20 53 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c mestamp......Seek.the.current.pl
adcc0 61 79 65 72 20 74 6f 20 54 49 4d 45 53 54 41 4d 50 2e 20 20 41 63 63 65 70 74 61 62 6c 65 20 66 ayer.to.TIMESTAMP...Acceptable.f
adce0 6f 72 6d 73 20 66 6f 72 0a 20 20 20 20 20 54 49 4d 45 53 54 41 4d 50 20 61 72 65 20 74 68 65 20 orms.for......TIMESTAMP.are.the.
add00 73 61 6d 65 20 61 73 20 74 69 6d 65 20 64 75 72 61 74 69 6f 6e 20 69 6e 20 27 65 6d 6d 73 2d 73 same.as.time.duration.in.'emms-s
add20 65 65 6b 27 2c 20 65 78 63 65 70 74 20 74 68 61 74 0a 20 20 20 20 20 74 69 6d 65 73 74 61 6d 70 eek',.except.that......timestamp
add40 73 20 63 61 6e 6e 6f 74 20 62 65 20 6e 65 67 61 74 69 76 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 s.cannot.be.negative....--.Funct
add60 69 6f 6e 3a 20 65 6d 6d 73 2d 73 65 65 6b 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 53 65 65 6b ion:.emms-seek-forward......Seek
add80 20 74 65 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 77 61 72 64 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 .ten.seconds.forward...--.Functi
adda0 6f 6e 3a 20 65 6d 6d 73 2d 73 65 65 6b 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 53 65 65 6b on:.emms-seek-backward......Seek
addc0 20 74 65 6e 20 73 65 63 6f 6e 64 73 20 62 61 63 6b 77 61 72 64 2e 0a 0a 20 20 20 46 6f 72 20 6d .ten.seconds.backward......For.m
adde0 6f 72 65 20 62 61 73 69 63 20 63 6f 6d 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 ore.basic.commands.defined.in.th
ade00 65 20 63 6f 72 65 20 66 69 6c 65 20 73 65 65 20 2a 4e 6f 74 65 20 42 61 73 69 63 0a 43 6f 6d 6d e.core.file.see.*Note.Basic.Comm
ade20 61 6e 64 73 3a 3a 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c ands::.....File:.doc7SuRxP.info,
ade40 20 20 4e 6f 64 65 3a 20 53 6f 75 72 63 65 73 2c 20 20 4e 65 78 74 3a 20 53 69 6d 70 6c 65 20 50 ..Node:.Sources,..Next:.Simple.P
ade60 6c 61 79 65 72 73 2c 20 20 50 72 65 76 3a 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 2c 20 20 55 layers,..Prev:.The.Core.File,..U
ade80 70 3a 20 54 6f 70 0a 0a 31 30 20 53 6f 75 72 63 65 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 53 p:.Top..10.Sources.**********..S
adea0 6f 75 72 63 65 73 20 61 6c 6c 6f 77 20 45 6d 6d 73 20 74 6f 20 61 64 64 20 61 6e 64 20 70 6c 61 ources.allow.Emms.to.add.and.pla
adec0 79 20 74 72 61 63 6b 73 2e 20 20 45 6d 6d 73 20 63 6f 6d 65 73 20 77 69 74 68 20 61 20 6e 75 6d y.tracks...Emms.comes.with.a.num
adee0 62 65 72 20 6f 66 0a 73 6f 75 72 63 65 73 20 6f 66 20 69 74 73 20 6f 77 6e 2e 20 20 53 6f 75 72 ber.of.sources.of.its.own...Sour
adf00 63 65 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 73 6f 20 74 68 61 74 20 63 72 65 61 74 69 6e ces.are.designed.so.that.creatin
adf20 67 20 6e 65 77 20 6f 6e 65 73 20 77 69 6c 6c 0a 62 65 20 65 61 73 79 2e 0a 0a 20 20 20 46 6f 72 g.new.ones.will.be.easy......For
adf40 20 65 78 61 6d 70 6c 65 73 20 6f 66 20 45 6d 6d 73 20 73 6f 75 72 63 65 73 20 66 6f 72 20 66 69 .examples.of.Emms.sources.for.fi
adf60 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 73 65 65 0a 27 65 6d 6d 73 2d 73 6f les.and.directories.see.'emms-so
adf80 75 72 63 65 2d 66 69 6c 65 2e 65 6c 27 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a urce-file.el'....--.User.Option:
adfa0 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 .emms-source-file-default-direct
adfc0 6f 72 79 0a 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 64 69 72 65 63 74 6f 72 79 20 74 ory......The.default.directory.t
adfe0 6f 20 6c 6f 6f 6b 20 66 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 0a 20 2d 2d 20 46 75 6e 63 o.look.for.media.files...--.Func
ae000 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6e 64 0a 20 20 20 20 20 50 6c 61 79 20 61 tion:.emms-play-find......Play.a
ae020 6c 6c 20 66 69 6c 65 73 20 69 6e 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 45 46 ll.files.in.EMMS-SOURCE-FILE-DEF
ae040 41 55 4c 54 2d 44 49 52 45 43 54 4f 52 59 20 74 68 61 74 20 6d 61 74 63 68 20 61 0a 20 20 20 20 AULT-DIRECTORY.that.match.a.....
ae060 20 73 70 65 63 69 66 69 63 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 2d .specific.regular.expression...-
ae080 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 20 26 6f 70 -.Function:.emms-source-file.&op
ae0a0 74 69 6f 6e 61 6c 20 66 69 6c 65 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 tional.file......An.Emms.source.
ae0c0 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 2d 20 65 69 74 68 65 72 20 46 49 4c 45 2c for.a.single.file.-.either.FILE,
ae0e0 20 6f 72 20 71 75 65 72 69 65 64 20 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 20 75 73 65 72 2e 0a .or.queried.from.the......user..
ae100 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 73 20 .--.Function:.emms-source-files.
ae120 66 69 6c 65 73 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 files......An.Emms.source.for.a.
ae140 6c 69 73 74 20 6f 66 20 46 49 4c 45 53 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d list.of.FILES...--.Function:.emm
ae160 73 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 s-source-directory.&optional.dir
ae180 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 ......An.Emms.source.for.a.whole
ae1a0 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 .directory.tree.-.either.DIR,.or
ae1c0 20 71 75 65 72 69 65 64 0a 20 20 20 20 20 66 72 6f 6d 20 74 68 65 20 75 73 65 72 0a 20 2d 2d 20 .queried......from.the.user..--.
ae1e0 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 2d Function:.emms-source-directory-
ae200 74 72 65 65 20 26 20 6f 70 74 69 6f 6e 61 6c 20 64 69 72 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 tree.&.optional.dir......An.Emms
ae220 20 73 6f 75 72 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 .source.for.multiple.directory.t
ae240 72 65 65 73 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 74 68 65 0a 20 20 20 20 20 76 rees.-.either.DIR,.or.the......v
ae260 61 6c 75 65 20 6f 66 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 45 46 41 55 4c 54 alue.of.EMMS-SOURCE-FILE-DEFAULT
ae280 2d 44 49 52 45 43 54 4f 52 59 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 -DIRECTORY...--.Function:.emms-s
ae2a0 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 ource-playlist.file......An.Emms
ae2c0 20 73 6f 75 72 63 65 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 73 2e 20 20 53 65 65 20 45 4d 4d 53 .source.for.playlists...See.EMMS
ae2e0 2d 53 4f 55 52 43 45 2d 50 4c 41 59 4c 49 53 54 2d 46 4f 52 4d 41 54 53 20 66 6f 72 0a 20 20 20 -SOURCE-PLAYLIST-FORMATS.for....
ae300 20 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 2e 0a 20 ..a.list.of.supported.formats...
ae320 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 --.Function:.emms-source-playlis
ae340 74 2d 6e 61 74 69 76 65 20 66 69 6c 65 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 t-native.file......An.Emms.sourc
ae360 65 20 66 6f 72 20 61 20 6e 61 74 69 76 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 66 69 6c e.for.a.native.Emms.playlist.fil
ae380 65 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 e...--.Function:.emms-source-pla
ae3a0 79 6c 69 73 74 2d 6d 33 75 20 66 69 6c 65 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 ylist-m3u.file......An.Emms.sour
ae3c0 63 65 20 66 6f 72 20 61 6e 20 6d 33 75 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 2e 0a 20 2d 2d ce.for.an.m3u.playlist.file...--
ae3e0 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d .Function:.emms-source-playlist-
ae400 70 6c 73 20 66 69 6c 65 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 pls.file......An.Emms.source.for
ae420 20 61 20 70 6c 73 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 .a.pls.playlist.file...--.Functi
ae440 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 64 on:.emms-source-find.&optional.d
ae460 69 72 20 72 65 67 65 78 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 74 68 61 ir.regex......An.Emms.source.tha
ae480 74 20 77 69 6c 6c 20 66 69 6e 64 20 66 69 6c 65 73 20 69 6e 20 44 49 52 20 6f 72 0a 20 20 20 20 t.will.find.files.in.DIR.or.....
ae4a0 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 46 49 4c 45 2d 44 45 46 41 55 4c 54 2d 44 49 52 45 43 54 .EMMS-SOURCE-FILE-DEFAULT-DIRECT
ae4c0 4f 52 59 20 74 68 61 74 20 6d 61 74 63 68 20 52 45 47 45 58 50 2e 0a 20 2d 2d 20 46 75 6e 63 74 ORY.that.match.REGEXP...--.Funct
ae4e0 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 20 64 61 74 61 62 61 73 65 20 ion:.emms-source-beets.database.
ae500 66 69 6c 74 65 72 20 73 6f 72 74 0a 20 20 20 20 20 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 filter.sort......An.Emms.source.
ae520 74 68 61 74 20 77 69 6c 6c 20 72 65 61 64 20 61 20 27 62 65 65 74 73 27 20 6c 69 62 72 61 72 79 that.will.read.a.'beets'.library
ae540 20 64 61 74 61 62 61 73 65 20 28 72 65 71 75 69 72 65 73 0a 20 20 20 20 20 45 6d 61 63 73 20 74 .database.(requires......Emacs.t
ae560 6f 20 62 65 20 62 75 69 6c 74 20 77 69 74 68 20 53 51 4c 69 74 65 20 73 75 70 70 6f 72 74 29 2e o.be.built.with.SQLite.support).
ae580 20 20 57 69 74 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 46 49 4c 54 ..With.prefix.argument......FILT
ae5a0 45 52 2c 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 66 69 6c 74 65 72 20 74 68 65 20 64 61 74 ER,.interactively.filter.the.dat
ae5c0 61 62 61 73 65 2e 20 20 57 69 74 68 20 61 20 64 6f 75 62 6c 65 20 28 6f 72 20 6d 6f 72 65 29 0a abase...With.a.double.(or.more).
ae5e0 20 20 20 20 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 61 6c 73 6f 20 73 65 74 20 53 .....prefix.argument,.also.set.S
ae600 4f 52 54 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 3b 20 6f 74 68 65 72 77 69 73 65 20 75 73 65 ORT.interactively;.otherwise.use
ae620 0a 20 20 20 20 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 42 45 45 54 53 2d 53 4f 52 54 2d 43 4f 4c ......EMMS-SOURCE-BEETS-SORT-COL
ae640 55 4d 4e 53 2e 20 20 49 66 20 44 41 54 41 42 41 53 45 20 69 73 20 6f 6d 69 74 74 65 64 20 6f 72 UMNS...If.DATABASE.is.omitted.or
ae660 20 6e 69 6c 2c 0a 20 20 20 20 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 42 45 45 54 53 2d 44 41 54 .nil,......EMMS-SOURCE-BEETS-DAT
ae680 41 42 41 53 45 20 69 73 20 75 73 65 64 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d ABASE.is.used...--.Function:.emm
ae6a0 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 26 6f 70 s-source-file-directory-tree.&op
ae6c0 74 69 6f 6e 61 6c 20 64 69 72 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 tional.dir......Return.a.list.of
ae6e0 20 61 6c 6c 20 66 69 6c 65 73 20 75 6e 64 65 72 20 44 49 52 20 77 68 69 63 68 20 6d 61 74 63 68 .all.files.under.DIR.which.match
ae700 20 52 45 47 45 58 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 2d .REGEX...--.Function:.emms-play-
ae720 64 69 72 65 64 0a 20 20 20 20 20 50 6c 61 79 20 61 6c 6c 20 6d 61 72 6b 65 64 20 66 69 6c 65 73 dired......Play.all.marked.files
ae740 20 6f 66 20 61 20 64 69 72 65 64 20 62 75 66 66 65 72 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a .of.a.dired.buffer..--.Function:
ae760 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 64 0a 20 20 20 20 20 41 64 64 20 61 6c 6c 20 6d 61 72 .emms-add-dired......Add.all.mar
ae780 6b 65 64 20 66 69 6c 65 73 20 6f 66 20 61 20 64 69 72 65 64 20 62 75 66 66 65 72 0a 20 2d 2d 20 ked.files.of.a.dired.buffer..--.
ae7a0 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 72 65 67 65 78 Function:.emms-source-file-regex
ae7c0 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 74 68 61 74 20 6d 61 74 63 68 ......Return.a.regexp.that.match
ae7e0 65 73 20 65 76 65 72 79 74 68 69 6e 67 20 61 6e 79 20 70 6c 61 79 65 72 20 28 74 68 61 74 20 73 es.everything.any.player.(that.s
ae800 75 70 70 6f 72 74 73 0a 20 20 20 20 20 66 69 6c 65 73 29 20 63 61 6e 20 70 6c 61 79 2e 0a 20 2d upports......files).can.play...-
ae820 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 6f 63 61 74 65 20 72 65 67 65 78 70 0a 20 -.Function:.emms-locate.regexp..
ae840 20 20 20 20 53 65 61 72 63 68 20 66 6f 72 20 52 45 47 45 58 50 20 61 6e 64 20 64 69 73 70 6c 61 ....Search.for.REGEXP.and.displa
ae860 79 20 74 68 65 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 6c 6f 63 61 74 65 20 62 75 66 66 65 72 y.the.results.in.a.locate.buffer
ae880 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ....File:.doc7SuRxP.info,..Node:
ae8a0 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 2c 20 20 4e 65 78 74 3a 20 50 6c 61 79 6c 69 73 74 .Simple.Players,..Next:.Playlist
ae8c0 73 2c 20 20 50 72 65 76 3a 20 53 6f 75 72 63 65 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 31 20 s,..Prev:.Sources,..Up:.Top..11.
ae8e0 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a Simple.Players.*****************
ae900 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d ...--.Macro:.define-emms-simple-
ae920 70 6c 61 79 65 72 20 6e 61 6d 65 20 74 79 70 65 73 20 72 65 67 65 78 20 63 6f 6d 6d 61 6e 64 20 player.name.types.regex.command.
ae940 26 72 65 73 74 20 61 72 67 73 0a 20 20 20 20 20 44 65 66 69 6e 65 20 61 20 73 69 6d 70 6c 65 20 &rest.args......Define.a.simple.
ae960 70 6c 61 79 65 72 2e 20 20 4e 41 4d 45 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 73 74 72 75 player...NAME.is.used.to.constru
ae980 63 74 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e ct.the.name.of.the......function
ae9a0 20 6c 69 6b 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 4e 41 4d 45 2e 20 20 54 59 50 45 53 20 69 .like.emms-player-NAME...TYPES.i
ae9c0 73 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 20 74 79 70 65 73 0a 20 20 20 20 20 75 6e 64 s.a.list.of.track.types......und
ae9e0 65 72 73 74 6f 6f 64 20 62 79 20 74 68 69 73 20 70 6c 61 79 65 72 2e 20 20 52 45 47 45 58 20 6d erstood.by.this.player...REGEX.m
aea00 75 73 74 20 62 65 20 61 20 72 65 67 65 78 70 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 ust.be.a.regexp.that.matches.the
aea20 0a 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 73 20 74 68 65 20 70 6c 61 79 65 72 20 63 61 6e 20 70 ......filenames.the.player.can.p
aea40 6c 61 79 2e 20 20 43 4f 4d 4d 41 4e 44 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 63 6f 6d 6d lay...COMMAND.specifies.the.comm
aea60 61 6e 64 20 6c 69 6e 65 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 63 61 6c 6c 20 74 and.line......argument.to.call.t
aea80 68 65 20 70 6c 61 79 65 72 20 61 6e 64 20 41 52 47 53 20 61 72 65 20 74 68 65 20 63 6f 6d 6d 61 he.player.and.ARGS.are.the.comma
aeaa0 6e 64 20 6c 69 6e 65 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 46 6f 72 20 nd.line......arguments......For.
aeac0 61 20 64 69 73 63 75 73 73 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 6e 65 a.discussion.on.how.to.define.ne
aeae0 77 20 70 6c 61 79 65 72 73 20 73 65 65 20 2a 4e 6f 74 65 20 4e 65 77 20 50 6c 61 79 65 72 3a 3a w.players.see.*Note.New.Player::
aeb00 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d ....--.Function:.emms-player-sim
aeb20 70 6c 65 2d 73 74 6f 70 0a 20 20 20 20 20 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 ple-stop......Stop.the.currently
aeb40 20 70 6c 61 79 69 6e 67 20 70 72 6f 63 65 73 73 2c 20 69 66 20 69 6e 64 65 65 64 20 74 68 65 72 .playing.process,.if.indeed.ther
aeb60 65 20 69 73 20 6f 6e 65 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 e.is.one...--.Function:.emms-pla
aeb80 79 65 72 2d 73 69 6d 70 6c 65 2d 73 74 61 72 74 20 66 69 6c 65 6e 61 6d 65 20 63 6d 64 6e 61 6d yer-simple-start.filename.cmdnam
aeba0 65 20 70 61 72 61 6d 73 0a 20 20 20 20 20 53 74 61 72 74 73 20 61 20 70 72 6f 63 65 73 73 20 70 e.params......Starts.a.process.p
aebc0 6c 61 79 69 6e 67 20 46 49 4c 45 4e 41 4d 45 20 75 73 69 6e 67 20 74 68 65 20 73 70 65 63 69 66 laying.FILENAME.using.the.specif
aebe0 69 65 64 20 43 4d 44 4e 41 4d 45 20 77 69 74 68 0a 20 20 20 20 20 74 68 65 20 73 70 65 63 69 66 ied.CMDNAME.with......the.specif
aec00 69 65 64 20 50 41 52 41 4d 53 2e 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 ied.PARAMS...--.Function:.emms-p
aec20 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 20 73 74 72 0a 20 layer-simple-sentinel.proc.str..
aec40 20 20 20 20 53 65 6e 74 69 6e 65 6c 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 74 68 65 ....Sentinel.for.determining.the
aec60 20 65 6e 64 20 6f 66 20 70 72 6f 63 65 73 73 20 66 6f 72 20 74 68 65 20 70 72 6f 63 65 73 73 20 .end.of.process.for.the.process.
aec80 50 52 4f 43 0a 20 20 20 20 20 61 6e 64 20 74 68 65 20 73 65 6e 74 69 6e 65 6c 20 73 74 72 69 6e PROC......and.the.sentinel.strin
aeca0 67 20 53 54 52 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 g.STR.....File:.doc7SuRxP.info,.
aecc0 20 4e 6f 64 65 3a 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 4e 65 78 74 3a 20 54 72 61 63 6b 20 49 .Node:.Playlists,..Next:.Track.I
aece0 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 nformation,..Prev:.Simple.Player
aed00 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 32 20 50 6c 61 79 6c 69 73 74 73 0a 2a 2a 2a 2a 2a 2a s,..Up:.Top..12.Playlists.******
aed20 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 75 73 65 73 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 20 ******..Emms.uses.Emacs.buffers.
aed40 74 6f 20 73 74 6f 72 65 20 74 68 65 20 6d 65 64 69 61 20 74 72 61 63 6b 73 20 66 6f 72 20 70 6c to.store.the.media.tracks.for.pl
aed60 61 79 69 6e 67 2e 20 20 57 65 20 63 61 6c 6c 0a 6f 6e 65 20 73 75 63 68 20 62 75 66 66 65 72 20 aying...We.call.one.such.buffer.
aed80 61 20 22 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 22 20 6f 72 20 61 6e 20 22 45 6d 6d 73 20 a."playlist.buffer".or.an."Emms.
aeda0 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 22 2e 20 20 45 6d 6d 73 0a 74 68 65 6e 20 70 72 6f playlist.buffer"...Emms.then.pro
aedc0 63 65 65 64 73 20 74 6f 20 70 6c 61 79 20 74 68 65 20 6d 65 64 69 61 20 74 72 61 63 6b 73 20 69 ceeds.to.play.the.media.tracks.i
aede0 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 74 6f 70 20 74 6f 20 62 6f 74 74 6f 6d 0a n.the.buffer.from.top.to.bottom.
aee00 75 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a until.the.end.of.the.playlist...
aee20 20 20 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 ...The.name.of.the.playlist.buff
aee40 65 72 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 45 4d er.is.defined.in.the.variable.EM
aee60 4d 53 2d 50 4c 41 59 4c 49 53 54 2d 42 55 46 46 45 52 2d 4e 41 4d 45 20 61 6e 64 20 69 73 20 73 MS-PLAYLIST-BUFFER-NAME.and.is.s
aee80 65 74 20 74 6f 20 62 65 20 61 6e 20 69 6e 76 69 73 69 62 6c 65 20 45 6d 61 63 73 20 62 75 66 66 et.to.be.an.invisible.Emacs.buff
aeea0 65 72 20 62 79 0a 64 65 66 61 75 6c 74 2e 20 20 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 er.by.default...You.can.change.t
aeec0 6f 20 61 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 2e 20 20 46 6f 72 20 61 6e 20 65 78 61 o.any.name.you.want...For.an.exa
aeee0 6d 70 6c 65 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 65 20 2a 4e 6f 74 65 20 43 6f 6e mple.configuration.see.*Note.Con
aef00 66 69 67 75 72 61 74 69 6f 6e 3a 3a 2e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 figuration::......You.can.create
aef20 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 20 .any.number.of.playlist.buffers.
aef40 79 6f 75 20 77 69 73 68 2e 20 20 41 74 20 61 6e 79 20 74 69 6d 65 0a 45 6d 6d 73 20 68 61 73 20 you.wish...At.any.time.Emms.has.
aef60 61 20 73 69 6e 67 6c 65 20 22 63 75 72 72 65 6e 74 22 20 62 75 66 66 65 72 20 74 68 72 6f 75 67 a.single."current".buffer.throug
aef80 68 20 77 68 69 63 68 20 69 74 20 70 72 6f 63 65 65 64 73 20 74 72 61 63 6b 20 62 79 0a 74 72 61 h.which.it.proceeds.track.by.tra
aefa0 63 6b 2e 20 20 41 20 73 61 76 65 64 20 70 6c 61 79 6c 69 73 74 20 63 61 6e 20 62 65 20 61 64 64 ck...A.saved.playlist.can.be.add
aefc0 65 64 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 62 79 20 63 61 6c 6c ed.to.the.current.buffer.by.call
aefe0 69 6e 67 0a 27 4d 2d 78 20 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 27 20 6f 72 20 27 ing.'M-x.emms-add-playlist'.or.'
af000 4d 2d 78 20 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 27 2c 20 77 68 69 63 68 20 61 M-x.emms-play-playlist',.which.a
af020 6c 73 6f 20 70 6c 61 79 73 0a 74 68 65 20 74 72 61 63 6b 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 lso.plays.the.tracks.immediately
af040 2e 0a 0a 20 20 20 54 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 ......The.current.Emms.playlist.
af060 62 75 66 66 65 72 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 buffer.is.stored.in.the.variable
af080 0a 45 4d 4d 53 2d 50 4c 41 59 4c 49 53 54 2d 42 55 46 46 45 52 2e 0a 0a 20 2d 2d 20 46 75 6e 63 .EMMS-PLAYLIST-BUFFER....--.Func
af0a0 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 20 26 6f 70 74 69 6f 6e 61 tion:.emms-playlist-new.&optiona
af0c0 6c 20 6e 61 6d 65 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 l.name......Create.a.new.playlis
af0e0 74 20 62 75 66 66 65 72 2e 20 20 54 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 61 6d 65 64 20 4e t.buffer...The.buffer.is.named.N
af100 41 4d 45 2c 20 62 75 74 20 6d 61 64 65 0a 20 20 20 20 20 75 6e 69 71 75 65 2e 20 20 4e 41 4d 45 AME,.but.made......unique...NAME
af120 20 64 65 66 61 75 6c 74 73 20 74 6f 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 .defaults.to.'emms-playlist-buff
af140 65 72 2d 6e 61 6d 65 27 2e 20 20 49 66 20 63 61 6c 6c 65 64 0a 20 20 20 20 20 69 6e 74 65 72 61 er-name'...If.called......intera
af160 63 74 69 76 65 6c 79 2c 20 74 68 65 20 6e 65 77 20 62 75 66 66 65 72 20 69 73 20 61 6c 73 6f 20 ctively,.the.new.buffer.is.also.
af180 73 65 6c 65 63 74 65 64 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c selected....--.Function:.emms-pl
af1a0 61 79 6c 69 73 74 2d 73 61 76 65 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 61 74 20 66 69 6c aylist-save.&optional.format.fil
af1c0 65 0a 20 20 20 20 20 53 74 6f 72 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 e......Store.the.current.playlis
af1e0 74 20 74 6f 20 46 49 4c 45 20 61 73 20 74 68 65 20 74 79 70 65 20 46 4f 52 4d 41 54 2e 20 54 68 t.to.FILE.as.the.type.FORMAT..Th
af200 65 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 66 6f 72 6d 61 74 20 69 73 20 73 70 65 63 69 66 69 e.default......format.is.specifi
af220 65 64 20 62 79 20 45 4d 4d 53 2d 53 4f 55 52 43 45 2d 50 4c 41 59 4c 49 53 54 2d 44 45 46 41 55 ed.by.EMMS-SOURCE-PLAYLIST-DEFAU
af240 4c 54 2d 46 4f 52 4d 41 54 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 LT-FORMAT....--.Function:.emms-p
af260 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 0a 20 20 20 20 20 43 6c 65 61 72 73 20 74 68 65 20 70 6c laylist-clear......Clears.the.pl
af280 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d aylist.buffer....--.Function:.em
af2a0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 63 6c 65 61 72 0a 20 20 20 20 20 43 ms-playlist-current-clear......C
af2c0 6c 65 61 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 20 20 49 66 20 6e lear.the.current.playlist...If.n
af2e0 6f 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 65 78 69 73 74 73 2c 20 61 20 6e 65 77 o.current.playlist.exists,.a.new
af300 0a 20 20 20 20 20 6f 6e 65 20 69 73 20 67 65 6e 65 72 61 74 65 64 2e 0a 0a 20 2d 2d 20 46 75 6e ......one.is.generated....--.Fun
af320 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 6b 69 6c ction:.emms-playlist-current-kil
af340 6c 0a 20 20 20 20 20 4b 69 6c 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 l......Kill.the.current.EMMS.pla
af360 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 6e ylist.buffer.and.switch.to.the.n
af380 65 78 74 20 6f 6e 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 ext.one....--.Function:.emms-pla
af3a0 79 6c 69 73 74 2d 6c 65 6e 67 74 68 0a 20 20 20 20 20 44 69 73 70 6c 61 79 20 74 68 65 20 74 6f ylist-length......Display.the.to
af3c0 74 61 6c 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 tal.playing.time.of.the.current.
af3e0 70 6c 61 79 6c 69 73 74 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c playlist....--.Function:.emms-pl
af400 61 79 6c 69 73 74 2d 74 6f 74 61 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 20 20 20 20 20 41 aylist-total-playing-time......A
af420 6c 69 61 73 20 66 6f 72 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 6e 67 74 68 27 2e lias.for.'emms-playlist-length'.
af440 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ....File:.doc7SuRxP.info,..Node:
af460 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 49 6e 74 65 72 .Track.Information,..Next:.Inter
af480 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 50 72 65 76 3a 20 50 6c 61 79 6c 69 73 active.Playlists,..Prev:.Playlis
af4a0 74 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 33 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 ts,..Up:.Top..13.Track.Informati
af4c0 6f 6e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 42 79 20 64 65 66 61 on.********************..By.defa
af4e0 75 6c 74 20 45 6d 6d 73 20 77 69 6c 6c 20 6f 6e 6c 79 20 6c 69 73 74 20 74 72 61 63 6b 73 20 61 ult.Emms.will.only.list.tracks.a
af500 73 20 66 69 6c 65 20 6e 61 6d 65 73 20 6f 72 20 55 52 4c 73 20 69 6e 20 70 6c 61 79 6c 69 73 74 s.file.names.or.URLs.in.playlist
af520 73 0a 28 2a 6e 6f 74 65 20 50 6c 61 79 6c 69 73 74 73 3a 3a 29 20 61 6e 64 20 74 68 65 20 62 72 s.(*note.Playlists::).and.the.br
af540 6f 77 73 65 72 20 28 2a 6e 6f 74 65 20 54 68 65 20 42 72 6f 77 73 65 72 3a 3a 29 2e 20 20 48 6f owser.(*note.The.Browser::)...Ho
af560 77 65 76 65 72 2c 0a 45 6d 6d 73 20 63 61 6e 20 62 65 20 63 6f 6e 66 69 67 75 72 65 64 20 74 6f wever,.Emms.can.be.configured.to
af580 20 75 74 69 6c 69 7a 65 20 73 6f 2d 63 61 6c 6c 65 64 20 22 69 6e 66 6f 20 6d 65 74 68 6f 64 73 .utilize.so-called."info.methods
af5a0 22 20 74 6f 20 61 75 67 6d 65 6e 74 0a 74 72 61 63 6b 73 20 77 69 74 68 20 6d 65 74 61 64 61 74 ".to.augment.tracks.with.metadat
af5c0 61 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 73 75 63 68 20 61 73 20 61 72 74 69 73 74 20 6e 61 a.information,.such.as.artist.na
af5e0 6d 65 2c 20 74 72 61 63 6b 20 6e 61 6d 65 2c 20 61 6c 62 75 6d 0a 74 69 74 6c 65 2c 20 61 6e 64 me,.track.name,.album.title,.and
af600 20 74 68 65 20 6c 69 6b 65 2e 20 20 57 65 20 64 65 73 63 72 69 62 65 20 74 68 65 73 65 20 6d 65 .the.like...We.describe.these.me
af620 74 68 6f 64 73 20 61 6e 64 20 74 68 65 69 72 20 75 73 65 20 69 6e 20 74 68 69 73 0a 63 68 61 70 thods.and.their.use.in.this.chap
af640 74 65 72 2e 0a 0a 20 20 20 46 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 2c 20 69 6e 66 6f 20 6d 65 74 ter......Fundamentally,.info.met
af660 68 6f 64 73 20 61 72 65 20 45 6d 61 63 73 20 4c 69 73 70 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 hods.are.Emacs.Lisp.functions.th
af680 61 74 20 61 72 65 20 63 61 6c 6c 65 64 0a 66 6f 72 20 65 61 63 68 20 74 72 61 63 6b 20 74 6f 20 at.are.called.for.each.track.to.
af6a0 70 72 6f 76 69 64 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 74 68 61 74 20 74 72 61 provide.information.for.that.tra
af6c0 63 6b 2e 20 20 43 75 72 72 65 6e 74 20 69 6e 66 6f 0a 6d 65 74 68 6f 64 73 20 69 6e 20 45 6d 6d ck...Current.info.methods.in.Emm
af6e0 73 20 61 72 65 20 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 72 61 63 6b 73 20 74 68 61 74 20 s.are.restricted.to.tracks.that.
af700 61 72 65 20 66 69 6c 65 73 3b 20 74 68 65 79 20 64 6f 20 6e 6f 74 0a 77 6f 72 6b 20 77 69 74 68 are.files;.they.do.not.work.with
af720 20 73 74 72 65 61 6d 20 55 52 4c 73 20 28 2a 6e 6f 74 65 20 53 74 72 65 61 6d 69 6e 67 20 41 75 .stream.URLs.(*note.Streaming.Au
af740 64 69 6f 3a 3a 29 2e 20 20 53 6f 6d 65 20 6f 66 20 74 68 65 20 6d 65 74 68 6f 64 73 0a 72 65 71 dio::)...Some.of.the.methods.req
af760 75 69 72 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 73 6f 6d 65 20 61 64 64 69 74 69 uire.installation.of.some.additi
af780 6f 6e 61 6c 20 73 6f 66 74 77 61 72 65 20 74 68 61 74 20 45 6d 6d 73 20 63 61 6e 20 74 68 65 6e onal.software.that.Emms.can.then
af7a0 20 63 61 6c 6c 0a 74 6f 20 72 65 61 64 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 64 69 73 6b .call.to.read.metadata.from.disk
af7c0 20 28 2a 6e 6f 74 65 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 3a 3a 29 2e 20 20 .(*note.Metadata.Utilities::)...
af7e0 46 69 6e 61 6c 6c 79 2c 20 73 6f 6d 65 0a 6d 65 74 68 6f 64 73 20 77 6f 72 6b 20 6f 6e 6c 79 20 Finally,.some.methods.work.only.
af800 77 69 74 68 20 61 20 6c 69 6d 69 74 65 64 20 73 65 74 20 6f 66 20 6d 65 64 69 61 20 66 69 6c 65 with.a.limited.set.of.media.file
af820 20 66 6f 72 6d 61 74 73 20 73 75 63 68 20 61 73 20 4f 67 67 0a 6f 72 20 4d 50 33 2c 20 77 68 69 .formats.such.as.Ogg.or.MP3,.whi
af840 6c 65 20 73 6f 6d 65 20 6d 65 74 68 6f 64 73 20 73 75 70 70 6f 72 74 20 61 20 77 69 64 65 20 76 le.some.methods.support.a.wide.v
af860 61 72 69 65 74 79 20 6f 66 20 66 6f 72 6d 61 74 73 2e 0a 0a 20 20 20 49 66 20 63 61 63 68 69 6e ariety.of.formats......If.cachin
af880 67 20 69 73 20 65 6e 61 62 6c 65 64 20 28 69 74 20 69 73 20 62 79 20 64 65 66 61 75 6c 74 29 20 g.is.enabled.(it.is.by.default).
af8a0 74 68 65 6e 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 65 61 63 68 0a 74 72 61 63 6b then.the.metadata.for.each.track
af8c0 20 77 69 6c 6c 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 63 61 63 68 65 20 66 6f 72 .will.be.stored.in.the.cache.for
af8e0 20 66 61 73 74 65 72 20 72 65 74 72 69 65 76 61 6c 2e 20 20 54 68 61 74 20 6d 65 61 6e 73 20 69 .faster.retrieval...That.means.i
af900 66 0a 79 6f 75 20 63 68 61 6e 67 65 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 61 6e 64 20 77 61 6e f.you.change.info.method.and.wan
af920 74 20 75 70 64 61 74 65 64 20 74 72 61 63 6b 73 2c 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 t.updated.tracks,.you.will.have.
af940 74 6f 20 72 65 73 65 74 0a 74 68 65 20 63 61 63 68 65 20 27 4d 2d 78 20 65 6d 6d 73 2d 63 61 63 to.reset.the.cache.'M-x.emms-cac
af960 68 65 2d 72 65 73 65 74 27 20 61 6e 64 20 74 68 65 6e 20 72 65 70 6f 70 75 6c 61 74 65 20 77 69 he-reset'.and.then.repopulate.wi
af980 74 68 20 27 4d 2d 78 0a 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 th.'M-x.emms-add-directory-tree.
af9a0 52 45 54 20 7e 2f 4d 75 73 69 63 2f 20 52 45 54 27 20 6f 72 20 73 69 6d 69 6c 61 72 2e 0a 0a 20 RET.~/Music/.RET'.or.similar....
af9c0 20 20 41 75 74 6f 6d 61 74 69 63 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 ..Automatic.track.information.re
af9e0 74 72 69 65 76 61 6c 20 69 73 20 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e trieval.is.enabled.by.default.in
afa00 20 74 68 65 0a 27 65 6d 6d 73 2d 61 6c 6c 27 20 73 65 74 75 70 20 6c 65 76 65 6c 20 28 2a 6e 6f .the.'emms-all'.setup.level.(*no
afa20 74 65 20 53 65 74 75 70 3a 3a 29 2e 20 20 54 68 61 74 20 73 65 74 75 70 20 6c 65 76 65 6c 20 63 te.Setup::)...That.setup.level.c
afa40 6f 6e 66 69 67 75 72 65 73 0a 45 6d 6d 73 20 74 6f 20 75 73 65 20 27 65 6d 6d 73 2d 69 6e 66 6f onfigures.Emms.to.use.'emms-info
afa60 2d 6e 61 74 69 76 65 27 20 61 6e 64 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 69 6e 66 6f 27 -native'.and.'emms-info-cueinfo'
afa80 20 6d 65 74 68 6f 64 73 2c 20 61 73 20 74 68 65 79 0a 61 72 65 20 74 68 65 20 6f 6e 6c 79 20 6d .methods,.as.they.are.the.only.m
afaa0 65 74 68 6f 64 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 72 65 6c 79 20 6f 6e 20 61 64 64 69 74 ethods.that.do.not.rely.on.addit
afac0 69 6f 6e 61 6c 20 73 6f 66 74 77 61 72 65 2e 0a 0a 20 20 20 48 65 72 65 20 69 73 20 61 20 6c 69 ional.software......Here.is.a.li
afae0 73 74 20 6f 66 20 61 6c 6c 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 20 64 69 73 74 72 69 62 75 74 st.of.all.info.methods.distribut
afb00 65 64 20 77 69 74 68 20 45 6d 6d 73 20 61 6e 64 20 74 68 65 69 72 0a 73 6f 66 74 77 61 72 65 20 ed.with.Emms.and.their.software.
afb20 72 65 71 75 69 72 65 6d 65 6e 74 73 3a 0a 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 requirements:..'emms-info-native
afb40 27 0a 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 '......This.method.is.implemente
afb60 64 20 63 6f 6d 70 6c 65 74 65 6c 79 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 61 6e 64 20 68 d.completely.in.Emacs.Lisp.and.h
afb80 65 6e 63 65 20 64 6f 65 73 0a 20 20 20 20 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 6e 79 20 65 ence.does......not.require.any.e
afba0 78 74 65 72 6e 61 6c 20 73 6f 66 74 77 61 72 65 2e 20 20 49 74 20 73 75 70 70 6f 72 74 73 20 4f xternal.software...It.supports.O
afbc0 67 67 20 56 6f 72 62 69 73 2c 20 4f 70 75 73 2c 0a 20 20 20 20 20 46 4c 41 43 20 61 6e 64 20 4d gg.Vorbis,.Opus,......FLAC.and.M
afbe0 50 33 20 66 69 6c 65 73 2e 0a 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 27 0a 20 P3.files...'emms-info-tinytag'..
afc00 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 75 74 69 6c 69 7a 65 73 20 61 20 73 6d 61 6c 6c ....This.method.utilizes.a.small
afc20 20 50 79 74 68 6f 6e 20 6c 69 62 72 61 72 79 20 27 74 69 6e 79 74 61 67 27 2e 20 20 49 74 20 73 .Python.library.'tinytag'...It.s
afc40 75 70 70 6f 72 74 73 0a 20 20 20 20 20 4d 50 33 2c 20 4f 67 67 20 56 6f 72 62 69 73 2c 20 4f 70 upports......MP3,.Ogg.Vorbis,.Op
afc60 75 73 2c 20 4d 50 34 2c 20 4d 34 41 2c 20 46 4c 41 43 2c 20 57 4d 41 20 61 6e 64 20 57 41 56 20 us,.MP4,.M4A,.FLAC,.WMA.and.WAV.
afc80 66 6f 72 6d 61 74 73 2e 0a 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 27 0a 20 formats...'emms-info-exiftool'..
afca0 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 27 65 78 69 66 74 6f 6f 6c 27 ....This.method.calls.'exiftool'
afcc0 20 75 74 69 6c 69 74 79 20 77 72 69 74 74 65 6e 20 69 6e 20 50 65 72 6c 2e 20 20 49 74 20 73 75 .utility.written.in.Perl...It.su
afce0 70 70 6f 72 74 73 0a 20 20 20 20 20 64 6f 7a 65 6e 73 20 6f 66 20 6d 65 64 69 61 20 66 69 6c 65 pports......dozens.of.media.file
afd00 20 66 6f 72 6d 61 74 73 2c 20 66 61 72 20 74 6f 6f 20 6d 61 6e 79 20 74 6f 20 6c 69 73 74 20 68 .formats,.far.too.many.to.list.h
afd20 65 72 65 2e 0a 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 27 0a 20 20 20 20 20 54 68 ere...'emms-info-libtag'......Th
afd40 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 61 20 73 6d 61 6c 6c 20 22 73 68 69 6d 22 20 65 is.method.calls.a.small."shim".e
afd60 78 65 63 75 74 61 62 6c 65 20 27 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 27 0a xecutable.'emms-print-metadata'.
afd80 20 20 20 20 20 62 75 69 6c 74 20 61 72 6f 75 6e 64 20 54 61 67 4c 69 62 20 6c 69 62 72 61 72 79 .....built.around.TagLib.library
afda0 2e 20 20 49 74 20 73 75 70 70 6f 72 74 73 20 4d 50 33 2c 20 4f 67 67 20 56 6f 72 62 69 73 2c 20 ...It.supports.MP3,.Ogg.Vorbis,.
afdc0 4f 70 75 73 2c 0a 20 20 20 20 20 46 4c 41 43 2c 20 4d 50 43 2c 20 53 70 65 65 78 2c 20 57 61 76 Opus,......FLAC,.MPC,.Speex,.Wav
afde0 50 61 63 6b 2c 20 54 72 75 65 41 75 64 69 6f 2c 20 57 41 56 2c 20 41 49 46 46 2c 20 4d 50 34 20 Pack,.TrueAudio,.WAV,.AIFF,.MP4.
afe00 61 6e 64 20 41 53 46 0a 20 20 20 20 20 66 6f 72 6d 61 74 73 2e 0a 0a 27 65 6d 6d 73 2d 69 6e 66 and.ASF......formats...'emms-inf
afe20 6f 2d 6d 65 74 61 66 6c 61 63 27 0a 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c o-metaflac'......This.method.cal
afe40 6c 73 20 27 6d 65 74 61 66 6c 61 63 27 20 75 74 69 6c 69 74 79 2e 20 20 49 74 20 77 6f 72 6b 73 ls.'metaflac'.utility...It.works
afe60 20 6f 6e 6c 79 20 77 69 74 68 20 46 4c 41 43 0a 20 20 20 20 20 66 69 6c 65 73 2e 0a 0a 27 65 6d .only.with.FLAC......files...'em
afe80 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 27 0a 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f ms-info-mp3info'......This.metho
afea0 64 20 63 61 6c 6c 73 20 27 6d 70 33 69 6e 66 6f 27 20 75 74 69 6c 69 74 79 2e 20 20 49 74 20 77 d.calls.'mp3info'.utility...It.w
afec0 6f 72 6b 73 20 6f 6e 6c 79 20 77 69 74 68 20 4d 50 33 20 66 69 6c 65 73 0a 20 20 20 20 20 74 68 orks.only.with.MP3.files......th
afee0 61 74 20 68 61 76 65 20 6f 6c 64 65 72 20 69 64 33 76 31 20 74 61 67 73 2e 0a 0a 27 65 6d 6d 73 at.have.older.id3v1.tags...'emms
aff00 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 27 0a 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 -info-ogginfo'......This.method.
aff20 63 61 6c 6c 73 20 27 6f 67 67 69 6e 66 6f 27 20 75 74 69 6c 69 74 79 2e 20 20 49 74 20 73 75 70 calls.'ogginfo'.utility...It.sup
aff40 70 6f 72 74 73 20 4f 67 67 20 56 6f 72 62 69 73 20 61 6e 64 0a 20 20 20 20 20 54 68 65 6f 72 61 ports.Ogg.Vorbis.and......Theora
aff60 20 66 6f 72 6d 61 74 73 2e 0a 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 27 0a .formats...'emms-info-opusinfo'.
aff80 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 27 6f 70 75 73 69 6e 66 6f .....This.method.calls.'opusinfo
affa0 27 20 75 74 69 6c 69 74 79 2e 20 20 49 74 20 77 6f 72 6b 73 20 6f 6e 6c 79 20 77 69 74 68 20 4f '.utility...It.works.only.with.O
affc0 70 75 73 0a 20 20 20 20 20 66 69 6c 65 73 2e 0a 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 69 pus......files...'emms-info-cuei
affe0 6e 66 6f 27 0a 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 73 70 65 63 69 61 6c 20 6d 65 74 68 nfo'......This.is.a.special.meth
b0000 6f 64 20 74 68 61 74 20 70 61 72 73 65 73 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e od.that.parses.track.information
b0020 20 66 72 6f 6d 20 61 6e 0a 20 20 20 20 20 61 63 63 6f 6d 70 61 6e 79 69 6e 67 20 63 75 65 20 66 .from.an......accompanying.cue.f
b0040 69 6c 65 20 66 6f 72 20 46 4c 41 43 20 61 6e 64 20 41 50 45 20 66 69 6c 65 73 20 28 2a 6e 6f 74 ile.for.FLAC.and.APE.files.(*not
b0060 65 20 41 50 45 20 2f 20 46 4c 41 43 0a 20 20 20 20 20 43 6f 6d 6d 61 6e 64 73 3a 3a 29 2e 20 20 e.APE./.FLAC......Commands::)...
b0080 49 74 20 64 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 6e 79 20 61 64 64 69 74 69 6f 6e It.does.not.require.any.addition
b00a0 61 6c 20 73 6f 66 74 77 61 72 65 2e 0a 0a 20 20 20 54 6f 20 75 73 65 20 61 6e 79 20 6f 66 20 74 al.software......To.use.any.of.t
b00c0 68 65 20 6d 65 74 68 6f 64 73 2c 20 61 64 64 20 74 68 65 20 6d 65 74 68 6f 64 20 74 6f 20 27 65 he.methods,.add.the.method.to.'e
b00e0 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 27 0a 6c 69 73 74 2e 20 20 46 6f 72 20 65 mms-info-functions'.list...For.e
b0100 78 61 6d 70 6c 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 xample:.......(require.'emms-inf
b0120 6f 2d 6e 61 74 69 76 65 29 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d o-native)......(add-to-list.'emm
b0140 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 s-info-functions.'emms-info-nati
b0160 76 65 29 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 65 20 61 20 63 6f 6d 62 69 6e 61 74 ve)..You.can.also.use.a.combinat
b0180 69 6f 6e 20 6f 66 20 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 63 20 74 6f 6f 6c 73 20 69 66 20 ion.of.format-specific.tools.if.
b01a0 6e 65 65 64 65 64 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 needed:.......(require.'emms-inf
b01c0 6f 2d 6d 70 33 69 6e 66 6f 29 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 o-mp3info)......(require.'emms-i
b01e0 6e 66 6f 2d 6f 67 67 69 6e 66 6f 29 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 nfo-ogginfo)......(add-to-list.'
b0200 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d emms-info-functions.'emms-info-m
b0220 70 33 69 6e 66 6f 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 29 0a 0a 49 6e 20 74 p3info.'emms-info-ogginfo)..In.t
b0240 68 69 73 20 63 61 73 65 20 62 6f 74 68 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f his.case.both.'emms-info-mp3info
b0260 27 20 61 6e 64 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 27 20 77 69 6c 6c 20 62 '.and.'emms-info-ogginfo'.will.b
b0280 65 0a 63 61 6c 6c 65 64 20 66 6f 72 20 65 61 63 68 20 74 72 61 63 6b 2e 0a 0a 20 20 20 54 68 65 e.called.for.each.track......The
b02a0 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 75 73 65 72 20 76 61 72 69 61 62 6c 65 re.are.a.number.of.user.variable
b02c0 73 20 77 68 69 63 68 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 0a s.which.control.the.behavior.of.
b02e0 27 65 6d 6d 73 2d 69 6e 66 6f 27 3a 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 'emms-info':...--.User.Option:.e
b0300 6d 6d 73 2d 69 6e 66 6f 2d 61 75 74 6f 2d 75 70 64 61 74 65 0a 20 20 20 20 20 4e 6f 6e 2d 6e 69 mms-info-auto-update......Non-ni
b0320 6c 20 77 68 65 6e 20 45 6d 6d 73 20 73 68 6f 75 6c 64 20 75 70 64 61 74 65 20 74 72 61 63 6b 20 l.when.Emms.should.update.track.
b0340 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 66 69 6c 65 0a 20 20 20 20 20 63 68 61 information.if.the.file......cha
b0360 6e 67 65 73 2e 20 20 54 68 69 73 20 77 69 6c 6c 20 63 61 75 73 65 20 68 61 72 64 20 64 72 69 76 nges...This.will.cause.hard.driv
b0380 65 20 61 63 74 69 76 69 74 79 20 6f 6e 20 74 72 61 63 6b 20 6c 6f 61 64 69 6e 67 2e 20 20 49 66 e.activity.on.track.loading...If
b03a0 0a 20 20 20 20 20 74 68 69 73 20 69 73 20 74 6f 6f 20 61 6e 6e 6f 79 69 6e 67 20 66 6f 72 20 79 ......this.is.too.annoying.for.y
b03c0 6f 75 2c 20 73 65 74 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 2e 0a 0a 20 ou,.set.this.variable.to.nil....
b03e0 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 --.User.Option:.emms-info-asynch
b0400 72 6f 6e 6f 75 73 6c 79 0a 20 20 20 20 20 4e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 74 72 61 63 6b ronously......Non-nil.when.track
b0420 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 61 64 65 64 20 61 73 .information.should.be.loaded.as
b0440 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 20 20 20 20 20 54 68 69 73 20 72 65 71 75 69 72 65 73 ynchronously.......This.requires
b0460 20 74 68 65 20 66 65 61 74 75 72 65 20 27 6c 61 74 65 72 2d 64 6f 27 20 77 68 69 63 68 20 69 73 .the.feature.'later-do'.which.is
b0480 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 0a 20 20 20 20 20 27 6c 61 74 65 .provided.by.the.file......'late
b04a0 72 2d 64 6f 2e 65 6c 27 2c 20 77 68 69 63 68 20 63 6f 6d 65 73 20 77 69 74 68 20 45 6d 6d 73 2e r-do.el',.which.comes.with.Emms.
b04c0 20 20 53 65 65 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 27 65 6d 6d 73 2d 6c 61 74 65 72 2d ..See.variable......'emms-later-
b04e0 64 6f 2d 62 61 74 63 68 27 20 66 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 74 77 65 61 6b 69 do-batch'.for.performance.tweaki
b0500 6e 67 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 69 6e 66 6f 2d ng....--.User.Option:.emms-info-
b0520 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 41 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f functions......A.list.of.functio
b0540 6e 73 20 28 69 6e 66 6f 20 6d 65 74 68 6f 64 73 29 20 77 68 69 63 68 20 61 64 64 20 69 6e 66 6f ns.(info.methods).which.add.info
b0560 72 6d 61 74 69 6f 6e 20 74 6f 20 74 72 61 63 6b 73 2e 0a 20 20 20 20 20 45 61 63 68 20 66 75 6e rmation.to.tracks.......Each.fun
b0580 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 74 72 61 63 6b 20 61 73 20 ction.is.called.with.a.track.as.
b05a0 61 72 67 75 6d 65 6e 74 2e 20 20 49 66 20 74 77 6f 20 69 6e 66 6f 0a 20 20 20 20 20 6d 65 74 68 argument...If.two.info......meth
b05c0 6f 64 73 20 70 72 6f 64 75 63 65 20 74 68 65 20 73 61 6d 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e ods.produce.the.same.information
b05e0 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 20 61 6c 62 75 6d 20 6e 61 6d 65 29 2c 20 74 68 65 0a 20 .(for.example.album.name),.the..
b0600 20 20 20 20 6c 61 74 74 65 72 20 6f 6e 65 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 2e ....latter.one.takes.precedence.
b0620 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 3a ..*.Menu:..*.Metadata.Utilities:
b0640 3a 20 20 20 20 20 20 20 53 75 70 70 6f 72 74 65 64 20 65 78 74 65 72 6e 61 6c 20 6d 65 74 61 64 :.......Supported.external.metad
b0660 61 74 61 20 75 74 69 6c 69 74 69 65 73 2e 0a 2a 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d ata.utilities..*.Defining.Info.M
b0680 65 74 68 6f 64 73 3a 3a 20 20 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 6e 65 77 20 69 6e ethods::....How.to.define.new.in
b06a0 66 6f 20 6d 65 74 68 6f 64 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 fo.methods.....File:.doc7SuRxP.i
b06c0 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 2c 20 nfo,..Node:.Metadata.Utilities,.
b06e0 20 4e 65 78 74 3a 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 2c 20 20 55 .Next:.Defining.Info.Methods,..U
b0700 70 3a 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 31 33 2e 31 20 4d 65 74 61 64 p:.Track.Information..13.1.Metad
b0720 61 74 61 20 55 74 69 6c 69 74 69 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ata.Utilities.==================
b0740 3d 3d 3d 3d 3d 0a 0a 57 69 74 68 20 74 68 65 20 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 27 65 6d =====..With.the.exception.of.'em
b0760 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 27 20 61 6e 64 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 63 ms-info-native'.and.'emms-info-c
b0780 75 65 69 6e 66 6f 27 2c 20 45 6d 6d 73 0a 69 6e 66 6f 20 6d 65 74 68 6f 64 73 20 72 65 71 75 69 ueinfo',.Emms.info.methods.requi
b07a0 72 65 20 65 78 74 65 72 6e 61 6c 20 6d 65 74 61 64 61 74 61 20 75 74 69 6c 69 74 69 65 73 20 74 re.external.metadata.utilities.t
b07c0 6f 20 72 65 61 64 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 0a 6d 65 64 69 61 20 66 69 6c 65 73 o.read.metadata.from.media.files
b07e0 2e 20 20 49 66 20 79 6f 75 20 70 6c 61 6e 20 74 6f 20 75 73 65 20 61 20 63 65 72 74 61 69 6e 20 ...If.you.plan.to.use.a.certain.
b0800 69 6e 66 6f 20 6d 65 74 68 6f 64 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 0a 68 61 76 65 20 info.method,.make.sure.you.have.
b0820 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 75 74 69 6c 69 74 79 20 69 6e 73 74 61 6c the.corresponding.utility.instal
b0840 6c 65 64 2e 20 20 41 6c 6c 20 6f 66 20 74 68 65 73 65 20 75 74 69 6c 69 74 69 65 73 20 61 72 65 led...All.of.these.utilities.are
b0860 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 6d 6f 73 74 20 6f 66 20 74 68 65 6d .free.software,.and.most.of.them
b0880 20 61 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 66 72 65 65 20 47 4e 55 2f 4c 69 6e 75 78 0a .are.included.in.free.GNU/Linux.
b08a0 64 69 73 74 72 69 62 75 74 69 6f 6e 73 2e 0a 0a 74 69 6e 79 74 61 67 0a 2e 2e 2e 2e 2e 2e 2e 0a distributions...tinytag.........
b08c0 0a 74 69 6e 79 74 61 67 20 69 73 20 61 20 50 79 74 68 6f 6e 20 6c 69 62 72 61 72 79 20 66 6f 72 .tinytag.is.a.Python.library.for
b08e0 20 72 65 61 64 69 6e 67 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 6d 75 73 69 63 20 66 69 6c .reading.metadata.from.music.fil
b0900 65 73 2e 20 20 49 74 0a 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 3c 68 74 74 70 73 3a 2f es...It.is.available.at.<https:/
b0920 2f 70 79 70 69 2e 6f 72 67 2f 70 72 6f 6a 65 63 74 2f 74 69 6e 79 74 61 67 2f 3e 2e 20 20 4e 61 /pypi.org/project/tinytag/>...Na
b0940 74 75 72 61 6c 6c 79 20 61 0a 77 6f 72 6b 69 6e 67 20 50 79 74 68 6f 6e 20 69 6e 74 65 72 70 72 turally.a.working.Python.interpr
b0960 65 74 65 72 20 69 73 20 61 6c 73 6f 20 72 65 71 75 69 72 65 64 2e 20 20 54 68 65 20 63 6f 72 72 eter.is.also.required...The.corr
b0980 65 73 70 6f 6e 64 69 6e 67 20 45 6d 6d 73 0a 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 20 27 65 esponding.Emms.info.method.is.'e
b09a0 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 27 2e 0a 0a 20 20 20 49 74 20 69 73 20 62 65 73 mms-info-tinytag'......It.is.bes
b09c0 74 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 t.to.configure.'emms-info-tinyta
b09e0 67 27 20 61 73 20 74 68 65 20 73 6f 6c 65 20 69 6e 66 6f 20 6d 65 74 68 6f 64 0a 66 6f 72 20 45 g'.as.the.sole.info.method.for.E
b0a00 6d 6d 73 2c 20 62 65 63 61 75 73 65 20 63 6f 6d 70 65 74 69 6e 67 20 61 6e 64 20 6f 76 65 72 6c mms,.because.competing.and.overl
b0a20 61 70 70 69 6e 67 20 6d 65 74 68 6f 64 73 20 63 61 6e 20 63 61 75 73 65 20 63 6f 6e 66 75 73 69 apping.methods.can.cause.confusi
b0a40 6f 6e 2e 0a 54 6f 20 75 73 65 20 69 74 2c 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 on..To.use.it,.add.the.following
b0a60 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 .into.your.Emacs.initialization.
b0a80 66 69 6c 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d file:.......(require.'emms-info-
b0aa0 74 69 6e 79 74 61 67 29 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 tinytag)......(setq.emms-info-fu
b0ac0 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 29 29 0a 0a 45 nctions.'(emms-info-tinytag))..E
b0ae0 78 69 66 54 6f 6f 6c 0a 2e 2e 2e 2e 2e 2e 2e 2e 0a 0a 45 78 69 66 54 6f 6f 6c 20 69 73 20 61 20 xifTool...........ExifTool.is.a.
b0b00 70 6c 61 74 66 6f 72 6d 2d 69 6e 64 65 70 65 6e 64 65 6e 74 20 50 65 72 6c 20 6c 69 62 72 61 72 platform-independent.Perl.librar
b0b20 79 20 61 6e 64 20 61 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 0a 61 70 70 6c 69 63 61 74 69 6f 6e y.and.a.command-line.application
b0b40 20 66 6f 72 20 72 65 61 64 69 6e 67 2c 20 77 72 69 74 69 6e 67 20 61 6e 64 20 65 64 69 74 69 6e .for.reading,.writing.and.editin
b0b60 67 20 6d 65 74 61 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 61 20 77 69 64 65 0a 76 61 72 g.meta.information.in.a.wide.var
b0b80 69 65 74 79 20 6f 66 20 66 69 6c 65 73 2e 20 20 49 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 iety.of.files...It.is.available.
b0ba0 61 74 20 3c 68 74 74 70 73 3a 2f 2f 65 78 69 66 74 6f 6f 6c 2e 6f 72 67 2f 3e 2e 0a 4e 61 74 75 at.<https://exiftool.org/>..Natu
b0bc0 72 61 6c 6c 79 20 61 20 77 6f 72 6b 69 6e 67 20 50 65 72 6c 20 69 6e 74 65 72 70 72 65 74 65 72 rally.a.working.Perl.interpreter
b0be0 20 69 73 20 61 6c 73 6f 20 72 65 71 75 69 72 65 64 2e 20 20 54 68 65 0a 63 6f 72 72 65 73 70 6f .is.also.required...The.correspo
b0c00 6e 64 69 6e 67 20 45 6d 6d 73 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 20 27 65 6d 6d 73 2d nding.Emms.info.method.is.'emms-
b0c20 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 27 2e 0a 0a 20 20 20 49 74 20 69 73 20 62 65 73 74 20 74 info-exiftool'......It.is.best.t
b0c40 6f 20 63 6f 6e 66 69 67 75 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 27 o.configure.'emms-info-exiftool'
b0c60 20 61 73 20 74 68 65 20 73 6f 6c 65 20 69 6e 66 6f 20 6d 65 74 68 6f 64 0a 66 6f 72 20 45 6d 6d .as.the.sole.info.method.for.Emm
b0c80 73 2c 20 62 65 63 61 75 73 65 20 63 6f 6d 70 65 74 69 6e 67 20 61 6e 64 20 6f 76 65 72 6c 61 70 s,.because.competing.and.overlap
b0ca0 70 69 6e 67 20 6d 65 74 68 6f 64 73 20 63 61 6e 20 63 61 75 73 65 20 63 6f 6e 66 75 73 69 6f 6e ping.methods.can.cause.confusion
b0cc0 2e 0a 54 6f 20 75 73 65 20 69 74 2c 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 ..To.use.it,.add.the.following.i
b0ce0 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 nto.your.Emacs.initialization.fi
b0d00 6c 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 le:.......(require.'emms-info-ex
b0d20 69 66 74 6f 6f 6c 29 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e iftool)......(setq.emms-info-fun
b0d40 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 29 29 0a 0a 54 ctions.'(emms-info-exiftool))..T
b0d60 61 67 4c 69 62 0a 2e 2e 2e 2e 2e 2e 0a 0a 54 61 67 4c 69 62 20 69 73 20 61 20 6c 69 62 72 61 72 agLib.........TagLib.is.a.librar
b0d80 79 20 66 6f 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 65 64 69 74 69 6e 67 20 6d 65 74 61 64 61 y.for.reading.and.editing.metada
b0da0 74 61 20 6f 66 20 73 65 76 65 72 61 6c 20 70 6f 70 75 6c 61 72 0a 61 75 64 69 6f 20 66 6f 72 6d ta.of.several.popular.audio.form
b0dc0 61 74 73 2e 20 20 49 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 3c 68 74 74 70 3a 2f ats...It.is.available.at.<http:/
b0de0 2f 74 61 67 6c 69 62 2e 67 69 74 68 75 62 2e 69 6f 2f 3e 2e 20 20 42 65 63 61 75 73 65 0a 54 61 /taglib.github.io/>...Because.Ta
b0e00 67 4c 69 62 20 69 73 20 61 20 43 2b 2b 20 6c 69 62 72 61 72 79 20 69 6e 73 74 65 61 64 20 6f 66 gLib.is.a.C++.library.instead.of
b0e20 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 70 72 6f 67 72 61 6d 2c 20 79 6f 75 20 68 61 76 65 .an.executable.program,.you.have
b0e40 20 74 6f 0a 62 75 69 6c 64 20 61 6e 64 20 69 6e 73 74 61 6c 6c 20 61 20 73 6d 61 6c 6c 20 22 73 .to.build.and.install.a.small."s
b0e60 68 69 6d 22 20 65 78 65 63 75 74 61 62 6c 65 20 27 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 him".executable.'emms-print-meta
b0e80 64 61 74 61 27 20 61 72 6f 75 6e 64 0a 69 74 2e 20 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 data'.around.it...'emms-info-lib
b0ea0 74 61 67 27 20 77 69 6c 6c 20 74 68 65 6e 20 63 61 6c 6c 20 74 68 69 73 20 65 78 65 63 75 74 61 tag'.will.then.call.this.executa
b0ec0 62 6c 65 20 74 6f 20 72 65 61 64 20 6d 65 74 61 64 61 74 61 0a 66 72 6f 6d 20 6d 65 64 69 61 20 ble.to.read.metadata.from.media.
b0ee0 66 69 6c 65 73 2e 0a 0a 20 20 20 54 6f 20 63 6f 6d 70 69 6c 65 20 27 65 6d 6d 73 2d 70 72 69 6e files......To.compile.'emms-prin
b0f00 74 2d 6d 65 74 61 64 61 74 61 27 20 69 6e 76 6f 6b 65 0a 0a 20 20 20 27 6d 61 6b 65 20 65 6d 6d t-metadata'.invoke.....'make.emm
b0f20 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 27 0a 0a 69 6e 20 45 6d 6d 73 20 64 69 72 65 63 s-print-metadata'..in.Emms.direc
b0f40 74 6f 72 79 2e 20 20 46 6f 72 20 74 68 69 73 20 74 6f 20 73 75 63 63 65 65 64 20 79 6f 75 20 6e tory...For.this.to.succeed.you.n
b0f60 65 65 64 20 74 6f 20 68 61 76 65 20 61 20 77 6f 72 6b 69 6e 67 20 43 2b 2b 0a 63 6f 6d 70 69 6c eed.to.have.a.working.C++.compil
b0f80 65 72 20 61 6e 64 20 54 61 67 4c 69 62 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 6c 69 62 72 61 72 er.and.TagLib.development.librar
b0fa0 69 65 73 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 2e 20 20 54 ies.installed.on.your.system...T
b0fc0 68 65 0a 72 65 73 75 6c 74 61 6e 74 20 62 69 6e 61 72 79 20 65 78 65 63 75 74 61 62 6c 65 20 77 he.resultant.binary.executable.w
b0fe0 69 6c 6c 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 77 68 65 6e 20 79 6f 75 20 69 6e 76 6f 6b 65 ill.be.installed.when.you.invoke
b1000 0a 0a 20 20 20 27 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 27 20 61 73 20 69 6e 20 2a 4e 6f 74 65 20 .....'make.install'.as.in.*Note.
b1020 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 3a 3a 2e 0a 0a 49 74 20 69 73 20 6f 66 20 63 6f 75 72 Compiling.Emms::...It.is.of.cour
b1040 73 65 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 6e 6c 79 se.also.possible.to.install.only
b1060 20 74 68 65 20 27 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 27 0a 62 69 6e 61 72 .the.'emms-print-metadata'.binar
b1080 79 20 77 68 65 72 65 20 79 6f 75 72 20 73 79 73 74 65 6d 20 63 61 6e 20 66 69 6e 64 20 61 6e 64 y.where.your.system.can.find.and
b10a0 20 65 78 65 63 75 74 65 20 69 74 20 77 69 74 68 6f 75 74 20 69 6e 73 74 61 6c 6c 69 6e 67 20 61 .execute.it.without.installing.a
b10c0 6c 6c 0a 6f 66 20 45 6d 6d 73 20 76 69 61 20 74 68 65 20 6d 61 6b 65 20 63 6f 6d 6d 61 6e 64 2e ll.of.Emms.via.the.make.command.
b10e0 0a 0a 20 20 20 4f 6e 63 65 20 27 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 27 20 .....Once.'emms-print-metadata'.
b1100 69 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 69 74 20 69 73 20 62 65 73 74 20 74 6f 20 63 6f 6e 66 is.available,.it.is.best.to.conf
b1120 69 67 75 72 65 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 27 20 61 73 20 74 68 65 20 igure.'emms-info-libtag'.as.the.
b1140 73 6f 6c 65 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 66 6f 72 20 45 6d 6d 73 2c 20 62 65 63 61 75 sole.info.method.for.Emms,.becau
b1160 73 65 20 63 6f 6d 70 65 74 69 6e 67 0a 61 6e 64 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 6d 65 74 se.competing.and.overlapping.met
b1180 68 6f 64 73 20 63 61 6e 20 63 61 75 73 65 20 63 6f 6e 66 75 73 69 6f 6e 2e 20 20 54 6f 20 75 73 hods.can.cause.confusion...To.us
b11a0 65 20 69 74 2c 20 61 64 64 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 e.it,.add.the.following.into.you
b11c0 72 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 20 20 r.Emacs.initialization.file:....
b11e0 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 29 0a 20 ...(require.'emms-info-libtag)..
b1200 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 ....(setq.emms-info-functions.'(
b1220 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 29 29 0a 0a 6d 65 74 61 66 6c 61 63 0a 2e 2e 2e emms-info-libtag))..metaflac....
b1240 2e 2e 2e 2e 2e 0a 0a 27 6d 65 74 61 66 6c 61 63 27 20 69 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 .......'metaflac'.is.the.command
b1260 2d 6c 69 6e 65 20 46 4c 41 43 20 66 69 6c 65 20 6d 65 74 61 64 61 74 61 20 65 64 69 74 6f 72 2e -line.FLAC.file.metadata.editor.
b1280 20 20 49 74 20 69 73 0a 69 6e 63 6c 75 64 65 64 20 69 6e 20 46 4c 41 43 20 73 6f 75 72 63 65 20 ..It.is.included.in.FLAC.source.
b12a0 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 3c 68 74 74 70 73 distribution.available.at.<https
b12c0 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 78 69 70 68 2f 66 6c 61 63 3e 2e 20 20 54 68 65 20 63 ://github.com/xiph/flac>...The.c
b12e0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 0a 27 65 6d 6d orresponding.info.method.is.'emm
b1300 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 27 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 20 61 64 s-info-metaflac'...To.use.it,.ad
b1320 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 0a d.the.following.into.your.Emacs.
b1340 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 initialization.file:.......(requ
b1360 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 20 20 20 20 20 28 61 ire.'emms-info-metaflac)......(a
b1380 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 dd-to-list.'emms-info-functions.
b13a0 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 0a 4d 50 33 69 6e 66 6f 0a 2e 2e 'emms-info-metaflac)..MP3info...
b13c0 2e 2e 2e 2e 2e 0a 0a 4d 50 33 69 6e 66 6f 20 69 73 20 61 20 73 6d 61 6c 6c 20 75 74 69 6c 69 74 .......MP3info.is.a.small.utilit
b13e0 79 20 66 6f 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 6d 6f 64 69 66 79 69 6e 67 20 69 64 33 76 y.for.reading.and.modifying.id3v
b1400 31 20 74 61 67 73 20 66 72 6f 6d 20 4d 50 33 0a 66 69 6c 65 73 2e 20 20 4e 6f 74 65 20 74 68 61 1.tags.from.MP3.files...Note.tha
b1420 74 20 6d 6f 72 65 20 72 65 63 65 6e 74 20 69 64 33 76 32 20 74 61 67 73 20 61 72 65 20 6e 6f 74 t.more.recent.id3v2.tags.are.not
b1440 20 73 75 70 70 6f 72 74 65 64 3b 20 66 6f 72 20 74 68 6f 73 65 0a 79 6f 75 20 6e 65 65 64 20 74 .supported;.for.those.you.need.t
b1460 6f 20 75 73 65 20 61 6e 6f 74 68 65 72 20 69 6e 66 6f 20 6d 65 74 68 6f 64 2c 20 66 6f 72 20 65 o.use.another.info.method,.for.e
b1480 78 61 6d 70 6c 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 27 2e 0a 4d 50 33 69 6e xample.'emms-info-native'..MP3in
b14a0 66 6f 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 3c 68 74 74 70 73 3a 2f 2f 69 62 69 62 fo.is.available.at.<https://ibib
b14c0 6c 69 6f 2e 6f 72 67 2f 6d 70 33 69 6e 66 6f 2f 3e 2e 0a 0a 20 20 20 54 68 65 20 63 6f 72 72 65 lio.org/mp3info/>......The.corre
b14e0 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 20 27 65 6d 6d 73 2d 69 6e sponding.info.method.is.'emms-in
b1500 66 6f 2d 6d 70 33 69 6e 66 6f 27 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 20 61 64 64 0a 74 68 65 fo-mp3info'...To.use.it,.add.the
b1520 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 20 69 6e 69 74 69 .following.into.your.Emacs.initi
b1540 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 alization.file:.......(require.'
b1560 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 29 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d emms-info-mp3info)......(add-to-
b1580 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d list.'emms-info-functions.'emms-
b15a0 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 29 0a 0a 6f 67 67 69 6e 66 6f 0a 2e 2e 2e 2e 2e 2e 2e 0a 0a info-mp3info)..ogginfo..........
b15c0 27 6f 67 67 69 6e 66 6f 27 20 69 73 20 61 20 73 6d 61 6c 6c 20 75 74 69 6c 69 74 79 20 66 6f 72 'ogginfo'.is.a.small.utility.for
b15e0 20 65 78 74 72 61 63 74 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 4f 67 .extracting.information.about.Og
b1600 67 20 56 6f 72 62 69 73 0a 61 6e 64 20 54 68 65 6f 72 61 20 66 69 6c 65 73 2e 20 20 49 74 20 69 g.Vorbis.and.Theora.files...It.i
b1620 73 20 70 61 72 74 20 6f 66 20 56 6f 72 62 69 73 20 54 6f 6f 6c 73 20 73 6f 75 72 63 65 20 64 69 s.part.of.Vorbis.Tools.source.di
b1640 73 74 72 69 62 75 74 69 6f 6e 0a 61 76 61 69 6c 61 62 6c 65 20 61 74 20 3c 68 74 74 70 73 3a 2f stribution.available.at.<https:/
b1660 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 78 69 70 68 2f 76 6f 72 62 69 73 2d 74 6f 6f 6c 73 3e 2e 20 /github.com/xiph/vorbis-tools>..
b1680 20 54 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 .The.corresponding.info.method.i
b16a0 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 27 2e 20 20 54 6f 20 75 73 65 20 69 s.'emms-info-ogginfo'...To.use.i
b16c0 74 2c 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 0a 79 6f 75 72 20 45 t,.add.the.following.into.your.E
b16e0 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 20 20 20 20 20 macs.initialization.file:.......
b1700 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 29 0a 20 20 20 (require.'emms-info-ogginfo)....
b1720 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 ..(add-to-list.'emms-info-functi
b1740 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 29 0a 0a 6f 70 75 73 69 6e 66 ons.'emms-info-ogginfo)..opusinf
b1760 6f 0a 2e 2e 2e 2e 2e 2e 2e 2e 0a 0a 27 6f 70 75 73 69 6e 66 6f 27 20 69 73 20 61 20 73 6d 61 6c o...........'opusinfo'.is.a.smal
b1780 6c 20 75 74 69 6c 69 74 79 20 66 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 69 6e 66 6f 72 6d 61 l.utility.for.extracting.informa
b17a0 74 69 6f 6e 20 61 62 6f 75 74 20 4f 70 75 73 0a 66 69 6c 65 73 2e 20 20 49 74 20 69 73 20 70 61 tion.about.Opus.files...It.is.pa
b17c0 72 74 20 6f 66 20 4f 70 75 73 20 54 6f 6f 6c 73 20 73 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 rt.of.Opus.Tools.source.distribu
b17e0 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 3c 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 tion.available.at.<https://githu
b1800 62 2e 63 6f 6d 2f 78 69 70 68 2f 6f 70 75 73 2d 74 6f 6f 6c 73 3e 2e 20 20 54 68 65 20 63 6f 72 b.com/xiph/opus-tools>...The.cor
b1820 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 0a 27 65 6d 6d 73 2d responding.info.method.is.'emms-
b1840 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 27 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 20 61 64 64 20 info-opusinfo'...To.use.it,.add.
b1860 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 0a 69 6e the.following.into.your.Emacs.in
b1880 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 itialization.file:.......(requir
b18a0 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 29 0a 20 20 20 20 20 28 61 64 64 e.'emms-info-opusinfo)......(add
b18c0 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 -to-list.'emms-info-functions.'e
b18e0 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 mms-info-opusinfo)....File:.doc7
b1900 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f SuRxP.info,..Node:.Defining.Info
b1920 20 4d 65 74 68 6f 64 73 2c 20 20 50 72 65 76 3a 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 .Methods,..Prev:.Metadata.Utilit
b1940 69 65 73 2c 20 20 55 70 3a 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 31 33 2e ies,..Up:.Track.Information..13.
b1960 32 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 2.Defining.Info.Methods.========
b1980 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 41 6e 20 69 6e 66 6f 20 6d 65 74 68 ==================..An.info.meth
b19a0 6f 64 20 65 73 73 65 6e 74 69 61 6c 6c 79 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 66 75 6e od.essentially.consists.of.a.fun
b19c0 63 74 69 6f 6e 20 77 68 69 63 68 2c 20 67 69 76 65 6e 20 61 6e 20 45 6d 6d 73 0a 74 72 61 63 6b ction.which,.given.an.Emms.track
b19e0 2c 20 73 65 74 73 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 22 69 6e 66 6f 2d 73 79 6d ,.sets.the.appropriate."info-sym
b1a00 62 6f 6c 73 22 20 66 6f 72 20 74 68 61 74 20 74 72 61 63 6b 2e 20 20 49 6e 66 6f 20 73 79 6d 62 bols".for.that.track...Info.symb
b1a20 6f 6c 73 0a 61 72 65 20 6b 65 79 73 20 74 68 61 74 20 68 61 76 65 20 61 6e 20 61 73 73 6f 63 69 ols.are.keys.that.have.an.associ
b1a40 61 74 65 64 20 76 61 6c 75 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 22 6d 65 74 61 64 61 ated.value.stored.in.the."metada
b1a60 74 61 20 63 61 63 68 65 22 2e 0a 57 68 69 6c 65 20 69 6e 66 6f 20 73 79 6d 62 6f 6c 73 20 63 61 ta.cache"..While.info.symbols.ca
b1a80 6e 20 68 61 76 65 20 61 72 62 69 74 72 61 72 79 20 6e 61 6d 65 73 2c 20 74 68 65 20 66 6f 6c 6c n.have.arbitrary.names,.the.foll
b1aa0 6f 77 69 6e 67 20 73 79 6d 62 6f 6c 73 20 61 72 65 0a 72 65 63 6f 67 6e 69 7a 65 64 20 62 79 20 owing.symbols.are.recognized.by.
b1ac0 45 6d 6d 73 3a 0a 0a 27 69 6e 66 6f 2d 61 6c 62 75 6d 27 0a 20 20 20 20 20 41 6c 62 75 6d 20 74 Emms:..'info-album'......Album.t
b1ae0 69 74 6c 65 2e 0a 0a 27 69 6e 66 6f 2d 61 6c 62 75 6d 73 6f 72 74 27 0a 20 20 20 20 20 41 6c 62 itle...'info-albumsort'......Alb
b1b00 75 6d 20 74 69 74 6c 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 27 69 6e 66 6f 2d 61 um.title.for.collation...'info-a
b1b20 72 74 69 73 74 27 0a 20 20 20 20 20 41 72 74 69 73 74 20 6e 61 6d 65 2e 0a 0a 27 69 6e 66 6f 2d rtist'......Artist.name...'info-
b1b40 61 72 74 69 73 74 73 6f 72 74 27 0a 20 20 20 20 20 41 72 74 69 73 74 20 6e 61 6d 65 20 66 6f 72 artistsort'......Artist.name.for
b1b60 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 27 0a .collation...'info-albumartist'.
b1b80 20 20 20 20 20 41 6c 62 75 6d 20 61 72 74 69 73 74 20 6e 61 6d 65 2e 0a 0a 27 69 6e 66 6f 2d 61 .....Album.artist.name...'info-a
b1ba0 6c 62 75 6d 61 72 74 69 73 74 73 6f 72 74 27 0a 20 20 20 20 20 41 6c 62 75 6d 20 61 72 74 69 73 lbumartistsort'......Album.artis
b1bc0 74 20 6e 61 6d 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 27 69 6e 66 6f 2d 63 6f 6d t.name.for.collation...'info-com
b1be0 70 6f 73 65 72 27 0a 20 20 20 20 20 43 6f 6d 70 6f 73 65 72 20 6e 61 6d 65 2e 0a 0a 27 69 6e 66 poser'......Composer.name...'inf
b1c00 6f 2d 63 6f 6d 70 6f 73 65 72 73 6f 72 74 27 0a 20 20 20 20 20 43 6f 6d 70 6f 73 65 72 20 6e 61 o-composersort'......Composer.na
b1c20 6d 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 27 69 6e 66 6f 2d 64 61 74 65 27 0a 20 me.for.collation...'info-date'..
b1c40 20 20 20 20 52 65 6c 65 61 73 65 20 64 61 74 65 2e 0a 0a 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 ....Release.date...'info-origina
b1c60 6c 64 61 74 65 27 0a 20 20 20 20 20 4f 72 69 67 69 6e 61 6c 20 72 65 6c 65 61 73 65 20 64 61 74 ldate'......Original.release.dat
b1c80 65 2e 0a 0a 27 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 27 0a 20 20 20 20 20 50 65 72 66 6f 72 e...'info-performer'......Perfor
b1ca0 6d 65 72 20 6e 61 6d 65 2e 0a 0a 27 69 6e 66 6f 2d 74 69 74 6c 65 27 0a 20 20 20 20 20 54 72 61 mer.name...'info-title'......Tra
b1cc0 63 6b 20 74 69 74 6c 65 2e 0a 0a 27 69 6e 66 6f 2d 74 69 74 6c 65 73 6f 72 74 27 0a 20 20 20 20 ck.title...'info-titlesort'.....
b1ce0 20 54 72 61 63 6b 20 74 69 74 6c 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 27 69 6e .Track.title.for.collation...'in
b1d00 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 27 0a 20 20 20 20 20 54 72 61 63 6b 20 6e 75 6d 62 65 fo-tracknumber'......Track.numbe
b1d20 72 2e 0a 0a 27 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 27 0a 20 20 20 20 20 44 69 73 63 20 r...'info-discnumber'......Disc.
b1d40 6e 75 6d 62 65 72 2e 0a 0a 27 69 6e 66 6f 2d 79 65 61 72 27 0a 20 20 20 20 20 52 65 6c 65 61 73 number...'info-year'......Releas
b1d60 65 20 79 65 61 72 2e 0a 0a 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 79 65 61 72 27 0a 20 20 20 e.year...'info-originalyear'....
b1d80 20 20 4f 72 69 67 69 6e 61 6c 20 72 65 6c 65 61 73 65 20 79 65 61 72 2e 0a 0a 27 69 6e 66 6f 2d ..Original.release.year...'info-
b1da0 6e 6f 74 65 27 0a 20 20 20 20 20 46 72 65 65 2d 66 6f 72 6d 20 6e 6f 74 65 2e 0a 0a 27 69 6e 66 note'......Free-form.note...'inf
b1dc0 6f 2d 67 65 6e 72 65 27 0a 20 20 20 20 20 47 65 6e 72 65 2e 0a 0a 27 69 6e 66 6f 2d 6c 61 62 65 o-genre'......Genre...'info-labe
b1de0 6c 27 0a 20 20 20 20 20 52 65 63 6f 72 64 20 6c 61 62 65 6c 2e 0a 0a 27 69 6e 66 6f 2d 70 6c 61 l'......Record.label...'info-pla
b1e00 79 69 6e 67 2d 74 69 6d 65 27 0a 20 20 20 20 20 50 6c 61 79 69 6e 67 20 74 69 6d 65 20 69 6e 20 ying-time'......Playing.time.in.
b1e20 73 65 63 6f 6e 64 73 2e 0a 0a 41 6e 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 64 6f 65 73 20 6e 6f seconds...An.info.method.does.no
b1e40 74 20 6e 65 65 64 20 74 6f 20 61 64 64 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 73 79 6d 62 6f t.need.to.add.all.of.these.symbo
b1e60 6c 73 20 69 6e 74 6f 20 74 68 65 20 67 69 76 65 6e 0a 74 72 61 63 6b 2e 20 20 49 74 20 63 61 6e ls.into.the.given.track...It.can
b1e80 20 61 6c 73 6f 20 61 64 64 20 6f 74 68 65 72 20 73 79 6d 62 6f 6c 73 2c 20 62 75 74 20 74 68 6f .also.add.other.symbols,.but.tho
b1ea0 73 65 20 65 78 74 72 61 20 73 79 6d 62 6f 6c 73 20 77 6f 6e 27 74 20 62 65 0a 75 73 65 64 20 62 se.extra.symbols.won't.be.used.b
b1ec0 79 20 45 6d 6d 73 2e 0a 0a 20 20 20 57 65 20 63 61 6e 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 6c y.Emms......We.can.for.example.l
b1ee0 6f 6f 6b 20 61 74 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 6d 65 74 68 6f 64 20 66 6f 72 ook.at.the.predefined.method.for
b1f00 20 72 65 74 72 69 65 76 69 6e 67 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 75 .retrieving.information.about.au
b1f20 64 69 6f 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 4f 67 67 20 66 6f 72 6d 61 74 2e 20 20 54 dio.tracks.in.the.Ogg.format...T
b1f40 68 65 20 66 75 6e 63 74 69 6f 6e 0a 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 27 20 he.function.'emms-info-ogginfo'.
b1f60 70 72 6f 76 69 64 65 64 20 62 79 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 2e 65 provided.by.'emms-info-ogginfo.e
b1f80 6c 27 20 61 63 63 65 70 74 73 20 61 6e 20 45 6d 6d 73 0a 74 72 61 63 6b 20 54 52 41 43 4b 20 61 l'.accepts.an.Emms.track.TRACK.a
b1fa0 73 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d 65 6e 74 2e 20 20 49 74 20 75 73 65 73 20 27 6f s.a.single.argument...It.uses.'o
b1fc0 67 67 69 6e 66 6f 27 20 75 74 69 6c 69 74 79 20 74 6f 20 65 78 74 72 61 63 74 0a 61 20 6c 69 73 gginfo'.utility.to.extract.a.lis
b1fe0 74 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 20 6d 65 74 61 64 61 74 61 20 70 61 69 72 73 20 66 72 t.of.key-value.metadata.pairs.fr
b2000 6f 6d 20 74 68 65 20 66 69 6c 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 54 52 41 43 4b om.the.file.represented.by.TRACK
b2020 2e 0a 4e 65 78 74 2c 20 69 74 20 73 65 74 73 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 ..Next,.it.sets.the.appropriate.
b2040 69 6e 66 6f 20 73 79 6d 62 6f 6c 73 20 66 6f 72 20 54 52 41 43 4b 20 62 79 20 63 61 6c 6c 69 6e info.symbols.for.TRACK.by.callin
b2060 67 0a 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 27 2e 20 20 49 6e 66 6f 20 73 79 6d 62 6f 6c g.'emms-track-set'...Info.symbol
b2080 73 20 61 72 65 20 69 6e 74 65 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 65 78 74 72 61 63 74 65 s.are.interned.from.the.extracte
b20a0 64 20 6b 65 79 73 2e 0a 54 68 6f 73 65 20 6b 65 79 73 20 63 61 6e 20 62 65 20 61 72 62 69 74 72 d.keys..Those.keys.can.be.arbitr
b20c0 61 72 79 20 73 74 72 69 6e 67 73 2c 20 62 75 74 20 74 68 65 79 20 74 79 70 69 63 61 6c 6c 79 20 ary.strings,.but.they.typically.
b20e0 63 6f 69 6e 63 69 64 65 20 77 69 74 68 0a 74 68 65 20 6b 65 79 73 20 6c 69 73 74 65 64 20 61 62 coincide.with.the.keys.listed.ab
b2100 6f 76 65 3b 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 22 61 6c 62 75 6d 22 20 61 6e 64 20 22 61 72 ove;.for.example."album".and."ar
b2120 74 69 73 74 22 20 66 6f 72 6d 20 69 6e 66 6f 0a 73 79 6d 62 6f 6c 73 20 27 69 6e 66 6f 2d 61 6c tist".form.info.symbols.'info-al
b2140 62 75 6d 27 20 61 6e 64 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 27 2e 0a 0a 1f 0a 46 69 6c 65 3a bum'.and.'info-artist'.....File:
b2160 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 74 65 72 61 63 74 .doc7SuRxP.info,..Node:.Interact
b2180 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 4e 65 78 74 3a 20 4d 61 72 6b 61 62 6c 65 20 50 ive.Playlists,..Next:.Markable.P
b21a0 6c 61 79 6c 69 73 74 73 2c 20 20 50 72 65 76 3a 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 laylists,..Prev:.Track.Informati
b21c0 6f 6e 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 34 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 on,..Up:.Top..14.Interactive.Pla
b21e0 79 6c 69 73 74 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a ylists.************************.
b2200 0a 45 6d 6d 73 20 70 72 6f 76 69 64 65 73 20 61 20 76 69 73 75 61 6c 2c 20 69 6e 74 65 72 61 63 .Emms.provides.a.visual,.interac
b2220 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 tive.playlist.mode.as.well.as.th
b2240 65 20 61 62 69 6c 69 74 79 0a 74 6f 20 75 73 65 20 70 6c 61 79 6c 69 73 74 73 20 77 69 74 68 6f e.ability.to.use.playlists.witho
b2260 75 74 20 65 76 65 72 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 6e 2e 20 20 54 68 69 73 20 76 ut.ever.looking.at.then...This.v
b2280 69 73 75 61 6c 2c 20 69 6e 74 65 72 61 63 74 69 76 65 0a 6d 6f 64 65 20 69 73 20 63 61 6c 6c 65 isual,.interactive.mode.is.calle
b22a0 64 20 74 68 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 27 20 61 6e 64 20 69 d.the.'emms-playlist-mode'.and.i
b22c0 73 20 64 65 66 69 6e 65 64 20 69 6e 0a 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 s.defined.in.'emms-playlist-mode
b22e0 2e 65 6c 27 2e 0a 0a 20 20 20 54 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 .el'......The.interactive.playli
b2300 73 74 20 6d 6f 64 65 20 69 73 20 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e st.mode.is.enabled.by.default.in
b2320 20 74 68 65 20 27 65 6d 6d 73 2d 61 6c 6c 27 0a 73 65 74 75 70 20 6c 65 76 65 6c 2e 20 20 46 6f .the.'emms-all'.setup.level...Fo
b2340 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 45 6d 6d 73 20 73 65 r.more.information.about.Emms.se
b2360 74 75 70 20 6c 65 76 65 6c 73 20 73 65 65 20 2a 4e 6f 74 65 0a 53 65 74 75 70 3a 3a 2e 0a 0a 20 tup.levels.see.*Note.Setup::....
b2380 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d --.Function:.emms-playlist-mode-
b23a0 67 6f 0a 20 20 20 20 20 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6d go......Switch.to.the.current.em
b23c0 6d 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 75 73 65 0a 20 20 20 20 20 ms-playlist.buffer.and.use......
b23e0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 77 emms-playlist-mode......If.you.w
b2400 69 73 68 20 74 6f 20 6d 61 6b 65 20 74 68 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 45 6d 6d ish.to.make.this.the.default.Emm
b2420 73 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 2c 20 61 64 64 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 s.playlist.mode,.add.the.followi
b2440 6e 67 20 74 6f 20 79 6f 75 72 20 27 2e 65 6d 61 63 73 27 2e 0a 0a 20 20 20 20 20 28 73 65 74 71 ng.to.your.'.emacs'........(setq
b2460 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 .emms-playlist-default-major-mod
b2480 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 0a 20 20 20 54 68 65 20 69 e.'emms-playlist-mode).....The.i
b24a0 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 73 68 6f 77 73 nteractive.playlist.buffer.shows
b24c0 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 0a .the.tracks.in.the.current.Emms.
b24e0 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 74 playlist.in.the.order.in.which.t
b2500 68 65 79 20 77 69 6c 6c 20 62 65 20 70 6c 61 79 65 64 2e 20 20 54 68 65 20 63 75 72 72 65 6e 74 hey.will.be.played...The.current
b2520 20 74 72 61 63 6b 0a 77 69 6c 6c 20 62 65 20 68 69 67 68 6c 69 67 68 74 65 64 2e 0a 0a 20 20 20 .track.will.be.highlighted......
b2540 57 68 65 6e 20 69 6e 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 When.in.the.interactive.playlist
b2560 20 6d 6f 64 65 20 77 65 20 63 61 6e 20 70 65 72 66 6f 72 6d 20 64 69 66 66 65 72 65 6e 74 0a 61 .mode.we.can.perform.different.a
b2580 63 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a ctions.on.the.current.playlist..
b25a0 0a 27 61 27 0a 20 20 20 20 20 41 64 64 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c .'a'......Add.files.in.the.playl
b25c0 69 73 74 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 ist.at.point.to.the.current.play
b25e0 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 49 66 20 77 65 20 61 72 65 20 69 6e 20 74 list.buffer.......If.we.are.in.t
b2600 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2c 20 6d 61 6b 65 20 61 20 6e 65 77 20 he.current.playlist,.make.a.new.
b2620 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 0a 20 20 20 20 20 73 65 74 20 69 74 20 playlist.buffer.and......set.it.
b2640 61 73 20 63 75 72 72 65 6e 74 2e 0a 0a 27 69 27 0a 20 20 20 20 20 49 6e 73 65 72 74 20 74 72 61 as.current...'i'......Insert.tra
b2660 63 6b 20 61 74 20 70 6f 69 6e 74 20 69 6e 74 6f 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 ck.at.point.into.active.playlist
b2680 2e 0a 0a 27 62 27 0a 20 20 20 20 20 53 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 ...'b'......Set.the.current.play
b26a0 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 27 6e 27 0a 20 20 20 20 20 53 74 61 72 74 20 70 6c 61 list.buffer...'n'......Start.pla
b26c0 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c ying.the.next.track.in.the.playl
b26e0 69 73 74 2e 0a 0a 27 70 27 0a 20 20 20 20 20 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 ist...'p'......Start.playing.the
b2700 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e .previous.track.in.the.playlist.
b2720 0a 0a 27 73 27 0a 20 20 20 20 20 53 74 6f 70 20 70 6c 61 79 69 6e 67 2e 0a 0a 27 50 27 0a 20 20 ..'s'......Stop.playing...'P'...
b2740 20 20 20 50 61 75 73 65 2e 0a 0a 27 3e 27 0a 20 20 20 20 20 53 65 65 6b 20 74 65 6e 20 73 65 63 ...Pause...'>'......Seek.ten.sec
b2760 6f 6e 64 73 20 66 6f 72 77 61 72 64 2e 0a 0a 27 3c 27 0a 20 20 20 20 20 53 65 65 6b 20 74 65 6e onds.forward...'<'......Seek.ten
b2780 20 73 65 63 6f 6e 64 73 20 62 61 63 6b 77 61 72 64 2e 0a 0a 27 66 27 0a 20 20 20 20 20 44 65 73 .seconds.backward...'f'......Des
b27a0 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 74 72 61 63 cribe.the.currently.playing.trac
b27c0 6b 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 0a 0a 27 63 27 0a 20 20 20 20 20 44 k.in.the.minibuffer...'c'......D
b27e0 69 73 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 isplay.the.current.track.in.the.
b2800 63 65 6e 74 65 72 20 6f 66 20 74 68 65 20 73 63 72 65 65 6e 2e 0a 0a 27 52 45 54 27 0a 20 20 20 center.of.the.screen...'RET'....
b2820 20 20 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 74 72 61 63 6b 20 75 6e 64 65 72 20 ..Start.playing.the.track.under.
b2840 70 6f 69 6e 74 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 69 73 20 61 6c 73 6f 0a 20 point...Note.that.this.is.also..
b2860 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 77 69 74 68 20 27 3c 6d 6f 75 73 65 2d 32 3e 27 2e 0a ....available.with.'<mouse-2>'..
b2880 0a 27 53 50 43 27 0a 20 20 20 20 20 53 63 72 6f 6c 6c 20 75 70 20 61 20 6e 65 61 72 20 66 75 6c .'SPC'......Scroll.up.a.near.ful
b28a0 6c 20 70 61 67 65 2e 0a 0a 27 4d 2d 3c 27 0a 20 20 20 20 20 47 6f 20 74 6f 20 74 68 65 20 66 69 l.page...'M-<'......Go.to.the.fi
b28c0 72 73 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 27 4d 2d 3e rst.track.in.the.playlist...'M->
b28e0 27 0a 20 20 20 20 20 47 6f 20 74 6f 20 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 20 69 6e 20 74 '......Go.to.the.last.track.in.t
b2900 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 27 72 27 0a 20 20 20 20 20 47 6f 20 74 6f 20 61 20 72 he.playlist...'r'......Go.to.a.r
b2920 61 6e 64 6f 6d 6c 79 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c andomly.selected.track.in.the.pl
b2940 61 79 6c 69 73 74 2e 0a 0a 27 71 27 0a 20 20 20 20 20 50 75 74 20 74 68 65 20 69 6e 74 65 72 61 aylist...'q'......Put.the.intera
b2960 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 74 20 74 68 65 20 65 6e 64 ctive.playlist.buffer.at.the.end
b2980 20 6f 66 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 0a 20 20 20 20 20 62 75 66 66 65 72 73 .of.the.list.of.all......buffers
b29a0 2e 0a 0a 27 43 2d 78 20 43 2d 73 27 0a 20 20 20 20 20 53 61 76 65 20 74 68 65 20 63 75 72 72 65 ...'C-x.C-s'......Save.the.curre
b29c0 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 74 6f 20 61 20 66 69 6c 65 2e 20 20 42 nt.playlist.buffer.to.a.file...B
b29e0 79 20 64 65 66 61 75 6c 74 2c 20 45 6d 6d 73 20 77 69 6c 6c 0a 20 20 20 20 20 61 73 6b 20 79 6f y.default,.Emms.will......ask.yo
b2a00 75 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 62 65 66 6f 72 65 20 6f 76 65 72 77 72 u.for.confirmation.before.overwr
b2a20 69 74 69 6e 67 20 61 6e 20 65 78 69 73 74 69 6e 67 20 70 6c 61 79 6c 69 73 74 2e 0a 20 20 20 20 iting.an.existing.playlist......
b2a40 20 59 6f 75 20 63 61 6e 20 73 69 6c 65 6e 74 6c 79 20 6f 76 65 72 77 72 69 74 65 20 65 78 69 73 .You.can.silently.overwrite.exis
b2a60 74 69 6e 67 20 70 6c 61 79 6c 69 73 74 20 62 79 20 73 65 74 74 69 6e 67 0a 20 20 20 20 20 45 4d ting.playlist.by.setting......EM
b2a80 4d 53 2d 53 4f 55 52 43 45 2d 50 4c 41 59 4c 49 53 54 2d 41 53 4b 2d 42 45 46 4f 52 45 2d 4f 56 MS-SOURCE-PLAYLIST-ASK-BEFORE-OV
b2aa0 45 52 57 52 49 54 45 20 74 6f 20 6e 69 6c 2e 0a 0a 27 3f 27 0a 20 20 20 20 20 44 65 73 63 72 69 ERWRITE.to.nil...'?'......Descri
b2ac0 62 65 20 74 68 65 20 6d 6f 64 65 2e 0a 0a 27 43 2d 69 27 0a 20 20 20 20 20 53 68 69 66 74 20 74 be.the.mode...'C-i'......Shift.t
b2ae0 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 75 70 20 6f 6e 65 20 6c 69 6e 65 2e 0a 0a he.track.at.point.up.one.line...
b2b00 27 43 2d 6f 27 0a 20 20 20 20 20 53 68 69 66 74 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 'C-o'......Shift.the.track.at.po
b2b20 69 6e 74 20 64 6f 77 6e 20 6f 6e 65 20 6c 69 6e 65 2e 0a 0a 27 4d 2d 6e 27 0a 20 20 20 20 20 53 int.down.one.line...'M-n'......S
b2b40 77 69 74 63 68 20 74 6f 20 74 68 65 20 6e 65 78 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 witch.to.the.next.playlist.buffe
b2b60 72 2e 0a 0a 27 4d 2d 70 27 0a 20 20 20 20 20 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 65 r...'M-p'......Switch.to.the.pre
b2b80 76 69 6f 75 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 57 65 20 63 61 vious.playlist.buffer......We.ca
b2ba0 6e 20 61 6c 73 6f 20 65 64 69 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 75 73 69 6e 67 20 66 n.also.edit.the.playlist.using.f
b2bc0 61 6d 69 6c 69 61 72 20 47 4e 55 2f 45 6d 61 63 73 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 27 43 2d amiliar.GNU/Emacs.commands:..'C-
b2be0 6b 27 0a 20 20 20 20 20 52 65 6d 6f 76 65 20 74 68 65 20 74 72 61 63 6b 20 75 6e 64 65 72 20 70 k'......Remove.the.track.under.p
b2c00 6f 69 6e 74 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 20 20 oint.from.the.playlist.buffer...
b2c20 41 6c 73 6f 0a 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 75 73 69 6e 67 20 74 68 65 20 27 64 Also......available.using.the.'d
b2c40 27 20 6b 65 79 2e 0a 0a 27 43 2d 79 27 0a 20 20 20 20 20 53 65 65 20 74 68 65 20 63 6f 6d 6d 61 '.key...'C-y'......See.the.comma
b2c60 6e 64 20 27 79 61 6e 6b 27 0a 0a 27 4d 2d 79 27 0a 20 20 20 20 20 53 65 65 20 74 68 65 20 63 6f nd.'yank'..'M-y'......See.the.co
b2c80 6d 6d 61 6e 64 20 27 79 61 6e 6b 2d 70 6f 70 27 2e 0a 0a 27 43 2d 6a 27 0a 20 20 20 20 20 49 6e mmand.'yank-pop'...'C-j'......In
b2ca0 73 65 72 74 20 61 20 6e 65 77 6c 69 6e 65 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 20 20 20 57 65 20 sert.a.newline.at.point......We.
b2cc0 63 61 6e 20 75 73 65 20 74 68 65 20 72 65 67 75 6c 61 72 20 47 4e 55 2f 45 6d 61 63 73 20 6b 69 can.use.the.regular.GNU/Emacs.ki
b2ce0 6c 6c 69 6e 67 20 61 6e 64 20 79 61 6e 6b 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 6d 6f lling.and.yanking.commands.to.mo
b2d00 76 65 0a 61 6e 64 20 63 6f 70 79 20 74 72 61 63 6b 73 20 69 6e 20 62 65 74 77 65 65 6e 20 70 6c ve.and.copy.tracks.in.between.pl
b2d20 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 2e 20 20 57 65 20 63 61 6e 20 75 73 65 20 74 68 65 20 aylist.buffers...We.can.use.the.
b2d40 73 61 6d 65 0a 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 69 6e 73 65 72 74 20 61 72 62 69 74 72 61 72 same.commands.to.insert.arbitrar
b2d60 79 20 74 65 78 74 20 69 6e 74 6f 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 y.text.into.the.playlist.buffers
b2d80 20 74 6f 67 65 74 68 65 72 0a 77 69 74 68 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 74 72 61 63 .together.with.the.playlist.trac
b2da0 6b 73 2e 20 20 54 65 78 74 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 20 74 72 61 63 6b 20 69 ks...Text.which.is.not.a.track.i
b2dc0 73 20 69 67 6e 6f 72 65 64 20 62 79 20 74 68 65 0a 70 72 6f 67 72 61 6d 20 61 6e 64 20 63 61 6e s.ignored.by.the.program.and.can
b2de0 20 74 68 65 72 65 66 6f 72 65 20 62 65 20 75 73 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 69 .therefore.be.used.to.include.ti
b2e00 74 6c 65 73 20 61 6e 64 20 61 6e 6e 6f 74 61 74 69 6f 6e 73 0a 77 69 74 68 69 6e 20 74 68 65 20 tles.and.annotations.within.the.
b2e20 70 6c 61 79 6c 69 73 74 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 playlist.....File:.doc7SuRxP.inf
b2e40 6f 2c 20 20 4e 6f 64 65 3a 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 4e o,..Node:.Markable.Playlists,..N
b2e60 65 78 74 3a 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 2c 20 20 50 72 65 76 3a 20 49 6e 74 65 ext:.Extending.Emms,..Prev:.Inte
b2e80 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 35 20 ractive.Playlists,..Up:.Top..15.
b2ea0 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a Markable.Playlists.*************
b2ec0 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 ********..The.Markable.Playlists
b2ee0 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 2d 6d 61 72 6b .provided.by.the.file.'emms-mark
b2f00 2e 65 6c 27 20 61 72 65 20 61 6e 0a 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 64 .el'.are.an.alternative.to.the.d
b2f20 65 66 61 75 6c 74 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 73 2c 20 2a 4e efault.interactive.playlists,.*N
b2f40 6f 74 65 20 49 6e 74 65 72 61 63 74 69 76 65 0a 50 6c 61 79 6c 69 73 74 73 3a 3a 2e 20 20 54 68 ote.Interactive.Playlists::...Th
b2f60 65 79 20 61 6c 6c 6f 77 20 6d 61 72 6b 69 6e 67 20 74 72 61 63 6b 73 20 77 69 74 68 20 6b 65 79 ey.allow.marking.tracks.with.key
b2f80 62 69 6e 64 69 6e 67 73 20 66 61 6d 69 6c 69 61 72 20 74 6f 0a 75 73 65 72 73 20 6f 66 20 64 69 bindings.familiar.to.users.of.di
b2fa0 72 65 64 2e 0a 0a 20 20 20 54 6f 20 65 6e 61 62 6c 65 20 74 68 65 20 4d 61 72 6b 61 62 6c 65 20 red......To.enable.the.Markable.
b2fc0 50 6c 61 79 6c 69 73 74 73 20 79 6f 75 20 68 61 76 65 20 74 6f 20 61 64 64 0a 0a 20 20 20 20 20 Playlists.you.have.to.add.......
b2fe0 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 29 0a 0a 20 20 20 74 6f 20 79 6f 75 72 (require.'emms-mark).....to.your
b3000 20 27 2e 65 6d 61 63 73 27 2e 20 20 54 68 65 6e 20 79 6f 75 20 63 61 6e 20 61 63 74 69 76 61 74 .'.emacs'...Then.you.can.activat
b3020 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 62 79 0a 65 78 65 63 75 74 69 6e 67 20 e.'emms-mark-mode'.by.executing.
b3040 27 4d 2d 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 69 6e 20 61 20 70 6c 61 79 6c 69 'M-x.emms-mark-mode'.in.a.playli
b3060 73 74 20 62 75 66 66 65 72 2e 20 20 59 6f 75 20 63 61 6e 20 72 65 74 75 72 6e 20 74 6f 0a 74 68 st.buffer...You.can.return.to.th
b3080 65 20 64 65 66 61 75 6c 74 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 6d e.default.interactive.playlist.m
b30a0 6f 64 65 20 77 69 74 68 20 27 4d 2d 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 2d 64 69 73 ode.with.'M-x.emms-mark-mode-dis
b30c0 61 62 6c 65 27 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 6d 61 6b 65 20 74 able'......If.you.wish.to.make.t
b30e0 68 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 6d 6f his.the.default.Emms.playlist.mo
b3100 64 65 2c 20 61 64 64 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 27 2e de,.add.the.following.to.your.'.
b3120 65 6d 61 63 73 27 2e 0a 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 emacs'........(setq.emms-playlis
b3140 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d t-default-major-mode.'emms-mark-
b3160 6d 6f 64 65 29 0a 0a 27 6d 27 0a 20 20 20 20 20 4d 61 72 6b 73 20 74 68 65 20 63 75 72 72 65 6e mode)..'m'......Marks.the.curren
b3180 74 20 74 72 61 63 6b 20 61 6e 64 20 73 65 74 73 20 70 6f 69 6e 74 20 6f 6e 65 20 6c 69 6e 65 20 t.track.and.sets.point.one.line.
b31a0 66 6f 72 77 61 72 64 2e 20 20 49 66 20 61 0a 20 20 20 20 20 70 72 65 66 69 78 20 61 72 67 75 6d forward...If.a......prefix.argum
b31c0 65 6e 74 20 41 52 47 20 69 73 20 67 69 76 65 6e 2c 20 69 74 20 77 69 6c 6c 20 6d 61 72 6b 20 74 ent.ARG.is.given,.it.will.mark.t
b31e0 68 65 20 6e 65 78 74 20 41 52 47 20 74 72 61 63 6b 73 20 61 6e 64 0a 20 20 20 20 20 73 65 74 20 he.next.ARG.tracks.and......set.
b3200 70 6f 69 6e 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 20 20 41 20 6e 65 67 61 74 69 76 65 20 61 point.accordingly...A.negative.a
b3220 72 67 75 6d 65 6e 74 20 6d 61 72 6b 73 20 62 61 63 6b 77 61 72 64 2e 0a 0a 27 55 27 0a 20 20 20 rgument.marks.backward...'U'....
b3240 20 20 55 6e 6d 61 72 6b 73 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 70 6c 61 79 ..Unmarks.all.tracks.in.the.play
b3260 6c 69 73 74 2e 0a 0a 27 74 27 0a 20 20 20 20 20 54 6f 67 67 6c 65 73 20 6d 61 72 6b 20 6f 6e 20 list...'t'......Toggles.mark.on.
b3280 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 0a 27 75 27 0a 20 20 20 20 20 55 6e 6d the.current.track...'u'......Unm
b32a0 61 72 6b 73 20 73 61 6d 65 20 77 61 79 20 61 73 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d 66 6f 72 77 arks.same.way.as.'emms-mark-forw
b32c0 61 72 64 27 20 6d 61 72 6b 73 2e 0a 0a 27 25 20 6d 27 0a 20 20 20 20 20 4d 61 72 6b 73 20 61 6c ard'.marks...'%.m'......Marks.al
b32e0 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 6d 61 74 63 68 69 6e l.tracks.in.the.playlist.matchin
b3300 67 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 0a 20 20 20 20 20 65 78 70 72 65 73 73 g.the.given.regular......express
b3320 69 6f 6e 2e 20 20 41 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 6d 65 61 6e 73 20 74 6f ion...A.prefix.argument.means.to
b3340 20 75 6e 6d 61 72 6b 20 74 68 65 6d 20 69 6e 73 74 65 61 64 2e 0a 0a 20 20 20 57 68 65 6e 20 74 .unmark.them.instead......When.t
b3360 72 61 63 6b 73 20 61 72 65 20 6d 61 72 6b 65 64 20 79 6f 75 20 63 61 6e 20 6f 70 65 72 61 74 65 racks.are.marked.you.can.operate
b3380 20 6f 6e 20 74 68 65 6d 3a 0a 0a 27 44 27 0a 20 20 20 20 20 44 65 6c 65 74 65 73 20 74 68 65 20 .on.them:..'D'......Deletes.the.
b33a0 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e marked.tracks.from.the.playlist.
b33c0 0a 0a 27 4b 27 0a 20 20 20 20 20 44 65 6c 65 74 65 73 20 74 68 65 20 6d 61 72 6b 65 64 20 74 72 ..'K'......Deletes.the.marked.tr
b33e0 61 63 6b 73 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 6e 64 20 70 6c 61 63 65 acks.from.the.playlist.and.place
b3400 73 20 74 68 65 6d 20 69 6e 20 74 68 65 0a 20 20 20 20 20 6b 69 6c 6c 2d 72 69 6e 67 2c 20 73 6f s.them.in.the......kill-ring,.so
b3420 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 27 79 61 6e 6b 27 20 69 6e 20 69 6e 74 6f 20 61 6e 6f .that.you.can.'yank'.in.into.ano
b3440 74 68 65 72 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 27 57 27 0a 20 20 20 20 20 41 64 64 73 20 74 68 ther.playlist...'W'......Adds.th
b3460 65 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 20 74 6f 20 74 68 65 20 6b 69 6c 6c 2d 72 69 6e 67 e.marked.tracks.to.the.kill-ring
b3480 2c 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 27 79 61 6e 6b 27 0a 20 20 20 20 20 74 68 ,.so.that.you.can.'yank'......th
b34a0 65 6d 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 20 20 20 65 6d em.into.another.playlist......em
b34c0 6d 73 2d 6d 61 72 6b 20 69 73 20 61 6c 73 6f 20 69 6e 74 65 6e 74 20 74 6f 20 70 72 6f 76 69 64 ms-mark.is.also.intent.to.provid
b34e0 65 20 61 20 77 61 79 20 66 6f 72 20 75 73 65 72 20 74 6f 20 73 65 6c 65 63 74 20 74 72 61 63 6b e.a.way.for.user.to.select.track
b3500 73 0a 66 6f 72 20 6f 74 68 65 72 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 6f 70 65 72 61 74 65 20 6f s.for.other.command.to.operate.o
b3520 6e 20 74 68 65 6d 2e 20 20 43 75 72 72 65 6e 74 6c 79 2c 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 n.them...Currently,.'emms-tag-ed
b3540 69 74 6f 72 2e 65 6c 27 0a 75 73 65 73 20 74 68 65 20 65 6d 6d 73 2d 6d 61 72 6b 20 74 6f 20 65 itor.el'.uses.the.emms-mark.to.e
b3560 64 69 74 20 74 68 65 20 74 61 67 73 20 6f 66 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 73 2e dit.the.tags.of.selected.tracks.
b3580 20 20 54 77 6f 20 66 75 6e 63 74 69 6f 6e 73 0a 61 72 65 20 75 73 65 66 75 6c 20 66 6f 72 20 74 ..Two.functions.are.useful.for.t
b35a0 68 65 20 65 6c 69 73 70 20 70 72 6f 67 72 61 6d 65 72 20 74 6f 20 68 61 6e 64 6c 65 20 6d 61 72 he.elisp.programer.to.handle.mar
b35c0 6b 65 64 20 74 72 61 63 6b 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d ked.tracks....--.Function:.emms-
b35e0 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 20 20 20 20 20 54 mark-do-with-marked-track......T
b3600 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 his.function.take.a.function.to.
b3620 70 65 72 66 6f 72 6d 20 6f 6e 20 61 6c 6c 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 2e 20 20 41 perform.on.all.marked.tracks...A
b3640 0a 20 20 20 20 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 27 6d 6f 76 65 2d 66 6c ......optional.argument.'move-fl
b3660 61 67 27 20 74 6f 20 74 65 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 6d 6f 76 65 ag'.to.tell.the.function.to.move
b3680 20 66 6f 72 77 61 72 64 0a 20 20 20 20 20 6c 69 6e 65 20 61 66 74 65 72 20 63 61 6c 6c 69 6e 67 .forward......line.after.calling
b36a0 20 67 69 76 65 6e 20 66 75 6e 63 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 67 69 76 65 6e 20 66 .given.function...If.the.given.f
b36c0 75 6e 63 74 69 6f 6e 20 64 69 64 6e 27 74 0a 20 20 20 20 20 63 68 61 6e 67 65 20 70 6f 73 69 74 unction.didn't......change.posit
b36e0 69 6f 6e 2c 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 73 68 6f 75 6c 64 20 ion,.the.second.argument.should.
b3700 73 65 74 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 set.to.non-nil....--.Function:.e
b3720 6d 6d 73 2d 6d 61 72 6b 2d 6d 61 70 63 61 72 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 20 20 20 mms-mark-mapcar-marked-track....
b3740 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 76 65 72 79 20 73 69 6d 69 6c 61 72 20 ..This.function.is.very.similar.
b3760 74 6f 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 to.'emms-mark-do-with-marked-tra
b3780 63 6b 27 0a 20 20 20 20 20 65 78 63 65 70 74 20 69 74 20 63 6f 6c 6c 65 63 74 73 20 72 65 73 75 ck'......except.it.collects.resu
b37a0 6c 74 20 6f 66 20 67 69 76 65 6e 20 66 75 6e 63 74 69 6f 6e 20 28 74 68 61 74 27 73 20 77 68 79 lt.of.given.function.(that's.why
b37c0 20 6e 61 6d 65 64 20 77 69 74 68 0a 20 20 20 20 20 27 6d 61 70 63 61 72 27 29 2e 0a 0a 1f 0a 46 .named.with......'mapcar').....F
b37e0 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 45 78 74 65 ile:.doc7SuRxP.info,..Node:.Exte
b3800 6e 64 69 6e 67 20 45 6d 6d 73 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 42 72 6f 77 73 65 72 2c 20 nding.Emms,..Next:.The.Browser,.
b3820 20 50 72 65 76 3a 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 55 70 3a 20 .Prev:.Markable.Playlists,..Up:.
b3840 54 6f 70 0a 0a 31 36 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a Top..16.Extending.Emms.*********
b3860 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 68 69 67 68 ********..Emms.introduces.a.high
b3880 20 61 62 73 74 72 61 63 74 69 6f 6e 20 6c 61 79 65 72 20 66 6f 72 20 70 6c 61 79 69 6e 67 20 6d .abstraction.layer.for.playing.m
b38a0 75 73 69 63 20 73 6f 20 79 6f 75 20 63 61 6e 0a 63 75 73 74 6f 6d 69 73 65 20 69 74 20 74 6f 20 usic.so.you.can.customise.it.to.
b38c0 79 6f 75 72 20 6e 65 65 64 73 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 4e 65 77 20 50 6c 61 79 your.needs...*.Menu:..*.New.Play
b38e0 65 72 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 er::...............How.to.define
b3900 20 61 20 6e 65 77 20 70 6c 61 79 65 72 2e 0a 2a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 .a.new.player..*.Simple.Player.f
b3920 6f 72 20 60 70 6c 61 79 27 3a 3a 20 41 6e 20 65 78 61 6d 70 6c 65 20 70 6c 61 79 65 72 20 75 73 or.`play'::.An.example.player.us
b3940 69 6e 67 20 27 70 6c 61 79 27 2e 0a 2a 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 ing.'play'..*.More.Complex.Playe
b3960 72 3a 3a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 61 20 63 6f 6d 70 6c 65 78 20 70 6c r::......Example.of.a.complex.pl
b3980 61 79 65 72 20 75 73 69 6e 67 20 27 6d 70 67 33 32 31 27 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f ayer.using.'mpg321'.....File:.do
b39a0 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4e 65 77 20 50 6c 61 79 65 72 2c c7SuRxP.info,..Node:.New.Player,
b39c0 20 20 4e 65 78 74 3a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 ..Next:.Simple.Player.for.`play'
b39e0 2c 20 20 55 70 3a 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 0a 31 36 2e 31 20 4e 65 77 20 ,..Up:.Extending.Emms..16.1.New.
b3a00 50 6c 61 79 65 72 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 66 69 6c 65 Player.===============..The.file
b3a20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 27 20 64 65 66 69 6e 65 73 .'emms-player-simple.el'.defines
b3a40 20 73 6f 6d 65 20 65 61 73 79 20 70 6c 61 79 65 72 73 20 74 6f 20 73 74 61 72 74 0a 77 69 74 68 .some.easy.players.to.start.with
b3a60 2c 20 62 75 74 20 69 74 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 20 68 61 72 64 20 74 6f 20 70 72 ,.but.it.shouldn't.be.hard.to.pr
b3a80 6f 76 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 79 6f 75 72 20 66 61 76 6f 75 72 ovide.a.function.for.your.favour
b3aa0 69 74 65 0a 70 6c 61 79 65 72 2e 20 20 57 65 20 77 69 6c 6c 20 73 74 61 72 74 20 77 69 74 68 20 ite.player...We.will.start.with.
b3ac0 61 6e 20 65 61 73 79 20 65 78 61 6d 70 6c 65 20 74 68 61 74 20 73 68 6f 77 73 20 68 6f 77 20 77 an.easy.example.that.shows.how.w
b3ae0 65 20 63 61 6e 20 75 73 65 0a 74 68 65 20 27 70 6c 61 79 27 20 63 6f 6d 6d 61 6e 64 20 75 6e 64 e.can.use.the.'play'.command.und
b3b00 65 72 20 55 6e 69 78 20 74 6f 20 70 6c 61 79 20 6f 75 72 20 57 41 56 20 66 69 6c 65 73 2e 0a 0a er.Unix.to.play.our.WAV.files...
b3b20 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 ..File:.doc7SuRxP.info,..Node:.S
b3b40 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 2c 20 20 4e 65 78 74 3a 20 imple.Player.for.`play',..Next:.
b3b60 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 2c 20 20 50 72 65 76 3a 20 4e 65 77 20 More.Complex.Player,..Prev:.New.
b3b80 50 6c 61 79 65 72 2c 20 20 55 70 3a 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 0a 31 36 2e Player,..Up:.Extending.Emms..16.
b3ba0 32 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 27 70 6c 61 79 27 0a 3d 3d 3d 3d 3d 2.Simple.Player.for.'play'.=====
b3bc0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 50 6c 61 79 20 69 ========================..Play.i
b3be0 73 20 61 20 76 65 72 79 20 65 61 73 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 6c 61 79 65 s.a.very.easy.command.line.playe
b3c00 72 20 66 6f 72 20 76 61 72 69 6f 75 73 20 66 6f 72 6d 61 74 2e 20 20 49 66 20 79 6f 75 20 77 61 r.for.various.format...If.you.wa
b3c20 6e 74 0a 79 6f 75 72 20 65 6d 6d 73 20 74 6f 20 70 6c 61 79 20 57 41 56 20 66 69 6c 65 73 20 6a nt.your.emms.to.play.WAV.files.j
b3c40 75 73 74 20 70 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 73 20 69 6e 20 79 ust.put.the.following.lines.in.y
b3c60 6f 75 0a 27 2e 65 6d 61 63 73 27 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d ou.'.emacs':.......(require.'emm
b3c80 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 20 20 20 20 20 28 64 65 66 69 6e 65 2d 65 6d s-player-simple)......(define-em
b3ca0 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 70 6c 61 79 20 27 28 66 69 6c 65 29 20 22 5c ms-simple-player.play.'(file)."\
b3cc0 5c 2e 77 61 76 24 22 20 22 70 6c 61 79 22 29 0a 0a 20 20 20 48 75 68 21 20 20 57 61 73 6e 27 74 \.wav$"."play").....Huh!..Wasn't
b3ce0 20 74 68 61 74 20 65 61 73 79 3f 0a 0a 20 20 20 54 68 65 20 6d 61 63 72 6f 20 66 75 6e 63 74 69 .that.easy?.....The.macro.functi
b3d00 6f 6e 20 27 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 27 20 74 on.'define-emms-simple-player'.t
b3d20 61 6b 65 73 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 0a 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 akes.a.minimum.of.three.argument
b3d40 73 2e 20 20 54 68 65 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 28 5f 70 6c 61 79 5f 20 69 s...The.first.argument.(_play_.i
b3d60 6e 20 6f 75 72 20 65 78 61 6d 70 6c 65 29 20 64 65 66 69 6e 65 73 20 74 68 65 0a 6e 61 6d 65 20 n.our.example).defines.the.name.
b3d80 6f 66 20 74 68 65 20 70 6c 61 79 65 72 2e 20 20 49 74 27 73 20 75 73 65 64 20 74 6f 20 6e 61 6d of.the.player...It's.used.to.nam
b3da0 65 20 74 68 65 20 70 6c 61 79 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 20 20 54 68 65 20 73 65 63 e.the.player.functions...The.sec
b3dc0 6f 6e 64 0a 69 73 20 61 20 72 65 67 65 78 70 2c 20 74 68 61 74 20 64 65 66 69 6e 65 73 20 77 68 ond.is.a.regexp,.that.defines.wh
b3de0 69 63 68 20 66 69 6c 65 73 20 74 6f 20 70 6c 61 79 20 77 69 74 68 20 6f 75 72 20 70 6c 61 79 65 ich.files.to.play.with.our.playe
b3e00 72 2e 0a 5f 5c 5c 2e 77 61 76 24 5f 20 6d 61 74 63 68 65 73 20 61 6e 79 20 66 69 6c 65 6e 61 6d r.._\\.wav$_.matches.any.filenam
b3e20 65 20 65 6e 64 69 6e 67 20 77 69 74 68 20 61 20 64 6f 74 20 61 6e 64 20 74 68 65 20 73 74 72 69 e.ending.with.a.dot.and.the.stri
b3e40 6e 67 20 77 61 76 2e 0a 54 68 65 20 6c 61 73 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 ng.wav..The.last.argument.is.the
b3e60 20 61 63 74 75 61 6c 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 63 6f 6d 6d 61 6e 64 20 77 65 20 .actual.command.line.command.we.
b3e80 75 73 65 20 74 6f 20 70 6c 61 79 20 6f 75 72 0a 66 69 6c 65 73 2e 20 20 59 6f 75 20 63 61 6e 20 use.to.play.our.files...You.can.
b3ea0 61 6c 73 6f 20 61 64 64 20 74 68 65 20 70 61 74 68 20 62 75 74 20 77 65 20 6a 75 73 74 20 61 73 also.add.the.path.but.we.just.as
b3ec0 73 75 6d 65 20 74 68 61 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 0a 69 6e 20 79 6f 75 72 sume.that.the.command.is.in.your
b3ee0 20 70 61 74 68 2e 20 20 41 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 79 6f 75 20 61 64 64 20 74 6f .path...All.arguments.you.add.to
b3f00 20 74 68 65 73 65 20 74 68 72 65 65 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 2e 20 20 54 68 65 79 .these.three.are.optional...They
b3f20 0a 64 65 66 69 6e 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65 6e .define.the.command.line.argumen
b3f40 74 73 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 61 64 64 20 74 6f 20 79 6f 75 72 20 61 72 67 75 6d ts.you.want.to.add.to.your.argum
b3f60 65 6e 74 2e 20 20 49 66 0a 79 6f 75 20 77 61 6e 74 20 74 6f 20 68 65 61 72 20 74 68 65 20 77 61 ent...If.you.want.to.hear.the.wa
b3f80 76 20 66 69 6c 65 20 6f 66 20 79 6f 75 72 20 66 61 76 6f 75 72 69 74 65 20 61 72 74 69 73 74 20 v.file.of.your.favourite.artist.
b3fa0 69 6e 20 74 68 65 20 6d 6f 73 74 0a 70 6f 73 73 69 62 6c 65 20 76 6f 6c 75 6d 65 20 75 73 65 20 in.the.most.possible.volume.use.
b3fc0 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 the.following.line:.......(requi
b3fe0 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 0a 20 20 20 20 20 28 64 re.'emms-player-simple).......(d
b4000 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 70 6c 61 79 0a 20 20 efine-emms-simple-player.play...
b4020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 ..............................'(
b4040 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 file)...........................
b4060 20 20 20 20 20 20 22 5c 5c 61 72 74 69 73 74 2d 2a 2e 77 61 76 24 22 0a 20 20 20 20 20 20 20 20 ......"\\artist-*.wav$".........
b4080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6c 61 79 22 0a 20 ........................"play"..
b40a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ..............................."
b40c0 2d 2d 76 6f 6c 75 6d 65 3d 31 30 30 22 29 0a 0a 20 20 20 50 6c 65 61 73 65 20 6e 6f 74 69 63 65 --volume=100").....Please.notice
b40e0 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 74 6f 20 61 64 64 20 74 68 65 20 61 72 67 75 6d 65 .that.you.have.to.add.the.argume
b4100 6e 74 73 20 61 73 20 73 74 72 69 6e 67 73 21 0a 0a 20 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 nts.as.strings!.....The.command.
b4120 6c 69 6e 65 20 74 6f 6f 6c 20 79 6f 75 20 75 73 65 20 66 6f 72 20 27 64 65 66 69 6e 65 2d 65 6d line.tool.you.use.for.'define-em
b4140 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 27 20 68 61 73 20 74 6f 0a 74 61 6b 65 20 6f 6e ms-simple-player'.has.to.take.on
b4160 65 20 73 6f 6e 67 20 61 73 20 61 72 67 75 6d 65 6e 74 20 61 6e 64 20 73 74 6f 70 20 61 66 74 65 e.song.as.argument.and.stop.afte
b4180 72 20 70 6c 61 79 69 6e 67 20 74 68 61 74 20 70 61 72 74 69 63 75 6c 61 72 20 73 6f 6e 67 2e 0a r.playing.that.particular.song..
b41a0 46 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 63 6f 6e 63 65 70 74 20 79 6f 75 20 77 69 6c 6c 20 6e For.any.other.concept.you.will.n
b41c0 65 65 64 20 74 6f 20 63 75 73 74 6f 6d 69 73 65 20 65 6d 6d 73 20 61 20 62 69 74 20 6d 6f 72 65 eed.to.customise.emms.a.bit.more
b41e0 2e 2e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f .......File:.doc7SuRxP.info,..No
b4200 64 65 3a 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 2c 20 20 50 72 65 76 3a 20 de:.More.Complex.Player,..Prev:.
b4220 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 2c 20 20 55 70 3a 20 45 Simple.Player.for.`play',..Up:.E
b4240 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 0a 31 36 2e 33 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 xtending.Emms..16.3.More.Complex
b4260 20 50 6c 61 79 65 72 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .Player.========================
b4280 0a 0a 54 68 65 20 6d 6f 73 74 20 70 6c 61 79 65 72 73 20 79 6f 75 20 75 73 65 20 77 69 6c 6c 20 ..The.most.players.you.use.will.
b42a0 62 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 73 20 73 6f 20 79 6f 75 20 64 6f 6e 27 74 20 6e be.simple.players.so.you.don't.n
b42c0 65 65 64 20 74 6f 0a 72 65 61 64 20 74 68 69 73 20 63 68 61 70 74 65 72 2e 20 20 42 75 74 20 69 eed.to.read.this.chapter...But.i
b42e0 66 20 79 6f 75 20 61 72 65 20 63 75 72 69 6f 75 73 20 68 6f 77 20 79 6f 75 20 63 61 6e 20 75 73 f.you.are.curious.how.you.can.us
b4300 65 20 28 61 6c 6d 6f 73 74 29 0a 65 76 65 72 79 20 70 6c 61 79 65 72 20 69 6e 20 65 6d 6d 73 20 e.(almost).every.player.in.emms.
b4320 72 65 61 64 20 66 75 72 74 68 65 72 2e 2e 2e 0a 0a 20 20 20 49 6e 20 74 68 69 73 20 63 68 61 70 read.further........In.this.chap
b4340 74 65 72 20 77 65 20 77 69 6c 6c 20 75 73 65 20 6d 70 67 33 32 31 20 74 6f 20 63 6f 6e 73 74 72 ter.we.will.use.mpg321.to.constr
b4360 75 63 74 20 61 20 70 6c 61 79 65 72 20 74 68 61 74 0a 61 63 74 75 61 6c 6c 79 20 63 61 6e 20 70 uct.a.player.that.actually.can.p
b4380 61 75 73 65 20 61 20 74 72 61 63 6b 2c 20 72 65 73 74 61 72 74 20 69 74 20 61 6e 64 20 73 68 6f ause.a.track,.restart.it.and.sho
b43a0 77 20 72 65 73 74 20 74 69 6d 65 2e 20 20 57 65 20 77 6f 6e 27 74 0a 69 6d 70 6c 65 6d 65 6e 74 w.rest.time...We.won't.implement
b43c0 20 61 6c 6c 20 6f 66 20 74 68 61 74 2c 20 62 75 74 20 61 66 74 65 72 20 74 68 61 74 20 63 68 61 .all.of.that,.but.after.that.cha
b43e0 70 74 65 72 20 79 6f 75 20 77 69 6c 6c 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 0a 64 65 66 69 6e 65 pter.you.will.know.how.to.define
b4400 20 69 74 2e 0a 0a 20 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 27 64 65 66 69 6e 65 2d 65 6d 6d .it......The.command.'define-emm
b4420 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 27 20 69 73 20 6a 75 73 74 20 61 20 61 62 73 74 72 s-simple-player'.is.just.a.abstr
b4440 61 63 74 69 6f 6e 20 6c 61 79 65 72 0a 66 6f 72 20 27 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c action.layer.for.'define-emms-pl
b4460 61 79 65 72 27 2c 20 77 68 69 63 68 20 69 73 20 61 20 6c 69 74 74 6c 65 20 62 69 74 20 6d 6f 72 ayer',.which.is.a.little.bit.mor
b4480 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 20 62 75 74 0a 6d 75 63 68 20 6d 6f 72 65 20 70 6f 77 65 e.complicated.but.much.more.powe
b44a0 72 66 75 6c 21 0a 0a 20 20 20 20 20 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 65 72 20 rful!.......(define-emms-player.
b44c0 22 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 22 0a 20 20 20 20 20 20 20 3a 73 74 61 "emms-mpg321-remote"........:sta
b44e0 72 74 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 72 74 0a 20 20 20 rt.'emms-mpg321-remote-start....
b4500 20 20 20 20 3a 73 74 6f 70 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 ....:stop.'emms-mpg321-remote-st
b4520 6f 70 0a 20 20 20 20 20 20 20 3a 70 6c 61 79 61 62 6c 65 70 20 27 65 6d 6d 73 2d 6d 70 67 33 32 op........:playablep.'emms-mpg32
b4540 31 2d 72 65 6d 6f 74 65 2d 70 6c 61 79 61 62 6c 65 2d 70 29 0a 0a 20 20 20 53 6f 2c 20 74 68 61 1-remote-playable-p).....So,.tha
b4560 74 20 69 73 20 61 6c 6d 6f 73 74 20 61 6c 6c 21 20 20 27 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 t.is.almost.all!..'define-emms-p
b4580 6c 61 79 65 72 27 20 74 61 6b 65 73 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 0a 74 68 72 65 65 20 layer'.takes.a.minimum.of.three.
b45a0 61 72 67 75 6d 65 6e 74 73 2e 20 20 54 68 65 20 66 69 72 73 74 20 69 73 20 74 68 65 20 6e 61 6d arguments...The.first.is.the.nam
b45c0 65 20 6f 66 20 74 68 65 20 70 6c 61 79 65 72 2e 20 20 54 68 65 20 72 65 73 74 20 61 72 65 0a 6d e.of.the.player...The.rest.are.m
b45e0 65 74 68 6f 64 73 20 77 69 74 68 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 2e 20 20 ethods.with.functions.to.call...
b4600 54 68 72 65 65 20 6d 65 74 68 6f 64 73 20 61 72 65 20 72 65 71 75 69 72 65 64 3a 20 73 74 61 72 Three.methods.are.required:.star
b4620 74 2c 20 73 74 6f 70 0a 61 6e 64 20 70 6c 61 79 61 62 6c 65 2e 20 20 53 74 61 72 74 20 73 61 79 t,.stop.and.playable...Start.say
b4640 73 20 45 6d 6d 73 20 68 6f 77 20 74 6f 20 73 74 61 72 74 20 61 20 74 72 61 63 6b 20 28 73 69 63 s.Emms.how.to.start.a.track.(sic
b4660 21 29 2c 20 73 74 6f 70 20 68 6f 77 20 74 6f 0a 73 74 6f 70 20 61 20 70 6c 61 79 65 72 20 61 6e !),.stop.how.to.stop.a.player.an
b4680 64 20 70 6c 61 79 61 62 6c 65 70 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 d.playablep.should.return.non-ni
b46a0 6c 20 69 66 20 74 68 65 20 70 6c 61 79 65 72 20 63 61 6e 20 70 6c 61 79 0a 74 68 65 20 74 72 61 l.if.the.player.can.play.the.tra
b46c0 63 6b 2e 0a 0a 20 20 20 53 6f 20 77 65 20 6a 75 73 74 20 6e 65 65 64 20 74 68 65 73 65 20 74 68 ck......So.we.just.need.these.th
b46e0 72 65 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 67 65 74 20 6f 75 72 20 6d 70 67 33 32 31 2d ree.functions.to.get.our.mpg321-
b4700 72 65 6d 6f 74 65 3a 0a 0a 20 20 20 46 69 72 73 74 20 77 65 20 63 6f 64 65 20 74 68 65 20 73 74 remote:.....First.we.code.the.st
b4720 61 72 74 20 66 75 6e 63 74 69 6f 6e 2e 20 20 57 65 20 77 69 6c 6c 20 63 68 65 63 6b 20 69 66 20 art.function...We.will.check.if.
b4740 74 68 65 72 65 27 73 20 61 20 6f 70 65 6e 0a 70 72 6f 63 65 73 73 20 61 6e 64 20 73 74 61 72 74 there's.a.open.process.and.start
b4760 20 6f 6e 65 20 6f 74 68 65 72 77 69 73 65 2e 20 20 54 68 65 6e 20 77 65 20 73 65 6e 64 20 61 20 .one.otherwise...Then.we.send.a.
b4780 73 74 72 69 6e 67 20 74 6f 20 74 68 65 20 70 72 6f 63 65 73 73 0a 77 69 74 68 20 74 68 65 20 66 string.to.the.process.with.the.f
b47a0 69 6c 65 6e 61 6d 65 20 61 6e 64 20 73 65 74 20 61 20 66 69 6c 74 65 72 2e 0a 0a 20 20 20 20 20 ilename.and.set.a.filter........
b47c0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 72 74 20 (defun.emms-mpg321-remote-start.
b47e0 28 29 0a 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 2d 70 72 6f 63 65 73 73 20 60 ()........(unless.(get-process.`
b4800 60 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 27 27 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 `mpg321-remote'')..........(setq
b4820 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 .emms-mpg321-remote-process.....
b4840 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 70 72 6f 63 65 73 73 20 22 6d 70 67 33 32 ...........(start-process."mpg32
b4860 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1-remote-process"...............
b4880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2a 6d 70 67 33 32 31 2a 22 20 22 6d 70 67 33 ................"*mpg321*"."mpg3
b48a0 32 31 22 20 22 2d 52 22 20 22 61 62 63 22 29 29 0a 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 21"."-R"."abc"))........(process
b48c0 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 22 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 -send-string."mpg321-remote-proc
b48e0 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ess"............................
b4900 20 28 63 6f 6e 63 61 74 20 22 6c 20 22 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 .(concat."l.".(emms-track-name.t
b4920 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 rack)))........(set-process-filt
b4940 65 72 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 20 27 65 er.emms-mpg321-remote-process.'e
b4960 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 66 69 6c 74 65 72 29 29 29 0a 0a 20 20 20 mms-mpg321-remote-filter))).....
b4980 57 65 20 6e 65 65 64 20 74 68 65 20 66 69 6c 74 65 72 2c 20 61 73 20 6d 70 67 33 32 31 2d 72 65 We.need.the.filter,.as.mpg321-re
b49a0 6d 6f 74 65 20 77 6f 6e 27 74 20 71 75 69 74 20 61 66 74 65 72 20 70 6c 61 79 69 6e 67 20 74 68 mote.won't.quit.after.playing.th
b49c0 65 0a 74 72 61 63 6b 20 61 73 20 74 68 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 20 64 6f 2e e.track.as.the.simple.player.do.
b49e0 20 20 57 65 20 77 61 69 74 20 75 6e 74 69 6c 20 74 68 65 20 70 72 6f 63 65 73 73 20 73 65 6e 64 ..We.wait.until.the.process.send
b4a00 73 20 74 68 65 0a 6f 75 74 70 75 74 20 22 28 61 74 2d 73 69 67 6e 29 50 20 30 22 20 28 74 68 65 s.the.output."(at-sign)P.0".(the
b4a20 20 73 69 67 6e 61 6c 20 6f 66 20 6d 70 67 33 32 31 20 74 68 61 74 20 74 68 65 20 73 6f 6e 67 20 .signal.of.mpg321.that.the.song.
b4a40 65 6e 64 65 64 29 20 74 6f 20 74 68 65 0a 66 69 6c 74 65 72 20 61 6e 64 20 63 61 6c 6c 20 65 6d ended).to.the.filter.and.call.em
b4a60 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 2e 0a 0a 20 20 20 20 20 28 64 65 ms-mpg321-remote-stop........(de
b4a80 66 75 6e 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 66 69 6c 74 65 72 20 28 70 fun.emms-mpg321-remote-filter.(p
b4aa0 72 6f 63 65 73 73 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 rocess.output)........(when.(str
b4ac0 69 6e 67 2d 6d 61 74 63 68 20 22 28 61 74 2d 73 69 67 6e 29 50 20 30 22 20 6f 75 74 70 75 74 29 ing-match."(at-sign)P.0".output)
b4ae0 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 ..........(emms-mpg321-remote-st
b4b00 6f 70 29 29 29 0a 0a 20 20 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 op))).....'emms-mpg321-remote-st
b4b20 6f 70 27 20 77 6f 6e 27 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 69 6e 74 65 72 65 73 74 69 6e op'.won't.do.anything.interestin
b4b40 67 2e 20 20 49 74 20 6a 75 73 74 0a 74 65 73 74 20 69 66 20 74 68 65 72 65 20 61 72 65 20 6f 74 g...It.just.test.if.there.are.ot
b4b60 68 65 72 20 66 69 6c 65 73 20 74 6f 20 70 6c 61 79 20 61 6e 64 20 63 6c 6f 73 65 20 74 68 65 20 her.files.to.play.and.close.the.
b4b80 70 72 6f 63 65 73 73 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 20 20 20 20 20 28 64 65 66 75 6e 20 process.otherwise........(defun.
b4ba0 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 20 28 29 0a 20 20 20 20 20 emms-mpg321-remote-stop.()......
b4bc0 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 20 20 ..(unless.emms-playlist.........
b4be0 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 22 6d 70 67 33 32 31 2d 72 65 .(process-send-string."mpg321-re
b4c00 6d 6f 74 65 2d 70 72 6f 63 65 73 73 22 20 22 51 5c 6e 22 29 29 0a 0a 20 20 20 41 6e 64 20 74 6f mote-process"."Q\n")).....And.to
b4c20 20 6d 61 6b 65 20 74 68 61 74 20 61 20 70 6c 61 79 61 62 6c 65 20 65 78 61 6d 70 6c 65 20 49 20 .make.that.a.playable.example.I.
b4c40 61 6c 73 6f 20 61 64 64 65 64 0a 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 also.added.'emms-mpg321-remote-p
b4c60 6c 61 79 61 62 6c 65 70 27 2c 20 77 68 69 63 68 20 49 20 72 65 61 6c 6c 79 20 6a 75 73 74 20 73 layablep',.which.I.really.just.s
b4c80 74 65 61 6c 20 66 72 6f 6d 0a 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c teal.from.'emms-player-simple.el
b4ca0 27 0a 0a 20 20 20 20 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 '.......(defun.emms-mpg321-remot
b4cc0 65 2d 70 6c 61 79 61 62 6c 65 70 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-playablep.(track).............
b4ce0 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 77 65 20 63 61 6e 20 70 6c 61 79 "Return.non-nil.when.we.can.play
b4d00 20 74 68 69 73 20 74 72 61 63 6b 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 .this.track.".............(and.(
b4d20 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 0a 20 20 20 4e 6f 77 emms-track-file-p.track).....Now
b4d40 20 77 65 20 68 61 76 65 20 61 20 72 65 61 64 79 20 70 6c 61 79 65 72 20 61 6e 64 20 77 65 20 63 .we.have.a.ready.player.and.we.c
b4d60 6f 75 6c 64 20 61 64 64 20 63 6f 6d 6d 61 6e 64 73 20 6c 69 6b 65 0a 27 65 6d 6d 73 2d 6d 70 67 ould.add.commands.like.'emms-mpg
b4d80 33 32 31 2d 72 65 6d 6f 74 65 2d 70 61 75 73 65 27 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e 0a 0a 321-remote-pause'.for.example...
b4da0 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 ..File:.doc7SuRxP.info,..Node:.T
b4dc0 68 65 20 42 72 6f 77 73 65 72 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 he.Browser,..Next:.The.Filter.Sy
b4de0 73 74 65 6d 2c 20 20 50 72 65 76 3a 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 2c 20 20 55 70 stem,..Prev:.Extending.Emms,..Up
b4e00 3a 20 54 6f 70 0a 0a 31 37 20 54 68 65 20 42 72 6f 77 73 65 72 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a :.Top..17.The.Browser.**********
b4e20 2a 2a 2a 2a 0a 0a 54 68 65 20 42 72 6f 77 73 65 72 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 ****..The.Browser.allows.you.to.
b4e40 62 72 6f 77 73 65 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 20 61 6e 64 20 61 64 browse.the.metadata.cache.and.ad
b4e60 64 20 74 72 61 63 6b 73 20 74 6f 0a 79 6f 75 72 20 70 6c 61 79 6c 69 73 74 2e 20 20 49 74 20 69 d.tracks.to.your.playlist...It.i
b4e80 6e 63 6c 75 64 65 73 20 61 20 70 6f 77 65 72 66 75 6c 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d ncludes.a.powerful.interactive.m
b4ea0 6f 64 65 2e 0a 0a 20 20 20 54 68 65 20 42 72 6f 77 73 65 72 20 69 73 20 64 65 66 69 6e 65 64 20 ode......The.Browser.is.defined.
b4ec0 69 6e 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 27 20 61 6e 64 20 69 73 20 69 6e 63 6c in.'emms-browser.el'.and.is.incl
b4ee0 75 64 65 64 20 69 6e 20 74 68 65 0a 27 65 6d 6d 73 2d 61 6c 6c 27 20 73 65 74 75 70 20 6c 65 76 uded.in.the.'emms-all'.setup.lev
b4f00 65 6c 2e 20 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 el...For.more.information.about.
b4f20 45 6d 6d 73 20 73 65 74 75 70 20 6c 65 76 65 6c 73 0a 73 65 65 20 2a 4e 6f 74 65 20 53 65 74 75 Emms.setup.levels.see.*Note.Setu
b4f40 70 3a 3a 2e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6d 61 6e 75 61 6c 6c 79 20 61 p::......You.can.also.manually.a
b4f60 64 64 20 74 68 65 20 42 72 6f 77 73 65 72 20 74 6f 20 79 6f 75 72 20 45 6d 6d 73 20 73 65 74 75 dd.the.Browser.to.your.Emms.setu
b4f80 70 20 62 79 20 6c 6f 61 64 69 6e 67 0a 69 74 20 65 78 70 6c 69 63 69 74 6c 79 20 77 69 74 68 3a p.by.loading.it.explicitly.with:
b4fa0 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 0a .......(require.'emms-browser)..
b4fc0 20 20 20 54 6f 20 62 65 20 70 72 6f 70 65 72 6c 79 20 75 73 65 66 75 6c 2c 20 79 6f 75 20 73 68 ...To.be.properly.useful,.you.sh
b4fe0 6f 75 6c 64 20 64 6f 20 4d 2d 78 20 27 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d ould.do.M-x.'emms-add-directory-
b5000 74 72 65 65 27 20 74 6f 0a 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 20 79 6f 75 20 6f 77 6e 20 61 tree'.to.all.the.files.you.own.a
b5020 74 20 6c 65 61 73 74 20 6f 6e 63 65 20 73 6f 20 74 68 61 74 20 74 68 65 20 63 61 63 68 65 20 69 t.least.once.so.that.the.cache.i
b5040 73 20 66 75 6c 6c 79 0a 70 6f 70 75 6c 61 74 65 64 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 42 s.fully.populated...*.Menu:..*.B
b5060 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 3a 3a 20 20 20 20 20 54 68 65 20 69 6e 74 65 72 rowser.Interface::.....The.inter
b5080 61 63 74 69 76 65 20 62 72 6f 77 73 65 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 2a 20 44 69 73 70 active.browser.interface..*.Disp
b50a0 6c 61 79 69 6e 67 20 43 6f 76 65 72 73 3a 3a 20 20 20 20 20 44 69 73 70 6c 61 79 69 6e 67 20 61 laying.Covers::.....Displaying.a
b50c0 6c 62 75 6d 20 63 6f 76 65 72 73 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 20 69 6e 74 65 72 lbum.covers.in.the.browser.inter
b50e0 66 61 63 65 2e 0a 2a 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b 73 3a 3a 20 20 20 20 20 20 20 20 face..*.Changing.Looks::........
b5100 43 68 61 6e 67 69 6e 67 20 74 68 65 20 74 72 65 65 20 73 74 72 75 63 74 75 72 65 2c 20 64 69 73 Changing.the.tree.structure,.dis
b5120 70 6c 61 79 20 66 6f 72 6d 61 74 20 61 6e 64 20 66 61 63 65 73 2e 0a 2a 20 46 69 6c 74 65 72 69 play.format.and.faces..*.Filteri
b5140 6e 67 20 54 72 61 63 6b 73 20 2d 20 64 65 70 72 65 63 61 74 65 64 3a 3a 20 20 44 69 73 70 6c 61 ng.Tracks.-.deprecated::..Displa
b5160 79 69 6e 67 20 61 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 74 72 61 63 6b 73 2e 0a 0a 1f 0a ying.a.subset.of.the.tracks.....
b5180 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 42 72 6f File:.doc7SuRxP.info,..Node:.Bro
b51a0 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2c 20 20 4e 65 78 74 3a 20 44 69 73 70 6c 61 79 69 6e wser.Interface,..Next:.Displayin
b51c0 67 20 43 6f 76 65 72 73 2c 20 20 55 70 3a 20 54 68 65 20 42 72 6f 77 73 65 72 0a 0a 31 37 2e 31 g.Covers,..Up:.The.Browser..17.1
b51e0 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .Browser.Interface.=============
b5200 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 62 72 6f 77 73 65 72 20 69 6e 74 65 72 66 61 63 65 =========..The.browser.interface
b5220 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 64 69 73 70 6c 61 79 20 61 6e 64 20 69 6e 74 65 72 .allows.you.to.display.and.inter
b5240 61 63 74 20 77 69 74 68 20 79 6f 75 72 0a 74 72 61 63 6b 73 20 69 6e 20 6d 61 6e 79 20 64 69 66 act.with.your.tracks.in.many.dif
b5260 66 65 72 65 6e 74 20 77 61 79 73 2e 20 20 54 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 ferent.ways...There.are.a.number
b5280 20 6f 66 20 77 61 79 73 20 74 6f 20 73 74 61 72 74 20 74 68 65 0a 62 72 6f 77 73 65 72 2e 0a 0a .of.ways.to.start.the.browser...
b52a0 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 65 0a .--.Function:.emms-smart-browse.
b52c0 20 20 20 20 20 44 69 73 70 6c 61 79 20 62 72 6f 77 73 65 72 20 61 6e 64 20 70 6c 61 79 6c 69 73 .....Display.browser.and.playlis
b52e0 74 2e 20 20 54 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 20 73 65 6c 65 63 74 69 6e 67 20 62 72 6f t...Toggle.between.selecting.bro
b5300 77 73 65 72 2c 0a 20 20 20 20 20 70 6c 61 79 6c 69 73 74 20 6f 72 20 68 69 64 69 6e 67 20 62 6f wser,......playlist.or.hiding.bo
b5320 74 68 2e 20 20 54 72 69 65 73 20 74 6f 20 62 65 68 61 76 65 20 73 61 6e 65 6c 79 20 69 66 20 74 th...Tries.to.behave.sanely.if.t
b5340 68 65 20 75 73 65 72 20 68 61 73 0a 20 20 20 20 20 6d 61 6e 75 61 6c 6c 79 20 63 68 61 6e 67 65 he.user.has......manually.change
b5360 64 20 74 68 65 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 0a 0a 20 2d 2d d.the.window.configuration....--
b5380 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 72 74 69 73 74 .Function:.emms-browse-by-artist
b53a0 0a 20 20 20 20 20 44 69 73 70 6c 61 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 ......Display.the.browser.and.or
b53c0 64 65 72 20 74 68 65 20 74 72 61 63 6b 73 20 62 79 20 61 72 74 69 73 74 2e 0a 0a 20 2d 2d 20 46 der.the.tracks.by.artist....--.F
b53e0 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 6c 62 75 6d 0a 20 20 unction:.emms-browse-by-album...
b5400 20 20 20 44 69 73 70 6c 61 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 64 65 72 ...Display.the.browser.and.order
b5420 20 74 68 65 20 74 72 61 63 6b 73 20 62 79 20 61 6c 62 75 6d 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 .the.tracks.by.album....--.Funct
b5440 69 6f 6e 3a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 67 65 6e 72 65 0a 20 20 20 20 20 44 ion:.emms-browse-by-genre......D
b5460 69 73 70 6c 61 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 64 65 72 20 74 68 65 isplay.the.browser.and.order.the
b5480 20 74 72 61 63 6b 73 20 62 79 20 67 65 6e 72 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a .tracks.by.genre....--.Function:
b54a0 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 79 65 61 72 0a 20 20 20 20 20 44 69 73 70 6c 61 .emms-browse-by-year......Displa
b54c0 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 64 65 72 20 74 68 65 20 74 72 61 63 y.the.browser.and.order.the.trac
b54e0 6b 73 20 62 79 20 79 65 61 72 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d ks.by.year....--.Function:.emms-
b5500 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 65 61 72 63 68 65 73 0a 20 20 20 20 20 53 68 6f 77 20 browser-show-searches......Show.
b5520 53 65 61 72 63 68 20 63 72 75 6d 62 73 20 6f 66 20 74 68 65 20 61 63 74 69 76 65 20 73 65 61 72 Search.crumbs.of.the.active.sear
b5540 63 68 65 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 ches....--.Function:.emms-browse
b5560 72 2d 72 65 6e 64 65 72 2d 6c 61 73 74 2d 73 65 61 72 63 68 0a 20 20 20 20 20 52 65 6e 64 65 72 r-render-last-search......Render
b5580 20 74 68 65 20 72 65 73 75 6c 74 73 20 66 6f 72 20 74 68 65 20 6c 61 73 74 20 73 65 61 72 63 68 .the.results.for.the.last.search
b55a0 20 77 69 74 68 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 6e 67 73 2e 0a 0a 20 20 20 4f 6e 63 65 .with.current.settings......Once
b55c0 20 74 68 65 20 42 72 6f 77 73 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 79 6f 75 20 63 61 .the.Browser.is.displayed.you.ca
b55e0 6e 20 75 73 65 20 69 74 20 74 6f 20 6d 61 6e 61 67 65 64 20 79 6f 75 72 20 74 72 61 63 6b 0a 63 n.use.it.to.managed.your.track.c
b5600 6f 6c 6c 65 63 74 69 6f 6e 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 73 2e 20 20 54 68 65 20 42 72 ollection.and.playlists...The.Br
b5620 6f 77 73 65 72 20 69 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 61 6e 64 20 68 61 73 20 69 74 73 owser.is.interactive.and.has.its
b5640 20 6f 77 6e 0a 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 0a 27 43 2d 6a 27 0a 20 20 20 20 20 41 64 .own.keybindings...'C-j'......Ad
b5660 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 61 74 20 70 6f 69 6e 74 2c 20 61 6e 64 20 70 6c 61 79 20 d.all.tracks.at.point,.and.play.
b5680 74 68 65 20 66 69 72 73 74 20 61 64 64 65 64 20 74 72 61 63 6b 2e 0a 0a 27 52 45 54 27 0a 20 20 the.first.added.track...'RET'...
b56a0 20 20 20 41 64 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 27 53 50 ...Add.all.tracks.at.point...'SP
b56c0 43 27 0a 20 20 20 20 20 53 68 6f 77 20 6f 72 20 68 69 64 65 20 28 6b 69 6c 6c 29 20 73 75 62 69 C'......Show.or.hide.(kill).subi
b56e0 74 65 6d 73 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 0a 0a 27 31 tems.under.the.current.line...'1
b5700 27 0a 20 20 20 20 20 43 6f 6c 6c 61 70 73 65 20 65 76 65 72 79 74 68 69 6e 67 2e 0a 0a 27 32 27 '......Collapse.everything...'2'
b5720 0a 20 20 20 20 20 45 78 70 61 6e 64 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 74 65 6d 73 ......Expand.all.top.level.items
b5740 20 6f 6e 65 20 6c 65 76 65 6c 2e 0a 0a 27 33 27 0a 20 20 20 20 20 45 78 70 61 6e 64 20 61 6c 6c .one.level...'3'......Expand.all
b5760 20 74 6f 70 20 6c 65 76 65 6c 20 69 74 65 6d 73 20 74 77 6f 20 6c 65 76 65 6c 73 2e 0a 0a 27 34 .top.level.items.two.levels...'4
b5780 27 0a 20 20 20 20 20 45 78 70 61 6e 64 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 74 65 6d '......Expand.all.top.level.item
b57a0 73 20 74 68 72 65 65 20 6c 65 76 65 6c 73 2e 0a 0a 27 43 27 0a 20 20 20 20 20 43 6c 65 61 72 20 s.three.levels...'C'......Clear.
b57c0 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 27 45 27 0a 20 20 20 20 20 45 78 70 61 6e 64 20 65 the.playlist...'E'......Expand.e
b57e0 76 65 72 79 74 68 69 6e 67 2e 0a 0a 27 64 27 0a 20 20 20 20 20 56 69 65 77 20 74 68 65 20 63 75 verything...'d'......View.the.cu
b5800 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 64 69 72 65 64 2e 0a 0a 27 71 27 0a 20 rrent.directory.in.dired...'q'..
b5820 20 20 20 20 42 75 72 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 62 75 66 66 65 72 2e 0a 0a 27 72 ....Bury.the.browser.buffer...'r
b5840 27 0a 20 20 20 20 20 4a 75 6d 70 20 74 6f 20 61 20 72 61 6e 64 6f 6d 20 74 72 61 63 6b 2e 0a 0a '......Jump.to.a.random.track...
b5860 27 2f 27 0a 20 20 20 20 20 49 73 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 62 75 66 '/'......Isearch.through.the.buf
b5880 66 65 72 2e 0a 0a 27 3c 27 0a 20 20 20 20 20 52 65 64 69 73 70 6c 61 79 20 77 69 74 68 20 74 68 fer...'<'......Redisplay.with.th
b58a0 65 20 70 72 65 76 69 6f 75 73 20 66 69 6c 74 65 72 2e 0a 0a 27 3e 27 0a 20 20 20 20 20 52 65 64 e.previous.filter...'>'......Red
b58c0 69 73 70 6c 61 79 20 77 69 74 68 20 74 68 65 20 6e 65 78 74 20 66 69 6c 74 65 72 2e 0a 0a 27 3f isplay.with.the.next.filter...'?
b58e0 27 0a 20 20 20 20 20 53 65 65 20 74 68 65 20 45 6d 61 63 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 '......See.the.Emacs.documentati
b5900 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 27 43 2d 2f 27 0a 20 20 20 20 on.for.the.function...'C-/'.....
b5920 20 55 6e 64 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 6c 61 79 6c 69 73 74 20 61 63 74 69 .Undo.the.previous.playlist.acti
b5940 6f 6e 2e 0a 0a 27 3c 43 2d 72 65 74 75 72 6e 3e 27 0a 20 20 20 20 20 41 64 64 20 61 6c 6c 20 74 on...'<C-return>'......Add.all.t
b5960 72 61 63 6b 73 20 61 74 20 70 6f 69 6e 74 2c 20 61 6e 64 20 70 6c 61 79 20 74 68 65 20 66 69 72 racks.at.point,.and.play.the.fir
b5980 73 74 20 61 64 64 65 64 20 74 72 61 63 6b 2e 0a 0a 27 3c 62 61 63 6b 74 61 62 3e 27 0a 20 20 20 st.added.track...'<backtab>'....
b59a0 20 20 4a 75 6d 70 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6e 6f 6e 2d 74 72 61 63 6b ..Jump.to.the.previous.non-track
b59c0 20 65 6c 65 6d 65 6e 74 2e 0a 0a 27 3c 74 61 62 3e 27 0a 20 20 20 20 20 4a 75 6d 70 20 74 6f 20 .element...'<tab>'......Jump.to.
b59e0 74 68 65 20 6e 65 78 74 20 6e 6f 6e 2d 74 72 61 63 6b 20 65 6c 65 6d 65 6e 74 2e 0a 0a 27 73 20 the.next.non-track.element...'s.
b5a00 41 27 0a 20 20 20 20 20 53 65 61 72 63 68 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 A'......Search.the.collection.by
b5a20 20 61 6c 62 75 6d 2e 0a 0a 27 73 20 6f 27 0a 20 20 20 20 20 53 65 61 72 63 68 20 74 68 65 20 63 .album...'s.o'......Search.the.c
b5a40 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 72 74 69 73 74 2e 0a 0a 27 73 20 61 27 0a 20 20 20 20 ollection.by.artist...'s.a'.....
b5a60 20 53 65 61 72 63 68 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 72 74 69 73 74 .Search.the.collection.by.artist
b5a80 2e 0a 0a 27 73 20 73 27 0a 20 20 20 20 20 53 65 61 72 63 68 20 74 68 65 20 63 6f 6c 6c 65 63 74 ...'s.s'......Search.the.collect
b5aa0 69 6f 6e 20 62 79 20 6e 61 6d 65 73 2e 0a 0a 27 73 20 74 27 0a 20 20 20 20 20 53 65 61 72 63 68 ion.by.names...'s.t'......Search
b5ac0 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 74 69 74 6c 65 2e 0a 0a 27 73 20 68 27 .the.collection.by.title...'s.h'
b5ae0 0a 20 20 20 20 20 53 68 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 61 63 74 69 76 65 20 ......Show.the.currently.active.
b5b00 73 65 61 72 63 68 65 73 20 69 6e 20 74 68 65 20 73 65 61 72 63 68 20 63 61 63 68 65 2e 0a 0a 27 searches.in.the.search.cache...'
b5b20 62 20 31 27 0a 20 20 20 20 20 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 b.1'......Browse.the.collection.
b5b40 62 79 20 61 72 74 69 73 74 2e 0a 0a 27 62 20 32 27 0a 20 20 20 20 20 42 72 6f 77 73 65 20 74 68 by.artist...'b.2'......Browse.th
b5b60 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 6c 62 75 6d 2e 0a 0a 27 62 20 33 27 0a 20 20 e.collection.by.album...'b.3'...
b5b80 20 20 20 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 67 65 6e 72 ...Browse.the.collection.by.genr
b5ba0 65 2e 0a 0a 27 62 20 34 27 0a 20 20 20 20 20 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 e...'b.4'......Browse.the.collec
b5bc0 74 69 6f 6e 20 62 79 20 79 65 61 72 2e 0a 0a 27 62 20 35 27 0a 20 20 20 20 20 42 72 6f 77 73 65 tion.by.year...'b.5'......Browse
b5be0 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 63 6f 6d 70 6f 73 65 72 2e 0a 0a 27 62 .the.collection.by.composer...'b
b5c00 20 36 27 0a 20 20 20 20 20 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 .6'......Browse.the.collection.b
b5c20 79 20 70 65 72 66 6f 72 6d 65 72 2e 0a 0a 27 62 20 37 27 0a 20 20 20 20 20 42 72 6f 77 73 65 20 y.performer...'b.7'......Browse.
b5c40 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 6c 62 75 6d 61 72 74 69 73 74 2e 0a 0a the.collection.by.albumartist...
b5c60 27 57 20 61 20 70 27 0a 20 20 20 20 20 4c 6f 6f 6b 75 70 20 74 68 65 20 61 6c 62 75 6d 20 75 73 'W.a.p'......Lookup.the.album.us
b5c80 69 6e 67 20 50 69 74 63 68 66 6f 72 6b 2e 0a 0a 27 57 20 6f 20 77 27 0a 20 20 20 20 20 4c 6f 6f ing.Pitchfork...'W.o.w'......Loo
b5ca0 6b 75 70 20 74 68 65 20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 75 73 69 6e 67 20 57 69 6b 69 70 kup.the.album.artist.using.Wikip
b5cc0 65 64 69 61 2e 0a 0a 27 57 20 41 20 77 27 0a 20 20 20 20 20 4c 6f 6f 6b 75 70 20 74 68 65 20 61 edia...'W.A.w'......Lookup.the.a
b5ce0 72 74 69 73 74 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 27 57 20 63 20 77 27 0a rtist.using.Wikipedia...'W.c.w'.
b5d00 20 20 20 20 20 4c 6f 6f 6b 75 70 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 75 73 69 6e 67 20 57 .....Lookup.the.composer.using.W
b5d20 69 6b 69 70 65 64 69 61 2e 0a 0a 27 57 20 70 20 77 27 0a 20 20 20 20 20 4c 6f 6f 6b 75 70 20 74 ikipedia...'W.p.w'......Lookup.t
b5d40 68 65 20 70 65 72 66 6f 72 6d 65 72 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 27 he.performer.using.Wikipedia...'
b5d60 57 20 61 20 77 27 0a 20 20 20 20 20 4c 6f 6f 6b 75 70 20 74 68 65 20 61 6c 62 75 6d 20 75 73 69 W.a.w'......Lookup.the.album.usi
b5d80 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 27 2b 27 0a 20 20 20 20 20 52 61 69 73 65 20 74 68 ng.Wikipedia...'+'......Raise.th
b5da0 65 20 76 6f 6c 75 6d 65 0a 0a 27 2d 27 0a 20 20 20 20 20 4c 6f 77 65 72 20 74 68 65 20 76 6f 6c e.volume..'-'......Lower.the.vol
b5dc0 75 6d 65 0a 0a 27 69 20 73 27 0a 20 20 20 20 20 50 72 69 6e 74 20 77 68 61 74 20 69 73 20 6b 6e ume..'i.s'......Print.what.is.kn
b5de0 6f 77 6e 20 61 62 6f 75 74 20 74 68 65 20 66 69 6c 74 65 72 73 20 61 6e 64 20 63 61 63 68 65 0a own.about.the.filters.and.cache.
b5e00 0a 27 69 20 63 27 0a 20 20 20 20 20 53 68 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 61 .'i.c'......Show.the.current.sea
b5e20 72 63 68 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 69 20 53 27 0a 20 20 20 20 20 53 68 6f rch.cache.stack...'i.S'......Sho
b5e40 77 20 74 68 65 20 63 61 63 68 65 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 73 74 61 73 68 2e 0a w.the.cache.names.in.the.stash..
b5e60 0a 27 69 20 66 27 0a 20 20 20 20 20 53 68 6f 77 20 74 68 65 20 66 69 6c 74 65 72 73 20 74 68 65 .'i.f'......Show.the.filters.the
b5e80 72 65 20 61 72 65 2e 0a 0a 27 69 20 6d 27 0a 20 20 20 20 20 53 68 6f 77 20 74 68 65 20 6d 65 6e re.are...'i.m'......Show.the.men
b5ea0 75 20 74 72 65 65 20 6f 66 20 66 69 6c 74 65 72 73 20 61 73 20 61 20 6d 65 6e 75 2e 0a 0a 27 69 u.tree.of.filters.as.a.menu...'i
b5ec0 20 46 27 0a 20 20 20 20 20 53 68 6f 77 20 74 68 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 .F'......Show.the.filter.factori
b5ee0 65 73 20 77 65 20 68 61 76 65 2e 0a 0a 27 69 20 72 27 0a 20 20 20 20 20 53 68 6f 77 20 74 68 65 es.we.have...'i.r'......Show.the
b5f00 20 66 69 6c 74 65 72 73 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 27 66 .filters.in.the.filter.ring...'f
b5f20 20 71 27 0a 20 20 20 20 20 50 6f 70 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 72 65 .q'......Pop.the.filter.stack.re
b5f40 74 75 72 6e 69 6e 67 20 74 6f 20 6c 61 73 74 20 66 69 6c 74 65 72 2e 0a 0a 27 66 20 72 27 0a 20 turning.to.last.filter...'f.r'..
b5f60 20 20 20 20 52 65 76 65 72 73 65 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 65 6e 74 72 69 65 73 ....Reverse.the.last.two.entries
b5f80 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 0a 0a 27 66 20 52 27 0a 20 20 20 .in.the.filter.stack...'f.R'....
b5fa0 20 20 52 65 76 65 72 73 65 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 65 6e 74 72 69 65 73 20 69 ..Reverse.the.last.two.entries.i
b5fc0 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2c 20 61 6e 64 20 70 6f 70 20 74 68 65 20 n.the.filter.stack,.and.pop.the.
b5fe0 74 6f 70 0a 20 20 20 20 20 6f 6e 65 2e 0a 0a 27 66 20 53 27 0a 20 20 20 20 20 53 71 75 61 73 68 top......one...'f.S'......Squash
b6000 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2c 20 6b 65 65 70 20 74 68 65 20 74 6f 70 20 .the.filter.stack,.keep.the.top.
b6020 65 6e 74 72 79 2e 0a 0a 27 66 20 6b 27 0a 20 20 20 20 20 52 65 67 69 73 74 65 72 20 74 68 65 20 entry...'f.k'......Register.the.
b6040 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 69 6e 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 20 current.filter.into.the.list.of.
b6060 66 69 6c 74 65 72 73 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 73 65 73 73 69 6f 6e 2e 20 20 49 filters.for.the......session...I
b6080 66 20 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 4d 55 4c 54 49 2d 46 49 4c 54 45 52 2d 53 41 56 45 f.EMMS-FILTERS-MULTI-FILTER-SAVE
b60a0 2d 46 49 4c 45 20 69 73 20 73 65 74 2c 20 61 70 70 65 6e 64 20 74 68 65 0a 20 20 20 20 20 66 69 -FILE.is.set,.append.the......fi
b60c0 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 20 74 68 65 72 65 2e 0a 0a 27 66 20 68 27 0a 20 20 lter.definition.there...'f.h'...
b60e0 20 20 20 42 75 69 6c 64 20 61 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e ...Build.a.cache.from.the.curren
b6100 74 20 66 69 6c 74 65 72 20 61 6e 64 20 70 75 73 68 20 69 74 20 74 6f 20 74 68 65 20 63 61 63 68 t.filter.and.push.it.to.the.cach
b6120 65 0a 20 20 20 20 20 73 74 61 63 6b 2e 0a 0a 27 66 20 63 27 0a 20 20 20 20 20 43 6c 65 61 72 20 e......stack...'f.c'......Clear.
b6140 74 68 65 20 6d 65 74 61 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 61 6e 64 20 74 68 65 20 63 75 the.meta.filter.stack.and.the.cu
b6160 72 72 65 6e 74 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 27 3e 27 0a 20 20 20 20 rrent.filter.function...'>'.....
b6180 20 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 66 69 6c 74 65 72 20 69 6e 20 74 68 65 20 .Move.to.the.next.filter.in.the.
b61a0 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 27 3c 27 0a 20 20 20 20 20 4d 6f 76 65 20 74 6f 20 74 filter.ring...'<'......Move.to.t
b61c0 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 6c 74 65 72 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 he.previous.filter.in.the.filter
b61e0 20 72 69 6e 67 2e 0a 0a 27 66 20 21 27 0a 20 20 20 20 20 53 65 74 20 74 68 65 20 72 69 6e 67 20 .ring...'f.!'......Set.the.ring.
b6200 66 69 6c 74 65 72 20 74 6f 20 6e 6f 20 66 69 6c 74 65 72 2e 0a 0a 27 66 20 70 27 0a 20 20 20 20 filter.to.no.filter...'f.p'.....
b6220 20 50 75 73 68 20 61 20 66 69 6c 74 65 72 20 74 6f 20 74 68 65 20 6d 65 74 61 2d 66 69 6c 74 65 .Push.a.filter.to.the.meta-filte
b6240 72 20 73 74 61 63 6b 2e 0a 0a 27 66 20 73 27 0a 20 20 20 20 20 43 6c 65 61 72 20 74 68 65 20 73 r.stack...'f.s'......Clear.the.s
b6260 74 61 63 6b 20 61 6e 64 20 73 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 70 75 73 68 tack.and.select.a.filter.to.push
b6280 20 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 27 66 20 6f 27 0a 20 20 20 20 20 41 64 64 20 61 .to.the.stack...'f.o'......Add.a
b62a0 20 66 69 6c 74 65 72 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 2f 6c 61 73 74 20 66 69 6c 74 .filter.to.the.current/last.filt
b62c0 65 72 20 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 2e 0a 20 er.list.in.the.current.filter...
b62e0 20 20 20 20 43 72 65 61 74 65 73 20 61 6e 20 4f 52 2e 0a 0a 27 66 20 61 27 0a 20 20 20 20 20 53 ....Creates.an.OR...'f.a'......S
b6300 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 73 74 61 72 74 20 61 20 6e 65 77 20 6c 69 elect.a.filter.to.start.a.new.li
b6320 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2c 20 63 72 65 61 74 65 73 20 61 6e 20 41 4e 44 2e 0a 0a st.of.filters,.creates.an.AND...
b6340 27 66 20 6e 27 0a 20 20 20 20 20 53 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 73 74 'f.n'......Select.a.filter.to.st
b6360 61 72 74 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2c 20 63 72 65 61 74 art.a.new.list.of.filters,.creat
b6380 65 73 20 61 6e 20 41 4e 44 2d 4e 4f 54 0a 20 20 20 20 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 es.an.AND-NOT......list.of.filte
b63a0 72 73 2e 0a 0a 27 63 20 43 27 0a 20 20 20 20 20 52 65 73 65 74 20 74 68 65 20 63 61 63 68 65 20 rs...'c.C'......Reset.the.cache.
b63c0 73 74 61 63 6b 2c 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 61 6e 64 20 74 68 65 20 stack,.the.filter.stack.and.the.
b63e0 66 69 6c 74 65 72 2d 72 69 6e 67 2e 0a 0a 27 63 20 70 27 0a 20 20 20 20 20 43 61 63 68 65 2f 53 filter-ring...'c.p'......Cache/S
b6400 74 6f 72 65 20 61 20 66 69 6c 74 65 72 20 61 6e 64 20 63 61 63 68 65 20 74 6f 20 74 68 65 20 73 tore.a.filter.and.cache.to.the.s
b6420 74 61 63 6b 2e 0a 0a 27 63 20 7a 27 0a 20 20 20 20 20 53 74 61 73 68 20 74 68 65 20 63 75 72 72 tack...'c.z'......Stash.the.curr
b6440 65 6e 74 20 63 61 63 68 65 20 66 6f 72 20 6c 61 74 65 72 2c 20 70 6f 70 20 69 74 20 66 72 6f 6d ent.cache.for.later,.pop.it.from
b6460 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 27 63 20 5a 27 0a 20 20 20 20 20 53 74 61 73 68 20 74 68 .the.stack...'c.Z'......Stash.th
b6480 65 20 63 75 72 72 65 6e 74 20 63 61 63 68 65 20 66 6f 72 20 6c 61 74 65 72 2e 0a 0a 27 63 20 50 e.current.cache.for.later...'c.P
b64a0 27 0a 20 20 20 20 20 50 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 61 63 68 65 20 66 72 6f '......Pop.the.current.cache.fro
b64c0 6d 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 27 63 20 68 27 0a 20 20 20 20 20 43 72 65 61 74 65 20 m.the.stack...'c.h'......Create.
b64e0 61 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 a.cache.from.the.current.filter.
b6500 61 6e 64 20 70 75 73 68 20 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 27 63 20 72 27 0a 20 20 and.push.to.the.stack...'c.r'...
b6520 20 20 20 53 77 61 70 20 74 68 65 20 74 6f 70 20 74 77 6f 20 63 61 63 68 65 73 20 6f 6e 20 74 68 ...Swap.the.top.two.caches.on.th
b6540 65 20 73 74 61 63 6b 2e 0a 0a 27 63 20 71 27 0a 20 20 20 20 20 50 6f 70 20 74 68 65 20 74 6f 70 e.stack...'c.q'......Pop.the.top
b6560 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 27 63 20 52 27 0a 20 20 .cache.from.the.stack...'c.R'...
b6580 20 20 20 53 77 61 70 20 74 68 65 20 74 6f 70 20 74 77 6f 20 63 61 63 68 65 73 20 6f 6e 20 74 68 ...Swap.the.top.two.caches.on.th
b65a0 65 20 73 74 61 63 6b 2c 20 74 68 65 6e 20 70 6f 70 20 74 68 65 20 74 6f 70 20 6f 6e 65 2e 0a 0a e.stack,.then.pop.the.top.one...
b65c0 27 63 20 53 27 0a 20 20 20 20 20 53 71 75 61 73 68 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 'c.S'......Squash.the.cache.stac
b65e0 6b 2c 20 6b 65 65 70 20 74 68 65 20 74 6f 70 20 65 6e 74 72 79 2e 0a 0a 27 63 20 63 27 0a 20 20 k,.keep.the.top.entry...'c.c'...
b6600 20 20 20 43 6c 65 61 72 20 61 6c 6c 20 74 68 65 20 63 61 63 68 65 73 20 64 6f 77 6e 20 74 6f 20 ...Clear.all.the.caches.down.to.
b6620 74 68 65 20 6d 61 69 6e 20 63 61 63 68 65 2e 0a 0a 27 73 20 6f 27 0a 20 20 20 20 20 41 20 66 69 the.main.cache...'s.o'......A.fi
b6640 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 elds.search,.quick.one-shot.for.
b6660 41 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 0a 20 20 Album.artist,.push.results.to...
b6680 20 20 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 61 27 0a 20 20 20 20 20 ...the.cache.stack...'s.a'......
b66a0 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 A.fields.search,.quick.one-shot.
b66c0 66 6f 72 20 41 72 74 69 73 74 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 0a for.Artist,.push.results.to.the.
b66e0 20 20 20 20 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 63 27 0a 20 20 20 20 20 41 20 .....cache.stack...'s.c'......A.
b6700 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f fields.search,.quick.one-shot.fo
b6720 72 20 43 6f 6d 70 6f 73 65 72 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 0a r.Composer,.push.results.to.the.
b6740 20 20 20 20 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 70 27 0a 20 20 20 20 20 41 20 .....cache.stack...'s.p'......A.
b6760 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f fields.search,.quick.one-shot.fo
b6780 72 20 50 65 72 6d 66 6f 72 6d 65 72 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 r.Permformer,.push.results.to.th
b67a0 65 0a 20 20 20 20 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 41 27 0a 20 20 20 20 20 e......cache.stack...'s.A'......
b67c0 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 A.fields.search,.quick.one-shot.
b67e0 66 6f 72 20 41 6c 62 75 6d 20 74 69 74 6c 65 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f for.Album.title,.push.results.to
b6800 0a 20 20 20 20 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 74 27 0a 20 20 ......the.cache.stack...'s.t'...
b6820 20 20 20 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 ...A.fields.search,.quick.one-sh
b6840 6f 74 20 66 6f 72 20 53 6f 6e 67 20 74 69 74 6c 65 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 ot.for.Song.title,.push.results.
b6860 74 6f 20 74 68 65 0a 20 20 20 20 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 54 27 0a to.the......cache.stack...'s.T'.
b6880 20 20 20 20 20 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d .....A.fields.search,.quick.one-
b68a0 73 68 6f 74 20 66 6f 72 20 41 6c 62 75 6d 20 61 6e 64 20 73 6f 6e 67 20 74 69 74 6c 65 73 2c 20 shot.for.Album.and.song.titles,.
b68c0 70 75 73 68 0a 20 20 20 20 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 push......results.to.the.cache.s
b68e0 74 61 63 6b 2e 0a 0a 27 73 20 6e 27 0a 20 20 20 20 20 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 tack...'s.n'......A.fields.searc
b6900 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 61 6c 6c 20 6e 61 6d 65 73 2c h,.quick.one-shot.for.all.names,
b6920 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 0a 20 20 20 20 20 63 61 63 68 65 20 .push.results.to.the......cache.
b6940 73 74 61 63 6b 2e 0a 0a 27 73 20 73 27 0a 20 20 20 20 20 41 20 66 69 65 6c 64 73 20 73 65 61 72 stack...'s.s'......A.fields.sear
b6960 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 61 6c 6c 20 6e 61 6d 65 73 ch,.quick.one-shot.for.all.names
b6980 20 61 6e 64 20 74 69 74 6c 65 73 2c 20 70 75 73 68 0a 20 20 20 20 20 72 65 73 75 6c 74 73 20 74 .and.titles,.push......results.t
b69a0 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 27 73 20 65 27 0a 20 20 20 20 20 41 o.the.cache.stack...'s.e'......A
b69c0 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 69 .fields.search,.quick.one-shot.i
b69e0 6e 20 61 6c 6c 20 74 65 78 74 20 66 69 65 6c 64 73 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 n.all.text.fields,.push.results.
b6a00 74 6f 0a 20 20 20 20 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 1f 0a 46 69 6c 65 to......the.cache.stack.....File
b6a20 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 69 73 70 6c 61 79 :.doc7SuRxP.info,..Node:.Display
b6a40 69 6e 67 20 43 6f 76 65 72 73 2c 20 20 4e 65 78 74 3a 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b ing.Covers,..Next:.Changing.Look
b6a60 73 2c 20 20 50 72 65 76 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2c 20 20 55 70 s,..Prev:.Browser.Interface,..Up
b6a80 3a 20 54 68 65 20 42 72 6f 77 73 65 72 0a 0a 31 37 2e 32 20 44 69 73 70 6c 61 79 69 6e 67 20 43 :.The.Browser..17.2.Displaying.C
b6aa0 6f 76 65 72 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 overs.======================..Th
b6ac0 65 20 62 72 6f 77 73 65 72 20 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f 20 64 69 73 70 6c 61 e.browser.will.attempt.to.displa
b6ae0 79 20 63 6f 76 65 72 20 69 6d 61 67 65 73 20 69 66 20 74 68 65 79 27 72 65 20 61 76 61 69 6c 61 y.cover.images.if.they're.availa
b6b00 62 6c 65 2e 0a 0a 20 20 20 43 75 73 74 6f 6d 69 7a 65 20 45 4d 4d 53 2d 42 52 4f 57 53 45 52 2d ble......Customize.EMMS-BROWSER-
b6b20 43 4f 56 45 52 53 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 68 6f 77 20 45 4d 4d 53 20 73 68 6f COVERS.to.configure.how.EMMS.sho
b6b40 75 6c 64 20 72 65 74 72 69 65 76 65 0a 74 68 65 20 63 6f 76 65 72 73 2e 0a 0a 20 20 20 42 79 20 uld.retrieve.the.covers......By.
b6b60 64 65 66 61 75 6c 74 20 69 74 20 6c 6f 6f 6b 73 20 66 6f 72 20 69 6d 61 67 65 73 20 27 63 6f 76 default.it.looks.for.images.'cov
b6b80 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 27 2c 20 27 63 6f 76 65 72 5f 6d 65 64 2e 6a 70 67 27 2c 0a er_small.jpg',.'cover_med.jpg',.
b6ba0 65 74 63 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 27 6c 6c 20 70 72 6f 62 61 62 6c 79 20 etc...Note.that.you'll.probably.
b6bc0 77 61 6e 74 20 74 6f 20 72 65 73 69 7a 65 20 79 6f 75 72 20 65 78 69 73 74 69 6e 67 20 63 6f 76 want.to.resize.your.existing.cov
b6be0 65 72 73 20 74 6f 0a 70 61 72 74 69 63 75 6c 61 72 20 73 69 7a 65 73 2e 20 20 53 75 67 67 65 73 ers.to.particular.sizes...Sugges
b6c00 74 65 64 20 73 69 7a 65 73 20 61 72 65 20 31 30 30 78 31 30 30 20 66 6f 72 20 73 6d 61 6c 6c 2c ted.sizes.are.100x100.for.small,
b6c20 20 61 6e 64 20 32 30 30 78 32 30 30 0a 66 6f 72 20 6d 65 64 69 75 6d 2e 0a 0a 20 20 20 54 68 65 .and.200x200.for.medium......The
b6c40 20 61 62 6f 76 65 20 62 65 68 61 76 69 6f 75 72 20 64 65 6d 61 6e 64 73 20 6d 61 6e 75 61 6c 20 .above.behaviour.demands.manual.
b6c60 70 72 6f 63 65 73 73 69 6e 67 20 6f 6e 20 62 65 68 61 6c 66 20 6f 66 20 74 68 65 20 75 73 65 72 processing.on.behalf.of.the.user
b6c80 2e 0a 49 6e 73 74 65 61 64 2c 20 79 6f 75 20 6d 69 67 68 74 20 70 72 65 66 65 72 20 74 6f 20 61 ..Instead,.you.might.prefer.to.a
b6ca0 75 74 6f 6d 61 74 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 62 79 20 73 65 74 74 69 6e 67 0a 45 utomate.the.process.by.setting.E
b6cc0 4d 4d 53 2d 42 52 4f 57 53 45 52 2d 43 4f 56 45 52 53 20 74 6f 20 27 65 6d 6d 73 2d 62 72 6f 77 MMS-BROWSER-COVERS.to.'emms-brow
b6ce0 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 27 3a 20 63 6f 76 65 72 73 20 6d 61 74 ser-cache-thumbnail':.covers.mat
b6d00 63 68 69 6e 67 0a 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 ching.'emms-browser-thumbnail-fi
b6d20 6c 74 65 72 27 20 77 69 6c 6c 20 62 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 73 69 lter'.will.be.automatically.resi
b6d40 7a 65 64 20 69 66 0a 6e 65 63 65 73 73 61 72 79 20 61 6e 64 20 63 61 63 68 65 64 20 74 6f 20 45 zed.if.necessary.and.cached.to.E
b6d60 4d 4d 53 2d 42 52 4f 57 53 45 52 2d 54 48 55 4d 42 4e 41 49 4c 2d 44 49 52 45 43 54 4f 52 59 2e MMS-BROWSER-THUMBNAIL-DIRECTORY.
b6d80 20 20 54 68 65 20 63 61 63 68 65 0a 67 65 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 ..The.cache.gets.automatically.u
b6da0 70 64 61 74 65 64 20 75 70 6f 6e 20 63 68 61 6e 67 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 pdated.upon.change.in.the.source
b6dc0 20 66 6f 6c 64 65 72 2e 0a 0a 20 20 20 43 75 73 74 6f 6d 69 7a 65 20 45 4d 4d 53 2d 42 52 4f 57 .folder......Customize.EMMS-BROW
b6de0 53 45 52 2d 43 4f 56 45 52 53 2d 46 49 4c 45 2d 45 58 54 45 4e 53 49 4f 4e 53 20 74 6f 20 69 6e SER-COVERS-FILE-EXTENSIONS.to.in
b6e00 63 6c 75 64 65 20 6f 72 20 65 78 63 6c 75 64 65 0a 73 70 65 63 69 66 69 63 20 65 78 74 65 6e 73 clude.or.exclude.specific.extens
b6e20 69 6f 6e 73 2e 0a 0a 20 20 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 ions......'emms-browser-cache-th
b6e40 75 6d 62 6e 61 69 6c 27 20 6d 69 67 68 74 20 62 65 20 65 76 65 72 79 74 69 6d 65 20 61 20 63 6f umbnail'.might.be.everytime.a.co
b6e60 76 65 72 20 69 73 20 71 75 65 72 69 65 64 2c 0a 73 6f 20 74 6f 20 68 65 6c 70 20 77 69 74 68 20 ver.is.queried,.so.to.help.with.
b6e80 70 65 72 66 6f 72 6d 61 6e 63 65 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 65 74 20 45 4d 4d performance.you.can.also.set.EMM
b6ea0 53 2d 42 52 4f 57 53 45 52 2d 43 4f 56 45 52 53 20 74 6f 0a 27 65 6d 6d 73 2d 62 72 6f 77 73 65 S-BROWSER-COVERS.to.'emms-browse
b6ec0 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 79 6e 63 27 2e 20 20 54 68 65 20 6c r-cache-thumbnail-async'...The.l
b6ee0 61 74 74 65 72 20 69 73 20 6c 69 6b 65 20 74 68 65 20 66 6f 72 6d 65 72 0a 65 78 63 65 70 74 20 atter.is.like.the.former.except.
b6f00 74 68 61 74 20 69 74 20 63 61 63 68 65 73 20 71 75 65 72 69 65 73 3a 20 65 76 65 72 79 20 73 75 that.it.caches.queries:.every.su
b6f20 62 73 65 71 75 65 6e 74 20 71 75 65 72 79 20 77 69 6c 6c 20 62 65 20 6d 75 63 68 0a 66 61 73 74 bsequent.query.will.be.much.fast
b6f40 65 72 2e 20 20 54 68 65 20 64 72 61 77 62 61 63 6b 20 69 73 20 74 68 61 74 20 69 74 20 77 6f 6e er...The.drawback.is.that.it.won
b6f60 27 74 20 73 65 65 20 63 68 61 6e 67 65 73 20 6d 61 64 65 20 74 6f 20 63 6f 76 65 72 73 20 61 66 't.see.changes.made.to.covers.af
b6f80 74 65 72 0a 74 68 65 20 66 69 72 73 74 20 71 75 65 72 79 2e 20 20 54 6f 20 66 6f 72 63 65 2d 72 ter.the.first.query...To.force-r
b6fa0 65 66 72 65 73 68 20 74 68 65 20 74 68 75 6d 62 6e 61 69 6c 20 63 61 63 68 65 2c 20 79 6f 75 20 efresh.the.thumbnail.cache,.you.
b6fc0 63 61 6e 20 72 75 6e 0a 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 2d 63 61 63 68 can.run.'emms-browser-clear-cach
b6fe0 65 2d 68 61 73 68 27 2e 0a 0a 20 20 20 41 6c 73 6f 2c 20 45 6d 61 63 73 20 62 79 20 64 65 66 61 e-hash'......Also,.Emacs.by.defa
b7000 75 6c 74 20 77 69 6c 6c 20 6a 75 6d 70 20 61 72 6f 75 6e 64 20 61 20 6c 6f 74 20 77 68 65 6e 20 ult.will.jump.around.a.lot.when.
b7020 73 63 72 6f 6c 6c 69 6e 67 20 61 20 62 75 66 66 65 72 0a 77 69 74 68 20 69 6d 61 67 65 73 2e 20 scrolling.a.buffer.with.images..
b7040 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 74 68 61 74 2c 20 79 6f 75 20 63 .In.order.to.prevent.that,.you.c
b7060 61 6e 20 73 65 74 0a 53 43 52 4f 4c 4c 2d 55 50 2d 41 47 47 52 45 53 53 49 56 45 4c 59 20 61 6e an.set.SCROLL-UP-AGGRESSIVELY.an
b7080 64 20 53 43 52 4f 4c 4c 2d 44 4f 57 4e 2d 41 47 47 52 45 53 53 49 56 45 4c 59 20 74 6f 20 74 68 d.SCROLL-DOWN-AGGRESSIVELY.to.th
b70a0 65 20 6e 75 6d 62 65 72 20 22 30 2e 30 22 2e 0a 0a 20 20 20 54 6f 20 73 68 6f 77 20 61 20 27 6e e.number."0.0"......To.show.a.'n
b70c0 6f 20 63 6f 76 65 72 27 20 69 6d 61 67 65 20 66 6f 72 20 61 6c 62 75 6d 73 20 77 68 69 63 68 20 o.cover'.image.for.albums.which.
b70e0 64 6f 6e 27 74 20 68 61 76 65 20 61 20 63 6f 76 65 72 2c 20 61 64 64 0a 74 68 65 20 66 6f 6c 6c don't.have.a.cover,.add.the.foll
b7100 6f 77 69 6e 67 20 63 6f 64 65 20 74 6f 20 79 6f 75 72 20 2e 65 6d 61 63 73 3a 0a 0a 20 20 20 20 owing.code.to.your..emacs:......
b7120 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 63 6f 76 65 .(setq.emms-browser-default-cove
b7140 72 73 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2f 70 61 74 68 2f 74 6f 2f 63 6f 76 65 72 5f rs........(list."/path/to/cover_
b7160 73 6d 61 6c 6c 2e 6a 70 67 22 20 6e 69 6c 20 6e 69 6c 29 0a 0a 20 20 20 54 68 65 20 6d 65 64 69 small.jpg".nil.nil).....The.medi
b7180 75 6d 20 61 6e 64 20 6c 61 72 67 65 20 69 6d 61 67 65 73 20 63 61 6e 20 62 65 20 73 65 74 20 61 um.and.large.images.can.be.set.a
b71a0 73 20 77 65 6c 6c 2e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 64 6f 77 6e 6c 6f 61 64 20 61 6e 20 s.well......You.can.download.an.
b71c0 65 78 61 6d 70 6c 65 20 27 6e 6f 20 63 6f 76 65 72 27 20 69 6d 61 67 65 0a 28 68 74 74 70 3a 2f example.'no.cover'.image.(http:/
b71e0 2f 72 65 70 6f 73 65 2e 63 78 2f 63 6f 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 29 2e 0a 0a 1f 0a /repose.cx/cover_small.jpg).....
b7200 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 68 61 File:.doc7SuRxP.info,..Node:.Cha
b7220 6e 67 69 6e 67 20 4c 6f 6f 6b 73 2c 20 20 4e 65 78 74 3a 20 46 69 6c 74 65 72 69 6e 67 20 54 72 nging.Looks,..Next:.Filtering.Tr
b7240 61 63 6b 73 20 2d 20 64 65 70 72 65 63 61 74 65 64 2c 20 20 50 72 65 76 3a 20 44 69 73 70 6c 61 acks.-.deprecated,..Prev:.Displa
b7260 79 69 6e 67 20 43 6f 76 65 72 73 2c 20 20 55 70 3a 20 54 68 65 20 42 72 6f 77 73 65 72 0a 0a 31 ying.Covers,..Up:.The.Browser..1
b7280 37 2e 33 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 7.3.Changing.Looks.=============
b72a0 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 42 72 6f 77 73 65 72 27 73 20 6c 6f 6f 6b 20 63 61 6e 20 62 ======..The.Browser's.look.can.b
b72c0 65 20 63 75 73 74 6f 6d 69 73 65 64 2e 20 20 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 e.customised...You.can.change.th
b72e0 65 20 77 61 79 20 74 68 65 20 74 72 65 65 0a 73 74 72 75 63 74 75 72 65 20 6c 6f 6f 6b 73 2c 20 e.way.the.tree.structure.looks,.
b7300 74 68 65 20 64 69 73 70 6c 61 79 20 66 6f 72 6d 61 74 20 61 6e 64 20 64 69 73 70 6c 61 79 20 66 the.display.format.and.display.f
b7320 61 63 65 73 2e 0a 0a 43 68 61 6e 67 69 6e 67 20 54 72 65 65 20 53 74 72 75 63 74 75 72 65 0a 2d aces...Changing.Tree.Structure.-
b7340 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 59 6f 75 20 63 61 6e 20 ----------------------..You.can.
b7360 63 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 74 68 65 20 74 72 65 65 20 69 73 20 64 69 73 70 6c change.the.way.the.tree.is.displ
b7380 61 79 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 76 61 6c 75 65 20 6f 66 0a 45 4d 4d ayed.by.setting.the.value.of.EMM
b73a0 53 2d 42 52 4f 57 53 45 52 2d 54 52 45 45 2d 4e 4f 44 45 2d 4d 41 50 0a 0a 20 20 20 20 20 28 73 S-BROWSER-TREE-NODE-MAP.......(s
b73c0 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 20 65 etq.emms-browser-tree-node-map.e
b73e0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 2d 64 65 66 61 75 6c mms-browser-tree-node-map-defaul
b7400 74 29 0a 0a 20 20 20 54 68 65 20 6e 6f 64 65 20 6d 61 70 20 73 70 65 63 69 66 69 65 73 20 74 68 t).....The.node.map.specifies.th
b7420 65 20 74 72 65 65 20 61 73 20 61 6e 20 61 6c 69 73 74 2e 20 20 46 6f 6c 6c 6f 77 20 74 68 65 20 e.tree.as.an.alist...Follow.the.
b7440 63 68 61 69 6e 20 6f 66 0a 66 69 65 6c 64 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 72 74 69 6e chain.of.fields.from.the.startin
b7460 67 20 62 72 6f 77 73 65 20 74 79 70 65 20 74 6f 20 73 65 65 20 68 6f 77 20 74 68 65 20 62 72 6f g.browse.type.to.see.how.the.bro
b7480 77 73 65 72 20 74 72 65 65 20 77 69 6c 6c 20 62 65 0a 62 75 69 6c 74 2e 20 20 69 65 2e 20 20 53 wser.tree.will.be.built...ie...S
b74a0 74 61 72 74 69 6e 67 20 77 69 74 68 20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 79 69 65 6c 64 73 tarting.with.album.artist.yields
b74c0 20 61 20 74 72 65 65 20 77 69 74 68 20 61 6c 62 75 6d 20 61 72 74 69 73 74 2c 0a 61 72 74 69 73 .a.tree.with.album.artist,.artis
b74e0 74 20 61 6e 64 20 61 6c 62 75 6d 20 61 73 20 6e 6f 64 65 73 2e 0a 0a 20 20 20 20 20 28 64 65 66 t.and.album.as.nodes........(def
b7500 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 2d 64 var.emms-browser-tree-node-map-d
b7520 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 efault............'((info-albuma
b7540 72 74 69 73 74 20 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 rtist...info-artist)............
b7560 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d ..(info-artist........info-album
b7580 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 20 20 )..............(info-composer...
b75a0 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 ...info-album)..............(inf
b75c0 6f 2d 70 65 72 66 6f 72 6d 65 72 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 o-performer.....info-album).....
b75e0 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 2e 20 69 6e 66 .........(info-album.........inf
b7600 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 o-title)..............(info-genr
b7620 65 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 e.........info-artist)..........
b7640 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 72 74 ....(info-year..........info-art
b7660 69 73 74 29 29 29 0a 0a 20 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 64 69 ist))).....The.following.code.di
b7680 73 70 6c 61 79 73 20 61 72 74 69 73 74 2d 3e 74 72 61 63 6b 20 69 6e 73 74 65 61 64 20 6f 66 0a splays.artist->track.instead.of.
b76a0 61 72 74 69 73 74 2d 3e 61 6c 62 75 6d 2d 3e 74 72 61 63 6b 20 77 68 65 6e 20 79 6f 75 20 73 77 artist->album->track.when.you.sw
b76c0 69 74 63 68 20 74 6f 20 74 68 65 20 27 73 69 6e 67 6c 65 73 27 20 66 69 6c 74 65 72 3a 0a 0a 20 itch.to.the.'singles'.filter:...
b76e0 20 20 20 20 28 64 65 66 61 64 76 69 63 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 ....(defadvice.emms-browser-next
b7700 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -mapping-type...................
b7720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 6e 6f 2d 61 6c 62 ...................(after.no-alb
b7740 75 6d 20 28 63 75 72 72 65 6e 74 2d 6d 61 70 70 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 77 68 um.(current-mapping))........(wh
b7760 65 6e 20 28 65 71 20 61 64 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 27 69 6e 66 6f 2d 61 6c 62 en.(eq.ad-return-value.'info-alb
b7780 75 6d 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 64 2d 72 65 74 75 72 6e 2d 76 61 6c um)..........(setq.ad-return-val
b77a0 75 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 0a 0a 20 20 20 20 20 28 64 65 66 75 6e 20 74 ue.'info-title))).......(defun.t
b77c0 6f 67 67 6c 65 2d 61 6c 62 75 6d 2d 64 69 73 70 6c 61 79 20 28 29 0a 20 20 20 20 20 20 20 28 69 oggle-album-display.()........(i
b77e0 66 20 28 73 74 72 69 6e 67 3d 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 75 72 72 65 6e 74 2d f.(string=.emms-browser-current-
b7800 66 69 6c 74 65 72 2d 6e 61 6d 65 20 22 73 69 6e 67 6c 65 73 22 29 0a 20 20 20 20 20 20 20 20 20 filter-name."singles")..........
b7820 20 20 28 61 64 2d 61 63 74 69 76 61 74 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 ..(ad-activate.'emms-browser-nex
b7840 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 28 61 64 2d 64 65 61 t-mapping-type)..........(ad-dea
b7860 63 74 69 76 61 74 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6d 61 70 70 69 ctivate.'emms-browser-next-mappi
b7880 6e 67 2d 74 79 70 65 29 29 29 0a 0a 20 20 20 20 20 3b 3b 20 44 65 70 72 65 63 61 74 65 64 20 75 ng-type))).......;;.Deprecated.u
b78a0 73 65 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 68 6f 6f 6b 20 69 6e 73 74 65 61 64 se.the.emms-filters.hook.instead
b78c0 2e 0a 20 20 20 20 20 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 .......;;.(add-hook.'emms-browse
b78e0 72 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 27 74 6f 67 67 6c 65 2d 61 6c r-filter-changed-hook.'toggle-al
b7900 62 75 6d 2d 64 69 73 70 6c 61 79 29 0a 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d bum-display)......(add-hook.'emm
b7920 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 27 74 s-filters-filter-changed-hook.'t
b7940 6f 67 67 6c 65 2d 61 6c 62 75 6d 2d 64 69 73 70 6c 61 79 29 0a 0a 20 20 20 46 75 72 74 68 65 72 oggle-album-display).....Further
b7960 6d 6f 72 65 2c 20 79 6f 75 20 63 61 6e 20 63 75 73 74 6f 6d 69 7a 65 20 45 4d 4d 53 2d 42 52 4f more,.you.can.customize.EMMS-BRO
b7980 57 53 45 52 2d 47 45 54 2d 54 52 41 43 4b 2d 46 49 45 4c 44 2d 46 55 4e 43 54 49 4f 4e 0a 74 6f WSER-GET-TRACK-FIELD-FUNCTION.to
b79a0 20 63 68 6f 6f 73 65 20 77 68 69 63 68 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 66 69 65 6c 64 .choose.which.the.metadata.field
b79c0 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 65 65 20 6e 6f s.used.for.the.different.tree.no
b79e0 64 65 73 0a 28 27 27 69 6e 66 6f 2d 61 72 74 69 73 74 27 2c 20 27 69 6e 66 6f 2d 79 65 61 72 27 des.(''info-artist',.'info-year'
b7a00 2c 20 65 74 63 2e 29 2e 20 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 63 61 6e 20 ,.etc.)...For.instance,.you.can.
b7a20 63 68 6f 6f 73 65 0a 77 68 65 74 68 65 72 20 74 6f 20 6f 72 67 61 6e 69 7a 65 20 74 68 65 20 74 choose.whether.to.organize.the.t
b7a40 72 65 65 20 62 79 20 61 72 74 69 73 74 2c 20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 6f 72 20 70 ree.by.artist,.album.artist.or.p
b7a60 65 72 66 6f 72 6d 65 72 2e 0a 0a 43 68 61 6e 67 69 6e 67 20 44 69 73 70 6c 61 79 20 46 6f 72 6d erformer...Changing.Display.Form
b7a80 61 74 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 46 6f 72 6d at.-----------------------..Form
b7aa0 61 74 20 73 74 72 69 6e 67 73 20 67 6f 76 65 72 6e 20 74 68 65 20 77 61 79 20 69 74 65 6d 73 20 at.strings.govern.the.way.items.
b7ac0 61 72 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 are.displayed.in.the.browser.and
b7ae0 0a 70 6c 61 79 6c 69 73 74 2e 20 20 59 6f 75 20 63 61 6e 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 .playlist...You.can.customize.th
b7b00 65 73 65 20 69 66 20 79 6f 75 20 77 69 73 68 2e 0a 0a 20 20 20 45 4d 4d 53 2d 42 52 4f 57 53 45 ese.if.you.wish......EMMS-BROWSE
b7b20 52 2d 44 45 46 41 55 4c 54 2d 46 4f 52 4d 41 54 20 63 6f 6e 74 72 6f 6c 73 20 74 68 65 20 66 6f R-DEFAULT-FORMAT.controls.the.fo
b7b40 72 6d 61 74 20 74 6f 20 75 73 65 20 77 68 65 6e 20 6e 6f 20 6f 74 68 65 72 0a 66 6f 72 6d 61 74 rmat.to.use.when.no.other.format
b7b60 20 68 61 73 20 62 65 65 6e 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 66 69 6e 65 64 2e 20 20 42 .has.been.explicitly.defined...B
b7b80 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 74 72 61 63 6b 20 61 6e 64 20 61 6c 62 75 6d 73 y.default,.only.track.and.albums
b7ba0 0a 64 65 76 69 61 74 65 20 66 72 6f 6d 20 74 68 65 20 64 65 66 61 75 6c 74 2e 0a 0a 20 20 20 54 .deviate.from.the.default......T
b7bc0 6f 20 63 75 73 74 6f 6d 69 73 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 61 20 70 61 72 74 o.customise.the.format.of.a.part
b7be0 69 63 75 6c 61 72 20 74 79 70 65 2c 20 66 69 6e 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 icular.type,.find.the.name.of.th
b7c00 65 0a 66 69 65 6c 64 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 28 65 67 20 27 69 6e 66 e.field.you.want.to.use.(eg.'inf
b7c20 6f 2d 61 72 74 69 73 74 27 2c 20 27 69 6e 66 6f 2d 74 69 74 6c 65 27 2c 20 65 74 63 29 2c 20 61 o-artist',.'info-title',.etc),.a
b7c40 6e 64 20 69 6e 73 65 72 74 0a 74 68 61 74 20 69 6e 74 6f 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 nd.insert.that.into.emms-browser
b7c60 2d 3c 74 79 70 65 3e 2d 66 6f 72 6d 61 74 20 6f 72 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 -<type>-format.or.emms-browser-p
b7c80 6c 61 79 6c 69 73 74 2d 3c 74 79 70 65 3e 2d 66 6f 72 6d 61 74 2e 20 20 46 6f 72 20 65 78 61 6d laylist-<type>-format...For.exam
b7ca0 70 6c 65 2c 20 69 66 20 79 6f 75 20 77 61 6e 74 65 64 20 74 6f 0a 72 65 6d 6f 76 65 20 74 72 61 ple,.if.you.wanted.to.remove.tra
b7cc0 63 6b 20 6e 75 6d 62 65 72 73 20 66 72 6f 6d 20 74 72 61 63 6b 73 20 69 6e 20 62 6f 74 68 20 74 ck.numbers.from.tracks.in.both.t
b7ce0 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 2c 20 79 6f 75 0a 63 6f 75 he.browser.and.playlist,.you.cou
b7d00 6c 64 20 64 6f 3a 0a 0a 20 20 20 20 20 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 ld.do:.......(defvar.emms-browse
b7d20 72 2d 69 6e 66 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 20 22 25 69 25 6e 22 29 0a 20 20 20 20 r-info-title-format."%i%n").....
b7d40 20 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 .(defvar.emms-browser-playlist-i
b7d60 6e 66 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 65 6d 6d 73 2d 62 72 6f nfo-title-format........emms-bro
b7d80 77 73 65 72 2d 69 6e 66 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 29 0a 0a 20 20 20 54 68 65 20 wser-info-title-format).....The.
b7da0 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 63 6c format.specifiers.available.incl
b7dc0 75 64 65 3a 0a 0a 20 20 20 20 20 25 69 20 69 6e 64 65 6e 74 20 72 65 6c 61 74 69 76 65 20 74 6f ude:.......%i.indent.relative.to
b7de0 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 76 65 6c 0a 0a 20 20 20 20 20 25 6e 20 74 68 65 20 .the.current.level.......%n.the.
b7e00 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 74 65 6d 20 2d 20 65 67 20 2d 69 6e 66 6f 2d 61 72 74 value.of.the.item.-.eg.-info-art
b7e20 69 73 74 20 6d 69 67 68 74 20 62 65 20 22 70 69 6e 6b 20 66 6c 6f 79 64 22 0a 0a 20 20 20 20 20 ist.might.be."pink.floyd".......
b7e40 25 79 20 74 68 65 20 61 6c 62 75 6d 20 79 65 61 72 0a 0a 20 20 20 20 20 25 41 20 74 68 65 20 61 %y.the.album.year.......%A.the.a
b7e60 6c 62 75 6d 20 6e 61 6d 65 0a 0a 20 20 20 20 20 25 61 20 74 68 65 20 61 72 74 69 73 74 20 6e 61 lbum.name.......%a.the.artist.na
b7e80 6d 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 0a 20 20 20 20 20 25 6f 20 74 68 65 20 61 6c 62 me.of.the.track.......%o.the.alb
b7ea0 75 6d 20 61 72 74 69 73 74 20 6e 61 6d 65 0a 20 20 20 20 0a 20 20 20 20 20 25 74 20 74 68 65 20 um.artist.name...........%t.the.
b7ec0 74 69 74 6c 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 0a 20 20 20 20 20 25 6f 20 74 68 65 20 title.of.the.track.......%o.the.
b7ee0 67 65 6e 72 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 0a 20 20 20 20 20 25 54 20 74 68 65 20 genre.of.the.track.......%T.the.
b7f00 74 72 61 63 6b 20 6e 75 6d 62 65 72 0a 0a 20 20 20 20 20 25 63 53 20 61 20 73 6d 61 6c 6c 20 61 track.number.......%cS.a.small.a
b7f20 6c 62 75 6d 20 63 6f 76 65 72 0a 0a 20 20 20 20 20 25 63 4d 20 61 20 6d 65 64 69 75 6d 20 61 6c lbum.cover.......%cM.a.medium.al
b7f40 62 75 6d 20 63 6f 76 65 72 0a 0a 20 20 20 20 20 25 63 4c 20 61 20 62 69 67 20 61 6c 62 75 6d 20 bum.cover.......%cL.a.big.album.
b7f60 63 6f 76 65 72 0a 0a 20 20 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 79 6f 75 20 75 73 65 20 74 cover.....Note.that.if.you.use.t
b7f80 72 61 63 6b 2d 72 65 6c 61 74 65 64 20 69 74 65 6d 73 20 6c 69 6b 65 20 25 74 2c 20 69 74 20 77 rack-related.items.like.%t,.it.w
b7fa0 69 6c 6c 20 74 61 6b 65 20 74 68 65 0a 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 66 69 72 73 74 ill.take.the.data.from.the.first
b7fc0 20 74 72 61 63 6b 2e 0a 0a 43 68 61 6e 67 69 6e 67 20 44 69 73 70 6c 61 79 20 46 61 63 65 73 0a .track...Changing.Display.Faces.
b7fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 54 68 65 20 66 61 63 65 ----------------------..The.face
b8000 73 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 76 61 72 69 6f 75 73 20 66 69 s.used.to.display.the.various.fi
b8020 65 6c 64 73 20 61 72 65 20 61 6c 73 6f 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 2e 0a 54 68 65 79 elds.are.also.customizable..They
b8040 20 61 72 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d .are.in.the.format.emms-browser-
b8060 3c 74 79 70 65 3e 2d 66 61 63 65 2c 20 77 68 65 72 65 20 74 79 70 65 20 69 73 20 6f 6e 65 20 6f <type>-face,.where.type.is.one.o
b8080 66 0a 22 79 65 61 72 2f 67 65 6e 72 65 22 2c 20 22 61 72 74 69 73 74 22 2c 20 22 61 6c 62 75 6d f."year/genre",."artist",."album
b80a0 22 20 6f 72 20 22 74 72 61 63 6b 22 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 66 61 63 65 73 20 6c ".or."track"...Note.that.faces.l
b80c0 61 63 6b 20 74 68 65 0a 69 6e 69 74 69 61 6c 20 22 69 6e 66 6f 2d 22 20 70 61 72 74 2e 20 20 46 ack.the.initial."info-".part...F
b80e0 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 61 72 74 69 73 74 or.example,.to.change.the.artist
b8100 20 66 61 63 65 2c 20 74 79 70 65 20 4d 2d 78 0a 27 63 75 73 74 6f 6d 69 7a 65 2d 66 61 63 65 27 .face,.type.M-x.'customize-face'
b8120 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 72 74 69 73 74 2d 66 61 63 65 27 2e 0a 0a 1f 0a .'emms-browser-artist-face'.....
b8140 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 69 6c File:.doc7SuRxP.info,..Node:.Fil
b8160 74 65 72 69 6e 67 20 54 72 61 63 6b 73 20 2d 20 64 65 70 72 65 63 61 74 65 64 2c 20 20 50 72 65 tering.Tracks.-.deprecated,..Pre
b8180 76 3a 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b 73 2c 20 20 55 70 3a 20 54 68 65 20 42 72 6f 77 v:.Changing.Looks,..Up:.The.Brow
b81a0 73 65 72 0a 0a 31 37 2e 34 20 46 69 6c 74 65 72 69 6e 67 20 54 72 61 63 6b 73 20 2d 20 64 65 70 ser..17.4.Filtering.Tracks.-.dep
b81c0 72 65 63 61 74 65 64 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d recated.========================
b81e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 20 61 72 65 20 ==========..Note.that.these.are.
b8200 74 68 65 20 64 69 72 65 63 74 69 6f 6e 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 66 69 6c 74 the.directions.for.creating.filt
b8220 65 72 73 20 66 72 6f 6d 20 74 68 65 20 62 72 6f 77 73 65 72 0a 41 50 49 20 77 68 69 63 68 20 6e ers.from.the.browser.API.which.n
b8240 6f 77 20 77 6f 72 6b 73 20 74 68 72 6f 75 67 68 20 74 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 ow.works.through.the.Emms-filter
b8260 73 20 73 79 73 74 65 6d 2e 0a 0a 20 20 20 54 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 20 73 79 s.system......The.Emms-filter.sy
b8280 73 74 65 6d 20 6f 62 73 6f 6c 65 74 65 73 20 74 68 69 73 20 6d 65 74 68 6f 64 20 6f 66 20 63 72 stem.obsoletes.this.method.of.cr
b82a0 65 61 74 69 6e 67 20 66 69 6c 74 65 72 73 2e 0a 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 20 73 eating.filters..However,.it.is.s
b82c0 74 69 6c 6c 20 76 61 6c 69 64 2c 20 61 6e 64 20 77 69 6c 6c 20 77 6f 72 6b 20 69 66 20 79 6f 75 till.valid,.and.will.work.if.you
b82e0 20 68 61 76 65 20 66 69 6c 74 65 72 73 20 64 65 66 69 6e 65 64 20 69 6e 0a 74 68 69 73 20 77 61 .have.filters.defined.in.this.wa
b8300 79 2e 0a 0a 20 20 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 68 61 74 20 74 68 y......It.is.recommended.that.th
b8320 65 20 6e 65 77 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 69 73 20 75 73 65 64 20 64 69 72 65 e.new.filter.system.is.used.dire
b8340 63 74 6c 79 20 72 61 74 68 65 72 0a 74 68 61 6e 20 62 75 69 6c 64 69 6e 67 20 66 69 6c 74 65 72 ctly.rather.than.building.filter
b8360 73 20 69 6e 20 74 68 69 73 20 77 61 79 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 s.in.this.way......If.you.want.t
b8380 6f 20 64 69 73 70 6c 61 79 20 61 20 73 75 62 73 65 74 20 6f 66 20 79 6f 75 72 20 63 6f 6c 6c 65 o.display.a.subset.of.your.colle
b83a0 63 74 69 6f 6e 20 28 73 75 63 68 20 61 73 20 61 0a 64 69 72 65 63 74 6f 72 79 20 6f 66 20 38 30 ction.(such.as.a.directory.of.80
b83c0 73 20 6d 75 73 69 63 2c 20 6f 6e 6c 79 20 61 76 69 20 66 69 6c 65 73 2c 20 65 74 63 2e 29 20 20 s.music,.only.avi.files,.etc.)..
b83e0 74 68 65 6e 20 79 6f 75 20 63 61 6e 20 65 78 74 65 6e 64 20 74 68 65 0a 42 72 6f 77 73 65 72 20 then.you.can.extend.the.Browser.
b8400 62 79 20 64 65 66 69 6e 69 6e 67 20 22 66 69 6c 74 65 72 73 22 2e 0a 0a 20 20 20 53 68 6f 77 20 by.defining."filters"......Show.
b8420 65 76 65 72 79 74 68 69 6e 67 3a 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d everything:.......(emms-browser-
b8440 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 61 6c 6c 22 20 27 69 67 6e 6f 72 65 29 0a 0a 20 20 20 53 make-filter."all".'ignore).....S
b8460 65 74 20 22 61 6c 6c 22 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c 74 65 72 3a 0a et."all".as.the.default.filter:.
b8480 0a 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 74 2d 66 69 6c 74 65 72 20 28 ......(emms-browser-set-filter.(
b84a0 61 73 73 6f 63 20 22 61 6c 6c 22 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 73 assoc."all".emms-browser-filters
b84c0 29 29 0a 0a 20 20 20 53 68 6f 77 20 61 6c 6c 20 66 69 6c 65 73 20 28 6e 6f 20 73 74 72 65 61 6d )).....Show.all.files.(no.stream
b84e0 6c 69 73 74 73 2c 20 65 74 63 29 3a 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 lists,.etc):.......(emms-browser
b8500 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 22 61 6c 6c 2d 66 69 6c 65 73 22 20 28 -make-filter......."all-files".(
b8520 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 74 79 70 65 20 27 66 emms-browser-filter-only-type.'f
b8540 69 6c 65 29 29 0a 0a 20 20 20 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 63 6b 73 20 69 6e 20 6f 6e ile)).....Show.only.tracks.in.on
b8560 65 20 66 6f 6c 64 65 72 3a 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 e.folder:.......(emms-browser-ma
b8580 6b 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 22 38 30 73 22 20 28 65 6d 6d 73 2d 62 72 6f 77 ke-filter......."80s".(emms-brow
b85a0 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 64 69 72 20 22 7e 2f 4d 70 33 73 2f 38 30 73 22 ser-filter-only-dir."~/Mp3s/80s"
b85c0 29 29 0a 0a 20 20 20 53 68 6f 77 20 61 6c 6c 20 74 72 61 63 6b 73 20 70 6c 61 79 65 64 20 69 6e )).....Show.all.tracks.played.in
b85e0 20 74 68 65 20 6c 61 73 74 20 6d 6f 6e 74 68 3a 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f .the.last.month:.......(emms-bro
b8600 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 22 6c 61 73 74 2d 6d 6f 6e wser-make-filter......."last-mon
b8620 74 68 22 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 72 65 th".(emms-browser-filter-only-re
b8640 63 65 6e 74 20 33 30 29 29 0a 0a 20 20 20 41 66 74 65 72 20 65 78 65 63 75 74 69 6e 67 20 74 68 cent.30)).....After.executing.th
b8660 65 20 61 62 6f 76 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 4d 2d e.above.commands,.you.can.use.M-
b8680 78 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 61 6c 6c 2c 20 65 6d 6d 73 2d 62 72 x.emms-browser-show-all,.emms-br
b86a0 6f 77 73 65 72 2d 73 68 6f 77 2d 38 30 73 2c 20 65 74 63 20 74 6f 20 74 6f 67 67 6c 65 20 62 65 owser-show-80s,.etc.to.toggle.be
b86c0 74 77 65 65 6e 0a 64 69 66 66 65 72 65 6e 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 2e 20 20 41 6c tween.different.collections...Al
b86e0 74 65 72 6e 61 74 69 76 65 6c 79 20 79 6f 75 20 63 61 6e 20 75 73 65 20 27 3c 27 20 61 6e 64 20 ternatively.you.can.use.'<'.and.
b8700 27 3e 27 20 74 6f 20 63 79 63 6c 65 0a 74 68 72 6f 75 67 68 20 74 68 65 20 61 76 61 69 6c 61 62 '>'.to.cycle.through.the.availab
b8720 6c 65 20 66 69 6c 74 65 72 73 2e 0a 0a 20 20 20 54 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d le.filters......The.second.argum
b8740 65 6e 74 20 74 6f 20 6d 61 6b 65 2d 66 69 6c 74 65 72 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e ent.to.make-filter.is.a.function
b8760 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 74 20 69 66 20 61 0a 73 69 6e 67 6c 65 20 74 72 61 .which.returns.t.if.a.single.tra
b8780 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 66 69 6c 74 65 72 65 64 2e 20 20 59 6f 75 20 63 61 6e 20 ck.should.be.filtered...You.can.
b87a0 77 72 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 66 69 6c 74 65 72 0a 66 75 6e 63 74 69 6f 6e 73 20 write.your.own.filter.functions.
b87c0 74 6f 20 63 68 65 63 6b 20 74 68 65 20 74 79 70 65 20 6f 66 20 61 20 66 69 6c 65 2c 20 65 74 63 to.check.the.type.of.a.file,.etc
b87e0 2e 0a 0a 20 20 20 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 63 6b 73 20 6e 6f 74 20 70 6c 61 79 65 ......Show.only.tracks.not.playe
b8800 64 20 69 6e 20 74 68 65 20 6c 61 73 74 20 79 65 61 72 3a 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d d.in.the.last.year:.......(emms-
b8820 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 6e 6f 74 2d 70 6c 61 79 65 64 22 browser-make-filter."not-played"
b8840 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 28 6e .......(lambda.(track)........(n
b8860 6f 74 20 28 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 ot.(funcall.(emms-browser-filter
b8880 2d 6f 6e 6c 79 2d 72 65 63 65 6e 74 20 33 36 35 29 20 74 72 61 63 6b 29 29 29 29 0a 0a 20 20 20 -only-recent.365).track)))).....
b88a0 53 68 6f 77 20 61 6c 6c 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 69 6e 20 74 Show.all.files.that.are.not.in.t
b88c0 68 65 20 70 65 6e 64 69 6e 67 20 64 69 72 65 63 74 6f 72 79 3a 0a 0a 20 20 20 20 20 28 65 6d 6d he.pending.directory:.......(emm
b88e0 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 22 61 6c 6c s-browser-make-filter......."all
b8900 22 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 ".......(lambda.(track).........
b8920 28 6f 72 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 (or..........(funcall.(emms-brow
b8940 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 74 79 70 65 20 27 66 69 6c 65 29 20 74 72 61 63 ser-filter-only-type.'file).trac
b8960 6b 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 k)..........(not.(funcall.......
b8980 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e .........(emms-browser-filter-on
b89a0 6c 79 2d 64 69 72 20 22 7e 2f 4d 65 64 69 61 2f 70 65 6e 64 69 6e 67 22 29 20 74 72 61 63 6b 29 ly-dir."~/Media/pending").track)
b89c0 29 29 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e ))))....File:.doc7SuRxP.info,..N
b89e0 6f 64 65 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 2c 20 20 4e 65 78 74 3a 20 53 ode:.The.Filter.System,..Next:.S
b8a00 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 50 72 65 76 3a 20 54 68 65 20 42 72 6f orting.Playlists,..Prev:.The.Bro
b8a20 77 73 65 72 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 38 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 wser,..Up:.Top..18.The.Filter.Sy
b8a40 73 74 65 6d 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 66 stem.********************..The.f
b8a60 69 6c 74 65 72 20 73 79 73 74 65 6d 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 66 69 6c 74 65 ilter.system.allows.you.to.filte
b8a80 72 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 20 69 6e 20 6f 72 64 65 72 0a 73 65 r.the.metadata.cache.in.order.se
b8aa0 61 72 63 68 20 61 6e 64 20 6e 61 72 72 6f 77 20 79 6f 75 72 20 74 72 61 63 6b 20 64 61 74 61 2e arch.and.narrow.your.track.data.
b8ac0 20 20 49 74 20 69 73 20 62 61 73 65 64 20 6f 6e 20 61 20 76 65 72 79 20 70 6f 77 65 72 66 75 6c ..It.is.based.on.a.very.powerful
b8ae0 0a 69 6e 74 65 72 61 63 74 69 76 65 20 73 79 73 74 65 6d 20 63 6f 6e 73 69 73 74 65 6e 74 69 6e .interactive.system.consistentin
b8b00 67 20 6f 66 20 66 69 6c 74 65 72 20 61 6e 64 20 63 61 63 68 65 20 73 74 61 63 6b 73 20 77 68 69 g.of.filter.and.cache.stacks.whi
b8b20 63 68 20 61 6c 6c 6f 77 0a 74 68 65 20 63 72 65 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6e 69 70 75 ch.allow.the.creation.and.manipu
b8b40 6c 61 74 69 6f 6e 20 6f 66 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 6e 64 20 72 65 lation.of.complex.filters.and.re
b8b60 73 75 6c 74 73 20 63 61 63 68 65 73 2e 0a 0a 20 20 20 54 68 65 20 46 69 6c 74 65 72 20 73 79 73 sults.caches......The.Filter.sys
b8b80 74 65 6d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e tem.is.defined.in.'emms-filters.
b8ba0 65 6c 27 20 61 6e 64 20 69 73 20 69 6e 63 6c 75 64 65 64 20 61 73 0a 70 61 72 74 20 6f 66 20 74 el'.and.is.included.as.part.of.t
b8bc0 68 65 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 2e 0a 0a 20 20 20 45 6d 6d 73 2d 46 69 6c 74 65 72 he.Emms-Browser......Emms-Filter
b8be0 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 66 69 6c 74 65 72 20 61 6e 64 20 73 65 61 72 63 s.allows.you.to.filter.and.searc
b8c00 68 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 2e 0a 54 68 69 73 20 6d 61 6e 61 67 h.the.metadata.cache..This.manag
b8c20 65 73 20 74 68 65 20 73 65 61 72 63 68 20 61 6e 64 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f es.the.search.and.filter.functio
b8c40 6e 61 6c 69 74 69 65 73 20 6f 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 0a 0a 2a 20 4d 65 6e nalities.of.emms-browser...*.Men
b8c60 75 3a 0a 0a 2a 20 46 69 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 63 68 65 73 3a 3a 20 20 20 41 u:..*.Filters.and.Searches::...A
b8c80 20 73 69 6d 70 6c 65 20 6f 76 65 72 76 69 65 77 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 .simple.overview.of.the.filter.s
b8ca0 79 73 74 65 6d 2e 0a 2a 20 42 61 63 6b 77 61 72 64 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a ystem..*.Backward.Compatibility:
b8cc0 3a 20 42 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 74 68 :.Backward.compatibility.with.th
b8ce0 65 20 45 6d 6d 73 20 42 72 6f 77 73 65 72 2e 0a 2a 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f 6e 65 e.Emms.Browser..*.Filter.Compone
b8d00 6e 74 73 3a 3a 20 20 20 20 20 20 44 65 66 69 6e 69 74 69 6f 6e 73 20 6f 66 20 62 61 73 69 63 20 nts::......Definitions.of.basic.
b8d20 74 65 72 6d 69 6e 6f 6c 6f 67 79 20 75 73 65 64 20 62 79 20 74 68 65 20 66 69 6c 74 65 72 20 73 terminology.used.by.the.filter.s
b8d40 79 73 74 65 6d 2e 0a 2a 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 3a 3a 20 20 20 20 20 ystem..*.Filter.Factories::.....
b8d60 20 20 44 65 66 69 6e 69 6e 67 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 2e 0a 2a 20 46 ..Defining.filter.factories..*.F
b8d80 61 63 74 6f 72 79 20 52 65 67 69 73 74 72 61 74 69 6f 6e 3a 3a 20 20 20 52 65 67 69 73 74 65 72 actory.Registration::...Register
b8da0 69 6e 67 20 46 61 63 74 6f 72 69 65 73 20 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 70 72 6f 6d ing.Factories.and.using.the.prom
b8dc0 70 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a 2a 20 44 65 66 69 6e 65 64 20 46 61 63 74 6f 72 69 65 pting.system..*.Defined.Factorie
b8de0 73 3a 3a 20 20 20 20 20 20 54 68 65 20 62 75 69 6c 74 2d 69 6e 20 66 61 63 74 6f 72 69 65 73 20 s::......The.built-in.factories.
b8e00 61 76 61 69 6c 61 62 6c 65 0a 2a 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 3a 3a 20 20 available.*.Defining.Filters::..
b8e20 20 20 20 20 20 44 65 66 69 6e 69 6e 67 20 66 69 6c 74 65 72 73 2e 0a 2a 20 54 68 65 20 46 69 6c .....Defining.filters..*.The.Fil
b8e40 74 65 72 20 53 74 61 63 6b 3a 3a 20 20 20 20 20 20 20 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 ter.Stack::.......The.filter.sta
b8e60 63 6b 2c 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 2c 20 68 6f 77 20 74 6f 20 75 73 65 20 69 74 2e ck,.how.it.works,.how.to.use.it.
b8e80 0a 2a 20 54 68 65 20 43 61 63 68 65 20 53 74 61 63 6b 3a 3a 20 20 20 20 20 20 20 20 54 68 65 20 .*.The.Cache.Stack::........The.
b8ea0 63 61 63 68 65 20 73 74 61 63 6b 2c 20 68 6f 77 20 74 6f 20 75 73 65 20 69 74 2e 0a 2a 20 53 68 cache.stack,.how.to.use.it..*.Sh
b8ec0 6f 77 69 6e 67 20 53 74 61 74 65 3a 3a 20 20 20 20 20 20 20 20 20 20 53 68 6f 77 69 6e 67 20 74 owing.State::..........Showing.t
b8ee0 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 he.current.state.of.the.filter.s
b8f00 79 73 74 65 6d 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 ystem.....File:.doc7SuRxP.info,.
b8f20 20 4e 6f 64 65 3a 20 46 69 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 63 68 65 73 2c 20 20 4e 65 .Node:.Filters.and.Searches,..Ne
b8f40 78 74 3a 20 42 61 63 6b 77 61 72 64 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 20 55 70 3a xt:.Backward.Compatibility,..Up:
b8f60 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 31 20 46 69 6c 74 65 72 73 .The.Filter.System..18.1.Filters
b8f80 20 61 6e 64 20 53 65 61 72 63 68 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .and.Searches.==================
b8fa0 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 72 65 20 69 73 20 6c 69 74 74 6c 65 20 64 69 66 66 65 72 65 =======..There.is.little.differe
b8fc0 6e 63 65 20 62 65 74 77 65 65 6e 20 66 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 73 65 61 72 63 68 nce.between.filtering.and.search
b8fe0 69 6e 67 2e 20 20 53 65 61 72 63 68 69 6e 67 0a 73 69 6d 70 6c 79 20 72 65 73 75 6c 74 73 20 69 ing...Searching.simply.results.i
b9000 6e 20 61 20 64 61 74 61 2d 63 61 63 68 65 20 77 68 69 63 68 20 69 73 20 73 6d 61 6c 6c 65 72 20 n.a.data-cache.which.is.smaller.
b9020 74 68 61 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 2e 0a 0a 20 20 20 54 68 65 20 66 69 6c 74 65 than.the.original......The.filte
b9040 72 20 73 79 73 74 65 6d 20 68 61 73 20 61 20 63 61 63 68 65 20 73 74 61 63 6b 20 77 68 65 72 65 r.system.has.a.cache.stack.where
b9060 20 63 61 63 68 65 64 20 72 65 73 75 6c 74 73 20 61 72 65 20 6b 65 70 74 2e 0a 41 6c 6c 20 73 75 .cached.results.are.kept..All.su
b9080 62 73 65 71 75 65 6e 74 20 66 69 6c 74 65 72 73 20 61 6e 64 20 73 65 61 72 63 68 65 73 20 75 73 bsequent.filters.and.searches.us
b90a0 65 20 74 68 65 20 6d 6f 73 74 20 63 75 72 72 65 6e 74 20 63 61 63 68 65 2e 0a 0a 20 20 20 46 69 e.the.most.current.cache......Fi
b90c0 6c 74 65 72 69 6e 67 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 72 65 6e 64 65 72 65 64 20 76 69 ltering.results.in.a.rendered.vi
b90e0 65 77 20 66 6f 72 20 61 20 73 75 62 73 65 74 20 6f 66 20 77 68 61 74 20 69 73 20 69 6e 20 74 68 ew.for.a.subset.of.what.is.in.th
b9100 65 0a 64 61 74 61 2d 63 61 63 68 65 2e 20 20 43 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 e.data-cache...Complex.filters.a
b9120 72 65 20 62 75 69 6c 74 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6f 6e 20 61 20 66 69 6c 74 re.built.interactively.on.a.filt
b9140 65 72 20 73 74 61 63 6b 0a 62 79 20 63 6f 6d 62 69 6e 69 6e 67 20 65 78 69 73 74 69 6e 67 20 66 er.stack.by.combining.existing.f
b9160 69 6c 74 65 72 73 20 61 6e 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 ilters.and.interactively.created
b9180 20 66 69 6c 74 65 72 73 2e 0a 0a 20 20 20 41 20 73 6d 61 6c 6c 20 67 72 6f 75 70 20 6f 66 20 66 .filters......A.small.group.of.f
b91a0 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 ilter.factories.are.used.to.crea
b91c0 74 65 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 77 68 69 63 68 20 61 72 65 20 64 65 te.filter.functions.which.are.de
b91e0 66 69 6e 65 64 20 65 6e 74 69 72 65 6c 79 20 61 73 20 64 61 74 61 2e 20 20 54 68 6f 73 65 20 66 fined.entirely.as.data...Those.f
b9200 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 0a 65 61 63 68 ilters.can.be.combined.with.each
b9220 20 6f 74 68 65 72 20 61 6e 64 20 77 69 74 68 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 .other.and.with.interactively.cr
b9240 65 61 74 65 64 20 66 69 6c 74 65 72 73 20 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 eated.filters.on.the.filter.stac
b9260 6b 0a 77 69 74 68 20 4f 52 2c 20 41 4e 44 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 41 4e 44 2d 4e k.with.OR,.AND,.as.well.as.AND-N
b9280 4f 54 2e 20 54 68 65 73 65 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 6d OT..These.more.complex.filters.m
b92a0 61 79 20 61 6c 73 6f 20 62 65 0a 73 61 76 65 64 20 61 6e 64 20 63 6f 64 65 64 20 65 6e 74 69 72 ay.also.be.saved.and.coded.entir
b92c0 65 6c 79 20 61 73 20 64 61 74 61 2e 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 68 65 20 66 69 ely.as.data...In.addition.the.fi
b92e0 6c 74 65 72 20 73 74 61 63 6b 20 68 61 73 0a 76 61 72 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 73 20 lter.stack.has.various.commands.
b9300 74 6f 20 6d 61 6e 69 70 75 6c 61 74 65 20 69 74 2e 20 20 50 6f 70 2c 20 73 77 61 70 2c 20 73 77 to.manipulate.it...Pop,.swap,.sw
b9320 61 70 2d 70 6f 70 2c 20 73 71 75 61 73 68 20 61 6e 64 0a 63 6c 65 61 72 2c 20 61 6d 6f 6e 67 20 ap-pop,.squash.and.clear,.among.
b9340 6f 74 68 65 72 73 2e 0a 0a 20 20 20 46 6f 72 20 74 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 73 others......For.the.concept.of.s
b9360 65 61 72 63 68 65 73 20 74 68 65 72 65 20 69 73 20 61 20 73 65 61 72 63 68 20 63 61 63 68 65 20 earches.there.is.a.search.cache.
b9380 73 74 61 63 6b 20 77 68 69 63 68 20 69 73 20 61 0a 73 74 61 63 6b 20 6f 66 20 65 6d 6d 73 2d 63 stack.which.is.a.stack.of.emms-c
b93a0 61 63 68 65 2d 64 62 20 68 61 73 68 20 74 61 62 6c 65 73 2e 20 20 54 68 65 20 65 6d 6d 73 2d 63 ache-db.hash.tables...The.emms-c
b93c0 61 63 68 65 2d 64 62 20 69 73 20 61 6c 77 61 79 73 20 70 72 65 73 65 6e 74 0a 61 74 20 74 68 65 ache-db.is.always.present.at.the
b93e0 20 62 61 73 65 20 6f 66 20 74 68 69 73 20 73 74 61 63 6b 2e 20 20 41 6e 79 20 66 69 6c 74 65 72 .base.of.this.stack...Any.filter
b9400 65 64 20 72 65 73 75 6c 74 20 6d 61 79 20 62 65 20 70 75 73 68 65 64 20 74 6f 20 74 68 69 73 0a ed.result.may.be.pushed.to.this.
b9420 73 74 61 63 6b 20 61 74 20 61 6e 79 20 74 69 6d 65 2e 20 20 46 69 6c 74 65 72 73 20 61 6c 77 61 stack.at.any.time...Filters.alwa
b9440 79 73 20 6f 70 65 72 61 74 65 20 61 67 61 69 6e 73 74 20 74 68 65 20 63 61 63 68 65 20 61 74 20 ys.operate.against.the.cache.at.
b9460 74 68 65 20 74 6f 70 0a 6f 66 20 74 68 65 20 73 74 61 63 6b 2e 20 20 41 20 63 61 63 68 65 20 6d the.top.of.the.stack...A.cache.m
b9480 61 79 20 62 65 20 73 74 61 73 68 65 64 20 66 6f 72 20 6c 61 74 65 72 2c 20 61 6e 64 20 74 68 65 ay.be.stashed.for.later,.and.the
b94a0 20 75 73 75 61 6c 20 73 74 61 63 6b 0a 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 20 66 75 6e 63 74 69 .usual.stack.manipulation.functi
b94c0 6f 6e 73 20 65 78 69 73 74 2e 20 20 50 6f 70 2c 20 73 77 61 70 2c 20 73 77 61 70 2d 70 6f 70 2c ons.exist...Pop,.swap,.swap-pop,
b94e0 20 73 71 75 61 73 68 2c 20 63 6c 65 61 72 2c 0a 73 74 61 73 68 2c 20 61 6e 64 20 70 75 73 68 2e .squash,.clear,.stash,.and.push.
b9500 0a 0a 20 20 20 46 61 63 74 6f 72 69 65 73 20 64 65 66 69 6e 65 20 66 69 6c 74 65 72 73 20 66 72 .....Factories.define.filters.fr
b9520 6f 6d 20 64 61 74 61 20 61 6e 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 20 20 46 61 63 74 om.data.and.interactively...Fact
b9540 6f 72 69 65 73 20 61 72 65 0a 6b 65 70 74 20 69 6e 20 61 20 72 69 6e 67 2c 20 61 6e 64 20 65 61 ories.are.kept.in.a.ring,.and.ea
b9560 63 68 20 68 61 73 20 61 20 72 69 6e 67 20 6f 66 20 69 74 73 20 66 69 6c 74 65 72 73 2e 20 20 49 ch.has.a.ring.of.its.filters...I
b9580 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 63 72 65 61 74 69 6e 67 20 61 20 6e 65 77 20 66 69 6c 74 nteractively.creating.a.new.filt
b95a0 65 72 20 61 64 64 73 20 69 74 20 74 6f 20 74 68 65 20 72 69 6e 67 20 66 6f 72 20 74 68 65 20 73 er.adds.it.to.the.ring.for.the.s
b95c0 65 73 73 69 6f 6e 2e 20 20 50 65 72 73 6f 6e 61 6c 0a 66 69 6c 74 65 72 20 72 69 6e 67 73 20 63 ession...Personal.filter.rings.c
b95e0 61 6e 20 61 6c 73 6f 20 62 65 20 65 61 73 69 6c 79 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 66 an.also.be.easily.added.to.the.f
b9600 69 6c 74 65 72 20 6d 65 6e 75 20 72 69 6e 67 2e 0a 0a 20 20 20 54 68 65 72 65 20 69 73 20 61 6e ilter.menu.ring......There.is.an
b9620 6f 74 68 65 72 20 66 69 6c 74 65 72 20 72 69 6e 67 2c 20 77 68 69 63 68 20 63 61 6e 20 68 61 76 other.filter.ring,.which.can.hav
b9640 65 20 61 6e 79 20 66 69 6c 74 65 72 73 20 79 6f 75 20 6c 69 6b 65 2c 0a 61 6e 64 20 69 73 20 73 e.any.filters.you.like,.and.is.s
b9660 65 6c 65 63 74 61 62 6c 65 20 77 69 74 68 20 3c 20 61 6e 64 20 3e 2e 20 20 54 68 65 20 61 63 74 electable.with.<.and.>...The.act
b9680 69 76 65 20 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 72 69 6e 67 20 63 6f 6d 62 69 6e 65 73 0a ive.filter.on.the.ring.combines.
b96a0 77 69 74 68 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 74 6f 20 73 68 6f 77 20 74 68 with.the.filter.stack.to.show.th
b96c0 65 20 72 65 6e 64 65 72 65 64 20 72 65 73 75 6c 74 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 e.rendered.results.....File:.doc
b96e0 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 42 61 63 6b 77 61 72 64 20 43 6f 6d 7SuRxP.info,..Node:.Backward.Com
b9700 70 61 74 69 62 69 6c 69 74 79 2c 20 20 4e 65 78 74 3a 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f 6e patibility,..Next:.Filter.Compon
b9720 65 6e 74 73 2c 20 20 50 72 65 76 3a 20 46 69 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 63 68 65 ents,..Prev:.Filters.and.Searche
b9740 73 2c 20 20 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 32 20 s,..Up:.The.Filter.System..18.2.
b9760 42 61 63 6b 77 61 72 64 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d Backward.Compatibility.=========
b9780 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4d 61 69 6e 74 61 69 6e 69 6e 67 20 ==================..Maintaining.
b97a0 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 79 20 77 69 74 68 20 74 68 65 20 45 6d backward.compatibily.with.the.Em
b97c0 6d 6d 73 2d 62 72 6f 77 73 65 72 27 73 20 70 72 65 76 69 6f 75 73 0a 66 75 6e 63 74 69 6f 6e 61 mms-browser's.previous.functiona
b97e0 6c 69 74 79 20 77 61 73 20 61 20 70 72 69 6d 65 20 67 6f 61 6c 20 69 6e 20 63 72 65 61 74 69 6e lity.was.a.prime.goal.in.creatin
b9800 67 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 20 20 56 65 72 79 0a 6c 69 74 74 6c g.the.filter.system...Very.littl
b9820 65 20 69 73 20 6c 65 66 74 20 69 6e 20 63 6f 6d 6d 6f 6e 2c 20 62 75 74 20 74 68 65 20 42 72 6f e.is.left.in.common,.but.the.Bro
b9840 77 73 65 72 27 73 20 73 65 61 72 63 68 2d 62 79 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 20 41 wser's.search-by.and.filtering.A
b9860 50 49 0a 72 65 6d 61 69 6e 73 20 69 6e 74 61 63 74 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 73 20 PI.remains.intact.and.continues.
b9880 74 6f 20 62 65 68 61 76 65 20 61 73 20 62 65 66 6f 72 65 2e 20 20 41 6e 79 6f 6e 65 20 77 68 6f to.behave.as.before...Anyone.who
b98a0 20 68 61 73 20 6d 61 64 65 0a 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 .has.made.filter.functions.will.
b98c0 6e 6f 74 69 63 65 20 6e 6f 20 63 68 61 6e 67 65 20 69 6e 20 62 65 68 61 76 69 6f 72 20 6f 74 68 notice.no.change.in.behavior.oth
b98e0 65 72 20 74 68 61 6e 20 74 68 65 72 65 20 69 73 0a 6d 6f 72 65 20 66 6c 65 78 69 62 69 6c 69 74 er.than.there.is.more.flexibilit
b9900 79 20 69 6e 20 75 73 69 6e 67 20 74 68 65 69 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 20 20 20 y.in.using.their.functions......
b9920 54 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 72 65 70 6c 61 63 65 73 20 62 6f 74 68 20 The.filter.system.replaces.both.
b9940 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 73 20 61 6e 64 20 73 65 61 72 63 68 2d emms-browser.filters.and.search-
b9960 62 79 0a 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 2e 20 20 54 68 65 20 45 6d 6d 73 2d 62 72 by.functionalities...The.Emms-br
b9980 6f 77 73 65 72 20 41 50 49 20 72 65 6d 61 69 6e 73 20 69 6e 20 70 6c 61 63 65 2c 20 68 6f 77 65 owser.API.remains.in.place,.howe
b99a0 76 65 72 0a 75 6e 64 65 72 6e 65 61 74 68 20 74 68 65 20 41 50 49 20 69 74 20 75 73 65 73 20 74 ver.underneath.the.API.it.uses.t
b99c0 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 66 6f 72 20 61 6c 6c 20 6f 66 20 69 74 73 20 he.filter.system.for.all.of.its.
b99e0 70 75 72 70 6f 73 65 73 2e 0a 0a 20 20 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d purposes......Emms-browser-make-
b9a00 66 69 6c 74 65 72 20 61 6e 64 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 filter.and.emms-browser-search-b
b9a20 79 20 75 73 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 0a 66 6f 72 20 74 68 65 69 72 20 63 75 72 y.use.emms-filters.for.their.cur
b9a40 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e 20 20 54 68 65 20 73 65 61 72 63 68 2d rent.functionality...The.search-
b9a60 62 79 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 69 73 20 71 75 69 74 65 0a 73 69 6d 70 6c 65 by.functionality.is.quite.simple
b9a80 2e 20 20 45 6d 75 6c 61 74 69 6e 67 20 74 68 65 20 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 73 ...Emulating.the.browser.filters
b9aa0 20 77 61 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 20 61 6e 64 20 68 61 73 20 61 0a .was.more.complicated.and.has.a.
b9ac0 74 68 69 6e 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 6c 61 79 65 72 20 69 6e 20 27 65 6d 6d thin.compatibility.layer.in.'emm
b9ae0 73 2d 62 72 6f 77 73 65 72 2e 65 6c 27 2e 0a 0a 20 20 20 49 6e 20 61 6c 6c 20 63 61 73 65 73 2c s-browser.el'......In.all.cases,
b9b00 20 6f 62 74 61 69 6e 69 6e 67 20 74 68 65 20 73 61 6d 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 .obtaining.the.same.functionalit
b9b20 69 65 73 20 73 6f 6c 65 79 20 77 69 74 68 69 6e 0a 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 69 73 ies.soley.within.emms-filters.is
b9b40 20 73 69 6d 70 6c 65 72 20 61 6e 64 20 61 6e 64 20 6d 6f 72 65 20 70 6f 77 65 72 66 75 6c 2e 0a .simpler.and.and.more.powerful..
b9b60 0a 20 20 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e ....Emms-browser-filter.function
b9b80 73 20 61 72 65 20 73 70 65 63 69 66 69 65 64 20 74 6f 20 72 65 74 75 72 6e 20 61 6e 20 69 6e 76 s.are.specified.to.return.an.inv
b9ba0 65 72 74 65 64 0a 76 61 6c 75 65 2e 20 20 74 68 65 20 6f 6c 64 20 27 65 6d 6d 73 2d 62 72 6f 77 erted.value...the.old.'emms-brow
b9bc0 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 27 20 68 61 64 20 61 20 73 6c 69 67 68 74 6c 79 20 ser-make-filter'.had.a.slightly.
b9be0 64 69 66 66 65 72 65 6e 74 0a 6d 65 63 68 61 6e 69 73 6d 20 66 72 6f 6d 20 74 68 65 20 66 69 6c different.mechanism.from.the.fil
b9c00 74 65 72 20 73 79 73 74 65 6d 27 73 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d ter.system's.'emms-filters-make-
b9c20 66 69 6c 74 65 72 27 2e 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 filter'..emms-browser-make-filte
b9c40 72 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 74 6f 20 70 61 73 73 20 69 74 73 20 r.has.been.modified.to.pass.its.
b9c60 66 69 6c 74 65 72 73 20 74 6f 20 74 68 65 0a 65 6d 6d 73 2d 66 69 6c 74 65 72 20 73 79 73 74 65 filters.to.the.emms-filter.syste
b9c80 6d 2e 20 20 54 68 6f 73 65 20 66 69 6c 74 65 72 73 20 77 69 6c 6c 20 62 65 20 70 72 6f 70 65 72 m...Those.filters.will.be.proper
b9ca0 6c 79 20 69 6e 76 65 72 74 65 64 20 61 6e 64 20 61 64 64 65 64 0a 74 6f 20 74 68 65 20 6b 6e 6f ly.inverted.and.added.to.the.kno
b9cc0 77 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 61 6e 64 20 74 6f 20 74 wn.emms-filters-filters.and.to.t
b9ce0 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 0a 77 68 69 63 he.emms-filters-filter-ring.whic
b9d00 68 20 65 6d 75 6c 61 74 65 73 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 62 72 6f 77 73 65 72 20 h.emulates.the.original.browser.
b9d20 66 69 6c 74 65 72 20 72 69 6e 67 2e 20 20 54 68 69 73 20 70 72 6f 76 69 64 65 73 20 61 0a 73 65 filter.ring...This.provides.a.se
b9d40 61 6d 6c 65 73 73 20 65 78 70 65 72 69 65 6e 63 65 20 66 6f 72 20 70 72 65 76 69 6f 75 73 20 75 amless.experience.for.previous.u
b9d60 73 65 72 73 20 6f 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 69 6e 67 2e 20 sers.of.emms-browser.filtering..
b9d80 20 41 73 0a 74 68 65 20 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 46 49 4c 54 45 52 2d 52 49 4e 47 .As.the.EMMS-FILTERS-FILTER-RING
b9da0 20 69 73 20 66 75 6e 63 74 69 6f 6e 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 .is.functionally.equivalent.to.t
b9dc0 68 65 20 62 72 6f 77 73 65 72 27 73 0a 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 20 20 20 54 68 he.browser's.filter.ring......Th
b9de0 65 20 62 72 6f 77 73 65 72 27 73 20 27 53 65 61 72 63 68 2d 62 79 27 20 77 61 73 20 6a 75 73 74 e.browser's.'Search-by'.was.just
b9e00 20 6f 6e 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 2c 20 77 68 69 63 68 0a 63 6f 72 72 65 .one.filter.factory,.which.corre
b9e20 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 27 73 20 27 66 sponds.to.the.filter.system's.'f
b9e40 69 65 6c 64 73 20 73 65 61 72 63 68 27 20 66 61 63 74 6f 72 79 2c 20 61 6e 64 20 73 65 61 72 63 ields.search'.factory,.and.searc
b9e60 68 65 73 0a 61 72 65 20 6e 6f 74 20 69 6e 76 65 72 74 65 64 2e 20 20 54 68 65 20 6f 6e 6c 79 20 hes.are.not.inverted...The.only.
b9e80 72 65 61 6c 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 62 72 6f 77 real.difference.between.the.brow
b9ea0 73 65 72 27 73 20 66 69 6c 74 65 72 0a 61 6e 64 20 61 20 73 65 61 72 63 68 20 77 61 73 20 74 68 ser's.filter.and.a.search.was.th
b9ec0 61 74 20 61 20 66 69 6c 74 65 72 20 77 61 73 20 72 65 6e 64 65 72 65 64 20 61 6e 64 20 61 20 73 at.a.filter.was.rendered.and.a.s
b9ee0 65 61 72 63 68 20 77 61 73 20 73 61 76 65 64 20 74 6f 20 61 0a 68 61 73 68 20 66 6f 72 20 73 75 earch.was.saved.to.a.hash.for.su
b9f00 62 73 65 71 75 65 6e 74 20 66 69 6c 74 65 72 69 6e 67 2e 20 20 46 69 6c 74 65 72 73 20 63 6f 75 bsequent.filtering...Filters.cou
b9f20 6c 64 6e 27 74 20 66 69 6c 74 65 72 20 61 20 73 65 61 72 63 68 2c 20 61 6e 64 0a 6e 65 69 74 68 ldn't.filter.a.search,.and.neith
b9f40 65 72 20 63 6f 75 6c 64 20 77 6f 72 6b 20 61 67 61 69 6e 73 74 20 61 6e 79 74 68 69 6e 67 20 62 er.could.work.against.anything.b
b9f60 75 74 20 74 68 65 20 45 6d 6d 73 2d 63 61 63 68 65 2d 64 62 2e 20 20 54 68 65 0a 65 71 75 69 76 ut.the.Emms-cache-db...The.equiv
b9f80 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 alent.to.the.emms-browser.search
b9fa0 2d 62 79 20 69 73 20 6a 75 73 74 20 61 20 6f 6e 65 20 73 68 6f 74 20 69 6e 74 65 72 61 63 74 69 -by.is.just.a.one.shot.interacti
b9fc0 76 65 0a 27 6e 65 77 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 27 20 66 69 6c 74 65 72 20 66 61 ve.'new.fields-search'.filter.fa
b9fe0 63 74 6f 72 79 20 74 68 61 74 20 73 61 76 65 73 20 61 20 63 61 63 68 65 20 61 6e 64 20 74 68 65 ctory.that.saves.a.cache.and.the
ba000 6e 20 72 65 6d 6f 76 65 73 0a 69 74 73 65 6c 66 2e 0a 0a 20 20 20 45 6d 6d 73 2d 46 69 6c 74 65 n.removes.itself......Emms-Filte
ba020 72 73 20 69 73 20 61 67 6e 6f 73 74 69 63 20 61 62 6f 75 74 20 74 68 65 20 72 65 6e 64 65 72 65 rs.is.agnostic.about.the.rendere
ba040 72 2e 20 20 43 75 72 72 65 6e 74 6c 79 20 74 68 65 72 65 20 68 61 73 0a 62 65 65 6e 20 61 20 6c r...Currently.there.has.been.a.l
ba060 6f 74 20 6f 66 20 65 66 66 6f 72 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 62 61 63 6b 77 61 72 64 ot.of.effor.to.maintain.backward
ba080 20 63 6f 6d 70 61 74 69 62 69 74 79 20 77 69 74 68 20 74 68 65 0a 45 6d 6d 73 2d 62 72 6f 77 73 .compatibity.with.the.Emms-brows
ba0a0 65 72 20 61 73 20 69 74 73 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 77 61 73 20 72 65 70 6c er.as.its.functionality.was.repl
ba0c0 61 63 65 64 2e 20 20 54 68 65 72 65 20 61 72 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 68 aced...There.are.the.following.h
ba0e0 6f 6f 6b 73 20 74 68 61 74 20 61 6e 79 20 72 65 6e 64 65 72 65 72 20 63 6f 75 6c 64 20 75 73 65 ooks.that.any.renderer.could.use
ba100 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6c 65 76 65 72 61 67 65 20 45 6d 6d 73 2d 46 69 6c 74 65 .in.order.to.leverage.Emms-Filte
ba120 72 73 2e 0a 0a 20 20 20 54 6f 20 6d 61 69 6e 74 61 69 6e 20 69 6e 64 65 70 65 6e 64 65 6e 63 65 rs......To.maintain.independence
ba140 20 74 68 65 72 65 20 61 72 65 20 74 68 72 65 65 20 68 6f 6f 6b 20 76 61 72 69 61 62 6c 65 73 20 .there.are.three.hook.variables.
ba160 77 68 69 63 68 20 61 6c 6c 6f 77 0a 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 74 6f 20 69 6e 74 65 which.allow.emms-filters.to.inte
ba180 72 61 63 74 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 73 20 66 75 6e 63 ract.with.the.Emms-Browsers.func
ba1a0 74 69 6f 6e 61 6c 69 74 79 2e 0a 0a 20 20 20 54 68 65 20 66 69 72 73 74 20 69 73 20 61 20 64 65 tionality......The.first.is.a.de
ba1c0 66 63 75 73 74 6f 6d 20 68 6f 6f 6b 20 74 6f 20 6d 69 72 72 6f 72 20 74 68 65 20 62 72 6f 77 73 fcustom.hook.to.mirror.the.brows
ba1e0 65 72 27 73 20 64 65 70 72 65 63 61 74 65 64 20 68 6f 6f 6b 0a 6f 66 20 74 68 65 20 73 61 6d 65 er's.deprecated.hook.of.the.same
ba200 20 6e 61 6d 65 2e 20 20 54 68 65 20 73 65 63 6f 6e 64 20 68 6f 6f 6b 20 68 61 70 70 65 6e 73 20 .name...The.second.hook.happens.
ba220 6a 75 73 74 20 61 66 74 65 72 2c 20 61 6e 64 20 69 73 20 66 6f 72 20 61 6e 79 0a 72 65 6e 64 65 just.after,.and.is.for.any.rende
ba240 72 65 72 20 74 68 61 74 20 77 69 73 68 65 73 20 74 6f 20 72 65 2d 72 65 6e 64 65 72 20 77 68 65 rer.that.wishes.to.re-render.whe
ba260 6e 20 61 20 66 69 6c 74 65 72 20 63 68 61 6e 67 65 73 2e 20 20 54 68 65 20 74 68 69 72 64 20 68 n.a.filter.changes...The.third.h
ba280 6f 6f 6b 0a 69 73 20 74 6f 20 74 65 6c 6c 20 61 6e 79 20 72 65 6e 64 65 72 65 72 20 74 6f 20 65 ook.is.to.tell.any.renderer.to.e
ba2a0 78 70 61 6e 64 20 69 74 73 20 72 65 6e 64 65 72 20 69 66 20 74 68 65 72 65 20 69 73 20 61 20 66 xpand.its.render.if.there.is.a.f
ba2c0 69 6c 74 65 72 20 6f 72 0a 63 61 63 68 65 20 73 74 61 63 6b 20 65 6e 74 72 79 20 70 72 65 73 65 ilter.or.cache.stack.entry.prese
ba2e0 6e 74 2e 0a 0a 20 20 20 54 68 69 73 20 61 20 64 65 66 63 75 73 74 6f 6d 20 68 6f 6f 6b 20 74 68 nt......This.a.defcustom.hook.th
ba300 61 74 20 69 73 20 72 75 6e 20 61 6e 79 74 69 6d 65 20 74 68 65 20 66 69 6c 74 65 72 73 20 63 68 at.is.run.anytime.the.filters.ch
ba320 61 6e 67 65 0a 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 46 49 4c 54 45 52 2d 43 48 41 4e 47 45 44 ange.EMMS-FILTERS-FILTER-CHANGED
ba340 2d 48 4f 4f 4b 0a 0a 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 -HOOK.......(add-hook.'emms-filt
ba360 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 27 6d 79 2d 66 69 6c 74 ers-filter-changed-hook.'my-filt
ba380 65 72 73 2d 68 61 76 65 2d 63 68 61 6e 67 65 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 20 20 20 54 ers-have-changed-function).....T
ba3a0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 68 6f 6f 6b 73 20 61 72 65 20 66 6f 72 20 74 he.following.two.hooks.are.for.t
ba3c0 68 65 20 72 65 6e 64 65 72 65 72 73 20 77 68 69 63 68 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 he.renderers.which.is.currently.
ba3e0 6a 75 73 74 0a 74 68 65 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 2e 20 20 54 68 65 73 65 20 68 6f just.the.Emms-Browser...These.ho
ba400 6f 6b 73 20 61 72 65 20 74 68 65 20 6d 65 63 68 61 6e 69 73 6d 20 75 73 65 64 20 74 6f 20 61 63 oks.are.the.mechanism.used.to.ac
ba420 74 75 61 6c 6c 79 20 66 69 6c 74 65 72 0a 61 6e 64 20 72 65 6e 64 65 72 20 74 68 65 20 74 72 61 tually.filter.and.render.the.tra
ba440 63 6b 73 2e 0a 0a 20 20 20 57 68 65 6e 20 74 68 65 20 66 69 6c 74 65 72 20 6f 72 20 63 61 63 68 cks......When.the.filter.or.cach
ba460 65 20 63 68 61 6e 67 65 73 20 45 6d 6d 73 2d 46 69 6c 74 65 72 73 20 6e 65 65 64 73 20 74 6f 20 e.changes.Emms-Filters.needs.to.
ba480 74 65 6c 6c 20 74 68 65 0a 72 65 6e 64 65 72 65 72 20 74 6f 20 72 65 2d 62 75 69 6c 64 20 69 74 tell.the.renderer.to.re-build.it
ba4a0 73 20 68 61 73 68 20 61 6e 64 20 64 69 73 70 6c 61 79 20 69 74 2e 20 20 46 6f 72 20 74 68 69 73 s.hash.and.display.it...For.this
ba4c0 20 70 75 72 70 6f 73 65 20 74 68 65 72 65 20 69 73 0a 61 6e 6f 74 68 65 72 20 68 6f 6f 6b 2c 20 .purpose.there.is.another.hook,.
ba4e0 74 68 65 20 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 4d 41 4b 45 2d 41 4e 44 2d 52 45 4e 44 45 52 the.EMMS-FILTERS-MAKE-AND-RENDER
ba500 2d 48 41 53 48 2d 48 4f 4f 4b 2e 0a 0a 20 20 20 54 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 -HASH-HOOK......The.Emms-browser
ba520 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 20 69 73 20 65 6d 6d 73 2d 62 72 6f 77 73 .function.for.this.is.emms-brows
ba540 65 2d 62 79 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 61 70 70 6c 69 65 73 20 74 68 65 e-by...This.function.applies.the
ba560 20 66 69 6c 74 65 72 73 2c 20 63 72 65 61 74 65 73 20 61 20 68 61 73 68 2c 20 61 6e 64 20 74 68 .filters,.creates.a.hash,.and.th
ba580 65 6e 20 70 6f 70 75 6c 61 74 65 73 20 61 6e 64 20 72 65 6e 64 65 72 73 20 61 0a 74 72 65 65 20 en.populates.and.renders.a.tree.
ba5a0 6f 66 20 64 61 74 61 2e 0a 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 of.data.......(add-hook.'emms-fi
ba5c0 6c 74 65 72 73 2d 6d 61 6b 65 2d 61 6e 64 2d 72 65 6e 64 65 72 2d 68 61 73 68 2d 68 6f 6f 6b 20 lters-make-and-render-hash-hook.
ba5e0 27 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 29 0a 0a 20 20 20 54 68 65 20 6c 61 73 74 20 68 6f 'emms-browse-by).....The.last.ho
ba600 6f 6b 20 69 73 20 74 68 65 20 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 45 58 50 41 4e 44 2d 52 45 ok.is.the.EMMS-FILTERS-EXPAND-RE
ba620 4e 44 45 52 2d 48 4f 4f 4b 2e 20 20 54 68 69 73 20 69 73 20 6a 75 73 74 0a 73 6f 20 74 68 61 74 NDER-HOOK...This.is.just.so.that
ba640 20 45 6d 6d 73 2d 46 69 6c 74 65 72 73 20 63 61 6e 20 74 65 6c 6c 20 74 68 65 20 72 65 6e 64 65 .Emms-Filters.can.tell.the.rende
ba660 72 65 72 20 74 6f 20 65 78 70 61 6e 64 20 69 74 73 20 74 72 65 65 20 77 68 65 6e 20 74 68 65 72 rer.to.expand.its.tree.when.ther
ba680 65 0a 69 73 20 61 20 66 69 6c 74 65 72 20 6f 72 20 63 61 63 68 65 20 73 74 61 63 6b 20 70 72 65 e.is.a.filter.or.cache.stack.pre
ba6a0 73 65 6e 74 20 61 6e 64 20 73 6f 6d 65 74 68 69 6e 67 20 68 61 73 20 63 68 61 6e 67 65 64 2e 20 sent.and.something.has.changed..
ba6c0 20 46 6f 72 0a 45 6d 6d 73 2d 42 72 6f 77 73 65 72 20 74 68 69 73 20 69 73 20 74 68 65 20 66 75 .For.Emms-Browser.this.is.the.fu
ba6e0 6e 63 74 69 6f 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 0a 0a nction.emms-browser-expand-all..
ba700 20 20 20 20 20 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d .....;;.(add-hook.'emms-filters-
ba720 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 expand-render-hook.'emms-browser
ba740 2d 65 78 70 61 6e 64 2d 61 6c 6c 29 0a 0a 20 20 20 54 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 -expand-all).....The.filter.syst
ba760 65 6d 20 69 73 20 6d 75 63 68 20 6d 6f 72 65 20 70 6f 77 65 72 66 75 6c 20 74 68 61 6e 20 74 68 em.is.much.more.powerful.than.th
ba780 65 20 70 72 65 76 69 6f 75 73 20 73 79 73 74 65 6d 20 6f 66 0a 66 69 6c 74 65 72 69 6e 67 20 61 e.previous.system.of.filtering.a
ba7a0 6e 64 20 73 65 61 72 63 68 69 6e 67 20 61 6e 64 20 69 73 20 6d 75 63 68 20 65 61 73 69 65 72 20 nd.searching.and.is.much.easier.
ba7c0 74 6f 20 75 73 65 20 62 6f 74 68 20 69 6e 20 63 6f 64 65 20 61 6e 64 0a 69 6e 74 65 72 61 63 74 to.use.both.in.code.and.interact
ba7e0 69 76 65 6c 79 20 77 68 69 6c 65 20 73 65 61 72 63 68 69 6e 67 20 79 6f 75 72 20 74 72 61 63 6b ively.while.searching.your.track
ba800 73 2e 0a 0a 20 20 20 48 65 72 65 20 69 73 20 61 20 73 75 6d 6d 61 72 79 20 6f 66 20 64 69 66 66 s......Here.is.a.summary.of.diff
ba820 65 72 65 6e 63 65 73 20 61 6e 64 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 68 65 20 66 69 6c 74 erences.and.features.of.the.filt
ba840 65 72 20 73 79 73 74 65 6d 2e 0a 0a 20 20 20 2a 20 46 69 6c 74 65 72 73 2c 20 6e 6f 20 6d 61 74 er.system......*.Filters,.no.mat
ba860 74 65 72 20 74 68 65 20 63 6f 6d 70 6c 65 78 69 74 79 2c 20 61 72 65 20 64 65 66 69 6e 65 64 20 ter.the.complexity,.are.defined.
ba880 65 6e 74 69 72 65 6c 79 20 61 73 20 64 61 74 61 2e 0a 20 20 20 2a 20 46 69 6c 74 65 72 73 20 63 entirely.as.data.....*.Filters.c
ba8a0 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 41 4e 44 2c 20 4f 52 20 61 73 20 77 an.be.combined.with.AND,.OR.as.w
ba8c0 65 6c 6c 20 61 73 20 41 4e 44 2d 4e 4f 54 2e 0a 20 20 20 2a 20 46 69 6c 74 65 72 73 20 72 65 74 ell.as.AND-NOT.....*.Filters.ret
ba8e0 75 72 6e 20 74 72 75 65 20 69 66 20 74 68 65 79 20 6d 61 74 63 68 20 74 68 65 20 74 72 61 63 6b urn.true.if.they.match.the.track
ba900 73 2e 0a 20 20 20 2a 20 46 69 6c 74 65 72 73 20 61 72 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 s.....*.Filters.are.lambda.funct
ba920 69 6f 6e 73 20 63 72 65 61 74 65 64 20 77 69 74 68 20 66 61 63 74 6f 72 69 65 73 20 66 72 6f 6d ions.created.with.factories.from
ba940 20 64 61 74 61 2e 0a 20 20 20 2a 20 54 68 65 72 65 20 69 73 20 6e 6f 20 64 69 66 66 65 72 65 6e .data.....*.There.is.no.differen
ba960 63 65 20 62 65 74 77 65 65 6e 20 61 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 ce.between.a.search.function.and
ba980 20 61 20 66 69 6c 74 65 72 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 2a 20 54 68 .a.filter......function.....*.Th
ba9a0 65 20 66 61 63 74 6f 72 79 20 73 68 6f 75 6c 64 20 77 72 61 70 20 74 68 65 20 6c 61 6d 62 64 61 e.factory.should.wrap.the.lambda
ba9c0 20 69 6e 20 61 20 6c 65 74 20 77 69 74 68 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 20 74 .in.a.let.with.lexical-binding.t
ba9e0 2e 0a 20 20 20 2a 20 54 68 65 20 66 61 63 74 6f 72 69 65 73 20 61 6e 64 20 74 68 65 20 66 69 6c .....*.The.factories.and.the.fil
baa00 74 65 72 73 20 6d 75 73 74 20 62 6f 74 68 20 62 65 20 72 65 67 69 73 74 65 72 65 64 20 77 69 74 ters.must.both.be.registered.wit
baa20 68 0a 20 20 20 20 20 45 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 0a 20 20 20 2a 20 52 65 67 69 73 74 h......Emms-filters.....*.Regist
baa40 65 72 65 64 20 66 61 63 74 6f 72 69 65 73 20 68 61 76 65 20 61 20 62 75 69 6c 74 20 69 6e 20 69 ered.factories.have.a.built.in.i
baa60 6e 74 65 72 61 63 74 69 76 65 20 70 72 6f 6d 70 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a 20 20 20 nteractive.prompting.system.....
baa80 2a 20 41 6e 79 20 72 65 73 75 6c 74 73 20 63 61 6e 20 62 65 20 70 75 73 68 65 64 20 74 6f 20 74 *.Any.results.can.be.pushed.to.t
baaa0 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 66 6f 72 20 66 75 74 75 72 65 20 66 69 6c 74 65 72 he.cache.stack.for.future.filter
baac0 73 20 61 6e 64 0a 20 20 20 20 20 73 65 61 72 63 68 65 73 2e 0a 20 20 20 2a 20 43 6f 6d 70 6c 65 s.and......searches.....*.Comple
baae0 78 20 66 69 6c 74 65 72 73 20 61 72 65 20 63 72 65 61 74 65 64 20 69 6e 74 65 72 61 63 74 69 76 x.filters.are.created.interactiv
bab00 65 6c 79 20 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 0a 20 20 20 2a 20 53 65 ely.on.the.filter.stack.....*.Se
bab20 61 72 63 68 65 73 20 61 72 65 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 arches.are.interactively.created
bab40 20 66 69 6c 74 65 72 73 20 77 68 69 63 68 20 6c 65 61 76 65 20 61 20 63 61 63 68 65 20 6f 6e 0a .filters.which.leave.a.cache.on.
bab60 20 20 20 20 20 74 68 65 20 73 74 61 63 6b 2e 0a 20 20 20 2a 20 49 6e 74 65 72 61 63 74 69 76 65 .....the.stack.....*.Interactive
bab80 6c 79 20 63 72 65 61 74 65 64 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 73 61 76 65 64 20 ly.created.filters.can.be.saved.
baba0 61 73 20 64 61 74 61 20 66 6f 72 20 6c 61 74 65 72 20 75 73 65 2e 0a 20 20 20 2a 20 49 6e 74 65 as.data.for.later.use.....*.Inte
babc0 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 20 66 69 6c 74 65 72 73 20 72 65 6d 61 69 6e ractively.created.filters.remain
babe0 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e 75 0a 20 20 .in.the.filter.selection.menu...
bac00 20 20 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 ...for.the.session.....File:.doc
bac20 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f 7SuRxP.info,..Node:.Filter.Compo
bac40 6e 65 6e 74 73 2c 20 20 4e 65 78 74 3a 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 2c 20 nents,..Next:.Filter.Factories,.
bac60 20 50 72 65 76 3a 20 42 61 63 6b 77 61 72 64 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 20 .Prev:.Backward.Compatibility,..
bac80 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 33 20 46 69 6c 74 Up:.The.Filter.System..18.3.Filt
baca0 65 72 20 43 6f 6d 70 6f 6e 65 6e 74 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d er.Components.==================
bacc0 3d 3d 3d 3d 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ====..--------------------------
bace0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 54 68 65 20 66 69 6c 74 65 72 20 73 -------------------.The.filter.s
bad00 79 73 74 65 6d 20 63 6f 6e 73 69 73 74 73 0a 6f 66 20 61 20 66 65 77 20 64 69 66 66 65 72 65 6e ystem.consists.of.a.few.differen
bad20 74 20 6d 65 63 68 61 6e 69 73 6d 73 2e 20 20 54 68 65 72 65 20 61 72 65 20 66 61 63 74 6f 72 69 t.mechanisms...There.are.factori
bad40 65 73 20 74 6f 20 6d 61 6b 65 20 66 69 6c 74 65 72 73 2e 0a 54 68 65 72 65 20 69 73 20 74 68 65 es.to.make.filters..There.is.the
bad60 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 74 6f 20 6d 61 6e 61 67 65 20 74 68 65 20 63 72 65 61 .filter.stack.to.manage.the.crea
bad80 74 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 46 69 6c 74 65 72 73 tion.and.use.of.filters..Filters
bada0 20 63 61 6e 20 62 65 20 6d 61 64 65 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 0a 20 20 20 54 68 65 .can.be.made.of.filters......The
badc0 72 65 20 69 73 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 74 6f 20 68 61 6e 64 6c 65 20 re.is.the.cache.stack.to.handle.
bade0 74 68 65 20 73 61 76 69 6e 67 20 6f 66 20 61 20 73 65 74 20 6f 66 20 66 69 6c 74 65 72 65 64 0a the.saving.of.a.set.of.filtered.
bae00 72 65 73 75 6c 74 73 20 69 6e 74 6f 20 61 20 72 65 64 75 63 65 64 20 64 61 74 61 62 61 73 65 20 results.into.a.reduced.database.
bae20 63 61 63 68 65 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20 66 69 6c 74 65 72 73 2e 0a 0a 20 cache.for.subsequent.filters....
bae40 20 20 54 68 65 72 65 20 69 73 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 66 6f 72 20 71 ..There.is.the.filter.ring.for.q
bae60 75 69 63 6b 6c 79 20 73 77 69 74 63 68 69 6e 67 20 62 65 74 77 65 65 6e 20 63 6f 6d 6d 6f 6e 6c uickly.switching.between.commonl
bae80 79 20 75 73 65 64 0a 66 69 6c 74 65 72 73 2e 20 20 54 68 69 73 20 66 69 6c 74 65 72 20 69 73 20 y.used.filters...This.filter.is.
baea0 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 combined.with.the.current.filter
baec0 20 73 74 61 63 6b 20 74 6f 0a 72 65 6e 64 65 72 20 72 65 73 75 6c 74 73 2e 0a 0a 20 20 20 2a 20 .stack.to.render.results......*.
baee0 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 20 2d 20 54 6f 20 6d 61 6b 65 20 66 69 6c 74 65 Filter.Factories.-.To.make.filte
baf00 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 2a 20 46 69 6c 74 65 72 73 20 2d 20 44 65 66 69 r.functions.....*.Filters.-.Defi
baf20 6e 65 64 20 61 73 20 64 61 74 61 2e 20 20 44 79 6e 61 6d 69 63 61 6c 6c 79 20 63 72 65 61 74 65 ned.as.data...Dynamically.create
baf40 64 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 2a 20 46 69 6c 74 65 72 20 d.lambda.functions.....*.Filter.
baf60 6d 65 6e 75 20 2d 20 41 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 72 69 6e 67 20 6f 66 20 66 61 menu.-.A.customizable.ring.of.fa
baf80 63 74 6f 72 69 65 73 20 61 6e 64 20 74 68 65 69 72 20 72 69 6e 67 73 20 6f 66 0a 20 20 20 20 20 ctories.and.their.rings.of......
bafa0 66 69 6c 74 65 72 73 2e 0a 20 20 20 2a 20 4d 75 6c 74 69 2d 66 69 6c 74 65 72 20 2d 20 41 20 66 filters.....*.Multi-filter.-.A.f
bafc0 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 74 6f 20 63 72 65 61 74 65 20 66 69 6c 74 65 72 73 20 ilter.factory.to.create.filters.
bafe0 6d 61 64 65 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 20 20 20 2a 20 4d 65 74 61 2d 66 69 6c 74 65 made.of.filters.....*.Meta-filte
bb000 72 20 2d 20 41 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 64 61 74 61 20 64 65 66 69 6e 69 74 69 r.-.A.multi-filter.data.definiti
bb020 6f 6e 2e 0a 20 20 20 2a 20 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 2d 20 41 20 6d 65 on.....*.The.filter.stack.-.A.me
bb040 74 61 2d 66 69 6c 74 65 72 20 6d 61 6e 69 70 75 6c 61 74 6f 72 20 61 6e 64 20 6d 75 6c 74 69 2d ta-filter.manipulator.and.multi-
bb060 66 69 6c 74 65 72 0a 20 20 20 20 20 63 72 65 61 74 6f 72 2e 0a 20 20 20 2a 20 54 68 65 20 63 61 filter......creator.....*.The.ca
bb080 63 68 65 20 73 74 61 63 6b 20 2d 20 41 20 73 74 61 63 6b 20 6f 66 20 64 61 74 61 62 61 73 65 20 che.stack.-.A.stack.of.database.
bb0a0 63 61 63 68 65 73 2e 0a 20 20 20 2a 20 54 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 2d 20 41 caches.....*.The.filter.ring.-.A
bb0c0 20 73 75 62 73 65 74 20 6f 66 20 63 6f 6e 76 65 6e 69 65 6e 74 20 74 6f 20 75 73 65 20 66 69 6c .subset.of.convenient.to.use.fil
bb0e0 74 65 72 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 ters.....File:.doc7SuRxP.info,..
bb100 4e 6f 64 65 3a 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 2c 20 20 4e 65 78 74 3a 20 46 Node:.Filter.Factories,..Next:.F
bb120 61 63 74 6f 72 79 20 52 65 67 69 73 74 72 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 46 69 6c 74 actory.Registration,..Prev:.Filt
bb140 65 72 20 43 6f 6d 70 6f 6e 65 6e 74 73 2c 20 20 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 er.Components,..Up:.The.Filter.S
bb160 79 73 74 65 6d 0a 0a 31 38 2e 34 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 0a 3d 3d 3d ystem..18.4.Filter.Factories.===
bb180 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ==================..------------
bb1a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
bb1c0 2d 20 46 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 6d 61 6b 65 0a 66 69 6c 74 65 72 73 20 -.Filter.factories.make.filters.
bb1e0 77 68 69 63 68 20 61 72 65 20 73 69 6d 70 6c 79 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 73 20 which.are.simply.test.functions.
bb200 77 68 69 63 68 20 74 61 6b 65 20 61 20 74 72 61 63 6b 20 61 6e 64 20 72 65 74 75 72 6e 0a 74 72 which.take.a.track.and.return.tr
bb220 75 65 20 6f 72 20 66 61 6c 73 65 2e 0a 0a 20 20 20 46 61 63 74 6f 72 69 65 73 20 61 72 65 20 72 ue.or.false......Factories.are.r
bb240 65 67 69 73 74 65 72 65 64 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 20 73 egistered.with.the.Emms-filter.s
bb260 79 73 74 65 6d 20 73 6f 20 74 68 61 74 20 74 68 65 79 0a 68 61 76 65 20 6e 61 6d 65 73 20 74 68 ystem.so.that.they.have.names.th
bb280 61 74 20 63 61 6e 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 6c 61 74 65 72 2e 20 20 41 64 64 at.can.be.referenced.later...Add
bb2a0 69 74 69 6f 6e 61 6c 6c 79 2c 20 72 65 67 69 73 74 72 61 74 69 6f 6e 0a 69 6e 63 6c 75 64 65 73 itionally,.registration.includes
bb2c0 20 61 20 70 72 6f 6d 70 74 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 20 64 65 66 69 6e 69 74 69 .a.prompt.and.parameter.definiti
bb2e0 6f 6e 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 0a 45 6d 6d 73 2d 66 69 6c 74 65 72 on...This.allows.the.Emms-filter
bb300 73 20 70 72 6f 6d 70 74 69 6e 67 20 73 79 73 74 65 6d 20 74 6f 20 70 72 6f 76 69 64 65 20 61 6e s.prompting.system.to.provide.an
bb320 20 69 6e 74 65 72 61 63 74 69 76 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 61 6e 79 0a 66 69 .interactive.interface.to.any.fi
bb340 6c 74 65 72 20 66 61 63 74 6f 72 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 72 65 61 74 65 20 lter.factory.in.order.to.create.
bb360 6e 65 77 20 66 69 6c 74 65 72 73 20 61 74 20 61 6e 79 20 74 69 6d 65 2e 0a 0a 20 20 20 46 69 6c new.filters.at.any.time......Fil
bb380 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 64 65 70 65 6e 64 20 75 70 6f 6e 20 6c 65 78 69 63 61 ter.factories.depend.upon.lexica
bb3a0 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 69 72 20 70 61 72 61 6d 65 74 65 72 73 2e 20 20 l.context.of.their.parameters...
bb3c0 49 6e 0a 6f 72 64 65 72 20 74 6f 20 68 61 76 65 20 64 61 74 61 20 76 61 6c 75 65 73 20 74 68 61 In.order.to.have.data.values.tha
bb3e0 74 20 73 74 69 63 6b 20 61 66 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 69 6f 6e 20 t.stick.after.function.creation.
bb400 74 68 65 72 65 20 69 73 0a 6c 65 74 20 77 69 74 68 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e there.is.let.with.lexical-bindin
bb420 67 20 74 6f 20 65 6e 73 75 72 65 20 74 68 65 20 66 61 63 74 6f 72 79 20 62 65 68 61 76 65 73 20 g.to.ensure.the.factory.behaves.
bb440 61 73 20 65 78 70 65 63 74 65 64 2e 0a 54 68 69 73 20 74 72 61 6e 73 66 65 72 73 20 74 68 65 20 as.expected..This.transfers.the.
bb460 76 61 6c 75 65 73 20 74 6f 20 6c 6f 63 61 6c 20 76 61 6c 75 65 73 20 61 6e 64 20 75 73 65 73 20 values.to.local.values.and.uses.
bb480 74 68 65 6d 20 61 73 20 6e 6f 72 6d 61 6c 20 77 69 74 68 69 6e 0a 74 68 65 20 72 65 74 75 72 6e them.as.normal.within.the.return
bb4a0 65 64 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 2e 2e 2e 29 20 20 61 6e 6f 6e 79 6d ed.#'(lambda.(track)...)..anonym
bb4c0 6f 75 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c ous.function......As.an.example,
bb4e0 20 68 65 72 65 20 69 73 20 74 68 65 20 67 65 6e 65 72 69 63 20 66 69 65 6c 64 2d 63 6f 6d 70 61 .here.is.the.generic.field-compa
bb500 72 65 20 66 75 6e 63 74 69 6f 6e 2e 20 20 49 74 20 74 61 6b 65 73 0a 61 6e 20 6f 70 65 72 61 74 re.function...It.takes.an.operat
bb520 6f 72 20 66 75 6e 63 74 69 6f 6e 2c 20 61 20 66 69 65 6c 64 20 6e 61 6d 65 20 61 6e 64 20 74 68 or.function,.a.field.name.and.th
bb540 65 20 76 61 6c 75 65 20 74 6f 20 63 6f 6d 70 61 72 65 2e 20 20 54 68 69 73 0a 73 69 6e 67 6c 65 e.value.to.compare...This.single
bb560 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 61 20 6e 65 77 20 66 61 63 74 6f 72 79 20 66 .function.can.be.a.new.factory.f
bb580 6f 72 20 61 6e 79 20 64 61 74 61 20 66 69 65 6c 64 20 75 73 69 6e 67 20 61 6e 79 0a 63 6f 6d 70 or.any.data.field.using.any.comp
bb5a0 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 77 65 20 77 6f 75 6c 64 20 6c 69 6b 65 2e 0a 0a arison.function.we.would.like...
bb5c0 20 20 20 20 20 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 .....(defun.emms-filters-make-fi
bb5e0 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 20 28 6f 70 65 72 61 74 6f 72 2d 66 75 6e lter-field-compare.(operator-fun
bb600 63 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 0a 20 20 20 20 20 20 20 22 4d 61 6b c.field.compare-val)........"Mak
bb620 65 20 61 20 66 69 6c 74 65 72 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 46 49 45 4c 44 20 74 e.a.filter.that.compares.FIELD.t
bb640 6f 20 43 4f 4d 50 41 52 45 2d 56 41 4c 55 45 20 77 69 74 68 20 4f 50 45 52 41 54 4f 52 2d 46 55 o.COMPARE-VALUE.with.OPERATOR-FU
bb660 4e 43 2e 0a 20 20 20 20 20 57 6f 72 6b 73 20 66 6f 72 20 6e 75 6d 62 65 72 20 66 69 65 6c 64 73 NC.......Works.for.number.fields
bb680 20 61 6e 64 20 73 74 72 69 6e 67 20 66 69 65 6c 64 73 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 .and.string.fields.provided.the.
bb6a0 61 70 70 72 6f 70 72 69 61 74 65 0a 20 20 20 20 20 74 79 70 65 20 6d 61 74 63 68 20 62 65 74 77 appropriate......type.match.betw
bb6c0 65 65 6e 20 76 61 6c 75 65 73 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 een.values.and.the.comparison.fu
bb6e0 6e 63 74 69 6f 6e 2e 20 50 61 72 74 69 61 6c 73 20 63 61 6e 0a 20 20 20 20 20 65 61 73 69 6c 79 nction..Partials.can......easily
bb700 20 6d 61 6b 65 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 66 61 63 74 6f 72 79 20 66 75 6e 63 .make.more.specific.factory.func
bb720 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 69 73 20 6f 6e 65 2e 22 0a 20 20 20 20 20 20 20 28 6c 65 tions.from.this.one."........(le
bb740 74 20 28 28 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 6f 72 20 6f 70 65 72 61 74 6f 72 2d 66 75 6e 63 t.((local-operator.operator-func
bb760 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 66 69 )......................(local-fi
bb780 65 6c 64 20 66 69 65 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eld.field)......................
bb7a0 28 6c 6f 63 61 6c 2d 63 6f 6d 70 61 72 65 2d 76 61 6c 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 29 (local-compare-val.compare-val))
bb7c0 0a 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 20 ..........#'(lambda.(track).....
bb7e0 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 2d 76 61 6c 20 28 65 6d 6d 73 2d .........(let.((track-val.(emms-
bb800 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 6c 6f 63 61 6c 2d 66 69 65 6c 64 29 29 29 0a 20 track-get.track.local-field)))..
bb820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............(and..............
bb840 20 20 20 74 72 61 63 6b 2d 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 ...track-val.................(fu
bb860 6e 63 61 6c 6c 20 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 6f 72 20 6c 6f 63 61 6c 2d 63 6f 6d 70 61 ncall.local-operator.local-compa
bb880 72 65 2d 76 61 6c 20 74 72 61 63 6b 2d 76 61 6c 29 29 29 29 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 re-val.track-val))))))....File:.
bb8a0 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 61 63 74 6f 72 79 20 52 doc7SuRxP.info,..Node:.Factory.R
bb8c0 65 67 69 73 74 72 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 44 65 66 69 6e 65 64 20 46 61 63 74 egistration,..Next:.Defined.Fact
bb8e0 6f 72 69 65 73 2c 20 20 50 72 65 76 3a 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 2c 20 ories,..Prev:.Filter.Factories,.
bb900 20 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 35 20 46 61 63 .Up:.The.Filter.System..18.5.Fac
bb920 74 6f 72 79 20 52 65 67 69 73 74 72 61 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d tory.Registration.==============
bb940 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 52 65 67 69 73 74 65 72 69 6e 67 20 61 20 66 61 63 74 6f ===========..Registering.a.facto
bb960 72 79 20 61 73 73 6f 63 69 61 74 65 73 20 61 20 6e 61 6d 65 2c 20 61 20 66 75 6e 63 74 69 6f 6e ry.associates.a.name,.a.function
bb980 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 0a 64 65 66 69 6e 69 74 69 6f 6e .and.a.list.of.prompt.definition
bb9a0 73 20 73 6f 20 74 68 61 74 20 77 65 20 6d 61 79 20 63 72 65 61 74 65 20 66 69 6c 74 65 72 73 20 s.so.that.we.may.create.filters.
bb9c0 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 62 79 20 6e 61 6d 65 2e 20 20 54 68 65 0a 70 72 6f 6d interactively.by.name...The.prom
bb9e0 70 74 69 6e 67 20 73 79 73 74 65 6d 20 77 69 6c 6c 20 63 6f 65 72 63 65 20 74 68 65 20 76 61 6c pting.system.will.coerce.the.val
bba00 75 65 73 20 67 69 76 65 6e 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 74 79 70 65 0a ues.given.to.the.specified.type.
bba20 70 72 6f 76 69 64 69 6e 67 20 73 65 6c 65 63 74 20 6c 69 73 74 73 20 61 73 20 69 6e 64 69 63 61 providing.select.lists.as.indica
bba40 74 65 64 2e 0a 0a 20 20 20 54 68 65 20 66 61 63 74 6f 72 79 20 70 72 6f 6d 70 74 20 64 61 74 61 ted......The.factory.prompt.data
bba60 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 .is.used.to.interactively.create
bba80 20 6e 65 77 20 66 69 6c 74 65 72 73 2e 0a 41 20 70 72 6f 6d 70 74 20 69 73 20 28 70 72 6f 6d 70 .new.filters..A.prompt.is.(promp
bbaa0 74 20 28 74 79 70 65 20 2e 20 20 73 65 6c 65 63 74 2d 6c 69 73 74 29 29 20 69 66 20 74 68 65 72 t.(type....select-list)).if.ther
bbac0 65 20 69 73 20 6e 6f 20 73 65 6c 65 63 74 20 6c 69 73 74 20 77 65 0a 72 65 61 64 20 74 68 65 20 e.is.no.select.list.we.read.the.
bbae0 76 61 6c 75 65 20 61 6e 64 20 63 6f 65 72 63 65 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 74 68 value.and.coerce.the.value.to.th
bbb00 65 20 74 79 70 65 20 61 73 20 6e 65 65 64 65 64 2e 0a 0a 20 20 20 54 68 65 73 65 20 61 72 65 20 e.type.as.needed......These.are.
bbb20 74 68 65 20 6b 6e 6f 77 6e 20 63 6f 65 72 63 69 6f 6e 20 74 79 70 65 73 2e 0a 0a 20 20 20 2a 20 the.known.coercion.types......*.
bbb40 3a 6e 75 6d 62 65 72 0a 20 20 20 2a 20 3a 73 74 72 69 6e 67 0a 20 20 20 2a 20 3a 6c 69 73 74 0a :number....*.:string....*.:list.
bbb60 20 20 20 2a 20 3a 73 79 6d 62 6f 6c 0a 20 20 20 2a 20 3a 66 75 6e 63 74 69 6f 6e 0a 0a 20 20 20 ...*.:symbol....*.:function.....
bbb80 48 65 72 65 20 69 73 20 74 68 65 20 47 65 6e 72 65 20 46 61 63 74 6f 72 79 20 77 68 69 63 68 20 Here.is.the.Genre.Factory.which.
bbba0 69 73 20 61 63 74 75 61 6c 6c 79 20 6d 61 64 65 20 66 72 6f 6d 20 74 68 65 0a 66 69 65 6c 64 2d is.actually.made.from.the.field-
bbbc0 63 6f 6d 70 61 72 65 20 66 61 63 74 6f 72 79 2e 20 20 54 68 69 73 20 69 73 20 61 20 63 6f 6d 6d compare.factory...This.is.a.comm
bbbe0 6f 6e 20 70 61 74 74 65 72 6e 20 74 6f 20 63 72 65 61 74 65 20 61 20 73 69 6d 70 6c 65 72 0a 66 on.pattern.to.create.a.simpler.f
bbc00 61 63 74 6f 72 79 20 66 72 6f 6d 20 61 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 6f 6e 65 2e 20 actory.from.a.more.complex.one..
bbc20 20 49 74 20 69 73 20 73 69 6d 70 6c 79 20 61 20 70 61 72 74 69 61 6c 20 74 68 61 74 20 69 73 0a .It.is.simply.a.partial.that.is.
bbc40 72 65 67 69 73 74 65 72 65 64 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 20 61 20 64 69 66 66 65 registered.directly.with.a.diffe
bbc60 72 65 6e 74 20 73 65 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 20 20 49 6e 20 74 68 69 73 20 63 61 rent.set.of.prompts...In.this.ca
bbc80 73 65 0a 27 47 65 6e 72 65 3a 27 20 69 73 20 74 68 65 20 70 72 6f 6d 70 74 20 61 6e 64 20 69 74 se.'Genre:'.is.the.prompt.and.it
bbca0 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 61 20 73 74 72 69 6e 67 2e 0a 0a 20 20 .is.expected.to.be.a.string.....
bbcc0 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 ...(emms-filters-register-filter
bbce0 2d 66 61 63 74 6f 72 79 0a 20 20 20 20 20 20 22 47 65 6e 72 65 22 0a 20 20 20 20 20 20 28 61 70 -factory......."Genre".......(ap
bbd00 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 ply-partially.'emms-filters-make
bbd20 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 -filter-field-compare...........
bbd40 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 2d 65 71 75 61 6c 2d 69 67 6e 6f 72 .............'string-equal-ignor
bbd60 65 2d 63 61 73 65 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 20 20 20 20 20 20 27 28 28 22 47 65 e-case.'info-genre).......'(("Ge
bbd80 6e 72 65 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 3b 3b 0a 0a 20 20 20 nre:.".(:string...nil))));;.....
bbda0 54 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 6f 6d 70 61 72 65 The.registration.for.the.compare
bbdc0 20 66 69 65 6c 64 20 66 61 63 74 6f 72 79 20 69 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 0a 62 .field.factory.is.more.complex.b
bbde0 65 63 61 75 73 65 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 69 6e 67 20 66 6f 72 20 61 6c 6c 20 ecause.of.the.prompting.for.all.
bbe00 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 2e 20 20 42 79 20 63 68 61 6e 67 69 6e 67 20 6a 75 73 the.parameters...By.changing.jus
bbe20 74 20 74 68 65 0a 72 65 67 69 73 74 72 61 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 20 t.the.registration.name.and.the.
bbe40 70 72 6f 6d 70 74 73 20 77 65 20 63 61 6e 20 63 72 65 61 74 65 20 74 77 6f 20 66 61 63 74 6f 72 prompts.we.can.create.two.factor
bbe60 69 65 73 2c 20 6f 6e 65 20 66 6f 72 0a 6e 75 6d 62 65 72 73 20 61 6e 64 20 6f 6e 65 20 66 6f 72 ies,.one.for.numbers.and.one.for
bbe80 20 73 74 72 69 6e 67 73 2e 20 20 4e 6f 74 65 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 27 .strings...Note.the.use.of.the.'
bbea0 20 61 6e 64 20 2c 20 74 6f 20 66 6f 72 63 65 20 74 68 65 0a 73 65 6c 65 63 74 20 6c 69 73 74 73 .and.,.to.force.the.select.lists
bbec0 20 74 6f 20 72 65 73 6f 6c 76 65 20 77 69 74 68 69 6e 20 74 68 65 20 6c 61 6d 62 64 61 2e 0a 0a .to.resolve.within.the.lambda...
bbee0 20 20 20 48 65 72 65 20 69 73 20 74 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 66 6f 72 20 ...Here.is.the.registration.for.
bbf00 74 68 65 20 6e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 20 66 61 63 74 6f 72 79 the.number.field.compare.factory
bbf20 2e 20 20 54 68 65 0a 6f 70 65 72 61 74 6f 72 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 61 20 73 ...The.operator.function.has.a.s
bbf40 65 6c 65 63 74 20 6c 69 73 74 20 6f 66 20 6e 75 6d 62 65 72 20 63 6f 6d 70 61 72 69 73 6f 6e 20 elect.list.of.number.comparison.
bbf60 66 75 6e 63 74 69 6f 6e 73 2e 20 20 54 68 65 0a 66 69 65 6c 64 20 6e 61 6d 65 20 68 61 73 20 61 functions...The.field.name.has.a
bbf80 20 73 65 6c 65 63 74 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 6e 75 6d 65 72 69 63 20 66 69 .select.list.of.known.numeric.fi
bbfa0 65 6c 64 20 6e 61 6d 65 73 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 0a 74 6f 20 63 6f 6d 70 61 eld.names.and.the.value.to.compa
bbfc0 72 65 20 6d 75 73 74 20 62 65 20 61 20 6e 75 6d 62 65 72 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 re.must.be.a.number.and.will.be.
bbfe0 63 6f 65 72 63 65 64 20 61 73 20 6e 65 65 64 65 64 2e 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 66 coerced.as.needed........(emms-f
bc000 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 22 ilters-register-filter-factory."
bc020 4e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 22 0a 20 20 20 20 20 20 20 20 20 20 Number.field.compare"...........
bc040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 66 69 ........................'emms-fi
bc060 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a lters-make-filter-field-compare.
bc080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bc0a0 20 20 3b 3b 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..;;.prompts....................
bc0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 43 6f 6d 70 61 72 65 20 46 75 6e 63 74 ...............`(("Compare.Funct
bc0e0 69 6f 6e 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion:."..........................
bc100 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 65 6d 6d 73 2d 66 ............(:function...,emms-f
bc120 69 6c 74 65 72 73 2d 6e 75 6d 62 65 72 2d 63 6f 6d 70 61 72 65 2d 66 75 6e 63 74 69 6f 6e 73 29 ilters-number-compare-functions)
bc140 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
bc160 20 20 20 20 20 20 28 22 46 69 65 6c 64 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 ......("Field.name:."...........
bc180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 73 79 6d ...........................(:sym
bc1a0 62 6f 6c 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 65 72 2d 66 69 65 6c 64 bol...,emms-filters-number-field
bc1c0 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -names))........................
bc1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 43 6f 6d 70 61 72 65 20 74 6f 3a 20 22 0a 20 20 20 .............("Compare.to:."....
bc200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bc220 20 20 28 3a 6e 75 6d 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f ..(:number...nil))))....File:.do
bc240 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 65 66 69 6e 65 64 20 46 61 63 c7SuRxP.info,..Node:.Defined.Fac
bc260 74 6f 72 69 65 73 2c 20 20 4e 65 78 74 3a 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 2c tories,..Next:.Defining.Filters,
bc280 20 20 50 72 65 76 3a 20 46 61 63 74 6f 72 79 20 52 65 67 69 73 74 72 61 74 69 6f 6e 2c 20 20 55 ..Prev:.Factory.Registration,..U
bc2a0 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 36 20 44 65 66 69 6e p:.The.Filter.System..18.6.Defin
bc2c0 65 64 20 46 61 63 74 6f 72 69 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ed.Factories.===================
bc2e0 3d 3d 3d 0a 0a 54 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 64 65 66 69 6e ===..There.are.a.number.of.defin
bc300 65 64 20 66 61 63 74 6f 72 69 65 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 6a 75 73 74 20 61 ed.factories.derived.from.just.a
bc320 20 66 65 77 0a 66 75 6e 63 74 69 6f 6e 73 2e 20 20 4d 6f 73 74 20 63 6f 6d 6d 6f 6e 20 66 69 6c .few.functions...Most.common.fil
bc340 74 65 72 73 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 6d 61 64 65 20 77 69 74 68 20 74 68 65 ters.can.be.easily.made.with.the
bc360 73 65 2e 20 20 54 68 65 72 65 0a 61 72 65 20 61 20 66 65 77 20 70 72 65 64 69 66 69 6e 65 64 20 se...There.are.a.few.predifined.
bc380 66 69 6c 74 65 72 73 2c 20 62 75 74 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6b 65 70 74 20 filters,.but.that.has.been.kept.
bc3a0 74 6f 20 61 20 6d 69 6e 69 6d 75 6d 20 61 73 0a 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 61 to.a.minimum.as.filters.can.be.a
bc3c0 20 76 65 72 79 20 70 65 72 73 6f 6e 61 6c 20 74 68 69 6e 67 2e 20 20 54 68 65 72 65 20 61 72 65 .very.personal.thing...There.are
bc3e0 20 61 6c 72 65 61 64 79 20 66 69 6c 74 65 72 73 20 66 6f 72 0a 65 76 65 72 79 20 74 72 61 63 6b .already.filters.for.every.track
bc400 20 74 79 70 65 20 61 6e 64 20 74 68 65 72 65 20 6d 61 6e 79 20 63 6f 6d 6d 6f 6e 20 67 65 6e 72 .type.and.there.many.common.genr
bc420 65 73 20 61 6e 64 20 79 65 61 72 20 72 61 6e 67 65 20 66 69 6c 74 65 72 73 20 62 79 0a 64 65 63 es.and.year.range.filters.by.dec
bc440 61 64 65 2e 0a 0a 20 20 20 46 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 6c 69 6b 65 20 61 ade......Filter.factories.like.a
bc460 72 74 69 73 74 2c 20 61 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 63 6f 6d 70 6f 73 65 72 2c 20 4e rtist,.album.artist,.composer,.N
bc480 61 6d 65 73 2c 20 65 74 63 2e 0a 61 72 65 20 61 6c 6c 20 6a 75 73 74 20 73 70 65 63 69 61 6c 69 ames,.etc..are.all.just.speciali
bc4a0 7a 65 64 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 20 6f 72 20 74 68 65 20 66 69 65 6c 64 73 20 zed.field.compare.or.the.fields.
bc4c0 73 65 61 72 63 68 20 66 61 63 74 6f 72 69 65 73 2e 0a 0a 20 20 20 46 69 6c 74 65 72 20 66 61 63 search.factories......Filter.fac
bc4e0 74 6f 72 69 65 73 20 69 6e 63 6c 75 64 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 0a 20 tories.include.the.following....
bc500 20 20 2a 20 41 6c 62 75 6d 0a 20 20 20 2a 20 41 6c 62 75 6d 2d 61 72 74 69 73 74 0a 20 20 20 2a ..*.Album....*.Album-artist....*
bc520 20 41 6c 6c 20 74 65 78 74 20 66 69 65 6c 64 73 0a 20 20 20 2a 20 41 72 74 69 73 74 0a 20 20 20 .All.text.fields....*.Artist....
bc540 2a 20 41 72 74 69 73 74 73 0a 20 20 20 2a 20 41 72 74 69 73 74 73 20 61 6e 64 20 63 6f 6d 70 6f *.Artists....*.Artists.and.compo
bc560 73 65 72 0a 20 20 20 2a 20 43 6f 6d 70 6f 73 65 72 0a 20 20 20 2a 20 44 69 72 65 63 74 6f 72 79 ser....*.Composer....*.Directory
bc580 0a 20 20 20 2a 20 44 75 72 61 74 69 6f 6e 20 6c 65 73 73 0a 20 20 20 2a 20 44 75 72 61 74 69 6f ....*.Duration.less....*.Duratio
bc5a0 6e 20 6d 6f 72 65 0a 20 20 20 2a 20 46 69 65 6c 64 73 20 73 65 61 72 63 68 0a 20 20 20 2a 20 47 n.more....*.Fields.search....*.G
bc5c0 65 6e 72 65 0a 20 20 20 2a 20 47 72 65 61 74 65 72 20 74 68 61 6e 20 59 65 61 72 0a 20 20 20 2a enre....*.Greater.than.Year....*
bc5e0 20 4c 65 73 73 20 74 68 61 6e 20 59 65 61 72 0a 20 20 20 2a 20 4d 75 6c 74 69 2d 66 69 6c 74 65 .Less.than.Year....*.Multi-filte
bc600 72 0a 20 20 20 2a 20 4e 61 6d 65 73 0a 20 20 20 2a 20 4e 61 6d 65 73 20 61 6e 64 20 74 69 74 6c r....*.Names....*.Names.and.titl
bc620 65 73 0a 20 20 20 2a 20 4e 6f 74 20 70 6c 61 79 65 64 20 73 69 6e 63 65 0a 20 20 20 2a 20 4e 6f es....*.Not.played.since....*.No
bc640 74 65 73 0a 20 20 20 2a 20 4e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 0a 20 20 tes....*.Number.field.compare...
bc660 20 2a 20 4f 72 63 68 65 73 74 72 61 0a 20 20 20 2a 20 50 65 72 66 6f 72 6d 65 72 0a 20 20 20 2a .*.Orchestra....*.Performer....*
bc680 20 50 6c 61 79 65 64 20 73 69 6e 63 65 0a 20 20 20 2a 20 53 74 72 69 6e 67 20 66 69 65 6c 64 20 .Played.since....*.String.field.
bc6a0 63 6f 6d 70 61 72 65 0a 20 20 20 2a 20 54 69 74 6c 65 0a 20 20 20 2a 20 54 69 74 6c 65 73 0a 20 compare....*.Title....*.Titles..
bc6c0 20 20 2a 20 54 72 61 63 6b 20 74 79 70 65 0a 20 20 20 2a 20 59 65 61 72 20 72 61 6e 67 65 0a 0a ..*.Track.type....*.Year.range..
bc6e0 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 ..File:.doc7SuRxP.info,..Node:.D
bc700 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 46 69 6c 74 efining.Filters,..Next:.The.Filt
bc720 65 72 20 53 74 61 63 6b 2c 20 20 50 72 65 76 3a 20 44 65 66 69 6e 65 64 20 46 61 63 74 6f 72 69 er.Stack,..Prev:.Defined.Factori
bc740 65 73 2c 20 20 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 37 es,..Up:.The.Filter.System..18.7
bc760 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .Defining.Filters.==============
bc780 3d 3d 3d 3d 3d 3d 3d 0a 0a 4d 61 6b 69 6e 67 20 61 20 66 69 6c 74 65 72 20 69 6e 20 65 6c 69 73 =======..Making.a.filter.in.elis
bc7a0 70 20 66 72 6f 6d 20 61 20 66 61 63 74 6f 72 79 20 69 73 20 65 61 73 79 2e 0a 0a 20 20 20 28 65 p.from.a.factory.is.easy......(e
bc7c0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 3c 46 61 63 74 6f 72 79 mms-filters-make-filter.<Factory
bc7e0 20 4e 61 6d 65 3e 20 3c 46 69 6c 74 65 72 20 4e 61 6d 65 3e 20 3c 46 61 63 74 6f 72 79 0a 50 61 .Name>.<Filter.Name>.<Factory.Pa
bc800 72 61 6d 65 74 65 72 73 3e 29 0a 0a 20 20 20 54 68 65 20 47 65 6e 72 65 20 46 61 63 74 6f 72 79 rameters>).....The.Genre.Factory
bc820 20 74 61 6b 65 73 20 6f 6e 65 20 73 74 72 69 6e 67 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20 20 20 .takes.one.string.argument......
bc840 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 47 65 6e 72 .(emms-filters-make-filter."Genr
bc860 65 22 20 22 4d 79 20 47 65 6e 72 65 20 66 69 6c 74 65 72 22 20 22 53 6f 6d 65 76 61 6c 75 65 22 e"."My.Genre.filter"."Somevalue"
bc880 29 0a 0a 20 20 20 4d 61 6b 65 20 61 20 6c 6f 74 20 6f 66 20 66 69 6c 74 65 72 73 20 61 74 20 6f ).....Make.a.lot.of.filters.at.o
bc8a0 6e 63 65 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 nce.with.emms-filters-make-filte
bc8c0 72 73 2e 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c rs........(emms-filters-make-fil
bc8e0 74 65 72 73 20 27 28 28 22 47 65 6e 72 65 22 20 22 57 61 6c 74 7a 22 20 20 20 20 20 20 22 77 61 ters.'(("Genre"."Waltz"......"wa
bc900 6c 74 7a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ltz")..........................(
bc920 22 47 65 6e 72 65 22 20 22 53 61 6c 73 61 22 20 20 20 20 20 20 22 73 61 6c 73 61 22 29 0a 20 20 "Genre"."Salsa"......"salsa")...
bc940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 .......................("Genre".
bc960 22 42 6c 75 65 73 22 20 20 20 20 20 20 22 62 6c 75 65 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 "Blues"......"blues")...........
bc980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4a 61 7a 7a 22 20 20 ...............("Genre"."Jazz"..
bc9a0 20 20 20 20 20 22 6a 61 7a 7a 22 29 29 29 0a 0a 20 20 20 46 69 6c 74 65 72 73 20 63 61 6e 20 62 ....."jazz"))).....Filters.can.b
bc9c0 65 20 65 61 73 69 6c 79 20 63 72 65 61 74 65 64 20 69 6e 74 65 72 61 63 74 69 76 6c 79 2e 20 20 e.easily.created.interactivly...
bc9e0 4a 75 73 74 20 70 75 73 68 20 61 20 66 69 6c 74 65 72 20 6f 6e 74 6f 0a 74 68 65 20 73 74 61 63 Just.push.a.filter.onto.the.stac
bca00 6b 20 77 69 74 68 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 27 2c 20 27 65 6d 6d k.with.'emms-filters-push',.'emm
bca20 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 27 2c 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 s-filters-and',.'emms-filters-or
bca40 27 2c 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 27 2c 20 6f 72 20 27 65 ',.'emms-filters-and-not',.or.'e
bca60 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 27 2c 0a 73 65 6c 65 63 74 20 27 6e 65 77 mms-filters-squash',.select.'new
bca80 20 66 69 6c 74 65 72 27 20 74 68 65 6e 20 79 6f 75 72 20 66 61 63 74 6f 72 79 20 61 6e 64 20 66 .filter'.then.your.factory.and.f
bcaa0 6f 6c 6c 6f 77 20 74 68 65 20 70 72 6f 6d 70 74 73 2e 0a 0a 20 20 20 46 69 6c 74 65 72 73 20 61 ollow.the.prompts......Filters.a
bcac0 72 65 20 61 64 64 65 64 20 62 79 20 6e 61 6d 65 20 74 6f 20 74 68 65 69 72 20 72 65 73 70 65 63 re.added.by.name.to.their.respec
bcae0 74 69 76 65 20 66 61 63 74 6f 72 79 27 73 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 48 65 72 65 tive.factory's.filter.ring..Here
bcb00 20 61 72 65 20 73 6f 6d 65 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 20 64 65 .are.some.more.complex.filter.de
bcb20 66 69 6e 69 74 69 6f 6e 73 20 69 6e 63 6c 75 64 69 6e 67 20 73 6f 6d 65 0a 4d 75 6c 74 69 2d 66 finitions.including.some.Multi-f
bcb40 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 73 2c 20 6f 72 20 6d 65 74 61 2d 66 69 6c 74 65 ilter.definitions,.or.meta-filte
bcb60 72 73 20 77 68 69 63 68 20 61 72 65 20 73 69 6d 70 6c 79 20 6c 69 73 74 73 20 6f 66 0a 66 69 6c rs.which.are.simply.lists.of.fil
bcb80 74 65 72 73 20 62 79 20 6e 61 6d 65 2c 20 74 68 65 79 20 61 72 65 20 66 75 6e 63 74 69 6f 6e 61 ters.by.name,.they.are.functiona
bcba0 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 77 68 61 74 20 69 73 20 62 65 69 6e 67 20 lly.equivalent.to.what.is.being.
bcbc0 62 75 69 6c 74 0a 62 79 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 0a 0a 20 20 20 20 built.by.the.filter.stack.......
bcbe0 20 28 73 65 74 71 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 .(setq.tango-filters............
bcc00 27 28 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 30 30 2d 31 39 32 39 22 20 31 39 30 30 '(("Year.range"."1900-1929".1900
bcc20 20 31 39 32 39 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 .1929)..............("Year.range
bcc40 22 20 22 31 39 32 39 2d 31 39 33 37 22 20 31 39 32 39 20 31 39 33 37 29 0a 0a 20 20 20 20 20 20 "."1929-1937".1929.1937)........
bcc60 20 20 20 20 20 20 20 28 22 44 69 72 65 63 74 6f 72 79 22 20 22 74 61 6e 67 6f 74 75 6e 65 73 22 .......("Directory"."tangotunes"
bcc80 20 22 74 61 6e 67 6f 74 75 6e 65 73 66 6c 61 63 22 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 ."tangotunesflac")..............
bcca0 20 28 22 47 65 6e 72 65 22 20 22 56 61 6c 73 22 20 20 20 20 22 76 61 6c 73 22 29 0a 20 20 20 20 .("Genre"."Vals"...."vals").....
bccc0 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 54 61 6e 67 6f 22 20 20 20 22 74 61 6e .........("Genre"."Tango"..."tan
bcce0 67 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4d 69 6c 6f go")..............("Genre"."Milo
bcd00 6e 67 61 22 20 22 6d 69 6c 6f 6e 67 61 22 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 nga"."milonga")...............("
bcd20 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 31 39 30 Multi-filter"..............."190
bcd40 30 2d 31 39 33 37 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 22 31 39 30 30 2d 31 39 0-1937"...............(("1900-19
bcd60 32 39 22 20 22 31 39 32 39 2d 31 39 33 37 22 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 29"."1929-1937")))..............
bcd80 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 .("Multi-filter"..............."
bcda0 56 61 6c 73 20 7c 20 6d 69 6c 6f 6e 67 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 Vals.|.milonga"...............((
bcdc0 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 "Vals"."Milonga"))).............
bcde0 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..("Multi-filter"...............
bce00 22 56 61 6c 73 20 31 39 30 30 2d 31 39 32 39 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 "Vals.1900-1929"...............(
bce20 28 22 56 61 6c 73 22 29 20 28 22 31 39 30 30 2d 31 39 32 39 22 29 29 29 0a 0a 20 20 20 20 20 20 ("Vals").("1900-1929")))........
bce40 20 20 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 .......("Multi-filter"..........
bce60 20 20 20 20 20 22 4e 6f 74 20 76 61 6c 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 ....."Not.vals"...............((
bce80 3a 6e 6f 74 20 22 56 61 6c 73 22 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 4d :not."Vals")))...............("M
bcea0 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 56 61 6c 73 ulti-filter"..............."Vals
bcec0 20 6f 72 20 6d 69 6c 6f 6e 67 61 20 31 39 30 30 2d 31 39 33 37 22 0a 20 20 20 20 20 20 20 20 20 .or.milonga.1900-1937"..........
bcee0 20 20 20 20 20 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 0a 20 20 20 20 20 20 20 .....(("Vals"."Milonga")........
bcf00 20 20 20 20 20 20 20 20 28 22 31 39 30 30 2d 31 39 32 39 22 20 22 31 39 32 39 2d 31 39 33 37 22 ........("1900-1929"."1929-1937"
bcf20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 29 29 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d )))..............)).......(emms-
bcf40 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 20 74 61 6e 67 6f 2d 66 69 6c 74 65 filters-make-filters.tango-filte
bcf60 72 73 29 0a 0a 20 20 20 41 20 6e 65 77 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 46 61 63 74 6f rs).....A.new.entry.in.the.Facto
bcf80 72 79 20 72 69 6e 67 20 61 6c 6f 6e 67 20 77 69 74 68 20 69 74 27 73 20 66 69 6c 74 65 72 73 20 ry.ring.along.with.it's.filters.
bcfa0 63 61 6e 20 61 6c 73 6f 20 62 65 0a 65 61 73 69 6c 79 20 61 64 64 65 64 2e 20 20 54 68 69 73 20 can.also.be.easily.added...This.
bcfc0 66 75 6e 63 74 69 6f 6e 20 64 65 63 6f 6e 73 74 72 75 63 74 73 20 74 68 65 20 64 65 66 69 6e 69 function.deconstructs.the.defini
bcfe0 74 69 6f 6e 73 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 0a 74 68 65 20 65 61 73 65 20 6f 66 20 tions.to.facilitate.the.ease.of.
bd000 61 64 64 69 74 69 6f 6e 2e 20 20 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 6d 61 64 65 20 66 addition...It.can.also.be.made.f
bd020 72 6f 6d 20 61 20 73 69 6d 70 6c 65 20 6c 69 73 74 20 6f 66 20 6e 61 6d 65 73 0a 61 73 20 77 65 rom.a.simple.list.of.names.as.we
bd040 6c 6c 2e 20 20 54 68 65 20 66 69 6c 74 65 72 73 20 77 69 6c 6c 20 61 70 70 65 61 72 20 62 6f 74 ll...The.filters.will.appear.bot
bd060 68 20 75 6e 64 65 72 20 74 68 65 69 72 20 72 65 73 70 65 63 74 69 76 65 20 66 61 63 74 6f 72 69 h.under.their.respective.factori
bd080 65 73 2c 0a 61 6e 64 20 75 6e 64 65 72 20 74 68 69 73 20 6e 65 77 20 6d 65 6e 75 20 69 74 65 6d es,.and.under.this.new.menu.item
bd0a0 20 27 54 61 6e 67 6f 27 2e 20 20 54 68 65 79 20 61 72 65 20 6e 6f 74 20 72 65 63 72 65 61 74 65 .'Tango'...They.are.not.recreate
bd0c0 64 2c 20 62 75 74 0a 73 69 6d 70 6c 79 20 6c 69 73 74 65 64 20 62 79 20 74 68 65 69 72 20 6e 61 d,.but.simply.listed.by.their.na
bd0e0 6d 65 73 20 74 6f 20 62 65 20 63 68 6f 73 65 6e 2e 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 mes.to.be.chosen........(emms-fi
bd100 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 2d 66 72 6f 6d 2d 66 69 lters-add-to-filter-menu-from-fi
bd120 6c 74 65 72 2d 6c 69 73 74 20 22 54 61 6e 67 6f 22 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 29 lter-list."Tango".tango-filters)
bd140 0a 0a 20 20 20 48 65 72 65 20 69 73 20 74 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f 20 .....Here.is.the.easiest.way.to.
bd160 6d 61 6b 65 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 61 73 20 75 73 65 64 20 62 79 20 make.the.filter.ring.as.used.by.
bd180 74 68 65 0a 42 72 6f 77 73 65 72 2e 20 20 49 74 20 69 73 20 6a 75 73 74 20 61 20 6c 69 73 74 20 the.Browser...It.is.just.a.list.
bd1a0 6f 66 20 66 69 6c 74 65 72 20 6e 61 6d 65 73 2e 0a 0a 20 20 20 20 20 28 65 6d 6d 73 2d 66 69 6c of.filter.names........(emms-fil
bd1c0 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 27 28 22 54 61 6e 67 6f 22 20 ters-make-filter-ring.'("Tango".
bd1e0 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 29 0a 0a 20 20 20 54 68 65 20 66 69 6c 74 65 "Vals"."Milonga")).....The.filte
bd200 72 20 6d 65 6e 75 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 63 6f 6e 73 74 72 75 63 r.menu.is.automatically.construc
bd220 74 65 64 20 61 73 20 61 20 72 69 6e 67 20 6f 66 20 66 61 63 74 6f 72 79 0a 6e 61 6d 65 73 20 61 ted.as.a.ring.of.factory.names.a
bd240 73 20 27 66 6f 6c 64 65 72 73 27 20 74 68 61 74 20 68 61 76 65 20 61 20 72 69 6e 67 20 6f 66 20 s.'folders'.that.have.a.ring.of.
bd260 66 69 6c 74 65 72 73 2e 20 20 54 68 69 73 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 0a filters...This.filter.menu.tree.
bd280 63 61 6e 20 62 65 20 61 64 64 65 64 20 74 6f 20 69 6e 20 76 61 72 69 6f 75 73 20 77 61 79 73 2e can.be.added.to.in.various.ways.
bd2a0 20 20 27 4b 65 65 70 69 6e 67 27 20 61 20 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 66 69 6c 74 ..'Keeping'.a.filter.on.the.filt
bd2c0 65 72 20 73 74 61 63 6b 0a 77 69 6c 6c 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 61 64 64 20 74 68 er.stack.will.temporarily.add.th
bd2e0 65 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 20 66 69 e.multi-filter.defined.by.the.fi
bd300 6c 74 65 72 20 73 74 61 63 6b 20 74 6f 20 74 68 65 0a 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 72 lter.stack.to.the.multi-filter.r
bd320 69 6e 67 2e 0a 0a 20 20 20 54 68 65 72 65 20 61 72 65 20 6f 74 68 65 72 20 77 61 79 73 20 74 6f ing......There.are.other.ways.to
bd340 20 61 64 64 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 2e 0a 27 65 .add.to.the.filter.menu.tree..'e
bd360 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 2d 66 mms-filters-add-to-filter-menu-f
bd380 72 6f 6d 2d 66 69 6c 74 65 72 2d 6c 69 73 74 27 20 69 73 20 75 73 65 64 20 74 6f 0a 64 65 63 6f rom-filter-list'.is.used.to.deco
bd3a0 6e 73 74 72 75 63 74 20 61 20 76 61 72 69 61 62 6c 65 20 68 6f 6c 64 69 6e 67 20 66 69 6c 74 65 nstruct.a.variable.holding.filte
bd3c0 72 20 64 65 66 69 6e 74 69 6f 6e 73 20 61 73 20 69 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 61 r.defintions.as.in.the.example.a
bd3e0 62 6f 76 65 0a 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 72 69 bove.in.order.to.create.a.new.ri
bd400 6e 67 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 74 72 65 65 2e 0a 0a 20 20 20 49 6e 20 74 75 72 6e ng.in.the.menu.tree......In.turn
bd420 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 .that.function.uses.'emms-filter
bd440 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 27 20 77 68 69 63 68 0a 74 61 6b 65 s-add-to-filter-menu'.which.take
bd460 73 20 61 20 66 6f 6c 64 65 72 20 6e 61 6d 65 20 61 6e 64 20 61 20 66 69 6c 74 65 72 20 6f 72 20 s.a.folder.name.and.a.filter.or.
bd480 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 20 74 6f 20 70 6c 61 63 65 20 69 6e 20 74 68 65 0a list.of.filters.to.place.in.the.
bd4a0 72 69 6e 67 2e 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 ring...The.function.'emms-filter
bd4c0 73 2d 61 64 64 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 27 20 77 69 6c 6c 20 s-add-name-to-filter-menu'.will.
bd4e0 61 64 64 20 61 0a 66 69 6c 74 65 72 20 62 79 20 6e 61 6d 65 20 74 6f 20 61 6e 20 65 78 69 73 74 add.a.filter.by.name.to.an.exist
bd500 69 6e 67 20 66 69 6c 74 65 72 20 66 6f 6c 64 65 72 2f 66 61 63 74 6f 72 79 2e 0a 0a 20 20 20 49 ing.filter.folder/factory......I
bd520 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 t.is.also.possible.to.view.the.f
bd540 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 20 61 73 20 61 20 6d 65 73 73 61 67 65 20 77 69 74 ilter.menu.tree.as.a.message.wit
bd560 68 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 h.'emms-filters-show-filter-menu
bd580 27 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 '....File:.doc7SuRxP.info,..Node
bd5a0 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 74 61 63 6b 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 43 :.The.Filter.Stack,..Next:.The.C
bd5c0 61 63 68 65 20 53 74 61 63 6b 2c 20 20 50 72 65 76 3a 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 ache.Stack,..Prev:.Defining.Filt
bd5e0 65 72 73 2c 20 20 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e ers,..Up:.The.Filter.System..18.
bd600 38 20 54 68 65 20 46 69 6c 74 65 72 20 53 74 61 63 6b 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 8.The.Filter.Stack.=============
bd620 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 62 75 69 6c 64 ========..The.filter.stack.build
bd640 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 73 20 79 6f 75 20 70 75 s.more.complex.filters.as.you.pu
bd660 73 68 20 66 69 6c 74 65 72 73 20 74 6f 20 69 74 2e 0a 41 64 64 69 6e 67 20 74 6f 20 74 68 65 20 sh.filters.to.it..Adding.to.the.
bd680 66 69 6c 74 65 72 20 6f 72 20 72 65 70 6c 61 63 69 6e 67 20 69 74 20 77 69 74 68 20 61 6e 6f 74 filter.or.replacing.it.with.anot
bd6a0 68 65 72 20 70 75 73 68 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 0a 6d 65 74 61 2d 66 69 6c 74 her.push.creates.a.new.meta-filt
bd6c0 65 72 20 61 6e 64 20 69 74 27 73 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f er.and.it's.multi-filter.functio
bd6e0 6e 20 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 20 20 54 6f 0a 72 65 74 75 72 n.to.the.filter.stack...To.retur
bd700 6e 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 6c 74 65 72 20 73 69 6d 70 6c 79 20 n.to.the.previous.filter.simply.
bd720 70 6f 70 20 74 68 65 20 73 74 61 63 6b 2e 20 20 45 61 63 68 20 63 68 61 6e 67 65 20 74 6f 20 74 pop.the.stack...Each.change.to.t
bd740 68 65 0a 73 74 61 63 6b 2c 20 63 72 65 61 74 65 73 20 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 he.stack,.creates.a.meta-filter.
bd760 61 6e 64 20 69 74 27 73 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 6e 73 74 72 75 63 74 and.it's.corresponding.construct
bd780 65 64 0a 6d 65 74 61 2d 66 69 6c 74 65 72 2e 20 20 41 6e 79 20 63 68 61 6e 67 65 20 72 65 73 75 ed.meta-filter...Any.change.resu
bd7a0 6c 74 73 20 69 6e 20 61 20 6e 65 77 20 27 63 75 72 72 65 6e 74 27 20 6d 75 6c 74 69 2d 66 69 6c lts.in.a.new.'current'.multi-fil
bd7c0 74 65 72 2e 20 20 54 68 65 0a 66 69 6c 74 65 72 73 20 61 72 65 20 72 65 70 72 65 73 65 73 65 6e ter...The.filters.are.represesen
bd7e0 74 65 64 20 61 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 6e 61 6d 65 73 20 6f 66 20 ted.as.are.constructed.names.of.
bd800 74 68 65 20 66 69 6c 74 65 72 73 20 74 68 61 74 0a 63 72 65 61 74 65 64 20 69 74 2e 0a 0a 20 20 the.filters.that.created.it.....
bd820 20 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 75 73 65 73 20 6d 65 74 61 2d 66 69 6c 74 .The.filter.stack.uses.meta-filt
bd840 65 72 73 20 69 6e 20 61 20 63 6f 6e 73 20 6c 69 6b 65 20 74 68 69 73 3b 20 28 6e 61 6d 65 20 2e ers.in.a.cons.like.this;.(name..
bd860 0a 6d 65 74 61 2d 66 69 6c 74 65 72 29 2e 20 20 46 69 6c 74 65 72 20 6e 61 6d 65 73 20 66 6f 72 .meta-filter)...Filter.names.for
bd880 20 6d 65 74 61 2d 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 63 6f 6e 73 .meta-filters.can.be.easily.cons
bd8a0 74 72 75 63 74 65 64 0a 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 73 20 74 68 65 79 20 61 72 tructed.from.the.filters.they.ar
bd8c0 65 20 6d 61 64 65 20 66 72 6f 6d 2e 20 20 54 68 65 79 20 61 72 65 6e 27 74 20 73 68 6f 72 74 20 e.made.from...They.aren't.short.
bd8e0 62 75 74 20 74 68 65 79 20 77 6f 72 6b 0a 77 65 6c 6c 20 65 6e 6f 75 67 68 2e 0a 0a 20 20 20 54 but.they.work.well.enough......T
bd900 6f 20 75 73 65 20 61 20 66 69 6c 74 65 72 2c 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 o.use.a.filter,.'emms-filters-pu
bd920 73 68 27 20 69 74 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 63 75 72 72 65 6e 74 0a 66 sh'.it.to.create.a.new.current.f
bd940 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 20 20 49 74 20 77 69 6c 6c 20 62 65 63 ilter.on.the.stack...It.will.bec
bd960 6f 6d 65 20 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 ome.a.meta-filter.on.the.filter.
bd980 73 74 61 63 6b 0a 61 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 66 69 6c stack.and.the.current.active.fil
bd9a0 74 65 72 20 77 69 6c 6c 20 62 65 20 61 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 76 65 72 73 69 ter.will.be.a.multi-filter.versi
bd9c0 6f 6e 20 6f 66 20 69 74 2e 20 20 54 68 65 0a 66 75 6e 63 74 69 6f 6e 73 20 72 65 71 75 69 72 65 on.of.it...The.functions.require
bd9e0 64 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 75 6c 74 69 d.to.construct.the.current.multi
bda00 2d 66 69 6c 74 65 72 20 61 72 65 20 72 65 73 6f 6c 76 65 64 20 61 74 0a 74 68 69 73 20 74 69 6d -filter.are.resolved.at.this.tim
bda20 65 20 69 6e 20 61 20 6e 65 77 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6c 61 6d 62 64 61 20 66 e.in.a.new.multi-filter.lambda.f
bda40 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 54 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 77 6f 72 unction......The.filter.ring.wor
bda60 6b 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 6c 79 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 ks.independently.of.the.filter.s
bda80 74 61 63 6b 2e 20 20 45 61 63 68 0a 72 65 2d 66 69 6c 74 65 72 69 6e 67 20 6f 66 20 74 72 61 63 tack...Each.re-filtering.of.trac
bdaa0 6b 73 20 75 73 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 ks.uses.the.current.ring.filter.
bdac0 61 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 0a 66 69 6c 74 65 72 20 74 6f 67 65 74 68 65 72 2e and.the.current.filter.together.
bdae0 0a 0a 20 20 20 41 20 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 63 61 6e 20 62 .....A.filter.on.the.stack.can.b
bdb00 65 20 27 6b 65 70 74 27 2e 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 0a 27 65 6d 6d 73 2d 66 69 e.'kept'...The.function.'emms-fi
bdb20 6c 74 65 72 73 2d 6b 65 65 70 27 20 77 69 6c 6c 20 63 72 65 61 74 65 20 61 6e 64 20 72 65 67 69 lters-keep'.will.create.and.regi
bdb40 73 74 65 72 20 61 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6f 66 20 74 68 65 0a 63 75 72 72 65 ster.a.multi-filter.of.the.curre
bdb60 6e 74 20 66 69 6c 74 65 72 2c 20 61 64 64 69 6e 67 20 69 74 20 74 6f 20 74 68 65 20 6d 75 6c 74 nt.filter,.adding.it.to.the.mult
bdb80 69 2d 66 69 6c 74 65 72 20 6d 65 6e 75 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20 6c 61 73 74 73 0a i-filter.menu...This.only.lasts.
bdba0 75 6e 74 69 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 20 until.the.current.Emacs.session.
bdbc0 65 6e 64 73 2e 20 20 49 66 0a 45 4d 4d 53 2d 46 49 4c 54 45 52 53 2d 4d 55 4c 54 49 2d 46 49 4c ends...If.EMMS-FILTERS-MULTI-FIL
bdbe0 54 45 52 2d 53 41 56 45 2d 46 49 4c 45 20 69 73 20 73 65 74 2c 20 6b 65 65 70 20 77 69 6c 6c 20 TER-SAVE-FILE.is.set,.keep.will.
bdc00 61 70 70 65 6e 64 20 61 20 75 73 61 62 6c 65 0a 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f append.a.usable.filter.definitio
bdc20 6e 20 74 6f 20 74 68 65 20 66 69 6c 65 20 66 6f 72 20 72 65 75 73 65 20 61 73 20 79 6f 75 20 77 n.to.the.file.for.reuse.as.you.w
bdc40 69 73 68 2e 0a 0a 20 20 20 4f 74 68 65 72 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 6d 61 6e 69 ish......Other.commands.for.mani
bdc60 70 75 6c 61 74 69 6e 67 20 74 68 65 20 73 74 61 63 6b 20 61 72 65 20 6c 69 73 74 65 64 20 68 65 pulating.the.stack.are.listed.he
bdc80 72 65 2e 20 20 4d 6f 73 74 0a 73 68 6f 75 6c 64 20 62 65 20 73 65 6c 66 20 65 78 70 6c 61 6e 61 re...Most.should.be.self.explana
bdca0 74 6f 72 79 2c 20 53 71 75 61 73 68 20 63 6c 65 61 72 73 20 74 68 65 20 73 74 61 63 6b 2c 20 6c tory,.Squash.clears.the.stack,.l
bdcc0 65 61 76 69 6e 67 20 74 68 65 20 74 6f 70 6d 6f 73 74 0a 66 69 6c 74 65 72 2e 20 20 53 6d 61 73 eaving.the.topmost.filter...Smas
bdce0 68 20 69 73 20 61 20 63 6c 65 61 72 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 70 75 73 68 2e h.is.a.clear.followed.by.a.push.
bdd00 0a 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 27 0a 20 20 20 2a 20 27 .....*.'emms-filters-pop'....*.'
bdd20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d emms-filters-squash'....*.'emms-
bdd40 66 69 6c 74 65 72 73 2d 73 6d 61 73 68 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 filters-smash'....*.'emms-filter
bdd60 73 2d 63 6c 65 61 72 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 s-clear'....*.'emms-filters-swap
bdd80 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 27 0a 20 '....*.'emms-filters-swap-pop'..
bdda0 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b 65 65 70 27 0a 0a 20 20 20 41 6e 20 69 ..*.'emms-filters-keep'.....An.i
bddc0 6e 69 74 69 61 6c 20 66 69 6c 74 65 72 20 63 61 6e 20 62 65 20 63 72 65 61 74 65 64 20 77 69 74 nitial.filter.can.be.created.wit
bdde0 68 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 27 20 6f 72 0a 27 65 6d 6d 73 2d 66 h.'emms-filters-push'.or.'emms-f
bde00 69 6c 74 65 72 73 2d 73 6d 61 73 68 27 20 77 68 69 63 68 20 69 73 20 61 20 63 6c 65 61 72 20 66 ilters-smash'.which.is.a.clear.f
bde20 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 70 75 73 68 2e 0a 0a 20 20 20 41 64 64 69 6e 67 20 74 6f ollowed.by.a.push......Adding.to
bde40 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 27 .the.filter.stack.is.done.with.'
bde60 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 27 2c 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 emms-filters-and',.'emms-filters
bde80 2d 6f 72 27 2c 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 27 2c 0a 0a 1f -or',.'emms-filters-and-not',...
bdea0 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 .File:.doc7SuRxP.info,..Node:.Th
bdec0 65 20 43 61 63 68 65 20 53 74 61 63 6b 2c 20 20 4e 65 78 74 3a 20 53 68 6f 77 69 6e 67 20 53 74 e.Cache.Stack,..Next:.Showing.St
bdee0 61 74 65 2c 20 20 50 72 65 76 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 74 61 63 6b 2c 20 20 55 ate,..Prev:.The.Filter.Stack,..U
bdf00 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e 39 20 54 68 65 20 43 p:.The.Filter.System..18.9.The.C
bdf20 61 63 68 65 20 53 74 61 63 6b 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ache.Stack.====================.
bdf40 0a 54 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 73 69 6d 70 6c 79 20 61 20 73 .The.cache.stack.is.a.simply.a.s
bdf60 74 61 63 6b 20 6f 66 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 73 74 79 6c 65 20 68 61 73 68 tack.of.emms-cache-db.style.hash
bdf80 20 74 61 62 6c 65 73 2e 0a 54 68 65 20 66 75 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 .tables..The.full.emms-cache-db.
bdfa0 69 73 20 61 74 20 74 68 65 20 62 61 73 65 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 61 6e 64 20 is.at.the.base.of.the.stack.and.
bdfc0 69 73 20 61 6c 77 61 79 73 20 74 68 65 72 65 2e 0a 45 61 63 68 20 65 6e 74 72 79 20 69 6e 20 74 is.always.there..Each.entry.in.t
bdfe0 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 63 61 63 68 he.stack.is.a.subset.of.the.cach
be000 65 20 62 65 6c 6f 77 20 69 74 20 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 0a 66 69 6c 74 65 72 e.below.it.as.a.result.of.filter
be020 69 6e 67 2e 20 20 54 68 65 20 73 74 61 63 6b 20 65 6e 74 72 79 20 6e 61 6d 65 73 20 61 72 65 20 ing...The.stack.entry.names.are.
be040 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 73 20 77 68 69 constructed.from.the.filters.whi
be060 63 68 0a 63 72 65 61 74 65 64 20 74 68 65 6d 2e 0a 0a 20 20 20 46 69 6c 74 65 72 69 6e 67 20 61 ch.created.them......Filtering.a
be080 6e 64 20 64 69 73 70 6c 61 79 69 6e 67 20 6f 66 20 74 72 61 63 6b 73 20 69 73 20 64 6f 6e 65 20 nd.displaying.of.tracks.is.done.
be0a0 61 67 61 69 6e 73 74 20 74 68 65 20 74 6f 70 20 63 61 63 68 65 20 6f 6e 0a 74 68 65 20 73 74 61 against.the.top.cache.on.the.sta
be0c0 63 6b 2e 0a 0a 20 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 27 65 6d 6d 73 2d 66 69 6c 74 ck......The.function,.'emms-filt
be0e0 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 27 20 69 73 20 74 68 65 20 6d 6f 73 74 20 63 6f 6d ers-hard-filter'.is.the.most.com
be100 6d 6f 6e 20 77 61 79 20 74 6f 0a 63 72 65 61 74 65 20 61 6e 20 65 6e 74 72 79 20 6f 6e 20 74 68 mon.way.to.create.an.entry.on.th
be120 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 20 20 49 74 20 63 72 65 61 74 65 73 20 61 20 63 61 63 e.cache.stack...It.creates.a.cac
be140 68 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a 66 69 6c 74 65 72 20 61 6e 64 20 63 he.from.the.current.filter.and.c
be160 61 63 68 65 2c 20 61 6e 64 20 70 75 73 68 65 73 20 69 74 20 74 6f 20 74 68 65 20 73 74 61 63 6b ache,.and.pushes.it.to.the.stack
be180 2e 20 20 54 68 69 73 20 64 6f 65 73 20 72 65 6e 64 65 72 20 74 68 65 0a 63 75 72 72 65 6e 74 20 ...This.does.render.the.current.
be1a0 66 69 6c 74 65 72 20 61 73 20 6e 6f 6e 2d 65 66 66 65 63 74 69 76 65 2c 20 73 6f 20 69 74 20 63 filter.as.non-effective,.so.it.c
be1c0 61 6e 20 62 65 20 63 6c 65 61 72 65 64 2c 20 6f 72 20 63 6f 6e 74 69 6e 75 65 20 74 6f 0a 67 72 an.be.cleared,.or.continue.to.gr
be1e0 6f 77 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 79 6f 75 72 20 64 65 73 69 72 65 73 2e 20 20 49 ow.depending.on.your.desires...I
be200 74 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 6a 75 73 74 20 6b 65 65 70 20 67 6f 69 t.can.be.useful.to.just.keep.goi
be220 6e 67 20 73 6f 0a 74 68 61 74 20 72 65 74 75 72 6e 69 6e 67 20 74 6f 20 74 68 65 20 70 72 65 76 ng.so.that.returning.to.the.prev
be240 69 6f 75 73 20 73 74 61 74 65 20 69 73 20 70 6f 73 73 69 62 6c 65 2e 0a 0a 20 20 20 4f 6e 65 20 ious.state.is.possible......One.
be260 6f 66 20 74 68 65 20 64 72 69 76 69 6e 67 20 66 6f 72 63 65 73 20 77 69 74 68 20 63 72 65 61 74 of.the.driving.forces.with.creat
be280 69 6e 67 20 63 61 63 68 65 20 65 6e 74 72 69 65 73 20 77 61 73 20 74 68 65 20 77 61 79 0a 74 68 ing.cache.entries.was.the.way.th
be2a0 61 74 20 74 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 20 68 61 73 20 61 6c 77 61 79 73 20 64 at.the.Emms-browser.has.always.d
be2c0 6f 6e 65 20 73 65 61 72 63 68 69 6e 67 2e 20 20 54 6f 20 74 68 69 73 20 65 6e 64 2c 0a 61 64 64 one.searching...To.this.end,.add
be2e0 69 74 69 6f 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 77 61 73 20 63 72 65 61 74 65 itional.functionality.was.create
be300 64 20 74 6f 20 62 65 74 74 65 72 20 65 6d 75 6c 61 74 65 20 74 68 65 20 62 72 6f 77 73 65 72 27 d.to.better.emulate.the.browser'
be320 73 20 77 61 79 0a 6f 66 20 64 6f 69 6e 67 20 74 68 69 6e 67 73 2e 20 20 48 6f 77 65 76 65 72 20 s.way.of.doing.things...However.
be340 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 70 72 6f 76 69 64 65 73 20 61 20 6c 6f 74 20 6f the.cache.stack.provides.a.lot.o
be360 66 20 66 6c 65 78 69 62 69 6c 69 74 79 0a 61 6e 64 20 70 6f 77 65 72 20 69 6e 20 68 6f 77 20 79 f.flexibility.and.power.in.how.y
be380 6f 75 20 6e 61 76 69 67 61 74 65 20 61 6e 64 20 73 65 61 72 63 68 20 79 6f 75 72 20 6d 75 73 69 ou.navigate.and.search.your.musi
be3a0 63 2e 20 20 53 69 6d 70 6c 79 20 62 65 69 6e 67 20 61 62 6c 65 0a 74 6f 20 72 65 70 65 61 74 65 c...Simply.being.able.to.repeate
be3c0 64 6c 79 20 73 65 61 72 63 68 20 61 6e 64 20 6e 61 72 72 6f 77 20 74 68 65 20 64 61 74 61 20 69 dly.search.and.narrow.the.data.i
be3e0 73 20 71 75 69 74 65 20 70 6f 77 65 72 66 75 6c 20 61 6c 6c 20 62 79 0a 69 74 73 65 6c 66 2e 0a s.quite.powerful.all.by.itself..
be400 0a 20 20 20 4f 6e 65 2d 53 68 6f 74 20 66 69 6c 74 65 72 69 6e 67 20 61 6c 6c 6f 77 73 20 62 65 ....One-Shot.filtering.allows.be
be420 68 61 76 69 6f 72 61 6c 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 havioral.backward.compatibility.
be440 77 69 74 68 20 74 68 65 0a 62 72 6f 77 73 65 72 2e 20 20 4f 6e 65 20 73 68 6f 74 73 20 77 65 72 with.the.browser...One.shots.wer
be460 65 20 63 72 65 61 74 65 64 20 74 6f 20 65 6d 75 6c 61 74 65 20 74 68 65 20 62 72 6f 77 73 65 72 e.created.to.emulate.the.browser
be480 27 73 20 62 65 68 61 76 69 6f 72 20 6f 66 0a 63 72 65 61 74 69 6e 67 20 61 20 73 75 62 73 65 74 's.behavior.of.creating.a.subset
be4a0 20 63 61 63 68 65 20 66 72 6f 6d 20 73 65 61 72 63 68 2d 62 79 2e 20 20 4f 6e 65 20 73 68 6f 74 .cache.from.search-by...One.shot
be4c0 73 20 70 75 73 68 20 61 20 66 69 6c 74 65 72 2c 20 73 61 76 65 0a 74 6f 20 74 68 65 20 63 61 63 s.push.a.filter,.save.to.the.cac
be4e0 68 65 20 73 74 61 63 6b 20 61 6e 64 20 70 6f 70 20 74 68 65 20 66 69 6c 74 65 72 2c 20 6c 65 61 he.stack.and.pop.the.filter,.lea
be500 76 69 6e 67 20 6f 6e 6c 79 20 74 68 65 20 63 61 63 68 65 2e 0a 0a 20 20 20 55 73 69 6e 67 20 27 ving.only.the.cache......Using.'
be520 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 27 20 77 69 6c 6c 20 70 75 73 68 emms-filters-one-shot'.will.push
be540 20 61 20 66 69 6c 74 65 72 2c 20 70 75 73 68 20 61 20 63 61 63 68 65 2c 20 74 68 65 6e 0a 70 6f .a.filter,.push.a.cache,.then.po
be560 70 20 74 68 65 20 66 69 6c 74 65 72 2e 20 20 49 74 20 77 69 6c 6c 20 69 6e 74 65 72 61 63 74 69 p.the.filter...It.will.interacti
be580 76 65 6c 79 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 66 61 63 74 6f 72 79 2c 20 74 68 65 20 66 vely.prompt.for.a.factory,.the.f
be5a0 69 6c 74 65 72 2c 0a 61 6e 64 20 74 68 65 6e 20 74 68 65 20 66 69 6c 74 65 72 20 70 61 72 61 6d ilter,.and.then.the.filter.param
be5c0 65 74 65 72 73 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 69 6c 74 65 72 20 69 66 20 6e 6f 6e 65 eters.to.create.a.filter.if.none
be5e0 20 69 73 20 67 69 76 65 6e 2e 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f .is.given..'emms-filters-quick-o
be600 6e 65 2d 73 68 6f 74 27 20 74 61 6b 65 73 20 61 20 66 61 63 74 6f 72 79 20 6e 61 6d 65 2c 20 61 ne-shot'.takes.a.factory.name,.a
be620 6e 64 20 69 6e 76 6f 6b 65 73 20 74 68 65 0a 69 6e 74 65 72 61 63 74 69 76 65 20 63 72 65 61 74 nd.invokes.the.interactive.creat
be640 69 6f 6e 20 6f 66 20 61 20 6e 65 77 20 66 69 6c 74 65 72 20 77 69 74 68 20 74 68 61 74 20 66 61 ion.of.a.new.filter.with.that.fa
be660 63 74 6f 72 79 20 64 69 72 65 63 74 6c 79 2e 20 20 54 68 65 0a 63 6f 6d 6d 61 6e 64 20 27 65 6d ctory.directly...The.command.'em
be680 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 65 6c 64 73 2d 73 65 61 72 63 68 2d 71 75 69 63 6b 2d 6f ms-filters-fields-search-quick-o
be6a0 6e 65 2d 73 68 6f 74 27 20 69 73 20 61 20 6f 6e 65 2d 73 68 6f 74 20 75 73 69 6e 67 0a 74 68 65 ne-shot'.is.a.one-shot.using.the
be6c0 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 2c 20 77 .fields-search.filter.factory,.w
be6e0 68 69 6c 65 20 61 64 64 69 6e 67 20 74 6f 20 74 68 65 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 hile.adding.to.the.fields-search
be700 20 72 69 6e 67 0a 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 6d 65 6e 75 2d 74 72 65 65 2e 20 20 .ring.in.the.filter.menu-tree...
be720 54 68 65 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 66 61 63 74 6f 72 79 20 69 73 20 74 68 65 The.fields-search.factory.is.the
be740 20 66 69 6c 74 65 72 0a 73 79 73 74 65 6d 27 73 20 77 61 79 20 6f 66 20 65 6d 75 6c 61 74 69 6e .filter.system's.way.of.emulatin
be760 67 20 62 72 6f 77 73 65 72 27 73 20 73 65 61 72 63 68 2d 62 79 20 66 75 6e 63 74 69 6f 6e 61 6c g.browser's.search-by.functional
be780 69 74 79 2e 0a 0a 20 20 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 65 66 66 65 63 74 69 ity......These.functions.effecti
be7a0 76 65 6c 79 20 61 6c 6c 6f 77 20 74 68 65 20 65 6d 75 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 vely.allow.the.emulation.of.the.
be7c0 62 72 6f 77 73 65 72 27 73 0a 73 65 61 72 63 68 20 62 65 68 61 76 69 6f 72 20 6f 66 20 71 75 69 browser's.search.behavior.of.qui
be7e0 63 6b 6c 79 20 70 72 6f 6d 70 74 69 6e 67 2c 20 66 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 70 75 ckly.prompting,.filtering.and.pu
be800 73 68 69 6e 67 20 61 20 63 61 63 68 65 0a 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 70 6f 70 20 shing.a.cache.followed.by.a.pop.
be820 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 75 73 65 64 2e 20 20 42 79 20 74 68 65 20 67 72 61 63 of.the.filter.used...By.the.grac
be840 65 20 6f 66 20 74 68 61 74 2c 20 73 69 6d 70 6c 65 0a 77 72 61 70 70 65 72 20 66 75 6e 63 74 69 e.of.that,.simple.wrapper.functi
be860 6f 6e 73 20 66 6f 72 20 65 61 63 68 20 6f 66 20 74 68 65 20 62 72 6f 77 73 65 72 27 73 20 73 65 ons.for.each.of.the.browser's.se
be880 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 73 20 77 65 72 65 0a 63 72 65 61 74 65 64 20 75 73 69 6e arch.functions.were.created.usin
be8a0 67 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 2e 20 20 g.emms-filters-quick-one-shot...
be8c0 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 6e 61 6d 65 64 0a 61 66 74 65 72 20 These.functions.are.named.after.
be8e0 74 68 65 69 72 20 62 72 6f 77 73 65 72 20 65 71 75 69 76 61 6c 65 6e 74 73 20 61 73 20 65 6d 6d their.browser.equivalents.as.emm
be900 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 3c 66 69 65 6c 64 2d 6e 61 6d 65 73 s-filters-search-by-<field-names
be920 3e 2e 0a 54 68 65 20 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 73 20 >..The.browser.search.functions.
be940 6e 6f 77 20 63 61 6c 6c 20 74 68 65 73 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 66 75 6e now.call.these.filter.system.fun
be960 63 74 69 6f 6e 73 0a 64 69 72 65 63 74 6c 79 2e 0a 0a 20 20 20 4d 61 6e 69 70 75 6c 61 74 69 6e ctions.directly......Manipulatin
be980 67 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 g.the.cache.stack.is.similar.to.
be9a0 6d 61 6e 69 70 75 6c 61 74 69 6e 67 20 74 68 65 20 66 69 6c 74 65 72 0a 73 74 61 63 6b 2c 20 54 manipulating.the.filter.stack,.T
be9c0 68 65 20 75 73 75 61 6c 20 73 74 61 63 6b 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 3a 0a 20 20 20 he.usual.stack.commands.are:....
be9e0 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 27 0a 20 20 20 2a 20 *.'emms-filters-pop-cache'....*.
bea00 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 2d 63 61 63 68 65 73 27 0a 20 20 20 'emms-filters-squash-caches'....
bea20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 63 61 63 68 65 73 27 0a 20 20 *.'emms-filters-clear-caches'...
bea40 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 63 61 63 68 65 27 0a 20 20 20 .*.'emms-filters-swap-cache'....
bea60 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 2d 63 61 63 68 65 27 0a *.'emms-filters-swap-pop-cache'.
bea80 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 27 0a 20 ...*.'emms-filters-push-cache'..
beaa0 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 68 65 27 0a 20 ..*.'emms-filters-stash-cache'..
beac0 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 70 6f 70 2d 63 61 63 68 ..*.'emms-filters-stash-pop-cach
beae0 65 27 0a 0a 20 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 66 69 6c 74 65 e'.....The.functions.'emms-filte
beb00 72 73 2d 70 75 73 68 2d 63 61 63 68 65 27 2c 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 rs-push-cache',.'emms-filters-st
beb20 61 73 68 2d 63 61 63 68 65 27 0a 61 6e 64 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 ash-cache'.and.'emms-filters-sta
beb40 73 68 2d 70 6f 70 2d 63 61 63 68 65 27 20 61 6c 6c 6f 77 20 66 6f 72 20 61 20 63 61 63 68 65 20 sh-pop-cache'.allow.for.a.cache.
beb60 74 6f 20 62 65 20 73 74 61 73 68 65 64 20 61 6e 64 0a 74 68 65 6e 20 6c 61 74 65 72 20 70 75 73 to.be.stashed.and.then.later.pus
beb80 68 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 20 20 54 68 65 20 63 75 72 72 hed.back.to.the.stack...The.curr
beba0 65 6e 74 20 63 61 63 68 65 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 63 61 6e 0a 62 65 20 73 74 ent.cache.on.the.stack.can.be.st
bebc0 61 73 68 65 64 20 61 74 20 61 6e 79 74 69 6d 65 2e 20 20 54 68 65 20 73 74 61 73 68 65 64 20 63 ashed.at.anytime...The.stashed.c
bebe0 61 63 68 65 73 20 77 69 6c 6c 20 62 65 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 72 69 6e 67 20 66 aches.will.be.a.selection.ring.f
bec00 6f 72 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 27 2e 0a 0a 1f or.'emms-filters-push-cache'....
bec20 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 68 .File:.doc7SuRxP.info,..Node:.Sh
bec40 6f 77 69 6e 67 20 53 74 61 74 65 2c 20 20 50 72 65 76 3a 20 54 68 65 20 43 61 63 68 65 20 53 74 owing.State,..Prev:.The.Cache.St
bec60 61 63 6b 2c 20 20 55 70 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 31 38 2e ack,..Up:.The.Filter.System..18.
bec80 31 30 20 53 68 6f 77 69 6e 67 20 53 74 61 74 65 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 10.Showing.State.===============
beca0 3d 3d 3d 3d 0a 0a 54 68 65 72 65 20 61 72 65 20 76 61 72 69 6f 75 73 20 66 75 6e 63 74 69 6f 6e ====..There.are.various.function
becc0 73 20 74 68 61 74 20 65 6e 61 62 6c 65 20 61 20 76 69 65 77 20 6f 66 20 61 6c 6c 20 74 68 61 74 s.that.enable.a.view.of.all.that
bece0 20 69 73 20 67 6f 69 6e 67 20 6f 6e 0a 77 69 74 68 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 .is.going.on.within.the.filter.s
bed00 79 73 74 65 6d 2e 20 20 41 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 74 68 65 73 65 20 61 ystem...At.the.top.level.these.a
bed20 72 65 20 73 69 6d 70 6c 79 20 65 6d 61 63 73 0a 6d 65 73 73 61 67 65 73 20 77 68 69 63 68 20 63 re.simply.emacs.messages.which.c
bed40 61 6e 20 62 65 20 65 61 73 69 6c 79 20 64 69 73 6d 69 73 73 65 64 2e 20 20 4a 75 73 74 20 62 65 an.be.easily.dismissed...Just.be
bed60 6c 6f 77 20 74 68 65 6d 2c 20 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 0a 66 75 6e 63 74 69 6f low.them,.are.equivalent.functio
bed80 6e 73 20 74 68 61 74 20 67 69 76 65 20 66 6f 72 6d 61 74 74 65 64 20 73 74 72 69 6e 67 20 76 65 ns.that.give.formatted.string.ve
beda0 72 73 69 6f 6e 73 20 66 6f 72 20 75 73 65 20 61 73 20 79 6f 75 20 6c 69 6b 65 2e 0a 0a 20 20 20 rsions.for.use.as.you.like......
bedc0 54 68 65 20 72 65 67 69 73 74 65 72 65 64 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 The.registered.filter.factories.
bede0 63 61 6e 20 62 65 20 73 68 6f 77 6e 20 77 69 74 68 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d can.be.shown.with.'emms-filters-
bee00 73 68 6f 77 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 27 2c 20 74 68 65 20 72 65 67 69 show-filter-factories',.the.regi
bee20 73 74 65 72 65 64 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 0a 73 68 6f 77 6e 20 77 69 74 68 stered.filters.can.be.shown.with
bee40 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 73 27 2e 20 20 54 .'emms-filters-show-filters'...T
bee60 68 65 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 6e he.'emms-filters-show-filter-men
bee80 75 27 20 77 69 6c 6c 20 73 68 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 u'.will.show.the.current.filter.
beea0 6d 65 6e 75 20 74 72 65 65 2e 0a 0a 20 20 20 54 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 menu.tree......The.current.filte
beec0 72 20 72 69 6e 67 20 63 61 6e 20 62 65 20 73 68 6f 77 6e 20 77 69 74 68 0a 27 65 6d 6d 73 2d 66 r.ring.can.be.shown.with.'emms-f
beee0 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 72 69 6e 67 27 20 61 6e 64 20 74 68 65 ilters-show-filter-ring'.and.the
bef00 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 63 61 6e 20 62 65 20 73 68 6f 77 6e 20 77 69 74 68 0a .filter.stack.can.be.shown.with.
bef20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 2d 66 69 6c 74 65 'emms-filters-current-meta-filte
bef40 72 27 2e 0a 0a 20 20 20 49 6e 20 63 6f 64 65 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c r'......In.code,.the.current.fil
bef60 74 65 72 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 77 69 74 68 20 74 68 ter.name.can.be.obtained.with.th
bef80 65 0a 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 6d 65 74 61 2d 66 69 6c e.'emms-filters-current-meta-fil
befa0 74 65 72 2d 6e 61 6d 65 27 2e 20 20 54 68 65 20 63 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c ter-name'...The.current.ring.fil
befc0 74 65 72 20 6e 61 6d 65 0a 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 77 69 74 68 20 27 65 ter.name.can.be.obtained.with.'e
befe0 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 2d mms-filters-current-ring-filter-
bf000 6e 61 6d 65 27 0a 0a 20 20 20 53 68 6f 77 69 6e 67 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 name'.....Showing.the.cache.stac
bf020 6b 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f k.is.done.with.'emms-filters-sho
bf040 77 2d 63 61 63 68 65 2d 73 74 61 63 6b 27 2e 0a 41 6e 79 20 73 74 61 73 68 65 64 20 63 61 63 68 w-cache-stack'..Any.stashed.cach
bf060 65 73 20 63 61 6e 20 62 65 20 73 65 65 6e 20 77 69 74 68 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 es.can.be.seen.with.'emms-filter
bf080 73 2d 73 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 73 68 27 0a 77 68 69 63 68 20 77 69 6c 6c 20 61 s-show-cache-stash'.which.will.a
bf0a0 6c 73 6f 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 69 6e 76 6f 6b 65 64 20 62 lso.appear.in.the.menu.invoked.b
bf0c0 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 27 2e 0a 0a 20 20 y.'emms-filters-push-cache'.....
bf0e0 20 46 69 6e 61 6c 6c 79 20 66 6f 72 20 61 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 74 65 20 72 65 70 .Finally.for.a.more.complete.rep
bf100 6f 72 74 20 6f 66 20 74 68 65 20 73 79 73 74 65 6d 20 75 73 65 0a 27 65 6d 6d 73 2d 66 69 6c 74 ort.of.the.system.use.'emms-filt
bf120 65 72 73 2d 73 74 61 74 75 73 2d 70 72 69 6e 74 27 20 77 68 69 63 68 20 69 73 20 61 20 6d 65 73 ers-status-print'.which.is.a.mes
bf140 73 61 67 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 74 74 65 64 20 73 74 72 69 6e 67 0a 67 69 76 sage.of.the.formatted.string.giv
bf160 65 6e 20 62 79 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 27 2e 0a 0a 20 20 en.by.'emms-filters-status'.....
bf180 20 49 6e 20 74 75 72 6e 2c 20 74 68 65 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 .In.turn,.the.'emms-filters-stat
bf1a0 75 73 27 20 69 73 20 73 69 6d 70 6c 79 20 61 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 0a 66 6f us'.is.simply.a.format.of.the.fo
bf1c0 6c 6c 6f 77 69 6e 67 20 66 6f 75 72 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 67 69 76 65 llowing.four.functions.that.give
bf1e0 20 66 6f 72 6d 61 74 74 65 64 20 73 74 72 69 6e 67 73 20 6f 66 20 74 68 65 20 6d 6f 76 69 6e 67 .formatted.strings.of.the.moving
bf200 20 70 61 72 74 73 0a 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 0a 0a 20 20 .parts.of.the.filter.system.....
bf220 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 .*.'emms-filters-current-ring-fi
bf240 6c 74 65 72 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 lter'....*.'emms-filters-current
bf260 2d 6d 65 74 61 2d 66 69 6c 74 65 72 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 -meta-filter'....*.'emms-filters
bf280 2d 66 6f 72 6d 61 74 2d 73 74 61 63 6b 27 0a 20 20 20 2a 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 -format-stack'....*.'emms-filter
bf2a0 73 2d 66 6f 72 6d 61 74 2d 63 61 63 68 65 2d 73 74 61 63 6b 27 0a 0a 1f 0a 46 69 6c 65 3a 20 64 s-format-cache-stack'....File:.d
bf2c0 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 6f 72 74 69 6e 67 20 50 6c oc7SuRxP.info,..Node:.Sorting.Pl
bf2e0 61 79 6c 69 73 74 73 2c 20 20 4e 65 78 74 3a 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c aylists,..Next:.Persistent.Playl
bf300 69 73 74 73 2c 20 20 50 72 65 76 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 2c 20 ists,..Prev:.The.Filter.System,.
bf320 20 55 70 3a 20 54 6f 70 0a 0a 31 39 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 0a 2a .Up:.Top..19.Sorting.Playlists.*
bf340 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 27 65 6d 6d 73 2d 70 *******************..The.'emms-p
bf360 6c 61 79 6c 69 73 74 2d 73 6f 72 74 27 20 6d 6f 64 75 6c 65 2c 20 64 65 66 69 6e 65 64 20 69 6e laylist-sort'.module,.defined.in
bf380 20 74 68 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2e 65 6c 27 0a 70 61 63 .the.'emms-playlist-sort.el'.pac
bf3a0 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 73 6f 72 74 kage.provides.functions.for.sort
bf3c0 69 6e 67 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 73 2c 20 61 73 20 77 65 6c 6c 20 61 73 0a 6b ing.Emms.playlists,.as.well.as.k
bf3e0 65 79 62 6f 61 72 64 20 73 68 6f 72 74 63 75 74 73 20 66 6f 72 20 69 6e 76 6f 6b 69 6e 67 20 74 eyboard.shortcuts.for.invoking.t
bf400 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 he.functions.in.the.playlist.buf
bf420 66 65 72 2e 0a 4d 6f 73 74 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 fer..Most.of.the.functions.will.
bf440 73 6f 72 74 20 69 6e 20 72 65 76 65 72 73 65 20 6f 72 64 65 72 20 69 66 20 74 68 65 20 63 6f 6d sort.in.reverse.order.if.the.com
bf460 6d 61 6e 64 20 69 73 0a 70 72 65 63 65 64 65 64 20 62 79 20 61 20 70 72 65 66 69 78 2e 20 20 27 mand.is.preceded.by.a.prefix...'
bf480 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 27 20 63 61 6e 20 62 65 20 6c 6f 61 64 65 emms-playlist-sort'.can.be.loade
bf4a0 64 20 62 79 20 69 6e 76 6f 6b 69 6e 67 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 d.by.invoking:.......(require.'e
bf4c0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e mms-playlist-sort)...--.Function
bf4e0 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 61 72 74 :.emms-playlist-sort-by-info-art
bf500 69 73 74 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 61 72 74 69 73 74 20 6e 61 6d 65 2e 0a 0a 20 ist......Sort.by.artist.name....
bf520 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d --.Function:.emms-playlist-sort-
bf540 62 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 20 20 20 20 20 53 6f 72 74 20 62 79 by-info-albumartist......Sort.by
bf560 20 61 6c 62 75 6d 61 72 74 69 73 74 20 6e 61 6d 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e .albumartist.name....--.Function
bf580 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 70 6c 61 79 2d 63 6f 75 :.emms-playlist-sort-by-play-cou
bf5a0 6e 74 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 6d 65 73 20 nt......Sort.by.number.of.times.
bf5c0 74 68 65 20 74 72 61 63 6b 20 68 61 73 20 62 65 65 6e 20 70 6c 61 79 65 64 2e 0a 0a 20 2d 2d 20 the.track.has.been.played....--.
bf5e0 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d Function:.emms-playlist-sort-by-
bf600 69 6e 66 6f 2d 61 6c 62 75 6d 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 61 6c 62 75 6d 20 6e 61 info-album......Sort.by.album.na
bf620 6d 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 me....--.Function:.emms-playlist
bf640 2d 73 6f 72 74 2d 62 79 2d 6c 61 73 74 2d 70 6c 61 79 65 64 0a 20 20 20 20 20 53 6f 72 74 20 62 -sort-by-last-played......Sort.b
bf660 79 20 74 69 6d 65 20 74 68 65 20 74 72 61 63 6b 20 77 61 73 20 70 6c 61 79 65 64 20 6c 61 73 74 y.time.the.track.was.played.last
bf680 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 ....--.Function:.emms-playlist-s
bf6a0 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 74 69 74 6c 65 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 74 ort-by-info-title......Sort.by.t
bf6c0 72 61 63 6b 20 74 69 74 6c 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d rack.title....--.Function:.emms-
bf6e0 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 0a playlist-sort-by-file-extension.
bf700 20 20 20 20 20 53 6f 72 74 20 62 79 20 66 69 6c 65 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 2e .....Sort.by.filename.extension.
bf720 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f ...--.Function:.emms-playlist-so
bf740 72 74 2d 62 79 2d 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 0a 20 20 20 20 20 53 6f 72 74 20 62 rt-by-info-performer......Sort.b
bf760 79 20 70 65 72 66 6f 72 6d 65 72 20 6e 61 6d 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a y.performer.name....--.Function:
bf780 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 79 65 61 72 .emms-playlist-sort-by-info-year
bf7a0 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 79 65 61 72 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f ......Sort.by.year....--.Functio
bf7c0 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 6e 6f n:.emms-playlist-sort-by-info-no
bf7e0 74 65 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 74 72 61 63 6b 20 6e 6f 74 65 73 2e 0a 0a 20 2d te......Sort.by.track.notes....-
bf800 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 -.Function:.emms-playlist-sort-b
bf820 79 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 63 6f 6d y-info-composer......Sort.by.com
bf840 70 6f 73 65 72 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c poser....--.Function:.emms-playl
bf860 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 6d 65 0a 20 20 20 20 20 53 6f 72 74 20 62 79 20 74 72 ist-sort-by-name......Sort.by.tr
bf880 61 63 6b 20 6e 61 6d 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c ack.name....--.Function:.emms-pl
bf8a0 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 6d 74 69 6d 65 0a 20 20 20 20 20 53 aylist-sort-by-file-mtime......S
bf8c0 6f 72 74 20 62 79 20 66 69 6c 65 20 6d 74 69 6d 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e ort.by.file.mtime....--.Function
bf8e0 3a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 0a 20 :.emms-playlist-sort-by-random..
bf900 20 20 20 20 53 6f 72 74 20 72 61 6e 64 6f 6d 6c 79 2e 20 20 41 6c 69 61 73 20 66 6f 72 20 27 65 ....Sort.randomly...Alias.for.'e
bf920 6d 6d 73 2d 73 68 75 66 66 6c 65 27 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d mms-shuffle'....--.Function:.emm
bf940 73 2d 70 6c 61 79 6c 69 73 74 2d 73 68 75 66 66 6c 65 0a 20 20 20 20 20 41 6c 69 61 73 20 66 6f s-playlist-shuffle......Alias.fo
bf960 72 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 27 r.'emms-playlist-sort-by-random'
bf980 20 61 6e 64 20 27 65 6d 6d 73 2d 73 68 75 66 66 6c 65 27 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f .and.'emms-shuffle'.....File:.do
bf9a0 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 50 65 72 73 69 73 74 65 6e 74 20 c7SuRxP.info,..Node:.Persistent.
bf9c0 50 6c 61 79 6c 69 73 74 73 2c 20 20 4e 65 78 74 3a 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 Playlists,..Next:.Editing.Tracks
bf9e0 2c 20 20 50 72 65 76 3a 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 55 70 3a ,..Prev:.Sorting.Playlists,..Up:
bfa00 20 54 6f 70 0a 0a 32 30 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 73 74 73 0a 2a 2a .Top..20.Persistent.Playlists.**
bfa20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 45 6d 6d 73 20 *********************..The.Emms.
bfa40 6d 6f 64 75 6c 65 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2e 65 6c 27 20 6d 61 6b 65 73 20 70 module.'emms-history.el'.makes.p
bfa60 6c 61 79 6c 69 73 74 73 20 70 65 72 73 69 73 74 65 6e 74 20 6f 76 65 72 20 65 6d 61 63 73 0a 73 laylists.persistent.over.emacs.s
bfa80 65 73 73 69 6f 6e 73 2e 20 20 54 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 74 68 69 73 20 66 65 essions...To.make.use.of.this.fe
bfaa0 61 74 75 72 65 20 70 75 74 20 74 68 69 73 20 69 6e 74 6f 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 ature.put.this.into.your.~/.emac
bfac0 73 2e 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 29 s........(require.'emms-history)
bfae0 0a 0a 20 20 20 57 68 65 6e 20 79 6f 75 20 6b 69 6c 6c 20 65 6d 61 63 73 20 61 6c 6c 20 70 6c 61 .....When.you.kill.emacs.all.pla
bfb00 79 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 73 61 76 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65 ylists.will.be.saved.in.the.file
bfb20 20 67 69 76 65 6e 20 62 79 0a 74 68 65 20 76 61 72 69 61 62 6c 65 3a 0a 0a 20 2d 2d 20 55 73 65 .given.by.the.variable:...--.Use
bfb40 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 0a 20 20 20 20 r.Option:.emms-history-file.....
bfb60 20 54 68 65 20 66 69 6c 65 20 74 6f 20 73 61 76 65 20 70 6c 61 79 6c 69 73 74 73 20 69 6e 2e 20 .The.file.to.save.playlists.in..
bfb80 20 49 74 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 20 20 20 20 20 22 7e 2f 2e 65 6d 61 63 73 2e 64 .It.defaults.to......"~/.emacs.d
bfba0 2f 65 6d 6d 73 2d 68 69 73 74 6f 72 79 22 2e 0a 0a 20 20 20 41 66 74 65 72 20 79 6f 75 20 73 74 /emms-history"......After.you.st
bfbc0 61 72 74 65 64 20 75 70 20 65 6d 61 63 73 20 61 67 61 69 6e 2c 20 79 6f 75 20 63 61 6e 20 72 65 arted.up.emacs.again,.you.can.re
bfbe0 73 74 6f 72 65 20 61 6c 6c 20 73 61 76 65 64 20 70 6c 61 79 6c 69 73 74 73 0a 77 69 74 68 20 74 store.all.saved.playlists.with.t
bfc00 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d his.function....--.Function:.emm
bfc20 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 0a 20 20 20 20 20 52 65 73 74 6f 72 65 20 61 6c 6c 20 s-history-load......Restore.all.
bfc40 70 6c 61 79 6c 69 73 74 73 20 69 6e 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 27 playlists.in.'emms-history-file'
bfc60 2e 0a 0a 20 20 20 49 66 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 64 6f 6e 65 20 61 75 74 ......If.that.should.be.done.aut
bfc80 6f 6d 61 74 69 63 61 6c 6c 79 20 6f 6e 20 65 61 63 68 20 73 74 61 72 74 75 70 2c 20 70 75 74 20 omatically.on.each.startup,.put.
bfca0 74 68 65 73 65 20 6c 69 6e 65 73 0a 69 6e 74 6f 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 73 2e 0a these.lines.into.your.~/.emacs..
bfcc0 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 29 0a 20 20 ......(require.'emms-history)...
bfce0 20 20 20 28 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 29 0a 0a 20 20 20 4e 6f 72 6d 61 ...(emms-history-load).....Norma
bfd00 6c 6c 79 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 27 20 6f 6e 6c 79 20 72 65 73 74 6f 72 65 73 lly.'emms-history'.only.restores
bfd20 20 70 6c 61 79 6c 69 73 74 73 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 0a 73 .playlists...If.you.want.it.to.s
bfd40 74 61 72 74 20 70 6c 61 79 62 61 63 6b 20 61 66 74 65 72 77 61 72 64 73 2c 20 79 6f 75 20 63 61 tart.playback.afterwards,.you.ca
bfd60 6e 20 74 77 65 61 6b 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 2e 0a 0a 20 2d 2d 20 55 73 65 72 n.tweak.this.variable....--.User
bfd80 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 73 74 61 72 74 2d 70 6c 61 79 .Option:.emms-history-start-play
bfda0 69 6e 67 0a 20 20 20 20 20 49 66 20 6e 6f 6e 2d 6e 69 6c 20 65 6d 6d 73 20 73 74 61 72 74 73 20 ing......If.non-nil.emms.starts.
bfdc0 70 6c 61 79 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 61 66 74 65 72 0a playing.the.current.track.after.
bfde0 20 20 20 20 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 27 20 77 61 73 20 69 6e 76 .....'emms-history-load'.was.inv
bfe00 6f 6b 65 64 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 69 73 20 6e 69 6c 2e oked...The.default.value.is.nil.
bfe20 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ....File:.doc7SuRxP.info,..Node:
bfe40 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2c 20 20 4e 65 78 74 3a 20 45 6d 6d 73 20 4d 6f 64 .Editing.Tracks,..Next:.Emms.Mod
bfe60 65 20 4c 69 6e 65 2c 20 20 50 72 65 76 3a 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 e.Line,..Prev:.Persistent.Playli
bfe80 73 74 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 31 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 sts,..Up:.Top..21.Editing.Tracks
bfea0 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 55 73 69 6e 67 20 27 65 6d 6d 73 2d .*****************..Using.'emms-
bfec0 74 61 67 2d 65 64 69 74 6f 72 2e 65 6c 27 2c 20 65 6d 6d 73 20 63 61 6e 20 73 65 74 20 74 61 67 tag-editor.el',.emms.can.set.tag
bfee0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 73 20 6f 66 20 74 72 61 63 6b 73 20 61 6e 64 0a 77 72 69 74 .informations.of.tracks.and.writ
bff00 65 20 74 68 65 6d 20 62 61 63 6b 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 65 e.them.back.to.the.file.with.the
bff20 20 68 65 6c 70 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 73 2c 20 73 75 63 68 .help.of.external.programs,.such
bff40 20 61 73 0a 27 6d 69 64 33 76 32 27 20 61 6e 64 20 27 76 6f 72 62 69 73 63 6f 6d 6d 65 6e 74 27 .as.'mid3v2'.and.'vorbiscomment'
bff60 2e 0a 0a 20 20 20 55 73 65 20 74 68 65 20 6b 65 79 62 69 6e 64 69 6e 67 20 27 45 27 20 74 6f 20 ......Use.the.keybinding.'E'.to.
bff80 65 64 69 74 20 74 68 65 20 74 61 67 73 20 6f 66 20 74 72 61 63 6b 20 75 6e 64 65 72 20 70 6f 69 edit.the.tags.of.track.under.poi
bffa0 6e 74 20 69 6e 20 74 68 65 0a 70 6c 61 79 6c 69 73 74 20 6f 72 20 61 6c 6c 20 6d 61 72 6b 65 64 nt.in.the.playlist.or.all.marked
bffc0 20 74 72 61 63 6b 73 20 28 2a 6e 6f 74 65 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 .tracks.(*note.Markable.Playlist
bffe0 73 3a 3a 20 66 6f 72 20 68 6f 77 20 74 6f 0a 6d 61 72 6b 20 74 72 61 63 6b 73 29 2e 20 20 54 68 s::.for.how.to.mark.tracks)...Th
c0000 65 20 74 72 61 63 6b 27 73 20 74 61 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 73 20 61 72 65 20 6c e.track's.tag.informations.are.l
c0020 69 73 74 65 64 20 69 6e 20 61 20 73 70 65 63 69 61 6c 0a 62 75 66 66 65 72 20 27 2a 45 6d 6d 73 isted.in.a.special.buffer.'*Emms
c0040 2d 54 41 47 53 2a 27 20 69 6e 20 74 65 78 74 20 66 6f 72 6d 61 74 2e 20 20 46 69 65 6c 64 20 6e -TAGS*'.in.text.format...Field.n
c0060 61 6d 65 73 20 61 72 65 20 6d 61 72 6b 65 64 20 69 6e 20 62 6f 6c 64 0a 66 61 63 65 20 61 6e 64 ames.are.marked.in.bold.face.and
c0080 20 61 72 65 20 6e 6f 74 20 65 64 69 74 61 62 6c 65 2e 20 20 41 6e 79 20 74 61 67 20 69 6e 66 6f .are.not.editable...Any.tag.info
c00a0 72 6d 61 74 69 6f 6e 20 69 73 20 70 6c 61 63 65 64 20 62 65 68 69 6e 64 20 61 6e 0a 65 71 75 61 rmation.is.placed.behind.an.equa
c00c0 6c 20 73 69 67 6e 20 61 6e 64 20 69 73 20 63 68 61 6e 67 61 62 6c 65 2e 20 20 41 20 73 70 65 63 l.sign.and.is.changable...A.spec
c00e0 69 61 6c 20 66 69 65 6c 64 20 27 6e 61 6d 65 27 20 69 73 20 74 68 65 20 74 72 61 63 6b 27 73 20 ial.field.'name'.is.the.track's.
c0100 66 69 6c 65 0a 6e 61 6d 65 2e 20 20 49 66 20 61 6e 79 20 63 68 61 6e 67 65 20 69 73 20 6d 61 64 file.name...If.any.change.is.mad
c0120 65 20 69 6e 20 74 68 69 73 20 66 69 65 6c 64 2c 20 74 68 65 20 74 72 61 63 6b 27 73 20 66 69 6c e.in.this.field,.the.track's.fil
c0140 65 20 77 69 6c 6c 20 62 65 0a 72 65 6e 61 6d 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 6e 61 6d e.will.be.renamed.to.the.new.nam
c0160 65 2e 20 20 57 68 65 6e 20 79 6f 75 20 66 69 6e 69 73 68 65 64 20 65 64 69 74 69 6e 67 20 74 68 e...When.you.finished.editing.th
c0180 65 20 74 61 67 20 69 6e 66 6f 73 20 75 73 65 0a 27 43 2d 63 20 43 2d 63 27 20 28 77 68 69 63 68 e.tag.infos.use.'C-c.C-c'.(which
c01a0 20 63 61 6c 6c 73 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 2d 61 .calls.'emms-tag-editor-submit-a
c01c0 6e 64 2d 65 78 69 74 27 29 20 74 6f 20 73 75 62 6d 69 74 20 74 68 65 0a 63 68 61 6e 67 65 73 20 nd-exit').to.submit.the.changes.
c01e0 61 6e 64 20 63 6c 6f 73 65 20 74 68 65 20 27 2a 45 6d 6d 73 2d 54 41 47 53 2a 27 20 62 75 66 66 and.close.the.'*Emms-TAGS*'.buff
c0200 65 72 2e 0a 0a 20 20 20 54 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 63 6f 6d 6d 61 6e 64 73 er......There.are.a.few.commands
c0220 20 74 6f 20 70 65 72 66 6f 72 6d 20 63 68 61 6e 67 65 73 20 6f 6e 20 61 6c 6c 20 74 72 61 63 6b .to.perform.changes.on.all.track
c0240 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f s....--.Function:.emms-tag-edito
c0260 72 2d 73 65 74 2d 61 6c 6c 20 74 61 67 20 76 61 6c 75 65 0a 20 20 20 20 20 53 65 74 20 54 41 47 r-set-all.tag.value......Set.TAG
c0280 20 74 6f 20 56 41 4c 55 45 20 69 6e 20 61 6c 6c 20 74 72 61 63 6b 73 2e 0a 0a 20 20 20 20 20 49 .to.VALUE.in.all.tracks........I
c02a0 66 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 20 69 73 20 74 75 72 6e 65 64 20 f.transient-mark-mode.is.turned.
c02c0 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f on,.you.can.apply.the.command.to
c02e0 20 61 0a 20 20 20 20 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2e 0a 0a 20 20 20 20 20 49 .a......selected.region........I
c0300 66 20 27 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 20 61 6e f.'transient-mark-mode'.is.on.an
c0320 64 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 63 68 61 6e 67 65 d.the.mark.is.active,.the.change
c0340 73 0a 20 20 20 20 20 77 69 6c 6c 20 6f 6e 6c 79 20 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 s......will.only.take.effect.on.
c0360 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 0a 0a 20 2d 2d 20 46 the.tracks.in.the.region....--.F
c0380 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 70 6c 61 63 65 unction:.emms-tag-editor-replace
c03a0 2d 69 6e 2d 74 61 67 20 74 61 67 20 66 72 6f 6d 20 74 6f 0a 20 20 20 20 20 51 75 65 72 79 20 61 -in-tag.tag.from.to......Query.a
c03c0 6e 64 20 72 65 70 6c 61 63 65 20 74 65 78 74 20 69 6e 20 73 65 6c 65 63 74 65 64 20 54 41 47 2e nd.replace.text.in.selected.TAG.
c03e0 0a 0a 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 69 6e 66 6f 2d .......For.example,.if.the.info-
c0400 74 69 74 6c 65 20 74 61 67 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 74 68 65 6e 20 6f 6e 6c 79 title.tag.is.selected,.then.only
c0420 20 70 65 72 66 6f 72 6d 0a 20 20 20 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 69 6e 20 74 69 74 .perform......replacement.in.tit
c0440 6c 65 20 74 61 67 73 2e 0a 0a 20 20 20 20 20 49 66 20 27 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 le.tags........If.'transient-mar
c0460 6b 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 k-mode'.is.on.and.the.mark.is.ac
c0480 74 69 76 65 2c 20 74 68 65 20 63 68 61 6e 67 65 73 0a 20 20 20 20 20 77 69 6c 6c 20 6f 6e 6c 79 tive,.the.changes......will.only
c04a0 20 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 .take.effect.on.the.tracks.in.th
c04c0 65 20 72 65 67 69 6f 6e 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 61 e.region....--.Function:.emms-ta
c04e0 67 2d 65 64 69 74 6f 72 2d 74 72 61 6e 73 70 6f 73 65 2d 74 61 67 20 74 61 67 31 20 74 61 67 32 g-editor-transpose-tag.tag1.tag2
c0500 0a 20 20 20 20 20 54 72 61 6e 73 70 6f 73 65 20 76 61 6c 75 65 20 6f 66 20 54 41 47 31 20 61 6e ......Transpose.value.of.TAG1.an
c0520 64 20 54 41 47 32 2e 0a 0a 20 20 20 20 20 49 66 20 27 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b d.TAG2........If.'transient-mark
c0540 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 -mode'.is.on.and.the.mark.is.act
c0560 69 76 65 2c 20 74 68 65 20 63 68 61 6e 67 65 73 0a 20 20 20 20 20 77 69 6c 6c 20 6f 6e 6c 79 20 ive,.the.changes......will.only.
c0580 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 take.effect.on.the.tracks.in.the
c05a0 20 72 65 67 69 6f 6e 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 61 67 .region....--.Function:.emms-tag
c05c0 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 20 61 72 67 0a 20 20 20 20 20 4d 61 6b 65 20 6d 6f 64 -editor-submit.arg......Make.mod
c05e0 69 66 69 65 64 20 74 61 67 73 20 74 61 6b 65 20 61 66 66 65 63 74 2e 0a 0a 20 20 20 20 20 57 69 ified.tags.take.affect........Wi
c0600 74 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 62 75 72 79 20 74 68 65 20 74 61 67 th.prefix.argument,.bury.the.tag
c0620 20 65 64 69 74 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f .edit.buffer......If.you.want.to
c0640 20 65 78 74 65 6e 64 20 74 68 65 20 74 61 67 20 65 64 69 74 6f 72 20 74 6f 20 77 6f 72 6b 20 77 .extend.the.tag.editor.to.work.w
c0660 69 74 68 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 20 6f 74 68 65 72 0a 74 68 61 6e 20 27 6d 70 33 ith.file.formats.other.than.'mp3
c0680 27 20 61 6e 64 20 27 6f 67 67 27 2c 20 68 61 76 65 20 61 20 6c 6f 6f 6b 20 61 74 20 74 68 65 73 '.and.'ogg',.have.a.look.at.thes
c06a0 65 20 76 61 72 69 61 62 6c 65 73 2e 0a 0a 20 2d 2d 20 56 61 72 69 61 62 6c 65 3a 20 65 6d 6d 73 e.variables....--.Variable:.emms
c06c0 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 73 0a 20 20 20 20 20 54 68 69 73 20 76 61 -tag-editor-formats......This.va
c06e0 72 69 61 62 6c 65 20 64 65 74 65 72 6d 69 6e 65 20 68 6f 77 20 74 6f 20 69 6e 73 65 72 74 20 74 riable.determine.how.to.insert.t
c0700 72 61 63 6b 20 66 69 65 6c 64 73 20 74 6f 0a 20 20 20 20 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 rack.fields.to......'emms-tag-ed
c0720 69 74 6f 72 2d 65 64 69 74 2d 62 75 66 66 65 72 27 2e 20 20 45 6d 6d 73 20 74 61 67 20 69 6e 66 itor-edit-buffer'...Emms.tag.inf
c0740 6f 20 65 64 69 74 61 62 6c 65 20 66 69 65 6c 64 73 20 69 73 0a 20 20 20 20 20 75 73 75 61 6c 6c o.editable.fields.is......usuall
c0760 79 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 y.determined.by.the.extension.of
c0780 20 74 72 61 63 6b 20 6e 61 6d 65 2e 20 20 54 68 65 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 .track.name...The.variable......
c07a0 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 27 20 63 6f 6e 74 61 69 6e 73 20 'emms-tag-editor-tags'.contains.
c07c0 61 6c 6c 20 74 61 67 73 20 74 68 61 74 20 65 6d 6d 73 20 74 72 61 63 6b 20 6d 61 79 20 68 61 76 all.tags.that.emms.track.may.hav
c07e0 65 2e 0a 20 20 20 20 20 41 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 61 72 20 69 73 20 61 73 e.......A.single.charactar.is.as
c0800 73 69 67 6e 65 64 20 74 6f 20 74 68 65 20 74 61 67 20 74 6f 20 6d 61 6b 65 20 74 68 65 0a 20 20 signed.to.the.tag.to.make.the...
c0820 20 20 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 73 27 20 65 61 73 ...'emms-tag-editor-formats'.eas
c0840 69 65 72 20 74 6f 20 67 65 6e 65 72 61 74 65 2e 0a 0a 20 2d 2d 20 56 61 72 69 61 62 6c 65 3a 20 ier.to.generate....--.Variable:.
c0860 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 6f 6e emms-tag-editor-tagfile-function
c0880 73 0a 20 20 20 20 20 54 6f 20 77 72 69 74 65 20 74 61 67 73 20 74 6f 20 74 72 61 63 6b 20 66 69 s......To.write.tags.to.track.fi
c08a0 6c 65 2c 20 61 6e 20 65 78 74 65 72 6e 20 70 72 6f 67 72 61 6d 20 73 68 6f 75 6c 64 20 73 70 65 le,.an.extern.program.should.spe
c08c0 63 69 66 69 65 64 20 69 6e 0a 20 20 20 20 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 2e 0a 0a 52 cified.in......this.variable...R
c08e0 65 6e 61 6d 69 6e 67 20 46 69 6c 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 enaming.Files.==============..Th
c0900 65 20 74 61 67 20 65 64 69 74 6f 72 20 69 73 20 61 6c 73 6f 20 63 61 70 61 62 6c 65 20 74 6f 20 e.tag.editor.is.also.capable.to.
c0920 72 65 6e 61 6d 65 20 74 68 65 20 66 69 6c 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 rename.the.file.of.the.track.at.
c0940 70 6f 69 6e 74 0a 6f 72 20 61 6c 6c 20 66 69 6c 65 73 20 6f 66 20 74 68 65 20 6d 61 72 6b 65 64 point.or.all.files.of.the.marked
c0960 20 74 72 61 63 6b 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 74 .tracks.according.to.the.value.t
c0980 68 69 73 20 76 61 72 69 61 62 6c 65 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 his.variable....--.User.Option:.
c09a0 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 0a 20 20 emms-tag-editor-rename-format...
c09c0 20 20 20 57 68 65 6e 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 27 ...When.'emms-tag-editor-rename'
c09e0 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 68 65 20 74 72 61 63 6b 27 73 20 66 69 6c 65 20 77 69 6c .is.invoked.the.track's.file.wil
c0a00 6c 20 62 65 0a 20 20 20 20 20 72 65 6e 61 6d 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 68 69 73 l.be......renamed.according.this
c0a20 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 20 20 54 68 65 20 66 69 6c 65 .format.specification...The.file
c0a40 20 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 61 75 .extension......will.be.added.au
c0a60 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 0a 20 20 20 20 20 49 74 20 75 73 65 73 20 74 68 65 20 66 tomatically........It.uses.the.f
c0a80 6f 72 6d 61 74 20 73 70 65 63 73 20 64 65 66 69 6e 65 64 20 69 6e 20 27 65 6d 6d 73 2d 74 61 67 ormat.specs.defined.in.'emms-tag
c0aa0 2d 65 64 69 74 6f 72 2d 74 61 67 73 27 2e 0a 0a 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6c 74 -editor-tags'........The.default
c0ac0 20 76 61 6c 75 65 20 69 73 20 22 25 61 20 2d 20 25 6c 20 2d 20 25 6e 20 2d 20 25 74 22 2c 20 73 .value.is."%a.-.%l.-.%n.-.%t",.s
c0ae0 6f 20 74 68 61 74 20 66 69 6c 65 73 20 61 72 65 20 6e 61 6d 65 64 0a 0a 20 20 20 20 20 3c 41 72 o.that.files.are.named.......<Ar
c0b00 74 69 73 74 3e 20 2d 20 3c 41 6c 62 75 6d 3e 20 2d 20 3c 54 72 61 63 6b 6e 75 6d 62 65 72 3e 20 tist>.-.<Album>.-.<Tracknumber>.
c0b20 2d 20 3c 54 69 74 6c 65 3e 2e 3c 65 78 74 65 6e 73 69 6f 6e 3e 0a 0a 20 20 20 20 20 61 66 74 65 -.<Title>.<extension>.......afte
c0b40 72 20 72 65 6e 61 6d 69 6e 67 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d r.renaming....--.User.Option:.em
c0b60 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 69 6c 65 2d 72 65 6e 61 6d 65 2d 61 6c 69 73 74 0a ms-tag-editor-file-rename-alist.
c0b80 20 20 20 20 20 46 6f 72 20 65 61 63 68 20 70 61 69 72 20 69 6e 20 74 68 69 73 20 61 6c 69 73 74 .....For.each.pair.in.this.alist
c0ba0 2c 20 74 68 65 20 66 69 72 73 74 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 72 65 70 6c 61 63 65 64 ,.the.first.string.will.replaced
c0bc0 20 62 79 20 74 68 65 0a 20 20 20 20 20 73 65 63 6f 6e 64 2e 20 20 54 68 69 73 20 63 61 6e 20 62 .by.the......second...This.can.b
c0be0 65 20 75 73 65 64 20 74 6f 20 72 65 70 6c 61 63 65 20 66 69 6c 65 6e 61 6d 65 20 65 6c 65 6d 65 e.used.to.replace.filename.eleme
c0c00 6e 74 73 2c 20 73 70 61 63 65 73 2c 20 6f 72 0a 20 20 20 20 20 6f 74 68 65 72 20 75 6e 77 61 6e nts,.spaces,.or......other.unwan
c0c20 74 65 64 20 73 74 72 69 6e 67 73 20 6f 72 20 63 68 61 72 61 63 74 65 72 73 20 61 75 74 6f 6d 61 ted.strings.or.characters.automa
c0c40 74 69 63 61 6c 6c 79 20 77 68 65 6e 65 76 65 72 0a 20 20 20 20 20 72 65 6e 61 6d 69 6e 67 20 61 tically.whenever......renaming.a
c0c60 20 66 69 6c 65 2e 0a 0a 20 20 20 54 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 20 72 65 6e 61 6d 69 .file......To.perform.the.renami
c0c80 6e 67 20 70 75 74 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 20 79 6f 75 20 77 61 ng.put.point.on.the.track.you.wa
c0ca0 6e 74 20 74 6f 20 72 65 6e 61 6d 65 20 6f 72 0a 6d 61 72 6b 20 73 6f 6d 65 20 74 72 61 63 6b 73 nt.to.rename.or.mark.some.tracks
c0cc0 2e 20 20 54 68 65 6e 20 68 69 74 20 27 52 27 20 77 68 69 63 68 20 63 61 6c 6c 73 20 74 68 69 73 ...Then.hit.'R'.which.calls.this
c0ce0 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 74 .function:...--.Function:.emms-t
c0d00 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 0a 20 20 20 20 20 52 65 6e 61 6d 65 20 74 68 65 ag-editor-rename......Rename.the
c0d20 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 72 61 63 6b 20 61 74 20 .file.corresponding.to.track.at.
c0d40 70 6f 69 6e 74 20 6f 72 20 61 6c 6c 20 6d 61 72 6b 65 64 0a 20 20 20 20 20 74 72 61 63 6b 73 20 point.or.all.marked......tracks.
c0d60 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 27 65 6d 6d 73 2d according.to.the.value.of.'emms-
c0d80 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 27 2e 0a 0a 1f 0a 46 69 tag-editor-rename-format'.....Fi
c0da0 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 45 6d 6d 73 20 le:.doc7SuRxP.info,..Node:.Emms.
c0dc0 4d 6f 64 65 20 4c 69 6e 65 2c 20 20 4e 65 78 74 3a 20 4c 69 6d 69 74 69 6e 67 2c 20 20 50 72 65 Mode.Line,..Next:.Limiting,..Pre
c0de0 76 3a 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 32 20 v:.Editing.Tracks,..Up:.Top..22.
c0e00 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a Emms.Mode.Line.*****************
c0e20 0a 0a 57 65 20 63 61 6e 20 64 69 73 70 6c 61 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f ..We.can.display.information.abo
c0e40 75 74 20 74 68 65 20 63 75 72 72 65 6e 74 79 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 20 6f 6e ut.the.currenty.playing.track.on
c0e60 20 74 68 65 20 45 6d 61 63 73 0a 6d 6f 64 65 20 6c 69 6e 65 20 75 73 69 6e 67 20 74 68 65 20 70 .the.Emacs.mode.line.using.the.p
c0e80 61 63 6b 61 67 65 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 27 20 77 68 69 63 68 20 69 73 ackage.'emms-mode-line'.which.is
c0ea0 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 0a 66 69 6c 65 20 27 65 6d 6d 73 2d 6d 6f 64 65 .provided.by.the.file.'emms-mode
c0ec0 2d 6c 69 6e 65 2e 65 6c 27 2e 0a 0a 20 20 20 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 -line.el'......To.activate.this.
c0ee0 66 65 61 74 75 72 65 20 69 6e 76 6f 6b 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 feature.invoke:.......(require.'
c0f00 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d emms-mode-line)......(emms-mode-
c0f20 6c 69 6e 65 20 31 29 0a 0a 20 20 20 49 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 line.1).....It.is.also.possible.
c0f40 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 74 69 6d 65 20 61 20 to.display.the.amount.of.time.a.
c0f60 74 72 61 63 6b 20 68 61 73 20 62 65 65 6e 0a 70 6c 61 79 69 6e 67 2e 20 20 54 68 69 73 20 66 65 track.has.been.playing...This.fe
c0f80 61 74 75 72 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 27 65 6d 6d 73 2d 70 6c ature.is.defined.in.the.'emms-pl
c0fa0 61 79 69 6e 67 2d 74 69 6d 65 27 20 70 61 63 6b 61 67 65 0a 77 68 69 63 68 20 69 73 20 70 72 6f aying-time'.package.which.is.pro
c0fc0 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d vided.by.the.file.'emms-playing-
c0fe0 74 69 6d 65 2e 65 6c 27 2e 0a 0a 20 20 20 54 6f 20 75 73 65 20 74 68 69 73 20 66 65 61 74 75 72 time.el'......To.use.this.featur
c1000 65 20 69 6e 76 6f 6b 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 e.invoke:.......(require.'emms-p
c1020 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d laying-time)......(emms-playing-
c1040 74 69 6d 65 20 31 29 0a 0a 20 20 20 41 20 67 72 61 70 68 69 63 61 6c 20 69 63 6f 6e 20 63 61 6e time.1).....A.graphical.icon.can
c1060 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 6d 6f 64 65 6c 69 6e 65 20 77 68 .be.displayed.in.the.modeline.wh
c1080 65 6e 20 45 6d 6d 73 20 69 73 0a 70 6c 61 79 69 6e 67 2e 20 20 54 68 69 73 20 66 65 61 74 75 72 en.Emms.is.playing...This.featur
c10a0 65 20 69 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 e.is.provided.by.'emms-mode-line
c10c0 2d 69 63 6f 6e 2e 65 6c 27 2e 20 20 54 6f 0a 65 6e 61 62 6c 65 20 69 6e 76 6f 6b 65 20 74 68 65 -icon.el'...To.enable.invoke.the
c10e0 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 6e 64 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 0a 45 4d .following.and.make.sure.that.EM
c1100 4d 53 2d 4d 4f 44 45 2d 4c 49 4e 45 2d 49 43 4f 4e 2d 45 4e 41 42 4c 45 44 2d 50 20 69 73 20 73 MS-MODE-LINE-ICON-ENABLED-P.is.s
c1120 65 74 20 74 6f 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 3a 0a 0a 20 20 20 20 20 28 72 65 et.to.a.non-nil.value:.......(re
c1140 71 75 69 72 65 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 29 0a 0a 20 20 20 4e quire.emms-mode-line-icon).....N
c1160 6f 74 65 3a 20 27 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 2d 31 29 27 20 77 69 ote:.'(emms-playing-time.-1)'.wi
c1180 6c 6c 20 64 69 73 61 62 6c 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 6d 6f 64 ll.disable.emms-playing-time.mod
c11a0 75 6c 65 0a 63 6f 6d 70 6c 65 74 65 6c 79 2c 20 61 6e 64 20 69 73 20 6e 6f 74 20 72 65 63 6f 6d ule.completely,.and.is.not.recom
c11c0 6d 65 6e 64 65 64 2e 20 20 28 73 69 6e 63 65 20 73 6f 6d 65 20 6f 74 68 65 72 20 65 6d 6d 73 20 mended...(since.some.other.emms.
c11e0 6d 6f 64 75 6c 65 73 20 6d 61 79 0a 72 65 6c 79 20 6f 6e 20 69 74 29 0a 0a 20 20 20 49 6e 73 74 modules.may.rely.on.it).....Inst
c1200 65 61 64 2c 20 74 6f 20 74 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 70 6c 61 79 69 6e ead,.to.toggle.displaying.playin
c1220 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2c 20 6f 6e 65 20 63 6f 75 6c 64 0a 63 g.time.on.mode.line,.one.could.c
c1240 61 6c 6c 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 62 6c 65 2d 64 69 all.'emms-playing-time-enable-di
c1260 73 70 6c 61 79 27 20 61 6e 64 0a 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 64 69 splay'.and.'emms-playing-time-di
c1280 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 27 2e 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 sable-display'."...--.Function:.
c12a0 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 62 6c 65 2d 64 69 73 70 6c 61 79 emms-playing-time-enable-display
c12c0 0a 20 20 20 20 20 44 69 73 70 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f ......Display.playing.time.on.mo
c12e0 64 65 20 6c 69 6e 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 de.line....--.Function:.emms-pla
c1300 79 69 6e 67 2d 74 69 6d 65 2d 64 69 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 0a 20 20 20 20 20 52 ying-time-disable-display......R
c1320 65 6d 6f 76 65 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 66 72 6f 6d 20 6d 6f 64 65 20 6c 69 6e emove.playing.time.from.mode.lin
c1340 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 e.....File:.doc7SuRxP.info,..Nod
c1360 65 3a 20 4c 69 6d 69 74 69 6e 67 2c 20 20 4e 65 78 74 3a 20 4d 75 73 69 63 20 50 6c 61 79 65 72 e:.Limiting,..Next:.Music.Player
c1380 20 44 61 65 6d 6f 6e 2c 20 20 50 72 65 76 3a 20 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 2c 20 .Daemon,..Prev:.Emms.Mode.Line,.
c13a0 20 55 70 3a 20 54 6f 70 0a 0a 32 33 20 4c 69 6d 69 74 69 6e 67 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a .Up:.Top..23.Limiting.**********
c13c0 2a 0a 0a 54 68 65 20 70 61 63 6b 61 67 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 *..The.package.'emms-playlist-li
c13e0 6d 69 74 27 2c 20 70 72 6f 76 69 64 65 64 20 62 79 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 mit',.provided.by.'emms-playlist
c1400 2d 6c 69 6d 69 74 2e 65 6c 27 2c 0a 61 6c 6c 6f 77 73 20 63 72 65 61 74 69 6e 67 20 61 20 6e 65 -limit.el',.allows.creating.a.ne
c1420 77 20 70 6c 61 79 6c 69 73 74 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 w.playlist.derived.from.the.play
c1440 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 2e 20 20 46 6f 72 list.in.the.current.buffer...For
c1460 20 69 6e 73 74 61 6e 63 65 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 63 72 65 .instance,.it.is.possible.to.cre
c1480 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e ate.a.new.playlist.containing.on
c14a0 6c 79 20 61 20 63 65 72 74 61 69 6e 20 61 72 74 69 73 74 20 6f 72 20 67 65 6e 72 65 20 66 72 6f ly.a.certain.artist.or.genre.fro
c14c0 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 20 62 75 m.the.playlist.in.the.current.bu
c14e0 66 66 65 72 2e 0a 0a 20 20 20 49 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 ffer......If.the.playlist.in.the
c1500 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 74 68 65 20 65 6d 6d 73 20 63 75 72 72 .current.buffer.is.the.emms.curr
c1520 65 6e 74 20 70 6c 61 79 6c 69 73 74 0a 74 68 65 6e 20 74 68 65 20 64 65 72 69 76 65 64 20 70 6c ent.playlist.then.the.derived.pl
c1540 61 79 6c 69 73 74 20 62 65 63 6f 6d 65 73 20 63 75 72 72 65 6e 74 2e 0a 0a 27 2f 20 61 27 0a 20 aylist.becomes.current...'/.a'..
c1560 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 ....Create.a.new.playlist.buffer
c1580 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f .and.populate.it.with.tracks.who
c15a0 73 65 0a 20 20 20 20 20 61 72 74 69 73 74 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 se......artist.info.field.matche
c15c0 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 s.the.given.regular.expression.(
c15e0 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 74 68 65 20 61 72 74 69 73 74 20 69 6e 66 6f 20 66 69 default:......the.artist.info.fi
c1600 65 6c 64 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 eld.of.the.track.at.point)...'/.
c1620 41 27 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 A'......Create.a.new.playlist.bu
c1640 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 ffer.and.populate.it.with.tracks
c1660 20 77 68 6f 73 65 0a 20 20 20 20 20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 69 6e 66 6f 20 66 69 .whose......album.artist.info.fi
c1680 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 20 65 78 eld.matches.the.given.regular.ex
c16a0 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 61 6c 62 75 pression......(default:.the.albu
c16c0 6d 20 61 72 74 69 73 74 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 74 72 61 63 6b m.artist.info.field.of.the.track
c16e0 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 62 27 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 .at.point)...'/.b'......Create.a
c1700 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 .new.playlist.buffer.and.populat
c1720 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f 73 65 0a 20 20 20 20 20 61 6c 62 75 e.it.with.tracks.whose......albu
c1740 6d 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 m.info.field.matches.the.given.r
c1760 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 0a egular.expression.(default:.the.
c1780 20 20 20 20 20 61 6c 62 75 6d 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 74 72 61 .....album.info.field.of.the.tra
c17a0 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 63 27 0a 20 20 20 20 20 43 72 65 61 74 65 ck.at.point)...'/.c'......Create
c17c0 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c .a.new.playlist.buffer.and.popul
c17e0 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f 73 65 0a 20 20 20 20 20 63 6f ate.it.with.tracks.whose......co
c1800 6d 70 6f 73 65 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 mposer.info.field.matches.the.gi
c1820 76 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a ven.regular.expression.(default:
c1840 0a 20 20 20 20 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 ......the.composer.info.field.of
c1860 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 64 27 0a 20 20 20 .the.track.at.point)...'/.d'....
c1880 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 ..Create.a.new.playlist.buffer.a
c18a0 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f 73 65 nd.populate.it.with.tracks.whose
c18c0 0a 20 20 20 20 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6d 61 74 63 68 65 73 20 ......track.description.matches.
c18e0 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 the.given.regular.expression.(de
c1900 66 61 75 6c 74 3a 0a 20 20 20 20 20 74 68 65 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 6f fault:......the.track.descriptio
c1920 6e 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 67 27 n.of.the.track.at.point)...'/.g'
c1940 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 ......Create.a.new.playlist.buff
c1960 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 er.and.populate.it.with.tracks.w
c1980 68 6f 73 65 0a 20 20 20 20 20 67 65 6e 72 65 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 hose......genre.info.field.match
c19a0 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 es.the.given.regular.expression.
c19c0 28 64 65 66 61 75 6c 74 3a 20 74 68 65 0a 20 20 20 20 20 67 65 6e 72 65 20 69 6e 66 6f 20 66 69 (default:.the......genre.info.fi
c19e0 65 6c 64 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 eld.of.the.track.at.point)...'/.
c1a00 6e 27 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 n'......Create.a.new.playlist.bu
c1a20 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 ffer.and.populate.it.with.tracks
c1a40 20 77 68 6f 73 65 20 6e 61 6d 65 0a 20 20 20 20 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 .whose.name......matches.the.giv
c1a60 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 en.regular.expression.(default:.
c1a80 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 74 72 61 63 6b 20 61 74 20 70 6f the.name.of.the......track.at.po
c1aa0 69 6e 74 29 2e 0a 0a 27 2f 20 70 27 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 int)...'/.p'......Create.a.new.p
c1ac0 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 laylist.buffer.and.populate.it.w
c1ae0 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f 73 65 0a 20 20 20 20 20 70 65 72 66 6f 72 6d 65 72 20 ith.tracks.whose......performer.
c1b00 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 info.field.matches.the.given.reg
c1b20 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 74 ular.expression.(default:......t
c1b40 68 65 20 70 65 72 66 6f 72 6d 65 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 74 he.performer.info.field.of.the.t
c1b60 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 74 27 0a 20 20 20 20 20 43 72 65 61 rack.at.point)...'/.t'......Crea
c1b80 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 te.a.new.playlist.buffer.and.pop
c1ba0 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f 73 65 0a 20 20 20 20 20 ulate.it.with.tracks.whose......
c1bc0 74 69 74 6c 65 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 title.info.field.matches.the.giv
c1be0 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 en.regular.expression.(default:.
c1c00 74 68 65 0a 20 20 20 20 20 74 69 74 6c 65 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 the......title.info.field.of.the
c1c20 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 79 27 0a 20 20 20 20 20 43 72 .track.at.point)...'/.y'......Cr
c1c40 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 eate.a.new.playlist.buffer.and.p
c1c60 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 20 77 68 6f 73 65 20 79 65 61 opulate.it.with.tracks.whose.yea
c1c80 72 0a 20 20 20 20 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 r......info.field.matches.the.gi
c1ca0 76 65 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a ven.regular.expression.(default:
c1cc0 20 74 68 65 20 79 65 61 72 0a 20 20 20 20 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 .the.year......info.field.of.the
c1ce0 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 27 2f 20 2f 27 0a 20 20 20 20 20 53 77 .track.at.point)...'/./'......Sw
c1d00 69 74 63 68 20 74 6f 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 70 6c 61 79 6c 69 73 74 20 62 75 itch.to.the.original.playlist.bu
c1d20 66 66 65 72 20 28 69 66 20 69 74 20 73 74 69 6c 6c 20 65 78 69 73 74 73 29 2e 0a 0a 1f 0a 46 69 ffer.(if.it.still.exists).....Fi
c1d40 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 75 73 69 63 le:.doc7SuRxP.info,..Node:.Music
c1d60 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2c 20 20 4e 65 78 74 3a 20 4c 79 72 69 63 73 2c 20 20 .Player.Daemon,..Next:.Lyrics,..
c1d80 50 72 65 76 3a 20 4c 69 6d 69 74 69 6e 67 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 34 20 4d 75 73 Prev:.Limiting,..Up:.Top..24.Mus
c1da0 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ic.Player.Daemon.***************
c1dc0 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 70 72 6f 76 69 64 65 73 20 61 6e 20 69 6e 74 65 72 66 *******..Emms.provides.an.interf
c1de0 61 63 65 20 74 6f 20 74 68 65 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 0a 28 ace.to.the.Music.Player.Daemon.(
c1e00 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 75 73 69 63 70 64 2e 6f 72 67 2f 29 28 4d 75 73 69 63 50 44 http://www.musicpd.org/)(MusicPD
c1e20 29 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 63 61 6c 6c ).software...The.package.is.call
c1e40 65 64 0a 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 27 20 61 6e 64 20 69 73 20 70 72 6f 76 ed.'emms-player-mpd'.and.is.prov
c1e60 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ided.by.the.file.'emms-player-mp
c1e80 64 2e 65 6c 27 2e 0a 0a 20 20 20 54 68 65 20 61 64 76 61 6e 74 61 67 65 73 20 6f 66 20 75 73 69 d.el'......The.advantages.of.usi
c1ea0 6e 67 20 4d 75 73 69 63 50 44 20 61 73 20 61 6e 20 45 6d 6d 73 20 62 61 63 6b 65 6e 64 20 69 6e ng.MusicPD.as.an.Emms.backend.in
c1ec0 63 6c 75 64 65 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 0a 20 20 20 2a 20 6d 69 6e 69 6d clude.the.following......*.minim
c1ee0 61 6c 20 43 50 55 20 75 73 61 67 65 0a 0a 20 20 20 2a 20 66 61 73 74 20 61 63 63 65 73 73 20 6f al.CPU.usage.....*.fast.access.o
c1f00 66 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 20 20 20 2a 20 6f 70 74 69 6f 6e f.track.information.....*.option
c1f20 61 6c 20 63 72 6f 73 73 66 61 64 65 0a 0a 53 65 74 75 70 0a 2d 2d 2d 2d 2d 0a 0a 54 6f 20 6c 6f al.crossfade..Setup.-----..To.lo
c1f40 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 27 20 69 6e 76 6f 6b 65 3a 0a 0a 20 20 ad.'emms-player-mpd'.invoke:....
c1f60 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 0a 0a 20 ...(require.'emms-player-mpd)...
c1f80 20 20 53 65 74 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 45 4d 4d 53 2d 50 4c 41 59 45 52 2d ..Set.the.variables.EMMS-PLAYER-
c1fa0 4d 50 44 2d 53 45 52 56 45 52 2d 4e 41 4d 45 20 61 6e 64 0a 45 4d 4d 53 2d 50 4c 41 59 45 52 2d MPD-SERVER-NAME.and.EMMS-PLAYER-
c1fc0 4d 50 44 2d 53 45 52 56 45 52 2d 50 4f 52 54 20 74 6f 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 MPD-SERVER-PORT.to.the.location.
c1fe0 61 6e 64 20 70 6f 72 74 20 28 72 65 73 70 65 63 74 69 76 65 6c 79 29 20 6f 66 0a 79 6f 75 72 20 and.port.(respectively).of.your.
c2000 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 MusicPD.server...For.example:...
c2020 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 ....(setq.emms-player-mpd-server
c2040 2d 6e 61 6d 65 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d -name."localhost")......(setq.em
c2060 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 6f 72 74 20 22 36 36 30 30 22 ms-player-mpd-server-port."6600"
c2080 29 0a 0a 20 20 20 49 66 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 73 65 74 75 70 20 72 65 71 75 ).....If.your.MusicPD.setup.requ
c20a0 69 72 65 73 20 61 20 70 61 73 73 77 6f 72 64 2c 20 79 6f 75 20 77 69 6c 6c 20 74 6f 20 73 65 74 ires.a.password,.you.will.to.set
c20c0 0a 45 4d 4d 53 2d 50 4c 41 59 45 52 2d 4d 50 44 2d 53 45 52 56 45 52 2d 50 41 53 53 57 4f 52 44 .EMMS-PLAYER-MPD-SERVER-PASSWORD
c20e0 20 61 73 20 66 6f 6c 6c 6f 77 73 2e 0a 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c .as.follows........(setq.emms-pl
c2100 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 61 73 73 77 6f 72 64 20 22 6d 79 70 61 73 73 ayer-mpd-server-password."mypass
c2120 77 6f 72 64 22 29 0a 0a 20 20 20 54 6f 20 67 65 74 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 word").....To.get.track.informat
c2140 69 6f 6e 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2c 20 69 6e 76 6f 6b 65 20 74 68 65 20 66 6f 6c ion.from.MusicPD,.invoke.the.fol
c2160 6c 6f 77 69 6e 67 3a 0a 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 lowing:.......(add-to-list.'emms
c2180 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 29 0a -info-functions.'emms-info-mpd).
c21a0 0a 20 20 20 41 64 64 69 6e 67 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 27 20 74 6f 20 ....Adding.'emms-player-mpd'.to.
c21c0 79 6f 75 72 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 6c 69 73 74 20 69 73 20 61 63 63 6f 6d 70 6c your.Emms.player.list.is.accompl
c21e0 69 73 68 65 64 20 62 79 0a 69 6e 76 6f 6b 69 6e 67 3a 0a 0a 20 20 20 20 20 28 61 64 64 2d 74 6f ished.by.invoking:.......(add-to
c2200 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c -list.'emms-player-list.'emms-pl
c2220 61 79 65 72 2d 6d 70 64 29 0a 0a 20 20 20 55 6e 6c 65 73 73 20 79 6f 75 72 20 4d 75 73 69 63 50 ayer-mpd).....Unless.your.MusicP
c2240 44 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 74 6f 20 75 73 65 20 61 62 73 6f 6c 75 74 65 20 D.is.configured.to.use.absolute.
c2260 66 69 6c 65 20 6e 61 6d 65 73 2c 20 79 6f 75 0a 6d 75 73 74 20 73 65 74 20 74 68 65 20 65 6d 6d file.names,.you.must.set.the.emm
c2280 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 20 76 61 72 s-player-mpd-music-directory.var
c22a0 69 61 62 6c 65 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 0a 27 6d 75 73 69 63 5f 64 69 72 iable.to.the.value.of.'music_dir
c22c0 65 63 74 6f 72 79 27 20 69 6e 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 63 6f 6e 66 69 67 75 72 ectory'.in.your.MusicPD.configur
c22e0 61 74 69 6f 6e 2e 20 20 54 68 65 72 65 20 61 72 65 20 61 64 64 69 74 69 6f 6e 61 6c 0a 6f 70 74 ation...There.are.additional.opt
c2300 69 6f 6e 73 20 61 76 61 69 6c 61 62 6c 65 20 61 73 20 77 65 6c 6c 2c 20 62 75 74 20 74 68 65 20 ions.available.as.well,.but.the.
c2320 64 65 66 61 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 20 73 75 66 66 69 63 69 65 6e 74 20 66 6f defaults.should.be.sufficient.fo
c2340 72 0a 6d 6f 73 74 20 75 73 65 73 2e 0a 0a 20 20 20 4f 6e 63 65 20 79 6f 75 27 76 65 20 64 6f 6e r.most.uses......Once.you've.don
c2360 65 20 74 68 65 20 61 62 6f 76 65 2c 20 72 75 6e 20 74 68 65 20 27 4d 2d 78 20 65 6d 6d 73 2d 63 e.the.above,.run.the.'M-x.emms-c
c2380 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 27 0a 63 6f 6d 6d 61 6e 64 20 74 ache-set-from-mpd-all'.command.t
c23a0 6f 20 66 69 6c 6c 20 74 68 65 20 45 6d 6d 73 20 63 61 63 68 65 20 77 69 74 68 20 74 68 65 20 63 o.fill.the.Emms.cache.with.the.c
c23c0 6f 6e 74 65 6e 74 73 20 6f 66 20 79 6f 75 72 20 4d 75 73 69 63 50 44 0a 64 61 74 61 62 61 73 65 ontents.of.your.MusicPD.database
c23e0 2e 20 20 54 68 65 20 6d 75 73 69 63 20 69 6e 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 64 61 74 ...The.music.in.your.MusicPD.dat
c2400 61 62 61 73 65 20 73 68 6f 75 6c 64 20 74 68 65 6e 20 62 65 20 61 63 63 65 73 73 69 62 6c 65 0a abase.should.then.be.accessible.
c2420 76 69 61 20 74 68 65 20 45 6d 6d 73 20 62 72 6f 77 73 65 72 2e 0a 0a 20 20 20 59 6f 75 20 63 61 via.the.Emms.browser......You.ca
c2440 6e 20 73 65 74 20 45 4d 4d 53 2d 50 4c 41 59 45 52 2d 4d 50 44 2d 53 59 4e 43 2d 50 4c 41 59 4c n.set.EMMS-PLAYER-MPD-SYNC-PLAYL
c2460 49 53 54 20 74 6f 20 6e 69 6c 20 69 66 20 79 6f 75 72 20 6d 61 73 74 65 72 20 45 6d 6d 73 0a 70 IST.to.nil.if.your.master.Emms.p
c2480 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 6c 79 20 73 74 6f 72 65 64 20 70 6c 61 laylist.contains.only.stored.pla
c24a0 79 6c 69 73 74 73 2e 0a 0a 20 20 20 49 6e 20 6f 72 64 65 72 20 66 6f 72 20 45 6d 6d 73 20 74 6f ylists......In.order.for.Emms.to
c24c0 20 73 79 6e 63 68 72 6f 6e 69 7a 65 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 63 .synchronize.track.information.c
c24e0 6f 72 72 65 63 74 6c 79 20 77 69 74 68 0a 4d 75 73 69 63 50 44 2c 20 79 6f 75 20 6d 75 73 74 20 orrectly.with.MusicPD,.you.must.
c2500 73 65 74 20 74 68 65 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 20 72 75 6e 74 69 6d 65 20 27 set.the.MusicPD.server.runtime.'
c2520 63 6f 6e 73 75 6d 65 27 20 6f 70 74 69 6f 6e 20 74 6f 0a 27 6f 66 66 27 2e 20 20 54 68 69 73 20 consume'.option.to.'off'...This.
c2540 63 61 6e 20 62 65 20 61 63 63 6f 6d 70 6c 69 73 68 65 64 20 77 69 74 68 20 74 68 65 20 6d 70 63 can.be.accomplished.with.the.mpc
c2560 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 4d 75 73 69 63 50 44 0a 63 6c 69 65 6e 74 20 75 73 69 .command.line.MusicPD.client.usi
c2580 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 27 6d 70 63 20 63 6f 6e 73 75 6d 65 20 6f 66 66 27 ng.the.command.'mpc.consume.off'
c25a0 2e 0a 0a 43 6f 6d 6d 61 6e 64 73 20 70 72 6f 76 69 64 65 64 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...Commands.provided.-----------
c25c0 2d 2d 2d 2d 2d 2d 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 ------...--.Function:.emms-playe
c25e0 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 0a 20 20 20 20 20 43 6f 6e 6e 65 63 74 20 74 6f 20 4d 75 r-mpd-connect......Connect.to.Mu
c2600 73 69 63 50 44 20 61 6e 64 20 72 65 74 72 69 65 76 65 20 69 74 73 20 63 75 72 72 65 6e 74 20 70 sicPD.and.retrieve.its.current.p
c2620 6c 61 79 6c 69 73 74 2e 20 20 41 66 74 65 72 77 61 72 64 2c 0a 20 20 20 20 20 74 68 65 20 73 74 laylist...Afterward,......the.st
c2640 61 74 75 73 20 6f 66 20 4d 75 73 69 63 50 44 20 77 69 6c 6c 20 62 65 20 74 72 61 63 6b 65 64 2e atus.of.MusicPD.will.be.tracked.
c2660 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d ...--.Function:.emms-player-mpd-
c2680 64 69 73 63 6f 6e 6e 65 63 74 0a 20 20 20 20 20 54 65 72 6d 69 6e 61 74 65 20 74 68 65 20 4d 75 disconnect......Terminate.the.Mu
c26a0 73 69 63 50 44 20 63 6c 69 65 6e 74 20 70 72 6f 63 65 73 73 20 61 6e 64 20 64 69 73 63 6f 6e 6e sicPD.client.process.and.disconn
c26c0 65 63 74 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a ect.from.MusicPD....--.Function:
c26e0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 68 6f 77 20 26 6f 70 74 69 6f 6e 61 6c 20 .emms-player-mpd-show.&optional.
c2700 69 6e 73 65 72 74 70 0a 20 20 20 20 20 44 65 73 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 6e insertp......Describe.the.curren
c2720 74 20 45 6d 6d 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 20 t.Emms.track.in.the.minibuffer..
c2740 20 49 66 20 49 4e 53 45 52 54 50 20 69 73 0a 20 20 20 20 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 .If.INSERTP.is......non-nil,.ins
c2760 65 72 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 63 75 72 ert.the.description.into.the.cur
c2780 72 65 6e 74 20 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 54 68 69 73 20 66 rent.buffer.instead.......This.f
c27a0 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 45 4d 4d 53 2d 53 48 4f 57 2d 46 4f 52 4d 41 54 20 74 6f unction.uses.EMMS-SHOW-FORMAT.to
c27c0 20 66 6f 72 6d 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 20 20 20 20 20 .format.the.current.track.......
c27e0 49 74 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 27 65 6d 6d 73 2d 73 68 6f 77 27 20 69 6e 20 74 It.differs.from.'emms-show'.in.t
c2800 68 61 74 20 69 74 20 61 73 6b 73 20 4d 75 73 69 63 50 44 20 66 6f 72 20 74 68 65 20 63 75 72 72 hat.it.asks.MusicPD.for.the.curr
c2820 65 6e 74 0a 20 20 20 20 20 74 72 61 63 6b 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 45 6d 6d 73 ent......track,.rather.than.Emms
c2840 2e 0a 0a 55 70 64 61 74 69 6e 67 20 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 74 61 62 61 73 65 ...Updating.the.MusicPD.database
c2860 0a 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a 0a ................................
c2880 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 70 .--.Function:.emms-player-mpd-up
c28a0 64 61 74 65 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 0a 20 20 20 20 20 43 61 75 73 65 20 74 68 date-directory.dir......Cause.th
c28c0 65 20 74 72 61 63 6b 73 20 69 6e 20 44 49 52 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 69 6e e.tracks.in.DIR.to.be.updated.in
c28e0 20 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 74 61 62 61 73 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 .the.MusicPD.database....--.Func
c2900 74 69 6f 6e 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 70 64 61 74 65 2d 61 6c 6c tion:.emms-player-mpd-update-all
c2920 0a 20 20 20 20 20 43 61 75 73 65 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 4d 75 ......Cause.all.tracks.in.the.Mu
c2940 73 69 63 50 44 20 6d 75 73 69 63 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 62 65 20 75 70 64 61 sicPD.music.directory.to.be.upda
c2960 74 65 64 20 69 6e 0a 20 20 20 20 20 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 74 61 62 61 73 65 ted.in......the.MusicPD.database
c2980 2e 0a 0a 65 6d 6d 73 2d 63 61 63 68 65 2e 65 6c 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 2e 2e 2e ...emms-cache.el.integration....
c29a0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a 0a 20 2d 2d 20 46 75 6e 63 .........................--.Func
c29c0 74 69 6f 6e 3a 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 64 69 tion:.emms-cache-set-from-mpd-di
c29e0 72 65 63 74 6f 72 79 20 64 69 72 0a 20 20 20 20 20 44 75 6d 70 20 61 6c 6c 20 4d 75 73 69 63 50 rectory.dir......Dump.all.MusicP
c2a00 44 20 64 61 74 61 20 66 72 6f 6d 20 44 49 52 20 69 6e 74 6f 20 74 68 65 20 45 6d 6d 73 20 63 61 D.data.from.DIR.into.the.Emms.ca
c2a20 63 68 65 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 0a 20 20 20 20 20 74 6f 20 64 6f 20 che...This.is.useful......to.do.
c2a40 77 68 65 6e 20 79 6f 75 20 68 61 76 65 20 72 65 63 65 6e 74 6c 79 20 61 63 71 75 69 72 65 64 20 when.you.have.recently.acquired.
c2a60 6e 65 77 20 6d 75 73 69 63 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 63 new.music....--.Function:.emms-c
c2a80 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 0a 20 20 20 20 20 44 75 6d 70 20 ache-set-from-mpd-all......Dump.
c2aa0 61 6c 6c 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 69 6e 74 6f 20 74 68 65 20 45 6d 6d 73 20 63 all.MusicPD.data.into.the.Emms.c
c2ac0 61 63 68 65 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 74 6f 20 64 6f 0a 20 20 20 20 ache...This.is.useful.to.do.....
c2ae0 20 6f 6e 63 65 2c 20 6a 75 73 74 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 65 6d 6d 73 2d 62 72 .once,.just.before.using.emms-br
c2b00 6f 77 73 65 72 2e 65 6c 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 69 6d 65 20 74 68 65 0a owser.el,.in.order.to.prime.the.
c2b20 20 20 20 20 20 63 61 63 68 65 2e 0a 0a 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 20 69 6e 74 65 .....cache...emms-volume.el.inte
c2b40 67 72 61 74 69 6f 6e 0a 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e gration.........................
c2b60 2e 2e 0a 0a 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 2c 20 61 64 64 20 74 68 65 20 66 6f ....To.activate.this,.add.the.fo
c2b80 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 2e 65 6d 61 63 73 2e 0a 0a 20 20 20 20 20 28 72 llowing.to.your..emacs........(r
c2ba0 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 20 20 20 20 20 28 73 65 74 71 20 equire.'emms-volume)......(setq.
c2bc0 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d emms-volume-change-function.'emm
c2be0 73 2d 76 6f 6c 75 6d 65 2d 6d 70 64 2d 63 68 61 6e 67 65 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f s-volume-mpd-change)....File:.do
c2c00 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 79 72 69 63 73 2c 20 20 4e 65 c7SuRxP.info,..Node:.Lyrics,..Ne
c2c20 78 74 3a 20 56 6f 6c 75 6d 65 2c 20 20 50 72 65 76 3a 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 xt:.Volume,..Prev:.Music.Player.
c2c40 44 61 65 6d 6f 6e 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 35 20 4c 79 72 69 63 73 0a 2a 2a 2a 2a Daemon,..Up:.Top..25.Lyrics.****
c2c60 2a 2a 2a 2a 2a 0a 0a 57 65 20 63 61 6e 20 64 69 73 70 6c 61 79 20 74 68 65 20 6c 79 72 69 63 73 *****..We.can.display.the.lyrics
c2c80 20 6f 66 20 61 20 73 6f 6e 67 20 69 6e 20 74 69 6d 65 20 77 69 74 68 20 74 68 65 20 6d 75 73 69 .of.a.song.in.time.with.the.musi
c2ca0 63 20 75 73 69 6e 67 20 74 68 65 0a 27 65 6d 6d 73 2d 6c 79 72 69 63 73 27 20 70 61 63 6b 61 67 c.using.the.'emms-lyrics'.packag
c2cc0 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 2d 6c 79 72 e.provided.by.the.file.'emms-lyr
c2ce0 69 63 73 2e 65 6c 27 2e 0a 0a 20 20 20 54 68 65 20 6c 79 72 69 63 73 20 66 69 6c 65 73 20 73 68 ics.el'......The.lyrics.files.sh
c2d00 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 74 69 6f 6e 20 22 2e 6c 72 63 22 2c 20 ould.have.the.extention.".lrc",.
c2d20 61 6e 64 20 63 61 6e 20 62 65 20 70 6c 61 63 65 64 0a 75 6e 64 65 72 20 65 69 74 68 65 72 20 74 and.can.be.placed.under.either.t
c2d40 68 65 20 73 61 6d 65 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 74 68 65 20 6d 75 73 69 63 20 66 he.same.directory.as.the.music.f
c2d60 69 6c 65 73 20 6f 72 20 45 4d 4d 53 2d 4c 59 52 49 43 53 2d 44 49 52 2e 0a 0a 20 20 20 54 6f 20 iles.or.EMMS-LYRICS-DIR......To.
c2d80 61 64 64 20 74 68 69 73 20 66 65 61 74 75 72 65 20 77 65 20 69 6e 76 6f 6b 65 3a 0a 0a 20 20 20 add.this.feature.we.invoke:.....
c2da0 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 29 0a 20 20 20 20 20 28 65 ..(require.'emms-lyrics)......(e
c2dc0 6d 6d 73 2d 6c 79 72 69 63 73 20 31 29 0a 0a 20 20 20 53 79 6e 63 68 72 6f 6e 69 7a 65 64 20 6c mms-lyrics.1).....Synchronized.l
c2de0 79 72 69 63 73 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 6d 61 6e 75 yrics.files.can.be.obtained.manu
c2e00 61 6c 6c 79 20 66 72 6f 6d 20 76 61 72 69 6f 75 73 0a 73 6f 75 72 63 65 73 2c 20 6f 72 20 66 65 ally.from.various.sources,.or.fe
c2e20 74 63 68 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 6f 72 20 6e 65 77 20 74 72 61 63 tched.automatically.for.new.trac
c2e40 6b 73 20 66 72 6f 6d 20 61 6e 20 4c 52 43 4c 49 42 20 73 65 72 76 65 72 0a 28 3c 68 74 74 70 73 ks.from.an.LRCLIB.server.(<https
c2e60 3a 2f 2f 6c 72 63 6c 69 62 2e 6e 65 74 3e 29 20 62 79 20 61 64 64 69 6e 67 20 74 68 65 20 66 6f ://lrclib.net>).by.adding.the.fo
c2e80 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 74 6f 0a 45 4d 4d 53 2d 54 52 41 43 4b 2d 49 llowing.function.to.EMMS-TRACK-I
c2ea0 4e 49 54 49 41 4c 49 5a 45 2d 46 55 4e 43 54 49 4f 4e 53 3a 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 NITIALIZE-FUNCTIONS:...--.Functi
c2ec0 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 67 65 74 20 26 6f 70 74 69 on:.emms-lyrics-lrclib-get.&opti
c2ee0 6f 6e 61 6c 20 74 72 61 63 6b 20 66 6f 72 63 65 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 onal.track.force.interactive....
c2f00 20 20 53 65 61 72 63 68 20 66 6f 72 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 6c 79 72 69 63 73 ..Search.for.synchronized.lyrics
c2f20 20 66 6f 72 20 54 52 41 43 4b 20 74 68 72 6f 75 67 68 20 4c 52 43 4c 49 42 e2 80 99 73 20 41 50 .for.TRACK.through.LRCLIB...s.AP
c2f40 49 2e 20 49 66 0a 20 20 20 20 20 54 52 41 43 4b 20 69 73 20 6f 6d 69 74 74 65 64 20 6f 72 20 6e I..If......TRACK.is.omitted.or.n
c2f60 69 6c 2c 20 75 73 65 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 20 69 6e 20 74 68 il,.use.the.selected.track.in.th
c2f80 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 70 6c 61 79 6c 69 73 74 2e 20 20 57 68 65 6e 20 75 e.current......playlist...When.u
c2fa0 73 65 64 20 61 73 20 61 20 74 72 61 63 6b 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 75 sed.as.a.track.initialization.fu
c2fc0 6e 63 74 69 6f 6e 2c 20 54 52 41 43 4b 20 69 73 0a 20 20 20 20 20 73 65 74 20 74 6f 20 74 68 65 nction,.TRACK.is......set.to.the
c2fe0 20 74 72 61 63 6b 20 62 65 69 6e 67 20 69 6e 69 74 69 61 6c 69 7a 65 64 2e 20 20 54 68 65 20 6c .track.being.initialized...The.l
c3000 79 72 69 63 73 20 61 72 65 20 73 61 76 65 64 20 69 6e 20 61 6e 0a 20 20 20 20 20 22 2e 6c 72 63 yrics.are.saved.in.an......".lrc
c3020 22 20 66 69 6c 65 20 61 6c 6f 6e 67 73 69 64 65 20 74 68 65 20 74 72 61 63 6b 2c 20 75 6e 6c 65 ".file.alongside.the.track,.unle
c3040 73 73 20 74 68 65 20 66 69 6c 65 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 20 28 69 6e 0a 20 ss.the.file.already.exists.(in..
c3060 20 20 20 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 73 65 61 72 63 68 20 69 73 6e e2 80 99 ....which.case.the.search.isn...
c3080 74 20 70 65 72 66 6f 72 6d 65 64 29 2e 20 20 57 68 65 6e 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 t.performed)...When.called.inter
c30a0 61 63 74 69 76 65 6c 79 0a 20 20 20 20 20 28 6e 6f 6e 2d 6e 69 6c 20 49 4e 54 45 52 41 43 54 49 actively......(non-nil.INTERACTI
c30c0 56 45 29 2c 20 64 69 73 70 6c 61 79 20 69 6e 66 6f 72 6d 61 74 69 76 65 20 6d 65 73 73 61 67 65 VE),.display.informative.message
c30e0 73 2c 20 61 6e 64 20 77 69 74 68 0a 20 20 20 20 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 s,.and.with......prefix.argument
c3100 20 46 4f 52 43 45 2c 20 61 73 6b 20 74 6f 20 6f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e .FORCE,.ask.to.overwrite.existin
c3120 67 20 22 2e 6c 72 63 22 20 66 69 6c 65 73 2e 0a 0a 20 20 20 54 68 65 72 65 20 61 72 65 20 61 20 g.".lrc".files......There.are.a.
c3140 6e 75 6d 62 65 72 20 6f 66 20 76 61 72 69 61 62 6c 65 73 20 77 65 20 63 61 6e 20 73 65 74 20 74 number.of.variables.we.can.set.t
c3160 6f 20 64 65 66 69 6e 65 20 74 68 65 20 77 61 79 20 74 68 61 74 0a 27 65 6d 6d 73 2d 6c 79 72 69 o.define.the.way.that.'emms-lyri
c3180 63 73 27 20 62 65 68 61 76 65 73 2c 20 77 65 20 63 61 6e 20 73 65 74 20 74 68 65 73 65 20 64 69 cs'.behaves,.we.can.set.these.di
c31a0 72 65 63 74 6c 79 20 6f 72 20 62 79 20 75 73 69 6e 67 20 74 68 65 0a 43 75 73 74 6f 6d 69 7a 65 rectly.or.by.using.the.Customize
c31c0 20 66 65 61 74 75 72 65 20 69 6e 20 45 6d 61 63 73 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 .feature.in.Emacs....--.User.Opt
c31e0 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 ion:.emms-lyrics-display-on-mini
c3200 62 75 66 66 65 72 0a 20 20 20 20 20 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 69 73 70 6c 61 79 20 buffer......If.non-nil,.display.
c3220 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 66 65 72 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 lyrics.on.minibuffer....--.User.
c3240 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d Option:.emms-lyrics-display-on-m
c3260 6f 64 65 6c 69 6e 65 0a 20 20 20 20 20 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 69 73 70 6c 61 79 odeline......If.non-nil,.display
c3280 20 6c 79 72 69 63 73 20 6f 6e 20 6d 6f 64 65 6c 69 6e 65 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f .lyrics.on.modeline....--.User.O
c32a0 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 72 0a 20 20 20 20 20 4c 6f 63 61 ption:.emms-lyrics-dir......Loca
c32c0 6c 20 6c 79 72 69 63 73 20 72 65 70 6f 73 69 74 6f 72 79 2e 20 20 27 65 6d 6d 73 2d 6c 79 72 69 l.lyrics.repository...'emms-lyri
c32e0 63 73 2d 66 69 6e 64 2d 6c 79 72 69 63 27 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 6f 72 0a 20 20 20 cs-find-lyric'.will.look.for....
c3300 20 20 6c 79 72 69 63 73 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 28 69 2e ..lyrics.in.current.directory(i.
c3320 65 2e 2c 20 73 61 6d 65 20 61 73 20 74 68 65 20 6d 75 73 69 63 20 66 69 6c 65 29 20 61 6e 64 20 e.,.same.as.the.music.file).and.
c3340 74 68 69 73 0a 20 20 20 20 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f this......directory....--.User.O
c3360 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 66 6f 72 6d 61 ption:.emms-lyrics-display-forma
c3380 74 0a 20 20 20 20 20 46 6f 72 6d 61 74 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 t......Format.for.displaying.lyr
c33a0 69 63 73 2e 20 20 22 25 73 22 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 ics..."%s".will.be.replaced.by.t
c33c0 68 65 20 6c 79 72 69 63 73 0a 20 20 20 20 20 73 74 72 69 6e 67 2e 0a 0a 20 2d 2d 20 55 73 65 72 he.lyrics......string....--.User
c33e0 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 .Option:.emms-lyrics-coding-syst
c3400 65 6d 0a 20 20 20 20 20 43 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 75 73 65 64 20 69 6e 20 74 68 em......Coding.system.used.in.th
c3420 65 20 6f 75 74 70 75 74 20 6f 66 20 6c 79 72 69 63 73 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 e.output.of.lyrics....--.User.Op
c3440 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 70 0a 20 20 20 20 20 tion:.emms-lyrics-scroll-p......
c3460 4e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 20 77 69 6c 6c 20 65 6e 61 62 6c 65 20 6c 79 72 69 63 73 Non-nil.value.will.enable.lyrics
c3480 20 73 63 72 6f 6c 6c 69 6e 67 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d .scrolling....--.User.Option:.em
c34a0 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 72 2d 69 6e 74 65 72 76 61 6c 0a ms-lyrics-scroll-timer-interval.
c34c0 20 20 20 20 20 49 6e 74 65 72 76 61 6c 20 62 65 74 77 65 65 6e 20 73 63 72 6f 6c 6c 65 72 20 74 .....Interval.between.scroller.t
c34e0 69 6d 65 72 73 2e 20 20 54 68 65 20 73 68 6f 72 74 65 72 2c 20 74 68 65 20 66 61 73 74 65 72 2e imers...The.shorter,.the.faster.
c3500 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c ...--.User.Option:.emms-lyrics-l
c3520 72 63 6c 69 62 2d 75 72 6c 0a 20 20 20 20 20 42 61 73 65 20 55 52 4c 20 66 6f 72 20 4c 52 43 4c rclib-url......Base.URL.for.LRCL
c3540 49 42 20 41 50 49 20 72 65 71 75 65 73 74 73 2e 0a 0a 20 20 20 57 65 20 63 61 6e 20 63 6f 6e 74 IB.API.requests......We.can.cont
c3560 72 6f 6c 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 27 20 77 69 74 68 20 74 68 65 20 68 65 6c 70 20 rol.'emms-lyrics'.with.the.help.
c3580 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 66 75 6e 63 74 69 6f 6e 73 3a 0a 0a 20 2d 2d of.the.following.functions:...--
c35a0 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 0a 20 20 20 .Function:.emms-lyrics-start....
c35c0 20 20 53 74 61 72 74 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 0a 0a 20 2d 2d 20 ..Start.displaying.lyrics....--.
c35e0 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 0a 20 20 20 20 20 Function:.emms-lyrics-stop......
c3600 53 74 6f 70 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 0a 0a 20 2d 2d 20 46 75 6e Stop.displaying.lyrics....--.Fun
c3620 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 2d 64 69 73 70 6c 61 ction:.emms-lyrics-toggle-displa
c3640 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 54 6f 67 67 6c 65 20 64 69 73 70 y-on-minibuffer......Toggle.disp
c3660 6c 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 65 72 2e 0a 0a 20 2d 2d 20 46 75 lay.lyrics.on.minibufer....--.Fu
c3680 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 2d 64 69 73 70 6c nction:.emms-lyrics-toggle-displ
c36a0 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 0a 20 20 20 20 20 54 6f 67 67 6c 65 20 64 69 73 70 6c ay-on-modeline......Toggle.displ
c36c0 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2e 0a 0a 20 2d 2d 20 46 75 6e ay.lyrics.on.mode.line....--.Fun
c36e0 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6e 61 62 6c 65 0a 20 20 20 20 20 45 ction:.emms-lyrics-enable......E
c3700 6e 61 62 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 45 6d 6d 73 20 6c 79 72 69 63 73 2e 0a 0a 20 nable.displaying.Emms.lyrics....
c3720 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 61 62 6c 65 --.Function:.emms-lyrics-disable
c3740 0a 20 20 20 20 20 44 69 73 61 62 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 45 6d 6d 73 20 6c 79 ......Disable.displaying.Emms.ly
c3760 72 69 63 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 rics....--.Function:.emms-lyrics
c3780 2d 74 6f 67 67 6c 65 0a 20 20 20 20 20 54 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 45 -toggle......Toggle.displaying.E
c37a0 6d 6d 73 20 6c 79 72 69 63 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 mms.lyrics.....File:.doc7SuRxP.i
c37c0 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 56 6f 6c 75 6d 65 2c 20 20 4e 65 78 74 3a 20 53 74 72 65 61 nfo,..Node:.Volume,..Next:.Strea
c37e0 6d 69 6e 67 20 41 75 64 69 6f 2c 20 20 50 72 65 76 3a 20 4c 79 72 69 63 73 2c 20 20 55 70 3a 20 ming.Audio,..Prev:.Lyrics,..Up:.
c3800 54 6f 70 0a 0a 32 36 20 56 6f 6c 75 6d 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 57 65 20 63 61 6e Top..26.Volume.*********..We.can
c3820 20 75 73 65 20 74 68 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 27 20 70 61 63 6b 61 67 65 2c 20 .use.the.'emms-volume'.package,.
c3840 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 0a 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e as.provided.by.the.'emms-volume.
c3860 65 6c 27 20 66 69 6c 65 2c 20 74 6f 20 6d 61 6e 69 70 75 6c 61 74 65 20 74 68 65 20 76 6f 6c 75 el'.file,.to.manipulate.the.volu
c3880 6d 65 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 76 6f 6c 75 6d me....--.User.Option:.emms-volum
c38a0 65 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 0a 20 20 20 20 20 54 68 65 20 61 6d 6f 75 6e 74 20 e-change-amount......The.amount.
c38c0 74 6f 20 75 73 65 20 77 68 65 6e 20 72 61 69 73 69 6e 67 20 6f 72 20 6c 6f 77 65 72 69 6e 67 20 to.use.when.raising.or.lowering.
c38e0 74 68 65 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 74 68 65 0a 20 20 20 20 20 65 6d 6d 73 2d 76 the.volume.using.the......emms-v
c3900 6f 6c 75 6d 65 20 69 6e 74 65 72 66 61 63 65 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 73 68 6f 75 olume.interface........This.shou
c3920 6c 64 20 62 65 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 0a 0a 20 2d 2d 20 46 ld.be.a.positive.integer....--.F
c3940 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 0a 20 20 20 20 20 unction:.emms-volume-raise......
c3960 49 6e 63 72 65 61 73 65 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 Increase.the.volume....--.Functi
c3980 6f 6e 3a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 72 0a 20 20 20 20 20 44 65 63 72 65 on:.emms-volume-lower......Decre
c39a0 61 73 65 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 66 65 65 6c 20 ase.the.volume......If.you.feel.
c39c0 6c 69 6b 65 20 62 69 6e 64 69 6e 67 20 74 68 6f 73 65 20 74 77 6f 20 66 75 6e 63 74 69 6f 6e 73 like.binding.those.two.functions
c39e0 20 74 6f 20 67 6c 6f 62 61 6c 20 6b 65 79 73 20 2d 2d 20 64 6f 6e 27 74 0a 64 6f 20 69 74 20 6f .to.global.keys.--.don't.do.it.o
c3a00 72 20 79 6f 75 27 6c 6c 20 6d 69 73 73 20 74 68 65 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6f 66 r.you'll.miss.the.convenience.of
c3a20 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 0a 49 6e 73 74 65 .'emms-volume-minor-mode'..Inste
c3a40 61 64 2c 20 62 69 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 63 6f 6d 6d 61 ad,.bind.the.following.two.comma
c3a60 6e 64 73 20 74 6f 20 73 6f 6d 65 20 6b 65 79 73 20 74 68 61 74 20 79 6f 75 20 6c 69 6b 65 2e 0a nds.to.some.keys.that.you.like..
c3a80 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d ..--.Function:.emms-volume-mode-
c3aa0 70 6c 75 73 0a 20 20 20 20 20 52 61 69 73 65 20 76 6f 6c 75 6d 65 20 61 6e 64 20 65 6e 61 62 6c plus......Raise.volume.and.enabl
c3ac0 65 20 6f 72 20 65 78 74 65 6e 64 20 74 68 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e e.or.extend.the.'emms-volume-min
c3ae0 6f 72 2d 6d 6f 64 65 27 0a 20 20 20 20 20 74 69 6d 65 6f 75 74 2e 0a 0a 20 2d 2d 20 46 75 6e 63 or-mode'......timeout....--.Func
c3b00 74 69 6f 6e 3a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 6d 69 6e 75 73 0a 20 20 20 tion:.emms-volume-mode-minus....
c3b20 20 20 4c 6f 77 65 72 20 76 6f 6c 75 6d 65 20 61 6e 64 20 65 6e 61 62 6c 65 20 6f 72 20 65 78 74 ..Lower.volume.and.enable.or.ext
c3b40 65 6e 64 20 74 68 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 end.the.'emms-volume-minor-mode'
c3b60 0a 20 20 20 20 20 74 69 6d 65 6f 75 74 2e 0a 0a 20 20 20 45 78 61 6d 70 6c 65 3a 0a 0a 20 20 20 ......timeout......Example:.....
c3b80 20 20 28 67 6c 6f 62 61 6c 2d 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 20 2b 22 29 20 ..(global-set-key.(kbd."C-c.+").
c3ba0 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 70 6c 75 73 29 0a 20 20 20 20 20 28 67 6c 'emms-volume-mode-plus)......(gl
c3bc0 6f 62 61 6c 2d 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 20 2d 22 29 20 27 65 6d 6d 73 obal-set-key.(kbd."C-c.-").'emms
c3be0 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 6d 69 6e 75 73 29 0a 0a 20 20 20 57 68 65 6e 65 76 65 72 -volume-mode-minus).....Whenever
c3c00 20 79 6f 75 20 75 73 65 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 6b 65 79 73 20 6f 72 20 63 61 .you.use.one.of.these.keys.or.ca
c3c20 6c 6c 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 74 68 0a 27 4d 2d 78 27 2c 20 45 ll.these.functions.with.'M-x',.E
c3c40 6d 6d 73 20 77 69 6c 6c 20 62 65 20 70 75 74 20 69 6e 74 6f 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d mms.will.be.put.into.'emms-volum
c3c60 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 66 6f 72 20 61 20 73 68 6f 72 74 20 70 65 72 69 6f 64 e-minor-mode'.for.a.short.period
c3c80 0a 64 65 66 69 6e 65 64 20 62 79 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 .defined.by.'emms-volume-mode-ti
c3ca0 6d 65 6f 75 74 27 2e 0a 0a 20 2d 2d 20 55 73 65 72 20 4f 70 74 69 6f 6e 3a 20 65 6d 6d 73 2d 76 meout'....--.User.Option:.emms-v
c3cc0 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 6f 75 74 0a 20 20 20 20 20 54 68 65 20 74 69 6d 65 olume-mode-timeout......The.time
c3ce0 6f 75 74 20 69 6e 20 61 6d 6f 75 6e 74 20 6f 66 20 73 65 63 6f 6e 64 73 20 75 73 65 64 20 62 79 out.in.amount.of.seconds.used.by
c3d00 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 0a 0a 20 20 20 49 .'emms-volume-minor-mode'......I
c3d20 6e 20 74 68 69 73 20 69 6e 74 65 72 76 61 6c 20 79 6f 75 20 63 61 6e 20 72 61 69 73 65 2f 6c 6f n.this.interval.you.can.raise/lo
c3d40 77 65 72 20 74 68 65 20 76 6f 6c 75 6d 65 20 73 69 6d 70 6c 79 20 62 79 20 70 72 65 73 73 69 6e wer.the.volume.simply.by.pressin
c3d60 67 0a 27 2b 27 20 6f 72 20 27 2d 27 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 61 6c 73 6f 20 72 65 g.'+'.or.'-',.which.will.also.re
c3d80 73 65 74 20 74 68 65 20 74 69 6d 65 72 20 74 6f 20 69 74 73 20 69 6e 69 74 69 61 6c 20 76 61 6c set.the.timer.to.its.initial.val
c3da0 75 65 2e 20 20 53 6f 0a 69 6e 73 74 65 61 64 20 6f 66 20 70 72 65 73 73 69 6e 67 20 27 43 2d 63 ue...So.instead.of.pressing.'C-c
c3dc0 20 2b 27 20 73 69 78 20 74 69 6d 65 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 76 6f 6c 75 6d 65 .+'.six.times.to.increase.volume
c3de0 20 62 79 20 73 69 78 20 73 74 65 70 73 20 6f 66 0a 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 .by.six.steps.of.'emms-volume-ch
c3e00 61 6e 67 65 2d 61 6d 6f 75 6e 74 27 2c 20 79 6f 75 20 77 6f 75 6c 64 20 73 69 6d 70 6c 79 20 74 ange-amount',.you.would.simply.t
c3e20 79 70 65 20 27 43 2d 63 20 2b 20 2b 20 2b 20 2b 20 2b 20 2b 27 2e 0a 0a 20 20 20 45 6d 6d 73 20 ype.'C-c.+.+.+.+.+.+'......Emms.
c3e40 63 61 6e 20 63 68 61 6e 67 65 20 76 6f 6c 75 6d 65 20 77 69 74 68 20 61 6d 69 78 65 72 2c 20 6d can.change.volume.with.amixer,.m
c3e60 70 64 2c 20 50 75 6c 73 65 41 75 64 69 6f 20 61 6e 64 20 6d 69 78 65 72 63 74 6c 20 6f 75 74 0a pd,.PulseAudio.and.mixerctl.out.
c3e80 6f 66 20 74 68 65 20 62 6f 78 2c 20 73 65 65 20 45 4d 4d 53 2d 56 4f 4c 55 4d 45 2d 43 48 41 4e of.the.box,.see.EMMS-VOLUME-CHAN
c3ea0 47 45 2d 46 55 4e 43 54 49 4f 4e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e GE-FUNCTION.....File:.doc7SuRxP.
c3ec0 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 2c 20 20 4e info,..Node:.Streaming.Audio,..N
c3ee0 65 78 74 3a 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 2c 20 20 50 72 65 76 3a 20 56 6f 6c 75 6d ext:.Radio.Browser,..Prev:.Volum
c3f00 65 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 37 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 0a e,..Up:.Top..27.Streaming.Audio.
c3f20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 69 73 20 61 20 67 72 ******************..Emms.is.a.gr
c3f40 65 61 74 20 77 61 79 20 74 6f 20 70 6c 61 79 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 eat.way.to.play.streaming.audio.
c3f60 61 6e 64 20 69 6e 74 65 72 6e 65 74 20 72 61 64 69 6f 2e 20 20 49 74 20 69 73 0a 70 6f 73 73 69 and.internet.radio...It.is.possi
c3f80 62 6c 65 20 74 6f 20 61 64 64 20 73 74 72 65 61 6d 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 61 ble.to.add.streaming.playlists.a
c3fa0 6e 64 20 55 52 4c 73 20 74 6f 20 61 6e 79 20 70 6c 61 79 6c 69 73 74 2c 20 62 75 74 20 45 6d 6d nd.URLs.to.any.playlist,.but.Emm
c3fc0 73 0a 61 6c 73 6f 20 63 6f 6d 65 73 20 77 69 74 68 20 61 20 62 75 69 6c 74 2d 69 6e 2c 20 65 63 s.also.comes.with.a.built-in,.ec
c3fe0 6c 65 63 74 69 63 20 6c 69 73 74 20 6f 66 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 73 lectic.list.of.streaming.audio.s
c4000 74 61 74 69 6f 6e 73 2e 0a 28 31 29 0a 0a 20 20 20 54 68 65 20 27 65 6d 6d 73 2d 73 74 72 65 61 tations..(1).....The.'emms-strea
c4020 6d 73 2e 65 6c 27 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 63 6f 6d 6d ms.el'.package.provides.the.comm
c4040 61 6e 64 20 27 65 6d 6d 73 2d 73 74 72 65 61 6d 73 27 2e 0a 0a 20 20 20 49 6e 76 6f 6b 69 6e 67 and.'emms-streams'......Invoking
c4060 20 27 65 6d 6d 73 2d 73 74 72 65 61 6d 73 27 20 77 69 6c 6c 20 70 75 6c 6c 20 75 70 20 61 6e 20 .'emms-streams'.will.pull.up.an.
c4080 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 0a 70 6f 70 75 6c 61 74 Emms.playlist.buffer.and.populat
c40a0 65 20 69 74 20 77 69 74 68 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 6c 69 73 74 20 6f 66 20 73 e.it.with.the.built-in.list.of.s
c40c0 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 73 6f 75 72 63 65 73 2e 0a 0a 20 20 20 49 66 20 79 treaming.audio.sources......If.y
c40e0 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 6d 70 76 20 70 6c 61 79 65 72 2c 20 64 65 66 ou.are.using.the.mpv.player,.def
c4100 69 6e 65 64 20 62 79 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 27 2c 0a 74 68 ined.by.'emms-player-mpv.el',.th
c4120 65 6e 20 79 6f 75 20 63 61 6e 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 en.you.can.display.the.currently
c4140 20 73 74 72 65 61 6d 69 6e 67 20 74 72 61 63 6b 20 74 69 74 6c 65 20 28 69 66 20 74 68 65 20 73 .streaming.track.title.(if.the.s
c4160 74 61 74 69 6f 6e 0a 70 72 6f 76 69 64 65 73 20 74 68 61 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e tation.provides.that.information
c4180 29 20 62 79 20 63 6f 6e 66 69 67 75 72 69 6e 67 3a 0a 0a 20 20 20 20 20 20 20 28 63 75 73 74 6f ).by.configuring:.........(custo
c41a0 6d 69 7a 65 2d 73 65 74 2d 76 61 72 69 61 62 6c 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d mize-set-variable.'emms-player-m
c41c0 70 76 2d 75 70 64 61 74 65 2d 6d 65 74 61 64 61 74 61 20 74 29 0a 0a 20 20 20 2d 2d 2d 2d 2d 2d pv-update-metadata.t).....------
c41e0 2d 2d 2d 2d 20 46 6f 6f 74 6e 6f 74 65 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 20 20 20 28 31 ----.Footnotes.----------.....(1
c4200 29 20 45 6d 6d 73 20 68 61 73 20 6e 6f 20 61 66 66 69 6c 69 61 74 69 6f 6e 20 6f 66 20 61 6e 79 ).Emms.has.no.affiliation.of.any
c4220 20 6b 69 6e 64 20 77 69 74 68 20 74 68 65 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 0a 73 .kind.with.the.streaming.audio.s
c4240 74 61 74 69 6f 6e 73 20 69 6e 63 6c 75 64 65 64 2c 20 6e 6f 72 20 69 73 20 74 68 65 69 72 20 69 tations.included,.nor.is.their.i
c4260 6e 63 6c 75 73 69 6f 6e 20 61 6e 20 65 6e 64 6f 72 73 65 6d 65 6e 74 20 6f 66 20 74 68 65 73 65 nclusion.an.endorsement.of.these
c4280 0a 73 74 61 74 69 6f 6e 73 2e 20 20 49 6e 73 74 65 61 64 2c 20 74 68 69 73 20 69 73 20 61 20 63 .stations...Instead,.this.is.a.c
c42a0 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 73 74 61 74 69 6f 6e 73 20 73 75 62 6d 69 74 74 65 64 20 ollection.of.stations.submitted.
c42c0 74 6f 20 74 68 65 0a 70 72 6f 6a 65 63 74 20 6f 76 65 72 20 74 68 65 20 79 65 61 72 73 20 62 79 to.the.project.over.the.years.by
c42e0 20 70 65 6f 70 6c 65 20 77 68 6f 20 65 6e 6a 6f 79 20 45 6d 6d 73 2e 20 20 57 65 20 68 6f 70 65 .people.who.enjoy.Emms...We.hope
c4300 20 79 6f 75 20 77 69 6c 6c 20 65 6e 6a 6f 79 0a 74 68 65 6d 20 74 6f 6f 2c 20 61 6e 64 20 69 6e .you.will.enjoy.them.too,.and.in
c4320 76 69 74 65 20 79 6f 75 20 74 6f 20 73 65 6e 64 20 69 6e 20 79 6f 75 72 20 73 75 67 67 65 73 74 vite.you.to.send.in.your.suggest
c4340 69 6f 6e 73 20 74 6f 20 61 64 64 20 74 6f 20 74 68 65 20 6c 69 73 74 2e 0a 0a 1f 0a 46 69 6c 65 ions.to.add.to.the.list.....File
c4360 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 52 61 64 69 6f 20 42 :.doc7SuRxP.info,..Node:.Radio.B
c4380 72 6f 77 73 65 72 2c 20 20 4e 65 78 74 3a 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e rowser,..Next:.APE./.FLAC.Comman
c43a0 64 73 2c 20 20 50 72 65 76 3a 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 2c 20 20 55 70 3a ds,..Prev:.Streaming.Audio,..Up:
c43c0 20 54 6f 70 0a 0a 32 38 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a .Top..28.Radio.Browser.*********
c43e0 2a 2a 2a 2a 2a 2a 2a 0a 0a 57 65 20 63 61 6e 20 66 69 6e 64 20 6e 65 77 20 69 6e 74 65 72 6e 65 *******..We.can.find.new.interne
c4400 74 20 72 61 64 69 6f 20 73 74 61 74 69 6f 6e 73 20 74 6f 20 73 74 72 65 61 6d 20 62 79 20 73 65 t.radio.stations.to.stream.by.se
c4420 61 72 63 68 69 6e 67 20 74 68 65 0a 64 61 74 61 62 61 73 65 20 61 74 20 3c 68 74 74 70 73 3a 2f arching.the.database.at.<https:/
c4440 2f 77 77 77 2e 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 69 6e 66 6f 3e 2e 20 20 54 68 65 0a 27 /www.radio-browser.info>...The.'
c4460 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 27 20 70 61 63 6b 61 67 65 20 70 emms-radio-browser.el'.package.p
c4480 72 6f 76 69 64 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 74 rovides.the.following.commands.t
c44a0 6f 20 64 6f 0a 74 68 69 73 3a 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 72 o.do.this:...--.Function:.emms-r
c44c0 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 0a 20 20 20 20 adio-browser-search-by-name.....
c44e0 20 50 72 6f 6d 70 74 73 20 66 6f 72 20 61 20 73 74 61 74 69 6f 6e 20 4e 41 4d 45 20 61 6e 64 20 .Prompts.for.a.station.NAME.and.
c4500 72 65 74 75 72 6e 73 20 61 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 6d 61 74 63 68 69 6e 67 0a 20 returns.a.playlist.of.matching..
c4520 20 20 20 20 73 74 72 65 61 6d 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 ....streams....--.Function:.emms
c4540 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 75 72 6c 0a 20 20 20 -radio-browser-search-by-url....
c4560 20 20 50 72 6f 6d 70 74 73 20 66 6f 72 20 61 20 73 74 61 74 69 6f 6e 20 55 52 4c 20 61 6e 64 20 ..Prompts.for.a.station.URL.and.
c4580 72 65 74 75 72 6e 73 20 61 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 6d 61 74 63 68 69 6e 67 0a 20 returns.a.playlist.of.matching..
c45a0 20 20 20 20 73 74 72 65 61 6d 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 ....streams....--.Function:.emms
c45c0 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 0a 20 20 20 20 20 -radio-browser-full-search......
c45e0 50 6f 70 73 20 75 70 20 61 20 66 6f 72 6d 20 74 6f 20 73 65 61 72 63 68 20 62 79 20 6e 61 6d 65 Pops.up.a.form.to.search.by.name
c4600 2c 20 74 61 67 73 2c 20 63 6f 75 6e 74 72 79 20 6f 72 20 6c 61 6e 67 75 61 67 65 2e 0a 20 20 20 ,.tags,.country.or.language.....
c4620 20 20 52 65 74 75 72 6e 73 20 61 20 70 6c 61 79 6c 69 73 74 20 6f 66 20 6d 61 74 63 68 69 6e 67 ..Returns.a.playlist.of.matching
c4640 20 73 74 72 65 61 6d 73 2e 0a 0a 20 20 20 54 6f 20 61 63 74 69 76 61 74 65 20 27 65 6d 6d 73 2d .streams......To.activate.'emms-
c4660 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 27 2c 20 64 6f 0a 0a 20 20 20 20 20 28 72 65 71 radio-browser.el',.do.......(req
c4680 75 69 72 65 20 27 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 29 0a 0a 20 20 20 59 6f uire.'emms-radio-browser).....Yo
c46a0 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 68 65 20 27 74 72 61 6e 73 69 65 6e 74 2e 65 6c 27 20 70 u.will.need.the.'transient.el'.p
c46c0 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 28 74 68 69 73 20 69 73 0a ackage.to.be.installed.(this.is.
c46e0 62 75 69 6c 74 2d 69 6e 20 73 69 6e 63 65 20 65 6d 61 63 73 20 76 32 38 2e 31 29 2e 0a 0a 1f 0a built-in.since.emacs.v28.1).....
c4700 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 41 50 45 File:.doc7SuRxP.info,..Node:.APE
c4720 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 2c 20 20 4e 65 78 74 3a 20 42 6f 6f 6b 6d 61 72 ./.FLAC.Commands,..Next:.Bookmar
c4740 6b 73 2c 20 20 50 72 65 76 3a 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 2c 20 20 55 70 3a 20 54 ks,..Prev:.Radio.Browser,..Up:.T
c4760 6f 70 0a 0a 32 39 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 0a 2a 2a 2a 2a 2a op..29.APE./.FLAC.Commands.*****
c4780 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 4f 66 74 65 6e 2c 20 61 20 73 69 6e 67 *****************..Often,.a.sing
c47a0 6c 65 20 41 50 45 20 6f 72 20 46 4c 41 43 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61 20 63 le.APE.or.FLAC.file.contains.a.c
c47c0 6f 6d 70 6c 65 74 65 20 61 6c 62 75 6d 2e 20 20 57 65 20 63 61 6e 0a 73 74 69 6c 6c 20 70 6c 61 omplete.album...We.can.still.pla
c47e0 79 20 6e 65 78 74 20 6f 72 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 y.next.or.previous.track.in.the.
c4800 61 6c 62 75 6d 20 77 69 74 68 20 74 68 65 20 68 65 6c 70 20 6f 66 0a 27 65 6d 6d 73 2d 63 75 65 album.with.the.help.of.'emms-cue
c4820 2e 65 6c 27 20 70 61 63 6b 61 67 65 2c 20 70 72 6f 76 69 64 65 64 20 74 68 65 72 65 20 69 73 20 .el'.package,.provided.there.is.
c4840 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 75 65 20 73 68 65 65 74 20 66 69 6c 65 2e 0a a.corresponding.cue.sheet.file..
c4860 54 68 69 73 20 70 61 63 6b 61 67 65 20 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 27 65 6d 6d 73 2d This.package.also.defines.'emms-
c4880 69 6e 66 6f 2d 63 75 65 69 6e 66 6f 27 20 66 6f 72 20 72 65 74 72 65 69 76 69 6e 67 20 74 68 65 info-cueinfo'.for.retreiving.the
c48a0 20 74 72 61 63 6b 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 41 50 45 20 2f 20 46 4c 41 .track.information.for.APE./.FLA
c48c0 43 20 69 74 73 65 6c 66 2e 0a 0a 20 20 20 54 6f 20 6c 6f 61 64 20 27 65 6d 6d 73 2d 63 75 65 2e C.itself......To.load.'emms-cue.
c48e0 65 6c 27 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 75 65 29 0a 20 el':.......(require.'emms-cue)..
c4900 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 ....(add-to-list.'emms-info-func
c4920 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 69 6e 66 6f 29 0a 0a 20 2d 2d 20 46 tions.'emms-info-cueinfo)...--.F
c4940 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 63 75 65 2d 6e 65 78 74 0a 20 20 20 20 20 50 6c 61 79 unction:.emms-cue-next......Play
c4960 20 6e 65 78 74 20 74 72 61 63 6b 20 66 72 6f 6d 20 2e 63 75 65 20 66 69 6c 65 0a 20 2d 2d 20 46 .next.track.from..cue.file..--.F
c4980 75 6e 63 74 69 6f 6e 3a 20 65 6d 6d 73 2d 63 75 65 2d 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 unction:.emms-cue-previous......
c49a0 50 6c 61 79 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 66 72 6f 6d 20 2e 63 75 65 20 66 69 Play.previous.track.from..cue.fi
c49c0 6c 65 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 le....File:.doc7SuRxP.info,..Nod
c49e0 65 3a 20 42 6f 6f 6b 6d 61 72 6b 73 2c 20 20 4e 65 78 74 3a 20 4d 61 6e 61 67 69 6e 67 20 50 6c e:.Bookmarks,..Next:.Managing.Pl
c4a00 61 79 6c 69 73 74 73 2c 20 20 50 72 65 76 3a 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 aylists,..Prev:.APE./.FLAC.Comma
c4a20 6e 64 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 33 30 20 42 6f 6f 6b 6d 61 72 6b 73 0a 2a 2a 2a 2a nds,..Up:.Top..30.Bookmarks.****
c4a40 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 63 61 6e 20 73 61 76 65 20 61 20 22 74 65 6d 70 6f ********..Emms.can.save.a."tempo
c4a60 72 61 6c 20 62 6f 6f 6b 6d 61 72 6b 22 20 69 6e 20 61 20 6d 65 64 69 61 20 66 69 6c 65 20 76 69 ral.bookmark".in.a.media.file.vi
c4a80 61 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 0a 54 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 a.emms-bookmarks..The.file.'emms
c4aa0 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 65 6c 27 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 70 61 63 6b -bookmarks.el'.provides.the.pack
c4ac0 61 67 65 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 0a 0a 20 20 20 57 68 69 6c 65 20 73 6f age.emms-bookmarks......While.so
c4ae0 6d 65 20 6d 65 64 69 61 20 69 73 20 70 6c 61 79 69 6e 67 2c 20 69 6e 76 6f 6b 69 6e 67 20 27 4d me.media.is.playing,.invoking.'M
c4b00 2d 78 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 61 64 64 27 20 77 69 6c 6c 0a 66 69 72 73 -x.emms-bookmarks-add'.will.firs
c4b20 74 20 70 61 75 73 65 20 74 68 65 20 70 6c 61 79 62 61 63 6b 20 61 6e 64 20 74 68 65 6e 20 70 72 t.pause.the.playback.and.then.pr
c4b40 6f 6d 70 74 20 66 6f 72 20 61 20 6e 61 6d 65 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 0a 62 ompt.for.a.name.describing.the.b
c4b60 6f 6f 6b 6d 61 72 6b 2e 20 20 54 72 61 63 6b 73 20 63 61 6e 20 68 61 76 65 20 6d 75 6c 74 69 70 ookmark...Tracks.can.have.multip
c4b80 6c 65 20 62 6f 6f 6b 6d 61 72 6b 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 le.bookmarks.associated.with.the
c4ba0 6d 2e 0a 0a 20 20 20 54 6f 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 6e 64 20 70 m......To.jump.to.the.next.and.p
c4bc0 72 65 76 69 6f 75 73 20 62 6f 6f 6b 6d 61 72 6b 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 revious.bookmarks.in.the.current
c4be0 20 74 72 61 63 6b 0a 69 6e 76 6f 6b 65 20 27 4d 2d 78 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b .track.invoke.'M-x.emms-bookmark
c4c00 73 2d 6e 65 78 74 27 20 61 6e 64 20 27 4d 2d 78 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d s-next'.and.'M-x.emms-bookmarks-
c4c20 70 72 65 76 27 0a 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 0a 20 20 20 54 6f 20 63 6c 65 61 72 prev'.respectively......To.clear
c4c40 20 61 6c 6c 20 6f 66 20 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 73 20 66 6f 72 20 74 68 65 20 63 75 .all.of.the.bookmarks.for.the.cu
c4c60 72 72 65 6e 74 20 74 72 61 63 6b 20 69 6e 76 6f 6b 65 20 27 4d 2d 78 0a 65 6d 6d 73 2d 62 6f 6f rrent.track.invoke.'M-x.emms-boo
c4c80 6b 6d 61 72 6b 73 2d 63 6c 65 61 72 27 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 kmarks-clear'.....File:.doc7SuRx
c4ca0 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 P.info,..Node:.Managing.Playlist
c4cc0 73 2c 20 20 4e 65 78 74 3a 20 47 4e 55 20 46 4d 2c 20 20 50 72 65 76 3a 20 42 6f 6f 6b 6d 61 72 s,..Next:.GNU.FM,..Prev:.Bookmar
c4ce0 6b 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 33 31 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 ks,..Up:.Top..31.Managing.Playli
c4d00 73 74 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 sts.*********************..Emms.
c4d20 63 61 6e 20 68 61 76 65 20 6d 75 6c 74 69 70 6c 65 20 70 6c 61 79 6c 69 73 74 73 2c 20 73 69 6e can.have.multiple.playlists,.sin
c4d40 63 65 20 61 20 70 6c 61 79 6c 69 73 74 20 69 73 20 6a 75 73 74 20 61 6e 6f 74 68 65 72 0a 62 75 ce.a.playlist.is.just.another.bu
c4d60 66 66 65 72 20 77 69 74 68 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 2e 20 20 59 6f 75 ffer.with.a.list.of.tracks...You
c4d80 20 63 61 6e 20 6d 61 6e 61 67 65 20 6d 75 6c 74 69 70 6c 65 20 70 6c 61 79 6c 69 73 74 73 20 75 .can.manage.multiple.playlists.u
c4da0 73 69 6e 67 0a 27 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 27 2c 20 70 sing.'emms-metaplaylist-mode',.p
c4dc0 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 27 65 6d 6d 73 2d 6d 65 74 61 70 6c rovided.by.the.file.'emms-metapl
c4de0 61 79 6c 69 73 74 2d 6d 6f 64 65 27 2e 0a 0a 20 20 20 53 74 61 72 74 20 74 68 65 20 70 6c 61 79 aylist-mode'......Start.the.play
c4e00 6c 69 73 74 20 6d 61 6e 61 67 65 72 20 77 69 74 68 20 27 4d 2d 78 20 65 6d 6d 73 2d 6d 65 74 61 list.manager.with.'M-x.emms-meta
c4e20 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 27 2e 20 20 54 68 65 0a 70 6c 61 79 6c 69 73 74 playlist-mode-go'...The.playlist
c4e40 20 6d 61 6e 61 67 65 72 20 77 69 6c 6c 20 6c 69 73 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 73 .manager.will.list.the.playlists
c4e60 20 61 6e 64 20 6d 61 72 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 6f 6e 65 2e 20 20 54 68 65 0a .and.mark.the.current.one...The.
c4e80 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 61 76 61 69 6c 61 62 6c 65 following.commands.are.available
c4ea0 3a 0a 0a 27 52 45 54 27 0a 20 20 20 20 20 4d 61 6b 65 20 74 68 65 20 62 75 66 66 65 72 20 61 74 :..'RET'......Make.the.buffer.at
c4ec0 20 70 6f 69 6e 74 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 .point.the.Emms.playlist.buffer.
c4ee0 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 69 74 2e 0a 0a 20 20 20 20 20 2b 0a 27 56 27 0a 20 20 and.switch.to.it........+.'V'...
c4f00 20 20 20 56 69 73 69 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 74 20 70 6f 69 6e 74 2e 0a ...Visit.the.playlist.at.point..
c4f20 0a 27 53 50 43 27 0a 20 20 20 20 20 4d 61 6b 65 20 74 68 65 20 62 75 66 66 65 72 20 61 74 20 70 .'SPC'......Make.the.buffer.at.p
c4f40 6f 69 6e 74 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 28 62 oint.the.Emms.playlist.buffer.(b
c4f60 75 74 20 64 6f 20 6e 6f 74 0a 20 20 20 20 20 73 77 69 74 63 68 20 74 6f 20 69 74 29 2e 0a 0a 27 ut.do.not......switch.to.it)...'
c4f80 6e 27 0a 20 20 20 20 20 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 78 74 20 70 n'......Move.point.to.the.next.p
c4fa0 6c 61 79 6c 69 73 74 2e 0a 0a 27 70 27 0a 20 20 20 20 20 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f laylist...'p'......Move.point.to
c4fc0 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 27 67 27 0a 20 20 20 .the.previous.playlist...'g'....
c4fe0 20 20 55 70 64 61 74 65 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 6d 61 6e 61 67 65 72 20 62 75 ..Update.the.playlist.manager.bu
c5000 66 66 65 72 2e 0a 0a 27 43 27 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 45 6d 6d ffer...'C'......Create.a.new.Emm
c5020 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 27 43 2d 6b 27 0a 20 20 20 20 20 4b s.playlist.buffer...'C-k'......K
c5040 69 6c 6c 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 74 20 ill.the.Emms.playlist.buffer.at.
c5060 70 6f 69 6e 74 2e 0a 0a 27 63 27 0a 20 20 20 20 20 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 point...'c'......Move.point.to.t
c5080 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 27 71 27 he.current.playlist.buffer...'q'
c50a0 0a 20 20 20 20 20 4b 69 6c 6c 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 6d 61 6e 61 67 65 72 2e ......Kill.the.playlist.manager.
c50c0 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ....File:.doc7SuRxP.info,..Node:
c50e0 20 47 4e 55 20 46 4d 2c 20 20 4e 65 78 74 3a 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 2c 20 20 50 .GNU.FM,..Next:.Listenbrainz,..P
c5100 72 65 76 3a 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2c 20 20 55 70 3a 20 54 6f rev:.Managing.Playlists,..Up:.To
c5120 70 0a 0a 33 32 20 47 4e 55 20 46 4d 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 47 4e 55 20 46 4d 20 28 p..32.GNU.FM.*********..GNU.FM.(
c5140 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 67 6e 75 https://www.gnu.org/software/gnu
c5160 66 6d 2f 29 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 66 6f 72 0a 72 75 6e 6e 69 6e fm/).is.free.software.for.runnin
c5180 67 20 6d 75 73 69 63 20 63 6f 6d 6d 75 6e 69 74 79 20 77 65 62 73 69 74 65 73 2e 20 20 49 74 20 g.music.community.websites...It.
c51a0 77 61 73 20 63 72 65 61 74 65 64 20 66 6f 72 20 74 68 65 20 6d 75 73 69 63 0a 63 6f 6d 6d 75 6e was.created.for.the.music.commun
c51c0 69 74 79 20 73 69 74 65 2c 20 4c 69 62 72 65 2e 66 6d 20 28 68 74 74 70 3a 2f 2f 6c 69 62 72 65 ity.site,.Libre.fm.(http://libre
c51e0 2e 66 6d 2f 29 2e 0a 0a 20 20 20 45 6d 6d 73 20 63 61 6e 20 73 65 6e 64 20 74 72 61 63 6b 20 69 .fm/)......Emms.can.send.track.i
c5200 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 61 6e 64 20 73 74 72 65 61 6d 20 6d 75 73 69 63 20 66 72 6f nformation,.and.stream.music.fro
c5220 6d 20 47 4e 55 20 46 4d 20 73 65 72 76 65 72 73 0a 75 73 69 6e 67 20 27 65 6d 6d 73 2d 6c 69 62 m.GNU.FM.servers.using.'emms-lib
c5240 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2e 65 6c 27 20 61 6e 64 20 27 65 6d 6d 73 2d 6c 69 62 refm-scrobbler.el'.and.'emms-lib
c5260 72 65 66 6d 2d 73 74 72 65 61 6d 2e 65 6c 27 2c 0a 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 0a refm-stream.el',.respectively...
c5280 20 20 20 45 6d 6d 73 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 62 79 20 64 65 66 61 75 6c 74 ...Emms.is.configured.by.default
c52a0 20 74 6f 20 75 73 65 20 4c 69 62 72 65 2e 66 6d 20 28 68 74 74 70 3a 2f 2f 6c 69 62 72 65 2e 66 .to.use.Libre.fm.(http://libre.f
c52c0 6d 2f 29 2c 20 62 75 74 0a 63 61 6e 20 77 6f 72 6b 20 77 69 74 68 20 61 6e 79 20 47 4e 55 20 46 m/),.but.can.work.with.any.GNU.F
c52e0 4d 20 73 65 72 76 65 72 20 62 79 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 74 68 65 20 76 61 72 69 M.server.by.configuring.the.vari
c5300 61 62 6c 65 0a 45 4d 4d 53 2d 4c 49 42 52 45 46 4d 2d 53 43 52 4f 42 42 4c 45 52 2d 48 41 4e 44 able.EMMS-LIBREFM-SCROBBLER-HAND
c5320 53 48 41 4b 45 2d 55 52 4c 20 74 6f 20 74 68 65 20 55 52 4c 20 6f 66 20 74 68 65 20 47 4e 55 20 SHAKE-URL.to.the.URL.of.the.GNU.
c5340 46 4d 20 73 65 72 76 65 72 2e 0a 0a 20 20 20 54 68 65 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 77 FM.server......The.recommended.w
c5360 61 79 20 6f 66 20 70 72 6f 76 69 64 69 6e 67 20 79 6f 75 72 20 63 72 65 64 65 6e 74 69 61 6c 73 ay.of.providing.your.credentials
c5380 20 74 6f 20 74 68 65 20 47 4e 55 20 46 4d 0a 73 65 72 76 65 72 20 69 73 20 62 79 20 75 73 69 6e .to.the.GNU.FM.server.is.by.usin
c53a0 67 20 61 6e 20 61 75 74 68 69 6e 66 6f 20 66 69 6c 65 2e 20 20 41 64 64 20 61 75 74 68 65 6e 74 g.an.authinfo.file...Add.authent
c53c0 69 63 61 74 69 6f 6e 20 74 6f 20 79 6f 75 72 0a 61 75 74 68 2d 69 6e 66 6f 20 66 69 6c 65 2c 20 ication.to.your.auth-info.file,.
c53e0 74 79 70 69 63 61 6c 6c 79 20 27 7e 2f 2e 61 75 74 68 69 6e 66 6f 2e 67 70 67 27 2c 20 61 73 3a typically.'~/.authinfo.gpg',.as:
c5400 0a 20 20 20 20 20 6d 61 63 68 69 6e 65 20 6c 69 62 72 65 2e 66 6d 20 6c 6f 67 69 6e 20 55 53 45 ......machine.libre.fm.login.USE
c5420 52 4e 41 4d 45 20 70 61 73 73 77 6f 72 64 20 50 41 53 53 57 4f 52 44 0a 20 20 20 49 66 20 79 6f RNAME.password.PASSWORD....If.yo
c5440 75 20 61 72 65 20 75 73 69 6e 67 20 73 6f 6d 65 20 6f 74 68 65 72 20 73 65 72 76 65 72 20 74 68 u.are.using.some.other.server.th
c5460 61 6e 20 6c 69 62 72 65 2e 66 6d 2c 20 63 68 61 6e 67 65 20 22 27 6c 69 62 72 65 2e 66 6d 27 22 an.libre.fm,.change."'libre.fm'"
c5480 0a 74 6f 20 6d 61 74 63 68 20 45 4d 4d 53 2d 4c 49 42 52 45 46 4d 2d 53 43 52 4f 42 42 4c 45 52 .to.match.EMMS-LIBREFM-SCROBBLER
c54a0 2d 48 41 4e 44 53 48 41 4b 45 2d 55 52 4c 2e 0a 0a 20 20 20 41 6c 74 65 72 6e 61 74 69 76 65 6c -HANDSHAKE-URL......Alternativel
c54c0 79 2c 20 79 6f 75 20 63 61 6e 20 73 61 76 65 20 74 68 65 20 70 61 73 73 77 6f 72 64 20 69 6e 20 y,.you.can.save.the.password.in.
c54e0 70 6c 61 69 6e 74 65 78 74 20 69 6e 20 79 6f 75 72 0a 69 6e 69 74 2d 66 69 6c 65 20 62 79 20 73 plaintext.in.your.init-file.by.s
c5500 65 74 74 69 6e 67 20 74 68 65 73 65 20 76 61 72 69 61 62 6c 65 73 3a 0a 0a 20 20 20 20 20 28 73 etting.these.variables:.......(s
c5520 65 74 71 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 75 73 65 72 6e etq.emms-librefm-scrobbler-usern
c5540 61 6d 65 20 22 55 53 45 52 4e 41 4d 45 22 0a 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c ame."USERNAME"............emms-l
c5560 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 70 61 73 73 77 6f 72 64 20 22 50 41 53 53 57 ibrefm-scrobbler-password."PASSW
c5580 4f 52 44 22 29 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 55 70 6c 6f 61 64 69 6e 67 20 54 72 61 63 ORD")..*.Menu:..*.Uploading.Trac
c55a0 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 3a 3a 20 48 6f 77 20 74 6f 20 73 75 62 6d 69 74 20 6c 69 k.Information::.How.to.submit.li
c55c0 73 74 65 6e 65 64 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 2a 20 47 4e 55 20 stened.track.information..*.GNU.
c55e0 46 4d 20 53 74 72 65 61 6d 69 6e 67 3a 3a 20 53 74 72 65 61 6d 69 6e 67 20 6d 75 73 69 63 20 66 FM.Streaming::.Streaming.music.f
c5600 72 6f 6d 20 61 20 47 4e 55 20 46 4d 20 73 65 72 76 65 72 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f rom.a.GNU.FM.server.....File:.do
c5620 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 55 70 6c 6f 61 64 69 6e 67 20 54 c7SuRxP.info,..Node:.Uploading.T
c5640 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 47 4e 55 20 46 4d 20 rack.Information,..Next:.GNU.FM.
c5660 53 74 72 65 61 6d 69 6e 67 2c 20 20 55 70 3a 20 47 4e 55 20 46 4d 0a 0a 33 32 2e 31 20 55 70 6c Streaming,..Up:.GNU.FM..32.1.Upl
c5680 6f 61 64 69 6e 67 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d oading.Track.Information.=======
c56a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 47 4e 55 20 46 =========================..GNU.F
c56c0 4d 20 73 65 72 76 65 72 73 2c 20 73 75 63 68 20 61 73 20 4c 69 62 72 65 2e 66 6d 20 63 61 6e 20 M.servers,.such.as.Libre.fm.can.
c56e0 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 74 6f 72 65 20 61 20 75 73 65 72 27 73 20 6c 69 73 74 65 6e optionally.store.a.user's.listen
c5700 69 6e 67 0a 68 61 62 69 74 73 20 75 73 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 6e ing.habits.using.information.sen
c5720 74 20 74 6f 20 74 68 65 20 77 65 62 73 69 74 65 27 73 20 73 65 72 76 65 72 20 66 72 6f 6d 20 74 t.to.the.website's.server.from.t
c5740 68 65 20 45 6d 6d 73 2e 20 20 42 79 0a 75 74 69 6c 69 7a 69 6e 67 20 74 68 65 20 72 65 63 6f 72 he.Emms...By.utilizing.the.recor
c5760 64 73 20 6f 66 20 75 73 65 72 73 27 20 6c 69 73 74 65 6e 69 6e 67 20 68 61 62 69 74 73 2c 20 74 ds.of.users'.listening.habits,.t
c5780 68 65 20 77 65 62 73 69 74 65 20 61 69 6d 73 20 74 6f 20 62 65 0a 61 62 6c 65 20 74 6f 20 72 65 he.website.aims.to.be.able.to.re
c57a0 63 6f 6d 6d 65 6e 64 20 6d 75 73 69 63 20 74 6f 20 75 73 65 72 73 20 62 79 20 61 6e 61 6c 79 7a commend.music.to.users.by.analyz
c57c0 69 6e 67 20 74 68 65 69 72 20 6d 75 73 69 63 61 6c 20 74 61 73 74 65 2e 0a 0a 20 20 20 4c 6f 61 ing.their.musical.taste......Loa
c57e0 64 20 74 68 65 20 66 65 61 74 75 72 65 20 69 6e 74 6f 20 45 6d 6d 73 20 77 69 74 68 3a 0a 0a 20 d.the.feature.into.Emms.with:...
c5800 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 ....(require.'emms-librefm-scrob
c5820 62 6c 65 72 29 0a 0a 20 20 20 54 68 69 73 20 66 65 61 74 75 72 65 20 63 61 6e 20 61 6c 73 6f 20 bler).....This.feature.can.also.
c5840 62 65 20 65 6e 61 62 6c 65 64 20 76 69 61 20 2a 4e 6f 74 65 20 53 65 74 75 70 3a 3a 2c 20 69 6e be.enabled.via.*Note.Setup::,.in
c5860 20 74 68 65 20 27 65 6d 6d 73 2d 61 6c 6c 27 0a 73 65 74 75 70 20 6c 65 76 65 6c 2e 0a 0a 20 20 .the.'emms-all'.setup.level.....
c5880 20 45 6e 61 62 6c 65 20 75 70 6c 6f 61 64 69 6e 67 20 74 68 65 20 64 65 74 61 69 6c 73 20 6f 66 .Enable.uploading.the.details.of
c58a0 20 74 68 65 20 74 72 61 63 6b 73 20 45 6d 6d 73 20 70 6c 61 79 73 20 74 6f 20 74 68 65 20 47 4e .the.tracks.Emms.plays.to.the.GN
c58c0 55 20 46 4d 0a 73 65 72 76 65 72 20 77 69 74 68 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 U.FM.server.with.'emms-librefm-s
c58e0 63 72 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 27 2e 20 20 54 68 65 20 74 72 61 63 6b 27 73 20 64 crobbler-enable'...The.track's.d
c5900 65 74 61 69 6c 73 20 77 69 6c 6c 0a 62 65 20 75 70 6c 6f 61 64 65 64 20 74 6f 20 74 68 65 20 73 etails.will.be.uploaded.to.the.s
c5920 65 72 76 65 72 20 77 68 65 6e 20 74 68 65 20 74 72 61 63 6b 27 73 20 70 6c 61 79 62 61 63 6b 20 erver.when.the.track's.playback.
c5940 65 6e 64 73 2e 20 20 59 6f 75 20 63 61 6e 0a 64 69 73 61 62 6c 65 20 74 68 69 73 20 62 65 68 61 ends...You.can.disable.this.beha
c5960 76 69 6f 72 20 77 69 74 68 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 vior.with.'emms-librefm-scrobble
c5980 72 2d 64 69 73 61 62 6c 65 27 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 r-disable'.....File:.doc7SuRxP.i
c59a0 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 47 4e 55 20 46 4d 20 53 74 72 65 61 6d 69 6e 67 2c 20 20 50 nfo,..Node:.GNU.FM.Streaming,..P
c59c0 72 65 76 3a 20 55 70 6c 6f 61 64 69 6e 67 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e rev:.Uploading.Track.Information
c59e0 2c 20 20 55 70 3a 20 47 4e 55 20 46 4d 0a 0a 33 32 2e 32 20 47 4e 55 20 46 4d 20 53 74 72 65 61 ,..Up:.GNU.FM..32.2.GNU.FM.Strea
c5a00 6d 69 6e 67 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 74 ming.=====================..If.t
c5a20 68 65 20 47 4e 55 20 46 4d 20 73 65 72 76 65 72 20 70 72 6f 76 69 64 65 73 20 61 20 73 74 72 65 he.GNU.FM.server.provides.a.stre
c5a40 61 6d 69 6e 67 20 6d 75 73 69 63 20 73 65 72 76 69 63 65 20 79 6f 75 20 63 61 6e 20 74 61 6b 65 aming.music.service.you.can.take
c5a60 0a 61 64 76 61 6e 74 61 67 65 20 6f 66 20 69 74 20 62 79 20 6c 6f 61 64 69 6e 67 3a 0a 0a 20 20 .advantage.of.it.by.loading:....
c5a80 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d ...(require.'emms-librefm-stream
c5aa0 29 0a 0a 20 20 20 54 68 69 73 20 66 65 61 74 75 72 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 65 ).....This.feature.can.also.be.e
c5ac0 6e 61 62 6c 65 64 20 76 69 61 20 2a 4e 6f 74 65 20 53 65 74 75 70 3a 3a 2c 20 69 6e 20 74 68 65 nabled.via.*Note.Setup::,.in.the
c5ae0 20 27 65 6d 6d 73 2d 61 6c 6c 27 0a 73 65 74 75 70 20 6c 65 76 65 6c 2e 0a 0a 20 20 20 54 68 65 .'emms-all'.setup.level......The
c5b00 6e 20 69 6e 76 6f 6b 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 27 20 61 n.invoke.'emms-librefm-stream'.a
c5b20 6e 64 20 65 6e 74 65 72 20 74 68 65 20 55 52 4c 20 6f 66 20 74 68 65 20 73 74 61 74 69 6f 6e 0a nd.enter.the.URL.of.the.station.
c5b40 79 6f 75 20 77 69 73 68 20 74 6f 20 6c 69 73 74 65 6e 20 74 6f 2c 20 66 6f 72 20 65 78 61 6d 70 you.wish.to.listen.to,.for.examp
c5b60 6c 65 20 22 6c 69 62 72 65 66 6d 3a 2f 2f 67 6c 6f 62 61 6c 74 61 67 73 2f 43 6c 61 73 73 69 63 le."librefm://globaltags/Classic
c5b80 61 6c 22 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e al".....File:.doc7SuRxP.info,..N
c5ba0 6f 64 65 3a 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 2c 20 20 4e 65 78 74 3a 20 44 2d 42 75 73 2c ode:.Listenbrainz,..Next:.D-Bus,
c5bc0 20 20 50 72 65 76 3a 20 47 4e 55 20 46 4d 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 33 33 20 4c 69 73 ..Prev:.GNU.FM,..Up:.Top..33.Lis
c5be0 74 65 6e 62 72 61 69 6e 7a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 4c 69 73 74 65 tenbrainz.***************..Liste
c5c00 6e 62 72 61 69 6e 7a 20 6f 66 66 65 72 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 73 74 nbrainz.offers.an.alternative.st
c5c20 6f 72 65 20 6f 66 20 6c 69 73 74 65 6e 69 6e 67 20 68 61 62 69 74 73 20 75 73 69 6e 67 0a 69 6e ore.of.listening.habits.using.in
c5c40 66 6f 72 6d 61 74 69 6f 6e 20 73 65 6e 74 20 62 79 20 74 68 65 20 45 6d 6d 73 2e 0a 0a 20 20 20 formation.sent.by.the.Emms......
c5c60 54 6f 20 75 73 65 20 74 68 69 73 20 73 65 72 76 69 63 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6e 65 To.use.this.service,.you.will.ne
c5c80 65 64 20 74 6f 20 6f 62 74 61 69 6e 20 61 20 75 73 65 72 20 74 6f 6b 65 6e 20 66 72 6f 6d 0a 3c ed.to.obtain.a.user.token.from.<
c5ca0 68 74 74 70 73 3a 2f 2f 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2e 6f 72 67 2f 73 65 74 74 69 6e 67 https://listenbrainz.org/setting
c5cc0 73 2f 3e 2e 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 73 74 6f 72 65 20 74 68 69 73 20 74 6f 6b 65 s/>...You.should.store.this.toke
c5ce0 6e 20 69 6e 20 27 0a 7e 2f 2e 61 75 74 68 69 6e 66 6f 2e 67 70 67 27 20 6f 72 20 61 6e 20 65 71 n.in.'.~/.authinfo.gpg'.or.an.eq
c5d00 75 69 76 61 6c 65 6e 74 20 66 69 6c 65 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 61 75 74 68 uivalent.file.understood.by.auth
c5d20 2d 73 6f 75 72 63 65 20 77 69 74 68 20 61 0a 6c 69 6e 65 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a -source.with.a.line.like.this:..
c5d40 20 20 20 20 20 6d 61 63 68 69 6e 65 20 61 70 69 2e 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2e 6f 72 .....machine.api.listenbrainz.or
c5d60 67 20 70 61 73 73 77 6f 72 64 20 30 61 62 63 31 64 65 32 2d 32 34 35 2d 36 37 66 61 2d 38 39 30 g.password.0abc1de2-245-67fa-890
c5d80 36 62 2d 62 63 31 32 33 64 34 64 62 64 61 61 0a 0a 20 20 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 6b-bc123d4dbdaa.....Alternativel
c5da0 79 2c 20 79 6f 75 20 63 61 6e 20 73 74 6f 72 65 20 74 68 65 20 74 6f 6b 65 6e 20 69 6e 20 70 6c y,.you.can.store.the.token.in.pl
c5dc0 61 69 6e 2d 74 65 78 74 20 69 6e 20 79 6f 75 72 20 69 6e 69 74 0a 66 69 6c 65 20 62 79 20 73 65 ain-text.in.your.init.file.by.se
c5de0 74 74 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 tting.the.variable.'emms-listenb
c5e00 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 74 6f 6b 65 6e 27 3a 0a 0a 20 20 20 20 20 28 73 rainz-scrobbler-token':.......(s
c5e20 65 74 71 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d etq.emms-listenbrainz-scrobbler-
c5e40 74 6f 6b 65 6e 20 22 30 61 62 63 31 64 65 32 2d 32 34 35 2d 36 37 66 61 2d 38 39 30 36 62 2d 62 token."0abc1de2-245-67fa-8906b-b
c5e60 63 31 32 33 64 34 64 62 64 61 61 22 29 0a 0a 20 20 20 4f 6e 63 65 20 74 68 69 73 20 69 73 20 64 c123d4dbdaa").....Once.this.is.d
c5e80 6f 6e 65 2c 20 79 6f 75 20 63 61 6e 20 6c 6f 61 64 20 74 68 65 20 66 65 61 74 75 72 65 20 77 69 one,.you.can.load.the.feature.wi
c5ea0 74 68 0a 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 th.......(require.'emms-listenbr
c5ec0 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 29 0a 0a 20 20 20 45 6e 61 62 6c 65 20 75 70 6c 6f 61 ainz-scrobbler).....Enable.uploa
c5ee0 64 69 6e 67 20 74 68 65 20 64 65 74 61 69 6c 73 20 6f 66 20 74 68 65 20 74 72 61 63 6b 73 20 45 ding.the.details.of.the.tracks.E
c5f00 6d 6d 73 20 70 6c 61 79 73 20 74 6f 20 74 68 65 0a 6c 69 73 74 65 6e 62 72 61 69 6e 7a 20 73 65 mms.plays.to.the.listenbrainz.se
c5f20 72 76 65 72 20 77 69 74 68 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 rver.with.'emms-listenbrainz-scr
c5f40 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 27 2e 20 20 54 68 65 0a 74 72 61 63 6b 27 73 20 64 65 74 obbler-enable'...The.track's.det
c5f60 61 69 6c 73 20 77 69 6c 6c 20 62 65 20 75 70 6c 6f 61 64 65 64 20 74 6f 20 74 68 65 20 73 65 72 ails.will.be.uploaded.to.the.ser
c5f80 76 65 72 20 77 68 65 6e 20 74 68 65 20 74 72 61 63 6b 27 73 20 70 6c 61 79 62 61 63 6b 0a 65 6e ver.when.the.track's.playback.en
c5fa0 64 73 2e 20 20 59 6f 75 20 63 61 6e 20 64 69 73 61 62 6c 65 20 74 68 69 73 20 62 65 68 61 76 69 ds...You.can.disable.this.behavi
c5fc0 6f 72 20 77 69 74 68 0a 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 or.with.'emms-listenbrainz-scrob
c5fe0 62 6c 65 72 2d 64 69 73 61 62 6c 65 27 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 bler-disable'.....File:.doc7SuRx
c6000 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 2d 42 75 73 2c 20 20 4e 65 78 74 3a 20 43 6f 70 P.info,..Node:.D-Bus,..Next:.Cop
c6020 79 69 6e 67 2c 20 20 50 72 65 76 3a 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 2c 20 20 55 70 3a 20 ying,..Prev:.Listenbrainz,..Up:.
c6040 54 6f 70 0a 0a 33 34 20 44 2d 42 75 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 45 6d 6d 73 20 63 61 6e Top..34.D-Bus.********..Emms.can
c6060 20 70 72 6f 76 69 64 65 20 61 6e 20 4d 50 52 49 53 20 69 6e 74 65 72 66 61 63 65 20 77 68 69 63 .provide.an.MPRIS.interface.whic
c6080 68 20 61 6c 6c 6f 77 73 20 69 74 20 74 6f 20 62 65 20 63 6f 6e 74 72 6f 6c 6c 65 64 0a 6f 76 65 h.allows.it.to.be.controlled.ove
c60a0 72 20 44 2d 42 75 73 2e 0a 0a 20 20 20 54 6f 20 65 6e 61 62 6c 65 20 74 68 69 73 2c 20 66 69 72 r.D-Bus......To.enable.this,.fir
c60c0 73 74 20 6c 6f 61 64 20 74 68 65 20 66 65 61 74 75 72 65 3a 0a 0a 20 20 20 20 20 28 72 65 71 75 st.load.the.feature:.......(requ
c60e0 69 72 65 20 27 65 6d 6d 73 2d 6d 70 72 69 73 29 0a 0a 20 20 20 61 6e 64 20 74 68 65 6e 20 74 75 ire.'emms-mpris).....and.then.tu
c6100 72 6e 20 69 74 20 6f 6e 20 77 69 74 68 20 27 65 6d 6d 73 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 rn.it.on.with.'emms-mpris-enable
c6120 27 2e 20 20 59 6f 75 20 63 61 6e 20 74 75 72 6e 20 69 74 20 6f 66 66 0a 77 69 74 68 20 27 65 6d '...You.can.turn.it.off.with.'em
c6140 6d 73 2d 6d 70 72 69 73 2d 64 69 73 61 62 6c 65 27 2e 0a 0a 20 20 20 41 74 20 70 72 65 73 65 6e ms-mpris-disable'......At.presen
c6160 74 2c 20 74 68 65 20 45 6d 6d 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 t,.the.Emms.implementation.of.th
c6180 65 20 4d 50 52 49 53 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 28 68 74 74 70 73 3a 2f 2f 73 e.MPRIS.specification.(https://s
c61a0 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2e 66 72 65 65 64 65 73 6b 74 6f 70 2e 6f 72 67 2f 6d 70 pecifications.freedesktop.org/mp
c61c0 72 69 73 2d 73 70 65 63 2f 6c 61 74 65 73 74 2f 69 6e 64 65 78 2e 68 74 6d 6c 29 20 69 73 0a 6e ris-spec/latest/index.html).is.n
c61e0 6f 74 20 63 6f 6d 70 6c 65 74 65 3a 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 76 6f 6c 75 6d 65 ot.complete:.changing.the.volume
c6200 20 69 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64 2e 0a 0a 1f 0a .is.not.currently.supported.....
c6220 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 70 File:.doc7SuRxP.info,..Node:.Cop
c6240 79 69 6e 67 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 47 4e 55 20 46 44 4c 2c 20 20 50 72 65 76 3a ying,..Next:.The.GNU.FDL,..Prev:
c6260 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 47 4e 55 20 47 .Extending.Emms,..Up:.Top..GNU.G
c6280 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a eneral.Public.License.**********
c62a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ****************................
c62c0 20 20 20 20 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 ..........Version.3,.29.June.200
c62e0 37 0a 0a 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 37 20 46 72 65 65 20 7.......Copyright.(C).2007.Free.
c6300 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 3c 68 74 74 70 3a Software.Foundation,.Inc..<http:
c6320 2f 2f 66 73 66 2e 6f 72 67 2f 3e 0a 0a 20 20 20 20 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 //fsf.org/>.......Everyone.is.pe
c6340 72 6d 69 74 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 rmitted.to.copy.and.distribute.v
c6360 65 72 62 61 74 69 6d 20 63 6f 70 69 65 73 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 6c 69 63 65 erbatim.copies.of.this......lice
c6380 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 nse.document,.but.changing.it.is
c63a0 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 50 72 65 61 6d 62 6c 65 0a 3d 3d 3d 3d 3d 3d 3d 3d .not.allowed...Preamble.========
c63c0 0a 0a 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 ..The.GNU.General.Public.License
c63e0 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 65 20 66 6f 72 .is.a.free,.copyleft.license.for
c6400 20 73 6f 66 74 77 61 72 65 0a 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 20 77 6f 72 .software.and.other.kinds.of.wor
c6420 6b 73 2e 0a 0a 20 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 74 20 73 6f ks......The.licenses.for.most.so
c6440 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 6f 72 6b 73 ftware.and.other.practical.works
c6460 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 6f 75 72 20 .are.designed.to.take.away.your.
c6480 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 74 68 65 20 freedom.to.share.and.change.the.
c64a0 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 20 47 65 6e works...By.contrast,.the.GNU.Gen
c64c0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e 64 65 64 20 eral.Public.License.is.intended.
c64e0 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 0a 73 68 61 to.guarantee.your.freedom.to.sha
c6500 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 re.and.change.all.versions.of.a.
c6520 70 72 6f 67 72 61 6d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d 61 69 6e 73 20 program-to.make.sure.it.remains.
c6540 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 73 65 72 73 2e free.software.for.all.its.users.
c6560 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 ..We,.the.Free.Software.Foundati
c6580 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c on,.use.the.GNU.General.Public.L
c65a0 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 77 61 72 65 3b icense.for.most.of.our.software;
c65c0 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 65 72 20 77 6f .it.applies.also.to.any.other.wo
c65e0 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 20 61 75 74 68 rk.released.this.way.by.its.auth
c6600 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 6f 75 72 20 70 ors...You.can.apply.it.to.your.p
c6620 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 20 57 68 65 6e 20 77 65 20 73 70 65 61 6b 20 rograms,.too......When.we.speak.
c6640 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 65 72 72 69 of.free.software,.we.are.referri
c6660 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f 75 72 20 47 ng.to.freedom,.not.price...Our.G
c6680 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 65 73 69 67 eneral.Public.Licenses.are.desig
c66a0 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 76 65 20 74 ned.to.make.sure.that.you.have.t
c66c0 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 69 65 73 20 he.freedom.to.distribute.copies.
c66e0 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 20 66 6f 72 of.free.software.(and.charge.for
c6700 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 20 72 65 63 .them.if.you.wish),.that.you.rec
c6720 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 69 eive.source.code.or.can.get.it.i
c6740 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63 68 61 6e f.you.want.it,.that.you.can.chan
c6760 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 73 20 6f 66 ge.the.software.or.use.pieces.of
c6780 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e 64 20 74 68 .it.in.new.free.programs,.and.th
c67a0 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 20 74 68 69 at.you.know.you.can.do.these.thi
c67c0 6e 67 73 2e 0a 0a 20 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 73 2c ngs......To.protect.your.rights,
c67e0 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 6f 6d 20 .we.need.to.prevent.others.from.
c6800 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 73 6b 69 denying.you.these.rights.or.aski
c6820 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 73 2e 20 ng.you.to.surrender.the.rights..
c6840 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 72 65 73 .Therefore,.you.have.certain.res
c6860 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 65 20 ponsibilities.if.you.distribute.
c6880 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 0a 79 6f copies.of.the.software,.or.if.yo
c68a0 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 74 6f u.modify.it:.responsibilities.to
c68c0 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 73 2e 0a .respect.the.freedom.of.others..
c68e0 0a 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 ....For.example,.if.you.distribu
c6900 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 68 65 te.copies.of.such.a.program,.whe
c6920 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 6d 75 ther.gratis.or.for.a.fee,.you.mu
c6940 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 68 65 st.pass.on.to.the.recipients.the
c6960 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 65 64 .same.freedoms.that.you.received
c6980 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 79 2c ...You.must.make.sure.that.they,
c69a0 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 6f 75 .too,.receive.or.can.get.the.sou
c69c0 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 68 65 rce.code...And.you.must.show.the
c69e0 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 69 72 m.these.terms.so.they.know.their
c6a00 20 72 69 67 68 74 73 2e 0a 0a 20 20 20 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 65 .rights......Developers.that.use
c6a20 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 73 .the.GNU.GPL.protect.your.rights
c6a40 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 79 .with.two.steps:.(1).assert.copy
c6a60 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 6f right.on.the.software,.and.(2).o
c6a80 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f 75 ffer.you.this.License.giving.you
c6aa0 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 .legal.permission.to.copy,.distr
c6ac0 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 20 20 20 46 6f 72 20 ibute.and/or.modify.it......For.
c6ae0 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f the.developers'.and.authors'.pro
c6b00 74 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e tection,.the.GPL.clearly.explain
c6b20 73 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 s.that.there.is.no.warranty.for.
c6b40 74 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 this.free.software...For.both.us
c6b60 65 72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 ers'.and.authors'.sake,.the.GPL.
c6b80 72 65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 requires.that.modified.versions.
c6ba0 62 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 be.marked.as.changed,.so.that.th
c6bc0 65 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 eir.problems.will.not.be.attribu
c6be0 74 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 ted.erroneously.to.authors.of.pr
c6c00 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 20 53 6f 6d 65 20 64 65 76 69 63 65 evious.versions......Some.device
c6c20 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 s.are.designed.to.deny.users.acc
c6c40 65 73 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 ess.to.install.or.run.modified.v
c6c60 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 ersions.of.the.software.inside.t
c6c80 68 65 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 hem,.although.the.manufacturer.c
c6ca0 61 6e 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 an.do.so...This.is.fundamentally
c6cc0 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 .incompatible.with.the.aim.of.pr
c6ce0 6f 74 65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 otecting.users'.freedom.to.chang
c6d00 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a e.the.software...The.systematic.
c6d20 70 61 74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 pattern.of.such.abuse.occurs.in.
c6d40 74 68 65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 the.area.of.products.for.individ
c6d60 75 61 6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 uals.to.use,.which.is.precisely.
c6d80 77 68 65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 where.it.is.most.unacceptable...
c6da0 54 68 65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 Therefore,.we.have.designed.this
c6dc0 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 .version.of.the.GPL.to.prohibit.
c6de0 74 68 65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e the.practice.for.those.products.
c6e00 20 20 49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e ..If.such.problems.arise.substan
c6e20 74 69 61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e tially.in.other.domains,.we.stan
c6e40 64 20 72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e d.ready.to.extend.this.provision
c6e60 20 74 6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 .to.those.domains.in.future.vers
c6e80 69 6f 6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 ions.of.the.GPL,.as.needed.to.pr
c6ea0 6f 74 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 20 otect.the.freedom.of.users......
c6ec0 46 69 6e 61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 Finally,.every.program.is.threat
c6ee0 65 6e 65 64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 ened.constantly.by.software.pate
c6f00 6e 74 73 2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 nts..States.should.not.allow.pat
c6f20 65 6e 74 73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 ents.to.restrict.development.and
c6f40 20 75 73 65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 .use.of.software.on.general-purp
c6f60 6f 73 65 20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 ose.computers,.but.in.those.that
c6f80 20 64 6f 2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 .do,.we.wish.to.avoid.the.specia
c6fa0 6c 20 64 61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f l.danger.that.patents.applied.to
c6fc0 20 61 20 66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 .a.free.program.could.make.it.ef
c6fe0 66 65 63 74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 fectively.proprietary...To.preve
c7000 6e 74 20 74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 nt.this,.the.GPL.assures.that.pa
c7020 74 65 6e 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 tents.cannot.be.used.to.render.t
c7040 68 65 20 70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65 2e 0a 0a 20 20 20 54 68 65 20 70 72 65 he.program.non-free......The.pre
c7060 63 69 73 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f cise.terms.and.conditions.for.co
c7080 70 79 69 6e 67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 pying,.distribution.and.modifica
c70a0 74 69 6f 6e 20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion.follow.....................
c70c0 20 20 20 20 20 20 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 30 .......TERMS.AND.CONDITIONS....0
c70e0 2e 20 44 65 66 69 6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 20 20 20 22 54 68 69 73 20 4c 69 63 65 6e ..Definitions........"This.Licen
c7100 73 65 22 20 72 65 66 65 72 73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 se".refers.to.version.3.of.the.G
c7120 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2e 0a NU.General.Public......License..
c7140 0a 20 20 20 20 20 22 43 6f 70 79 72 69 67 68 74 22 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 ......"Copyright".also.means.cop
c7160 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f yright-like.laws.that.apply.to.o
c7180 74 68 65 72 0a 20 20 20 20 20 6b 69 6e 64 73 20 6f 66 20 77 6f 72 6b 73 2c 20 73 75 63 68 20 61 ther......kinds.of.works,.such.a
c71a0 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 2e 0a 0a 20 20 20 20 20 22 54 68 s.semiconductor.masks........"Th
c71c0 65 20 50 72 6f 67 72 61 6d 22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20 63 6f 70 79 72 69 67 e.Program".refers.to.any.copyrig
c71e0 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a htable.work.licensed.under.this.
c7200 20 20 20 20 20 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 69 73 20 .....License...Each.licensee.is.
c7220 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 65 73 22 addressed.as."you"..."Licensees"
c7240 20 61 6e 64 0a 20 20 20 20 20 22 72 65 63 69 70 69 65 6e 74 73 22 20 6d 61 79 20 62 65 20 69 6e .and......"recipients".may.be.in
c7260 64 69 76 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 20 dividuals.or.organizations......
c7280 20 20 54 6f 20 22 6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f ..To."modify".a.work.means.to.co
c72a0 70 79 20 66 72 6f 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 py.from.or.adapt.all.or.part.of.
c72c0 74 68 65 0a 20 20 20 20 20 77 6f 72 6b 20 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 the......work.in.a.fashion.requi
c72e0 72 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 ring.copyright.permission,.other
c7300 20 74 68 61 6e 20 74 68 65 0a 20 20 20 20 20 6d 61 6b 69 6e 67 20 6f 66 20 61 6e 20 65 78 61 63 .than.the......making.of.an.exac
c7320 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 t.copy...The.resulting.work.is.c
c7340 61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 22 20 alled.a."modified......version".
c7360 6f 66 20 74 68 65 20 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 6f 72 20 61 20 77 6f 72 6b 20 22 62 of.the.earlier.work.or.a.work."b
c7380 61 73 65 64 20 6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 ased.on".the.earlier.work.......
c73a0 20 41 20 22 63 6f 76 65 72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 20 65 69 74 68 65 72 20 74 .A."covered.work".means.either.t
c73c0 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b 0a he.unmodified.Program.or.a.work.
c73e0 20 20 20 20 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 20 20 .....based.on.the.Program.......
c7400 20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 .To."propagate".a.work.means.to.
c7420 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f 75 do.anything.with.it.that,.withou
c7440 74 0a 20 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f t......permission,.would.make.yo
c7460 75 20 64 69 72 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 u.directly.or.secondarily.liable
c7480 20 66 6f 72 0a 20 20 20 20 20 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 .for......infringement.under.app
c74a0 6c 69 63 61 62 6c 65 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 licable.copyright.law,.except.ex
c74c0 65 63 75 74 69 6e 67 20 69 74 20 6f 6e 0a 20 20 20 20 20 61 20 63 6f 6d 70 75 74 65 72 20 6f 72 ecuting.it.on......a.computer.or
c74e0 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 72 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 .modifying.a.private.copy...Prop
c7500 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 0a 20 20 20 20 20 63 6f 70 79 69 6e 67 2c 20 64 agation.includes......copying,.d
c7520 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 istribution.(with.or.without.mod
c7540 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 0a 20 20 20 20 20 61 76 61 69 6c 61 62 6c ification),.making......availabl
c7560 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 73 6f 6d 65 20 63 6f 75 e.to.the.public,.and.in.some.cou
c7580 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 61 73 0a 20 20 20 20 20 ntries.other.activities.as......
c75a0 77 65 6c 6c 2e 0a 0a 20 20 20 20 20 54 6f 20 22 63 6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d well........To."convey".a.work.m
c75c0 65 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 eans.any.kind.of.propagation.tha
c75e0 74 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 20 20 20 20 20 70 61 72 74 69 65 73 20 74 6f 20 t.enables.other......parties.to.
c7600 6d 61 6b 65 20 6f 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e make.or.receive.copies...Mere.in
c7620 74 65 72 61 63 74 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 0a 20 20 20 20 20 74 68 72 6f 75 teraction.with.a.user......throu
c7640 67 68 20 61 20 63 6f 6d 70 75 74 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 gh.a.computer.network,.with.no.t
c7660 72 61 6e 73 66 65 72 20 6f 66 20 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 63 ransfer.of.a.copy,.is.not......c
c7680 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 20 20 20 41 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 onveying........An.interactive.u
c76a0 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 6c 61 79 73 20 22 41 70 70 72 6f 70 72 69 ser.interface.displays."Appropri
c76c0 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 0a 20 20 20 20 20 74 6f 20 74 68 65 20 65 ate.Legal.Notices"......to.the.e
c76e0 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61 20 63 6f 6e 76 65 6e 69 xtent.that.it.includes.a.conveni
c7700 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 69 62 6c 65 0a 20 20 20 20 ent.and.prominently.visible.....
c7720 20 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 6e 20 61 70 .feature.that.(1).displays.an.ap
c7740 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 61 6e 64 20 propriate.copyright.notice,.and.
c7760 28 32 29 0a 20 20 20 20 20 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 (2)......tells.the.user.that.the
c7780 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 re.is.no.warranty.for.the.work.(
c77a0 65 78 63 65 70 74 20 74 6f 0a 20 20 20 20 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 77 except.to......the.extent.that.w
c77c0 61 72 72 61 6e 74 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 arranties.are.provided),.that.li
c77e0 63 65 6e 73 65 65 73 20 6d 61 79 20 63 6f 6e 76 65 79 0a 20 20 20 20 20 74 68 65 20 77 6f 72 6b censees.may.convey......the.work
c7800 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 .under.this.License,.and.how.to.
c7820 76 69 65 77 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 view.a.copy.of.this......License
c7840 2e 20 20 49 66 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c ...If.the.interface.presents.a.l
c7860 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d 61 6e 64 73 20 6f 72 0a 20 20 20 20 20 6f 70 74 ist.of.user.commands.or......opt
c7880 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 20 6d 65 6e 75 2c 20 61 20 70 72 6f 6d 69 6e 65 6e ions,.such.as.a.menu,.a.prominen
c78a0 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 65 74 73 20 74 68 69 73 0a 20 20 t.item.in.the.list.meets.this...
c78c0 20 20 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 20 43 6f 64 65 2e ...criterion.....1..Source.Code.
c78e0 0a 0a 20 20 20 20 20 54 68 65 20 22 73 6f 75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 61 20 77 .......The."source.code".for.a.w
c7900 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 6f 66 20 ork.means.the.preferred.form.of.
c7920 74 68 65 20 77 6f 72 6b 0a 20 20 20 20 20 66 6f 72 20 6d 61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 the.work......for.making.modific
c7940 61 74 69 6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a 65 63 74 20 63 6f 64 65 22 20 6d 65 61 ations.to.it..."Object.code".mea
c7960 6e 73 20 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 20 20 20 20 20 66 6f 72 6d 20 6f 66 20 61 ns.any.non-source......form.of.a
c7980 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 .work........A."Standard.Interfa
c79a0 63 65 22 20 6d 65 61 6e 73 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 ce".means.an.interface.that.eith
c79c0 65 72 20 69 73 20 61 6e 0a 20 20 20 20 20 6f 66 66 69 63 69 61 6c 20 73 74 61 6e 64 61 72 64 20 er.is.an......official.standard.
c79e0 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 63 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 defined.by.a.recognized.standard
c7a00 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 0a 20 20 20 20 20 74 68 65 20 63 61 73 65 20 6f 66 20 s.body,.or,.in......the.case.of.
c7a20 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 20 61 20 70 61 72 74 69 interfaces.specified.for.a.parti
c7a40 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 0a 20 20 20 20 20 6c 61 6e 67 75 61 67 65 2c cular.programming......language,
c7a60 20 6f 6e 65 20 74 68 61 74 20 69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 61 6d 6f 6e 67 20 64 .one.that.is.widely.used.among.d
c7a80 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 0a 20 20 20 20 20 6c evelopers.working.in.that......l
c7aa0 61 6e 67 75 61 67 65 2e 0a 0a 20 20 20 20 20 54 68 65 20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 anguage........The."System.Libra
c7ac0 72 69 65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c ries".of.an.executable.work.incl
c7ae0 75 64 65 20 61 6e 79 74 68 69 6e 67 2c 0a 20 20 20 20 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 ude.anything,......other.than.th
c7b00 65 20 77 6f 72 6b 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 e.work.as.a.whole,.that.(a).is.i
c7b20 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 20 66 6f 72 6d 20 ncluded.in.the.normal......form.
c7b40 6f 66 20 70 61 63 6b 61 67 69 6e 67 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 of.packaging.a.Major.Component,.
c7b60 62 75 74 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 0a 20 20 but.which.is.not.part.of.that...
c7b80 20 20 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 ...Major.Component,.and.(b).serv
c7ba0 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 es.only.to.enable.use.of.the.wor
c7bc0 6b 20 77 69 74 68 0a 20 20 20 20 20 74 68 61 74 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 k.with......that.Major.Component
c7be0 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 74 61 6e 64 61 72 64 20 49 6e 74 ,.or.to.implement.a.Standard.Int
c7c00 65 72 66 61 63 65 20 66 6f 72 0a 20 20 20 20 20 77 68 69 63 68 20 61 6e 20 69 6d 70 6c 65 6d 65 erface.for......which.an.impleme
c7c20 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c ntation.is.available.to.the.publ
c7c40 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 0a 20 20 20 20 20 66 6f 72 6d 2e 20 20 41 20 ic.in.source.code......form...A.
c7c60 22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 65 "Major.Component",.in.this.conte
c7c80 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 0a 20 20 20 20 20 65 73 73 65 6e 74 69 61 6c xt,.means.a.major......essential
c7ca0 20 63 6f 6d 70 6f 6e 65 6e 74 20 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 .component.(kernel,.window.syste
c7cc0 6d 2c 20 61 6e 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 0a 20 20 20 20 20 73 70 65 63 69 66 m,.and.so.on).of.the......specif
c7ce0 69 63 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 28 69 66 20 61 6e 79 29 20 6f 6e 20 ic.operating.system.(if.any).on.
c7d00 77 68 69 63 68 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 0a 20 20 20 20 20 72 which.the.executable.work......r
c7d20 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 69 6c 65 72 20 75 73 65 64 20 74 6f 20 70 72 6f 64 75 uns,.or.a.compiler.used.to.produ
c7d40 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 0a 20 ce.the.work,.or.an.object.code..
c7d60 20 20 20 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64 20 74 6f 20 72 75 6e 20 69 74 2e 0a ....interpreter.used.to.run.it..
c7d80 0a 20 20 20 20 20 54 68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 22 ......The."Corresponding.Source"
c7da0 20 66 6f 72 20 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 .for.a.work.in.object.code.form.
c7dc0 6d 65 61 6e 73 20 61 6c 6c 0a 20 20 20 20 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6e means.all......the.source.code.n
c7de0 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c 20 61 6e 64 20 eeded.to.generate,.install,.and.
c7e00 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 20 20 20 20 20 77 6f 72 6b 29 20 72 75 (for.an.executable......work).ru
c7e20 6e 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 n.the.object.code.and.to.modify.
c7e40 74 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 0a 20 20 20 20 the.work,.including.scripts.....
c7e60 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 .to.control.those.activities...H
c7e80 6f 77 65 76 65 72 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 0a owever,.it.does.not.include.the.
c7ea0 20 20 20 20 20 77 6f 72 6b 27 73 20 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 .....work's.System.Libraries,.or
c7ec0 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 .general-purpose.tools.or.genera
c7ee0 6c 6c 79 0a 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 66 72 65 65 20 70 72 6f 67 72 61 6d 73 lly......available.free.programs
c7f00 20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 20 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 .which.are.used.unmodified.in.pe
c7f20 72 66 6f 72 6d 69 6e 67 0a 20 20 20 20 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 20 62 rforming......those.activities.b
c7f40 75 74 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 6f 72 ut.which.are.not.part.of.the.wor
c7f60 6b 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 k...For.example,......Correspond
c7f80 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 66 61 63 65 20 64 65 ing.Source.includes.interface.de
c7fa0 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 0a 20 20 20 20 20 77 finition.files.associated......w
c7fc0 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 2c 20 61 ith.source.files.for.the.work,.a
c7fe0 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 0a 20 20 nd.the.source.code.for.shared...
c8000 20 20 20 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 6c 69 6e ...libraries.and.dynamically.lin
c8020 6b 65 64 20 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 ked.subprograms.that.the.work.is
c8040 0a 20 20 20 20 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 ......specifically.designed.to.r
c8060 65 71 75 69 72 65 2c 20 73 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 equire,.such.as.by.intimate.data
c8080 0a 20 20 20 20 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 ......communication.or.control.f
c80a0 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 68 6f 73 65 20 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e low.between.those.subprograms.an
c80c0 64 20 6f 74 68 65 72 0a 20 20 20 20 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a d.other......parts.of.the.work..
c80e0 0a 20 20 20 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6e ......The.Corresponding.Source.n
c8100 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69 6e 67 20 74 68 61 74 20 75 73 eed.not.include.anything.that.us
c8120 65 72 73 20 63 61 6e 0a 20 20 20 20 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 74 6f 6d 61 74 69 ers.can......regenerate.automati
c8140 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 43 6f cally.from.other.parts.of.the.Co
c8160 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 20 53 6f 75 72 63 65 2e 0a 0a 20 20 20 20 20 54 rresponding......Source........T
c8180 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f he.Corresponding.Source.for.a.wo
c81a0 72 6b 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 20 rk.in.source.code.form.is.that..
c81c0 20 20 20 20 73 61 6d 65 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 ....same.work.....2..Basic.Permi
c81e0 73 73 69 6f 6e 73 2e 0a 0a 20 20 20 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 ssions........All.rights.granted
c8200 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 .under.this.License.are.granted.
c8220 66 6f 72 20 74 68 65 20 74 65 72 6d 20 6f 66 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 6f for.the.term.of......copyright.o
c8240 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 61 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 n.the.Program,.and.are.irrevocab
c8260 6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 73 74 61 74 65 64 0a 20 20 20 20 20 63 6f 6e 64 le.provided.the.stated......cond
c8280 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 65 78 itions.are.met...This.License.ex
c82a0 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 72 20 75 6e 6c 69 6d 69 74 65 64 0a plicitly.affirms.your.unlimited.
c82c0 20 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 65 20 75 6e 6d 6f 64 .....permission.to.run.the.unmod
c82e0 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 ified.Program...The.output.from.
c8300 72 75 6e 6e 69 6e 67 0a 20 20 20 20 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 20 63 running......a.covered.work.is.c
c8320 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 20 74 overed.by.this.License.only.if.t
c8340 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 0a 20 20 20 20 20 69 74 73 20 63 6f 6e 74 65 6e he.output,.given......its.conten
c8360 74 2c 20 63 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 t,.constitutes.a.covered.work...
c8380 54 68 69 73 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 0a 20 20 20 20 20 79 This.License.acknowledges......y
c83a0 6f 75 72 20 72 69 67 68 74 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 our.rights.of.fair.use.or.other.
c83c0 65 71 75 69 76 61 6c 65 6e 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 0a 20 20 20 20 20 equivalent,.as.provided.by......
c83e0 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b copyright.law........You.may.mak
c8400 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 67 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 e,.run.and.propagate.covered.wor
c8420 6b 73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e 6f 74 0a 20 20 20 20 20 63 6f 6e 76 65 79 2c 20 ks.that.you.do.not......convey,.
c8440 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f 20 6c 6f 6e 67 20 61 73 20 79 6f without.conditions.so.long.as.yo
c8460 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 72 65 6d 61 69 6e ur.license.otherwise......remain
c8480 73 20 69 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 63 6f 76 65 s.in.force...You.may.convey.cove
c84a0 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 65 0a 20 20 20 20 red.works.to.others.for.the.....
c84c0 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 20 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 6b .sole.purpose.of.having.them.mak
c84e0 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 20 e.modifications.exclusively.for.
c8500 79 6f 75 2c 0a 20 20 20 20 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 20 77 69 74 68 20 66 61 you,......or.provide.you.with.fa
c8520 63 69 6c 69 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 cilities.for.running.those.works
c8540 2c 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 ,.provided......that.you.comply.
c8560 77 69 74 68 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 with.the.terms.of.this.License.i
c8580 6e 20 63 6f 6e 76 65 79 69 6e 67 20 61 6c 6c 0a 20 20 20 20 20 6d 61 74 65 72 69 61 6c 20 66 6f n.conveying.all......material.fo
c85a0 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 r.which.you.do.not.control.copyr
c85c0 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 68 75 73 20 6d 61 6b 69 6e 67 0a 20 20 20 20 20 6f 72 ight...Those.thus.making......or
c85e0 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 66 6f 72 20 79 .running.the.covered.works.for.y
c8600 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 73 69 76 65 6c 79 20 6f 6e 20 79 6f 75 ou.must.do.so.exclusively.on.you
c8620 72 0a 20 20 20 20 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 72 20 64 69 72 65 63 74 r......behalf,.under.your.direct
c8640 69 6f 6e 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d 73 20 74 68 61 74 20 70 ion.and.control,.on.terms.that.p
c8660 72 6f 68 69 62 69 74 0a 20 20 20 20 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 20 61 6e rohibit......them.from.making.an
c8680 79 20 63 6f 70 69 65 73 20 6f 66 20 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 6d 61 74 y.copies.of.your.copyrighted.mat
c86a0 65 72 69 61 6c 20 6f 75 74 73 69 64 65 0a 20 20 20 20 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f erial.outside......their.relatio
c86c0 6e 73 68 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 20 20 20 43 6f 6e 76 65 79 69 6e 67 20 nship.with.you........Conveying.
c86e0 75 6e 64 65 72 20 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 under.any.other.circumstances.is
c8700 20 70 65 72 6d 69 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 20 20 20 20 20 74 68 65 .permitted.solely.under......the
c8720 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 .conditions.stated.below...Subli
c8740 63 65 6e 73 69 6e 67 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 0a censing.is.not.allowed;.section.
c8760 20 20 20 20 20 31 30 20 6d 61 6b 65 73 20 69 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 .....10.makes.it.unnecessary....
c8780 20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 55 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 .3..Protecting.Users'.Legal.Righ
c87a0 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a ts.From.Anti-Circumvention.Law..
c87c0 0a 20 20 20 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 ......No.covered.work.shall.be.d
c87e0 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 66 66 65 63 74 69 76 65 20 74 65 63 68 6e eemed.part.of.an.effective.techn
c8800 6f 6c 6f 67 69 63 61 6c 0a 20 20 20 20 20 6d 65 61 73 75 72 65 20 75 6e 64 65 72 20 61 6e 79 20 ological......measure.under.any.
c8820 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 6e 67 20 6f 62 6c 69 67 61 applicable.law.fulfilling.obliga
c8840 74 69 6f 6e 73 20 75 6e 64 65 72 0a 20 20 20 20 20 61 72 74 69 63 6c 65 20 31 31 20 6f 66 20 74 tions.under......article.11.of.t
c8860 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f 70 74 65 64 he.WIPO.copyright.treaty.adopted
c8880 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 0a 20 20 20 20 20 31 39 39 36 2c 20 6f 72 20 73 69 .on.20.December......1996,.or.si
c88a0 6d 69 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 milar.laws.prohibiting.or.restri
c88c0 63 74 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 73 75 63 68 cting.circumvention.of......such
c88e0 20 6d 65 61 73 75 72 65 73 2e 0a 0a 20 20 20 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 .measures........When.you.convey
c8900 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c .a.covered.work,.you.waive.any.l
c8920 65 67 61 6c 20 70 6f 77 65 72 20 74 6f 20 66 6f 72 62 69 64 0a 20 20 20 20 20 63 69 72 63 75 6d egal.power.to.forbid......circum
c8940 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 vention.of.technological.measure
c8960 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 73 75 63 68 0a 20 20 20 20 20 63 69 72 63 75 6d s.to.the.extent.such......circum
c8980 76 65 6e 74 69 6f 6e 20 69 73 20 65 66 66 65 63 74 65 64 20 62 79 20 65 78 65 72 63 69 73 69 6e vention.is.effected.by.exercisin
c89a0 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 20 20 20 20 g.rights.under.this.License.....
c89c0 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 .with.respect.to.the.covered.wor
c89e0 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 69 6e 74 65 6e 74 69 6f k,.and.you.disclaim.any.intentio
c8a00 6e 20 74 6f 0a 20 20 20 20 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 20 6d 6f 64 n.to......limit.operation.or.mod
c8a20 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 61 6e 73 ification.of.the.work.as.a.means
c8a40 20 6f 66 0a 20 20 20 20 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 .of......enforcing,.against.the.
c8a60 77 6f 72 6b 27 73 20 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 work's.users,.your.or.third.part
c8a80 69 65 73 27 20 6c 65 67 61 6c 0a 20 20 20 20 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 ies'.legal......rights.to.forbid
c8aa0 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 .circumvention.of.technological.
c8ac0 6d 65 61 73 75 72 65 73 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 measures.....4..Conveying.Verbat
c8ae0 69 6d 20 43 6f 70 69 65 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 im.Copies........You.may.convey.
c8b00 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 verbatim.copies.of.the.Program's
c8b20 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 73 20 79 6f 75 0a 20 20 20 20 20 72 65 63 65 69 76 65 .source.code.as.you......receive
c8b40 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69 75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 .it,.in.any.medium,.provided.tha
c8b60 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f 75 73 6c 79 20 61 6e 64 0a 20 20 20 20 20 61 70 70 t.you.conspicuously.and......app
c8b80 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f 6e 20 65 61 63 68 20 63 6f 70 79 20 ropriately.publish.on.each.copy.
c8ba0 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 3b an.appropriate.copyright.notice;
c8bc0 0a 20 20 20 20 20 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 20 73 74 ......keep.intact.all.notices.st
c8be0 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 0a ating.that.this.License.and.any.
c8c00 20 20 20 20 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 64 20 .....non-permissive.terms.added.
c8c20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 20 74 in.accord.with.section.7.apply.t
c8c40 6f 20 74 68 65 0a 20 20 20 20 20 63 6f 64 65 3b 20 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c o.the......code;.keep.intact.all
c8c60 20 6e 6f 74 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 .notices.of.the.absence.of.any.w
c8c80 61 72 72 61 6e 74 79 3b 20 61 6e 64 0a 20 20 20 20 20 67 69 76 65 20 61 6c 6c 20 72 65 63 69 70 arranty;.and......give.all.recip
c8ca0 69 65 6e 74 73 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f ients.a.copy.of.this.License.alo
c8cc0 6e 67 20 77 69 74 68 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d ng.with.the.Program........You.m
c8ce0 61 79 20 63 68 61 72 67 65 20 61 6e 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 ay.charge.any.price.or.no.price.
c8d00 66 6f 72 20 65 61 63 68 20 63 6f 70 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 20 for.each.copy.that.you.convey,..
c8d20 20 20 20 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6f 66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 ....and.you.may.offer.support.or
c8d40 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 74 69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a .warranty.protection.for.a.fee..
c8d60 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4d 6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 ...5..Conveying.Modified.Source.
c8d80 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 Versions........You.may.convey.a
c8da0 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 6f 72 20 74 .work.based.on.the.Program,.or.t
c8dc0 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 20 70 72 6f 64 75 63 65 he.modifications.to......produce
c8de0 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e 20 74 68 65 20 66 6f 72 .it.from.the.Program,.in.the.for
c8e00 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 68 65 0a 20 20 20 20 20 m.of.source.code.under.the......
c8e20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 terms.of.section.4,.provided.tha
c8e40 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 0a 20 20 20 t.you.also.meet.all.of.these....
c8e60 20 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 20 20 20 61 2e 20 54 68 65 20 77 6f 72 ..conditions:.........a..The.wor
c8e80 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 k.must.carry.prominent.notices.s
c8ea0 74 61 74 69 6e 67 20 74 68 61 74 20 79 6f 75 0a 20 20 20 20 20 20 20 20 20 20 6d 6f 64 69 66 69 tating.that.you...........modifi
c8ec0 65 64 20 69 74 2c 20 61 6e 64 20 67 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 ed.it,.and.giving.a.relevant.dat
c8ee0 65 2e 0a 0a 20 20 20 20 20 20 20 62 2e 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 e..........b..The.work.must.carr
c8f00 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 y.prominent.notices.stating.that
c8f20 20 69 74 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20 .it.is...........released.under.
c8f40 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 63 6f 6e 64 69 74 69 6f 6e 73 20 this.License.and.any.conditions.
c8f60 61 64 64 65 64 20 75 6e 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 73 65 63 74 69 6f 6e 20 37 2e added.under...........section.7.
c8f80 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 ..This.requirement.modifies.the.
c8fa0 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 73 65 63 74 69 6f 6e requirement.in...........section
c8fc0 20 34 20 74 6f 20 22 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e .4.to."keep.intact.all.notices".
c8fe0 0a 0a 20 20 20 20 20 20 20 63 2e 20 59 6f 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 .........c..You.must.license.the
c9000 20 65 6e 74 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 .entire.work,.as.a.whole,.under.
c9020 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 6e 79 6f 6e 65 this...........License.to.anyone
c9040 20 77 68 6f 20 63 6f 6d 65 73 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 61 20 .who.comes.into.possession.of.a.
c9060 63 6f 70 79 2e 20 20 54 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69 copy...This...........License.wi
c9080 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 70 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 ll.therefore.apply,.along.with.a
c90a0 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 73 65 63 74 69 6f 6e 20 ny.applicable...........section.
c90c0 37 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 6f 20 74 68 65 20 77 68 6f 6c 65 7.additional.terms,.to.the.whole
c90e0 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 .of.the.work,.and.all...........
c9100 69 74 73 20 70 61 72 74 73 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 20 74 68 65 its.parts,.regardless.of.how.the
c9120 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 0a 20 20 y.are.packaged...This.License...
c9140 20 20 20 20 20 20 20 20 67 69 76 65 73 20 6e 6f 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c ........gives.no.permission.to.l
c9160 69 63 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 icense.the.work.in.any.other.way
c9180 2c 20 62 75 74 0a 20 20 20 20 20 20 20 20 20 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 76 61 ,.but...........it.does.not.inva
c91a0 6c 69 64 61 74 65 20 73 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 lidate.such.permission.if.you.ha
c91c0 76 65 20 73 65 70 61 72 61 74 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 72 65 63 65 69 76 65 64 ve.separately...........received
c91e0 20 69 74 2e 0a 0a 20 20 20 20 20 20 20 64 2e 20 49 66 20 74 68 65 20 77 6f 72 6b 20 68 61 73 20 .it..........d..If.the.work.has.
c9200 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 73 2c 20 65 61 63 interactive.user.interfaces,.eac
c9220 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 41 70 70 72 6f 70 72 h.must.display...........Appropr
c9240 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 72 2c 20 69 66 20 iate.Legal.Notices;.however,.if.
c9260 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 61 the.Program.has...........intera
c9280 63 74 69 76 65 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 ctive.interfaces.that.do.not.dis
c92a0 70 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 0a 20 20 20 20 20 20 20 20 20 play.Appropriate.Legal..........
c92c0 20 4e 6f 74 69 63 65 73 2c 20 79 6f 75 72 20 77 6f 72 6b 20 6e 65 65 64 20 6e 6f 74 20 6d 61 6b .Notices,.your.work.need.not.mak
c92e0 65 20 74 68 65 6d 20 64 6f 20 73 6f 2e 0a 0a 20 20 20 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f e.them.do.so........A.compilatio
c9300 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 n.of.a.covered.work.with.other.s
c9320 65 70 61 72 61 74 65 20 61 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 20 20 20 20 20 77 6f 72 eparate.and.independent......wor
c9340 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 ks,.which.are.not.by.their.natur
c9360 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 20 20 20 20 e.extensions.of.the.covered.....
c9380 20 77 6f 72 6b 2c 20 61 6e 64 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 .work,.and.which.are.not.combine
c93a0 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 6f 20 66 6f 72 6d 20 61 20 6c 61 72 67 d.with.it.such.as.to.form.a.larg
c93c0 65 72 0a 20 20 20 20 20 70 72 6f 67 72 61 6d 2c 20 69 6e 20 6f 72 20 6f 6e 20 61 20 76 6f 6c 75 er......program,.in.or.on.a.volu
c93e0 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 me.of.a.storage.or.distribution.
c9400 6d 65 64 69 75 6d 2c 20 69 73 0a 20 20 20 20 20 63 61 6c 6c 65 64 20 61 6e 20 22 61 67 67 72 65 medium,.is......called.an."aggre
c9420 67 61 74 65 22 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 69 74 73 gate".if.the.compilation.and.its
c9440 20 72 65 73 75 6c 74 69 6e 67 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f .resulting......copyright.are.no
c9460 74 20 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 t.used.to.limit.the.access.or.le
c9480 67 61 6c 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 0a 20 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 gal.rights.of.the......compilati
c94a0 6f 6e 27 73 20 75 73 65 72 73 20 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 on's.users.beyond.what.the.indiv
c94c0 69 64 75 61 6c 20 77 6f 72 6b 73 20 70 65 72 6d 69 74 2e 0a 20 20 20 20 20 49 6e 63 6c 75 73 69 idual.works.permit.......Inclusi
c94e0 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 6e 20 61 67 67 72 65 on.of.a.covered.work.in.an.aggre
c9500 67 61 74 65 20 64 6f 65 73 20 6e 6f 74 20 63 61 75 73 65 20 74 68 69 73 0a 20 20 20 20 20 4c 69 gate.does.not.cause.this......Li
c9520 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 6f 20 74 68 65 20 6f 74 68 65 72 20 70 61 72 74 cense.to.apply.to.the.other.part
c9540 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 s.of.the.aggregate.....6..Convey
c9560 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 6f 72 6d 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 ing.Non-Source.Forms........You.
c9580 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 6f 62 6a may.convey.a.covered.work.in.obj
c95a0 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 0a 20 20 ect.code.form.under.the.terms...
c95c0 20 20 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 70 72 6f 76 69 64 65 64 ...of.sections.4.and.5,.provided
c95e0 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 65 0a 20 20 20 20 20 6d .that.you.also.convey.the......m
c9600 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f achine-readable.Corresponding.So
c9620 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 20 20 20 urce.under.the.terms.of.this....
c9640 20 20 4c 69 63 65 6e 73 65 2c 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a ..License,.in.one.of.these.ways:
c9660 0a 0a 20 20 20 20 20 20 20 61 2e 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f .........a..Convey.the.object.co
c9680 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 de.in,.or.embodied.in,.a.physica
c96a0 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 l.product...........(including.a
c96c0 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 .physical.distribution.medium),.
c96e0 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 43 6f 72 accompanied.by.the...........Cor
c9700 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 responding.Source.fixed.on.a.dur
c9720 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 69 75 6d 0a 20 20 20 20 20 20 20 20 20 20 63 able.physical.medium...........c
c9740 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 ustomarily.used.for.software.int
c9760 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 20 20 20 62 2e 20 43 6f 6e 76 65 79 20 74 68 65 20 erchange..........b..Convey.the.
c9780 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 object.code.in,.or.embodied.in,.
c97a0 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e a.physical.product...........(in
c97c0 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 cluding.a.physical.distribution.
c97e0 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 0a 20 20 20 20 20 20 medium),.accompanied.by.a.......
c9800 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 ....written.offer,.valid.for.at.
c9820 6c 65 61 73 74 20 74 68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 least.three.years.and.valid.for.
c9840 61 73 0a 20 20 20 20 20 20 20 20 20 20 6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 as...........long.as.you.offer.s
c9860 70 61 72 65 20 70 61 72 74 73 20 6f 72 20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 pare.parts.or.customer.support.f
c9880 6f 72 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 64 75 63 74 20 6d 6f 64 65 6c 2c or.that...........product.model,
c98a0 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 6f 20 70 6f 73 73 65 73 73 65 73 20 74 68 .to.give.anyone.who.possesses.th
c98c0 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 65 69 74 68 65 72 20 28 e.object.code...........either.(
c98e0 31 29 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 1).a.copy.of.the.Corresponding.S
c9900 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 73 6f 66 74 ource.for.all.the...........soft
c9920 77 61 72 65 20 69 6e 20 74 68 65 20 70 72 6f 64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f 76 65 ware.in.the.product.that.is.cove
c9940 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 61 0a 20 20 20 20 20 20 red.by.this.License,.on.a.......
c9960 20 20 20 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 69 75 6d 20 63 75 73 74 ....durable.physical.medium.cust
c9980 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 0a 20 20 20 20 20 20 omarily.used.for.software.......
c99a0 20 20 20 20 69 6e 74 65 72 63 68 61 6e 67 65 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 20 ....interchange,.for.a.price.no.
c99c0 6d 6f 72 65 20 74 68 61 6e 20 79 6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f more.than.your.reasonable.cost.o
c99e0 66 0a 20 20 20 20 20 20 20 20 20 20 70 68 79 73 69 63 61 6c 6c 79 20 70 65 72 66 6f 72 6d 69 6e f...........physically.performin
c9a00 67 20 74 68 69 73 20 63 6f 6e 76 65 79 69 6e 67 20 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 g.this.conveying.of.source,.or.(
c9a20 32 29 20 61 63 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 63 6f 70 79 20 74 68 65 20 2).access...........to.copy.the.
c9a40 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 72 6f 6d 20 61 20 6e 65 74 77 Corresponding.Source.from.a.netw
c9a60 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 0a 20 20 20 20 20 20 20 20 20 20 63 68 61 72 67 ork.server.at.no...........charg
c9a80 65 2e 0a 0a 20 20 20 20 20 20 20 63 2e 20 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 e..........c..Convey.individual.
c9aa0 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 copies.of.the.object.code.with.a
c9ac0 20 63 6f 70 79 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 74 65 6e 20 6f .copy.of.the...........written.o
c9ae0 66 66 65 72 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e ffer.to.provide.the.Correspondin
c9b00 67 20 53 6f 75 72 63 65 2e 20 20 54 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 61 6c 74 65 72 6e g.Source...This...........altern
c9b20 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 64 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c ative.is.allowed.only.occasional
c9b40 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 2c 0a 20 20 20 20 20 20 20 20 ly.and.noncommercially,.........
c9b60 20 20 61 6e 64 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 65 69 76 65 64 20 74 68 65 20 6f ..and.only.if.you.received.the.o
c9b80 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 61 6e 20 6f 66 66 65 72 2c 0a 20 bject.code.with.such.an.offer,..
c9ba0 20 20 20 20 20 20 20 20 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 75 62 73 65 63 74 69 .........in.accord.with.subsecti
c9bc0 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 20 20 20 64 2e 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a on.6b..........d..Convey.the.obj
c9be0 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 6f 6d ect.code.by.offering.access.from
c9c00 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 70 6c 61 63 65 20 28 67 .a.designated...........place.(g
c9c20 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 ratis.or.for.a.charge),.and.offe
c9c40 72 20 65 71 75 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 0a 20 20 20 20 20 20 20 20 20 r.equivalent.access.to..........
c9c60 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 .the.Corresponding.Source.in.the
c9c80 20 73 61 6d 65 20 77 61 79 20 74 68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 .same.way.through.the.same......
c9ca0 20 20 20 20 20 70 6c 61 63 65 20 61 74 20 6e 6f 20 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e .....place.at.no.further.charge.
c9cc0 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 65 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 ..You.need.not.require.recipient
c9ce0 73 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 63 6f 70 79 20 74 68 65 20 43 6f 72 72 65 73 70 6f s...........to.copy.the.Correspo
c9d00 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 6f 62 6a 65 nding.Source.along.with.the.obje
c9d20 63 74 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 20 ct.code............If.the.place.
c9d40 74 6f 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 61 20 6e 65 74 to.copy.the.object.code.is.a.net
c9d60 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 43 6f 72 72 65 work.server,.the...........Corre
c9d80 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6d 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 sponding.Source.may.be.on.a.diff
c9da0 65 72 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 64 20 62 79 0a 20 20 20 20 20 20 erent.server.(operated.by.......
c9dc0 20 20 20 20 79 6f 75 20 6f 72 20 61 20 74 68 69 72 64 20 70 61 72 74 79 29 20 74 68 61 74 20 73 ....you.or.a.third.party).that.s
c9de0 75 70 70 6f 72 74 73 20 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 0a 20 20 20 20 20 upports.equivalent.copying......
c9e00 20 20 20 20 20 66 61 63 69 6c 69 74 69 65 73 2c 20 70 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 .....facilities,.provided.you.ma
c9e20 69 6e 74 61 69 6e 20 63 6c 65 61 72 20 64 69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 intain.clear.directions.next.to.
c9e40 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 73 61 79 69 6e 67 the...........object.code.saying
c9e60 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 .where.to.find.the.Corresponding
c9e80 20 53 6f 75 72 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 52 65 67 61 72 64 6c 65 73 73 20 6f 66 .Source............Regardless.of
c9ea0 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e .what.server.hosts.the.Correspon
c9ec0 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 0a 20 20 20 20 20 20 20 20 20 20 72 65 6d 61 69 ding.Source,.you...........remai
c9ee0 6e 20 6f 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 n.obligated.to.ensure.that.it.is
c9f00 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 20 20 .available.for.as.long.as.......
c9f20 20 20 20 20 6e 65 65 64 65 64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 ....needed.to.satisfy.these.requ
c9f40 69 72 65 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 20 20 65 2e 20 43 6f 6e 76 65 79 20 74 68 65 20 irements..........e..Convey.the.
c9f60 6f 62 6a 65 63 74 20 63 6f 64 65 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 object.code.using.peer-to-peer.t
c9f80 72 61 6e 73 6d 69 73 73 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 76 69 64 65 64 20 ransmission,...........provided.
c9fa0 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 70 65 65 72 73 20 77 68 65 72 65 20 74 68 65 you.inform.other.peers.where.the
c9fc0 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 43 6f 72 72 65 .object.code.and...........Corre
c9fe0 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 72 65 20 sponding.Source.of.the.work.are.
ca000 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 67 being.offered.to.the...........g
ca020 65 6e 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f 20 63 68 61 72 67 65 20 75 6e 64 65 72 eneral.public.at.no.charge.under
ca040 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 20 20 20 20 20 41 20 73 65 70 61 72 61 62 6c .subsection.6d........A.separabl
ca060 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 e.portion.of.the.object.code,.wh
ca080 6f 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 0a 20 20 20 20 20 65 78 63 6c 75 64 65 64 ose.source.code.is......excluded
ca0a0 20 66 72 6f 6d 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 .from.the.Corresponding.Source.a
ca0c0 73 20 61 20 53 79 73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65 65 64 0a 20 20 20 20 20 6e 6f s.a.System.Library,.need......no
ca0e0 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f t.be.included.in.conveying.the.o
ca100 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 41 20 22 55 73 65 72 20 50 bject.code.work........A."User.P
ca120 72 6f 64 75 63 74 22 20 69 73 20 65 69 74 68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75 6d 65 roduct".is.either.(1).a."consume
ca140 72 20 70 72 6f 64 75 63 74 22 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 0a 20 20 20 20 20 61 6e 79 r.product",.which.means......any
ca160 20 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c 20 70 72 6f 70 65 72 74 79 20 77 68 69 63 .tangible.personal.property.whic
ca180 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 20 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c h.is.normally.used.for.personal,
ca1a0 0a 20 20 20 20 20 66 61 6d 69 6c 79 2c 20 6f 72 20 68 6f 75 73 65 68 6f 6c 64 20 70 75 72 70 6f ......family,.or.household.purpo
ca1c0 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 73 69 67 6e 65 64 20 6f 72 ses,.or.(2).anything.designed.or
ca1e0 20 73 6f 6c 64 20 66 6f 72 0a 20 20 20 20 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e 20 69 6e 74 .sold.for......incorporation.int
ca200 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 o.a.dwelling...In.determining.wh
ca220 65 74 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 0a 20 20 20 20 20 61 20 63 6f 6e 73 75 6d ether.a.product.is......a.consum
ca240 65 72 20 70 72 6f 64 75 63 74 2c 20 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c er.product,.doubtful.cases.shall
ca260 20 62 65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 20 20 20 20 20 63 6f .be.resolved.in.favor.of......co
ca280 76 65 72 61 67 65 2e 20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 64 75 63 verage...For.a.particular.produc
ca2a0 74 20 72 65 63 65 69 76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c t.received.by.a.particular.user,
ca2c0 0a 20 20 20 20 20 22 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73 20 74 6f 20 ......"normally.used".refers.to.
ca2e0 61 20 74 79 70 69 63 61 6c 20 6f 72 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 a.typical.or.common.use.of.that.
ca300 63 6c 61 73 73 20 6f 66 0a 20 20 20 20 20 70 72 6f 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 class.of......product,.regardles
ca320 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 s.of.the.status.of.the.particula
ca340 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 0a 20 20 20 20 20 77 61 79 20 69 6e 20 77 68 69 r.user.or.of.the......way.in.whi
ca360 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 61 63 74 75 61 6c 6c 79 20 ch.the.particular.user.actually.
ca380 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 73 0a 20 20 20 20 20 65 78 70 65 uses,.or.expects.or.is......expe
ca3a0 63 74 65 64 20 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 20 41 20 70 72 6f cted.to.use,.the.product...A.pro
ca3c0 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 0a 20 20 20 20 20 duct.is.a.consumer.product......
ca3e0 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 63 regardless.of.whether.the.produc
ca400 74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 20 63 6f 6d 6d 65 72 63 69 61 6c 2c 0a 20 20 t.has.substantial.commercial,...
ca420 20 20 20 69 6e 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 ...industrial.or.non-consumer.us
ca440 65 73 2c 20 75 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 20 74 es,.unless.such.uses.represent.t
ca460 68 65 0a 20 20 20 20 20 6f 6e 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 he......only.significant.mode.of
ca480 20 75 73 65 20 6f 66 20 74 68 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 20 20 20 22 49 6e 73 74 .use.of.the.product........"Inst
ca4a0 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55 73 65 72 allation.Information".for.a.User
ca4c0 20 50 72 6f 64 75 63 74 20 6d 65 61 6e 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 20 20 20 20 .Product.means.any.methods,.....
ca4e0 20 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c .procedures,.authorization.keys,
ca500 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 .or.other.information.required.t
ca520 6f 0a 20 20 20 20 20 69 6e 73 74 61 6c 6c 20 61 6e 64 20 65 78 65 63 75 74 65 20 6d 6f 64 69 66 o......install.and.execute.modif
ca540 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 ied.versions.of.a.covered.work.i
ca560 6e 20 74 68 61 74 0a 20 20 20 20 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 6f 6d 20 61 20 n.that......User.Product.from.a.
ca580 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 72 65 73 70 6f modified.version.of.its.Correspo
ca5a0 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 0a 20 20 20 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 nding.Source.......The.informati
ca5c0 6f 6e 20 6d 75 73 74 20 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 on.must.suffice.to.ensure.that.t
ca5e0 68 65 20 63 6f 6e 74 69 6e 75 65 64 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 he.continued......functioning.of
ca600 20 74 68 65 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 69 6e 20 .the.modified.object.code.is.in.
ca620 6e 6f 20 63 61 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 0a 20 20 20 20 20 69 6e 74 65 72 66 no.case.prevented.or......interf
ca640 65 72 65 64 20 77 69 74 68 20 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 20 6d 6f 64 69 66 69 63 ered.with.solely.because.modific
ca660 61 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 20 20 20 49 66 20 79 6f ation.has.been.made........If.yo
ca680 75 20 63 6f 6e 76 65 79 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 u.convey.an.object.code.work.und
ca6a0 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 0a 20 20 20 er.this.section.in,.or.with,....
ca6c0 20 20 6f 72 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 ..or.specifically.for.use.in,.a.
ca6e0 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 20 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 0a User.Product,.and.the.conveying.
ca700 20 20 20 20 20 6f 63 63 75 72 73 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 74 72 61 6e 73 61 63 .....occurs.as.part.of.a.transac
ca720 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 70 6f 73 73 65 tion.in.which.the.right.of.posse
ca740 73 73 69 6f 6e 0a 20 20 20 20 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 20 55 73 65 72 20 50 ssion......and.use.of.the.User.P
ca760 72 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 20 72 65 63 roduct.is.transferred.to.the.rec
ca780 69 70 69 65 6e 74 20 69 6e 0a 20 20 20 20 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 ipient.in......perpetuity.or.for
ca7a0 20 61 20 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 .a.fixed.term.(regardless.of.how
ca7c0 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 69 73 20 63 68 61 72 61 63 74 .the.transaction......is.charact
ca7e0 65 72 69 7a 65 64 29 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 erized),.the.Corresponding.Sourc
ca800 65 20 63 6f 6e 76 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 73 65 63 74 69 e.conveyed.under.this......secti
ca820 6f 6e 20 6d 75 73 74 20 62 65 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 74 68 65 20 49 6e on.must.be.accompanied.by.the.In
ca840 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 0a 20 20 20 stallation.Information...But....
ca860 20 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c ..this.requirement.does.not.appl
ca880 79 20 69 66 20 6e 65 69 74 68 65 72 20 79 6f 75 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 y.if.neither.you.nor.any.third.p
ca8a0 61 72 74 79 0a 20 20 20 20 20 72 65 74 61 69 6e 73 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f arty......retains.the.ability.to
ca8c0 20 69 6e 73 74 61 6c 6c 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 6f 6e .install.modified.object.code.on
ca8e0 20 74 68 65 20 55 73 65 72 0a 20 20 20 20 20 50 72 6f 64 75 63 74 20 28 66 6f 72 20 65 78 61 6d .the.User......Product.(for.exam
ca900 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 20 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 ple,.the.work.has.been.installed
ca920 20 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 20 20 20 54 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 .in.ROM)........The.requirement.
ca940 74 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 to.provide.Installation.Informat
ca960 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 20 69 6e 63 6c 75 64 65 20 61 20 72 65 71 75 ion.does.not......include.a.requ
ca980 69 72 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 irement.to.continue.to.provide.s
ca9a0 75 70 70 6f 72 74 20 73 65 72 76 69 63 65 2c 0a 20 20 20 20 20 77 61 72 72 61 6e 74 79 2c 20 6f upport.service,......warranty,.o
ca9c0 72 20 75 70 64 61 74 65 73 20 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 r.updates.for.a.work.that.has.be
ca9e0 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 0a 20 20 20 20 20 62 79 en.modified.or.installed......by
caa00 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 6f 72 20 66 6f 72 20 74 68 65 20 55 73 65 72 20 .the.recipient,.or.for.the.User.
caa20 50 72 6f 64 75 63 74 20 69 6e 20 77 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 0a 20 20 20 Product.in.which.it.has.been....
caa40 20 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 ..modified.or.installed...Access
caa60 20 74 6f 20 61 20 6e 65 74 77 6f 72 6b 20 6d 61 79 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e .to.a.network.may.be.denied.when
caa80 20 74 68 65 0a 20 20 20 20 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 69 74 73 65 6c 66 20 6d 61 .the......modification.itself.ma
caaa0 74 65 72 69 61 6c 6c 79 20 61 6e 64 20 61 64 76 65 72 73 65 6c 79 20 61 66 66 65 63 74 73 20 74 terially.and.adversely.affects.t
caac0 68 65 20 6f 70 65 72 61 74 69 6f 6e 0a 20 20 20 20 20 6f 66 20 74 68 65 20 6e 65 74 77 6f 72 6b he.operation......of.the.network
caae0 20 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 20 70 72 6f 74 6f .or.violates.the.rules.and.proto
cab00 63 6f 6c 73 20 66 6f 72 0a 20 20 20 20 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 6f cols.for......communication.acro
cab20 73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 ss.the.network........Correspond
cab40 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c ing.Source.conveyed,.and.Install
cab60 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 70 72 6f 76 69 64 65 64 2c ation.Information......provided,
cab80 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 .in.accord.with.this.section.mus
caba0 74 20 62 65 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 0a 20 20 20 20 20 70 75 t.be.in.a.format.that.is......pu
cabc0 62 6c 69 63 6c 79 20 64 6f 63 75 6d 65 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 blicly.documented.(and.with.an.i
cabe0 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 20 mplementation.available.to.the..
cac00 20 20 20 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c ....public.in.source.code.form),
cac20 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 20 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 .and.must.require.no.special.pas
cac40 73 77 6f 72 64 0a 20 20 20 20 20 6f 72 20 6b 65 79 20 66 6f 72 20 75 6e 70 61 63 6b 69 6e 67 2c sword......or.key.for.unpacking,
cac60 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a 20 20 37 2e 20 41 64 64 69 74 .reading.or.copying.....7..Addit
cac80 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 20 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 70 ional.Terms........"Additional.p
caca0 65 72 6d 69 73 73 69 6f 6e 73 22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 74 20 73 75 70 70 6c ermissions".are.terms.that.suppl
cacc0 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 0a 20 20 20 20 20 74 68 69 73 20 4c 69 63 ement.the.terms.of......this.Lic
cace0 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d 20 6f ense.by.making.exceptions.from.o
cad00 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 0a 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e ne.or.more.of.its......condition
cad20 73 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 s...Additional.permissions.that.
cad40 61 72 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 0a 20 20 20 20 20 65 6e 74 69 72 are.applicable.to.the......entir
cad60 65 20 50 72 6f 67 72 61 6d 20 73 68 61 6c 6c 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 74 68 e.Program.shall.be.treated.as.th
cad80 6f 75 67 68 20 74 68 65 79 20 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 0a 20 20 20 20 20 ough.they.were.included.in......
cada0 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 this.License,.to.the.extent.that
cadc0 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 64 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 .they.are.valid.under.applicable
cade0 0a 20 20 20 20 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 ......law...If.additional.permis
cae00 73 69 6f 6e 73 20 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20 70 61 72 74 20 6f 66 20 74 68 65 20 sions.apply.only.to.part.of.the.
cae20 50 72 6f 67 72 61 6d 2c 0a 20 20 20 20 20 74 68 61 74 20 70 61 72 74 20 6d 61 79 20 62 65 20 75 Program,......that.part.may.be.u
cae40 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 20 75 6e 64 65 72 20 74 68 6f 73 65 20 70 65 72 6d 69 sed.separately.under.those.permi
cae60 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 0a 20 20 20 20 20 65 6e 74 69 72 65 20 50 72 6f 67 ssions,.but.the......entire.Prog
cae80 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 ram.remains.governed.by.this.Lic
caea0 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 0a 20 20 20 20 20 74 68 65 20 ense.without.regard.to......the.
caec0 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 20 20 20 57 68 additional.permissions........Wh
caee0 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 en.you.convey.a.copy.of.a.covere
caf00 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 20 d.work,.you.may.at.your.option..
caf20 20 20 20 20 72 65 6d 6f 76 65 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 ....remove.any.additional.permis
caf40 73 69 6f 6e 73 20 66 72 6f 6d 20 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d 20 61 6e sions.from.that.copy,.or.from.an
caf60 79 20 70 61 72 74 0a 20 20 20 20 20 6f 66 20 69 74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20 y.part......of.it...(Additional.
caf80 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65 permissions.may.be.written.to.re
cafa0 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e 0a 20 20 20 20 20 72 65 6d 6f 76 61 6c 20 69 6e 20 quire.their.own......removal.in.
cafc0 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 6f 75 20 6d 6f 64 69 66 79 20 74 68 certain.cases.when.you.modify.th
cafe0 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c 61 63 65 0a 20 20 20 20 20 61 64 64 e.work.)..You.may.place......add
cb000 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 74 65 72 69 61 6c 2c itional.permissions.on.material,
cb020 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c .added.by.you.to.a.covered.work,
cb040 0a 20 20 20 20 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 6e 20 ......for.which.you.have.or.can.
cb060 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d 69 give.appropriate.copyright.permi
cb080 73 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 ssion........Notwithstanding.any
cb0a0 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 .other.provision.of.this.License
cb0c0 2c 20 66 6f 72 20 6d 61 74 65 72 69 61 6c 0a 20 20 20 20 20 79 6f 75 20 61 64 64 20 74 6f 20 61 ,.for.material......you.add.to.a
cb0e0 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 74 68 6f .covered.work,.you.may.(if.autho
cb100 72 69 7a 65 64 20 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 20 20 20 20 20 68 6f 6c 64 rized.by.the.copyright......hold
cb120 65 72 73 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d 65 6e 74 ers.of.that.material).supplement
cb140 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 74 68 0a .the.terms.of.this.License.with.
cb160 20 20 20 20 20 74 65 72 6d 73 3a 0a 0a 20 20 20 20 20 20 20 61 2e 20 44 69 73 63 6c 61 69 6d 69 .....terms:.........a..Disclaimi
cb180 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 74 69 6e 67 20 6c 69 61 62 69 6c 69 74 ng.warranty.or.limiting.liabilit
cb1a0 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 y.differently.from...........the
cb1c0 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 20 31 36 20 6f 66 20 .terms.of.sections.15.and.16.of.
cb1e0 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 62 2e 20 52 65 71 75 this.License;.or.........b..Requ
cb200 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 69 65 64 20 iring.preservation.of.specified.
cb220 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 0a 20 20 20 20 20 20 20 reasonable.legal.notices........
cb240 20 20 20 6f 72 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 ...or.author.attributions.in.tha
cb260 74 20 6d 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 t.material.or.in.the.Appropriate
cb280 0a 20 20 20 20 20 20 20 20 20 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 20 64 69 73 70 6c 61 79 ...........Legal.Notices.display
cb2a0 65 64 20 62 79 20 77 6f 72 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 0a 0a 20 ed.by.works.containing.it;.or...
cb2c0 20 20 20 20 20 20 63 2e 20 50 72 6f 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 73 65 6e ......c..Prohibiting.misrepresen
cb2e0 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 6d 61 74 tation.of.the.origin.of.that.mat
cb300 65 72 69 61 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 6f 72 20 72 65 71 75 69 72 69 6e 67 20 74 68 erial,...........or.requiring.th
cb320 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 at.modified.versions.of.such.mat
cb340 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 0a 20 20 20 20 20 20 20 20 20 20 69 6e 20 72 65 61 erial.be.marked...........in.rea
cb360 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 74 sonable.ways.as.different.from.t
cb380 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 he.original.version;.or.........
cb3a0 64 2e 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 62 6c 69 63 69 74 d..Limiting.the.use.for.publicit
cb3c0 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 y.purposes.of.names.of.licensors
cb3e0 0a 20 20 20 20 20 20 20 20 20 20 6f 72 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 ...........or.authors.of.the.mat
cb400 65 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 65 2e 20 44 65 63 6c 69 6e 69 6e 67 20 74 erial;.or.........e..Declining.t
cb420 6f 20 67 72 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c o.grant.rights.under.trademark.l
cb440 61 77 20 66 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 20 20 74 72 61 aw.for.use.of.some...........tra
cb460 64 65 20 6e 61 6d 65 73 2c 20 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 de.names,.trademarks,.or.service
cb480 20 6d 61 72 6b 73 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 66 2e 20 52 65 71 75 69 72 69 6e 67 20 .marks;.or.........f..Requiring.
cb4a0 69 6e 64 65 6d 6e 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 indemnification.of.licensors.and
cb4c0 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 6d 61 74 65 72 .authors.of.that...........mater
cb4e0 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6e 76 65 79 73 20 74 68 65 20 6d 61 ial.by.anyone.who.conveys.the.ma
cb500 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 76 65 terial.(or.modified...........ve
cb520 72 73 69 6f 6e 73 20 6f 66 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 rsions.of.it).with.contractual.a
cb540 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 74 6f 0a 20 20 20 20 20 ssumptions.of.liability.to......
cb560 20 20 20 20 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 20 61 6e 79 20 6c 69 61 62 .....the.recipient,.for.any.liab
cb580 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 0a 20 20 20 ility.that.these.contractual....
cb5a0 20 20 20 20 20 20 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f .......assumptions.directly.impo
cb5c0 73 65 20 6f 6e 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 se.on.those.licensors.and.author
cb5e0 73 2e 0a 0a 20 20 20 20 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 s........All.other.non-permissiv
cb600 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 e.additional.terms.are.considere
cb620 64 20 22 66 75 72 74 68 65 72 0a 20 20 20 20 20 72 65 73 74 72 69 63 74 69 6f 6e 73 22 20 77 69 d."further......restrictions".wi
cb640 74 68 69 6e 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 thin.the.meaning.of.section.10..
cb660 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 61 73 0a 20 20 20 20 20 79 6f 75 20 72 65 63 65 .If.the.Program.as......you.rece
cb680 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 61 72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 ived.it,.or.any.part.of.it,.cont
cb6a0 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 74 69 6e 67 20 74 68 61 74 0a 20 20 20 20 20 ains.a.notice.stating.that......
cb6c0 69 74 20 69 73 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 it.is.governed.by.this.License.a
cb6e0 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 69 73 20 61 20 66 75 72 74 68 long.with.a.term.that.is.a.furth
cb700 65 72 0a 20 20 20 20 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 79 20 72 65 6d er......restriction,.you.may.rem
cb720 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 65 20 64 6f 63 ove.that.term...If.a.license.doc
cb740 75 6d 65 6e 74 0a 20 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 20 66 75 72 74 68 65 72 20 72 65 ument......contains.a.further.re
cb760 73 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e striction.but.permits.relicensin
cb780 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 0a 20 20 20 20 20 75 6e 64 65 72 20 74 68 69 73 20 4c g.or.conveying......under.this.L
cb7a0 69 63 65 6e 73 65 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 icense,.you.may.add.to.a.covered
cb7c0 20 77 6f 72 6b 20 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 0a 20 20 20 20 20 62 79 20 .work.material.governed......by.
cb7e0 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 the.terms.of.that.license.docume
cb800 6e 74 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 0a 20 20 nt,.provided.that.the.further...
cb820 20 20 20 72 65 73 74 72 69 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 75 72 76 69 76 65 20 ...restriction.does.not.survive.
cb840 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a such.relicensing.or.conveying...
cb860 20 20 20 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 72 6d 73 20 74 6f 20 61 20 63 6f 76 65 72 .....If.you.add.terms.to.a.cover
cb880 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 ed.work.in.accord.with.this.sect
cb8a0 69 6f 6e 2c 20 79 6f 75 0a 20 20 20 20 20 6d 75 73 74 20 70 6c 61 63 65 2c 20 69 6e 20 74 68 65 ion,.you......must.place,.in.the
cb8c0 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20 61 20 73 74 61 74 65 6d .relevant.source.files,.a.statem
cb8e0 65 6e 74 20 6f 66 20 74 68 65 0a 20 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 ent.of.the......additional.terms
cb900 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 6f 72 20 61 .that.apply.to.those.files,.or.a
cb920 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 20 20 20 20 20 77 68 65 72 65 20 74 6f .notice.indicating......where.to
cb940 20 66 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 20 .find.the.applicable.terms......
cb960 20 20 41 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f ..Additional.terms,.permissive.o
cb980 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 r.non-permissive,.may.be.stated.
cb9a0 69 6e 0a 20 20 20 20 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 in......the.form.of.a.separately
cb9c0 20 77 72 69 74 74 65 6e 20 6c 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 .written.license,.or.stated.as.e
cb9e0 78 63 65 70 74 69 6f 6e 73 3b 0a 20 20 20 20 20 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69 72 xceptions;......the.above.requir
cba00 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 69 74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20 54 ements.apply.either.way.....8..T
cba20 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 ermination........You.may.not.pr
cba40 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b opagate.or.modify.a.covered.work
cba60 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73 6c 79 0a 20 20 20 20 20 70 72 6f 76 69 64 .except.as.expressly......provid
cba80 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 41 6e 79 20 61 74 74 65 ed.under.this.License...Any.atte
cbaa0 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 67 61 74 65 20 6f 72 0a 20 20 mpt.otherwise.to.propagate.or...
cbac0 20 20 20 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 69 6c 6c 20 61 ...modify.it.is.void,.and.will.a
cbae0 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20 72 69 67 68 utomatically.terminate.your.righ
cbb00 74 73 0a 20 20 20 20 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c ts......under.this.License.(incl
cbb20 75 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 uding.any.patent.licenses.grante
cbb40 64 20 75 6e 64 65 72 20 74 68 65 0a 20 20 20 20 20 74 68 69 72 64 20 70 61 72 61 67 72 61 70 68 d.under.the......third.paragraph
cbb60 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 .of.section.11)........However,.
cbb80 69 66 20 79 6f 75 20 63 65 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 if.you.cease.all.violation.of.th
cbba0 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 20 20 20 20 20 6c 69 63 65 6e is.License,.then.your......licen
cbbc0 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 se.from.a.particular.copyright.h
cbbe0 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73 74 61 74 65 64 20 28 61 29 0a 20 20 20 20 20 70 72 6f older.is.reinstated.(a)......pro
cbc00 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 20 61 6e 64 20 75 6e 74 69 6c 20 74 68 65 visionally,.unless.and.until.the
cbc20 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65 78 70 6c 69 63 69 74 6c 79 20 61 6e 64 .copyright.holder.explicitly.and
cbc40 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 73 20 79 6f 75 72 20 6c 69 ......finally.terminates.your.li
cbc60 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e 74 6c 79 2c 20 69 66 20 74 cense,.and.(b).permanently,.if.t
cbc80 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 66 61 69 6c 73 20 74 he......copyright.holder.fails.t
cbca0 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 62 79 o.notify.you.of.the.violation.by
cbcc0 20 73 6f 6d 65 0a 20 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 20 70 72 69 6f .some......reasonable.means.prio
cbce0 72 20 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e r.to.60.days.after.the.cessation
cbd00 2e 0a 0a 20 20 20 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 ........Moreover,.your.license.f
cbd20 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 rom.a.particular.copyright.holde
cbd40 72 20 69 73 0a 20 20 20 20 20 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61 6e 65 6e 74 6c 79 r.is......reinstated.permanently
cbd60 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f 74 69 66 69 65 .if.the.copyright.holder.notifie
cbd80 73 20 79 6f 75 20 6f 66 20 74 68 65 0a 20 20 20 20 20 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 s.you.of.the......violation.by.s
cbda0 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74 68 ome.reasonable.means,.this.is.th
cbdc0 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 68 61 76 65 0a 20 20 20 20 20 72 65 63 65 69 e.first.time.you.have......recei
cbde0 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 ved.notice.of.violation.of.this.
cbe00 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72 6b 29 20 66 72 6f 6d 0a 20 20 20 20 License.(for.any.work).from.....
cbe20 20 74 68 61 74 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 61 6e 64 20 79 6f 75 20 .that.copyright.holder,.and.you.
cbe40 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 20 74 6f 20 33 30 20 64 cure.the.violation.prior.to.30.d
cbe60 61 79 73 0a 20 20 20 20 20 61 66 74 65 72 20 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f 66 20 74 ays......after.your.receipt.of.t
cbe80 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 20 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 he.notice........Termination.of.
cbea0 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 your.rights.under.this.section.d
cbec0 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 0a 20 20 20 20 20 74 68 65 20 6c 69 63 65 6e oes.not.terminate......the.licen
cbee0 73 65 73 20 6f 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 ses.of.parties.who.have.received
cbf00 20 63 6f 70 69 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f 75 0a 20 20 20 20 20 .copies.or.rights.from.you......
cbf20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 72 20 72 69 67 under.this.License...If.your.rig
cbf40 68 74 73 20 68 61 76 65 20 62 65 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e 64 20 6e 6f 74 hts.have.been.terminated.and.not
cbf60 0a 20 20 20 20 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f ......permanently.reinstated,.yo
cbf80 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 79 20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20 u.do.not.qualify.to.receive.new.
cbfa0 6c 69 63 65 6e 73 65 73 0a 20 20 20 20 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 6d 61 74 65 72 licenses......for.the.same.mater
cbfc0 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 2e 0a 0a 20 20 39 2e 20 41 63 63 65 ial.under.section.10.....9..Acce
cbfe0 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 66 6f 72 20 48 61 76 69 6e 67 20 43 ptance.Not.Required.for.Having.C
cc000 6f 70 69 65 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 71 75 69 72 65 opies........You.are.not.require
cc020 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 6f 72 64 65 d.to.accept.this.License.in.orde
cc040 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 20 20 20 20 20 72 75 6e 20 61 20 63 6f 70 79 20 r.to.receive.or......run.a.copy.
cc060 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 72 6f 70 61 of.the.Program...Ancillary.propa
cc080 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 20 20 20 20 20 6f 63 gation.of.a.covered.work......oc
cc0a0 63 75 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 curring.solely.as.a.consequence.
cc0c0 6f 66 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 0a 20 20 20 20 20 74 72 61 6e 73 of.using.peer-to-peer......trans
cc0e0 6d 69 73 73 69 6f 6e 20 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6c 69 6b 65 77 69 mission.to.receive.a.copy.likewi
cc100 73 65 20 64 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 0a 20 20 20 20 20 61 63 63 65 70 74 61 se.does.not.require......accepta
cc120 6e 63 65 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 nce...However,.nothing.other.tha
cc140 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 67 72 61 6e 74 73 20 79 6f 75 0a 20 20 20 20 20 70 n.this.License.grants.you......p
cc160 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 ermission.to.propagate.or.modify
cc180 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e .any.covered.work...These.action
cc1a0 73 0a 20 20 20 20 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 69 67 68 74 20 69 66 20 79 6f 75 s......infringe.copyright.if.you
cc1c0 20 64 6f 20 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 54 68 .do.not.accept.this.License...Th
cc1e0 65 72 65 66 6f 72 65 2c 0a 20 20 20 20 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 6f 72 20 70 72 erefore,......by.modifying.or.pr
cc200 6f 70 61 67 61 74 69 6e 67 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 69 6e opagating.a.covered.work,.you.in
cc220 64 69 63 61 74 65 20 79 6f 75 72 0a 20 20 20 20 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 74 dicate.your......acceptance.of.t
cc240 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 74 his.License.to.do.so.....10..Aut
cc260 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 52 omatic.Licensing.of.Downstream.R
cc280 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 20 20 20 45 61 63 68 20 74 69 6d 65 20 79 6f 75 20 63 ecipients........Each.time.you.c
cc2a0 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 20 72 65 63 69 70 69 onvey.a.covered.work,.the.recipi
cc2c0 65 6e 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 20 20 20 20 20 72 65 63 65 69 76 65 73 20 ent.automatically......receives.
cc2e0 61 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 69 63 65 a.license.from.the.original.lice
cc300 6e 73 6f 72 73 2c 20 74 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 20 20 20 20 20 70 nsors,.to.run,.modify.and......p
cc320 72 6f 70 61 67 61 74 65 20 74 68 61 74 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 ropagate.that.work,.subject.to.t
cc340 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 0a 20 20 20 20 20 72 his.License...You.are.not......r
cc360 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 65 6e 66 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 esponsible.for.enforcing.complia
cc380 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 69 65 73 20 77 69 74 68 20 74 68 69 73 0a 20 nce.by.third.parties.with.this..
cc3a0 20 20 20 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 41 6e 20 22 65 6e 74 69 74 79 20 74 72 ....License........An."entity.tr
cc3c0 61 6e 73 61 63 74 69 6f 6e 22 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 72 61 6e ansaction".is.a.transaction.tran
cc3e0 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 20 20 20 20 20 6f 72 67 61 sferring.control.of.an......orga
cc400 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c 20 61 nization,.or.substantially.all.a
cc420 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 6e 0a ssets.of.one,.or.subdividing.an.
cc440 20 20 20 20 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 6d 65 72 67 69 6e 67 20 6f 72 .....organization,.or.merging.or
cc460 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 ganizations...If.propagation.of.
cc480 61 0a 20 20 20 20 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 72 65 73 75 6c 74 73 20 66 72 6f 6d a......covered.work.results.from
cc4a0 20 61 6e 20 65 6e 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 61 63 68 20 70 61 72 .an.entity.transaction,.each.par
cc4c0 74 79 20 74 6f 20 74 68 61 74 0a 20 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 6f 20 ty.to.that......transaction.who.
cc4e0 72 65 63 65 69 76 65 73 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c 73 6f receives.a.copy.of.the.work.also
cc500 20 72 65 63 65 69 76 65 73 20 77 68 61 74 65 76 65 72 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 73 .receives.whatever......licenses
cc520 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 61 72 74 79 27 73 20 70 72 65 64 65 63 65 .to.the.work.the.party's.predece
cc540 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 61 64 20 6f 72 0a 20 20 20 20 20 63 6f 75 ssor.in.interest.had.or......cou
cc560 6c 64 20 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 61 72 61 67 ld.give.under.the.previous.parag
cc580 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e raph,.plus.a.right.to.possession
cc5a0 0a 20 20 20 20 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 ......of.the.Corresponding.Sourc
cc5c0 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 63 65 73 73 e.of.the.work.from.the.predecess
cc5e0 6f 72 20 69 6e 0a 20 20 20 20 20 69 6e 74 65 72 65 73 74 2c 20 69 66 20 74 68 65 20 70 72 65 64 or.in......interest,.if.the.pred
cc600 65 63 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 ecessor.has.it.or.can.get.it.wit
cc620 68 20 72 65 61 73 6f 6e 61 62 6c 65 0a 20 20 20 20 20 65 66 66 6f 72 74 73 2e 0a 0a 20 20 20 20 h.reasonable......efforts.......
cc640 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 68 65 72 20 .You.may.not.impose.any.further.
cc660 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 20 restrictions.on.the.exercise.of.
cc680 74 68 65 0a 20 20 20 20 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 the......rights.granted.or.affir
cc6a0 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 med.under.this.License...For.exa
cc6c0 6d 70 6c 65 2c 20 79 6f 75 0a 20 20 20 20 20 6d 61 79 20 6e 6f 74 20 69 6d 70 6f 73 65 20 61 20 mple,.you......may.not.impose.a.
cc6e0 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 79 2c 20 6f 72 20 6f 74 68 65 72 20 63 license.fee,.royalty,.or.other.c
cc700 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 0a 20 20 20 20 20 6f 66 20 72 69 67 68 74 harge.for.exercise......of.right
cc720 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e s.granted.under.this.License,.an
cc740 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 61 74 65 0a 20 20 20 20 20 6c 69 74 69 d.you.may.not.initiate......liti
cc760 67 61 74 69 6f 6e 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 69 6d 20 gation.(including.a.cross-claim.
cc780 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 0a 20 20 or.counterclaim.in.a.lawsuit)...
cc7a0 20 20 20 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 20 61 6e 79 20 70 61 74 65 6e 74 20 63 6c 61 69 ...alleging.that.any.patent.clai
cc7c0 6d 20 69 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c m.is.infringed.by.making,.using,
cc7e0 0a 20 20 20 20 20 73 65 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f 72 20 73 61 6c 65 ......selling,.offering.for.sale
cc800 2c 20 6f 72 20 69 6d 70 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e ,.or.importing.the.Program.or.an
cc820 79 20 70 6f 72 74 69 6f 6e 0a 20 20 20 20 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 y.portion......of.it.....11..Pat
cc840 65 6e 74 73 2e 0a 0a 20 20 20 20 20 41 20 22 63 6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61 ents........A."contributor".is.a
cc860 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 .copyright.holder.who.authorizes
cc880 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 20 6f 66 20 .use.under.this......License.of.
cc8a0 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b 20 6f 6e 20 77 68 69 63 68 20 74 the.Program.or.a.work.on.which.t
cc8c0 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e 0a 20 20 20 20 20 54 68 65 20 77 6f he.Program.is.based.......The.wo
cc8e0 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 63 rk.thus.licensed.is.called.the.c
cc900 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f 72 0a 20 20 20 20 20 76 ontributor's."contributor......v
cc920 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 20 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 ersion"........A.contributor's."
cc940 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c essential.patent.claims".are.all
cc960 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 20 20 20 20 20 6f 77 6e 65 64 20 6f 72 20 63 6f 6e .patent.claims......owned.or.con
cc980 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 trolled.by.the.contributor,.whet
cc9a0 68 65 72 20 61 6c 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 20 20 20 20 20 68 65 72 her.already.acquired.or......her
cc9c0 65 61 66 74 65 72 20 61 63 71 75 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 eafter.acquired,.that.would.be.i
cc9e0 6e 66 72 69 6e 67 65 64 20 62 79 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 0a 20 20 20 20 20 70 65 nfringed.by.some.manner,......pe
cca00 72 6d 69 74 74 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 rmitted.by.this.License,.of.maki
cca20 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 65 6c 6c 69 6e 67 20 69 74 73 0a 20 20 20 20 20 63 ng,.using,.or.selling.its......c
cca40 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 64 6f 20 6e 6f 74 20 69 ontributor.version,.but.do.not.i
cca60 6e 63 6c 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 0a 20 20 20 20 nclude.claims.that.would.be.....
cca80 20 69 6e 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 .infringed.only.as.a.consequence
ccaa0 20 6f 66 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 0a .of.further.modification.of.the.
ccac0 20 20 20 20 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 20 70 .....contributor.version...For.p
ccae0 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 6f 6e urposes.of.this.definition,."con
ccb00 74 72 6f 6c 22 0a 20 20 20 20 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 6f trol"......includes.the.right.to
ccb20 20 67 72 61 6e 74 20 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d .grant.patent.sublicenses.in.a.m
ccb40 61 6e 6e 65 72 0a 20 20 20 20 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 anner......consistent.with.the.r
ccb60 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 equirements.of.this.License.....
ccb80 20 20 20 45 61 63 68 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 61 ...Each.contributor.grants.you.a
ccba0 20 6e 6f 6e 2d 65 78 63 6c 75 73 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 0a 20 20 20 20 20 .non-exclusive,.worldwide,......
ccbc0 72 6f 79 61 6c 74 79 2d 66 72 65 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 royalty-free.patent.license.unde
ccbe0 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 65 73 73 65 6e 74 69 61 6c 0a 20 20 r.the.contributor's.essential...
ccc00 20 20 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 20 6d 61 6b 65 2c 20 75 73 65 2c 20 ...patent.claims,.to.make,.use,.
ccc20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c 20 69 6d 70 6f 72 74 20 61 6e 64 sell,.offer.for.sale,.import.and
ccc40 0a 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 20 ......otherwise.run,.modify.and.
ccc60 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69 74 73 20 63 6f propagate.the.contents.of.its.co
ccc80 6e 74 72 69 62 75 74 6f 72 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 49 6e ntributor......version........In
ccca0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 68 73 2c .the.following.three.paragraphs,
cccc0 20 61 20 22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22 20 69 73 20 61 6e 79 0a 20 20 20 20 20 .a."patent.license".is.any......
ccce0 65 78 70 72 65 73 73 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 2c express.agreement.or.commitment,
ccd00 20 68 6f 77 65 76 65 72 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 20 74 6f 0a 20 20 20 .however.denominated,.not.to....
ccd20 20 20 65 6e 66 6f 72 63 65 20 61 20 70 61 74 65 6e 74 20 28 73 75 63 68 20 61 73 20 61 6e 20 65 ..enforce.a.patent.(such.as.an.e
ccd40 78 70 72 65 73 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 20 61 0a xpress.permission.to.practice.a.
ccd60 20 20 20 20 20 70 61 74 65 6e 74 20 6f 72 20 63 6f 76 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 20 73 .....patent.or.covenant.not.to.s
ccd80 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 72 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f ue.for.patent.infringement)...To
ccda0 20 22 67 72 61 6e 74 22 0a 20 20 20 20 20 73 75 63 68 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 ."grant"......such.a.patent.lice
ccdc0 6e 73 65 20 74 6f 20 61 20 70 61 72 74 79 20 6d 65 61 6e 73 20 74 6f 20 6d 61 6b 65 20 73 75 63 nse.to.a.party.means.to.make.suc
ccde0 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 20 20 20 20 20 63 6f 6d 6d 69 74 6d 65 6e h.an.agreement.or......commitmen
cce00 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 70 61 74 65 6e 74 20 61 67 61 69 6e 73 t.not.to.enforce.a.patent.agains
cce20 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 t.the.party........If.you.convey
cce40 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 .a.covered.work,.knowingly.relyi
cce60 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 ng.on.a.patent......license,.and
cce80 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 .the.Corresponding.Source.of.the
ccea0 20 77 6f 72 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 66 6f 72 20 .work.is.not.available......for.
ccec0 61 6e 79 6f 6e 65 20 74 6f 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 20 61 anyone.to.copy,.free.of.charge.a
ccee0 6e 64 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 nd.under.the.terms.of.this......
ccf00 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f 75 67 68 20 61 20 70 75 62 6c 69 63 6c 79 20 61 76 61 69 License,.through.a.publicly.avai
ccf20 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 0a 20 20 lable.network.server.or.other...
ccf40 20 20 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 62 6c 65 20 6d 65 61 6e 73 2c 20 74 68 65 ...readily.accessible.means,.the
ccf60 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 28 31 29 20 63 61 75 73 65 20 74 68 65 0a n.you.must.either.(1).cause.the.
ccf80 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 74 6f 20 62 65 20 .....Corresponding.Source.to.be.
ccfa0 73 6f 20 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 72 61 6e 67 65 20 74 6f 20 so.available,.or.(2).arrange.to.
ccfc0 64 65 70 72 69 76 65 0a 20 20 20 20 20 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 20 62 65 6e deprive......yourself.of.the.ben
ccfe0 65 66 69 74 20 6f 66 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 6f 72 20 74 efit.of.the.patent.license.for.t
cd000 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 0a 20 20 20 20 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 his.particular......work,.or.(3)
cd020 20 61 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 20 63 6f 6e 73 69 73 74 65 6e 74 .arrange,.in.a.manner.consistent
cd040 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 0a 20 20 20 20 20 6f 66 20 74 .with.the.requirements......of.t
cd060 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 70 61 74 65 6e his.License,.to.extend.the.paten
cd080 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d 0a 20 20 20 20 20 72 65 63 t.license.to.downstream......rec
cd0a0 69 70 69 65 6e 74 73 2e 20 20 22 4b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 22 20 6d 65 ipients..."Knowingly.relying".me
cd0c0 61 6e 73 20 79 6f 75 20 68 61 76 65 20 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 0a 20 20 ans.you.have.actual.knowledge...
cd0e0 20 20 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 ...that,.but.for.the.patent.lice
cd100 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 20 nse,.your.conveying.the.covered.
cd120 77 6f 72 6b 0a 20 20 20 20 20 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 6f 72 20 79 6f 75 72 20 work......in.a.country,.or.your.
cd140 72 65 63 69 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 recipient's.use.of.the.covered.w
cd160 6f 72 6b 20 69 6e 20 61 0a 20 20 20 20 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 6c 64 20 69 6e 66 ork.in.a......country,.would.inf
cd180 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 61 62 6c 65 20 70 ringe.one.or.more.identifiable.p
cd1a0 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a 20 20 20 20 20 63 6f 75 6e 74 72 79 20 74 68 61 74 atents.in.that......country.that
cd1c0 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 20 .you.have.reason.to.believe.are.
cd1e0 76 61 6c 69 64 2e 0a 0a 20 20 20 20 20 49 66 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 valid........If,.pursuant.to.or.
cd200 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e in.connection.with.a.single.tran
cd220 73 61 63 74 69 6f 6e 20 6f 72 0a 20 20 20 20 20 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 saction.or......arrangement,.you
cd240 20 63 6f 6e 76 65 79 2c 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 .convey,.or.propagate.by.procuri
cd260 6e 67 20 63 6f 6e 76 65 79 61 6e 63 65 20 6f 66 2c 20 61 0a 20 20 20 20 20 63 6f 76 65 72 65 64 ng.conveyance.of,.a......covered
cd280 20 77 6f 72 6b 2c 20 61 6e 64 20 67 72 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 .work,.and.grant.a.patent.licens
cd2a0 65 20 74 6f 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 70 61 72 74 69 65 73 0a 20 20 20 20 20 72 65 e.to.some.of.the.parties......re
cd2c0 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 ceiving.the.covered.work.authori
cd2e0 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c 20 70 72 6f 70 61 67 61 74 65 2c 0a 20 20 20 zing.them.to.use,.propagate,....
cd300 20 20 6d 6f 64 69 66 79 20 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 70 65 63 69 66 69 63 20 63 6f ..modify.or.convey.a.specific.co
cd320 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 6e 20 74 68 65 py.of.the.covered.work,.then.the
cd340 0a 20 20 20 20 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 79 6f 75 20 67 72 61 6e 74 20 69 ......patent.license.you.grant.i
cd360 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f 20 61 6c 6c 0a s.automatically.extended.to.all.
cd380 20 20 20 20 20 72 65 63 69 70 69 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 .....recipients.of.the.covered.w
cd3a0 6f 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 20 20 ork.and.works.based.on.it.......
cd3c0 20 41 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 22 64 69 73 63 72 69 6d 69 6e 61 .A.patent.license.is."discrimina
cd3e0 74 6f 72 79 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 tory".if.it.does.not.include.wit
cd400 68 69 6e 0a 20 20 20 20 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 hin......the.scope.of.its.covera
cd420 67 65 2c 20 70 72 6f 68 69 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f ge,.prohibits.the.exercise.of,.o
cd440 72 20 69 73 0a 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e r.is......conditioned.on.the.non
cd460 2d 65 78 65 72 63 69 73 65 20 6f 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 -exercise.of.one.or.more.of.the.
cd480 72 69 67 68 74 73 20 74 68 61 74 0a 20 20 20 20 20 61 72 65 20 73 70 65 63 69 66 69 63 61 6c 6c rights.that......are.specificall
cd4a0 79 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 y.granted.under.this.License...Y
cd4c0 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 61 0a 20 20 20 20 20 63 6f 76 65 72 65 64 ou.may.not.convey.a......covered
cd4e0 20 77 6f 72 6b 20 69 66 20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 79 20 74 6f 20 61 6e 20 61 .work.if.you.are.a.party.to.an.a
cd500 72 72 61 6e 67 65 6d 65 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 0a 20 20 20 20 20 70 61 72 rrangement.with.a.third......par
cd520 74 79 20 74 68 61 74 20 69 73 20 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f 66 20 64 69 ty.that.is.in.the.business.of.di
cd540 73 74 72 69 62 75 74 69 6e 67 20 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 68 69 63 68 stributing.software,.under.which
cd560 0a 20 20 20 20 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 6d 65 6e 74 20 74 6f 20 74 68 65 20 74 68 ......you.make.payment.to.the.th
cd580 69 72 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 ird.party.based.on.the.extent.of
cd5a0 20 79 6f 75 72 0a 20 20 20 20 20 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 .your......activity.of.conveying
cd5c0 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 .the.work,.and.under.which.the.t
cd5e0 68 69 72 64 20 70 61 72 74 79 0a 20 20 20 20 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f hird.party......grants,.to.any.o
cd600 66 20 74 68 65 20 70 61 72 74 69 65 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 f.the.parties.who.would.receive.
cd620 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 20 20 20 20 20 66 72 6f 6d 20 79 6f 75 2c 20 the.covered.work......from.you,.
cd640 61 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 a.discriminatory.patent.license.
cd660 28 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 0a 20 20 20 20 20 63 6f 70 69 (a).in.connection.with......copi
cd680 65 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 63 6f 6e 76 65 79 65 64 20 es.of.the.covered.work.conveyed.
cd6a0 62 79 20 79 6f 75 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 65 20 66 72 6f 6d 0a 20 20 20 20 by.you.(or.copies.made.from.....
cd6c0 20 74 68 6f 73 65 20 63 6f 70 69 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 6d 61 72 69 6c 79 .those.copies),.or.(b).primarily
cd6e0 20 66 6f 72 20 61 6e 64 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 73 70 65 63 .for.and.in.connection.with.spec
cd700 69 66 69 63 0a 20 20 20 20 20 70 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f ific......products.or.compilatio
cd720 6e 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b ns.that.contain.the.covered.work
cd740 2c 20 75 6e 6c 65 73 73 20 79 6f 75 0a 20 20 20 20 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 ,.unless.you......entered.into.t
cd760 68 61 74 20 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 hat.arrangement,.or.that.patent.
cd780 6c 69 63 65 6e 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 0a 20 20 20 20 20 70 72 69 6f 72 20 license.was.granted,......prior.
cd7a0 74 6f 20 32 38 20 4d 61 72 63 68 20 32 30 30 37 2e 0a 0a 20 20 20 20 20 4e 6f 74 68 69 6e 67 20 to.28.March.2007........Nothing.
cd7c0 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 in.this.License.shall.be.constru
cd7e0 65 64 20 61 73 20 65 78 63 6c 75 64 69 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 20 20 20 20 ed.as.excluding.or.limiting.....
cd800 20 61 6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 6e 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 .any.implied.license.or.other.de
cd820 66 65 6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a fenses.to.infringement.that.may.
cd840 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 79 .....otherwise.be.available.to.y
cd860 6f 75 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 74 65 6e 74 20 6c 61 77 2e 0a ou.under.applicable.patent.law..
cd880 0a 20 20 31 32 2e 20 4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 20 4f 74 68 65 72 73 27 20 46 ...12..No.Surrender.of.Others'.F
cd8a0 72 65 65 64 6f 6d 2e 0a 0a 20 20 20 20 20 49 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 reedom........If.conditions.are.
cd8c0 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 79 20 63 6f 75 72 74 imposed.on.you.(whether.by.court
cd8e0 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d 65 6e 74 0a 20 20 20 20 20 6f 72 20 6f 74 68 65 72 77 .order,.agreement......or.otherw
cd900 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 74 69 ise).that.contradict.the.conditi
cd920 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 0a 20 20 20 20 20 64 ons.of.this.License,.they......d
cd940 6f 20 6e 6f 74 20 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 o.not.excuse.you.from.the.condit
cd960 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 0a 20 20 ions.of.this.License...If.you...
cd980 20 20 20 63 61 6e 6e 6f 74 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 ...cannot.convey.a.covered.work.
cd9a0 73 6f 20 61 73 20 74 6f 20 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 so.as.to.satisfy.simultaneously.
cd9c0 79 6f 75 72 0a 20 20 20 20 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 your......obligations.under.this
cd9e0 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 .License.and.any.other.pertinent
cda00 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c 0a 20 20 20 20 20 74 68 65 6e 20 61 73 20 61 20 63 6f 6e .obligations,......then.as.a.con
cda20 73 65 71 75 65 6e 63 65 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 69 74 20 61 sequence.you.may.not.convey.it.a
cda40 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 20 69 66 20 79 6f 75 t.all...For.example,......if.you
cda60 20 61 67 72 65 65 20 74 6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 6c 69 67 61 74 65 20 79 6f .agree.to.terms.that.obligate.yo
cda80 75 20 74 6f 20 63 6f 6c 6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 66 6f 72 0a 20 20 20 20 20 u.to.collect.a.royalty.for......
cdaa0 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 20 74 6f 20 further.conveying.from.those.to.
cdac0 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 65 whom.you.convey.the.Program,.the
cdae0 0a 20 20 20 20 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 ......only.way.you.could.satisfy
cdb00 20 62 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 20 4c 69 63 65 6e .both.those.terms.and.this.Licen
cdb20 73 65 20 77 6f 75 6c 64 0a 20 20 20 20 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 se.would......be.to.refrain.enti
cdb40 72 65 6c 79 20 66 72 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e rely.from.conveying.the.Program.
cdb60 0a 0a 20 20 31 33 2e 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 ....13..Use.with.the.GNU.Affero.
cdb80 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 4e 6f General.Public.License........No
cdba0 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f twithstanding.any.other.provisio
cdbc0 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 20 20 20 20 n.of.this.License,.you.have.....
cdbe0 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 .permission.to.link.or.combine.a
cdc00 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 ny.covered.work.with.a.work.lice
cdc20 6e 73 65 64 0a 20 20 20 20 20 75 6e 64 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 nsed......under.version.3.of.the
cdc40 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .GNU.Affero.General.Public.Licen
cdc60 73 65 20 69 6e 74 6f 20 61 0a 20 20 20 20 20 73 69 6e 67 6c 65 20 63 6f 6d 62 69 6e 65 64 20 77 se.into.a......single.combined.w
cdc80 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 ork,.and.to.convey.the.resulting
cdca0 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 6d 73 0a 20 20 20 20 20 6f 66 20 74 68 69 73 20 4c .work...The.terms......of.this.L
cdcc0 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 20 74 6f icense.will.continue.to.apply.to
cdce0 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 68 65 0a 20 20 20 20 20 63 6f 76 65 .the.part.which.is.the......cove
cdd00 72 65 64 20 77 6f 72 6b 2c 20 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 red.work,.but.the.special.requir
cdd20 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 0a 20 20 20 20 20 47 65 ements.of.the.GNU.Affero......Ge
cdd40 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 73 65 63 74 69 6f 6e 20 31 33 neral.Public.License,.section.13
cdd60 2c 20 63 6f 6e 63 65 72 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 ,.concerning.interaction.through
cdd80 0a 20 20 20 20 20 61 20 6e 65 74 77 6f 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 ......a.network.will.apply.to.th
cdda0 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 e.combination.as.such.....14..Re
cddc0 76 69 73 65 64 20 56 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a vised.Versions.of.this.License..
cdde0 0a 20 20 20 20 20 54 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 ......The.Free.Software.Foundati
cde00 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 72 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 on.may.publish.revised.and/or.ne
cde20 77 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 w......versions.of.the.GNU.Gener
cde40 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 69 6d 65 20 74 6f 20 74 al.Public.License.from.time.to.t
cde60 69 6d 65 2e 20 20 53 75 63 68 0a 20 20 20 20 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 77 69 6c ime...Such......new.versions.wil
cde80 6c 20 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20 74 68 65 20 70 72 l.be.similar.in.spirit.to.the.pr
cdea0 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 0a 20 20 20 20 20 6d 61 79 20 64 69 66 66 esent.version,.but......may.diff
cdec0 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 20 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f 62 er.in.detail.to.address.new.prob
cdee0 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 20 20 20 45 61 63 68 20 76 65 72 lems.or.concerns........Each.ver
cdf00 73 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 sion.is.given.a.distinguishing.v
cdf20 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 20 20 20 20 20 50 72 6f 67 ersion.number...If.the......Prog
cdf40 72 61 6d 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d ram.specifies.that.a.certain.num
cdf60 62 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 0a 20 20 20 20 20 47 65 bered.version.of.the.GNU......Ge
cdf80 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79 20 6c 61 74 neral.Public.License."or.any.lat
cdfa0 65 72 20 76 65 72 73 69 6f 6e 22 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 0a 20 er.version".applies.to.it,.you..
cdfc0 20 20 20 20 68 61 76 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 ....have.the.option.of.following
cdfe0 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 .the.terms.and.conditions.either
ce000 20 6f 66 0a 20 20 20 20 20 74 68 61 74 20 6e 75 6d 62 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f .of......that.numbered.version.o
ce020 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 70 75 62 6c 69 73 68 65 64 r.of.any.later.version.published
ce040 20 62 79 20 74 68 65 20 46 72 65 65 0a 20 20 20 20 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 .by.the.Free......Software.Found
ce060 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 73 20 6e 6f 74 20 ation...If.the.Program.does.not.
ce080 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 6e 75 6d 62 65 72 20 6f 66 specify.a.version......number.of
ce0a0 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c .the.GNU.General.Public.License,
ce0c0 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 0a 20 20 20 20 20 76 65 72 73 69 6f 6e .you.may.choose.any......version
ce0e0 20 65 76 65 72 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 .ever.published.by.the.Free.Soft
ce100 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 50 72 ware.Foundation........If.the.Pr
ce120 6f 67 72 61 6d 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e ogram.specifies.that.a.proxy.can
ce140 20 64 65 63 69 64 65 20 77 68 69 63 68 20 66 75 74 75 72 65 0a 20 20 20 20 20 76 65 72 73 69 6f .decide.which.future......versio
ce160 6e 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 ns.of.the.GNU.General.Public.Lic
ce180 65 6e 73 65 20 63 61 6e 20 62 65 20 75 73 65 64 2c 20 74 68 61 74 0a 20 20 20 20 20 70 72 6f 78 ense.can.be.used,.that......prox
ce1a0 79 27 73 20 70 75 62 6c 69 63 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e y's.public.statement.of.acceptan
ce1c0 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 65 72 6d 61 6e 65 6e 74 6c 79 0a 20 20 20 20 ce.of.a.version.permanently.....
ce1e0 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 20 74 6f 20 63 68 6f 6f 73 65 20 74 68 61 74 20 76 .authorizes.you.to.choose.that.v
ce200 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 20 20 20 4c 61 ersion.for.the.Program........La
ce220 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 67 69 76 65 20 79 6f ter.license.versions.may.give.yo
ce240 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 70 u.additional.or.different......p
ce260 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 69 6f ermissions...However,.no.additio
ce280 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 61 nal.obligations.are.imposed.on.a
ce2a0 6e 79 0a 20 20 20 20 20 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 ny......author.or.copyright.hold
ce2c0 65 72 20 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 er.as.a.result.of.your.choosing.
ce2e0 74 6f 20 66 6f 6c 6c 6f 77 20 61 0a 20 20 20 20 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a to.follow.a......later.version..
ce300 0a 20 20 31 35 2e 20 44 69 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a ...15..Disclaimer.of.Warranty...
ce320 20 20 20 20 20 54 48 45 52 45 20 49 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 .....THERE.IS.NO.WARRANTY.FOR.TH
ce340 45 20 50 52 4f 47 52 41 4d 2c 20 54 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 E.PROGRAM,.TO.THE.EXTENT.PERMITT
ce360 45 44 20 42 59 0a 20 20 20 20 20 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 2e 20 45 58 43 45 50 ED.BY......APPLICABLE.LAW..EXCEP
ce380 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 45 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 T.WHEN.OTHERWISE.STATED.IN.WRITI
ce3a0 4e 47 20 54 48 45 0a 20 20 20 20 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e NG.THE......COPYRIGHT.HOLDERS.AN
ce3c0 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 52 4f 56 49 44 45 20 54 48 45 20 50 D/OR.OTHER.PARTIES.PROVIDE.THE.P
ce3e0 52 4f 47 52 41 4d 20 22 41 53 20 49 53 22 0a 20 20 20 20 20 57 49 54 48 4f 55 54 20 57 41 52 52 ROGRAM."AS.IS"......WITHOUT.WARR
ce400 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 45 58 50 52 45 53 53 ANTY.OF.ANY.KIND,.EITHER.EXPRESS
ce420 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 0a 20 20 20 20 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 ED.OR.IMPLIED,......INCLUDING,.B
ce440 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 UT.NOT.LIMITED.TO,.THE.IMPLIED.W
ce460 41 52 52 41 4e 54 49 45 53 20 4f 46 0a 20 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 ARRANTIES.OF......MERCHANTABILIT
ce480 59 20 41 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 Y.AND.FITNESS.FOR.A.PARTICULAR.P
ce4a0 55 52 50 4f 53 45 2e 20 54 48 45 20 45 4e 54 49 52 45 0a 20 20 20 20 20 52 49 53 4b 20 41 53 20 URPOSE..THE.ENTIRE......RISK.AS.
ce4c0 54 4f 20 54 48 45 20 51 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f TO.THE.QUALITY.AND.PERFORMANCE.O
ce4e0 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 49 53 20 57 49 54 48 20 59 4f 55 2e 0a 20 20 20 20 20 F.THE.PROGRAM.IS.WITH.YOU.......
ce500 53 48 4f 55 4c 44 20 54 48 45 20 50 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 43 54 49 SHOULD.THE.PROGRAM.PROVE.DEFECTI
ce520 56 45 2c 20 59 4f 55 20 41 53 53 55 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 20 41 4c 4c 0a 20 VE,.YOU.ASSUME.THE.COST.OF.ALL..
ce540 20 20 20 20 4e 45 43 45 53 53 41 52 59 20 53 45 52 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 ....NECESSARY.SERVICING,.REPAIR.
ce560 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a 20 20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e OR.CORRECTION.....16..Limitation
ce580 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a 20 20 20 20 20 49 4e 20 4e 4f 20 45 56 45 4e 54 .of.Liability........IN.NO.EVENT
ce5a0 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 20 41 50 50 4c 49 43 41 42 4c 45 20 4c .UNLESS.REQUIRED.BY.APPLICABLE.L
ce5c0 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 0a 20 20 20 20 20 57 52 49 54 49 4e 47 20 AW.OR.AGREED.TO.IN......WRITING.
ce5e0 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 2c 20 4f 52 20 41 4e WILL.ANY.COPYRIGHT.HOLDER,.OR.AN
ce600 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 45 53 0a 20 20 20 20 20 Y.OTHER.PARTY.WHO.MODIFIES......
ce620 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 20 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 20 50 45 AND/OR.CONVEYS.THE.PROGRAM.AS.PE
ce640 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 4f 55 20 RMITTED.ABOVE,.BE.LIABLE.TO.YOU.
ce660 46 4f 52 0a 20 20 20 20 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 20 FOR......DAMAGES,.INCLUDING.ANY.
ce680 47 45 4e 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 0a GENERAL,.SPECIAL,.INCIDENTAL.OR.
ce6a0 20 20 20 20 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 49 53 49 .....CONSEQUENTIAL.DAMAGES.ARISI
ce6c0 4e 47 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 NG.OUT.OF.THE.USE.OR.INABILITY.T
ce6e0 4f 20 55 53 45 0a 20 20 20 20 20 54 48 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e O.USE......THE.PROGRAM.(INCLUDIN
ce700 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 20 44 41 54 G.BUT.NOT.LIMITED.TO.LOSS.OF.DAT
ce720 41 20 4f 52 20 44 41 54 41 0a 20 20 20 20 20 42 45 49 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e A.OR.DATA......BEING.RENDERED.IN
ce740 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 53 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 ACCURATE.OR.LOSSES.SUSTAINED.BY.
ce760 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 20 20 20 20 20 50 41 52 54 49 45 53 20 4f 52 20 41 20 46 YOU.OR.THIRD......PARTIES.OR.A.F
ce780 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 54 4f 20 4f 50 45 52 41 54 45 AILURE.OF.THE.PROGRAM.TO.OPERATE
ce7a0 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 0a 20 20 20 20 20 50 52 4f 47 52 41 4d 53 29 2c 20 .WITH.ANY.OTHER......PROGRAMS),.
ce7c0 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 52 20 50 41 52 EVEN.IF.SUCH.HOLDER.OR.OTHER.PAR
ce7e0 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 0a 20 20 20 20 20 54 48 45 20 TY.HAS.BEEN.ADVISED.OF......THE.
ce800 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 POSSIBILITY.OF.SUCH.DAMAGES.....
ce820 31 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 17..Interpretation.of.Sections.1
ce840 35 20 61 6e 64 20 31 36 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 5.and.16........If.the.disclaime
ce860 72 20 6f 66 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 r.of.warranty.and.limitation.of.
ce880 6c 69 61 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 20 61 62 6f 76 65 20 63 61 liability.provided......above.ca
ce8a0 6e 6e 6f 74 20 62 65 20 67 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 nnot.be.given.local.legal.effect
ce8c0 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 20 20 20 20 20 .according.to.their.terms,......
ce8e0 72 65 76 69 65 77 69 6e 67 20 63 6f 75 72 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 reviewing.courts.shall.apply.loc
ce900 61 6c 20 6c 61 77 20 74 68 61 74 20 6d 6f 73 74 20 63 6c 6f 73 65 6c 79 0a 20 20 20 20 20 61 70 al.law.that.most.closely......ap
ce920 70 72 6f 78 69 6d 61 74 65 73 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 77 61 69 76 65 72 20 6f 66 proximates.an.absolute.waiver.of
ce940 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 74 79 20 69 6e 0a 20 20 20 20 20 63 6f 6e .all.civil.liability.in......con
ce960 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 75 6e 6c 65 73 73 nection.with.the.Program,.unless
ce980 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 6f 6e 20 6f 66 0a 20 20 20 .a.warranty.or.assumption.of....
ce9a0 20 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 20 63 6f 70 79 20 6f ..liability.accompanies.a.copy.o
ce9c0 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 61 20 66 65 f.the.Program.in.return.for.a.fe
ce9e0 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 4f 46 e.........................END.OF
cea00 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 48 6f 77 20 74 6f 20 41 70 .TERMS.AND.CONDITIONS..How.to.Ap
cea20 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 6f 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 ply.These.Terms.to.Your.New.Prog
cea40 72 61 6d 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d rams.===========================
cea60 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 79 6f 75 20 64 65 76 65 6c ==================..If.you.devel
cea80 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 20 69 op.a.new.program,.and.you.want.i
ceaa0 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 62 6c 65 t.to.be.of.the.greatest.possible
ceac0 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 77 61 79 .use.to.the.public,.the.best.way
ceae0 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 74 0a 66 .to.achieve.this.is.to.make.it.f
ceb00 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 61 6e 20 ree.software.which.everyone.can.
ceb20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 20 74 68 redistribute.and.change.under.th
ceb40 65 73 65 0a 74 65 72 6d 73 2e 0a 0a 20 20 20 54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 68 20 ese.terms......To.do.so,.attach.
ceb60 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 72 6f the.following.notices.to.the.pro
ceb80 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 74 68 gram...It.is.safest.to.attach.th
ceba0 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 20 66 em.to.the.start.of.each.source.f
cebc0 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 74 68 ile.to.most.effectively.state.th
cebe0 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 61 63 e.exclusion.of.warranty;.and.eac
cec00 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 20 74 68 65 0a h.file.should.have.at.least.the.
cec20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 74 "copyright".line.and.a.pointer.t
cec40 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 6e 64 o.where.the.full.notice.is.found
cec60 2e 0a 20 20 20 20 20 4f 4e 45 20 4c 49 4e 45 20 54 4f 20 47 49 56 45 20 54 48 45 20 50 52 4f 47 .......ONE.LINE.TO.GIVE.THE.PROG
cec80 52 41 4d 27 53 20 4e 41 4d 45 20 41 4e 44 20 41 20 42 52 49 45 46 20 49 44 45 41 20 4f 46 20 57 RAM'S.NAME.AND.A.BRIEF.IDEA.OF.W
ceca0 48 41 54 20 49 54 20 44 4f 45 53 2e 0a 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 HAT.IT.DOES.......Copyright.(C).
cecc0 59 45 41 52 20 4e 41 4d 45 20 4f 46 20 41 55 54 48 4f 52 0a 0a 20 20 20 20 20 54 68 69 73 20 70 YEAR.NAME.OF.AUTHOR.......This.p
cece0 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e rogram.is.free.software:.you.can
ced00 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 20 .redistribute.it.and/or.modify..
ced20 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e ....it.under.the.terms.of.the.GN
ced40 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c U.General.Public.License.as.publ
ced60 69 73 68 65 64 20 62 79 0a 20 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 ished.by......the.Free.Software.
ced80 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 Foundation,.either.version.3.of.
ceda0 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 0a 20 20 20 20 20 79 6f 75 72 20 6f 70 the.License,.or.(at......your.op
cedc0 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 54 tion).any.later.version........T
cede0 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 his.program.is.distributed.in.th
cee00 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 e.hope.that.it.will.be.useful,.b
cee20 75 74 0a 20 20 20 20 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 ut......WITHOUT.ANY.WARRANTY;.wi
cee40 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 thout.even.the.implied.warranty.
cee60 6f 66 0a 20 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 of......MERCHANTABILITY.or.FITNE
cee80 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
ceea0 65 20 74 68 65 20 47 4e 55 0a 20 20 20 20 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 e.the.GNU......General.Public.Li
ceec0 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 20 20 59 6f cense.for.more.details........Yo
ceee0 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 u.should.have.received.a.copy.of
cef00 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a .the.GNU.General.Public.License.
cef20 20 20 20 20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 .....along.with.this.program...I
cef40 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c f.not,.see.<http://www.gnu.org/l
cef60 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 20 41 6c 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 icenses/>......Also.add.informat
cef80 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 ion.on.how.to.contact.you.by.ele
cefa0 63 74 72 6f 6e 69 63 20 61 6e 64 20 70 61 70 65 72 0a 6d 61 69 6c 2e 0a 0a 20 20 20 49 66 20 74 ctronic.and.paper.mail......If.t
cefc0 68 65 20 70 72 6f 67 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 he.program.does.terminal.interac
cefe0 74 69 6f 6e 2c 20 6d 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 tion,.make.it.output.a.short.not
cf000 69 63 65 20 6c 69 6b 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 ice.like.this.when.it.starts.in.
cf020 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20 20 20 20 20 50 52 4f 47 52 an.interactive.mode:.......PROGR
cf040 41 4d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 59 45 41 52 20 4e 41 4d 45 20 4f 46 20 41 55 AM.Copyright.(C).YEAR.NAME.OF.AU
cf060 54 48 4f 52 0a 20 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 THOR......This.program.comes.wit
cf080 68 20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 h.ABSOLUTELY.NO.WARRANTY;.for.de
cf0a0 74 61 69 6c 73 20 74 79 70 65 20 27 73 68 6f 77 20 77 27 2e 0a 20 20 20 20 20 54 68 69 73 20 69 tails.type.'show.w'.......This.i
cf0c0 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c s.free.software,.and.you.are.wel
cf0e0 63 6f 6d 65 20 74 6f 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 75 6e 64 65 72 20 63 65 come.to.redistribute.it.under.ce
cf100 72 74 61 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 27 73 68 6f 77 20 63 27 20 rtain.conditions;.type.'show.c'.
cf120 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 61 for.details......The.hypothetica
cf140 6c 20 63 6f 6d 6d 61 6e 64 73 20 27 73 68 6f 77 20 77 27 20 61 6e 64 20 27 73 68 6f 77 20 63 27 l.commands.'show.w'.and.'show.c'
cf160 20 73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 0a 61 70 70 72 6f 70 72 69 61 74 65 20 70 61 72 .should.show.the.appropriate.par
cf180 74 73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 ts.of.the.General.Public.License
cf1a0 2e 20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 0a 70 72 6f 67 72 61 6d 27 73 20 63 6f 6d ...Of.course,.your.program's.com
cf1c0 6d 61 6e 64 73 20 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 20 mands.might.be.different;.for.a.
cf1e0 47 55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 0a 75 73 65 20 61 6e 20 GUI.interface,.you.would.use.an.
cf200 22 61 62 6f 75 74 20 62 6f 78 22 2e 0a 0a 20 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f "about.box"......You.should.also
cf220 20 67 65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 .get.your.employer.(if.you.work.
cf240 61 73 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 0a 73 63 68 6f 6f 6c 2c 20 69 66 20 61 as.a.programmer).or.school,.if.a
cf260 6e 79 2c 20 74 6f 20 73 69 67 6e 20 61 20 22 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 ny,.to.sign.a."copyright.disclai
cf280 6d 65 72 22 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 0a 6e 65 63 65 73 73 61 mer".for.the.program,.if.necessa
cf2a0 72 79 2e 20 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 ry...For.more.information.on.thi
cf2c0 73 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 0a 74 s,.and.how.to.apply.and.follow.t
cf2e0 68 65 20 47 4e 55 20 47 50 4c 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e he.GNU.GPL,.see.<http://www.gnu.
cf300 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 org/licenses/>......The.GNU.Gene
cf320 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d ral.Public.License.does.not.perm
cf340 69 74 20 69 6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 79 6f 75 72 0a 70 72 6f 67 72 61 6d 20 69 6e it.incorporating.your.program.in
cf360 74 6f 20 70 72 6f 70 72 69 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 to.proprietary.programs...If.you
cf380 72 20 70 72 6f 67 72 61 6d 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 0a 6c 69 62 72 61 72 r.program.is.a.subroutine.librar
cf3a0 79 2c 20 79 6f 75 20 6d 61 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 y,.you.may.consider.it.more.usef
cf3c0 75 6c 20 74 6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 ul.to.permit.linking.proprietary
cf3e0 0a 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 77 69 74 68 20 74 68 65 20 6c 69 62 72 61 72 79 2e 20 .applications.with.the.library..
cf400 20 49 66 20 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c .If.this.is.what.you.want.to.do,
cf420 20 75 73 65 20 74 68 65 0a 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c .use.the.GNU.Lesser.General.Publ
cf440 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e ic.License.instead.of.this.Licen
cf460 73 65 2e 20 20 42 75 74 20 66 69 72 73 74 2c 0a 70 6c 65 61 73 65 20 72 65 61 64 20 3c 68 74 74 se...But.first,.please.read.<htt
cf480 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 70 68 69 6c 6f 73 6f 70 68 79 2f 77 68 79 2d 6e p://www.gnu.org/philosophy/why-n
cf4a0 6f 74 2d 6c 67 70 6c 2e 68 74 6d 6c 3e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 ot-lgpl.html>.....File:.doc7SuRx
cf4c0 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 65 20 47 4e 55 20 46 44 4c 2c 20 20 4e 65 78 P.info,..Node:.The.GNU.FDL,..Nex
cf4e0 74 3a 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 2c 20 20 50 72 65 76 3a 20 43 6f 70 79 69 6e 67 t:.Concept.Index,..Prev:.Copying
cf500 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 33 35 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 ,..Up:.Top..35.GNU.Free.Document
cf520 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ation.License.******************
cf540 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ***************.................
cf560 20 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 31 2e 32 2c 20 4e 6f 76 65 6d 62 65 72 20 32 30 30 .......Version.1.2,.November.200
cf580 32 0a 0a 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 30 2c 32 30 30 31 2c 2.......Copyright.(C).2000,2001,
cf5a0 32 30 30 32 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 2002.Free.Software.Foundation,.I
cf5c0 6e 63 2e 0a 20 20 20 20 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 nc.......51.Franklin.St,.Fifth.F
cf5e0 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 loor,.Boston,.MA..02110-1301,.US
cf600 41 0a 0a 20 20 20 20 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f A.......Everyone.is.permitted.to
cf620 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f .copy.and.distribute.verbatim.co
cf640 70 69 65 73 0a 20 20 20 20 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 pies......of.this.license.docume
cf660 6e 74 2c 20 62 75 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 nt,.but.changing.it.is.not.allow
cf680 65 64 2e 0a 0a 20 20 30 2e 20 50 52 45 41 4d 42 4c 45 0a 0a 20 20 20 20 20 54 68 65 20 70 75 72 ed.....0..PREAMBLE.......The.pur
cf6a0 70 6f 73 65 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 73 20 74 6f 20 6d 61 6b 65 20 pose.of.this.License.is.to.make.
cf6c0 61 20 6d 61 6e 75 61 6c 2c 20 74 65 78 74 62 6f 6f 6b 2c 20 6f 72 20 6f 74 68 65 72 0a 20 20 20 a.manual,.textbook,.or.other....
cf6e0 20 20 66 75 6e 63 74 69 6f 6e 61 6c 20 61 6e 64 20 75 73 65 66 75 6c 20 64 6f 63 75 6d 65 6e 74 ..functional.and.useful.document
cf700 20 22 66 72 65 65 22 20 69 6e 20 74 68 65 20 73 65 6e 73 65 20 6f 66 20 66 72 65 65 64 6f 6d 3a ."free".in.the.sense.of.freedom:
cf720 20 74 6f 0a 20 20 20 20 20 61 73 73 75 72 65 20 65 76 65 72 79 6f 6e 65 20 74 68 65 20 65 66 66 .to......assure.everyone.the.eff
cf740 65 63 74 69 76 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 72 65 64 69 73 ective.freedom.to.copy.and.redis
cf760 74 72 69 62 75 74 65 20 69 74 2c 0a 20 20 20 20 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 tribute.it,......with.or.without
cf780 20 6d 6f 64 69 66 79 69 6e 67 20 69 74 2c 20 65 69 74 68 65 72 20 63 6f 6d 6d 65 72 63 69 61 6c .modifying.it,.either.commercial
cf7a0 6c 79 20 6f 72 0a 20 20 20 20 20 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 2e 20 20 53 65 63 ly.or......noncommercially...Sec
cf7c0 6f 6e 64 61 72 69 6c 79 2c 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 70 72 65 73 65 72 76 65 73 ondarily,.this.License.preserves
cf7e0 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 61 75 74 68 6f 72 20 61 6e 64 20 70 75 62 6c 69 73 68 .for.the......author.and.publish
cf800 65 72 20 61 20 77 61 79 20 74 6f 20 67 65 74 20 63 72 65 64 69 74 20 66 6f 72 20 74 68 65 69 72 er.a.way.to.get.credit.for.their
cf820 20 77 6f 72 6b 2c 20 77 68 69 6c 65 20 6e 6f 74 0a 20 20 20 20 20 62 65 69 6e 67 20 63 6f 6e 73 .work,.while.not......being.cons
cf840 69 64 65 72 65 64 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 6d 6f 64 69 66 69 63 61 74 idered.responsible.for.modificat
cf860 69 6f 6e 73 20 6d 61 64 65 20 62 79 20 6f 74 68 65 72 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 ions.made.by.others........This.
cf880 4c 69 63 65 6e 73 65 20 69 73 20 61 20 6b 69 6e 64 20 6f 66 20 22 63 6f 70 79 6c 65 66 74 22 2c License.is.a.kind.of."copyleft",
cf8a0 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 64 65 72 69 76 61 74 69 76 65 0a 20 20 20 .which.means.that.derivative....
cf8c0 20 20 77 6f 72 6b 73 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 6d 75 73 74 20 74 68 65 ..works.of.the.document.must.the
cf8e0 6d 73 65 6c 76 65 73 20 62 65 20 66 72 65 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 73 65 6e 73 mselves.be.free.in.the.same.sens
cf900 65 2e 0a 20 20 20 20 20 49 74 20 63 6f 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 47 4e 55 20 47 e.......It.complements.the.GNU.G
cf920 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 77 68 69 63 68 20 69 73 20 eneral.Public.License,.which.is.
cf940 61 20 63 6f 70 79 6c 65 66 74 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 20 64 65 73 69 67 6e 65 64 a.copyleft......license.designed
cf960 20 66 6f 72 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 0a 0a 20 20 20 20 20 57 65 20 68 61 76 .for.free.software........We.hav
cf980 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 6f 72 64 65 72 e.designed.this.License.in.order
cf9a0 20 74 6f 20 75 73 65 20 69 74 20 66 6f 72 20 6d 61 6e 75 61 6c 73 20 66 6f 72 0a 20 20 20 20 20 .to.use.it.for.manuals.for......
cf9c0 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 62 65 63 61 75 73 65 20 66 72 65 65 20 73 6f 66 74 free.software,.because.free.soft
cf9e0 77 61 72 65 20 6e 65 65 64 73 20 66 72 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 61 ware.needs.free.documentation:.a
cfa00 0a 20 20 20 20 20 66 72 65 65 20 70 72 6f 67 72 61 6d 20 73 68 6f 75 6c 64 20 63 6f 6d 65 20 77 ......free.program.should.come.w
cfa20 69 74 68 20 6d 61 6e 75 61 6c 73 20 70 72 6f 76 69 64 69 6e 67 20 74 68 65 20 73 61 6d 65 20 66 ith.manuals.providing.the.same.f
cfa40 72 65 65 64 6f 6d 73 0a 20 20 20 20 20 74 68 61 74 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 64 reedoms......that.the.software.d
cfa60 6f 65 73 2e 20 20 42 75 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 73 20 6e 6f 74 20 6c 69 oes...But.this.License.is.not.li
cfa80 6d 69 74 65 64 20 74 6f 0a 20 20 20 20 20 73 6f 66 74 77 61 72 65 20 6d 61 6e 75 61 6c 73 3b 20 mited.to......software.manuals;.
cfaa0 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 66 6f 72 20 61 6e 79 20 74 65 78 74 75 61 6c 20 77 it.can.be.used.for.any.textual.w
cfac0 6f 72 6b 2c 20 72 65 67 61 72 64 6c 65 73 73 0a 20 20 20 20 20 6f 66 20 73 75 62 6a 65 63 74 20 ork,.regardless......of.subject.
cfae0 6d 61 74 74 65 72 20 6f 72 20 77 68 65 74 68 65 72 20 69 74 20 69 73 20 70 75 62 6c 69 73 68 65 matter.or.whether.it.is.publishe
cfb00 64 20 61 73 20 61 20 70 72 69 6e 74 65 64 20 62 6f 6f 6b 2e 20 20 57 65 0a 20 20 20 20 20 72 65 d.as.a.printed.book...We......re
cfb20 63 6f 6d 6d 65 6e 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 70 72 69 6e 63 69 70 61 6c 6c 79 commend.this.License.principally
cfb40 20 66 6f 72 20 77 6f 72 6b 73 20 77 68 6f 73 65 20 70 75 72 70 6f 73 65 20 69 73 0a 20 20 20 20 .for.works.whose.purpose.is.....
cfb60 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 6f 72 20 72 65 66 65 72 65 6e 63 65 2e 0a 0a 20 20 31 2e .instruction.or.reference.....1.
cfb80 20 41 50 50 4c 49 43 41 42 49 4c 49 54 59 20 41 4e 44 20 44 45 46 49 4e 49 54 49 4f 4e 53 0a 0a .APPLICABILITY.AND.DEFINITIONS..
cfba0 20 20 20 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 61 70 70 6c 69 65 73 20 74 6f 20 61 6e 79 .....This.License.applies.to.any
cfbc0 20 6d 61 6e 75 61 6c 20 6f 72 20 6f 74 68 65 72 20 77 6f 72 6b 2c 20 69 6e 20 61 6e 79 20 6d 65 .manual.or.other.work,.in.any.me
cfbe0 64 69 75 6d 2c 0a 20 20 20 20 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 dium,......that.contains.a.notic
cfc00 65 20 70 6c 61 63 65 64 20 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 e.placed.by.the.copyright.holder
cfc20 20 73 61 79 69 6e 67 20 69 74 20 63 61 6e 0a 20 20 20 20 20 62 65 20 64 69 73 74 72 69 62 75 74 .saying.it.can......be.distribut
cfc40 65 64 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e ed.under.the.terms.of.this.Licen
cfc60 73 65 2e 20 20 53 75 63 68 20 61 20 6e 6f 74 69 63 65 0a 20 20 20 20 20 67 72 61 6e 74 73 20 61 se...Such.a.notice......grants.a
cfc80 20 77 6f 72 6c 64 2d 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 20 6c 69 63 65 6e 73 .world-wide,.royalty-free.licens
cfca0 65 2c 20 75 6e 6c 69 6d 69 74 65 64 20 69 6e 20 64 75 72 61 74 69 6f 6e 2c 0a 20 20 20 20 20 74 e,.unlimited.in.duration,......t
cfcc0 6f 20 75 73 65 20 74 68 61 74 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 64 69 74 o.use.that.work.under.the.condit
cfce0 69 6f 6e 73 20 73 74 61 74 65 64 20 68 65 72 65 69 6e 2e 20 20 54 68 65 0a 20 20 20 20 20 22 44 ions.stated.herein...The......"D
cfd00 6f 63 75 6d 65 6e 74 22 2c 20 62 65 6c 6f 77 2c 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20 73 ocument",.below,.refers.to.any.s
cfd20 75 63 68 20 6d 61 6e 75 61 6c 20 6f 72 20 77 6f 72 6b 2e 20 20 41 6e 79 20 6d 65 6d 62 65 72 0a uch.manual.or.work...Any.member.
cfd40 20 20 20 20 20 6f 66 20 74 68 65 20 70 75 62 6c 69 63 20 69 73 20 61 20 6c 69 63 65 6e 73 65 65 .....of.the.public.is.a.licensee
cfd60 2c 20 61 6e 64 20 69 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 59 6f ,.and.is.addressed.as."you"...Yo
cfd80 75 20 61 63 63 65 70 74 0a 20 20 20 20 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 66 20 79 6f 75 u.accept......the.license.if.you
cfda0 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 74 68 65 20 .copy,.modify.or.distribute.the.
cfdc0 77 6f 72 6b 20 69 6e 20 61 20 77 61 79 0a 20 20 20 20 20 72 65 71 75 69 72 69 6e 67 20 70 65 72 work.in.a.way......requiring.per
cfde0 6d 69 73 73 69 6f 6e 20 75 6e 64 65 72 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2e 0a 0a 20 20 mission.under.copyright.law.....
cfe00 20 20 20 41 20 22 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 22 20 6f 66 20 74 68 65 20 44 ...A."Modified.Version".of.the.D
cfe20 6f 63 75 6d 65 6e 74 20 6d 65 61 6e 73 20 61 6e 79 20 77 6f 72 6b 20 63 6f 6e 74 61 69 6e 69 6e ocument.means.any.work.containin
cfe40 67 20 74 68 65 0a 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 20 6f 72 20 61 20 70 6f 72 74 69 6f 6e g.the......Document.or.a.portion
cfe60 20 6f 66 20 69 74 2c 20 65 69 74 68 65 72 20 63 6f 70 69 65 64 20 76 65 72 62 61 74 69 6d 2c 20 .of.it,.either.copied.verbatim,.
cfe80 6f 72 20 77 69 74 68 0a 20 20 20 20 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 61 6e 64 2f 6f or.with......modifications.and/o
cfea0 72 20 74 72 61 6e 73 6c 61 74 65 64 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 r.translated.into.another.langua
cfec0 67 65 2e 0a 0a 20 20 20 20 20 41 20 22 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e 22 20 ge........A."Secondary.Section".
cfee0 69 73 20 61 20 6e 61 6d 65 64 20 61 70 70 65 6e 64 69 78 20 6f 72 20 61 20 66 72 6f 6e 74 2d 6d is.a.named.appendix.or.a.front-m
cff00 61 74 74 65 72 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 atter.section......of.the.Docume
cff20 6e 74 20 74 68 61 74 20 64 65 61 6c 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 77 69 74 68 20 74 nt.that.deals.exclusively.with.t
cff40 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 6f 66 20 74 68 65 0a 20 20 20 20 20 70 75 62 6c he.relationship.of.the......publ
cff60 69 73 68 65 72 73 20 6f 72 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e ishers.or.authors.of.the.Documen
cff80 74 20 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 27 73 20 6f 76 65 72 61 6c 6c 0a 20 20 20 20 t.to.the.Document's.overall.....
cffa0 20 73 75 62 6a 65 63 74 20 28 6f 72 20 74 6f 20 72 65 6c 61 74 65 64 20 6d 61 74 74 65 72 73 29 .subject.(or.to.related.matters)
cffc0 20 61 6e 64 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 74 68 69 6e 67 20 74 68 61 74 20 63 6f 75 6c 64 .and.contains.nothing.that.could
cffe0 0a 20 20 20 20 20 66 61 6c 6c 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 69 6e 20 74 68 61 74 20 ......fall.directly.within.that.
d0000 6f 76 65 72 61 6c 6c 20 73 75 62 6a 65 63 74 2e 20 20 28 54 68 75 73 2c 20 69 66 20 74 68 65 20 overall.subject...(Thus,.if.the.
d0020 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 69 73 20 69 6e 20 70 61 72 74 20 61 20 74 65 78 74 62 Document......is.in.part.a.textb
d0040 6f 6f 6b 20 6f 66 20 6d 61 74 68 65 6d 61 74 69 63 73 2c 20 61 20 53 65 63 6f 6e 64 61 72 79 20 ook.of.mathematics,.a.Secondary.
d0060 53 65 63 74 69 6f 6e 20 6d 61 79 20 6e 6f 74 0a 20 20 20 20 20 65 78 70 6c 61 69 6e 20 61 6e 79 Section.may.not......explain.any
d0080 20 6d 61 74 68 65 6d 61 74 69 63 73 2e 29 20 20 54 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 .mathematics.)..The.relationship
d00a0 20 63 6f 75 6c 64 20 62 65 20 61 20 6d 61 74 74 65 72 20 6f 66 0a 20 20 20 20 20 68 69 73 74 6f .could.be.a.matter.of......histo
d00c0 72 69 63 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 73 75 62 6a 65 63 rical.connection.with.the.subjec
d00e0 74 20 6f 72 20 77 69 74 68 20 72 65 6c 61 74 65 64 20 6d 61 74 74 65 72 73 2c 20 6f 72 0a 20 20 t.or.with.related.matters,.or...
d0100 20 20 20 6f 66 20 6c 65 67 61 6c 2c 20 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 70 68 69 6c 6f 73 6f ...of.legal,.commercial,.philoso
d0120 70 68 69 63 61 6c 2c 20 65 74 68 69 63 61 6c 20 6f 72 20 70 6f 6c 69 74 69 63 61 6c 20 70 6f 73 phical,.ethical.or.political.pos
d0140 69 74 69 6f 6e 0a 20 20 20 20 20 72 65 67 61 72 64 69 6e 67 20 74 68 65 6d 2e 0a 0a 20 20 20 20 ition......regarding.them.......
d0160 20 54 68 65 20 22 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 22 20 61 72 65 20 63 65 .The."Invariant.Sections".are.ce
d0180 72 74 61 69 6e 20 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e 73 20 77 68 6f 73 65 0a 20 rtain.Secondary.Sections.whose..
d01a0 20 20 20 20 74 69 74 6c 65 73 20 61 72 65 20 64 65 73 69 67 6e 61 74 65 64 2c 20 61 73 20 62 65 ....titles.are.designated,.as.be
d01c0 69 6e 67 20 74 68 6f 73 65 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c ing.those.of.Invariant.Sections,
d01e0 20 69 6e 20 74 68 65 0a 20 20 20 20 20 6e 6f 74 69 63 65 20 74 68 61 74 20 73 61 79 73 20 74 68 .in.the......notice.that.says.th
d0200 61 74 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 at.the.Document.is.released.unde
d0220 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 20 20 20 20 20 49 66 20 61 20 73 65 63 74 69 6f r.this.License.......If.a.sectio
d0240 6e 20 64 6f 65 73 20 6e 6f 74 20 66 69 74 20 74 68 65 20 61 62 6f 76 65 20 64 65 66 69 6e 69 74 n.does.not.fit.the.above.definit
d0260 69 6f 6e 20 6f 66 20 53 65 63 6f 6e 64 61 72 79 20 74 68 65 6e 20 69 74 0a 20 20 20 20 20 69 73 ion.of.Secondary.then.it......is
d0280 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 74 6f 20 62 65 20 64 65 73 69 67 6e 61 74 65 64 20 61 73 .not.allowed.to.be.designated.as
d02a0 20 49 6e 76 61 72 69 61 6e 74 2e 20 20 54 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 61 79 0a 20 20 .Invariant...The.Document.may...
d02c0 20 20 20 63 6f 6e 74 61 69 6e 20 7a 65 72 6f 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f ...contain.zero.Invariant.Sectio
d02e0 6e 73 2e 20 20 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 69 64 ns...If.the.Document.does.not.id
d0300 65 6e 74 69 66 79 0a 20 20 20 20 20 61 6e 79 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f entify......any.Invariant.Sectio
d0320 6e 73 20 74 68 65 6e 20 74 68 65 72 65 20 61 72 65 20 6e 6f 6e 65 2e 0a 0a 20 20 20 20 20 54 68 ns.then.there.are.none........Th
d0340 65 20 22 43 6f 76 65 72 20 54 65 78 74 73 22 20 61 72 65 20 63 65 72 74 61 69 6e 20 73 68 6f 72 e."Cover.Texts".are.certain.shor
d0360 74 20 70 61 73 73 61 67 65 73 20 6f 66 20 74 65 78 74 20 74 68 61 74 20 61 72 65 0a 20 20 20 20 t.passages.of.text.that.are.....
d0380 20 6c 69 73 74 65 64 2c 20 61 73 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 72 .listed,.as.Front-Cover.Texts.or
d03a0 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 2c 20 69 6e 20 74 68 65 20 6e 6f 74 69 63 65 .Back-Cover.Texts,.in.the.notice
d03c0 0a 20 20 20 20 20 74 68 61 74 20 73 61 79 73 20 74 68 61 74 20 74 68 65 20 44 6f 63 75 6d 65 6e ......that.says.that.the.Documen
d03e0 74 20 69 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 t.is.released.under.this.License
d0400 2e 20 20 41 0a 20 20 20 20 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 20 6d 61 79 20 62 ...A......Front-Cover.Text.may.b
d0420 65 20 61 74 20 6d 6f 73 74 20 35 20 77 6f 72 64 73 2c 20 61 6e 64 20 61 20 42 61 63 6b 2d 43 6f e.at.most.5.words,.and.a.Back-Co
d0440 76 65 72 20 54 65 78 74 20 6d 61 79 0a 20 20 20 20 20 62 65 20 61 74 20 6d 6f 73 74 20 32 35 20 ver.Text.may......be.at.most.25.
d0460 77 6f 72 64 73 2e 0a 0a 20 20 20 20 20 41 20 22 54 72 61 6e 73 70 61 72 65 6e 74 22 20 63 6f 70 words........A."Transparent".cop
d0480 79 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 65 61 6e 73 20 61 20 6d 61 63 68 69 6e y.of.the.Document.means.a.machin
d04a0 65 2d 72 65 61 64 61 62 6c 65 20 63 6f 70 79 2c 0a 20 20 20 20 20 72 65 70 72 65 73 65 6e 74 65 e-readable.copy,......represente
d04c0 64 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 77 68 6f 73 65 20 73 70 65 63 69 66 69 63 61 74 69 6f d.in.a.format.whose.specificatio
d04e0 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 20 20 20 20 20 67 65 6e 65 72 n.is.available.to.the......gener
d0500 61 6c 20 70 75 62 6c 69 63 2c 20 74 68 61 74 20 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 al.public,.that.is.suitable.for.
d0520 72 65 76 69 73 69 6e 67 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 73 74 72 61 69 revising.the.document......strai
d0540 67 68 74 66 6f 72 77 61 72 64 6c 79 20 77 69 74 68 20 67 65 6e 65 72 69 63 20 74 65 78 74 20 65 ghtforwardly.with.generic.text.e
d0560 64 69 74 6f 72 73 20 6f 72 20 28 66 6f 72 20 69 6d 61 67 65 73 20 63 6f 6d 70 6f 73 65 64 0a 20 ditors.or.(for.images.composed..
d0580 20 20 20 20 6f 66 20 70 69 78 65 6c 73 29 20 67 65 6e 65 72 69 63 20 70 61 69 6e 74 20 70 72 6f ....of.pixels).generic.paint.pro
d05a0 67 72 61 6d 73 20 6f 72 20 28 66 6f 72 20 64 72 61 77 69 6e 67 73 29 20 73 6f 6d 65 20 77 69 64 grams.or.(for.drawings).some.wid
d05c0 65 6c 79 0a 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 64 72 61 77 69 6e 67 20 65 64 69 74 6f ely......available.drawing.edito
d05e0 72 2c 20 61 6e 64 20 74 68 61 74 20 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 69 6e 70 75 r,.and.that.is.suitable.for.inpu
d0600 74 20 74 6f 20 74 65 78 74 0a 20 20 20 20 20 66 6f 72 6d 61 74 74 65 72 73 20 6f 72 20 66 6f 72 t.to.text......formatters.or.for
d0620 20 61 75 74 6f 6d 61 74 69 63 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 6f 20 61 20 76 61 72 69 .automatic.translation.to.a.vari
d0640 65 74 79 20 6f 66 20 66 6f 72 6d 61 74 73 0a 20 20 20 20 20 73 75 69 74 61 62 6c 65 20 66 6f 72 ety.of.formats......suitable.for
d0660 20 69 6e 70 75 74 20 74 6f 20 74 65 78 74 20 66 6f 72 6d 61 74 74 65 72 73 2e 20 20 41 20 63 6f .input.to.text.formatters...A.co
d0680 70 79 20 6d 61 64 65 20 69 6e 20 61 6e 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 54 72 61 py.made.in.an.otherwise......Tra
d06a0 6e 73 70 61 72 65 6e 74 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 77 68 6f 73 65 20 6d 61 72 6b 75 nsparent.file.format.whose.marku
d06c0 70 2c 20 6f 72 20 61 62 73 65 6e 63 65 20 6f 66 20 6d 61 72 6b 75 70 2c 20 68 61 73 0a 20 20 20 p,.or.absence.of.markup,.has....
d06e0 20 20 62 65 65 6e 20 61 72 72 61 6e 67 65 64 20 74 6f 20 74 68 77 61 72 74 20 6f 72 20 64 69 73 ..been.arranged.to.thwart.or.dis
d0700 63 6f 75 72 61 67 65 20 73 75 62 73 65 71 75 65 6e 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 courage.subsequent.modification.
d0720 62 79 0a 20 20 20 20 20 72 65 61 64 65 72 73 20 69 73 20 6e 6f 74 20 54 72 61 6e 73 70 61 72 65 by......readers.is.not.Transpare
d0740 6e 74 2e 20 20 41 6e 20 69 6d 61 67 65 20 66 6f 72 6d 61 74 20 69 73 20 6e 6f 74 20 54 72 61 6e nt...An.image.format.is.not.Tran
d0760 73 70 61 72 65 6e 74 20 69 66 0a 20 20 20 20 20 75 73 65 64 20 66 6f 72 20 61 6e 79 20 73 75 62 sparent.if......used.for.any.sub
d0780 73 74 61 6e 74 69 61 6c 20 61 6d 6f 75 6e 74 20 6f 66 20 74 65 78 74 2e 20 20 41 20 63 6f 70 79 stantial.amount.of.text...A.copy
d07a0 20 74 68 61 74 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 22 54 72 61 6e 73 70 61 72 65 6e 74 22 20 .that.is.not......"Transparent".
d07c0 69 73 20 63 61 6c 6c 65 64 20 22 4f 70 61 71 75 65 22 2e 0a 0a 20 20 20 20 20 45 78 61 6d 70 6c is.called."Opaque"........Exampl
d07e0 65 73 20 6f 66 20 73 75 69 74 61 62 6c 65 20 66 6f 72 6d 61 74 73 20 66 6f 72 20 54 72 61 6e 73 es.of.suitable.formats.for.Trans
d0800 70 61 72 65 6e 74 20 63 6f 70 69 65 73 20 69 6e 63 6c 75 64 65 20 70 6c 61 69 6e 0a 20 20 20 20 parent.copies.include.plain.....
d0820 20 41 53 43 49 49 20 77 69 74 68 6f 75 74 20 6d 61 72 6b 75 70 2c 20 54 65 78 69 6e 66 6f 20 69 .ASCII.without.markup,.Texinfo.i
d0840 6e 70 75 74 20 66 6f 72 6d 61 74 2c 20 4c 61 54 65 58 20 69 6e 70 75 74 20 66 6f 72 6d 61 74 2c nput.format,.LaTeX.input.format,
d0860 0a 20 20 20 20 20 53 47 4d 4c 20 6f 72 20 58 4d 4c 20 75 73 69 6e 67 20 61 20 70 75 62 6c 69 63 ......SGML.or.XML.using.a.public
d0880 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 44 54 44 2c 20 61 6e 64 20 73 74 61 6e 64 61 72 64 2d 63 ly.available.DTD,.and.standard-c
d08a0 6f 6e 66 6f 72 6d 69 6e 67 0a 20 20 20 20 20 73 69 6d 70 6c 65 20 48 54 4d 4c 2c 20 50 6f 73 74 onforming......simple.HTML,.Post
d08c0 53 63 72 69 70 74 20 6f 72 20 50 44 46 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20 68 75 6d 61 6e Script.or.PDF.designed.for.human
d08e0 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 45 78 61 6d 70 6c 65 73 20 6f 66 20 .modification.......Examples.of.
d0900 74 72 61 6e 73 70 61 72 65 6e 74 20 69 6d 61 67 65 20 66 6f 72 6d 61 74 73 20 69 6e 63 6c 75 64 transparent.image.formats.includ
d0920 65 20 50 4e 47 2c 20 58 43 46 20 61 6e 64 20 4a 50 47 2e 0a 20 20 20 20 20 4f 70 61 71 75 65 20 e.PNG,.XCF.and.JPG.......Opaque.
d0940 66 6f 72 6d 61 74 73 20 69 6e 63 6c 75 64 65 20 70 72 6f 70 72 69 65 74 61 72 79 20 66 6f 72 6d formats.include.proprietary.form
d0960 61 74 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 61 64 20 61 6e 64 0a 20 20 20 20 20 65 64 ats.that.can.be.read.and......ed
d0980 69 74 65 64 20 6f 6e 6c 79 20 62 79 20 70 72 6f 70 72 69 65 74 61 72 79 20 77 6f 72 64 20 70 72 ited.only.by.proprietary.word.pr
d09a0 6f 63 65 73 73 6f 72 73 2c 20 53 47 4d 4c 20 6f 72 20 58 4d 4c 20 66 6f 72 20 77 68 69 63 68 0a ocessors,.SGML.or.XML.for.which.
d09c0 20 20 20 20 20 74 68 65 20 44 54 44 20 61 6e 64 2f 6f 72 20 70 72 6f 63 65 73 73 69 6e 67 20 74 .....the.DTD.and/or.processing.t
d09e0 6f 6f 6c 73 20 61 72 65 20 6e 6f 74 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 ools.are.not.generally.available
d0a00 2c 20 61 6e 64 0a 20 20 20 20 20 74 68 65 20 6d 61 63 68 69 6e 65 2d 67 65 6e 65 72 61 74 65 64 ,.and......the.machine-generated
d0a20 20 48 54 4d 4c 2c 20 50 6f 73 74 53 63 72 69 70 74 20 6f 72 20 50 44 46 20 70 72 6f 64 75 63 65 .HTML,.PostScript.or.PDF.produce
d0a40 64 20 62 79 20 73 6f 6d 65 20 77 6f 72 64 0a 20 20 20 20 20 70 72 6f 63 65 73 73 6f 72 73 20 66 d.by.some.word......processors.f
d0a60 6f 72 20 6f 75 74 70 75 74 20 70 75 72 70 6f 73 65 73 20 6f 6e 6c 79 2e 0a 0a 20 20 20 20 20 54 or.output.purposes.only........T
d0a80 68 65 20 22 54 69 74 6c 65 20 50 61 67 65 22 20 6d 65 61 6e 73 2c 20 66 6f 72 20 61 20 70 72 69 he."Title.Page".means,.for.a.pri
d0aa0 6e 74 65 64 20 62 6f 6f 6b 2c 20 74 68 65 20 74 69 74 6c 65 20 70 61 67 65 20 69 74 73 65 6c 66 nted.book,.the.title.page.itself
d0ac0 2c 0a 20 20 20 20 20 70 6c 75 73 20 73 75 63 68 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 67 65 73 ,......plus.such.following.pages
d0ae0 20 61 73 20 61 72 65 20 6e 65 65 64 65 64 20 74 6f 20 68 6f 6c 64 2c 20 6c 65 67 69 62 6c 79 2c .as.are.needed.to.hold,.legibly,
d0b00 20 74 68 65 0a 20 20 20 20 20 6d 61 74 65 72 69 61 6c 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 .the......material.this.License.
d0b20 72 65 71 75 69 72 65 73 20 74 6f 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 74 69 74 6c 65 20 requires.to.appear.in.the.title.
d0b40 70 61 67 65 2e 20 20 46 6f 72 0a 20 20 20 20 20 77 6f 72 6b 73 20 69 6e 20 66 6f 72 6d 61 74 73 page...For......works.in.formats
d0b60 20 77 68 69 63 68 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 74 69 74 6c 65 20 70 61 67 .which.do.not.have.any.title.pag
d0b80 65 20 61 73 20 73 75 63 68 2c 20 22 54 69 74 6c 65 0a 20 20 20 20 20 50 61 67 65 22 20 6d 65 61 e.as.such,."Title......Page".mea
d0ba0 6e 73 20 74 68 65 20 74 65 78 74 20 6e 65 61 72 20 74 68 65 20 6d 6f 73 74 20 70 72 6f 6d 69 6e ns.the.text.near.the.most.promin
d0bc0 65 6e 74 20 61 70 70 65 61 72 61 6e 63 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 77 6f 72 6b 27 ent.appearance.of.the......work'
d0be0 73 20 74 69 74 6c 65 2c 20 70 72 65 63 65 64 69 6e 67 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 s.title,.preceding.the.beginning
d0c00 20 6f 66 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 65 20 74 65 78 74 2e 0a 0a 20 20 20 20 20 .of.the.body.of.the.text........
d0c20 41 20 73 65 63 74 69 6f 6e 20 22 45 6e 74 69 74 6c 65 64 20 58 59 5a 22 20 6d 65 61 6e 73 20 61 A.section."Entitled.XYZ".means.a
d0c40 20 6e 61 6d 65 64 20 73 75 62 75 6e 69 74 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 .named.subunit.of.the.Document..
d0c60 20 20 20 20 77 68 6f 73 65 20 74 69 74 6c 65 20 65 69 74 68 65 72 20 69 73 20 70 72 65 63 69 73 ....whose.title.either.is.precis
d0c80 65 6c 79 20 58 59 5a 20 6f 72 20 63 6f 6e 74 61 69 6e 73 20 58 59 5a 20 69 6e 20 70 61 72 65 6e ely.XYZ.or.contains.XYZ.in.paren
d0ca0 74 68 65 73 65 73 0a 20 20 20 20 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 78 74 20 74 68 61 74 20 theses......following.text.that.
d0cc0 74 72 61 6e 73 6c 61 74 65 73 20 58 59 5a 20 69 6e 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 translates.XYZ.in.another.langua
d0ce0 67 65 2e 20 20 28 48 65 72 65 20 58 59 5a 0a 20 20 20 20 20 73 74 61 6e 64 73 20 66 6f 72 20 61 ge...(Here.XYZ......stands.for.a
d0d00 20 73 70 65 63 69 66 69 63 20 73 65 63 74 69 6f 6e 20 6e 61 6d 65 20 6d 65 6e 74 69 6f 6e 65 64 .specific.section.name.mentioned
d0d20 20 62 65 6c 6f 77 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 22 41 63 6b 6e 6f 77 6c 65 64 67 .below,.such.as......"Acknowledg
d0d40 65 6d 65 6e 74 73 22 2c 20 22 44 65 64 69 63 61 74 69 6f 6e 73 22 2c 20 22 45 6e 64 6f 72 73 65 ements",."Dedications",."Endorse
d0d60 6d 65 6e 74 73 22 2c 20 6f 72 20 22 48 69 73 74 6f 72 79 22 2e 29 0a 20 20 20 20 20 54 6f 20 22 ments",.or."History".)......To."
d0d80 50 72 65 73 65 72 76 65 20 74 68 65 20 54 69 74 6c 65 22 20 6f 66 20 73 75 63 68 20 61 20 73 65 Preserve.the.Title".of.such.a.se
d0da0 63 74 69 6f 6e 20 77 68 65 6e 20 79 6f 75 20 6d 6f 64 69 66 79 20 74 68 65 0a 20 20 20 20 20 44 ction.when.you.modify.the......D
d0dc0 6f 63 75 6d 65 6e 74 20 6d 65 61 6e 73 20 74 68 61 74 20 69 74 20 72 65 6d 61 69 6e 73 20 61 20 ocument.means.that.it.remains.a.
d0de0 73 65 63 74 69 6f 6e 20 22 45 6e 74 69 74 6c 65 64 20 58 59 5a 22 20 61 63 63 6f 72 64 69 6e 67 section."Entitled.XYZ".according
d0e00 0a 20 20 20 20 20 74 6f 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 ......to.this.definition........
d0e20 54 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 61 79 20 69 6e 63 6c 75 64 65 20 57 61 72 72 61 6e 74 The.Document.may.include.Warrant
d0e40 79 20 44 69 73 63 6c 61 69 6d 65 72 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6e 6f 74 69 63 65 y.Disclaimers.next.to.the.notice
d0e60 0a 20 20 20 20 20 77 68 69 63 68 20 73 74 61 74 65 73 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 ......which.states.that.this.Lic
d0e80 65 6e 73 65 20 61 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2e 20 20 54 ense.applies.to.the.Document...T
d0ea0 68 65 73 65 0a 20 20 20 20 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 73 20 61 hese......Warranty.Disclaimers.a
d0ec0 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 62 79 20 re.considered.to.be.included.by.
d0ee0 72 65 66 65 72 65 6e 63 65 20 69 6e 0a 20 20 20 20 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 reference.in......this.License,.
d0f00 62 75 74 20 6f 6e 6c 79 20 61 73 20 72 65 67 61 72 64 73 20 64 69 73 63 6c 61 69 6d 69 6e 67 20 but.only.as.regards.disclaiming.
d0f20 77 61 72 72 61 6e 74 69 65 73 3a 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 20 69 6d 70 6c 69 warranties:.any.other......impli
d0f40 63 61 74 69 6f 6e 20 74 68 61 74 20 74 68 65 73 65 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c cation.that.these.Warranty.Discl
d0f60 61 69 6d 65 72 73 20 6d 61 79 20 68 61 76 65 20 69 73 20 76 6f 69 64 20 61 6e 64 0a 20 20 20 20 aimers.may.have.is.void.and.....
d0f80 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 .has.no.effect.on.the.meaning.of
d0fa0 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 32 2e 20 56 45 52 42 41 54 49 4d 20 43 4f .this.License.....2..VERBATIM.CO
d0fc0 50 59 49 4e 47 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 70 79 20 61 6e 64 20 64 69 73 PYING.......You.may.copy.and.dis
d0fe0 74 72 69 62 75 74 65 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 6e 20 61 6e 79 20 6d 65 64 69 tribute.the.Document.in.any.medi
d1000 75 6d 2c 20 65 69 74 68 65 72 0a 20 20 20 20 20 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 20 6f 72 20 um,.either......commercially.or.
d1020 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 noncommercially,.provided.that.t
d1040 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 his.License,.the......copyright.
d1060 6e 6f 74 69 63 65 73 2c 20 61 6e 64 20 74 68 65 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 notices,.and.the.license.notice.
d1080 73 61 79 69 6e 67 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 20 20 20 20 20 61 70 70 6c 69 65 73 saying.this.License......applies
d10a0 20 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 72 65 20 72 65 70 72 6f 64 75 63 65 64 20 .to.the.Document.are.reproduced.
d10c0 69 6e 20 61 6c 6c 20 63 6f 70 69 65 73 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 0a 20 20 20 20 in.all.copies,.and.that.you.....
d10e0 20 61 64 64 20 6e 6f 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 73 20 77 68 61 74 73 6f 65 .add.no.other.conditions.whatsoe
d1100 76 65 72 20 74 6f 20 74 68 6f 73 65 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 ver.to.those.of.this.License...Y
d1120 6f 75 0a 20 20 20 20 20 6d 61 79 20 6e 6f 74 20 75 73 65 20 74 65 63 68 6e 69 63 61 6c 20 6d 65 ou......may.not.use.technical.me
d1140 61 73 75 72 65 73 20 74 6f 20 6f 62 73 74 72 75 63 74 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 74 68 asures.to.obstruct.or.control.th
d1160 65 20 72 65 61 64 69 6e 67 0a 20 20 20 20 20 6f 72 20 66 75 72 74 68 65 72 20 63 6f 70 79 69 6e e.reading......or.further.copyin
d1180 67 20 6f 66 20 74 68 65 20 63 6f 70 69 65 73 20 79 6f 75 20 6d 61 6b 65 20 6f 72 20 64 69 73 74 g.of.the.copies.you.make.or.dist
d11a0 72 69 62 75 74 65 2e 20 20 48 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 79 6f 75 20 6d 61 79 20 61 ribute...However,......you.may.a
d11c0 63 63 65 70 74 20 63 6f 6d 70 65 6e 73 61 74 69 6f 6e 20 69 6e 20 65 78 63 68 61 6e 67 65 20 66 ccept.compensation.in.exchange.f
d11e0 6f 72 20 63 6f 70 69 65 73 2e 20 20 49 66 20 79 6f 75 0a 20 20 20 20 20 64 69 73 74 72 69 62 75 or.copies...If.you......distribu
d1200 74 65 20 61 20 6c 61 72 67 65 20 65 6e 6f 75 67 68 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 70 69 te.a.large.enough.number.of.copi
d1220 65 73 20 79 6f 75 20 6d 75 73 74 20 61 6c 73 6f 20 66 6f 6c 6c 6f 77 20 74 68 65 0a 20 20 20 20 es.you.must.also.follow.the.....
d1240 20 63 6f 6e 64 69 74 69 6f 6e 73 20 69 6e 20 73 65 63 74 69 6f 6e 20 33 2e 0a 0a 20 20 20 20 20 .conditions.in.section.3........
d1260 59 6f 75 20 6d 61 79 20 61 6c 73 6f 20 6c 65 6e 64 20 63 6f 70 69 65 73 2c 20 75 6e 64 65 72 20 You.may.also.lend.copies,.under.
d1280 74 68 65 20 73 61 6d 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 74 61 74 65 64 20 61 62 6f 76 65 the.same.conditions.stated.above
d12a0 2c 0a 20 20 20 20 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 70 75 62 6c 69 63 6c 79 20 64 69 73 70 ,......and.you.may.publicly.disp
d12c0 6c 61 79 20 63 6f 70 69 65 73 2e 0a 0a 20 20 33 2e 20 43 4f 50 59 49 4e 47 20 49 4e 20 51 55 41 lay.copies.....3..COPYING.IN.QUA
d12e0 4e 54 49 54 59 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 20 70 75 62 6c 69 73 68 20 70 72 69 6e 74 NTITY.......If.you.publish.print
d1300 65 64 20 63 6f 70 69 65 73 20 28 6f 72 20 63 6f 70 69 65 73 20 69 6e 20 6d 65 64 69 61 20 74 68 ed.copies.(or.copies.in.media.th
d1320 61 74 20 63 6f 6d 6d 6f 6e 6c 79 0a 20 20 20 20 20 68 61 76 65 20 70 72 69 6e 74 65 64 20 63 6f at.commonly......have.printed.co
d1340 76 65 72 73 29 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 6e 75 6d 62 65 72 69 6e 67 vers).of.the.Document,.numbering
d1360 20 6d 6f 72 65 20 74 68 61 6e 20 31 30 30 2c 20 61 6e 64 0a 20 20 20 20 20 74 68 65 20 44 6f 63 .more.than.100,.and......the.Doc
d1380 75 6d 65 6e 74 27 73 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 72 65 71 75 69 72 65 73 20 ument's.license.notice.requires.
d13a0 43 6f 76 65 72 20 54 65 78 74 73 2c 20 79 6f 75 20 6d 75 73 74 0a 20 20 20 20 20 65 6e 63 6c 6f Cover.Texts,.you.must......enclo
d13c0 73 65 20 74 68 65 20 63 6f 70 69 65 73 20 69 6e 20 63 6f 76 65 72 73 20 74 68 61 74 20 63 61 72 se.the.copies.in.covers.that.car
d13e0 72 79 2c 20 63 6c 65 61 72 6c 79 20 61 6e 64 20 6c 65 67 69 62 6c 79 2c 20 61 6c 6c 0a 20 20 20 ry,.clearly.and.legibly,.all....
d1400 20 20 74 68 65 73 65 20 43 6f 76 65 72 20 54 65 78 74 73 3a 20 46 72 6f 6e 74 2d 43 6f 76 65 72 ..these.Cover.Texts:.Front-Cover
d1420 20 54 65 78 74 73 20 6f 6e 20 74 68 65 20 66 72 6f 6e 74 20 63 6f 76 65 72 2c 20 61 6e 64 0a 20 .Texts.on.the.front.cover,.and..
d1440 20 20 20 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 6e 20 74 68 65 20 62 61 63 6b ....Back-Cover.Texts.on.the.back
d1460 20 63 6f 76 65 72 2e 20 20 42 6f 74 68 20 63 6f 76 65 72 73 20 6d 75 73 74 20 61 6c 73 6f 20 63 .cover...Both.covers.must.also.c
d1480 6c 65 61 72 6c 79 0a 20 20 20 20 20 61 6e 64 20 6c 65 67 69 62 6c 79 20 69 64 65 6e 74 69 66 79 learly......and.legibly.identify
d14a0 20 79 6f 75 20 61 73 20 74 68 65 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 73 65 20 63 .you.as.the.publisher.of.these.c
d14c0 6f 70 69 65 73 2e 20 20 54 68 65 0a 20 20 20 20 20 66 72 6f 6e 74 20 63 6f 76 65 72 20 6d 75 73 opies...The......front.cover.mus
d14e0 74 20 70 72 65 73 65 6e 74 20 74 68 65 20 66 75 6c 6c 20 74 69 74 6c 65 20 77 69 74 68 20 61 6c t.present.the.full.title.with.al
d1500 6c 20 77 6f 72 64 73 20 6f 66 20 74 68 65 20 74 69 74 6c 65 0a 20 20 20 20 20 65 71 75 61 6c 6c l.words.of.the.title......equall
d1520 79 20 70 72 6f 6d 69 6e 65 6e 74 20 61 6e 64 20 76 69 73 69 62 6c 65 2e 20 20 59 6f 75 20 6d 61 y.prominent.and.visible...You.ma
d1540 79 20 61 64 64 20 6f 74 68 65 72 20 6d 61 74 65 72 69 61 6c 20 6f 6e 20 74 68 65 0a 20 20 20 20 y.add.other.material.on.the.....
d1560 20 63 6f 76 65 72 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 2e 20 20 43 6f 70 79 69 6e 67 20 77 69 .covers.in.addition...Copying.wi
d1580 74 68 20 63 68 61 6e 67 65 73 20 6c 69 6d 69 74 65 64 20 74 6f 20 74 68 65 20 63 6f 76 65 72 73 th.changes.limited.to.the.covers
d15a0 2c 20 61 73 0a 20 20 20 20 20 6c 6f 6e 67 20 61 73 20 74 68 65 79 20 70 72 65 73 65 72 76 65 20 ,.as......long.as.they.preserve.
d15c0 74 68 65 20 74 69 74 6c 65 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 6e 64 20 73 61 the.title.of.the.Document.and.sa
d15e0 74 69 73 66 79 20 74 68 65 73 65 0a 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 20 63 61 6e tisfy.these......conditions,.can
d1600 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 .be.treated.as.verbatim.copying.
d1620 69 6e 20 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 in.other.respects........If.the.
d1640 72 65 71 75 69 72 65 64 20 74 65 78 74 73 20 66 6f 72 20 65 69 74 68 65 72 20 63 6f 76 65 72 20 required.texts.for.either.cover.
d1660 61 72 65 20 74 6f 6f 20 76 6f 6c 75 6d 69 6e 6f 75 73 20 74 6f 20 66 69 74 0a 20 20 20 20 20 6c are.too.voluminous.to.fit......l
d1680 65 67 69 62 6c 79 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 75 74 20 74 68 65 20 66 69 72 73 74 egibly,.you.should.put.the.first
d16a0 20 6f 6e 65 73 20 6c 69 73 74 65 64 20 28 61 73 20 6d 61 6e 79 20 61 73 20 66 69 74 0a 20 20 20 .ones.listed.(as.many.as.fit....
d16c0 20 20 72 65 61 73 6f 6e 61 62 6c 79 29 20 6f 6e 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 76 65 ..reasonably).on.the.actual.cove
d16e0 72 2c 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 72 65 73 74 20 6f 6e 74 6f 0a 20 20 r,.and.continue.the.rest.onto...
d1700 20 20 20 61 64 6a 61 63 65 6e 74 20 70 61 67 65 73 2e 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 20 ...adjacent.pages........If.you.
d1720 70 75 62 6c 69 73 68 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 4f 70 61 71 75 65 20 63 6f 70 publish.or.distribute.Opaque.cop
d1740 69 65 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 6e 75 6d 62 65 72 69 ies.of.the.Document......numberi
d1760 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 31 30 30 2c 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 ng.more.than.100,.you.must.eithe
d1780 72 20 69 6e 63 6c 75 64 65 20 61 20 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 0a 20 20 20 r.include.a.machine-readable....
d17a0 20 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 79 20 61 6c 6f 6e 67 20 77 69 74 68 20 65 61 ..Transparent.copy.along.with.ea
d17c0 63 68 20 4f 70 61 71 75 65 20 63 6f 70 79 2c 20 6f 72 20 73 74 61 74 65 20 69 6e 20 6f 72 20 77 ch.Opaque.copy,.or.state.in.or.w
d17e0 69 74 68 0a 20 20 20 20 20 65 61 63 68 20 4f 70 61 71 75 65 20 63 6f 70 79 20 61 20 63 6f 6d 70 ith......each.Opaque.copy.a.comp
d1800 75 74 65 72 2d 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 20 66 72 6f 6d 20 77 68 69 63 68 uter-network.location.from.which
d1820 20 74 68 65 20 67 65 6e 65 72 61 6c 0a 20 20 20 20 20 6e 65 74 77 6f 72 6b 2d 75 73 69 6e 67 20 .the.general......network-using.
d1840 70 75 62 6c 69 63 20 68 61 73 20 61 63 63 65 73 73 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 75 73 public.has.access.to.download.us
d1860 69 6e 67 20 70 75 62 6c 69 63 2d 73 74 61 6e 64 61 72 64 0a 20 20 20 20 20 6e 65 74 77 6f 72 6b ing.public-standard......network
d1880 20 70 72 6f 74 6f 63 6f 6c 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 54 72 61 6e 73 70 61 72 65 6e .protocols.a.complete.Transparen
d18a0 74 20 63 6f 70 79 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 66 72 65 65 0a 20 20 20 t.copy.of.the.Document,.free....
d18c0 20 20 6f 66 20 61 64 64 65 64 20 6d 61 74 65 72 69 61 6c 2e 20 20 49 66 20 79 6f 75 20 75 73 65 ..of.added.material...If.you.use
d18e0 20 74 68 65 20 6c 61 74 74 65 72 20 6f 70 74 69 6f 6e 2c 20 79 6f 75 20 6d 75 73 74 20 74 61 6b .the.latter.option,.you.must.tak
d1900 65 0a 20 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 79 20 70 72 75 64 65 6e 74 20 73 74 65 70 73 2c e......reasonably.prudent.steps,
d1920 20 77 68 65 6e 20 79 6f 75 20 62 65 67 69 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 66 20 .when.you.begin.distribution.of.
d1940 4f 70 61 71 75 65 0a 20 20 20 20 20 63 6f 70 69 65 73 20 69 6e 20 71 75 61 6e 74 69 74 79 2c 20 Opaque......copies.in.quantity,.
d1960 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 69 73 20 54 72 61 6e 73 70 61 72 65 6e 74 20 to.ensure.that.this.Transparent.
d1980 63 6f 70 79 20 77 69 6c 6c 0a 20 20 20 20 20 72 65 6d 61 69 6e 20 74 68 75 73 20 61 63 63 65 73 copy.will......remain.thus.acces
d19a0 73 69 62 6c 65 20 61 74 20 74 68 65 20 73 74 61 74 65 64 20 6c 6f 63 61 74 69 6f 6e 20 75 6e 74 sible.at.the.stated.location.unt
d19c0 69 6c 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 0a 20 20 20 20 20 79 65 61 72 20 61 66 74 65 72 20 il.at.least.one......year.after.
d19e0 74 68 65 20 6c 61 73 74 20 74 69 6d 65 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 20 the.last.time.you.distribute.an.
d1a00 4f 70 61 71 75 65 20 63 6f 70 79 20 28 64 69 72 65 63 74 6c 79 20 6f 72 0a 20 20 20 20 20 74 68 Opaque.copy.(directly.or......th
d1a20 72 6f 75 67 68 20 79 6f 75 72 20 61 67 65 6e 74 73 20 6f 72 20 72 65 74 61 69 6c 65 72 73 29 20 rough.your.agents.or.retailers).
d1a40 6f 66 20 74 68 61 74 20 65 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2e 0a 0a of.that.edition.to.the.public...
d1a60 20 20 20 20 20 49 74 20 69 73 20 72 65 71 75 65 73 74 65 64 2c 20 62 75 74 20 6e 6f 74 20 72 65 .....It.is.requested,.but.not.re
d1a80 71 75 69 72 65 64 2c 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 74 61 63 74 20 74 68 65 20 61 75 74 quired,.that.you.contact.the.aut
d1aa0 68 6f 72 73 20 6f 66 0a 20 20 20 20 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 77 65 6c 6c 20 62 hors.of......the.Document.well.b
d1ac0 65 66 6f 72 65 20 72 65 64 69 73 74 72 69 62 75 74 69 6e 67 20 61 6e 79 20 6c 61 72 67 65 20 6e efore.redistributing.any.large.n
d1ae0 75 6d 62 65 72 20 6f 66 20 63 6f 70 69 65 73 2c 0a 20 20 20 20 20 74 6f 20 67 69 76 65 20 74 68 umber.of.copies,......to.give.th
d1b00 65 6d 20 61 20 63 68 61 6e 63 65 20 74 6f 20 70 72 6f 76 69 64 65 20 79 6f 75 20 77 69 74 68 20 em.a.chance.to.provide.you.with.
d1b20 61 6e 20 75 70 64 61 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 0a 20 20 20 20 20 44 an.updated.version.of.the......D
d1b40 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 34 2e 20 4d 4f 44 49 46 49 43 41 54 49 4f 4e 53 0a 0a 20 20 ocument.....4..MODIFICATIONS....
d1b60 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 61 ...You.may.copy.and.distribute.a
d1b80 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e .Modified.Version.of.the.Documen
d1ba0 74 0a 20 20 20 20 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 73 t......under.the.conditions.of.s
d1bc0 65 63 74 69 6f 6e 73 20 32 20 61 6e 64 20 33 20 61 62 6f 76 65 2c 20 70 72 6f 76 69 64 65 64 20 ections.2.and.3.above,.provided.
d1be0 74 68 61 74 20 79 6f 75 0a 20 20 20 20 20 72 65 6c 65 61 73 65 20 74 68 65 20 4d 6f 64 69 66 69 that.you......release.the.Modifi
d1c00 65 64 20 56 65 72 73 69 6f 6e 20 75 6e 64 65 72 20 70 72 65 63 69 73 65 6c 79 20 74 68 69 73 20 ed.Version.under.precisely.this.
d1c20 4c 69 63 65 6e 73 65 2c 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 4d 6f 64 69 66 69 65 64 20 License,.with.the......Modified.
d1c40 56 65 72 73 69 6f 6e 20 66 69 6c 6c 69 6e 67 20 74 68 65 20 72 6f 6c 65 20 6f 66 20 74 68 65 20 Version.filling.the.role.of.the.
d1c60 44 6f 63 75 6d 65 6e 74 2c 20 74 68 75 73 20 6c 69 63 65 6e 73 69 6e 67 0a 20 20 20 20 20 64 69 Document,.thus.licensing......di
d1c80 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 stribution.and.modification.of.t
d1ca0 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 74 6f 20 77 68 6f 65 76 65 72 0a 20 he.Modified.Version.to.whoever..
d1cc0 20 20 20 20 70 6f 73 73 65 73 73 65 73 20 61 20 63 6f 70 79 20 6f 66 20 69 74 2e 20 20 49 6e 20 ....possesses.a.copy.of.it...In.
d1ce0 61 64 64 69 74 69 6f 6e 2c 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 74 68 65 73 65 20 74 68 69 6e addition,.you.must.do.these.thin
d1d00 67 73 20 69 6e 0a 20 20 20 20 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 3a gs.in......the.Modified.Version:
d1d20 0a 0a 20 20 20 20 20 20 20 41 2e 20 55 73 65 20 69 6e 20 74 68 65 20 54 69 74 6c 65 20 50 61 67 .........A..Use.in.the.Title.Pag
d1d40 65 20 28 61 6e 64 20 6f 6e 20 74 68 65 20 63 6f 76 65 72 73 2c 20 69 66 20 61 6e 79 29 20 61 20 e.(and.on.the.covers,.if.any).a.
d1d60 74 69 74 6c 65 0a 20 20 20 20 20 20 20 20 20 20 64 69 73 74 69 6e 63 74 20 66 72 6f 6d 20 74 68 title...........distinct.from.th
d1d80 61 74 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 66 72 6f 6d 20 74 68 6f at.of.the.Document,.and.from.tho
d1da0 73 65 20 6f 66 20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e se.of.previous...........version
d1dc0 73 20 28 77 68 69 63 68 20 73 68 6f 75 6c 64 2c 20 69 66 20 74 68 65 72 65 20 77 65 72 65 20 61 s.(which.should,.if.there.were.a
d1de0 6e 79 2c 20 62 65 20 6c 69 73 74 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 48 ny,.be.listed.in.the...........H
d1e00 69 73 74 6f 72 79 20 73 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 29 2e istory.section.of.the.Document).
d1e20 20 20 59 6f 75 20 6d 61 79 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 74 69 74 6c 65 0a 20 20 20 ..You.may.use.the.same.title....
d1e40 20 20 20 20 20 20 20 61 73 20 61 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 20 69 66 20 .......as.a.previous.version.if.
d1e60 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 61 74 0a 20 the.original.publisher.of.that..
d1e80 20 20 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e 20 67 69 76 65 73 20 70 65 72 6d 69 73 73 69 6f .........version.gives.permissio
d1ea0 6e 2e 0a 0a 20 20 20 20 20 20 20 42 2e 20 4c 69 73 74 20 6f 6e 20 74 68 65 20 54 69 74 6c 65 20 n..........B..List.on.the.Title.
d1ec0 50 61 67 65 2c 20 61 73 20 61 75 74 68 6f 72 73 2c 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 70 65 Page,.as.authors,.one.or.more.pe
d1ee0 72 73 6f 6e 73 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 74 69 74 69 65 73 20 72 65 73 70 rsons.or...........entities.resp
d1f00 6f 6e 73 69 62 6c 65 20 66 6f 72 20 61 75 74 68 6f 72 73 68 69 70 20 6f 66 20 74 68 65 20 6d 6f onsible.for.authorship.of.the.mo
d1f20 64 69 66 69 63 61 74 69 6f 6e 73 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 20 4d 6f 64 difications.in...........the.Mod
d1f40 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2c 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 61 74 20 ified.Version,.together.with.at.
d1f60 6c 65 61 73 74 20 66 69 76 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 70 72 69 6e least.five.of.the...........prin
d1f80 63 69 70 61 6c 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 28 61 cipal.authors.of.the.Document.(a
d1fa0 6c 6c 20 6f 66 20 69 74 73 20 70 72 69 6e 63 69 70 61 6c 0a 20 20 20 20 20 20 20 20 20 20 61 75 ll.of.its.principal...........au
d1fc0 74 68 6f 72 73 2c 20 69 66 20 69 74 20 68 61 73 20 66 65 77 65 72 20 74 68 61 6e 20 66 69 76 65 thors,.if.it.has.fewer.than.five
d1fe0 29 2c 20 75 6e 6c 65 73 73 20 74 68 65 79 20 72 65 6c 65 61 73 65 20 79 6f 75 0a 20 20 20 20 20 ),.unless.they.release.you......
d2000 20 20 20 20 20 66 72 6f 6d 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 0a 0a 20 20 20 .....from.this.requirement......
d2020 20 20 20 20 43 2e 20 53 74 61 74 65 20 6f 6e 20 74 68 65 20 54 69 74 6c 65 20 70 61 67 65 20 74 ....C..State.on.the.Title.page.t
d2040 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 0a he.name.of.the.publisher.of.the.
d2060 20 20 20 20 20 20 20 20 20 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2c 20 61 73 20 74 ..........Modified.Version,.as.t
d2080 68 65 20 70 75 62 6c 69 73 68 65 72 2e 0a 0a 20 20 20 20 20 20 20 44 2e 20 50 72 65 73 65 72 76 he.publisher..........D..Preserv
d20a0 65 20 61 6c 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 20 6f 66 20 74 e.all.the.copyright.notices.of.t
d20c0 68 65 20 44 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 20 20 45 2e 20 41 64 64 20 61 6e 20 61 he.Document..........E..Add.an.a
d20e0 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 66 6f 72 20 ppropriate.copyright.notice.for.
d2100 79 6f 75 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 61 64 6a your.modifications...........adj
d2120 61 63 65 6e 74 20 74 6f 20 74 68 65 20 6f 74 68 65 72 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 acent.to.the.other.copyright.not
d2140 69 63 65 73 2e 0a 0a 20 20 20 20 20 20 20 46 2e 20 49 6e 63 6c 75 64 65 2c 20 69 6d 6d 65 64 69 ices..........F..Include,.immedi
d2160 61 74 65 6c 79 20 61 66 74 65 72 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 ately.after.the.copyright.notice
d2180 73 2c 20 61 20 6c 69 63 65 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 6e 6f 74 69 63 65 20 67 69 s,.a.license...........notice.gi
d21a0 76 69 6e 67 20 74 68 65 20 70 75 62 6c 69 63 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 75 73 ving.the.public.permission.to.us
d21c0 65 20 74 68 65 20 4d 6f 64 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 56 65 72 73 69 6f 6e e.the.Modified...........Version
d21e0 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 .under.the.terms.of.this.License
d2200 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 73 68 6f 77 6e 20 69 6e 0a 20 20 20 20 20 20 20 20 20 ,.in.the.form.shown.in..........
d2220 20 74 68 65 20 41 64 64 65 6e 64 75 6d 20 62 65 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 47 2e 20 .the.Addendum.below..........G..
d2240 50 72 65 73 65 72 76 65 20 69 6e 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 Preserve.in.that.license.notice.
d2260 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 73 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 0a 20 20 20 20 the.full.lists.of.Invariant.....
d2280 20 20 20 20 20 20 53 65 63 74 69 6f 6e 73 20 61 6e 64 20 72 65 71 75 69 72 65 64 20 43 6f 76 65 ......Sections.and.required.Cove
d22a0 72 20 54 65 78 74 73 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 27 73 0a r.Texts.given.in.the.Document's.
d22c0 20 20 20 20 20 20 20 20 20 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 20 20 20 ..........license.notice........
d22e0 20 20 48 2e 20 49 6e 63 6c 75 64 65 20 61 6e 20 75 6e 61 6c 74 65 72 65 64 20 63 6f 70 79 20 6f ..H..Include.an.unaltered.copy.o
d2300 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 20 20 49 2e 20 50 72 65 73 65 f.this.License..........I..Prese
d2320 72 76 65 20 74 68 65 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 22 48 69 73 74 6f 72 rve.the.section.Entitled."Histor
d2340 79 22 2c 20 50 72 65 73 65 72 76 65 20 69 74 73 20 54 69 74 6c 65 2c 0a 20 20 20 20 20 20 20 20 y",.Preserve.its.Title,.........
d2360 20 20 61 6e 64 20 61 64 64 20 74 6f 20 69 74 20 61 6e 20 69 74 65 6d 20 73 74 61 74 69 6e 67 20 ..and.add.to.it.an.item.stating.
d2380 61 74 20 6c 65 61 73 74 20 74 68 65 20 74 69 74 6c 65 2c 20 79 65 61 72 2c 20 6e 65 77 0a 20 20 at.least.the.title,.year,.new...
d23a0 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 2c 20 61 6e 64 20 70 75 62 6c 69 73 68 65 72 20 6f ........authors,.and.publisher.o
d23c0 66 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 61 73 20 67 69 76 65 6e 20 f.the.Modified.Version.as.given.
d23e0 6f 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 54 69 74 6c 65 20 50 61 67 65 2e 20 20 49 66 on.the...........Title.Page...If
d2400 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 22 48 .there.is.no.section.Entitled."H
d2420 69 73 74 6f 72 79 22 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e istory".in.the...........Documen
d2440 74 2c 20 63 72 65 61 74 65 20 6f 6e 65 20 73 74 61 74 69 6e 67 20 74 68 65 20 74 69 74 6c 65 2c t,.create.one.stating.the.title,
d2460 20 79 65 61 72 2c 20 61 75 74 68 6f 72 73 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 70 75 .year,.authors,.and...........pu
d2480 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 73 20 67 69 76 65 6e blisher.of.the.Document.as.given
d24a0 20 6f 6e 20 69 74 73 20 54 69 74 6c 65 20 50 61 67 65 2c 20 74 68 65 6e 20 61 64 64 0a 20 20 20 .on.its.Title.Page,.then.add....
d24c0 20 20 20 20 20 20 20 61 6e 20 69 74 65 6d 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 4d 6f .......an.item.describing.the.Mo
d24e0 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 61 73 20 73 74 61 74 65 64 20 69 6e 20 74 68 65 0a dified.Version.as.stated.in.the.
d2500 20 20 20 20 20 20 20 20 20 20 70 72 65 76 69 6f 75 73 20 73 65 6e 74 65 6e 63 65 2e 0a 0a 20 20 ..........previous.sentence.....
d2520 20 20 20 20 20 4a 2e 20 50 72 65 73 65 72 76 65 20 74 68 65 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 .....J..Preserve.the.network.loc
d2540 61 74 69 6f 6e 2c 20 69 66 20 61 6e 79 2c 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 44 6f 63 75 ation,.if.any,.given.in.the.Docu
d2560 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 70 75 62 6c 69 63 20 61 63 63 65 73 73 ment...........for.public.access
d2580 20 74 6f 20 61 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 79 20 6f 66 20 74 68 65 20 44 6f .to.a.Transparent.copy.of.the.Do
d25a0 63 75 6d 65 6e 74 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 6c 69 6b 65 77 69 73 65 20 74 cument,.and...........likewise.t
d25c0 68 65 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 73 20 67 69 76 65 6e 20 69 6e 20 74 68 he.network.locations.given.in.th
d25e0 65 20 44 6f 63 75 6d 65 6e 74 20 66 6f 72 0a 20 20 20 20 20 20 20 20 20 20 70 72 65 76 69 6f 75 e.Document.for...........previou
d2600 73 20 76 65 72 73 69 6f 6e 73 20 69 74 20 77 61 73 20 62 61 73 65 64 20 6f 6e 2e 20 20 54 68 65 s.versions.it.was.based.on...The
d2620 73 65 20 6d 61 79 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 se.may.be.placed.in.the.........
d2640 20 20 22 48 69 73 74 6f 72 79 22 20 73 65 63 74 69 6f 6e 2e 20 20 59 6f 75 20 6d 61 79 20 6f 6d .."History".section...You.may.om
d2660 69 74 20 61 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 20 66 6f 72 20 61 20 77 6f 72 6b it.a.network.location.for.a.work
d2680 0a 20 20 20 20 20 20 20 20 20 20 74 68 61 74 20 77 61 73 20 70 75 62 6c 69 73 68 65 64 20 61 74 ...........that.was.published.at
d26a0 20 6c 65 61 73 74 20 66 6f 75 72 20 79 65 61 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 44 6f 63 .least.four.years.before.the.Doc
d26c0 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 69 74 73 65 6c 66 2c 20 6f 72 20 69 66 20 74 68 ument...........itself,.or.if.th
d26e0 65 20 6f 72 69 67 69 6e 61 6c 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 20 76 65 72 73 e.original.publisher.of.the.vers
d2700 69 6f 6e 20 69 74 20 72 65 66 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 67 69 76 65 73 ion.it.refers...........to.gives
d2720 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 20 20 4b 2e 20 46 6f 72 20 61 6e 79 20 .permission..........K..For.any.
d2740 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 22 41 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e section.Entitled."Acknowledgemen
d2760 74 73 22 20 6f 72 20 22 44 65 64 69 63 61 74 69 6f 6e 73 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ts".or."Dedications",...........
d2780 50 72 65 73 65 72 76 65 20 74 68 65 20 54 69 74 6c 65 20 6f 66 20 74 68 65 20 73 65 63 74 69 6f Preserve.the.Title.of.the.sectio
d27a0 6e 2c 20 61 6e 64 20 70 72 65 73 65 72 76 65 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e 0a 20 n,.and.preserve.in.the.section..
d27c0 20 20 20 20 20 20 20 20 20 61 6c 6c 20 74 68 65 20 73 75 62 73 74 61 6e 63 65 20 61 6e 64 20 74 .........all.the.substance.and.t
d27e0 6f 6e 65 20 6f 66 20 65 61 63 68 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 0a 20 one.of.each.of.the.contributor..
d2800 20 20 20 20 20 20 20 20 20 61 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 20 61 6e 64 2f 6f 72 .........acknowledgements.and/or
d2820 20 64 65 64 69 63 61 74 69 6f 6e 73 20 67 69 76 65 6e 20 74 68 65 72 65 69 6e 2e 0a 0a 20 20 20 .dedications.given.therein......
d2840 20 20 20 20 4c 2e 20 50 72 65 73 65 72 76 65 20 61 6c 6c 20 74 68 65 20 49 6e 76 61 72 69 61 6e ....L..Preserve.all.the.Invarian
d2860 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 75 6e 61 6c t.Sections.of.the.Document,.unal
d2880 74 65 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 69 6e 20 74 68 65 69 72 20 74 65 78 74 20 61 6e tered...........in.their.text.an
d28a0 64 20 69 6e 20 74 68 65 69 72 20 74 69 74 6c 65 73 2e 20 20 53 65 63 74 69 6f 6e 20 6e 75 6d 62 d.in.their.titles...Section.numb
d28c0 65 72 73 20 6f 72 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 65 71 75 69 76 61 6c 65 6e 74 20 ers.or.the...........equivalent.
d28e0 61 72 65 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 65 64 20 70 61 72 74 20 6f 66 20 74 68 65 20 73 are.not.considered.part.of.the.s
d2900 65 63 74 69 6f 6e 20 74 69 74 6c 65 73 2e 0a 0a 20 20 20 20 20 20 20 4d 2e 20 44 65 6c 65 74 65 ection.titles..........M..Delete
d2920 20 61 6e 79 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 22 45 6e 64 6f 72 73 65 6d 65 .any.section.Entitled."Endorseme
d2940 6e 74 73 22 2e 20 20 53 75 63 68 20 61 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 nts"...Such.a.section...........
d2960 6d 61 79 20 6e 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 4d 6f 64 69 66 may.not.be.included.in.the.Modif
d2980 69 65 64 20 56 65 72 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 20 20 4e 2e 20 44 6f 20 6e 6f 74 20 72 ied.Version..........N..Do.not.r
d29a0 65 74 69 74 6c 65 20 61 6e 79 20 65 78 69 73 74 69 6e 67 20 73 65 63 74 69 6f 6e 20 74 6f 20 62 etitle.any.existing.section.to.b
d29c0 65 20 45 6e 74 69 74 6c 65 64 0a 20 20 20 20 20 20 20 20 20 20 22 45 6e 64 6f 72 73 65 6d 65 6e e.Entitled..........."Endorsemen
d29e0 74 73 22 20 6f 72 20 74 6f 20 63 6f 6e 66 6c 69 63 74 20 69 6e 20 74 69 74 6c 65 20 77 69 74 68 ts".or.to.conflict.in.title.with
d2a00 20 61 6e 79 20 49 6e 76 61 72 69 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 53 65 63 74 69 6f 6e .any.Invariant...........Section
d2a20 2e 0a 0a 20 20 20 20 20 20 20 4f 2e 20 50 72 65 73 65 72 76 65 20 61 6e 79 20 57 61 72 72 61 6e ..........O..Preserve.any.Warran
d2a40 74 79 20 44 69 73 63 6c 61 69 6d 65 72 73 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 4d 6f 64 ty.Disclaimers........If.the.Mod
d2a60 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 6e 65 77 20 66 72 6f 6e 74 ified.Version.includes.new.front
d2a80 2d 6d 61 74 74 65 72 20 73 65 63 74 69 6f 6e 73 20 6f 72 0a 20 20 20 20 20 61 70 70 65 6e 64 69 -matter.sections.or......appendi
d2aa0 63 65 73 20 74 68 61 74 20 71 75 61 6c 69 66 79 20 61 73 20 53 65 63 6f 6e 64 61 72 79 20 53 65 ces.that.qualify.as.Secondary.Se
d2ac0 63 74 69 6f 6e 73 20 61 6e 64 20 63 6f 6e 74 61 69 6e 20 6e 6f 0a 20 20 20 20 20 6d 61 74 65 72 ctions.and.contain.no......mater
d2ae0 69 61 6c 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 79 6f ial.copied.from.the.Document,.yo
d2b00 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 20 64 65 73 69 67 6e 61 74 65 0a 20 u.may.at.your.option.designate..
d2b20 20 20 20 20 73 6f 6d 65 20 6f 72 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 73 65 63 74 69 6f 6e ....some.or.all.of.these.section
d2b40 73 20 61 73 20 69 6e 76 61 72 69 61 6e 74 2e 20 20 54 6f 20 64 6f 20 74 68 69 73 2c 20 61 64 64 s.as.invariant...To.do.this,.add
d2b60 20 74 68 65 69 72 0a 20 20 20 20 20 74 69 74 6c 65 73 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f .their......titles.to.the.list.o
d2b80 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 4d 6f 64 69 f.Invariant.Sections.in.the.Modi
d2ba0 66 69 65 64 20 56 65 72 73 69 6f 6e 27 73 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 fied.Version's......license.noti
d2bc0 63 65 2e 20 20 54 68 65 73 65 20 74 69 74 6c 65 73 20 6d 75 73 74 20 62 65 20 64 69 73 74 69 6e ce...These.titles.must.be.distin
d2be0 63 74 20 66 72 6f 6d 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 20 73 65 63 74 69 6f 6e 20 74 ct.from.any.other......section.t
d2c00 69 74 6c 65 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 61 64 64 20 61 20 73 65 63 74 69 itles........You.may.add.a.secti
d2c20 6f 6e 20 45 6e 74 69 74 6c 65 64 20 22 45 6e 64 6f 72 73 65 6d 65 6e 74 73 22 2c 20 70 72 6f 76 on.Entitled."Endorsements",.prov
d2c40 69 64 65 64 20 69 74 20 63 6f 6e 74 61 69 6e 73 0a 20 20 20 20 20 6e 6f 74 68 69 6e 67 20 62 75 ided.it.contains......nothing.bu
d2c60 74 20 65 6e 64 6f 72 73 65 6d 65 6e 74 73 20 6f 66 20 79 6f 75 72 20 4d 6f 64 69 66 69 65 64 20 t.endorsements.of.your.Modified.
d2c80 56 65 72 73 69 6f 6e 20 62 79 20 76 61 72 69 6f 75 73 0a 20 20 20 20 20 70 61 72 74 69 65 73 2d Version.by.various......parties-
d2ca0 2d 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 73 74 61 74 65 6d 65 6e 74 73 20 6f 66 20 70 65 65 72 -for.example,.statements.of.peer
d2cc0 20 72 65 76 69 65 77 20 6f 72 20 74 68 61 74 20 74 68 65 20 74 65 78 74 0a 20 20 20 20 20 68 61 .review.or.that.the.text......ha
d2ce0 73 20 62 65 65 6e 20 61 70 70 72 6f 76 65 64 20 62 79 20 61 6e 20 6f 72 67 61 6e 69 7a 61 74 69 s.been.approved.by.an.organizati
d2d00 6f 6e 20 61 73 20 74 68 65 20 61 75 74 68 6f 72 69 74 61 74 69 76 65 0a 20 20 20 20 20 64 65 66 on.as.the.authoritative......def
d2d20 69 6e 69 74 69 6f 6e 20 6f 66 20 61 20 73 74 61 6e 64 61 72 64 2e 0a 0a 20 20 20 20 20 59 6f 75 inition.of.a.standard........You
d2d40 20 6d 61 79 20 61 64 64 20 61 20 70 61 73 73 61 67 65 20 6f 66 20 75 70 20 74 6f 20 66 69 76 65 .may.add.a.passage.of.up.to.five
d2d60 20 77 6f 72 64 73 20 61 73 20 61 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 2c 0a 20 20 .words.as.a.Front-Cover.Text,...
d2d80 20 20 20 61 6e 64 20 61 20 70 61 73 73 61 67 65 20 6f 66 20 75 70 20 74 6f 20 32 35 20 77 6f 72 ...and.a.passage.of.up.to.25.wor
d2da0 64 73 20 61 73 20 61 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 2c 20 74 6f 20 74 68 65 20 ds.as.a.Back-Cover.Text,.to.the.
d2dc0 65 6e 64 20 6f 66 0a 20 20 20 20 20 74 68 65 20 6c 69 73 74 20 6f 66 20 43 6f 76 65 72 20 54 65 end.of......the.list.of.Cover.Te
d2de0 78 74 73 20 69 6e 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 20 20 4f 6e xts.in.the.Modified.Version...On
d2e00 6c 79 20 6f 6e 65 20 70 61 73 73 61 67 65 0a 20 20 20 20 20 6f 66 20 46 72 6f 6e 74 2d 43 6f 76 ly.one.passage......of.Front-Cov
d2e20 65 72 20 54 65 78 74 20 61 6e 64 20 6f 6e 65 20 6f 66 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 er.Text.and.one.of.Back-Cover.Te
d2e40 78 74 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 62 79 20 28 6f 72 0a 20 20 20 20 20 74 68 72 6f xt.may.be.added.by.(or......thro
d2e60 75 67 68 20 61 72 72 61 6e 67 65 6d 65 6e 74 73 20 6d 61 64 65 20 62 79 29 20 61 6e 79 20 6f 6e ugh.arrangements.made.by).any.on
d2e80 65 20 65 6e 74 69 74 79 2e 20 20 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 e.entity...If.the.Document......
d2ea0 61 6c 72 65 61 64 79 20 69 6e 63 6c 75 64 65 73 20 61 20 63 6f 76 65 72 20 74 65 78 74 20 66 6f already.includes.a.cover.text.fo
d2ec0 72 20 74 68 65 20 73 61 6d 65 20 63 6f 76 65 72 2c 20 70 72 65 76 69 6f 75 73 6c 79 20 61 64 64 r.the.same.cover,.previously.add
d2ee0 65 64 0a 20 20 20 20 20 62 79 20 79 6f 75 20 6f 72 20 62 79 20 61 72 72 61 6e 67 65 6d 65 6e 74 ed......by.you.or.by.arrangement
d2f00 20 6d 61 64 65 20 62 79 20 74 68 65 20 73 61 6d 65 20 65 6e 74 69 74 79 20 79 6f 75 20 61 72 65 .made.by.the.same.entity.you.are
d2f20 20 61 63 74 69 6e 67 20 6f 6e 0a 20 20 20 20 20 62 65 68 61 6c 66 20 6f 66 2c 20 79 6f 75 20 6d .acting.on......behalf.of,.you.m
d2f40 61 79 20 6e 6f 74 20 61 64 64 20 61 6e 6f 74 68 65 72 3b 20 62 75 74 20 79 6f 75 20 6d 61 79 20 ay.not.add.another;.but.you.may.
d2f60 72 65 70 6c 61 63 65 20 74 68 65 20 6f 6c 64 0a 20 20 20 20 20 6f 6e 65 2c 20 6f 6e 20 65 78 70 replace.the.old......one,.on.exp
d2f80 6c 69 63 69 74 20 70 65 72 6d 69 73 73 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f licit.permission.from.the.previo
d2fa0 75 73 20 70 75 62 6c 69 73 68 65 72 20 74 68 61 74 20 61 64 64 65 64 0a 20 20 20 20 20 74 68 65 us.publisher.that.added......the
d2fc0 20 6f 6c 64 20 6f 6e 65 2e 0a 0a 20 20 20 20 20 54 68 65 20 61 75 74 68 6f 72 28 73 29 20 61 6e .old.one........The.author(s).an
d2fe0 64 20 70 75 62 6c 69 73 68 65 72 28 73 29 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 64 d.publisher(s).of.the.Document.d
d3000 6f 20 6e 6f 74 20 62 79 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 20 67 69 76 65 20 o.not.by.this......License.give.
d3020 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 75 73 65 20 74 68 65 69 72 20 6e 61 6d 65 73 20 66 6f permission.to.use.their.names.fo
d3040 72 20 70 75 62 6c 69 63 69 74 79 20 66 6f 72 20 6f 72 20 74 6f 0a 20 20 20 20 20 61 73 73 65 72 r.publicity.for.or.to......asser
d3060 74 20 6f 72 20 69 6d 70 6c 79 20 65 6e 64 6f 72 73 65 6d 65 6e 74 20 6f 66 20 61 6e 79 20 4d 6f t.or.imply.endorsement.of.any.Mo
d3080 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 0a 0a 20 20 35 2e 20 43 4f 4d 42 49 4e 49 4e 47 20 dified.Version.....5..COMBINING.
d30a0 44 4f 43 55 4d 45 4e 54 53 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6d 62 69 6e 65 20 DOCUMENTS.......You.may.combine.
d30c0 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 77 69 74 68 20 6f 74 68 65 72 20 64 6f 63 75 6d 65 6e 74 the.Document.with.other.document
d30e0 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 0a 20 20 20 20 20 74 68 69 73 20 4c 69 63 65 6e s.released.under......this.Licen
d3100 73 65 2c 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 64 65 66 69 6e 65 64 20 69 6e 20 73 se,.under.the.terms.defined.in.s
d3120 65 63 74 69 6f 6e 20 34 20 61 62 6f 76 65 20 66 6f 72 0a 20 20 20 20 20 6d 6f 64 69 66 69 65 64 ection.4.above.for......modified
d3140 20 76 65 72 73 69 6f 6e 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 69 6e 63 .versions,.provided.that.you.inc
d3160 6c 75 64 65 20 69 6e 20 74 68 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 61 6c 6c 0a 20 20 20 20 lude.in.the.combination.all.....
d3180 20 6f 66 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 61 6c .of.the.Invariant.Sections.of.al
d31a0 6c 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 64 6f 63 75 6d 65 6e 74 73 2c 0a 20 20 20 l.of.the.original.documents,....
d31c0 20 20 75 6e 6d 6f 64 69 66 69 65 64 2c 20 61 6e 64 20 6c 69 73 74 20 74 68 65 6d 20 61 6c 6c 20 ..unmodified,.and.list.them.all.
d31e0 61 73 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 79 6f 75 72 0a 20 20 as.Invariant.Sections.of.your...
d3200 20 20 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 20 69 6e 20 69 74 73 20 6c 69 63 65 6e 73 65 20 ...combined.work.in.its.license.
d3220 6e 6f 74 69 63 65 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 20 70 72 65 73 65 72 76 65 20 61 6c notice,.and.that.you.preserve.al
d3240 6c 0a 20 20 20 20 20 74 68 65 69 72 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 l......their.Warranty.Disclaimer
d3260 73 2e 0a 0a 20 20 20 20 20 54 68 65 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 20 6e 65 65 64 20 s........The.combined.work.need.
d3280 6f 6e 6c 79 20 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 only.contain.one.copy.of.this.Li
d32a0 63 65 6e 73 65 2c 20 61 6e 64 0a 20 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 69 64 65 6e 74 69 63 cense,.and......multiple.identic
d32c0 61 6c 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6d 61 79 20 62 65 20 72 65 70 al.Invariant.Sections.may.be.rep
d32e0 6c 61 63 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 20 63 6f 70 79 2e 20 20 laced.with.a.single......copy...
d3300 49 66 20 74 68 65 72 65 20 61 72 65 20 6d 75 6c 74 69 70 6c 65 20 49 6e 76 61 72 69 61 6e 74 20 If.there.are.multiple.Invariant.
d3320 53 65 63 74 69 6f 6e 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 Sections.with.the.same.name.....
d3340 20 62 75 74 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6e 74 65 6e 74 73 2c 20 6d 61 6b 65 20 74 68 .but.different.contents,.make.th
d3360 65 20 74 69 74 6c 65 20 6f 66 20 65 61 63 68 20 73 75 63 68 20 73 65 63 74 69 6f 6e 20 75 6e 69 e.title.of.each.such.section.uni
d3380 71 75 65 0a 20 20 20 20 20 62 79 20 61 64 64 69 6e 67 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 que......by.adding.at.the.end.of
d33a0 20 69 74 2c 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2c 20 74 68 65 20 6e 61 6d 65 20 6f 66 .it,.in.parentheses,.the.name.of
d33c0 20 74 68 65 0a 20 20 20 20 20 6f 72 69 67 69 6e 61 6c 20 61 75 74 68 6f 72 20 6f 72 20 70 75 62 .the......original.author.or.pub
d33e0 6c 69 73 68 65 72 20 6f 66 20 74 68 61 74 20 73 65 63 74 69 6f 6e 20 69 66 20 6b 6e 6f 77 6e 2c lisher.of.that.section.if.known,
d3400 20 6f 72 20 65 6c 73 65 20 61 0a 20 20 20 20 20 75 6e 69 71 75 65 20 6e 75 6d 62 65 72 2e 20 20 .or.else.a......unique.number...
d3420 4d 61 6b 65 20 74 68 65 20 73 61 6d 65 20 61 64 6a 75 73 74 6d 65 6e 74 20 74 6f 20 74 68 65 20 Make.the.same.adjustment.to.the.
d3440 73 65 63 74 69 6f 6e 20 74 69 74 6c 65 73 20 69 6e 0a 20 20 20 20 20 74 68 65 20 6c 69 73 74 20 section.titles.in......the.list.
d3460 6f 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c 69 63 of.Invariant.Sections.in.the.lic
d3480 65 6e 73 65 20 6e 6f 74 69 63 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 63 6f 6d 62 69 6e 65 64 ense.notice.of.the......combined
d34a0 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 49 6e 20 74 68 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2c .work........In.the.combination,
d34c0 20 79 6f 75 20 6d 75 73 74 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 20 45 .you.must.combine.any.sections.E
d34e0 6e 74 69 74 6c 65 64 0a 20 20 20 20 20 22 48 69 73 74 6f 72 79 22 20 69 6e 20 74 68 65 20 76 61 ntitled......"History".in.the.va
d3500 72 69 6f 75 73 20 6f 72 69 67 69 6e 61 6c 20 64 6f 63 75 6d 65 6e 74 73 2c 20 66 6f 72 6d 69 6e rious.original.documents,.formin
d3520 67 20 6f 6e 65 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 45 6e 74 69 74 6c 65 64 20 22 48 69 73 g.one.section......Entitled."His
d3540 74 6f 72 79 22 3b 20 6c 69 6b 65 77 69 73 65 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 73 65 63 74 tory";.likewise.combine.any.sect
d3560 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 0a 20 20 20 20 20 22 41 63 6b 6e 6f 77 6c 65 64 67 65 6d ions.Entitled......"Acknowledgem
d3580 65 6e 74 73 22 2c 20 61 6e 64 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 ents",.and.any.sections.Entitled
d35a0 20 22 44 65 64 69 63 61 74 69 6f 6e 73 22 2e 20 20 59 6f 75 0a 20 20 20 20 20 6d 75 73 74 20 64 ."Dedications"...You......must.d
d35c0 65 6c 65 74 65 20 61 6c 6c 20 73 65 63 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 20 22 45 6e 64 elete.all.sections.Entitled."End
d35e0 6f 72 73 65 6d 65 6e 74 73 2e 22 0a 0a 20 20 36 2e 20 43 4f 4c 4c 45 43 54 49 4f 4e 53 20 4f 46 orsements."....6..COLLECTIONS.OF
d3600 20 44 4f 43 55 4d 45 4e 54 53 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 20 61 20 .DOCUMENTS.......You.may.make.a.
d3620 63 6f 6c 6c 65 63 74 69 6f 6e 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 74 68 65 20 44 6f 63 collection.consisting.of.the.Doc
d3640 75 6d 65 6e 74 20 61 6e 64 20 6f 74 68 65 72 0a 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 73 20 72 ument.and.other......documents.r
d3660 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 eleased.under.this.License,.and.
d3680 72 65 70 6c 61 63 65 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 20 20 20 20 63 6f 70 69 replace.the.individual......copi
d36a0 65 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 74 68 65 20 76 61 72 69 6f 75 es.of.this.License.in.the.variou
d36c0 73 20 64 6f 63 75 6d 65 6e 74 73 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 63 6f 70 79 0a 20 s.documents.with.a.single.copy..
d36e0 20 20 20 20 74 68 61 74 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6f 6c 6c ....that.is.included.in.the.coll
d3700 65 63 74 69 6f 6e 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 66 6f 6c 6c 6f 77 ection,.provided.that.you.follow
d3720 20 74 68 65 0a 20 20 20 20 20 72 75 6c 65 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 .the......rules.of.this.License.
d3740 66 6f 72 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 6f 66 20 65 61 63 68 20 6f 66 20 for.verbatim.copying.of.each.of.
d3760 74 68 65 20 64 6f 63 75 6d 65 6e 74 73 0a 20 20 20 20 20 69 6e 20 61 6c 6c 20 6f 74 68 65 72 20 the.documents......in.all.other.
d3780 72 65 73 70 65 63 74 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 65 78 74 72 61 63 74 20 respects........You.may.extract.
d37a0 61 20 73 69 6e 67 6c 65 20 64 6f 63 75 6d 65 6e 74 20 66 72 6f 6d 20 73 75 63 68 20 61 20 63 6f a.single.document.from.such.a.co
d37c0 6c 6c 65 63 74 69 6f 6e 2c 20 61 6e 64 0a 20 20 20 20 20 64 69 73 74 72 69 62 75 74 65 20 69 74 llection,.and......distribute.it
d37e0 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 .individually.under.this.License
d3800 2c 20 70 72 6f 76 69 64 65 64 20 79 6f 75 20 69 6e 73 65 72 74 0a 20 20 20 20 20 61 20 63 6f 70 ,.provided.you.insert......a.cop
d3820 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 65 78 74 72 61 y.of.this.License.into.the.extra
d3840 63 74 65 64 20 64 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 69 73 0a 20 cted.document,.and.follow.this..
d3860 20 20 20 20 4c 69 63 65 6e 73 65 20 69 6e 20 61 6c 6c 20 6f 74 68 65 72 20 72 65 73 70 65 63 74 ....License.in.all.other.respect
d3880 73 20 72 65 67 61 72 64 69 6e 67 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 6f 66 20 s.regarding.verbatim.copying.of.
d38a0 74 68 61 74 0a 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 37 2e 20 41 47 47 52 45 47 that......document.....7..AGGREG
d38c0 41 54 49 4f 4e 20 57 49 54 48 20 49 4e 44 45 50 45 4e 44 45 4e 54 20 57 4f 52 4b 53 0a 0a 20 20 ATION.WITH.INDEPENDENT.WORKS....
d38e0 20 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 ...A.compilation.of.the.Document
d3900 20 6f 72 20 69 74 73 20 64 65 72 69 76 61 74 69 76 65 73 20 77 69 74 68 20 6f 74 68 65 72 0a 20 .or.its.derivatives.with.other..
d3920 20 20 20 20 73 65 70 61 72 61 74 65 20 61 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 64 6f 63 ....separate.and.independent.doc
d3940 75 6d 65 6e 74 73 20 6f 72 20 77 6f 72 6b 73 2c 20 69 6e 20 6f 72 20 6f 6e 20 61 20 76 6f 6c 75 uments.or.works,.in.or.on.a.volu
d3960 6d 65 20 6f 66 20 61 0a 20 20 20 20 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69 62 75 me.of.a......storage.or.distribu
d3980 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 20 22 61 67 67 72 65 tion.medium,.is.called.an."aggre
d39a0 67 61 74 65 22 20 69 66 20 74 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 72 65 73 75 gate".if.the......copyright.resu
d39c0 6c 74 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 69 73 20 6e 6f lting.from.the.compilation.is.no
d39e0 74 20 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 0a 20 20 20 20 20 6c 65 67 61 6c 20 72 t.used.to.limit.the......legal.r
d3a00 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 65 72 73 ights.of.the.compilation's.users
d3a20 20 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 20 20 20 .beyond.what.the.individual.....
d3a40 20 77 6f 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 57 68 65 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e .works.permit...When.the.Documen
d3a60 74 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 2c 20 74 t.is.included.in.an.aggregate,.t
d3a80 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 20 his......License.does.not.apply.
d3aa0 74 6f 20 74 68 65 20 6f 74 68 65 72 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 61 67 67 72 65 67 to.the.other.works.in.the.aggreg
d3ac0 61 74 65 20 77 68 69 63 68 0a 20 20 20 20 20 61 72 65 20 6e 6f 74 20 74 68 65 6d 73 65 6c 76 65 ate.which......are.not.themselve
d3ae0 73 20 64 65 72 69 76 61 74 69 76 65 20 77 6f 72 6b 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 s.derivative.works.of.the.Docume
d3b00 6e 74 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 43 6f 76 65 72 20 54 65 78 74 20 72 65 71 75 nt........If.the.Cover.Text.requ
d3b20 69 72 65 6d 65 6e 74 20 6f 66 20 73 65 63 74 69 6f 6e 20 33 20 69 73 20 61 70 70 6c 69 63 61 62 irement.of.section.3.is.applicab
d3b40 6c 65 20 74 6f 20 74 68 65 73 65 0a 20 20 20 20 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 44 le.to.these......copies.of.the.D
d3b60 6f 63 75 6d 65 6e 74 2c 20 74 68 65 6e 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 ocument,.then.if.the.Document.is
d3b80 20 6c 65 73 73 20 74 68 61 6e 20 6f 6e 65 20 68 61 6c 66 0a 20 20 20 20 20 6f 66 20 74 68 65 20 .less.than.one.half......of.the.
d3ba0 65 6e 74 69 72 65 20 61 67 67 72 65 67 61 74 65 2c 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 27 73 entire.aggregate,.the.Document's
d3bc0 20 43 6f 76 65 72 20 54 65 78 74 73 20 6d 61 79 20 62 65 20 70 6c 61 63 65 64 0a 20 20 20 20 20 .Cover.Texts.may.be.placed......
d3be0 6f 6e 20 63 6f 76 65 72 73 20 74 68 61 74 20 62 72 61 63 6b 65 74 20 74 68 65 20 44 6f 63 75 6d on.covers.that.bracket.the.Docum
d3c00 65 6e 74 20 77 69 74 68 69 6e 20 74 68 65 20 61 67 67 72 65 67 61 74 65 2c 20 6f 72 20 74 68 65 ent.within.the.aggregate,.or.the
d3c20 0a 20 20 20 20 20 65 6c 65 63 74 72 6f 6e 69 63 20 65 71 75 69 76 61 6c 65 6e 74 20 6f 66 20 63 ......electronic.equivalent.of.c
d3c40 6f 76 65 72 73 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 69 6e 20 65 6c 65 63 overs.if.the.Document.is.in.elec
d3c60 74 72 6f 6e 69 63 0a 20 20 20 20 20 66 6f 72 6d 2e 20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 tronic......form...Otherwise.the
d3c80 79 20 6d 75 73 74 20 61 70 70 65 61 72 20 6f 6e 20 70 72 69 6e 74 65 64 20 63 6f 76 65 72 73 20 y.must.appear.on.printed.covers.
d3ca0 74 68 61 74 20 62 72 61 63 6b 65 74 0a 20 20 20 20 20 74 68 65 20 77 68 6f 6c 65 20 61 67 67 72 that.bracket......the.whole.aggr
d3cc0 65 67 61 74 65 2e 0a 0a 20 20 38 2e 20 54 52 41 4e 53 4c 41 54 49 4f 4e 0a 0a 20 20 20 20 20 54 egate.....8..TRANSLATION.......T
d3ce0 72 61 6e 73 6c 61 74 69 6f 6e 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 61 20 6b 69 6e 64 20 ranslation.is.considered.a.kind.
d3d00 6f 66 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 73 6f 20 79 6f 75 20 6d 61 79 0a 20 20 20 20 of.modification,.so.you.may.....
d3d20 20 64 69 73 74 72 69 62 75 74 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 .distribute.translations.of.the.
d3d40 44 6f 63 75 6d 65 6e 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 Document.under.the.terms.of.sect
d3d60 69 6f 6e 0a 20 20 20 20 20 34 2e 20 20 52 65 70 6c 61 63 69 6e 67 20 49 6e 76 61 72 69 61 6e 74 ion......4...Replacing.Invariant
d3d80 20 53 65 63 74 69 6f 6e 73 20 77 69 74 68 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 72 65 71 75 .Sections.with.translations.requ
d3da0 69 72 65 73 20 73 70 65 63 69 61 6c 0a 20 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 66 72 6f ires.special......permission.fro
d3dc0 6d 20 74 68 65 69 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 2c 20 62 75 74 20 79 m.their.copyright.holders,.but.y
d3de0 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 ou.may.include......translations
d3e00 20 6f 66 20 73 6f 6d 65 20 6f 72 20 61 6c 6c 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f .of.some.or.all.Invariant.Sectio
d3e20 6e 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 0a 20 20 20 20 20 6f 72 69 67 69 ns.in.addition.to.the......origi
d3e40 6e 61 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 73 65 20 49 6e 76 61 72 69 61 6e 74 20 nal.versions.of.these.Invariant.
d3e60 53 65 63 74 69 6f 6e 73 2e 20 20 59 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64 65 20 61 0a 20 20 20 Sections...You.may.include.a....
d3e80 20 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 ..translation.of.this.License,.a
d3ea0 6e 64 20 61 6c 6c 20 74 68 65 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 73 20 69 6e 20 74 68 nd.all.the.license.notices.in.th
d3ec0 65 0a 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 61 6e 79 20 57 61 72 72 61 6e 74 e......Document,.and.any.Warrant
d3ee0 79 20 44 69 73 63 6c 61 69 6d 65 72 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 y.Disclaimers,.provided.that.you
d3f00 20 61 6c 73 6f 0a 20 20 20 20 20 69 6e 63 6c 75 64 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 .also......include.the.original.
d3f20 45 6e 67 6c 69 73 68 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 English.version.of.this.License.
d3f40 61 6e 64 20 74 68 65 0a 20 20 20 20 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 73 20 6f and.the......original.versions.o
d3f60 66 20 74 68 6f 73 65 20 6e 6f 74 69 63 65 73 20 61 6e 64 20 64 69 73 63 6c 61 69 6d 65 72 73 2e f.those.notices.and.disclaimers.
d3f80 20 20 49 6e 20 63 61 73 65 20 6f 66 20 61 0a 20 20 20 20 20 64 69 73 61 67 72 65 65 6d 65 6e 74 ..In.case.of.a......disagreement
d3fa0 20 62 65 74 77 65 65 6e 20 74 68 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 .between.the.translation.and.the
d3fc0 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20 20 20 20 74 68 69 73 20 4c .original.version.of......this.L
d3fe0 69 63 65 6e 73 65 20 6f 72 20 61 20 6e 6f 74 69 63 65 20 6f 72 20 64 69 73 63 6c 61 69 6d 65 72 icense.or.a.notice.or.disclaimer
d4000 2c 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 77 69 6c 6c 0a 20 20 20 20 ,.the.original.version.will.....
d4020 20 70 72 65 76 61 69 6c 2e 0a 0a 20 20 20 20 20 49 66 20 61 20 73 65 63 74 69 6f 6e 20 69 6e 20 .prevail........If.a.section.in.
d4040 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 45 6e 74 69 74 6c 65 64 20 22 41 63 6b 6e 6f 77 the.Document.is.Entitled."Acknow
d4060 6c 65 64 67 65 6d 65 6e 74 73 22 2c 0a 20 20 20 20 20 22 44 65 64 69 63 61 74 69 6f 6e 73 22 2c ledgements",......"Dedications",
d4080 20 6f 72 20 22 48 69 73 74 6f 72 79 22 2c 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 28 .or."History",.the.requirement.(
d40a0 73 65 63 74 69 6f 6e 20 34 29 20 74 6f 0a 20 20 20 20 20 50 72 65 73 65 72 76 65 20 69 74 73 20 section.4).to......Preserve.its.
d40c0 54 69 74 6c 65 20 28 73 65 63 74 69 6f 6e 20 31 29 20 77 69 6c 6c 20 74 79 70 69 63 61 6c 6c 79 Title.(section.1).will.typically
d40e0 20 72 65 71 75 69 72 65 20 63 68 61 6e 67 69 6e 67 20 74 68 65 0a 20 20 20 20 20 61 63 74 75 61 .require.changing.the......actua
d4100 6c 20 74 69 74 6c 65 2e 0a 0a 20 20 39 2e 20 54 45 52 4d 49 4e 41 54 49 4f 4e 0a 0a 20 20 20 20 l.title.....9..TERMINATION......
d4120 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 73 75 62 6c 69 .You.may.not.copy,.modify,.subli
d4140 63 65 6e 73 65 2c 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 74 68 65 20 44 6f 63 75 6d 65 6e cense,.or.distribute.the.Documen
d4160 74 0a 20 20 20 20 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73 6c 79 20 70 72 6f 76 69 t......except.as.expressly.provi
d4180 64 65 64 20 66 6f 72 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 41 6e 79 ded.for.under.this.License...Any
d41a0 20 6f 74 68 65 72 0a 20 20 20 20 20 61 74 74 65 6d 70 74 20 74 6f 20 63 6f 70 79 2c 20 6d 6f 64 .other......attempt.to.copy,.mod
d41c0 69 66 79 2c 20 73 75 62 6c 69 63 65 6e 73 65 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 74 68 ify,.sublicense.or.distribute.th
d41e0 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 0a 20 20 20 20 20 76 6f 69 64 2c 20 61 6e 64 20 77 69 6c e.Document.is......void,.and.wil
d4200 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20 72 l.automatically.terminate.your.r
d4220 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2e 20 20 ights.under.this......License...
d4240 48 6f 77 65 76 65 72 2c 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 However,.parties.who.have.receiv
d4260 65 64 20 63 6f 70 69 65 73 2c 20 6f 72 20 72 69 67 68 74 73 2c 0a 20 20 20 20 20 66 72 6f 6d 20 ed.copies,.or.rights,......from.
d4280 79 6f 75 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 6e 6f 74 20 you.under.this.License.will.not.
d42a0 68 61 76 65 20 74 68 65 69 72 20 6c 69 63 65 6e 73 65 73 20 74 65 72 6d 69 6e 61 74 65 64 0a 20 have.their.licenses.terminated..
d42c0 20 20 20 20 73 6f 20 6c 6f 6e 67 20 61 73 20 73 75 63 68 20 70 61 72 74 69 65 73 20 72 65 6d 61 ....so.long.as.such.parties.rema
d42e0 69 6e 20 69 6e 20 66 75 6c 6c 20 63 6f 6d 70 6c 69 61 6e 63 65 2e 0a 0a 20 20 31 30 2e 20 46 55 in.in.full.compliance.....10..FU
d4300 54 55 52 45 20 52 45 56 49 53 49 4f 4e 53 20 4f 46 20 54 48 49 53 20 4c 49 43 45 4e 53 45 0a 0a TURE.REVISIONS.OF.THIS.LICENSE..
d4320 20 20 20 20 20 54 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f .....The.Free.Software.Foundatio
d4340 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 6e 65 77 2c 20 72 65 76 69 73 65 64 20 76 65 72 73 69 n.may.publish.new,.revised.versi
d4360 6f 6e 73 20 6f 66 0a 20 20 20 20 20 74 68 65 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e ons.of......the.GNU.Free.Documen
d4380 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 tation.License.from.time.to.time
d43a0 2e 20 20 53 75 63 68 20 6e 65 77 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 73 20 77 69 6c 6c 20 62 ...Such.new......versions.will.b
d43c0 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20 74 68 65 20 70 72 65 73 65 e.similar.in.spirit.to.the.prese
d43e0 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 0a 20 20 20 20 20 64 69 66 66 65 72 20 nt.version,.but.may......differ.
d4400 69 6e 20 64 65 74 61 69 6c 20 74 6f 20 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f 62 6c 65 6d in.detail.to.address.new.problem
d4420 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 20 20 53 65 65 0a 20 20 20 20 20 3c 68 74 74 70 3a 2f s.or.concerns...See......<http:/
d4440 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 63 6f 70 79 6c 65 66 74 2f 3e 2e 0a 0a 20 20 20 20 20 45 /www.gnu.org/copyleft/>........E
d4460 61 63 68 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 20 69 73 20 67 69 ach.version.of.the.License.is.gi
d4480 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 72 73 69 6f 6e 0a 20 20 20 ven.a.distinguishing.version....
d44a0 20 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 73 70 65 63 69 ..number...If.the.Document.speci
d44c0 66 69 65 73 20 74 68 61 74 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 6e 75 6d 62 65 72 65 64 0a fies.that.a.particular.numbered.
d44e0 20 20 20 20 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 22 6f 72 .....version.of.this.License."or
d4500 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 20 61 70 70 6c 69 65 73 20 74 6f 20 69 .any.later.version".applies.to.i
d4520 74 2c 20 79 6f 75 0a 20 20 20 20 20 68 61 76 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 6f 66 20 66 t,.you......have.the.option.of.f
d4540 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e ollowing.the.terms.and.condition
d4560 73 20 65 69 74 68 65 72 20 6f 66 0a 20 20 20 20 20 74 68 61 74 20 73 70 65 63 69 66 69 65 64 20 s.either.of......that.specified.
d4580 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 version.or.of.any.later.version.
d45a0 74 68 61 74 20 68 61 73 20 62 65 65 6e 0a 20 20 20 20 20 70 75 62 6c 69 73 68 65 64 20 28 6e 6f that.has.been......published.(no
d45c0 74 20 61 73 20 61 20 64 72 61 66 74 29 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 t.as.a.draft).by.the.Free.Softwa
d45e0 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 0a 20 20 20 20 20 44 6f 63 75 re.Foundation...If.the......Docu
d4600 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 ment.does.not.specify.a.version.
d4620 6e 75 6d 62 65 72 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 6d 61 79 0a number.of.this.License,.you.may.
d4640 20 20 20 20 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 72 20 70 75 62 .....choose.any.version.ever.pub
d4660 6c 69 73 68 65 64 20 28 6e 6f 74 20 61 73 20 61 20 64 72 61 66 74 29 20 62 79 20 74 68 65 20 46 lished.(not.as.a.draft).by.the.F
d4680 72 65 65 0a 20 20 20 20 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 33 ree......Software.Foundation...3
d46a0 35 2e 31 20 41 44 44 45 4e 44 55 4d 3a 20 48 6f 77 20 74 6f 20 75 73 65 20 74 68 69 73 20 4c 69 5.1.ADDENDUM:.How.to.use.this.Li
d46c0 63 65 6e 73 65 20 66 6f 72 20 79 6f 75 72 20 64 6f 63 75 6d 65 6e 74 73 0a 3d 3d 3d 3d 3d 3d 3d cense.for.your.documents.=======
d46e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================================
d4700 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 6f 20 75 73 65 20 74 68 69 73 20 ==================..To.use.this.
d4720 4c 69 63 65 6e 73 65 20 69 6e 20 61 20 64 6f 63 75 6d 65 6e 74 20 79 6f 75 20 68 61 76 65 20 77 License.in.a.document.you.have.w
d4740 72 69 74 74 65 6e 2c 20 69 6e 63 6c 75 64 65 20 61 20 63 6f 70 79 20 6f 66 0a 74 68 65 20 4c 69 ritten,.include.a.copy.of.the.Li
d4760 63 65 6e 73 65 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 70 75 74 20 74 68 cense.in.the.document.and.put.th
d4780 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 e.following.copyright.and.licens
d47a0 65 0a 6e 6f 74 69 63 65 73 20 6a 75 73 74 20 61 66 74 65 72 20 74 68 65 20 74 69 74 6c 65 20 70 e.notices.just.after.the.title.p
d47c0 61 67 65 3a 0a 0a 20 20 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 20 59 45 41 52 age:.........Copyright.(C)..YEAR
d47e0 20 20 59 4f 55 52 20 4e 41 4d 45 2e 0a 20 20 20 20 20 20 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 ..YOUR.NAME.........Permission.i
d4800 73 20 67 72 61 6e 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 75 74 65 20 61 6e s.granted.to.copy,.distribute.an
d4820 64 2f 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 20 d/or.modify.this.document.......
d4840 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 46 72 65 65 .under.the.terms.of.the.GNU.Free
d4860 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 20 56 65 72 73 69 6f 6e 20 .Documentation.License,.Version.
d4880 31 2e 32 0a 20 20 20 20 20 20 20 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 1.2........or.any.later.version.
d48a0 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 published.by.the.Free.Software.F
d48c0 6f 75 6e 64 61 74 69 6f 6e 3b 0a 20 20 20 20 20 20 20 77 69 74 68 20 6e 6f 20 49 6e 76 61 72 69 oundation;........with.no.Invari
d48e0 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 ant.Sections,.no.Front-Cover.Tex
d4900 74 73 2c 20 61 6e 64 20 6e 6f 20 42 61 63 6b 2d 43 6f 76 65 72 0a 20 20 20 20 20 20 20 54 65 78 ts,.and.no.Back-Cover........Tex
d4920 74 73 2e 20 20 41 20 63 6f 70 79 20 6f 66 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e ts...A.copy.of.the.license.is.in
d4940 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 64 20 60 cluded.in.the.section.entitled.`
d4960 60 47 4e 55 0a 20 20 20 20 20 20 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c `GNU........Free.Documentation.L
d4980 69 63 65 6e 73 65 27 27 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 49 6e 76 61 72 69 icense''......If.you.have.Invari
d49a0 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 20 ant.Sections,.Front-Cover.Texts.
d49c0 61 6e 64 20 42 61 63 6b 2d 43 6f 76 65 72 0a 54 65 78 74 73 2c 20 72 65 70 6c 61 63 65 20 74 68 and.Back-Cover.Texts,.replace.th
d49e0 65 20 22 77 69 74 68 2e 2e 2e 54 65 78 74 73 2e 22 20 20 6c 69 6e 65 20 77 69 74 68 20 74 68 69 e."with...Texts."..line.with.thi
d4a00 73 3a 0a 0a 20 20 20 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 s:...........with.the.Invariant.
d4a20 53 65 63 74 69 6f 6e 73 20 62 65 69 6e 67 20 4c 49 53 54 20 54 48 45 49 52 20 54 49 54 4c 45 53 Sections.being.LIST.THEIR.TITLES
d4a40 2c 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 74 68 65 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 ,.with..........the.Front-Cover.
d4a60 54 65 78 74 73 20 62 65 69 6e 67 20 4c 49 53 54 2c 20 61 6e 64 20 77 69 74 68 20 74 68 65 20 42 Texts.being.LIST,.and.with.the.B
d4a80 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 0a 20 20 20 20 20 20 20 20 20 62 65 69 6e 67 20 4c ack-Cover.Texts..........being.L
d4aa0 49 53 54 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 49 6e 76 61 72 69 61 6e 74 20 53 IST......If.you.have.Invariant.S
d4ac0 65 63 74 69 6f 6e 73 20 77 69 74 68 6f 75 74 20 43 6f 76 65 72 20 54 65 78 74 73 2c 20 6f 72 20 ections.without.Cover.Texts,.or.
d4ae0 73 6f 6d 65 20 6f 74 68 65 72 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 68 some.other.combination.of.the.th
d4b00 72 65 65 2c 20 6d 65 72 67 65 20 74 68 6f 73 65 20 74 77 6f 20 61 6c 74 65 72 6e 61 74 69 76 65 ree,.merge.those.two.alternative
d4b20 73 20 74 6f 20 73 75 69 74 20 74 68 65 0a 73 69 74 75 61 74 69 6f 6e 2e 0a 0a 20 20 20 49 66 20 s.to.suit.the.situation......If.
d4b40 79 6f 75 72 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 6e 74 72 69 76 69 61 your.document.contains.nontrivia
d4b60 6c 20 65 78 61 6d 70 6c 65 73 20 6f 66 20 70 72 6f 67 72 61 6d 20 63 6f 64 65 2c 20 77 65 0a 72 l.examples.of.program.code,.we.r
d4b80 65 63 6f 6d 6d 65 6e 64 20 72 65 6c 65 61 73 69 6e 67 20 74 68 65 73 65 20 65 78 61 6d 70 6c 65 ecommend.releasing.these.example
d4ba0 73 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 75 6e 64 65 72 20 79 6f 75 72 20 63 68 6f 69 63 65 20 s.in.parallel.under.your.choice.
d4bc0 6f 66 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 6c 69 63 65 6e 73 65 2c 20 73 75 63 68 20 61 of.free.software.license,.such.a
d4be0 73 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 s.the.GNU.General.Public.License
d4c00 2c 20 74 6f 20 70 65 72 6d 69 74 0a 74 68 65 69 72 20 75 73 65 20 69 6e 20 66 72 65 65 20 73 6f ,.to.permit.their.use.in.free.so
d4c20 66 74 77 61 72 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e 66 6f 2c ftware.....File:.doc7SuRxP.info,
d4c40 20 20 4e 6f 64 65 3a 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 2c 20 20 4e 65 78 74 3a 20 46 75 ..Node:.Concept.Index,..Next:.Fu
d4c60 6e 63 74 69 6f 6e 20 49 6e 64 65 78 2c 20 20 50 72 65 76 3a 20 54 68 65 20 47 4e 55 20 46 44 4c nction.Index,..Prev:.The.GNU.FDL
d4c80 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 0a 2a 2a 2a 2a 2a 2a ,..Up:.Top..Concept.Index.******
d4ca0 2a 2a 2a 2a 2a 2a 2a 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 *******....[index..].*.Menu:..*.
d4cc0 61 64 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 3a 20 20 20 20 20 20 20 20 20 20 20 adding.functionality:...........
d4ce0 20 20 20 20 20 20 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .......Hooks..................(l
d4d00 69 6e 65 20 36 29 0a 2a 20 61 64 76 61 6e 63 65 64 20 70 6c 61 79 65 72 3a 20 20 20 20 20 20 20 ine.6).*.advanced.player:.......
d4d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 ................More.Complex.Pla
d4d40 79 65 72 2e 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 62 61 73 69 63 20 63 6f 6d 6d 61 6e 64 73 yer....(line.6).*.basic.commands
d4d60 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 :........................Basic.C
d4d80 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 62 61 73 69 63 ommands.........(line.6).*.basic
d4da0 20 66 75 6e 63 74 69 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .functions:.....................
d4dc0 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 ..Core.Functions.........(line.6
d4de0 29 0a 2a 20 62 61 73 69 63 20 70 6c 61 79 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.basic.player:...............
d4e00 20 20 20 20 20 20 20 20 20 20 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c ...........Simple.Player.for.`pl
d4e20 61 79 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay'.............................
d4e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d4e60 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 63 6f 6d 6d 61 6e 64 73 2c 20 62 61 73 69 63 3a .....(line.6).*.commands,.basic:
d4e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d .......................Basic.Com
d4ea0 6d 61 6e 64 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 63 6f 6d 70 69 6c 69 mands.........(line.6).*.compili
d4ec0 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng:.............................
d4ee0 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a Compiling.Emms.........(line.6).
d4f00 2a 20 63 6f 6d 70 6c 65 78 20 70 6c 61 79 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.complex.player:...............
d4f20 20 20 20 20 20 20 20 20 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 2e 20 20 20 .........More.Complex.Player....
d4f40 28 6c 69 6e 65 20 36 29 0a 2a 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 20 20 20 20 20 20 20 (line.6).*.Configuration:.......
d4f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e ..................Configuration.
d4f80 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 63 6f 6e 66 69 67 75 72 61 74 69 6f .........(line.6).*.configuratio
d4fa0 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 75 70 n:.........................Setup
d4fc0 20 45 78 61 6d 70 6c 65 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 63 6f 72 .Examples.........(line.6).*.cor
d4fe0 65 20 66 69 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.file:.........................
d5000 20 20 20 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 2e 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ....The.Core.File..........(line
d5020 20 36 29 0a 2a 20 63 6f 72 65 20 66 75 6e 63 74 69 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 20 20 .6).*.core.functions:...........
d5040 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 .............Core.Functions.....
d5060 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 44 2d 42 75 73 3a 20 20 20 20 20 20 20 20 20 20 20 ....(line.6).*.D-Bus:...........
d5080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 2d 42 75 73 2e 20 20 20 20 ......................D-Bus.....
d50a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 64 65 66 69 6e 69 6e 67 .............(line.6).*.defining
d50c0 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 .info.methods:.................D
d50e0 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 2e 20 28 6c 69 6e 65 20 36 29 0a 2a efining.Info.Methods..(line.6).*
d5100 20 64 65 66 69 6e 69 6e 67 20 6e 65 77 20 70 6c 61 79 65 72 73 3a 20 20 20 20 20 20 20 20 20 20 .defining.new.players:..........
d5120 20 20 20 20 20 20 20 20 4e 65 77 20 50 6c 61 79 65 72 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 ........New.Player.............(
d5140 6c 69 6e 65 20 36 29 0a 2a 20 64 65 66 69 6e 69 6e 67 20 70 6c 61 79 65 72 73 3a 20 20 20 20 20 line.6).*.defining.players:.....
d5160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 2e .................Extending.Emms.
d5180 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 64 69 73 70 6c 61 79 20 65 6d 6d 73 20 ........(line.6).*.display.emms.
d51a0 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6d 6d 73 20 4d information:..............Emms.M
d51c0 6f 64 65 20 4c 69 6e 65 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 65 78 61 6d ode.Line.........(line.6).*.exam
d51e0 70 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ple:............................
d5200 20 20 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ...Setup.Examples.........(line.
d5220 36 29 0a 2a 20 46 44 4c 2c 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 6).*.FDL,.GNU.Free.Documentation
d5240 20 4c 69 63 65 6e 73 65 3a 20 20 20 54 68 65 20 47 4e 55 20 46 44 4c 2e 20 20 20 20 20 20 20 20 .License:...The.GNU.FDL.........
d5260 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 66 69 6c 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 ...(line.6).*.files:............
d5280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 69 6e 64 69 6e 67 20 66 69 6c .....................Finding.fil
d52a0 65 73 20 61 6e 64 20 73 70 65 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 es.and.speed....................
d52c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d52e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 66 6f 72 6d 61 74 3a ..............(line.6).*.format:
d5300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d5320 46 6f 72 6d 61 74 73 20 61 6e 64 20 46 72 65 65 64 6f 6d 2e 20 20 20 28 6c 69 6e 65 20 36 29 0a Formats.and.Freedom....(line.6).
d5340 2a 20 66 72 65 65 64 6f 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.freedom:......................
d5360 20 20 20 20 20 20 20 20 20 46 6f 72 6d 61 74 73 20 61 6e 64 20 46 72 65 65 64 6f 6d 2e 20 20 20 .........Formats.and.Freedom....
d5380 28 6c 69 6e 65 20 36 29 0a 2a 20 47 4e 55 20 46 4d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (line.6).*.GNU.FM:..............
d53a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4e 55 20 46 4d 2e 20 20 20 20 20 20 20 ..................GNU.FM........
d53c0 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 68 65 61 72 74 20 6f 66 20 45 6d 6d .........(line.6).*.heart.of.Emm
d53e0 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 43 s:.........................The.C
d5400 6f 72 65 20 46 69 6c 65 2e 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 68 6f 6f ore.File..........(line.6).*.hoo
d5420 6b 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ks:.............................
d5440 20 20 20 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ....Hooks..................(line
d5460 20 36 29 0a 2a 20 69 6e 66 6f 20 74 61 67 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .6).*.info.tags:................
d5480 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 .............Track.Information..
d54a0 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 20 20 20 20 ....(line.6).*.installation:....
d54c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 73 74 61 6c 6c 61 74 69 ......................Installati
d54e0 6f 6e 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 49 6e 74 65 72 61 63 74 on...........(line.6).*.Interact
d5500 69 76 65 20 50 6c 61 79 6c 69 73 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 ive.Playlists:.................I
d5520 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 28 6c 69 6e 65 20 36 29 0a 2a nteractive.Playlists..(line.6).*
d5540 20 69 6e 74 65 72 6e 65 74 20 72 61 64 69 6f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .internet.radio:................
d5560 20 20 20 20 20 20 20 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 2e 20 20 20 20 20 20 20 28 ........Streaming.Audio........(
d5580 6c 69 6e 65 20 36 29 0a 2a 20 69 6e 74 65 72 6e 65 74 20 72 61 64 69 6f 20 3c 31 3e 3a 20 20 20 line.6).*.internet.radio.<1>:...
d55a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 2e 20 .................Radio.Browser..
d55c0 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e 3a ........(line.6).*.introduction:
d55e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 72 6f 64 ..........................Introd
d5600 75 63 74 69 6f 6e 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6c 69 6d 69 uction...........(line.6).*.limi
d5620 74 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ting:...........................
d5640 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ...Limiting...............(line.
d5660 36 29 0a 2a 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6).*.Listenbrainz:..............
d5680 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 2e 20 20 20 20 20 20 20 ............Listenbrainz........
d56a0 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6c 79 72 69 63 73 3a 20 20 20 20 20 20 20 20 20 20 20 ...(line.6).*.lyrics:...........
d56c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 .....................Lyrics.....
d56e0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6d 61 69 6c 69 6e 67 20 6c ............(line.6).*.mailing.l
d5700 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 65 ist:..........................Ge
d5720 74 74 69 6e 67 20 48 65 6c 70 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 tting.Help...........(line.6).*.
d5740 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 Markable.Playlists:.............
d5760 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 28 6c .......Markable.Playlists.....(l
d5780 69 6e 65 20 36 29 0a 2a 20 6d 6f 64 65 20 6c 69 6e 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ine.6).*.mode.line:.............
d57a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 2e 20 ................Emms.Mode.Line..
d57c0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6d 70 64 3a 20 20 20 20 20 20 20 20 20 20 .......(line.6).*.mpd:..........
d57e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 75 73 69 63 20 50 .........................Music.P
d5800 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6d 75 73 69 63 layer.Daemon....(line.6).*.music
d5820 20 70 6c 61 79 65 72 20 64 61 65 6d 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .player.daemon:.................
d5840 20 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 36 ..Music.Player.Daemon....(line.6
d5860 29 0a 2a 20 6e 65 77 20 70 6c 61 79 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.new.player:.................
d5880 20 20 20 20 20 20 20 20 20 20 20 4e 65 77 20 50 6c 61 79 65 72 2e 20 20 20 20 20 20 20 20 20 20 ...........New.Player...........
d58a0 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6e 65 77 20 70 6c 61 79 65 72 73 3a 20 20 20 20 20 20 20 ..(line.6).*.new.players:.......
d58c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 78 74 65 6e 64 69 6e 67 20 45 6d ....................Extending.Em
d58e0 6d 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6e 65 77 20 70 6c 61 79 65 72 ms.........(line.6).*.new.player
d5900 73 2c 20 64 65 66 69 6e 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 78 74 s,.defining:.................Ext
d5920 65 6e 64 69 6e 67 20 45 6d 6d 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 6f ending.Emms.........(line.6).*.o
d5940 70 74 69 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ptions:.........................
d5960 20 20 20 20 20 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 2e 20 20 20 20 20 20 20 20 28 6c 69 ......User.Variables.........(li
d5980 6e 65 20 36 29 0a 2a 20 6f 72 67 61 6e 69 7a 69 6e 67 20 74 72 61 63 6b 73 20 61 6e 64 20 6d 65 ne.6).*.organizing.tracks.and.me
d59a0 64 69 61 3a 20 20 20 20 20 20 20 20 20 20 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 20 20 20 dia:...........Playlists........
d59c0 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 70 6c 61 79 65 72 73 2c 20 73 69 6d 70 6c 65 ......(line.6).*.players,.simple
d59e0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 6d 70 6c 65 20 50 :.......................Simple.P
d5a00 6c 61 79 65 72 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 70 6c 61 79 6c 69 layers.........(line.6).*.playli
d5a20 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st:.............................
d5a40 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 .Limiting...............(line.6)
d5a60 0a 2a 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 .*.primitive.functions:.........
d5a80 20 20 20 20 20 20 20 20 20 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 2e 20 20 20 20 20 20 20 20 ..........The.Core.File.........
d5aa0 20 28 6c 69 6e 65 20 36 29 0a 2a 20 70 72 69 6d 69 74 69 76 65 20 70 6c 61 79 65 72 3a 20 20 20 .(line.6).*.primitive.player:...
d5ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 ...................Simple.Player
d5ae0 20 66 6f 72 20 60 70 6c 61 79 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .for.`play'.....................
d5b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d5b20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 71 75 69 63 6b 20 73 65 .............(line.6).*.quick.se
d5b40 74 75 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 tup:...........................S
d5b60 65 74 75 70 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a etup..................(line.6).*
d5b80 20 72 65 6d 6f 74 65 20 69 6e 74 65 72 66 61 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .remote.interface:..............
d5ba0 20 20 20 20 20 20 20 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 20 20 28 ........Music.Player.Daemon....(
d5bc0 6c 69 6e 65 20 36 29 0a 2a 20 73 65 74 74 69 6e 67 20 75 70 20 45 6d 6d 73 3a 20 20 20 20 20 20 line.6).*.setting.up.Emms:......
d5be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 75 70 2e 20 20 20 20 20 20 20 20 20 .................Setup..........
d5c00 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 73 65 74 75 70 3a 20 20 20 20 20 20 20 ........(line.6).*.setup:.......
d5c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 75 70 2e ..........................Setup.
d5c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 73 69 6d 70 .................(line.6).*.simp
d5c60 6c 65 20 70 6c 61 79 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le.player:......................
d5c80 20 20 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 2e 0a 20 20 20 ...Simple.Player.for.`play'.....
d5ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d5cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
d5ce0 6e 65 20 36 29 0a 2a 20 73 6f 72 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne.6).*.sort:...................
d5d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 ...............Sorting.Playlists
d5d20 2e 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 53 6f 75 72 63 65 73 3a 20 20 20 20 20 20 20 ......(line.6).*.Sources:.......
d5d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e ........................Sources.
d5d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 73 70 65 65 64 3a ...............(line.6).*.speed:
d5d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d5da0 20 46 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 2e 0a 20 20 20 20 20 20 .Finding.files.and.speed........
d5dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d5de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
d5e00 36 29 0a 2a 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 3a 20 20 20 20 20 20 20 20 20 20 20 6).*.streaming.audio:...........
d5e20 20 20 20 20 20 20 20 20 20 20 20 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 2e 20 20 20 20 ............Streaming.Audio.....
d5e40 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 3c 31 ...(line.6).*.streaming.audio.<1
d5e60 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 61 64 69 6f 20 42 72 6f 77 73 >:...................Radio.Brows
d5e80 65 72 2e 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 74 72 61 63 6b 20 65 64 69 er..........(line.6).*.track.edi
d5ea0 74 6f 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 64 tor:..........................Ed
d5ec0 69 74 69 6e 67 20 54 72 61 63 6b 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 iting.Tracks.........(line.6).*.
d5ee0 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 track.information:..............
d5f00 20 20 20 20 20 20 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 20 20 20 28 6c .......Track.Information......(l
d5f20 69 6e 65 20 36 29 0a 2a 20 74 72 61 63 6b 20 6f 72 64 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 ine.6).*.track.order:...........
d5f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 ................Sorting.Playlist
d5f60 73 2e 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 75 73 65 72 20 76 61 72 69 61 62 6c 65 73 s......(line.6).*.user.variables
d5f80 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 72 20 56 61 :........................User.Va
d5fa0 72 69 61 62 6c 65 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 29 0a 2a 20 76 6f 6c 75 6d riables.........(line.6).*.volum
d5fc0 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e:..............................
d5fe0 20 20 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 ..Volume.................(line.6
d6000 29 0a 2a 20 77 65 62 73 69 74 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.website:....................
d6020 20 20 20 20 20 20 20 20 20 20 20 47 65 74 74 69 6e 67 20 48 65 6c 70 2e 20 20 20 20 20 20 20 20 ...........Getting.Help.........
d6040 20 20 28 6c 69 6e 65 20 36 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e 69 6e ..(line.6)....File:.doc7SuRxP.in
d6060 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 78 2c 20 20 4e 65 78 74 fo,..Node:.Function.Index,..Next
d6080 3a 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 2c 20 20 50 72 65 76 3a 20 43 6f 6e 63 65 70 74 :.Variable.Index,..Prev:.Concept
d60a0 20 49 6e 64 65 78 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 78 .Index,..Up:.Top..Function.Index
d60c0 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d .**************....[index..].*.M
d60e0 65 6e 75 3a 0a 0a 2a 20 62 75 72 79 2d 62 75 66 66 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 enu:..*.bury-buffer:............
d6100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c ...............Interactive.Playl
d6120 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ists............................
d6140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d6160 20 20 20 20 28 6c 69 6e 65 20 20 38 33 29 0a 2a 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d ....(line..83).*.define-emms-sim
d6180 70 6c 65 2d 70 6c 61 79 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 6d 70 6c 65 20 50 ple-player:.............Simple.P
d61a0 6c 61 79 65 72 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 36 29 0a 2a 20 64 65 73 63 72 69 layers.......(line...6).*.descri
d61c0 62 65 2d 6d 6f 64 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 be-mode:........................
d61e0 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 .Interactive.Playlists..........
d6200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d6220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 39 33 29 ......................(line..93)
d6240 0a 2a 20 64 65 73 63 72 69 62 65 2d 6d 6f 64 65 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 .*.describe-mode.<1>:...........
d6260 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 ..........Browser.Interface....(
d6280 6c 69 6e 65 20 20 38 33 29 0a 2a 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 3a 20 line..83).*.emms-add-directory:.
d62a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 ...................Basic.Command
d62c0 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 39 29 0a 2a 20 65 6d 6d 73 2d 61 64 64 2d 64 69 s.......(line..39).*.emms-add-di
d62e0 72 65 63 74 6f 72 79 2d 74 72 65 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 rectory-tree:...............Basi
d6300 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 35 29 0a 2a 20 65 6d c.Commands.......(line..45).*.em
d6320 6d 73 2d 61 64 64 2d 64 69 72 65 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-add-dired:...................
d6340 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 .....Sources..............(line.
d6360 20 35 32 29 0a 2a 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 .52).*.emms-add-file:...........
d6380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 ..............Basic.Commands....
d63a0 20 20 20 28 6c 69 6e 65 20 20 33 32 29 0a 2a 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6e 64 3a 20 20 ...(line..32).*.emms-add-find:..
d63c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d .......................Basic.Com
d63e0 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 31 29 0a 2a 20 65 6d 6d 73 2d 61 64 mands.......(line..61).*.emms-ad
d6400 64 2d 70 6c 61 79 6c 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-playlist:.....................
d6420 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 36 29 0a Basic.Commands.......(line..56).
d6440 2a 20 65 6d 6d 73 2d 61 64 64 2d 75 72 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.emms-add-url:.................
d6460 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c .........Basic.Commands.......(l
d6480 69 6e 65 20 20 35 31 29 0a 2a 20 65 6d 6d 73 2d 61 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 ine..51).*.emms-all:............
d64a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 75 70 2e 20 20 20 20 20 20 20 20 ..................Setup.........
d64c0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 37 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d .......(line..17).*.emms-browse-
d64e0 62 79 2d 61 6c 62 75 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 by-album:..................Brows
d6500 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 31 38 29 0a 2a 20 65 6d 6d er.Interface....(line..18).*.emm
d6520 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 6c 62 75 6d 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 s-browse-by-album.<1>:..........
d6540 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 ....Browser.Interface....(line.1
d6560 31 39 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 19).*.emms-browse-by-albumartist
d6580 3a 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 :............Browser.Interface..
d65a0 20 20 28 6c 69 6e 65 20 31 33 34 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 72 ..(line.134).*.emms-browse-by-ar
d65c0 74 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e tist:.................Browser.In
d65e0 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 31 35 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f terface....(line..15).*.emms-bro
d6600 77 73 65 2d 62 79 2d 61 72 74 69 73 74 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 42 wse-by-artist.<1>:.............B
d6620 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 31 36 29 0a 2a rowser.Interface....(line.116).*
d6640 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 63 6f 6d 70 6f 73 65 72 3a 20 20 20 20 20 20 20 .emms-browse-by-composer:.......
d6660 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 ........Browser.Interface....(li
d6680 6e 65 20 31 32 38 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 67 65 6e 72 65 3a 20 ne.128).*.emms-browse-by-genre:.
d66a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 .................Browser.Interfa
d66c0 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 32 31 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 ce....(line..21).*.emms-browse-b
d66e0 79 2d 67 65 6e 72 65 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 y-genre.<1>:..............Browse
d6700 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 32 32 29 0a 2a 20 65 6d 6d 73 r.Interface....(line.122).*.emms
d6720 2d 62 72 6f 77 73 65 2d 62 79 2d 70 65 72 66 6f 72 6d 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 -browse-by-performer:...........
d6740 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 33 ...Browser.Interface....(line.13
d6760 31 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 79 65 61 72 3a 20 20 20 20 20 20 20 1).*.emms-browse-by-year:.......
d6780 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 ............Browser.Interface...
d67a0 20 28 6c 69 6e 65 20 20 32 34 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 79 65 61 .(line..24).*.emms-browse-by-yea
d67c0 72 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 r.<1>:...............Browser.Int
d67e0 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 32 35 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 erface....(line.125).*.emms-brow
d6800 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 ser-add-tracks:...............Br
d6820 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 owser.Interface....(line..41).*.
d6840 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 2d 61 6e 64 2d 70 6c 61 79 emms-browser-add-tracks-and-play
d6860 3a 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e :......Browser.Interface....(lin
d6880 65 20 20 33 38 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 e..38).*.emms-browser-add-tracks
d68a0 2d 61 6e 64 2d 70 6c 61 79 20 3c 31 3e 3a 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 -and-play.<1>:..Browser.Interfac
d68c0 65 2e 20 20 20 28 6c 69 6e 65 20 20 38 39 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 62 e....(line..89).*.emms-browser-b
d68e0 75 72 79 2d 62 75 66 66 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 ury-buffer:..............Browser
d6900 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 36 38 29 0a 2a 20 65 6d 6d 73 2d .Interface....(line..68).*.emms-
d6920 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 2d 70 6c 61 79 6c 69 73 74 3a 20 20 20 20 20 20 20 20 20 browser-clear-playlist:.........
d6940 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 35 39 ..Browser.Interface....(line..59
d6960 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 3a 20 20 ).*.emms-browser-collapse-all:..
d6980 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 ...........Browser.Interface....
d69a0 28 6c 69 6e 65 20 20 34 37 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 (line..47).*.emms-browser-expand
d69c0 2d 61 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 -all:...............Browser.Inte
d69e0 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 36 32 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 rface....(line..62).*.emms-brows
d6a00 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 32 3a 20 20 20 20 20 20 20 20 42 72 6f er-expand-to-level-2:........Bro
d6a20 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 35 30 29 0a 2a 20 65 wser.Interface....(line..50).*.e
d6a40 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 33 3a 20 20 mms-browser-expand-to-level-3:..
d6a60 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
d6a80 20 20 35 33 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c ..53).*.emms-browser-expand-to-l
d6aa0 65 76 65 6c 2d 34 3a 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 evel-4:........Browser.Interface
d6ac0 2e 20 20 20 28 6c 69 6e 65 20 20 35 36 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 6f ....(line..56).*.emms-browser-go
d6ae0 74 6f 2d 72 61 6e 64 6f 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 to-random:..............Browser.
d6b00 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 37 31 29 0a 2a 20 65 6d 6d 73 2d 62 Interface....(line..71).*.emms-b
d6b20 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 6c 62 75 6d 2d 6f 6e 2d 70 69 74 63 68 66 6f 72 6b rowser-lookup-album-on-pitchfork
d6b40 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 28 6c 69 6e 65 20 31 33 37 29 :.Browser.Interface...(line.137)
d6b60 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 6c 62 75 6d 2d 6f 6e 2d .*.emms-browser-lookup-album-on-
d6b80 77 69 6b 69 70 65 64 69 61 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 28 wikipedia:.Browser.Interface...(
d6ba0 6c 69 6e 65 20 31 35 32 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d line.152).*.emms-browser-lookup-
d6bc0 61 6c 62 75 6d 61 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 3a 20 42 72 6f 77 73 65 albumartist-on-wikipedia:.Browse
d6be0 72 20 49 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.Interface.....................
d6c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d6c20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 34 30 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f ...........(line.140).*.emms-bro
d6c40 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 3a wser-lookup-artist-on-wikipedia:
d6c60 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 28 6c 69 6e 65 20 31 34 33 29 0a 2a .Browser.Interface..(line.143).*
d6c80 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 63 6f 6d 70 6f 73 65 72 2d 6f 6e .emms-browser-lookup-composer-on
d6ca0 2d 77 69 6b 69 70 65 64 69 61 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 0a 20 -wikipedia:.Browser.Interface...
d6cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d6ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
d6d00 6e 65 20 31 34 36 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 70 65 ne.146).*.emms-browser-lookup-pe
d6d20 72 66 6f 72 6d 65 72 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 3a 20 42 72 6f 77 73 65 72 20 49 6e rformer-on-wikipedia:.Browser.In
d6d40 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 terface.........................
d6d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d6d80 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 34 39 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 .......(line.149).*.emms-browser
d6da0 2d 6e 65 78 74 2d 6e 6f 6e 2d 74 72 61 63 6b 3a 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 -next-non-track:...........Brows
d6dc0 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 39 35 29 0a 2a 20 65 6d 6d er.Interface....(line..95).*.emm
d6de0 73 2d 62 72 6f 77 73 65 72 2d 70 72 65 76 2d 6e 6f 6e 2d 74 72 61 63 6b 3a 20 20 20 20 20 20 20 s-browser-prev-non-track:.......
d6e00 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 ....Browser.Interface....(line..
d6e20 39 32 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 72 65 6e 64 65 72 2d 6c 61 73 74 2d 73 92).*.emms-browser-render-last-s
d6e40 65 61 72 63 68 3a 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 earch:.......Browser.Interface..
d6e60 20 20 28 6c 69 6e 65 20 20 33 30 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 ..(line..30).*.emms-browser-sear
d6e80 63 68 2d 62 79 2d 61 6c 62 75 6d 3a 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e ch-by-album:..........Browser.In
d6ea0 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 39 38 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f terface....(line..98).*.emms-bro
d6ec0 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 3a 20 20 20 20 42 wser-search-by-albumartist:....B
d6ee0 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 30 31 29 0a 2a rowser.Interface....(line.101).*
d6f00 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 61 72 74 69 73 74 3a 20 .emms-browser-search-by-artist:.
d6f20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 ........Browser.Interface....(li
d6f40 6e 65 20 31 30 34 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 ne.104).*.emms-browser-search-by
d6f60 2d 6e 61 6d 65 73 3a 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 -names:..........Browser.Interfa
d6f80 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 30 37 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ce....(line.107).*.emms-browser-
d6fa0 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 3a 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 search-by-title:..........Browse
d6fc0 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 31 30 29 0a 2a 20 65 6d 6d 73 r.Interface....(line.110).*.emms
d6fe0 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 65 61 72 63 68 65 73 3a 20 20 20 20 20 20 20 20 20 -browser-show-searches:.........
d7000 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 32 ...Browser.Interface....(line..2
d7020 37 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 65 61 72 63 68 65 73 20 7).*.emms-browser-show-searches.
d7040 3c 31 3e 3a 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 <1>:........Browser.Interface...
d7060 20 28 6c 69 6e 65 20 31 31 33 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 6f 67 67 6c .(line.113).*.emms-browser-toggl
d7080 65 2d 73 75 62 69 74 65 6d 73 3a 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 e-subitems:..........Browser.Int
d70a0 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 65 6d 6d 73 2d 62 72 6f 77 erface....(line..44).*.emms-brow
d70c0 73 65 72 2d 76 69 65 77 2d 69 6e 2d 64 69 72 65 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 42 72 ser-view-in-dired:............Br
d70e0 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 36 35 29 0a 2a 20 owser.Interface....(line..65).*.
d7100 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 3a 20 20 20 20 emms-cache-set-from-mpd-all:....
d7120 20 20 20 20 20 20 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 28 6c 69 6e .......Music.Player.Daemon..(lin
d7140 65 20 31 30 30 29 0a 2a 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 e.100).*.emms-cache-set-from-mpd
d7160 2d 64 69 72 65 63 74 6f 72 79 3a 20 20 20 20 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 -directory:.....Music.Player.Dae
d7180 6d 6f 6e 2e 20 28 6c 69 6e 65 20 20 39 36 29 0a 2a 20 65 6d 6d 73 2d 63 75 65 2d 6e 65 78 74 3a mon..(line..96).*.emms-cue-next:
d71a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 50 45 20 2f 20 46 .........................APE./.F
d71c0 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 2e 20 28 6c 69 6e 65 20 20 31 37 29 0a 2a 20 65 6d 6d 73 2d LAC.Commands..(line..17).*.emms-
d71e0 63 75 65 2d 70 72 65 76 69 6f 75 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cue-previous:...................
d7200 20 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 2e 20 28 6c 69 6e 65 20 20 31 39 ..APE./.FLAC.Commands..(line..19
d7220 29 0a 2a 20 65 6d 6d 73 2d 64 65 66 61 75 6c 74 2d 70 6c 61 79 65 72 73 3a 20 20 20 20 20 20 20 ).*.emms-default-players:.......
d7240 20 20 20 20 20 20 20 20 20 20 20 53 65 74 75 70 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........Setup................
d7260 28 6c 69 6e 65 20 20 32 34 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 3a 20 20 (line..24).*.emms-filters-and:..
d7280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 ....................Browser.Inte
d72a0 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 32 36 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 rface....(line.226).*.emms-filte
d72c0 72 73 2d 61 6e 64 2d 6e 6f 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f rs-and-not:..................Bro
d72e0 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 32 39 29 0a 2a 20 65 wser.Interface....(line.229).*.e
d7300 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-filters-clear:..............
d7320 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
d7340 20 32 30 34 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 61 6c 6c 3a 20 .204).*.emms-filters-clear-all:.
d7360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 ...............Browser.Interface
d7380 2e 20 20 20 28 6c 69 6e 65 20 32 33 33 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c ....(line.233).*.emms-filters-cl
d73a0 65 61 72 2d 63 61 63 68 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 ear-caches:.............Browser.
d73c0 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 36 33 29 0a 2a 20 65 6d 6d 73 2d 66 Interface....(line.263).*.emms-f
d73e0 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 72 69 6e 67 2d 66 69 6c 74 65 72 3a 20 20 20 20 20 20 20 ilters-clear-ring-filter:.......
d7400 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 31 33 29 .Browser.Interface....(line.213)
d7420 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 3a 20 20 20 20 .*.emms-filters-hard-filter:....
d7440 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 ..........Browser.Interface....(
d7460 6c 69 6e 65 20 32 30 30 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 line.200).*.emms-filters-hard-fi
d7480 6c 74 65 72 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 lter.<1>:..........Browser.Inter
d74a0 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 34 38 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 face....(line.248).*.emms-filter
d74c0 73 2d 6b 65 65 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 s-keep:.....................Brow
d74e0 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 39 35 29 0a 2a 20 65 6d ser.Interface....(line.195).*.em
d7500 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 3a 20 20 20 20 ms-filters-next-ring-filter:....
d7520 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 .....Browser.Interface....(line.
d7540 20 38 30 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 .80).*.emms-filters-next-ring-fi
d7560 6c 74 65 72 20 3c 31 3e 3a 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e lter.<1>:.....Browser.Interface.
d7580 20 20 20 28 6c 69 6e 65 20 32 30 37 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 3a ...(line.207).*.emms-filters-or:
d75a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 .......................Browser.I
d75c0 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 32 32 29 0a 2a 20 65 6d 6d 73 2d 66 69 nterface....(line.222).*.emms-fi
d75e0 6c 74 65 72 73 2d 70 6f 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lters-pop:......................
d7600 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 38 32 29 0a Browser.Interface....(line.182).
d7620 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 3a 20 20 20 20 20 20 20 *.emms-filters-pop-cache:.......
d7640 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c .........Browser.Interface....(l
d7660 69 6e 65 20 32 34 35 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 ine.245).*.emms-filters-pop-cach
d7680 65 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 e.<1>:............Browser.Interf
d76a0 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 35 34 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ace....(line.254).*.emms-filters
d76c0 2d 70 72 65 76 69 6f 75 73 2d 72 69 6e 67 2d 66 69 6c 74 65 72 3a 20 20 20 20 20 42 72 6f 77 73 -previous-ring-filter:.....Brows
d76e0 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 37 37 29 0a 2a 20 65 6d 6d er.Interface....(line..77).*.emm
d7700 73 2d 66 69 6c 74 65 72 73 2d 70 72 65 76 69 6f 75 73 2d 72 69 6e 67 2d 66 69 6c 74 65 72 20 3c s-filters-previous-ring-filter.<
d7720 31 3e 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 1>:.Browser.Interface....(line.2
d7740 31 30 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 3a 20 20 20 20 20 20 20 20 10).*.emms-filters-push:........
d7760 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 .............Browser.Interface..
d7780 20 20 28 6c 69 6e 65 20 32 31 36 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 ..(line.216).*.emms-filters-push
d77a0 2d 63 61 63 68 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e -cache:...............Browser.In
d77c0 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 33 36 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c terface....(line.236).*.emms-fil
d77e0 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 3a 20 20 20 20 20 20 20 20 20 20 42 ters-search-by-album:..........B
d7800 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 38 32 29 0a 2a rowser.Interface....(line.282).*
d7820 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 61 72 74 .emms-filters-search-by-albumart
d7840 69 73 74 3a 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 ist:....Browser.Interface....(li
d7860 6e 65 20 32 36 36 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 ne.266).*.emms-filters-search-by
d7880 2d 61 6c 6c 2d 74 65 78 74 3a 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 -all-text:.......Browser.Interfa
d78a0 63 65 2e 20 20 20 28 6c 69 6e 65 20 33 30 32 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d ce....(line.302).*.emms-filters-
d78c0 73 65 61 72 63 68 2d 62 79 2d 63 6f 6d 70 6f 73 65 72 3a 20 20 20 20 20 20 20 42 72 6f 77 73 65 search-by-composer:.......Browse
d78e0 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 37 34 29 0a 2a 20 65 6d 6d 73 r.Interface....(line.274).*.emms
d7900 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 3a 20 20 20 20 20 20 20 -filters-search-by-names:.......
d7920 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 39 ...Browser.Interface....(line.29
d7940 34 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 4).*.emms-filters-search-by-name
d7960 73 2d 61 6e 64 2d 74 69 74 6c 65 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 s-and-title:.Browser.Interface..
d7980 20 28 6c 69 6e 65 20 32 39 38 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 .(line.298).*.emms-filters-searc
d79a0 68 2d 62 79 2d 70 65 72 66 6f 72 6d 65 72 3a 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 h-by-performer:......Browser.Int
d79c0 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 37 38 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 erface....(line.278).*.emms-filt
d79e0 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 3a 20 20 20 20 20 20 20 20 20 20 42 72 ers-search-by-title:..........Br
d7a00 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 38 36 29 0a 2a 20 owser.Interface....(line.286).*.
d7a20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 73 3a 20 20 emms-filters-search-by-titles:..
d7a40 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e .......Browser.Interface....(lin
d7a60 65 20 32 39 30 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 e.290).*.emms-filters-show-cache
d7a80 2d 73 74 61 63 6b 3a 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 -stack:.........Browser.Interfac
d7aa0 65 2e 20 20 20 28 6c 69 6e 65 20 31 36 34 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 e....(line.164).*.emms-filters-s
d7ac0 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 73 68 3a 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 how-cache-stash:.........Browser
d7ae0 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 36 37 29 0a 2a 20 65 6d 6d 73 2d .Interface....(line.167).*.emms-
d7b00 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 3a 20 20 filters-show-filter-factories:..
d7b20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 37 36 ..Browser.Interface....(line.176
d7b40 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 6e ).*.emms-filters-show-filter-men
d7b60 75 3a 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 u:.........Browser.Interface....
d7b80 28 6c 69 6e 65 20 31 37 33 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 (line.173).*.emms-filters-show-f
d7ba0 69 6c 74 65 72 2d 72 69 6e 67 3a 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 ilter-ring:.........Browser.Inte
d7bc0 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 37 39 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 rface....(line.179).*.emms-filte
d7be0 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f rs-show-filters:.............Bro
d7c00 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 37 30 29 0a 2a 20 65 wser.Interface....(line.170).*.e
d7c20 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 6d 61 73 68 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-filters-smash:..............
d7c40 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
d7c60 20 32 31 39 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 3a 20 20 20 20 .219).*.emms-filters-squash:....
d7c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 ...............Browser.Interface
d7ca0 2e 20 20 20 28 6c 69 6e 65 20 31 39 32 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 ....(line.192).*.emms-filters-sq
d7cc0 75 61 73 68 2d 63 61 63 68 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 uash-caches:............Browser.
d7ce0 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 36 30 29 0a 2a 20 65 6d 6d 73 2d 66 Interface....(line.260).*.emms-f
d7d00 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 68 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ilters-stash-cache:.............
d7d20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 34 32 29 .Browser.Interface....(line.242)
d7d40 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 70 6f 70 2d 63 61 63 68 65 3a .*.emms-filters-stash-pop-cache:
d7d60 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 ..........Browser.Interface....(
d7d80 6c 69 6e 65 20 32 33 39 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 2d line.239).*.emms-filters-status-
d7da0 70 72 69 6e 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 print:.............Browser.Inter
d7dc0 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 36 31 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 face....(line.161).*.emms-filter
d7de0 73 2d 73 77 61 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 42 72 6f 77 s-swap.(emms-browser):......Brow
d7e00 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 38 35 29 0a 2a 20 65 6d ser.Interface....(line.185).*.em
d7e20 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 63 61 63 68 65 3a 20 20 20 20 20 20 20 20 20 20 ms-filters-swap-cache:..........
d7e40 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 .....Browser.Interface....(line.
d7e60 32 35 31 29 0a 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 20 3b 20 72 251).*.emms-filters-swap-pop.;.r
d7e80 6f 74 61 74 65 2d 65 6a 65 63 74 2c 20 2c 70 6f 70 2d 70 72 65 76 69 6f 75 73 3a 20 42 72 6f 77 otate-eject,.,pop-previous:.Brow
d7ea0 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ser.Interface...................
d7ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d7ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 38 38 29 0a 2a 20 65 6d 6d 73 2d 66 .............(line.188).*.emms-f
d7f00 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 2d 63 61 63 68 65 3a 20 20 20 20 20 20 20 20 20 20 ilters-swap-pop-cache:..........
d7f20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 35 37 29 .Browser.Interface....(line.257)
d7f40 0a 2a 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 3a 20 20 20 20 20 20 20 20 20 20 20 .*.emms-history-load:...........
d7f60 20 20 20 20 20 20 20 20 20 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 73 74 73 2e 0a ..........Persistent.Playlists..
d7f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d7fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
d7fc0 69 6e 65 20 20 32 31 29 0a 2a 20 65 6d 6d 73 2d 69 73 65 61 72 63 68 2d 62 75 66 66 65 72 3a 20 ine..21).*.emms-isearch-buffer:.
d7fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 ..................Browser.Interf
d8000 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 37 34 29 0a 2a 20 65 6d 6d 73 2d 6c 6f 63 61 74 65 3a ace....(line..74).*.emms-locate:
d8020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 ...........................Sourc
d8040 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 37 29 0a 2a 20 65 6d 6d es..............(line..57).*.emm
d8060 73 2d 6c 6f 63 6b 2d 71 75 65 75 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-lock-queue:...................
d8080 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Basic.Commands.......(line..
d80a0 38 33 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 61 62 6c 65 3a 20 20 20 20 20 20 83).*.emms-lyrics-disable:......
d80c0 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 .............Lyrics.............
d80e0 20 20 28 6c 69 6e 65 20 20 38 31 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6e 61 62 6c ..(line..81).*.emms-lyrics-enabl
d8100 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 e:....................Lyrics....
d8120 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 38 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 ...........(line..78).*.emms-lyr
d8140 69 63 73 2d 6c 72 63 6c 69 62 2d 67 65 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c ics-lrclib-get:................L
d8160 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 32 29 0a 2a yrics...............(line..22).*
d8180 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 .emms-lyrics-start:.............
d81a0 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 ........Lyrics...............(li
d81c0 6e 65 20 20 36 36 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 3a 20 20 20 20 20 ne..66).*.emms-lyrics-stop:.....
d81e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 .................Lyrics.........
d8200 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 39 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 ......(line..69).*.emms-lyrics-t
d8220 6f 67 67 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 oggle:....................Lyrics
d8240 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 34 29 0a 2a 20 65 6d 6d 73 ...............(line..84).*.emms
d8260 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 75 -lyrics-toggle-display-on-minibu
d8280 66 66 65 72 3a 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 ffer:.Lyrics............(line..7
d82a0 32 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 2d 64 69 73 70 6c 61 79 2d 2).*.emms-lyrics-toggle-display-
d82c0 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 3a 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 on-modeline:.Lyrics.............
d82e0 20 28 6c 69 6e 65 20 20 37 35 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 6f 70 79 2d 6d 61 72 .(line..75).*.emms-mark-copy-mar
d8300 6b 65 64 2d 74 72 61 63 6b 73 3a 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c ked-tracks:..........Markable.Pl
d8320 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 35 32 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b aylists...(line..52).*.emms-mark
d8340 2d 64 65 6c 65 74 65 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 3a 20 20 20 20 20 20 20 20 4d 61 -delete-marked-tracks:........Ma
d8360 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 34 35 29 0a 2a 20 rkable.Playlists...(line..45).*.
d8380 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 3a 20 emms-mark-do-with-marked-track:.
d83a0 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e .......Markable.Playlists...(lin
d83c0 65 20 20 36 30 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b 2d 66 6f 72 77 61 72 64 3a 20 20 20 20 20 e..60).*.emms-mark-forward:.....
d83e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 ................Markable.Playlis
d8400 74 73 2e 20 20 28 6c 69 6e 65 20 20 32 35 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6b 69 6c 6c ts...(line..25).*.emms-mark-kill
d8420 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 3a 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c -marked-tracks:..........Markabl
d8440 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 34 38 29 0a 2a 20 65 6d 6d 73 2d e.Playlists...(line..48).*.emms-
d8460 6d 61 72 6b 2d 6d 61 70 63 61 72 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 3a 20 20 20 20 20 20 20 mark-mapcar-marked-track:.......
d8480 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 36 36 ..Markable.Playlists...(line..66
d84a0 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b 2d 72 65 67 65 78 70 3a 20 20 20 20 20 20 20 20 20 20 20 ).*.emms-mark-regexp:...........
d84c0 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 ...........Markable.Playlists...
d84e0 28 6c 69 6e 65 20 20 33 39 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b 2d 74 6f 67 67 6c 65 3a 20 20 (line..39).*.emms-mark-toggle:..
d8500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 ....................Markable.Pla
d8520 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 33 33 29 0a 2a 20 65 6d 6d 73 2d 6d 61 72 6b 2d ylists...(line..33).*.emms-mark-
d8540 75 6e 6d 61 72 6b 2d 61 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 unmark-all:..................Mar
d8560 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 33 30 29 0a 2a 20 65 kable.Playlists...(line..30).*.e
d8580 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b 2d 66 6f 72 77 61 72 64 3a 20 20 20 20 20 20 20 20 mms-mark-unmark-forward:........
d85a0 20 20 20 20 20 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 ......Markable.Playlists...(line
d85c0 20 20 33 36 29 0a 2a 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 ..36).*.emms-metaplaylist-mode-c
d85e0 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 3a 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 enter-current:.Managing.Playlist
d8600 73 2e 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 s...(line..41).*.emms-metaplayli
d8620 73 74 2d 6d 6f 64 65 2d 67 6f 74 6f 3a 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 st-mode-goto:...........Managing
d8640 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 65 6d 6d 73 2d 6d .Playlists...(line..19).*.emms-m
d8660 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 74 6f 2d 63 75 72 72 65 6e 74 3a 20 20 etaplaylist-mode-goto-current:..
d8680 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 31 35 29 .Managing.Playlists...(line..15)
d86a0 0a 2a 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 62 .*.emms-metaplaylist-mode-kill-b
d86c0 75 66 66 65 72 3a 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 uffer:....Managing.Playlists...(
d86e0 6c 69 6e 65 20 20 33 38 29 0a 2a 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f line..38).*.emms-metaplaylist-mo
d8700 64 65 2d 6e 65 77 2d 62 75 66 66 65 72 3a 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 de-new-buffer:.....Managing.Play
d8720 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 33 35 29 0a 2a 20 65 6d 6d 73 2d 6d 65 74 61 70 6c lists...(line..35).*.emms-metapl
d8740 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 74 2d 61 63 74 69 76 65 3a 20 20 20 20 20 4d 61 6e 61 aylist-mode-set-active:.....Mana
d8760 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 32 32 29 0a 2a 20 65 6d ging.Playlists...(line..22).*.em
d8780 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 3a 20 20 20 20 ms-metaplaylist-mode-update:....
d87a0 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 .....Managing.Playlists...(line.
d87c0 20 33 32 29 0a 2a 20 65 6d 6d 73 2d 6d 69 6e 69 6d 61 6c 69 73 74 69 63 3a 20 20 20 20 20 20 20 .32).*.emms-minimalistic:.......
d87e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 75 70 2e 20 20 20 20 20 20 20 20 20 20 20 20 ..............Setup.............
d8800 20 20 20 28 6c 69 6e 65 20 20 31 33 29 0a 2a 20 65 6d 6d 73 2d 6e 65 78 74 3a 20 20 20 20 20 20 ...(line..13).*.emms-next:......
d8820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d .......................Basic.Com
d8840 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 34 29 0a 2a 20 65 6d 6d 73 2d 6e 65 mands.......(line..74).*.emms-ne
d8860 78 74 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xt.<1>:.........................
d8880 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 Interactive.Playlists...........
d88a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d88c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 33 29 0a .....................(line..43).
d88e0 2a 20 65 6d 6d 73 2d 6e 65 78 74 20 3c 32 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.emms-next.<2>:................
d8900 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a .........Interactive.Playlists..
d8920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d8940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
d8960 69 6e 65 20 20 34 36 29 0a 2a 20 65 6d 6d 73 2d 6e 65 78 74 2d 6e 6f 65 72 72 6f 72 3a 20 20 20 ine..46).*.emms-next-noerror:...
d8980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 ..................Core.Functions
d89a0 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 31 29 0a 2a 20 65 6d 6d 73 2d 70 61 75 73 65 3a 20 .......(line..11).*.emms-pause:.
d89c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 ...........................Inter
d89e0 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 active.Playlists................
d8a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d8a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 32 29 0a 2a 20 65 6d 6d ................(line..52).*.emm
d8a40 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-play-directory:...............
d8a60 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Basic.Commands.......(line..
d8a80 33 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 3a 20 36).*.emms-play-directory-tree:.
d8aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 .............Basic.Commands.....
d8ac0 20 20 28 6c 69 6e 65 20 20 34 32 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 64 3a 20 ..(line..42).*.emms-play-dired:.
d8ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 ......................Sources...
d8b00 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 ...........(line..50).*.emms-pla
d8b20 79 2d 66 69 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 y-file:........................B
d8b40 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 38 29 0a 2a asic.Commands.......(line..28).*
d8b60 20 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6e 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .emms-play-find:................
d8b80 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 ........Basic.Commands.......(li
d8ba0 6e 65 20 20 35 38 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6e 64 20 3c 31 3e 3a 20 20 20 ne..58).*.emms-play-find.<1>:...
d8bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 .................Sources........
d8be0 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 35 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 ......(line..15).*.emms-play-pla
d8c00 79 6c 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 ylist:....................Basic.
d8c20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 34 29 0a 2a 20 65 6d 6d 73 Commands.......(line..54).*.emms
d8c40 2d 70 6c 61 79 2d 75 72 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -play-url:......................
d8c60 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 ...Basic.Commands.......(line..4
d8c80 38 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 6f 72 3a 20 20 20 20 20 20 20 20 20 20 20 8).*.emms-player-for:...........
d8ca0 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 ............Core.Functions......
d8cc0 20 28 6c 69 6e 65 20 20 34 39 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6f .(line..49).*.emms-player-mpd-co
d8ce0 6e 6e 65 63 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 75 73 69 63 20 50 6c 61 79 65 nnect:...............Music.Playe
d8d00 72 20 44 61 65 6d 6f 6e 2e 20 28 6c 69 6e 65 20 20 36 39 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 r.Daemon..(line..69).*.emms-play
d8d20 65 72 2d 6d 70 64 2d 64 69 73 63 6f 6e 6e 65 63 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 4d 75 er-mpd-disconnect:............Mu
d8d40 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 28 6c 69 6e 65 20 20 37 33 29 0a 2a 20 sic.Player.Daemon..(line..73).*.
d8d60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 68 6f 77 3a 20 20 20 20 20 20 20 20 20 20 20 emms-player-mpd-show:...........
d8d80 20 20 20 20 20 20 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 28 6c 69 6e .......Music.Player.Daemon..(lin
d8da0 65 20 20 37 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 70 64 61 74 65 2d e..76).*.emms-player-mpd-update-
d8dc0 61 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 all:............Music.Player.Dae
d8de0 6d 6f 6e 2e 20 28 6c 69 6e 65 20 20 38 39 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 mon..(line..89).*.emms-player-mp
d8e00 64 2d 75 70 64 61 74 65 2d 64 69 72 65 63 74 6f 72 79 3a 20 20 20 20 20 20 4d 75 73 69 63 20 50 d-update-directory:......Music.P
d8e20 6c 61 79 65 72 20 44 61 65 6d 6f 6e 2e 20 28 6c 69 6e 65 20 20 38 36 29 0a 2a 20 65 6d 6d 73 2d layer.Daemon..(line..86).*.emms-
d8e40 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 65 6e 74 69 6e 65 6c 3a 20 20 20 20 20 20 20 20 20 player-simple-sentinel:.........
d8e60 20 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 31 ..Simple.Players.......(line..21
d8e80 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 74 61 72 74 3a 20 20 20 ).*.emms-player-simple-start:...
d8ea0 20 20 20 20 20 20 20 20 20 20 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 2e 20 20 20 20 20 20 ...........Simple.Players.......
d8ec0 28 6c 69 6e 65 20 20 31 38 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d (line..18).*.emms-player-simple-
d8ee0 73 74 6f 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 stop:...............Simple.Playe
d8f00 72 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 rs.......(line..16).*.emms-playe
d8f20 72 2d 73 74 61 72 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 r-start:.....................Cor
d8f40 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 38 29 0a 2a 20 65 e.Functions.......(line..58).*.e
d8f60 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-player-stop:................
d8f80 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 ......Core.Functions.......(line
d8fa0 20 20 36 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 3a 20 20 20 20 ..60).*.emms-player-stopped:....
d8fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 ...............Core.Functions...
d8fe0 20 20 20 20 28 6c 69 6e 65 20 20 36 32 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 ....(line..62).*.emms-playing-ti
d9000 6d 65 2d 64 69 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 3a 20 20 20 20 20 45 6d 6d 73 20 4d 6f 64 me-disable-display:.....Emms.Mod
d9020 65 20 4c 69 6e 65 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 32 29 0a 2a 20 65 6d 6d 73 2d 70 e.Line.......(line..42).*.emms-p
d9040 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 62 6c 65 2d 64 69 73 70 6c 61 79 3a 20 20 20 20 20 laying-time-enable-display:.....
d9060 20 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 39 29 .Emms.Mode.Line.......(line..39)
d9080 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 3a 20 20 20 20 20 20 20 20 20 .*.emms-playlist-clear:.........
d90a0 20 20 20 20 20 20 20 20 20 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 28 ..........Playlists............(
d90c0 6c 69 6e 65 20 20 33 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e line..34).*.emms-playlist-curren
d90e0 74 2d 63 6c 65 61 72 3a 20 20 20 20 20 20 20 20 20 20 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 t-clear:...........Playlists....
d9100 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 ........(line..37).*.emms-playli
d9120 73 74 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 50 6c 61 79 st-current-kill:............Play
d9140 6c 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 65 6d lists............(line..41).*.em
d9160 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 ms-playlist-current-selected-tra
d9180 63 6b 3a 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 ck:..Core.Functions.......(line.
d91a0 20 35 33 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 6e 67 74 68 3a 20 20 20 20 .53).*.emms-playlist-length:....
d91c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 20 20 20 20 ..............Playlists.........
d91e0 20 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 ...(line..44).*.emms-playlist-li
d9200 6d 69 74 2d 74 6f 2d 61 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e mit-to-all:............Limiting.
d9220 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c ............(line..66).*.emms-pl
d9240 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 64 65 73 63 72 69 70 74 69 6f 6e 3a 20 20 20 20 aylist-limit-to-description:....
d9260 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 36 29 0a Limiting.............(line..36).
d9280 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 6c *.emms-playlist-limit-to-info-al
d92a0 62 75 6d 3a 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c bum:.....Limiting.............(l
d92c0 69 6e 65 20 20 32 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 ine..26).*.emms-playlist-limit-t
d92e0 6f 2d 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 3a 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 o-info-albumartist:.Limiting....
d9300 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 31 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .......(line..21).*.emms-playlis
d9320 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 72 74 69 73 74 3a 20 20 20 20 4c 69 6d 69 74 t-limit-to-info-artist:....Limit
d9340 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 36 29 0a 2a 20 65 6d 6d ing.............(line..16).*.emm
d9360 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 s-playlist-limit-to-info-compose
d9380 72 3a 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 r:..Limiting.............(line..
d93a0 33 31 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 31).*.emms-playlist-limit-to-inf
d93c0 6f 2d 67 65 6e 72 65 3a 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 o-genre:.....Limiting...........
d93e0 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d ..(line..41).*.emms-playlist-lim
d9400 69 74 2d 74 6f 2d 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 3a 20 4c 69 6d 69 74 69 6e 67 2e 20 it-to-info-performer:.Limiting..
d9420 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 31 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 ...........(line..51).*.emms-pla
d9440 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 74 69 74 6c 65 3a 20 20 20 20 20 4c ylist-limit-to-info-title:.....L
d9460 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 36 29 0a 2a imiting.............(line..56).*
d9480 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 79 65 61 .emms-playlist-limit-to-info-yea
d94a0 72 3a 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 r:......Limiting.............(li
d94c0 6e 65 20 20 36 31 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f ne..61).*.emms-playlist-limit-to
d94e0 2d 6e 61 6d 65 3a 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 -name:...........Limiting.......
d9500 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ......(line..46).*.emms-playlist
d9520 2d 6d 6f 64 65 2d 61 64 64 2d 63 6f 6e 74 65 6e 74 73 3a 20 20 20 20 20 20 20 49 6e 74 65 72 61 -mode-add-contents:.......Intera
d9540 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctive.Playlists.................
d9560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 32 29 0a 2a 20 65 6d 6d 73 ...............(line..32).*.emms
d95a0 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 3a 20 20 -playlist-mode-center-current:..
d95c0 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 ...Interactive.Playlists........
d95e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 ........................(line..6
d9620 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 66 69 72 73 74 3a 20 20 4).*.emms-playlist-mode-first:..
d9640 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 ............Interactive.Playlist
d9660 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
d9680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d96a0 20 28 6c 69 6e 65 20 20 37 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 .(line..74).*.emms-playlist-mode
d96c0 2d 67 6f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 -go:.................Interactive
d96e0 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Playlists......................
d9700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9720 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 35 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 ..........(line..15).*.emms-play
d9740 6c 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 65 72 74 2d 6e 65 77 6c 69 6e 65 3a 20 20 20 20 20 49 6e list-mode-insert-newline:.....In
d9760 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 teractive.Playlists.............
d9780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d97a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 32 30 29 0a 2a 20 ...................(line.120).*.
d97c0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 74 72 61 63 6b 3a 20 20 emms-playlist-mode-kill-track:..
d97e0 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 .......Interactive.Playlists....
d9800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e ............................(lin
d9840 65 20 31 31 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6c 61 73 74 e.110).*.emms-playlist-mode-last
d9860 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 :...............Interactive.Play
d9880 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lists...........................
d98a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d98c0 20 20 20 20 20 28 6c 69 6e 65 20 20 37 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d .....(line..77).*.emms-playlist-
d98e0 6d 6f 64 65 2d 6e 65 78 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 mode-next:...............Interac
d9900 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tive.Playlists..................
d9920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 32 29 0a 2a 20 65 6d 6d 73 2d ..............(line.102).*.emms-
d9960 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d 63 75 72 72 65 6e 74 2d 74 72 61 63 6b playlist-mode-play-current-track
d9980 3a 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 :.Interactive.Playlists.........
d99a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d99c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 37 .......................(line..67
d99e0 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 72 65 76 69 6f 75 73 3a ).*.emms-playlist-mode-previous:
d9a00 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 ...........Interactive.Playlists
d9a20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9a60 28 6c 69 6e 65 20 31 30 35 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d (line.105).*.emms-playlist-mode-
d9a80 73 68 69 66 74 2d 74 72 61 63 6b 2d 64 6f 77 6e 3a 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 shift-track-down:...Interactive.
d9aa0 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Playlists.......................
d9ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9ae0 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 39 39 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c .........(line..99).*.emms-playl
d9b00 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 2d 75 70 3a 20 20 20 20 20 49 6e 74 ist-mode-shift-track-up:.....Int
d9b20 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 eractive.Playlists..............
d9b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 39 36 29 0a 2a 20 65 ..................(line..96).*.e
d9b80 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 6e 64 6f 3a 20 20 20 20 20 20 20 20 20 mms-playlist-mode-undo:.........
d9ba0 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
d9bc0 20 20 38 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 79 61 6e 6b 3a ..86).*.emms-playlist-mode-yank:
d9be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c ...............Interactive.Playl
d9c00 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ists............................
d9c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9c40 20 20 20 20 28 6c 69 6e 65 20 31 31 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d ....(line.114).*.emms-playlist-m
d9c60 6f 64 65 2d 79 61 6e 6b 2d 70 6f 70 3a 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 ode-yank-pop:...........Interact
d9c80 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ive.Playlists...................
d9ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 31 37 29 0a 2a 20 65 6d 6d 73 2d 70 .............(line.117).*.emms-p
d9ce0 6c 61 79 6c 69 73 74 2d 6e 65 77 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 laylist-new:....................
d9d00 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 35 29 .Playlists............(line..25)
d9d20 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 3a 20 20 20 20 20 20 20 20 20 20 .*.emms-playlist-next:..........
d9d40 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 ..........Core.Functions.......(
d9d60 6c 69 6e 65 20 20 31 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 6c 61 79 6c 69 line..17).*.emms-playlist-playli
d9d80 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 3a 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 st-insert-track:...Interactive.P
d9da0 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 laylists........................
d9dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9de0 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 ........(line..37).*.emms-playli
d9e00 73 74 2d 70 72 65 76 69 6f 75 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 st-previous:................Core
d9e20 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 65 6d .Functions.......(line..19).*.em
d9e40 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 61 76 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-playlist-save:...............
d9e60 20 20 20 20 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 .....Playlists............(line.
d9e80 20 33 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 61 76 65 20 3c 31 3e 3a 20 20 .30).*.emms-playlist-save.<1>:..
d9ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 ..............Interactive.Playli
d9ec0 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sts.............................
d9ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9f00 20 20 20 28 6c 69 6e 65 20 20 38 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 ...(line..87).*.emms-playlist-se
d9f20 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 3a 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 t-playlist-buffer:.....Interacti
d9f40 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve.Playlists....................
d9f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d9f80 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c ............(line..40).*.emms-pl
d9fa0 61 79 6c 69 73 74 2d 73 68 75 66 66 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aylist-shuffle:.................
d9fc0 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 35 36 29 0a Sorting.Playlists....(line..56).
d9fe0 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 65 78 74 *.emms-playlist-sort-by-file-ext
da000 65 6e 73 69 6f 6e 3a 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c ension:..Sorting.Playlists....(l
da020 69 6e 65 20 20 33 32 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 ine..32).*.emms-playlist-sort-by
da040 2d 66 69 6c 65 2d 6d 74 69 6d 65 3a 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 -file-mtime:......Sorting.Playli
da060 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 35 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 sts....(line..50).*.emms-playlis
da080 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 3a 20 20 20 20 20 20 53 6f 72 74 69 t-sort-by-info-album:......Sorti
da0a0 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 65 6d 6d ng.Playlists....(line..23).*.emm
da0c0 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 s-playlist-sort-by-info-albumart
da0e0 69 73 74 3a 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 ist:.Sorting.Playlists...(line..
da100 31 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 17).*.emms-playlist-sort-by-info
da120 2d 61 72 74 69 73 74 3a 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 -artist:.....Sorting.Playlists..
da140 20 20 28 6c 69 6e 65 20 20 31 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 ..(line..14).*.emms-playlist-sor
da160 74 2d 62 79 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 3a 20 20 20 53 6f 72 74 69 6e 67 20 50 6c t-by-info-composer:...Sorting.Pl
da180 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 aylists....(line..44).*.emms-pla
da1a0 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 6e 6f 74 65 3a 20 20 20 20 20 20 20 53 ylist-sort-by-info-note:.......S
da1c0 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a orting.Playlists....(line..41).*
da1e0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 70 65 72 66 .emms-playlist-sort-by-info-perf
da200 6f 72 6d 65 72 3a 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 ormer:..Sorting.Playlists....(li
da220 6e 65 20 20 33 35 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d ne..35).*.emms-playlist-sort-by-
da240 69 6e 66 6f 2d 74 69 74 6c 65 3a 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 info-title:......Sorting.Playlis
da260 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 32 39 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ts....(line..29).*.emms-playlist
da280 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 79 65 61 72 3a 20 20 20 20 20 20 20 53 6f 72 74 69 6e -sort-by-info-year:.......Sortin
da2a0 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 33 38 29 0a 2a 20 65 6d 6d 73 g.Playlists....(line..38).*.emms
da2c0 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6c 61 73 74 2d 70 6c 61 79 65 64 3a 20 20 -playlist-sort-by-last-played:..
da2e0 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 32 ...Sorting.Playlists....(line..2
da300 36 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6e 61 6d 65 3a 6).*.emms-playlist-sort-by-name:
da320 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 ............Sorting.Playlists...
da340 20 28 6c 69 6e 65 20 20 34 37 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 .(line..47).*.emms-playlist-sort
da360 2d 62 79 2d 70 6c 61 79 2d 63 6f 75 6e 74 3a 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 50 6c 61 -by-play-count:......Sorting.Pla
da380 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 32 30 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 ylists....(line..20).*.emms-play
da3a0 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 3a 20 20 20 20 20 20 20 20 20 20 53 6f list-sort-by-random:..........So
da3c0 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 28 6c 69 6e 65 20 20 35 33 29 0a 2a 20 rting.Playlists....(line..53).*.
da3e0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 6f 74 61 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 emms-playlist-total-playing-time
da400 3a 20 20 20 20 20 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e :......Playlists............(lin
da420 65 20 20 34 37 29 0a 2a 20 65 6d 6d 73 2d 70 72 65 76 69 6f 75 73 3a 20 20 20 20 20 20 20 20 20 e..47).*.emms-previous:.........
da440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 ................Basic.Commands..
da460 20 20 20 20 20 28 6c 69 6e 65 20 20 37 36 29 0a 2a 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f .....(line..76).*.emms-radio-bro
da480 77 73 65 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 3a 20 20 20 20 20 20 20 20 52 61 64 69 6f 20 42 wser-full-search:........Radio.B
da4a0 72 6f 77 73 65 72 2e 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 65 6d 6d 73 2d rowser........(line..19).*.emms-
da4c0 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 3a 20 20 20 radio-browser-search-by-name:...
da4e0 20 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 2e 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 31 ..Radio.Browser........(line..11
da500 29 0a 2a 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 ).*.emms-radio-browser-search-by
da520 2d 75 72 6c 3a 20 20 20 20 20 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 2e 20 20 20 20 20 20 20 -url:......Radio.Browser........
da540 28 6c 69 6e 65 20 20 31 35 29 0a 2a 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 3a 20 20 20 20 20 20 20 (line..15).*.emms-random:.......
da560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f ....................Core.Functio
da580 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 31 29 0a 2a 20 65 6d 6d 73 2d 72 61 6e 64 6f ns.......(line..21).*.emms-rando
da5a0 6d 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 m.<1>:.......................Int
da5c0 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 eractive.Playlists..............
da5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
da600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 30 29 0a 2a 20 65 ..................(line..80).*.e
da620 6d 6d 73 2d 73 65 65 6b 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-seek:.......................
da640 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 ......Core.Functions.......(line
da660 20 20 36 36 29 0a 2a 20 65 6d 6d 73 2d 73 65 65 6b 2d 62 61 63 6b 77 61 72 64 3a 20 20 20 20 20 ..66).*.emms-seek-backward:.....
da680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 ...............Core.Functions...
da6a0 20 20 20 20 28 6c 69 6e 65 20 20 38 35 29 0a 2a 20 65 6d 6d 73 2d 73 65 65 6b 2d 62 61 63 6b 77 ....(line..85).*.emms-seek-backw
da6c0 61 72 64 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 ard.<1>:................Interact
da6e0 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ive.Playlists...................
da700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
da720 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 38 29 0a 2a 20 65 6d 6d 73 2d 73 .............(line..58).*.emms-s
da740 65 65 6b 2d 66 6f 72 77 61 72 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eek-forward:....................
da760 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 33 29 .Core.Functions.......(line..83)
da780 0a 2a 20 65 6d 6d 73 2d 73 65 65 6b 2d 66 6f 72 77 61 72 64 20 3c 31 3e 3a 20 20 20 20 20 20 20 .*.emms-seek-forward.<1>:.......
da7a0 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e ..........Interactive.Playlists.
da7c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
da7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
da800 6c 69 6e 65 20 20 35 35 29 0a 2a 20 65 6d 6d 73 2d 73 65 65 6b 2d 74 6f 3a 20 20 20 20 20 20 20 line..55).*.emms-seek-to:.......
da820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e ...................Core.Function
da840 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 38 29 0a 2a 20 65 6d 6d 73 2d 73 68 6f 77 3a 20 s.......(line..78).*.emms-show:.
da860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 ............................Basi
da880 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 39 29 0a 2a 20 65 6d c.Commands.......(line..89).*.em
da8a0 6d 73 2d 73 68 6f 77 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-show.<1>:....................
da8c0 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 .....Interactive.Playlists......
da8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
da900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
da920 20 36 31 29 0a 2a 20 65 6d 6d 73 2d 73 68 75 66 66 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 .61).*.emms-shuffle:............
da940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 ..............Basic.Commands....
da960 20 20 20 28 6c 69 6e 65 20 20 37 38 29 0a 2a 20 65 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 ...(line..78).*.emms-smart-brows
da980 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 e:.....................Browser.I
da9a0 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 31 30 29 0a 2a 20 65 6d 6d 73 2d 73 6f nterface....(line..10).*.emms-so
da9c0 72 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rt:.............................
da9e0 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 31 29 0a Basic.Commands.......(line..81).
daa00 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 *.emms-source-beets:............
daa20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .........Sources..............(l
daa40 69 6e 65 20 20 34 31 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 ine..41).*.emms-source-directory
daa60 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 :.................Sources.......
daa80 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d .......(line..23).*.emms-source-
daaa0 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 directory-tree:............Sourc
daac0 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a 20 65 6d 6d es..............(line..26).*.emm
daae0 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-source-file:..................
dab00 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Sources..............(line..
dab20 31 38 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 18).*.emms-source-file-directory
dab40 2d 74 72 65 65 3a 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 -tree:.......Sources............
dab60 20 20 28 6c 69 6e 65 20 20 34 38 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d ..(line..48).*.emms-source-file-
dab80 72 65 67 65 78 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 regex:................Sources...
daba0 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 34 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 ...........(line..54).*.emms-sou
dabc0 72 63 65 2d 66 69 6c 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 rce-files:.....................S
dabe0 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 31 29 0a 2a ources..............(line..21).*
dac00 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6e 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .emms-source-find:..............
dac20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 ........Sources..............(li
dac40 6e 65 20 20 33 38 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 3a 20 ne..38).*.emms-source-playlist:.
dac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 .................Sources........
dac80 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 39 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 ......(line..29).*.emms-source-p
daca0 6c 61 79 6c 69 73 74 2d 6d 33 75 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 laylist-m3u:..............Source
dacc0 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 34 29 0a 2a 20 65 6d 6d 73 s..............(line..34).*.emms
dace0 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6e 61 74 69 76 65 3a 20 20 20 20 20 20 20 20 -source-playlist-native:........
dad00 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 ...Sources..............(line..3
dad20 32 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 70 6c 73 3a 20 20 2).*.emms-source-playlist-pls:..
dad40 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 ............Sources.............
dad60 20 28 6c 69 6e 65 20 20 33 36 29 0a 2a 20 65 6d 6d 73 2d 73 74 61 72 74 3a 20 20 20 20 20 20 20 .(line..36).*.emms-start:.......
dad80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 .....................Basic.Comma
dada0 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 30 29 0a 2a 20 65 6d 6d 73 2d 73 74 6f 70 nds.......(line..70).*.emms-stop
dadc0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 :.............................Ba
dade0 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 32 29 0a 2a 20 sic.Commands.......(line..72).*.
dae00 65 6d 6d 73 2d 73 74 6f 70 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emms-stop.<1>:..................
dae20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 .......Interactive.Playlists....
dae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
dae60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e ............................(lin
dae80 65 20 20 34 39 29 0a 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 3a e..49).*.emms-tag-editor-rename:
daea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2e 20 ................Editing.Tracks..
daec0 20 20 20 20 20 28 6c 69 6e 65 20 20 39 35 29 0a 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f .....(line..95).*.emms-tag-edito
daee0 72 2d 72 65 70 6c 61 63 65 2d 69 6e 2d 74 61 67 3a 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 r-replace-in-tag:........Editing
daf00 20 54 72 61 63 6b 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 32 29 0a 2a 20 65 6d 6d 73 2d .Tracks.......(line..32).*.emms-
daf20 74 61 67 2d 65 64 69 74 6f 72 2d 73 65 74 2d 61 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 tag-editor-set-all:.............
daf40 20 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 33 ..Editing.Tracks.......(line..23
daf60 29 0a 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 3a 20 20 20 20 20 ).*.emms-tag-editor-submit:.....
daf80 20 20 20 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2e 20 20 20 20 20 20 ...........Editing.Tracks.......
dafa0 28 6c 69 6e 65 20 20 34 37 29 0a 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 (line..47).*.emms-tag-editor-tra
dafc0 6e 73 70 6f 73 65 2d 74 61 67 3a 20 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 54 72 61 63 nspose-tag:.........Editing.Trac
dafe0 6b 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 65 6d 6d 73 2d 74 6f 67 67 6c ks.......(line..41).*.emms-toggl
db000 65 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 e-random-playlist:...........Cor
db020 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 39 29 0a 2a 20 65 e.Functions.......(line..29).*.e
db040 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 3a 20 20 20 20 20 mms-toggle-repeat-playlist:.....
db060 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 ......Core.Functions.......(line
db080 20 20 32 33 29 0a 2a 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 74 72 61 63 6b ..23).*.emms-toggle-repeat-track
db0a0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 :..............Core.Functions...
db0c0 20 20 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a 20 65 6d 6d 73 2d 74 72 61 63 6b 3a 20 20 20 20 ....(line..26).*.emms-track:....
db0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e ........................Core.Fun
db100 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 35 29 0a 2a 20 65 6d 6d 73 2d 74 ctions.......(line..35).*.emms-t
db120 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rack-description:...............
db140 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 36 29 .Core.Functions.......(line..46)
db160 0a 2a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.emms-track-get:..............
db180 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 ..........Core.Functions.......(
db1a0 6c 69 6e 65 20 20 34 31 29 0a 2a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 3a 20 20 20 20 line..41).*.emms-track-name:....
db1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e ...................Core.Function
db1e0 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 39 29 0a 2a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d s.......(line..39).*.emms-track-
db200 73 65 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 72 65 set:........................Core
db220 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 65 6d .Functions.......(line..44).*.em
db240 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-track-type:..................
db260 20 20 20 20 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 .....Core.Functions.......(line.
db280 20 33 37 29 0a 2a 20 65 6d 6d 73 2d 75 6e 6c 6f 63 6b 2d 71 75 65 75 65 3a 20 20 20 20 20 20 20 .37).*.emms-unlock-queue:.......
db2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 2e 20 20 20 ..............Basic.Commands....
db2c0 20 20 20 28 6c 69 6e 65 20 20 38 36 29 0a 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 ...(line..86).*.emms-volume-lowe
db2e0 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 r:.....................Browser.I
db300 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 35 38 29 0a 2a 20 65 6d 6d 73 2d 76 6f nterface....(line.158).*.emms-vo
db320 6c 75 6d 65 2d 6c 6f 77 65 72 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lume-lower.<1>:.................
db340 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 38 29 0a Volume...............(line..18).
db360 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 6d 69 6e 75 73 3a 20 20 20 20 20 20 20 *.emms-volume-mode-minus:.......
db380 20 20 20 20 20 20 20 20 20 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .........Volume...............(l
db3a0 69 6e 65 20 20 32 39 29 0a 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 70 6c 75 73 ine..29).*.emms-volume-mode-plus
db3c0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 :.................Volume........
db3e0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 35 29 0a 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d .......(line..25).*.emms-volume-
db400 72 61 69 73 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 raise:.....................Brows
db420 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 35 35 29 0a 2a 20 65 6d 6d er.Interface....(line.155).*.emm
db440 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 s-volume-raise.<1>:.............
db460 20 20 20 20 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Volume...............(line..
db480 31 35 29 0a 2a 20 6b 69 6c 6c 2d 74 68 69 73 2d 62 75 66 66 65 72 3a 20 20 20 20 20 20 20 20 20 15).*.kill-this-buffer:.........
db4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e .............Managing.Playlists.
db4c0 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 6d 66 2d 73 65 61 72 63 68 2d 62 79 2d 61 72 74 69 ..(line..44).*.mf-search-by-arti
db4e0 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e st:...................Browser.In
db500 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 37 30 29 0a 2a 20 6e 65 78 74 2d 6c 69 6e terface....(line.270).*.next-lin
db520 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d e:.............................M
db540 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a anaging.Playlists...(line..26).*
db560 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .previous-line:.................
db580 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 ........Managing.Playlists...(li
db5a0 6e 65 20 20 32 39 29 0a 2a 20 73 63 72 6f 6c 6c 2d 75 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 ne..29).*.scroll-up:............
db5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 .................Interactive.Pla
db5e0 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ylists..........................
db600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
db620 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 31 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 ......(line..71)....File:.doc7Su
db640 52 78 50 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 2c RxP.info,..Node:.Variable.Index,
db660 20 20 4e 65 78 74 3a 20 4b 65 79 62 69 6e 64 69 6e 67 20 49 6e 64 65 78 2c 20 20 50 72 65 76 3a ..Next:.Keybinding.Index,..Prev:
db680 20 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 78 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 56 61 72 69 61 .Function.Index,..Up:.Top..Varia
db6a0 62 6c 65 20 49 6e 64 65 78 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 00 08 5b 69 6e 64 ble.Index.**************....[ind
db6c0 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 ex..].*.Menu:..*.emms-history-fi
db6e0 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 65 72 73 69 73 74 65 le:.....................Persiste
db700 6e 74 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.Playlists....................
db720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
db740 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 34 29 0a 2a 20 65 6d 6d 73 2d 68 69 ............(line..14).*.emms-hi
db760 73 74 6f 72 79 2d 73 74 61 72 74 2d 70 6c 61 79 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 story-start-playing:............
db780 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 Persistent.Playlists............
db7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
db7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 33 29 0a 2a ....................(line..33).*
db7e0 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 3a 20 20 20 20 20 20 .emms-info-asynchronously:......
db800 20 20 20 20 20 20 20 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 20 28 6c 69 ........Track.Information....(li
db820 6e 65 20 20 39 39 29 0a 2a 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 75 74 6f 2d 75 70 64 61 74 65 3a ne..99).*.emms-info-auto-update:
db840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 .................Track.Informati
db860 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 20 39 34 29 0a 2a 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e on....(line..94).*.emms-info-fun
db880 63 74 69 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 61 63 6b 20 ctions:...................Track.
db8a0 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 31 30 35 29 0a 2a 20 65 6d 6d 73 Information....(line.105).*.emms
db8c0 2d 6c 79 72 69 63 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 3a 20 20 20 20 20 20 20 20 20 20 -lyrics-coding-system:..........
db8e0 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 ...Lyrics...............(line..5
db900 31 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 72 3a 20 20 20 20 20 20 20 20 20 20 20 1).*.emms-lyrics-dir:...........
db920 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 ............Lyrics..............
db940 20 28 6c 69 6e 65 20 20 34 32 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 .(line..42).*.emms-lyrics-displa
db960 79 2d 66 6f 72 6d 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 y-format:............Lyrics.....
db980 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 37 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 ..........(line..47).*.emms-lyri
db9a0 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 3a 20 20 20 20 20 4c 79 cs-display-on-minibuffer:.....Ly
db9c0 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 36 29 0a 2a 20 rics...............(line..36).*.
db9e0 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 3a emms-lyrics-display-on-modeline:
dba00 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e .......Lyrics...............(lin
dba20 65 20 20 33 39 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 75 72 6c 3a e..39).*.emms-lyrics-lrclib-url:
dba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 ................Lyrics..........
dba60 20 20 20 20 20 28 6c 69 6e 65 20 20 36 30 29 0a 2a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 .....(line..60).*.emms-lyrics-sc
dba80 72 6f 6c 6c 2d 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 79 72 69 63 73 2e roll-p:..................Lyrics.
dbaa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 34 29 0a 2a 20 65 6d 6d 73 2d ..............(line..54).*.emms-
dbac0 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 72 2d 69 6e 74 65 72 76 61 6c 3a 20 20 20 lyrics-scroll-timer-interval:...
dbae0 20 20 4c 79 72 69 63 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 37 ..Lyrics...............(line..57
dbb00 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 3a 20 20 ).*.emms-player-finished-hook:..
dbb20 20 20 20 20 20 20 20 20 20 20 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........Hooks................
dbb40 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 3a 20 20 (line..23).*.emms-player-list:..
dbb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 72 20 56 61 72 69 61 62 6c ....................User.Variabl
dbb80 65 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 es.......(line...8).*.emms-playe
dbba0 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 6f r-paused-hook:...............Hoo
dbbc0 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 39 29 0a 2a 20 65 ks................(line..29).*.e
dbbe0 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 3a 20 20 20 20 20 20 20 20 mms-player-started-hook:........
dbc00 20 20 20 20 20 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ......Hooks................(line
dbc20 20 20 20 39 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b ...9).*.emms-player-stopped-hook
dbc40 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 :..............Hooks............
dbc60 20 20 20 20 28 6c 69 6e 65 20 20 31 31 29 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 ....(line..11).*.emms-playlist-c
dbc80 6c 65 61 72 65 64 2d 68 6f 6f 6b 3a 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 6f 6b 73 2e 20 20 leared-hook:............Hooks...
dbca0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 65 6d 6d 73 2d 70 .............(line..19).*.emms-p
dbcc0 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 69 6f 6e 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 3a 20 laylist-selection-changed-hook:.
dbce0 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 37 29 .Hooks................(line..17)
dbd00 0a 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 65 64 .*.emms-playlist-source-inserted
dbd20 2d 68 6f 6f 6b 3a 20 20 20 20 48 6f 6f 6b 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -hook:....Hooks................(
dbd40 6c 69 6e 65 20 20 31 34 29 0a 2a 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 line..14).*.emms-repeat-playlist
dbd60 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 :..................User.Variable
dbd80 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 35 29 0a 2a 20 65 6d 6d 73 2d 73 68 6f 77 2d 66 s.......(line..15).*.emms-show-f
dbda0 6f 72 6d 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 72 ormat:......................User
dbdc0 20 56 61 72 69 61 62 6c 65 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 31 29 0a 2a 20 65 6d .Variables.......(line..11).*.em
dbde0 6d 73 2d 73 6f 72 74 2d 6c 65 73 73 70 2d 66 75 6e 63 74 69 6f 6e 3a 20 20 20 20 20 20 20 20 20 ms-sort-lessp-function:.........
dbe00 20 20 20 20 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 .....User.Variables.......(line.
dbe20 20 32 31 29 0a 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d .21).*.emms-source-file-default-
dbe40 64 69 72 65 63 74 6f 72 79 3a 20 20 20 20 53 6f 75 72 63 65 73 2e 20 20 20 20 20 20 20 20 20 20 directory:....Sources...........
dbe60 20 20 20 28 6c 69 6e 65 20 20 31 33 29 0a 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d ...(line..13).*.emms-tag-editor-
dbe80 66 69 6c 65 2d 72 65 6e 61 6d 65 2d 61 6c 69 73 74 3a 20 20 20 20 20 45 64 69 74 69 6e 67 20 54 file-rename-alist:.....Editing.T
dbea0 72 61 63 6b 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 36 29 0a 2a 20 65 6d 6d 73 2d 74 61 racks.......(line..86).*.emms-ta
dbec0 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-editor-formats:...............
dbee0 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 35 29 0a Editing.Tracks.......(line..55).
dbf00 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 3a *.emms-tag-editor-rename-format:
dbf20 20 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 2e 20 20 20 20 20 20 28 6c .........Editing.Tracks.......(l
dbf40 69 6e 65 20 20 37 33 29 0a 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 ine..73).*.emms-tag-editor-tagfi
dbf60 6c 65 2d 66 75 6e 63 74 69 6f 6e 73 3a 20 20 20 20 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 le-functions:.....Editing.Tracks
dbf80 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 33 29 0a 2a 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 .......(line..63).*.emms-track-d
dbfa0 65 73 63 72 69 70 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 3a 20 20 20 20 20 20 20 55 73 65 72 20 escription-function:.......User.
dbfc0 56 61 72 69 61 62 6c 65 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 65 6d 6d Variables.......(line..19).*.emm
dbfe0 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 3a 20 20 20 20 20 20 20 20 20 s-volume-change-amount:.........
dc000 20 20 20 20 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Volume...............(line..
dc020 20 39 29 0a 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 6d 65 6f 75 74 3a 20 .9).*.emms-volume-mode-timeout:.
dc040 20 20 20 20 20 20 20 20 20 20 20 20 20 56 6f 6c 75 6d 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 .............Volume.............
dc060 20 20 28 6c 69 6e 65 20 20 34 32 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 6f 63 37 53 75 52 78 50 2e ..(line..42)....File:.doc7SuRxP.
dc080 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4b 65 79 62 69 6e 64 69 6e 67 20 49 6e 64 65 78 2c 20 20 info,..Node:.Keybinding.Index,..
dc0a0 50 72 65 76 3a 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 2c 20 20 55 70 3a 20 54 6f 70 0a 0a Prev:.Variable.Index,..Up:.Top..
dc0c0 4b 65 79 62 69 6e 64 69 6e 67 20 49 6e 64 65 78 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a Keybinding.Index.***************
dc0e0 2a 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 2b 20 28 65 6d 6d *....[index..].*.Menu:..*.+.(emm
dc100 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-browser):.....................
dc120 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 35 35 29 .Browser.Interface....(line.155)
dc140 0a 2a 20 2d 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 .*.-.(emms-browser):............
dc160 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 ..........Browser.Interface....(
dc180 6c 69 6e 65 20 31 35 38 29 0a 2a 20 2f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 line.158).*./.(emms-browser):...
dc1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 ...................Browser.Inter
dc1c0 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 37 34 29 0a 2a 20 2f 20 2f 3a 20 20 20 20 20 20 20 face....(line..74).*././:.......
dc1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 ............................Limi
dc200 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 36 29 0a 2a 20 2f 20 ting.............(line..66).*./.
dc220 61 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a:..............................
dc240 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 .....Limiting.............(line.
dc260 20 31 36 29 0a 2a 20 2f 20 41 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .16).*./.A:.....................
dc280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 ..............Limiting..........
dc2a0 20 20 20 28 6c 69 6e 65 20 20 32 31 29 0a 2a 20 2f 20 62 3a 20 20 20 20 20 20 20 20 20 20 20 20 ...(line..21).*./.b:............
dc2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e .......................Limiting.
dc2e0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a 20 2f 20 63 3a 20 20 20 ............(line..26).*./.c:...
dc300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
dc320 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 31 29 0a Limiting.............(line..31).
dc340 2a 20 2f 20 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *./.d:..........................
dc360 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .........Limiting.............(l
dc380 69 6e 65 20 20 33 36 29 0a 2a 20 2f 20 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine..36).*./.g:.................
dc3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 ..................Limiting......
dc3c0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 2f 20 6e 3a 20 20 20 20 20 20 20 20 .......(line..41).*./.n:........
dc3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 ...........................Limit
dc400 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 36 29 0a 2a 20 2f 20 70 ing.............(line..46).*./.p
dc420 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
dc440 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Limiting.............(line..
dc460 35 31 29 0a 2a 20 2f 20 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51).*./.t:......................
dc480 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 .............Limiting...........
dc4a0 20 20 28 6c 69 6e 65 20 20 35 36 29 0a 2a 20 2f 20 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(line..56).*./.y:.............
dc4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6d 69 74 69 6e 67 2e 20 ......................Limiting..
dc4e0 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 31 29 0a 2a 20 31 20 28 65 6d 6d 73 2d ...........(line..61).*.1.(emms-
dc500 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 browser):......................B
dc520 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 34 37 29 0a 2a rowser.Interface....(line..47).*
dc540 20 32 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .2.(emms-browser):..............
dc560 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 ........Browser.Interface....(li
dc580 6e 65 20 20 35 30 29 0a 2a 20 33 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 ne..50).*.3.(emms-browser):.....
dc5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 .................Browser.Interfa
dc5c0 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 35 33 29 0a 2a 20 34 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ce....(line..53).*.4.(emms-brows
dc5e0 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 er):......................Browse
dc600 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 35 36 29 0a 2a 20 3c 20 28 65 r.Interface....(line..56).*.<.(e
dc620 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-browser):...................
dc640 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 37 ...Browser.Interface....(line..7
dc660 37 29 0a 2a 20 3c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 20 3c 31 3e 3a 20 20 20 20 20 20 7).*.<.(emms-browser).<1>:......
dc680 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 ............Browser.Interface...
dc6a0 20 28 6c 69 6e 65 20 32 31 30 29 0a 2a 20 3c 62 61 63 6b 74 61 62 3e 20 28 65 6d 6d 73 2d 62 72 .(line.210).*.<backtab>.(emms-br
dc6c0 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 owser):..............Browser.Int
dc6e0 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 39 32 29 0a 2a 20 3c 43 2d 72 65 74 75 72 6e erface....(line..92).*.<C-return
dc700 3e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 >.(emms-browser):.............Br
dc720 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 38 39 29 0a 2a 20 owser.Interface....(line..89).*.
dc740 3c 74 61 62 3e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 <tab>.(emms-browser):...........
dc760 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e .......Browser.Interface....(lin
dc780 65 20 20 39 35 29 0a 2a 20 3e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 e..95).*.>.(emms-browser):......
dc7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 ................Browser.Interfac
dc7c0 65 2e 20 20 20 28 6c 69 6e 65 20 20 38 30 29 0a 2a 20 3e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 e....(line..80).*.>.(emms-browse
dc7e0 72 29 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 r).<1>:..................Browser
dc800 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 30 37 29 0a 2a 20 3f 20 28 65 6d .Interface....(line.207).*.?.(em
dc820 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-browser):....................
dc840 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 38 33 ..Browser.Interface....(line..83
dc860 29 0a 2a 20 62 20 31 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 ).*.b.1.(emms-browser):.........
dc880 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 ...........Browser.Interface....
dc8a0 28 6c 69 6e 65 20 31 31 36 29 0a 2a 20 62 20 32 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a (line.116).*.b.2.(emms-browser):
dc8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 ....................Browser.Inte
dc8e0 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 31 39 29 0a 2a 20 62 20 33 20 28 65 6d 6d 73 2d rface....(line.119).*.b.3.(emms-
dc900 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f browser):....................Bro
dc920 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 32 32 29 0a 2a 20 62 wser.Interface....(line.122).*.b
dc940 20 34 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .4.(emms-browser):..............
dc960 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
dc980 20 31 32 35 29 0a 2a 20 62 20 35 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 .125).*.b.5.(emms-browser):.....
dc9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 ...............Browser.Interface
dc9c0 2e 20 20 20 28 6c 69 6e 65 20 31 32 38 29 0a 2a 20 62 20 35 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ....(line.128).*.b.5.(emms-brows
dc9e0 65 72 29 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 er).<1>:................Browser.
dca00 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 33 34 29 0a 2a 20 62 20 36 20 28 65 Interface....(line.134).*.b.6.(e
dca20 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-browser):...................
dca40 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 33 31 29 .Browser.Interface....(line.131)
dca60 0a 2a 20 43 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.C:...........................
dca80 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 ..........Managing.Playlists...(
dcaa0 6c 69 6e 65 20 20 33 35 29 0a 2a 20 63 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 line..35).*.c:..................
dcac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 ...................Managing.Play
dcae0 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 34 31 29 0a 2a 20 43 20 28 65 6d 6d 73 2d 62 72 6f lists...(line..41).*.C.(emms-bro
dcb00 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 wser):......................Brow
dcb20 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 35 39 29 0a 2a 20 63 20 ser.Interface....(line..59).*.c.
dcb40 43 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 C.(emms-browser):...............
dcb60 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 .....Browser.Interface....(line.
dcb80 32 33 33 29 0a 2a 20 63 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 233).*.c.c.(emms-browser):......
dcba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e ..............Browser.Interface.
dcbc0 20 20 20 28 6c 69 6e 65 20 32 36 33 29 0a 2a 20 63 20 68 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 ...(line.263).*.c.h.(emms-browse
dcbe0 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 r):....................Browser.I
dcc00 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 34 38 29 0a 2a 20 63 20 70 20 28 65 6d nterface....(line.248).*.c.p.(em
dcc20 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-browser):....................
dcc40 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 33 36 29 0a Browser.Interface....(line.236).
dcc60 2a 20 63 20 50 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 *.c.P.(emms-browser):...........
dcc80 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c .........Browser.Interface....(l
dcca0 69 6e 65 20 32 34 35 29 0a 2a 20 63 20 71 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 ine.245).*.c.q.(emms-browser):..
dccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 ..................Browser.Interf
dcce0 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 35 34 29 0a 2a 20 63 20 72 20 28 65 6d 6d 73 2d 62 72 ace....(line.254).*.c.r.(emms-br
dcd00 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 owser):....................Brows
dcd20 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 35 31 29 0a 2a 20 63 20 52 er.Interface....(line.251).*.c.R
dcd40 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(emms-browser):................
dcd60 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 ....Browser.Interface....(line.2
dcd80 35 37 29 0a 2a 20 63 20 53 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 57).*.c.S.(emms-browser):.......
dcda0 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 .............Browser.Interface..
dcdc0 20 20 28 6c 69 6e 65 20 32 36 30 29 0a 2a 20 63 20 7a 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 ..(line.260).*.c.z.(emms-browser
dcde0 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e ):....................Browser.In
dce00 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 33 39 29 0a 2a 20 63 20 5a 20 28 65 6d 6d terface....(line.239).*.c.Z.(emm
dce20 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 s-browser):....................B
dce40 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 34 32 29 0a 2a rowser.Interface....(line.242).*
dce60 20 43 2d 2f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 .C-/.(emms-browser):............
dce80 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 ........Browser.Interface....(li
dcea0 6e 65 20 20 38 36 29 0a 2a 20 43 2d 6a 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 ne..86).*.C-j.(emms-browser):...
dcec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 .................Browser.Interfa
dcee0 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 33 38 29 0a 2a 20 43 2d 6b 3a 20 20 20 20 20 20 20 20 20 ce....(line..38).*.C-k:.........
dcf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 ..........................Managi
dcf20 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 33 38 29 0a 2a 20 64 20 28 65 ng.Playlists...(line..38).*.d.(e
dcf40 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-browser):...................
dcf60 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 36 ...Browser.Interface....(line..6
dcf80 35 29 0a 2a 20 45 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 5).*.E.(emms-browser):..........
dcfa0 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 ............Browser.Interface...
dcfc0 20 28 6c 69 6e 65 20 20 36 32 29 0a 2a 20 66 20 21 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 .(line..62).*.f.!.(emms-browser)
dcfe0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 :....................Browser.Int
dd000 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 31 33 29 0a 2a 20 66 20 61 20 28 65 6d 6d 73 erface....(line.213).*.f.a.(emms
dd020 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 -browser):....................Br
dd040 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 32 36 29 0a 2a 20 owser.Interface....(line.226).*.
dd060 66 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 f.c.(emms-browser):.............
dd080 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e .......Browser.Interface....(lin
dd0a0 65 20 32 30 34 29 0a 2a 20 66 20 68 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 e.204).*.f.h.(emms-browser):....
dd0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 ................Browser.Interfac
dd0e0 65 2e 20 20 20 28 6c 69 6e 65 20 32 30 30 29 0a 2a 20 66 20 6b 20 28 65 6d 6d 73 2d 62 72 6f 77 e....(line.200).*.f.k.(emms-brow
dd100 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 ser):....................Browser
dd120 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 39 35 29 0a 2a 20 66 20 6e 20 28 .Interface....(line.195).*.f.n.(
dd140 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emms-browser):..................
dd160 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 32 39 ..Browser.Interface....(line.229
dd180 29 0a 2a 20 66 20 6f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 ).*.f.o.(emms-browser):.........
dd1a0 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 ...........Browser.Interface....
dd1c0 28 6c 69 6e 65 20 32 32 32 29 0a 2a 20 66 20 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a (line.222).*.f.p.(emms-browser):
dd1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 ....................Browser.Inte
dd200 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 31 36 29 0a 2a 20 66 20 71 20 28 65 6d 6d 73 2d rface....(line.216).*.f.q.(emms-
dd220 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f browser):....................Bro
dd240 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 38 32 29 0a 2a 20 66 wser.Interface....(line.182).*.f
dd260 20 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .r:.............................
dd280 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
dd2a0 20 31 38 35 29 0a 2a 20 66 20 52 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 .185).*.f.R.(emms-browser):.....
dd2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 ...............Browser.Interface
dd2e0 2e 20 20 20 28 6c 69 6e 65 20 31 38 38 29 0a 2a 20 66 20 53 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ....(line.188).*.f.S.(emms-brows
dd300 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 er):....................Browser.
dd320 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 39 32 29 0a 2a 20 66 20 73 20 28 65 Interface....(line.192).*.f.s.(e
dd340 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-browser):...................
dd360 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 31 39 29 .Browser.Interface....(line.219)
dd380 0a 2a 20 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.g:...........................
dd3a0 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 ..........Managing.Playlists...(
dd3c0 6c 69 6e 65 20 20 33 32 29 0a 2a 20 69 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 line..32).*.i.c.(emms-browser):.
dd3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 ...................Browser.Inter
dd400 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 36 34 29 0a 2a 20 69 20 66 20 28 65 6d 6d 73 2d 62 face....(line.164).*.i.f.(emms-b
dd420 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 rowser):....................Brow
dd440 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 37 30 29 0a 2a 20 69 20 ser.Interface....(line.170).*.i.
dd460 46 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F.(emms-browser):...............
dd480 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 .....Browser.Interface....(line.
dd4a0 31 37 36 29 0a 2a 20 69 20 6d 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 176).*.i.m.(emms-browser):......
dd4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e ..............Browser.Interface.
dd4e0 20 20 20 28 6c 69 6e 65 20 31 37 33 29 0a 2a 20 69 20 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 ...(line.173).*.i.r.(emms-browse
dd500 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 r):....................Browser.I
dd520 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 37 39 29 0a 2a 20 69 20 73 20 28 65 6d nterface....(line.179).*.i.s.(em
dd540 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ms-browser):....................
dd560 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 36 31 29 0a Browser.Interface....(line.161).
dd580 2a 20 69 20 53 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 *.i.S.(emms-browser):...........
dd5a0 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c .........Browser.Interface....(l
dd5c0 69 6e 65 20 31 36 37 29 0a 2a 20 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine.167).*.n:...................
dd5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c ..................Managing.Playl
dd600 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a 20 70 3a 20 20 20 20 20 20 20 20 20 20 ists...(line..26).*.p:..........
dd620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 ...........................Manag
dd640 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 32 39 29 0a 2a 20 71 3a 20 ing.Playlists...(line..29).*.q:.
dd660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
dd680 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 ....Managing.Playlists...(line..
dd6a0 34 34 29 0a 2a 20 71 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 44).*.q.(emms-browser):.........
dd6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 .............Browser.Interface..
dd6e0 20 20 28 6c 69 6e 65 20 20 36 38 29 0a 2a 20 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a ..(line..68).*.r.(emms-browser):
dd700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e ......................Browser.In
dd720 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 37 31 29 0a 2a 20 52 45 54 3a 20 20 20 20 terface....(line..71).*.RET:....
dd740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d ...............................M
dd760 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 31 35 29 0a 2a anaging.Playlists...(line..15).*
dd780 20 52 45 54 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 .RET.(emms-browser):............
dd7a0 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 ........Browser.Interface....(li
dd7c0 6e 65 20 20 34 31 29 0a 2a 20 73 20 41 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 ne..41).*.s.A.(emms-browser):...
dd7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 .................Browser.Interfa
dd800 63 65 2e 20 20 20 28 6c 69 6e 65 20 20 39 38 29 0a 2a 20 73 20 61 20 28 65 6d 6d 73 2d 62 72 6f ce....(line..98).*.s.a.(emms-bro
dd820 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 wser):....................Browse
dd840 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 30 34 29 0a 2a 20 73 20 61 20 r.Interface....(line.104).*.s.a.
dd860 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 (emms-browser).<1>:.............
dd880 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 37 ...Browser.Interface....(line.27
dd8a0 30 29 0a 2a 20 73 20 41 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 20 3c 31 3e 3a 20 20 20 20 0).*.s.A.(emms-browser).<1>:....
dd8c0 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 ............Browser.Interface...
dd8e0 20 28 6c 69 6e 65 20 32 38 32 29 0a 2a 20 73 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 .(line.282).*.s.c.(emms-browser)
dd900 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 :....................Browser.Int
dd920 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 37 34 29 0a 2a 20 73 20 65 20 28 65 6d 6d 73 erface....(line.274).*.s.e.(emms
dd940 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 -browser):....................Br
dd960 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 33 30 32 29 0a 2a 20 owser.Interface....(line.302).*.
dd980 73 20 68 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 s.h.(emms-browser):.............
dd9a0 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e .......Browser.Interface....(lin
dd9c0 65 20 31 31 33 29 0a 2a 20 73 20 6e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 e.113).*.s.n.(emms-browser):....
dd9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 ................Browser.Interfac
dda00 65 2e 20 20 20 28 6c 69 6e 65 20 32 39 34 29 0a 2a 20 73 20 6f 20 28 65 6d 6d 73 2d 62 72 6f 77 e....(line.294).*.s.o.(emms-brow
dda20 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 ser):....................Browser
dda40 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 30 31 29 0a 2a 20 73 20 6f 20 28 .Interface....(line.101).*.s.o.(
dda60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emms-browser).<1>:..............
dda80 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 36 36 ..Browser.Interface....(line.266
ddaa0 29 0a 2a 20 73 20 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 ).*.s.p.(emms-browser):.........
ddac0 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 ...........Browser.Interface....
ddae0 28 6c 69 6e 65 20 32 37 38 29 0a 2a 20 73 20 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a (line.278).*.s.s.(emms-browser):
ddb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 ....................Browser.Inte
ddb20 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 30 37 29 0a 2a 20 73 20 73 20 28 65 6d 6d 73 2d rface....(line.107).*.s.s.(emms-
ddb40 62 72 6f 77 73 65 72 29 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f browser).<1>:................Bro
ddb60 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 39 38 29 0a 2a 20 73 wser.Interface....(line.298).*.s
ddb80 20 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .t.(emms-browser):..............
ddba0 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 ......Browser.Interface....(line
ddbc0 20 31 31 30 29 0a 2a 20 73 20 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 20 3c 31 3e 3a 20 .110).*.s.t.(emms-browser).<1>:.
ddbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 ...............Browser.Interface
ddc00 2e 20 20 20 28 6c 69 6e 65 20 32 38 36 29 0a 2a 20 73 20 54 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ....(line.286).*.s.T.(emms-brows
ddc20 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 er):....................Browser.
ddc40 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 32 39 30 29 0a 2a 20 53 50 43 3a 20 20 Interface....(line.290).*.SPC:..
ddc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
ddc80 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 32 32 29 .Managing.Playlists...(line..22)
ddca0 0a 2a 20 53 50 43 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 .*.SPC.(emms-browser):..........
ddcc0 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 ..........Browser.Interface....(
ddce0 6c 69 6e 65 20 20 34 34 29 0a 2a 20 76 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 line..44).*.v:..................
ddd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 ...................Managing.Play
ddd20 6c 69 73 74 73 2e 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 57 20 61 20 70 20 28 65 6d 6d 73 lists...(line..19).*.W.a.p.(emms
ddd40 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 -browser):..................Brow
ddd60 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 33 37 29 0a 2a 20 57 20 ser.Interface....(line.137).*.W.
ddd80 41 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 A.w.(emms-browser):.............
ddda0 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 .....Browser.Interface....(line.
dddc0 31 34 33 29 0a 2a 20 57 20 61 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 143).*.W.a.w.(emms-browser):....
ddde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e ..............Browser.Interface.
dde00 20 20 20 28 6c 69 6e 65 20 31 35 32 29 0a 2a 20 57 20 63 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 ...(line.152).*.W.c.w.(emms-brow
dde20 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 ser):..................Browser.I
dde40 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 34 36 29 0a 2a 20 57 20 6f 20 77 20 28 nterface....(line.146).*.W.o.w.(
dde60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emms-browser):..................
dde80 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c 69 6e 65 20 31 34 30 29 0a Browser.Interface....(line.140).
ddea0 2a 20 57 20 70 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 3a 20 20 20 20 20 20 20 20 20 *.W.p.w.(emms-browser):.........
ddec0 20 20 20 20 20 20 20 20 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 2e 20 20 20 28 6c .........Browser.Interface....(l
ddee0 69 6e 65 20 31 34 39 29 0a 0a 0a 1f 0a 54 61 67 20 54 61 62 6c 65 3a 0a 4e 6f 64 65 3a 20 54 6f ine.149).....Tag.Table:.Node:.To
ddf00 70 7f 37 33 30 0a 4e 6f 64 65 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 7f 34 36 32 31 0a 4e 6f p.730.Node:.Introduction.4621.No
ddf20 64 65 3a 20 51 75 69 63 6b 73 74 61 72 74 20 47 75 69 64 65 7f 36 30 39 34 0a 4e 6f 64 65 3a 20 de:.Quickstart.Guide.6094.Node:.
ddf40 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 7f 39 30 35 32 0a 4e 6f 64 65 3a 20 43 6f 6d 70 69 6c 69 6e Installation.9052.Node:.Compilin
ddf60 67 20 45 6d 6d 73 7f 39 36 30 36 0a 4e 6f 64 65 3a 20 53 65 74 75 70 7f 31 30 32 39 39 0a 4e 6f g.Emms.9606.Node:.Setup.10299.No
ddf80 64 65 3a 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 7f 31 31 32 39 30 0a 4e 6f 64 65 3a 20 46 69 de:.Configuration.11290.Node:.Fi
ddfa0 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 7f 31 32 37 37 30 0a 4e 6f 64 65 nding.files.and.speed.12770.Node
ddfc0 3a 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 7f 31 33 36 34 34 0a 4e 6f 64 65 3a 20 47 65 74 :.Setup.Examples.13644.Node:.Get
ddfe0 74 69 6e 67 20 48 65 6c 70 7f 31 35 37 35 34 0a 4e 6f 64 65 3a 20 46 6f 72 6d 61 74 73 20 61 6e ting.Help.15754.Node:.Formats.an
de000 64 20 46 72 65 65 64 6f 6d 7f 31 36 33 33 37 0a 4e 6f 64 65 3a 20 42 61 73 69 63 20 43 6f 6d 6d d.Freedom.16337.Node:.Basic.Comm
de020 61 6e 64 73 7f 31 37 35 34 37 0a 4e 6f 64 65 3a 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 7f 32 ands.17547.Node:.The.Core.File.2
de040 31 39 31 33 0a 4e 6f 64 65 3a 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 7f 32 32 33 35 32 0a 1913.Node:.User.Variables.22352.
de060 4e 6f 64 65 3a 20 48 6f 6f 6b 73 7f 32 33 33 33 33 0a 4e 6f 64 65 3a 20 43 6f 72 65 20 46 75 6e Node:.Hooks.23333.Node:.Core.Fun
de080 63 74 69 6f 6e 73 7f 32 34 37 36 34 0a 4e 6f 64 65 3a 20 53 6f 75 72 63 65 73 7f 32 38 32 30 31 ctions.24764.Node:.Sources.28201
de0a0 0a 4e 6f 64 65 3a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 7f 33 30 38 35 30 0a 4e 6f 64 65 .Node:.Simple.Players.30850.Node
de0c0 3a 20 50 6c 61 79 6c 69 73 74 73 7f 33 31 39 31 32 0a 4e 6f 64 65 3a 20 54 72 61 63 6b 20 49 6e :.Playlists.31912.Node:.Track.In
de0e0 66 6f 72 6d 61 74 69 6f 6e 7f 33 33 38 35 38 0a 4e 6f 64 65 3a 20 4d 65 74 61 64 61 74 61 20 55 formation.33858.Node:.Metadata.U
de100 74 69 6c 69 74 69 65 73 7f 33 38 35 37 33 0a 4e 6f 64 65 3a 20 44 65 66 69 6e 69 6e 67 20 49 6e tilities.38573.Node:.Defining.In
de120 66 6f 20 4d 65 74 68 6f 64 73 7f 34 33 32 35 32 0a 4e 6f 64 65 3a 20 49 6e 74 65 72 61 63 74 69 fo.Methods.43252.Node:.Interacti
de140 76 65 20 50 6c 61 79 6c 69 73 74 73 7f 34 35 34 30 31 0a 4e 6f 64 65 3a 20 4d 61 72 6b 61 62 6c ve.Playlists.45401.Node:.Markabl
de160 65 20 50 6c 61 79 6c 69 73 74 73 7f 34 38 36 38 33 0a 4e 6f 64 65 3a 20 45 78 74 65 6e 64 69 6e e.Playlists.48683.Node:.Extendin
de180 67 20 45 6d 6d 73 7f 35 31 31 36 35 0a 4e 6f 64 65 3a 20 4e 65 77 20 50 6c 61 79 65 72 7f 35 31 g.Emms.51165.Node:.New.Player.51
de1a0 36 30 36 0a 4e 6f 64 65 3a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 606.Node:.Simple.Player.for.`pla
de1c0 79 27 7f 35 32 30 30 30 0a 4e 6f 64 65 3a 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 y'.52000.Node:.More.Complex.Play
de1e0 65 72 7f 35 33 37 33 33 0a 4e 6f 64 65 3a 20 54 68 65 20 42 72 6f 77 73 65 72 7f 35 36 37 33 36 er.53733.Node:.The.Browser.56736
de200 0a 4e 6f 64 65 3a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 7f 35 37 37 32 36 0a 4e .Node:.Browser.Interface.57726.N
de220 6f 64 65 3a 20 44 69 73 70 6c 61 79 69 6e 67 20 43 6f 76 65 72 73 7f 36 34 30 32 36 0a 4e 6f 64 ode:.Displaying.Covers.64026.Nod
de240 65 3a 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b 73 7f 36 36 30 34 36 0a 4e 6f 64 65 3a 20 46 69 e:.Changing.Looks.66046.Node:.Fi
de260 6c 74 65 72 69 6e 67 20 54 72 61 63 6b 73 20 2d 20 64 65 70 72 65 63 61 74 65 64 7f 36 39 39 35 ltering.Tracks.-.deprecated.6995
de280 30 0a 4e 6f 64 65 3a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 7f 37 32 31 33 34 0a 0.Node:.The.Filter.System.72134.
de2a0 4e 6f 64 65 3a 20 46 69 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 63 68 65 73 7f 37 33 34 38 30 Node:.Filters.and.Searches.73480
de2c0 0a 4e 6f 64 65 3a 20 42 61 63 6b 77 61 72 64 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 7f 37 35 .Node:.Backward.Compatibility.75
de2e0 34 37 37 0a 4e 6f 64 65 3a 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f 6e 65 6e 74 73 7f 38 30 39 31 477.Node:.Filter.Components.8091
de300 37 0a 4e 6f 64 65 3a 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 7f 38 32 31 35 31 0a 4e 7.Node:.Filter.Factories.82151.N
de320 6f 64 65 3a 20 46 61 63 74 6f 72 79 20 52 65 67 69 73 74 72 61 74 69 6f 6e 7f 38 34 31 32 30 0a ode:.Factory.Registration.84120.
de340 4e 6f 64 65 3a 20 44 65 66 69 6e 65 64 20 46 61 63 74 6f 72 69 65 73 7f 38 36 35 38 32 0a 4e 6f Node:.Defined.Factories.86582.No
de360 64 65 3a 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 7f 38 37 37 37 36 0a 4e 6f 64 65 3a de:.Defining.Filters.87776.Node:
de380 20 54 68 65 20 46 69 6c 74 65 72 20 53 74 61 63 6b 7f 39 31 35 32 33 0a 4e 6f 64 65 3a 20 54 68 .The.Filter.Stack.91523.Node:.Th
de3a0 65 20 43 61 63 68 65 20 53 74 61 63 6b 7f 39 33 38 35 35 0a 4e 6f 64 65 3a 20 53 68 6f 77 69 6e e.Cache.Stack.93855.Node:.Showin
de3c0 67 20 53 74 61 74 65 7f 39 37 33 31 31 0a 4e 6f 64 65 3a 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 g.State.97311.Node:.Sorting.Play
de3e0 6c 69 73 74 73 7f 39 38 39 39 39 0a 4e 6f 64 65 3a 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 lists.98999.Node:.Persistent.Pla
de400 79 6c 69 73 74 73 7f 31 30 30 37 35 38 0a 4e 6f 64 65 3a 20 45 64 69 74 69 6e 67 20 54 72 61 63 ylists.100758.Node:.Editing.Trac
de420 6b 73 7f 31 30 31 39 32 32 0a 4e 6f 64 65 3a 20 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 7f 31 ks.101922.Node:.Emms.Mode.Line.1
de440 30 35 38 38 34 0a 4e 6f 64 65 3a 20 4c 69 6d 69 74 69 6e 67 7f 31 30 37 33 33 32 0a 4e 6f 64 65 05884.Node:.Limiting.107332.Node
de460 3a 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e 7f 31 30 39 38 38 34 0a 4e 6f 64 :.Music.Player.Daemon.109884.Nod
de480 65 3a 20 4c 79 72 69 63 73 7f 31 31 33 36 35 34 0a 4e 6f 64 65 3a 20 56 6f 6c 75 6d 65 7f 31 31 e:.Lyrics.113654.Node:.Volume.11
de4a0 36 36 35 33 0a 4e 6f 64 65 3a 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 7f 31 31 38 34 34 6653.Node:.Streaming.Audio.11844
de4c0 36 0a 52 65 66 3a 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 2d 46 6f 6f 74 6e 6f 74 65 2d 6.Ref:.Streaming.Audio-Footnote-
de4e0 31 7f 31 31 39 32 39 31 0a 4e 6f 64 65 3a 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 7f 31 31 39 1.119291.Node:.Radio.Browser.119
de500 36 34 32 0a 4e 6f 64 65 3a 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 7f 31 32 642.Node:.APE./.FLAC.Commands.12
de520 30 35 37 34 0a 4e 6f 64 65 3a 20 42 6f 6f 6b 6d 61 72 6b 73 7f 31 32 31 32 38 34 0a 4e 6f 64 65 0574.Node:.Bookmarks.121284.Node
de540 3a 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 7f 31 32 32 30 30 30 0a 4e 6f 64 65 :.Managing.Playlists.122000.Node
de560 3a 20 47 4e 55 20 46 4d 7f 31 32 33 30 37 34 0a 4e 6f 64 65 3a 20 55 70 6c 6f 61 64 69 6e 67 20 :.GNU.FM.123074.Node:.Uploading.
de580 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 7f 31 32 34 34 33 38 0a 4e 6f 64 65 3a 20 47 Track.Information.124438.Node:.G
de5a0 4e 55 20 46 4d 20 53 74 72 65 61 6d 69 6e 67 7f 31 32 35 33 32 35 0a 4e 6f 64 65 3a 20 4c 69 73 NU.FM.Streaming.125325.Node:.Lis
de5c0 74 65 6e 62 72 61 69 6e 7a 7f 31 32 35 38 33 30 0a 4e 6f 64 65 3a 20 44 2d 42 75 73 7f 31 32 36 tenbrainz.125830.Node:.D-Bus.126
de5e0 39 36 30 0a 4e 6f 64 65 3a 20 43 6f 70 79 69 6e 67 7f 31 32 37 35 31 38 0a 4e 6f 64 65 3a 20 54 960.Node:.Copying.127518.Node:.T
de600 68 65 20 47 4e 55 20 46 44 4c 7f 31 36 35 30 34 30 0a 4e 6f 64 65 3a 20 43 6f 6e 63 65 70 74 20 he.GNU.FDL.165040.Node:.Concept.
de620 49 6e 64 65 78 7f 31 38 37 34 33 33 0a 4e 6f 64 65 3a 20 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 Index.187433.Node:.Function.Inde
de640 78 7f 31 39 32 35 38 38 0a 4e 6f 64 65 3a 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 7f 32 31 x.192588.Node:.Variable.Index.21
de660 34 35 37 38 0a 4e 6f 64 65 3a 20 4b 65 79 62 69 6e 64 69 6e 67 20 49 6e 64 65 78 7f 32 31 37 31 4578.Node:.Keybinding.Index.2171
de680 39 38 0a 1f 0a 45 6e 64 20 54 61 67 20 54 61 62 6c 65 0a 0a 1f 0a 4c 6f 63 61 6c 20 56 61 72 69 98...End.Tag.Table....Local.Vari
de6a0 61 62 6c 65 73 3a 0a 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 0a 45 6e 64 3a 0a 00 00 00 00 00 00 ables:.coding:.utf-8.End:.......
de6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de800 65 6d 6d 73 2d 32 34 2f 43 4f 50 59 49 4e 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/COPYING.................
de820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
de880 30 31 30 34 35 31 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 37 34 30 00 20 30 00 00 00 0104513.00000000000.011740..0...
de8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
de920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
de940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dea00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 4c 20 ....................GNU.GENERAL.
dea20 50 55 42 4c 49 43 20 4c 49 43 45 4e 53 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PUBLIC.LICENSE..................
dea40 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 20 ......Version.3,.29.June.2007...
dea60 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 37 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 Copyright.(C).2007.Free.Software
dea80 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 3c 68 74 74 70 3a 2f 2f 66 73 66 2e 6f 72 .Foundation,.Inc..<http://fsf.or
deaa0 67 2f 3e 0a 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 6f g/>..Everyone.is.permitted.to.co
deac0 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 py.and.distribute.verbatim.copie
deae0 73 0a 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 74 s..of.this.license.document,.but
deb00 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 20 .changing.it.is.not.allowed.....
deb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 61 6d 62 ..........................Preamb
deb40 6c 65 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 le....The.GNU.General.Public.Lic
deb60 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 65 ense.is.a.free,.copyleft.license
deb80 20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 .for.software.and.other.kinds.of
deba0 20 77 6f 72 6b 73 2e 0a 0a 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 74 .works.....The.licenses.for.most
debc0 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 6f .software.and.other.practical.wo
debe0 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 6f rks.are.designed.to.take.away.yo
dec00 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 74 ur.freedom.to.share.and.change.t
dec20 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 20 he.works...By.contrast,.the.GNU.
dec40 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e 64 General.Public.License.is.intend
dec60 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 0a ed.to.guarantee.your.freedom.to.
dec80 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 share.and.change.all.versions.of
deca0 20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d 61 .a.program--to.make.sure.it.rema
decc0 69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 73 ins.free.software.for.all.its.us
dece0 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e ers...We,.the.Free.Software.Foun
ded00 64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c dation,.use.the.GNU.General.Publ
ded20 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 77 ic.License.for.most.of.our.softw
ded40 61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 65 are;.it.applies.also.to.any.othe
ded60 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 20 r.work.released.this.way.by.its.
ded80 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 6f authors...You.can.apply.it.to.yo
deda0 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 57 68 65 6e 20 77 65 20 73 70 65 ur.programs,.too.....When.we.spe
dedc0 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 65 ak.of.free.software,.we.are.refe
dede0 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f 75 rring.to.freedom,.not.price...Ou
dee00 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 65 r.General.Public.Licenses.are.de
dee20 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 76 signed.to.make.sure.that.you.hav
dee40 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 69 e.the.freedom.to.distribute.copi
dee60 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 20 es.of.free.software.(and.charge.
dee80 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 20 for.them.if.you.wish),.that.you.
deea0 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 69 receive.source.code.or.can.get.i
deec0 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63 t.if.you.want.it,.that.you.can.c
deee0 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 73 hange.the.software.or.use.pieces
def00 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e 64 .of.it.in.new.free.programs,.and
def20 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 20 .that.you.know.you.can.do.these.
def40 74 68 69 6e 67 73 2e 0a 0a 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 things.....To.protect.your.right
def60 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 6f s,.we.need.to.prevent.others.fro
def80 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 73 m.denying.you.these.rights.or.as
defa0 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 73 king.you.to.surrender.the.rights
defc0 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 72 ...Therefore,.you.have.certain.r
defe0 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 esponsibilities.if.you.distribut
df000 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 0a e.copies.of.the.software,.or.if.
df020 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 you.modify.it:.responsibilities.
df040 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 73 to.respect.the.freedom.of.others
df060 2e 0a 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 .....For.example,.if.you.distrib
df080 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 68 ute.copies.of.such.a.program,.wh
df0a0 65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 6d ether.gratis.or.for.a.fee,.you.m
df0c0 75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 68 ust.pass.on.to.the.recipients.th
df0e0 65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 65 e.same.freedoms.that.you.receive
df100 64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 79 d...You.must.make.sure.that.they
df120 2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 6f ,.too,.receive.or.can.get.the.so
df140 75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 68 urce.code...And.you.must.show.th
df160 65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 69 em.these.terms.so.they.know.thei
df180 72 20 72 69 67 68 74 73 2e 0a 0a 20 20 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 65 r.rights.....Developers.that.use
df1a0 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 73 .the.GNU.GPL.protect.your.rights
df1c0 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 79 .with.two.steps:.(1).assert.copy
df1e0 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 6f right.on.the.software,.and.(2).o
df200 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f 75 ffer.you.this.License.giving.you
df220 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 .legal.permission.to.copy,.distr
df240 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 20 20 46 6f 72 20 74 ibute.and/or.modify.it.....For.t
df260 68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f 74 he.developers'.and.authors'.prot
df280 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e 73 ection,.the.GPL.clearly.explains
df2a0 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 .that.there.is.no.warranty.for.t
df2c0 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 65 his.free.software...For.both.use
df2e0 72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 72 rs'.and.authors'.sake,.the.GPL.r
df300 65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 62 equires.that.modified.versions.b
df320 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 65 e.marked.as.changed,.so.that.the
df340 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 74 ir.problems.will.not.be.attribut
df360 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 65 ed.erroneously.to.authors.of.pre
df380 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 20 vious.versions.....Some.devices.
df3a0 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 73 are.designed.to.deny.users.acces
df3c0 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 72 s.to.install.or.run.modified.ver
df3e0 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 65 sions.of.the.software.inside.the
df400 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 6e m,.although.the.manufacturer.can
df420 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 69 .do.so...This.is.fundamentally.i
df440 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f 74 ncompatible.with.the.aim.of.prot
df460 65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 20 ecting.users'.freedom.to.change.
df480 74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 61 the.software...The.systematic.pa
df4a0 74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 68 ttern.of.such.abuse.occurs.in.th
df4c0 65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 61 e.area.of.products.for.individua
df4e0 6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 68 ls.to.use,.which.is.precisely.wh
df500 65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 68 ere.it.is.most.unacceptable...Th
df520 65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 76 erefore,.we.have.designed.this.v
df540 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 68 ersion.of.the.GPL.to.prohibit.th
df560 65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 20 e.practice.for.those.products...
df580 49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 69 If.such.problems.arise.substanti
df5a0 61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 20 ally.in.other.domains,.we.stand.
df5c0 72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 74 ready.to.extend.this.provision.t
df5e0 6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 6f o.those.domains.in.future.versio
df600 6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74 ns.of.the.GPL,.as.needed.to.prot
df620 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 46 69 6e ect.the.freedom.of.users.....Fin
df640 61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e 65 ally,.every.program.is.threatene
df660 64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 73 d.constantly.by.software.patents
df680 2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e 74 ..States.should.not.allow.patent
df6a0 73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 73 s.to.restrict.development.and.us
df6c0 65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 e.of.software.on.general-purpose
df6e0 20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 6f .computers,.but.in.those.that.do
df700 2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 64 ,.we.wish.to.avoid.the.special.d
df720 61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 20 anger.that.patents.applied.to.a.
df740 66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 63 free.program.could.make.it.effec
df760 74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 20 tively.proprietary...To.prevent.
df780 74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 6e this,.the.GPL.assures.that.paten
df7a0 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 20 ts.cannot.be.used.to.render.the.
df7c0 70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65 2e 0a 0a 20 20 54 68 65 20 70 72 65 63 69 73 65 program.non-free.....The.precise
df7e0 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 6e .terms.and.conditions.for.copyin
df800 67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e g,.distribution.and.modification
df820 20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .follow.........................
df840 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 30 2e 20 44 65 66 69 .TERMS.AND.CONDITIONS....0..Defi
df860 6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 22 54 68 69 73 20 4c 69 63 65 6e 73 65 22 20 72 65 66 65 72 nitions....."This.License".refer
df880 73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 s.to.version.3.of.the.GNU.Genera
df8a0 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 22 43 6f 70 79 72 69 67 68 74 22 l.Public.License....."Copyright"
df8c0 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 20 .also.means.copyright-like.laws.
df8e0 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 0a 77 6f 72 that.apply.to.other.kinds.of.wor
df900 6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 2e ks,.such.as.semiconductor.masks.
df920 0a 0a 20 20 22 54 68 65 20 50 72 6f 67 72 61 6d 22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20 ...."The.Program".refers.to.any.
df940 63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 copyrightable.work.licensed.unde
df960 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 69 r.this.License...Each.licensee.i
df980 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 65 s.addressed.as."you"..."Licensee
df9a0 73 22 20 61 6e 64 0a 22 72 65 63 69 70 69 65 6e 74 73 22 20 6d 61 79 20 62 65 20 69 6e 64 69 76 s".and."recipients".may.be.indiv
df9c0 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 54 6f 20 22 iduals.or.organizations.....To."
df9e0 6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 6f modify".a.work.means.to.copy.fro
dfa00 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 6f m.or.adapt.all.or.part.of.the.wo
dfa20 72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 69 rk.in.a.fashion.requiring.copyri
dfa40 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 6d ght.permission,.other.than.the.m
dfa60 61 6b 69 6e 67 20 6f 66 20 61 6e 0a 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 73 aking.of.an.exact.copy...The.res
dfa80 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 65 ulting.work.is.called.a."modifie
dfaa0 64 20 76 65 72 73 69 6f 6e 22 20 6f 66 20 74 68 65 0a 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 6f d.version".of.the.earlier.work.o
dfac0 72 20 61 20 77 6f 72 6b 20 22 62 61 73 65 64 20 6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 20 r.a.work."based.on".the.earlier.
dfae0 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 63 6f 76 65 72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 20 work.....A."covered.work".means.
dfb00 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f 72 either.the.unmodified.Program.or
dfb20 20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 .a.work.based.on.the.Program....
dfb40 20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 .To."propagate".a.work.means.to.
dfb60 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f 75 do.anything.with.it.that,.withou
dfb80 74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 72 t.permission,.would.make.you.dir
dfba0 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 0a ectly.or.secondarily.liable.for.
dfbc0 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 63 6f infringement.under.applicable.co
dfbe0 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 69 6e 67 20 69 74 pyright.law,.except.executing.it
dfc00 20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 72 .on.a.computer.or.modifying.a.pr
dfc20 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65 ivate.copy...Propagation.include
dfc40 73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f 72 s.copying,.distribution.(with.or
dfc60 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 20 61 .without.modification),.making.a
dfc80 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 73 vailable.to.the.public,.and.in.s
dfca0 6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 61 ome.countries.other.activities.a
dfcc0 73 20 77 65 6c 6c 2e 0a 0a 20 20 54 6f 20 22 63 6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d 65 s.well.....To."convey".a.work.me
dfce0 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 74 ans.any.kind.of.propagation.that
dfd00 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70 61 72 74 69 65 73 20 74 6f 20 6d 61 6b 65 20 6f .enables.other.parties.to.make.o
dfd20 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e 74 65 72 61 63 74 r.receive.copies...Mere.interact
dfd40 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 20 74 68 72 6f 75 67 68 0a 61 20 63 6f 6d 70 75 74 ion.with.a.user.through.a.comput
dfd60 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 61 6e 73 66 65 72 20 6f 66 20 er.network,.with.no.transfer.of.
dfd80 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 41 6e 20 a.copy,.is.not.conveying.....An.
dfda0 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 6c interactive.user.interface.displ
dfdc0 61 79 73 20 22 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 0a ays."Appropriate.Legal.Notices".
dfde0 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61 to.the.extent.that.it.includes.a
dfe00 20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 69 .convenient.and.prominently.visi
dfe20 62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 6e ble.feature.that.(1).displays.an
dfe40 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 61 .appropriate.copyright.notice,.a
dfe60 6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 72 65 nd.(2).tells.the.user.that.there
dfe80 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 65 78 .is.no.warranty.for.the.work.(ex
dfea0 63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65 6e 74 20 74 68 61 74 20 77 61 72 72 61 6e 74 69 cept.to.the.extent.that.warranti
dfec0 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 63 65 6e 73 65 65 73 es.are.provided),.that.licensees
dfee0 20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 .may.convey.the.work.under.this.
dff00 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 20 License,.and.how.to.view.a.copy.
dff20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 0a 74 68 65 20 69 6e 74 65 72 66 61 of.this.License...If.the.interfa
dff40 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d 61 ce.presents.a.list.of.user.comma
dff60 6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 0a 6d 65 6e 75 2c 20 nds.or.options,.such.as.a.menu,.
dff80 61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 65 a.prominent.item.in.the.list.mee
dffa0 74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 20 ts.this.criterion.....1..Source.
dffc0 43 6f 64 65 2e 0a 0a 20 20 54 68 65 20 22 73 6f 75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 61 Code.....The."source.code".for.a
dffe0 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 6f .work.means.the.preferred.form.o
e0000 66 20 74 68 65 20 77 6f 72 6b 0a 66 6f 72 20 6d 61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 61 74 69 f.the.work.for.making.modificati
e0020 6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a 65 63 74 20 63 6f 64 65 22 20 6d 65 61 6e 73 20 ons.to.it..."Object.code".means.
e0040 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 66 6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a 0a any.non-source.form.of.a.work...
e0060 20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 22 20 6d 65 61 6e 73 20 61 ..A."Standard.Interface".means.a
e0080 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 20 69 73 20 61 6e 20 6f 66 n.interface.that.either.is.an.of
e00a0 66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 63 ficial.standard.defined.by.a.rec
e00c0 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 20 74 ognized.standards.body,.or,.in.t
e00e0 68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 20 he.case.of.interfaces.specified.
e0100 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e for.a.particular.programming.lan
e0120 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a 69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 61 guage,.one.that.is.widely.used.a
e0140 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 20 mong.developers.working.in.that.
e0160 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 54 68 65 20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 language.....The."System.Librari
e0180 65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 64 es".of.an.executable.work.includ
e01a0 65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65 72 0a 74 68 61 6e 20 74 68 65 20 77 6f 72 6b 20 e.anything,.other.than.the.work.
e01c0 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 64 as.a.whole,.that.(a).is.included
e01e0 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f 72 6d 20 6f 66 0a 70 61 63 6b 61 67 69 6e 67 .in.the.normal.form.of.packaging
e0200 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 73 .a.Major.Component,.but.which.is
e0220 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 20 4d 61 6a 6f 72 0a 43 6f 6d 70 6f 6e 65 6e .not.part.of.that.Major.Componen
e0240 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c 65 t,.and.(b).serves.only.to.enable
e0260 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 20 74 68 61 74 0a 4d 61 6a 6f 72 .use.of.the.work.with.that.Major
e0280 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 74 .Component,.or.to.implement.a.St
e02a0 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 20 77 68 69 63 68 20 61 6e 0a 69 6d andard.Interface.for.which.an.im
e02c0 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 plementation.is.available.to.the
e02e0 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 2e 20 20 41 0a .public.in.source.code.form...A.
e0300 22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 65 "Major.Component",.in.this.conte
e0320 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d 70 xt,.means.a.major.essential.comp
e0340 6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 6e onent.(kernel,.window.system,.an
e0360 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 69 d.so.on).of.the.specific.operati
e0380 6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e 79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 ng.system.(if.any).on.which.the.
e03a0 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 72 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 69 executable.work.runs,.or.a.compi
e03c0 6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64 75 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f 72 ler.used.to.produce.the.work,.or
e03e0 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64 .an.object.code.interpreter.used
e0400 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 54 68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 6e .to.run.it.....The."Correspondin
e0420 67 20 53 6f 75 72 63 65 22 20 66 6f 72 20 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 g.Source".for.a.work.in.object.c
e0440 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61 6c 6c 0a 74 68 65 20 73 6f 75 72 63 65 20 63 6f ode.form.means.all.the.source.co
e0460 64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c 20 de.needed.to.generate,.install,.
e0480 61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 77 6f 72 6b 29 20 72 75 6e and.(for.an.executable.work).run
e04a0 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 74 .the.object.code.and.to.modify.t
e04c0 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 20 74 6f 0a 63 6f he.work,.including.scripts.to.co
e04e0 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 72 ntrol.those.activities...However
e0500 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 20 77 6f 72 6b 27 73 ,.it.does.not.include.the.work's
e0520 0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 20 67 65 6e 65 72 61 6c 2d 70 75 .System.Libraries,.or.general-pu
e0540 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 62 rpose.tools.or.generally.availab
e0560 6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 20 le.free.programs.which.are.used.
e0580 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 6f 73 65 20 61 unmodified.in.performing.those.a
e05a0 63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 74 ctivities.but.which.are.not.part
e05c0 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 43 6f 72 72 .of.the.work...For.example,.Corr
e05e0 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 0a 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 66 esponding.Source.includes.interf
e0600 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 ace.definition.files.associated.
e0620 77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 0a 74 68 65 20 77 6f 72 6b 2c 20 with.source.files.for.the.work,.
e0640 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 20 6c and.the.source.code.for.shared.l
e0660 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 6c 69 6e 6b 65 64 20 ibraries.and.dynamically.linked.
e0680 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 20 73 70 65 subprograms.that.the.work.is.spe
e06a0 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 65 71 75 69 72 65 2c 0a 73 cifically.designed.to.require,.s
e06c0 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 20 63 6f 6d 6d 75 6e 69 63 uch.as.by.intimate.data.communic
e06e0 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 68 ation.or.control.flow.between.th
e0700 6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 74 73 20 ose.subprograms.and.other.parts.
e0720 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e of.the.work.....The.Correspondin
e0740 67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69 g.Source.need.not.include.anythi
e0760 6e 67 20 74 68 61 74 20 75 73 65 72 73 0a 63 61 6e 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 74 ng.that.users.can.regenerate.aut
e0780 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74 omatically.from.other.parts.of.t
e07a0 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 53 6f 75 72 63 65 2e 0a 0a 20 20 54 68 65 20 he.Corresponding.Source.....The.
e07c0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b 20 Corresponding.Source.for.a.work.
e07e0 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 73 61 6d 65 in.source.code.form.is.that.same
e0800 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 73 73 69 6f 6e 73 2e 0a .work.....2..Basic.Permissions..
e0820 0a 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 ...All.rights.granted.under.this
e0840 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 20 74 68 65 20 74 65 72 .License.are.granted.for.the.ter
e0860 6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 61 m.of.copyright.on.the.Program,.a
e0880 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 nd.are.irrevocable.provided.the.
e08a0 73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 73 stated.conditions.are.met...This
e08c0 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 72 .License.explicitly.affirms.your
e08e0 20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 65 .unlimited.permission.to.run.the
e0900 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 74 .unmodified.Program...The.output
e0920 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 20 .from.running.a.covered.work.is.
e0940 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 20 covered.by.this.License.only.if.
e0960 74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 20 69 74 73 0a 63 6f 6e 74 65 6e 74 2c 20 63 the.output,.given.its.content,.c
e0980 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 73 onstitutes.a.covered.work...This
e09a0 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 79 6f 75 72 0a 72 69 67 68 74 .License.acknowledges.your.right
e09c0 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 69 76 61 6c 65 6e s.of.fair.use.or.other.equivalen
e09e0 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2e t,.as.provided.by.copyright.law.
e0a00 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 67 ....You.may.make,.run.and.propag
e0a20 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e 6f ate.covered.works.that.you.do.no
e0a40 74 0a 63 6f 6e 76 65 79 2c 20 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f 20 t.convey,.without.conditions.so.
e0a60 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 20 72 long.as.your.license.otherwise.r
e0a80 65 6d 61 69 6e 73 0a 69 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 emains.in.force...You.may.convey
e0aa0 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 65 .covered.works.to.others.for.the
e0ac0 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 0a 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 6b .sole.purpose.of.having.them.mak
e0ae0 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 20 e.modifications.exclusively.for.
e0b00 79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 0a 77 69 74 68 20 66 61 63 69 6c 69 74 you,.or.provide.you.with.facilit
e0b20 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 72 6f ies.for.running.those.works,.pro
e0b40 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 68 0a 74 68 65 20 74 vided.that.you.comply.with.the.t
e0b60 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 79 69 6e erms.of.this.License.in.conveyin
e0b80 67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f 0a g.all.material.for.which.you.do.
e0ba0 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 68 not.control.copyright...Those.th
e0bc0 75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 us.making.or.running.the.covered
e0be0 20 77 6f 72 6b 73 0a 66 6f 72 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 73 .works.for.you.must.do.so.exclus
e0c00 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 72 ively.on.your.behalf,.under.your
e0c20 20 64 69 72 65 63 74 69 6f 6e 0a 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d 73 .direction.and.control,.on.terms
e0c40 20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 20 .that.prohibit.them.from.making.
e0c60 61 6e 79 20 63 6f 70 69 65 73 20 6f 66 0a 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 6d any.copies.of.your.copyrighted.m
e0c80 61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 68 aterial.outside.their.relationsh
e0ca0 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 ip.with.you.....Conveying.under.
e0cc0 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d 69 any.other.circumstances.is.permi
e0ce0 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 tted.solely.under.the.conditions
e0d00 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 20 .stated.below...Sublicensing.is.
e0d20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 74 not.allowed;.section.10.makes.it
e0d40 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 55 .unnecessary.....3..Protecting.U
e0d60 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 72 sers'.Legal.Rights.From.Anti-Cir
e0d80 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 6f cumvention.Law.....No.covered.wo
e0da0 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 66 rk.shall.be.deemed.part.of.an.ef
e0dc0 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 6e fective.technological.measure.un
e0de0 64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 6e der.any.applicable.law.fulfillin
e0e00 67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 6f g.obligations.under.article.11.o
e0e20 66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f 70 f.the.WIPO.copyright.treaty.adop
e0e40 74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d 69 ted.on.20.December.1996,.or.simi
e0e60 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 74 lar.laws.prohibiting.or.restrict
e0e80 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 72 ing.circumvention.of.such.measur
e0ea0 65 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 es.....When.you.convey.a.covered
e0ec0 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 72 .work,.you.waive.any.legal.power
e0ee0 20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 .to.forbid.circumvention.of.tech
e0f00 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 nological.measures.to.the.extent
e0f20 20 73 75 63 68 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 0a 69 73 20 65 66 66 65 63 74 65 64 20 .such.circumvention.is.effected.
e0f40 62 79 20 65 78 65 72 63 69 73 69 6e 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 by.exercising.rights.under.this.
e0f60 4c 69 63 65 6e 73 65 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 0a 74 68 65 20 63 6f 76 65 License.with.respect.to.the.cove
e0f80 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 69 red.work,.and.you.disclaim.any.i
e0fa0 6e 74 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 0a 6d ntention.to.limit.operation.or.m
e0fc0 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 61 odification.of.the.work.as.a.mea
e0fe0 6e 73 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 77 6f 72 ns.of.enforcing,.against.the.wor
e1000 6b 27 73 0a 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 73 k's.users,.your.or.third.parties
e1020 27 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 20 63 69 72 63 75 6d 76 '.legal.rights.to.forbid.circumv
e1040 65 6e 74 69 6f 6e 20 6f 66 0a 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 ention.of.technological.measures
e1060 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 65 .....4..Conveying.Verbatim.Copie
e1080 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 6f s.....You.may.convey.verbatim.co
e10a0 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f 64 pies.of.the.Program's.source.cod
e10c0 65 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69 e.as.you.receive.it,.in.any.medi
e10e0 75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f 75 um,.provided.that.you.conspicuou
e1100 73 6c 79 20 61 6e 64 0a 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f 6e sly.and.appropriately.publish.on
e1120 20 65 61 63 68 20 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 .each.copy.an.appropriate.copyri
e1140 67 68 74 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 ght.notice;.keep.intact.all.noti
e1160 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e ces.stating.that.this.License.an
e1180 64 20 61 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 64 d.any.non-permissive.terms.added
e11a0 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 20 .in.accord.with.section.7.apply.
e11c0 74 6f 20 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 to.the.code;.keep.intact.all.not
e11e0 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 61 ices.of.the.absence.of.any.warra
e1200 6e 74 79 3b 20 61 6e 64 20 67 69 76 65 20 61 6c 6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 63 nty;.and.give.all.recipients.a.c
e1220 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 opy.of.this.License.along.with.t
e1240 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 6e he.Program.....You.may.charge.an
e1260 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f 70 y.price.or.no.price.for.each.cop
e1280 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 6f y.that.you.convey,.and.you.may.o
e12a0 66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 74 ffer.support.or.warranty.protect
e12c0 69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4d ion.for.a.fee.....5..Conveying.M
e12e0 6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 59 6f 75 20 odified.Source.Versions.....You.
e1300 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50 may.convey.a.work.based.on.the.P
e1320 72 6f 67 72 61 6d 2c 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 0a rogram,.or.the.modifications.to.
e1340 70 72 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e 20 produce.it.from.the.Program,.in.
e1360 74 68 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 68 the.form.of.source.code.under.th
e1380 65 0a 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 74 e.terms.of.section.4,.provided.t
e13a0 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 63 hat.you.also.meet.all.of.these.c
e13c0 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 61 29 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 onditions:......a).The.work.must
e13e0 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e 67 .carry.prominent.notices.stating
e1400 20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 69 74 2c 20 61 6e 64 20 67 .that.you.modified.....it,.and.g
e1420 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 65 2e 0a 0a 20 20 20 20 62 29 20 54 iving.a.relevant.date.......b).T
e1440 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 he.work.must.carry.prominent.not
e1460 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 72 65 6c 65 ices.stating.that.it.is.....rele
e1480 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 ased.under.this.License.and.any.
e14a0 63 6f 6e 64 69 74 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 0a 20 conditions.added.under.section..
e14c0 20 20 20 37 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 73 ...7...This.requirement.modifies
e14e0 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 6f .the.requirement.in.section.4.to
e1500 0a 20 20 20 20 22 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e 0a ....."keep.intact.all.notices"..
e1520 0a 20 20 20 20 63 29 20 59 6f 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e 74 .....c).You.must.license.the.ent
e1540 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 73 ire.work,.as.a.whole,.under.this
e1560 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 73 .....License.to.anyone.who.comes
e1580 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 69 .into.possession.of.a.copy...Thi
e15a0 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 70 s.....License.will.therefore.app
e15c0 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 73 65 ly,.along.with.any.applicable.se
e15e0 63 74 69 6f 6e 20 37 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 6f ction.7.....additional.terms,.to
e1600 20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c 20 .the.whole.of.the.work,.and.all.
e1620 69 74 73 20 70 61 72 74 73 2c 0a 20 20 20 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 its.parts,.....regardless.of.how
e1640 20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73 .they.are.packaged...This.Licens
e1660 65 20 67 69 76 65 73 20 6e 6f 0a 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 63 e.gives.no.....permission.to.lic
e1680 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 2c 20 ense.the.work.in.any.other.way,.
e16a0 62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 69 6e 76 61 6c 69 64 61 74 65 20 73 but.it.does.not.....invalidate.s
e16c0 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 72 uch.permission.if.you.have.separ
e16e0 61 74 65 6c 79 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 20 20 20 20 64 29 20 49 66 20 74 68 ately.received.it.......d).If.th
e1700 65 20 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 e.work.has.interactive.user.inte
e1720 72 66 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 41 70 rfaces,.each.must.display.....Ap
e1740 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 72 propriate.Legal.Notices;.however
e1760 2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 ,.if.the.Program.has.interactive
e1780 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 70 .....interfaces.that.do.not.disp
e17a0 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 79 lay.Appropriate.Legal.Notices,.y
e17c0 6f 75 72 0a 20 20 20 20 77 6f 72 6b 20 6e 65 65 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d 20 our.....work.need.not.make.them.
e17e0 64 6f 20 73 6f 2e 0a 0a 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 do.so.....A.compilation.of.a.cov
e1800 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 6e ered.work.with.other.separate.an
e1820 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 6e d.independent.works,.which.are.n
e1840 6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f 66 ot.by.their.nature.extensions.of
e1860 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 65 .the.covered.work,.and.which.are
e1880 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 6f .not.combined.with.it.such.as.to
e18a0 20 66 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70 72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f 6e .form.a.larger.program,.in.or.on
e18c0 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69 .a.volume.of.a.storage.or.distri
e18e0 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 0a 22 61 67 67 bution.medium,.is.called.an."agg
e1900 72 65 67 61 74 65 22 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 69 regate".if.the.compilation.and.i
e1920 74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a 75 ts.resulting.copyright.are.not.u
e1940 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 6c sed.to.limit.the.access.or.legal
e1960 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 65 .rights.of.the.compilation's.use
e1980 72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 6f rs.beyond.what.the.individual.wo
e19a0 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 rks.permit...Inclusion.of.a.cove
e19c0 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e 6f red.work.in.an.aggregate.does.no
e19e0 74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 6f t.cause.this.License.to.apply.to
e1a00 20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74 .the.other.parts.of.the.aggregat
e1a20 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 6f e.....6..Conveying.Non-Source.Fo
e1a40 72 6d 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 rms.....You.may.convey.a.covered
e1a60 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 20 .work.in.object.code.form.under.
e1a80 74 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 70 the.terms.of.sections.4.and.5,.p
e1aa0 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 65 rovided.that.you.also.convey.the
e1ac0 0a 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 .machine-readable.Corresponding.
e1ae0 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c Source.under.the.terms.of.this.L
e1b00 69 63 65 6e 73 65 2c 0a 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a 20 icense,.in.one.of.these.ways:...
e1b20 20 20 20 61 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c ...a).Convey.the.object.code.in,
e1b40 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 .or.embodied.in,.a.physical.prod
e1b60 75 63 74 0a 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 uct.....(including.a.physical.di
e1b80 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 stribution.medium),.accompanied.
e1ba0 62 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 by.the.....Corresponding.Source.
e1bc0 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 69 fixed.on.a.durable.physical.medi
e1be0 75 6d 0a 20 20 20 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 um.....customarily.used.for.soft
e1c00 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 62 29 20 43 6f 6e 76 65 79 ware.interchange.......b).Convey
e1c20 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 .the.object.code.in,.or.embodied
e1c40 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 28 69 6e 63 .in,.a.physical.product.....(inc
e1c60 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d luding.a.physical.distribution.m
e1c80 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 0a 20 20 20 20 77 72 69 edium),.accompanied.by.a.....wri
e1ca0 74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 74 tten.offer,.valid.for.at.least.t
e1cc0 68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 20 hree.years.and.valid.for.as.....
e1ce0 6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f 72 long.as.you.offer.spare.parts.or
e1d00 20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 75 .customer.support.for.that.produ
e1d20 63 74 0a 20 20 20 20 6d 6f 64 65 6c 2c 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 6f ct.....model,.to.give.anyone.who
e1d40 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 65 .possesses.the.object.code.eithe
e1d60 72 20 28 31 29 20 61 0a 20 20 20 20 63 6f 70 79 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 6f r.(1).a.....copy.of.the.Correspo
e1d80 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 73 6f 66 74 77 61 72 nding.Source.for.all.the.softwar
e1da0 65 20 69 6e 20 74 68 65 0a 20 20 20 20 70 72 6f 64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f 76 e.in.the.....product.that.is.cov
e1dc0 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 61 20 64 75 72 61 62 ered.by.this.License,.on.a.durab
e1de0 6c 65 20 70 68 79 73 69 63 61 6c 0a 20 20 20 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 69 le.physical.....medium.customari
e1e00 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 ly.used.for.software.interchange
e1e20 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 0a 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 79 ,.for.a.price.no.....more.than.y
e1e40 6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c 6c our.reasonable.cost.of.physicall
e1e60 79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 0a 20 20 20 20 63 6f 6e 76 65 79 69 6e 67 20 y.performing.this.....conveying.
e1e80 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 20 74 6f 20 63 6f 70 79 of.source,.or.(2).access.to.copy
e1ea0 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 72 .the.....Corresponding.Source.fr
e1ec0 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 65 om.a.network.server.at.no.charge
e1ee0 2e 0a 0a 20 20 20 20 63 29 20 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 69 .......c).Convey.individual.copi
e1f00 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f 70 es.of.the.object.code.with.a.cop
e1f20 79 20 6f 66 20 74 68 65 0a 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 72 y.of.the.....written.offer.to.pr
e1f40 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 ovide.the.Corresponding.Source..
e1f60 20 54 68 69 73 0a 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 64 .This.....alternative.is.allowed
e1f80 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 72 .only.occasionally.and.noncommer
e1fa0 63 69 61 6c 6c 79 2c 20 61 6e 64 0a 20 20 20 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 65 cially,.and.....only.if.you.rece
e1fc0 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 61 ived.the.object.code.with.such.a
e1fe0 6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f 72 64 0a 20 20 20 20 77 69 74 68 20 73 75 62 73 n.offer,.in.accord.....with.subs
e2000 65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 64 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 ection.6b.......d).Convey.the.ob
e2020 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 6f ject.code.by.offering.access.fro
e2040 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 73 m.a.designated.....place.(gratis
e2060 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 75 .or.for.a.charge),.and.offer.equ
e2080 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 ivalent.access.to.the.....Corres
e20a0 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 ponding.Source.in.the.same.way.t
e20c0 68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 74 20 6e 6f 0a 20 20 20 20 hrough.the.same.place.at.no.....
e20e0 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 65 further.charge...You.need.not.re
e2100 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 6f 20 63 6f 70 79 20 74 68 65 0a 20 20 20 quire.recipients.to.copy.the....
e2120 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 68 .Corresponding.Source.along.with
e2140 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 20 .the.object.code...If.the.place.
e2160 74 6f 0a 20 20 20 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 61 to.....copy.the.object.code.is.a
e2180 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 .network.server,.the.Correspondi
e21a0 6e 67 20 53 6f 75 72 63 65 0a 20 20 20 20 6d 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 72 ng.Source.....may.be.on.a.differ
e21c0 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 64 20 62 79 20 79 6f 75 20 6f 72 20 61 ent.server.(operated.by.you.or.a
e21e0 20 74 68 69 72 64 20 70 61 72 74 79 29 0a 20 20 20 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 .third.party).....that.supports.
e2200 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 20 66 61 63 69 6c 69 74 69 65 73 2c 20 70 equivalent.copying.facilities,.p
e2220 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 0a 20 20 20 20 63 6c 65 61 72 20 64 rovided.you.maintain.....clear.d
e2240 69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 irections.next.to.the.object.cod
e2260 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 0a 20 20 20 20 43 e.saying.where.to.find.the.....C
e2280 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 52 65 67 61 72 64 6c 65 73 73 orresponding.Source...Regardless
e22a0 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 0a 20 20 20 20 43 6f .of.what.server.hosts.the.....Co
e22c0 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 20 6f rresponding.Source,.you.remain.o
e22e0 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 bligated.to.ensure.that.it.is...
e2300 20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 65 ..available.for.as.long.as.neede
e2320 64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e d.to.satisfy.these.requirements.
e2340 0a 0a 20 20 20 20 65 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 ......e).Convey.the.object.code.
e2360 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 2c using.peer-to-peer.transmission,
e2380 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 70 .provided.....you.inform.other.p
e23a0 65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 43 eers.where.the.object.code.and.C
e23c0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 orresponding.....Source.of.the.w
e23e0 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 6e ork.are.being.offered.to.the.gen
e2400 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f 0a 20 20 20 20 63 68 61 72 67 65 20 75 6e 64 eral.public.at.no.....charge.und
e2420 65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 20 20 41 20 73 65 70 61 72 61 62 6c 65 er.subsection.6d.....A.separable
e2440 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 6f .portion.of.the.object.code,.who
e2460 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d 20 se.source.code.is.excluded.from.
e2480 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 79 the.Corresponding.Source.as.a.Sy
e24a0 73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65 65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 64 stem.Library,.need.not.be.includ
e24c0 65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 ed.in.conveying.the.object.code.
e24e0 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 55 73 65 72 20 50 72 6f 64 75 63 74 22 20 69 73 20 65 69 74 work.....A."User.Product".is.eit
e2500 68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 22 2c 20 77 68 her.(1).a."consumer.product",.wh
e2520 69 63 68 20 6d 65 61 6e 73 20 61 6e 79 0a 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c 20 ich.means.any.tangible.personal.
e2540 70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 20 property.which.is.normally.used.
e2560 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 20 66 61 6d 69 6c 79 2c 0a 6f 72 20 68 6f 75 73 65 68 6f for.personal,.family,.or.househo
e2580 6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 73 ld.purposes,.or.(2).anything.des
e25a0 69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f 72 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e 0a igned.or.sold.for.incorporation.
e25c0 69 6e 74 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67 into.a.dwelling...In.determining
e25e0 20 77 68 65 74 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 .whether.a.product.is.a.consumer
e2600 20 70 72 6f 64 75 63 74 2c 0a 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 62 .product,.doubtful.cases.shall.b
e2620 65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 63 6f 76 65 72 61 67 65 2e e.resolved.in.favor.of.coverage.
e2640 20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 0a 70 72 6f 64 75 63 74 20 72 65 63 65 69 ..For.a.particular.product.recei
e2660 76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 20 22 6e 6f 72 6d 61 ved.by.a.particular.user,."norma
e2680 6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73 20 74 6f 20 61 0a 74 79 70 69 63 61 6c 20 6f 72 lly.used".refers.to.a.typical.or
e26a0 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 20 6f 66 20 70 72 6f .common.use.of.that.class.of.pro
e26c0 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 0a 6f duct,.regardless.of.the.status.o
e26e0 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 20 f.the.particular.user.or.of.the.
e2700 77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 way.in.which.the.particular.user
e2720 0a 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 73 .actually.uses,.or.expects.or.is
e2740 20 65 78 70 65 63 74 65 64 20 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 20 .expected.to.use,.the.product...
e2760 41 20 70 72 6f 64 75 63 74 0a 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 20 A.product.is.a.consumer.product.
e2780 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 63 regardless.of.whether.the.produc
e27a0 74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 6e t.has.substantial.commercial,.in
e27c0 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 75 dustrial.or.non-consumer.uses,.u
e27e0 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 0a 74 68 65 20 6f 6e nless.such.uses.represent.the.on
e2800 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 68 ly.significant.mode.of.use.of.th
e2820 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f e.product....."Installation.Info
e2840 72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 6e rmation".for.a.User.Product.mean
e2860 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 6f s.any.methods,.procedures,.autho
e2880 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 74 rization.keys,.or.other.informat
e28a0 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 61 6e 64 20 65 78 65 63 ion.required.to.install.and.exec
e28c0 75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 72 ute.modified.versions.of.a.cover
e28e0 65 64 20 77 6f 72 6b 20 69 6e 20 74 68 61 74 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 6f ed.work.in.that.User.Product.fro
e2900 6d 0a 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 72 m.a.modified.version.of.its.Corr
e2920 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 esponding.Source...The.informati
e2940 6f 6e 20 6d 75 73 74 0a 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 on.must.suffice.to.ensure.that.t
e2960 68 65 20 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 20 he.continued.functioning.of.the.
e2980 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 0a 63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 61 modified.object.code.is.in.no.ca
e29a0 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 20 69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 20 se.prevented.or.interfered.with.
e29c0 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 20 solely.because.modification.has.
e29e0 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 6f been.made.....If.you.convey.an.o
e2a00 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 bject.code.work.under.this.secti
e2a20 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 20 6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 on.in,.or.with,.or.specifically.
e2a40 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 20 for.use.in,.a.User.Product,.and.
e2a60 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 20 6f 63 63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 20 the.conveying.occurs.as.part.of.
e2a80 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 74 a.transaction.in.which.the.right
e2aa0 20 6f 66 20 70 6f 73 73 65 73 73 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 73 .of.possession.and.use.of.the.Us
e2ac0 65 72 20 50 72 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 er.Product.is.transferred.to.the
e2ae0 20 72 65 63 69 70 69 65 6e 74 20 69 6e 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 20 .recipient.in.perpetuity.or.for.
e2b00 61 0a 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 20 a.fixed.term.(regardless.of.how.
e2b20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 64 the.transaction.is.characterized
e2b40 29 2c 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 ),.the.Corresponding.Source.conv
e2b60 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 eyed.under.this.section.must.be.
e2b80 61 63 63 6f 6d 70 61 6e 69 65 64 0a 62 79 20 74 68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 accompanied.by.the.Installation.
e2ba0 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 Information...But.this.requireme
e2bc0 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f 75 nt.does.not.apply.if.neither.you
e2be0 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 65 .nor.any.third.party.retains.the
e2c00 20 61 62 69 6c 69 74 79 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 6a .ability.to.install.modified.obj
e2c20 65 63 74 20 63 6f 64 65 20 6f 6e 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 6f ect.code.on.the.User.Product.(fo
e2c40 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e 73 r.example,.the.work.has.been.ins
e2c60 74 61 6c 6c 65 64 20 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 54 68 65 20 72 65 71 75 69 72 65 6d 65 talled.in.ROM).....The.requireme
e2c80 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 nt.to.provide.Installation.Infor
e2ca0 6d 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 72 mation.does.not.include.a.requir
e2cc0 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 70 ement.to.continue.to.provide.sup
e2ce0 70 6f 72 74 20 73 65 72 76 69 63 65 2c 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 20 75 70 64 61 74 port.service,.warranty,.or.updat
e2d00 65 73 0a 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 es.for.a.work.that.has.been.modi
e2d20 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 74 68 65 20 72 65 63 69 70 69 65 fied.or.installed.by.the.recipie
e2d40 6e 74 2c 20 6f 72 20 66 6f 72 0a 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 77 nt,.or.for.the.User.Product.in.w
e2d60 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73 hich.it.has.been.modified.or.ins
e2d80 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20 74 6f 20 61 0a 6e 65 74 77 6f 72 6b 20 6d 61 79 talled...Access.to.a.network.may
e2da0 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e .be.denied.when.the.modification
e2dc0 20 69 74 73 65 6c 66 20 6d 61 74 65 72 69 61 6c 6c 79 20 61 6e 64 0a 61 64 76 65 72 73 65 6c 79 .itself.materially.and.adversely
e2de0 20 61 66 66 65 63 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 .affects.the.operation.of.the.ne
e2e00 74 77 6f 72 6b 20 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 0a twork.or.violates.the.rules.and.
e2e20 70 72 6f 74 6f 63 6f 6c 73 20 66 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 6f protocols.for.communication.acro
e2e40 73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 ss.the.network.....Corresponding
e2e60 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 69 .Source.conveyed,.and.Installati
e2e80 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 6f on.Information.provided,.in.acco
e2ea0 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e 20 rd.with.this.section.must.be.in.
e2ec0 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d 65 a.format.that.is.publicly.docume
e2ee0 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e nted.(and.with.an.implementation
e2f00 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 72 .available.to.the.public.in.sour
e2f20 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 20 ce.code.form),.and.must.require.
e2f40 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 77 6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a 75 no.special.password.or.key.for.u
e2f60 6e 70 61 63 6b 69 6e 67 2c 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a 20 npacking,.reading.or.copying....
e2f80 20 37 2e 20 41 64 64 69 74 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 22 41 64 64 69 74 69 .7..Additional.Terms....."Additi
e2fa0 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 74 onal.permissions".are.terms.that
e2fc0 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c 69 .supplement.the.terms.of.this.Li
e2fe0 63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d 20 cense.by.making.exceptions.from.
e3000 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 41 one.or.more.of.its.conditions..A
e3020 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 dditional.permissions.that.are.a
e3040 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d 20 pplicable.to.the.entire.Program.
e3060 73 68 61 6c 6c 0a 62 65 20 74 72 65 61 74 65 64 20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 20 shall.be.treated.as.though.they.
e3080 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 were.included.in.this.License,.t
e30a0 6f 20 74 68 65 20 65 78 74 65 6e 74 0a 74 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 64 o.the.extent.that.they.are.valid
e30c0 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 74 .under.applicable.law...If.addit
e30e0 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20 ional.permissions.apply.only.to.
e3100 70 61 72 74 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 6d part.of.the.Program,.that.part.m
e3120 61 79 20 62 65 20 75 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f 73 ay.be.used.separately.under.thos
e3140 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 e.permissions,.but.the.entire.Pr
e3160 6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 4c ogram.remains.governed.by.this.L
e3180 69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 64 icense.without.regard.to.the.add
e31a0 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 itional.permissions.....When.you
e31c0 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b .convey.a.copy.of.a.covered.work
e31e0 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 20 ,.you.may.at.your.option.remove.
e3200 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d 20 any.additional.permissions.from.
e3220 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a 69 that.copy,.or.from.any.part.of.i
e3240 74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 20 t...(Additional.permissions.may.
e3260 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e 0a be.written.to.require.their.own.
e3280 72 65 6d 6f 76 61 6c 20 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 6f removal.in.certain.cases.when.yo
e32a0 75 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c 61 u.modify.the.work.)..You.may.pla
e32c0 63 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 74 ce.additional.permissions.on.mat
e32e0 65 72 69 61 6c 2c 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 64 erial,.added.by.you.to.a.covered
e3300 20 77 6f 72 6b 2c 0a 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 6e .work,.for.which.you.have.or.can
e3320 20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d .give.appropriate.copyright.perm
e3340 69 73 73 69 6f 6e 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 6f ission.....Notwithstanding.any.o
e3360 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 ther.provision.of.this.License,.
e3380 66 6f 72 20 6d 61 74 65 72 69 61 6c 20 79 6f 75 0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 for.material.you.add.to.a.covere
e33a0 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 62 d.work,.you.may.(if.authorized.b
e33c0 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 20 6f 66 0a 74 68 61 74 20 y.the.copyright.holders.of.that.
e33e0 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f material).supplement.the.terms.o
e3400 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 74 65 72 6d 73 3a 0a 0a 20 20 20 20 f.this.License.with.terms:......
e3420 61 29 20 44 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 74 a).Disclaiming.warranty.or.limit
e3440 69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 74 ing.liability.differently.from.t
e3460 68 65 0a 20 20 20 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 20 he.....terms.of.sections.15.and.
e3480 31 36 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 62 29 20 52 16.of.this.License;.or......b).R
e34a0 65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 69 equiring.preservation.of.specifi
e34c0 65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 0a 20 ed.reasonable.legal.notices.or..
e34e0 20 20 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 6d ...author.attributions.in.that.m
e3500 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 aterial.or.in.the.Appropriate.Le
e3520 67 61 6c 0a 20 20 20 20 4e 6f 74 69 63 65 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f 72 gal.....Notices.displayed.by.wor
e3540 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 0a 0a 20 20 20 20 63 29 20 50 72 6f ks.containing.it;.or......c).Pro
e3560 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 hibiting.misrepresentation.of.th
e3580 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 20 20 e.origin.of.that.material,.or...
e35a0 20 20 72 65 71 75 69 72 69 6e 67 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f ..requiring.that.modified.versio
e35c0 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 6e ns.of.such.material.be.marked.in
e35e0 0a 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 6e .....reasonable.ways.as.differen
e3600 74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 0a t.from.the.original.version;.or.
e3620 0a 20 20 20 20 64 29 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 62 .....d).Limiting.the.use.for.pub
e3640 6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 65 licity.purposes.of.names.of.lice
e3660 6e 73 6f 72 73 20 6f 72 0a 20 20 20 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 65 nsors.or.....authors.of.the.mate
e3680 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 65 29 20 44 65 63 6c 69 6e 69 6e 67 20 74 6f 20 67 72 rial;.or......e).Declining.to.gr
e36a0 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c 61 77 20 66 ant.rights.under.trademark.law.f
e36c0 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 74 72 61 64 65 20 6e 61 6d 65 73 2c 20 or.use.of.some.....trade.names,.
e36e0 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f 72 trademarks,.or.service.marks;.or
e3700 0a 0a 20 20 20 20 66 29 20 52 65 71 75 69 72 69 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 69 ......f).Requiring.indemnificati
e3720 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 74 on.of.licensors.and.authors.of.t
e3740 68 61 74 0a 20 20 20 20 6d 61 74 65 72 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 hat.....material.by.anyone.who.c
e3760 6f 6e 76 65 79 73 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 64 onveys.the.material.(or.modified
e3780 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 61 .versions.of.....it).with.contra
e37a0 63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 74 ctual.assumptions.of.liability.t
e37c0 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 0a 20 20 20 20 61 6e 79 20 6c 69 61 o.the.recipient,.for.....any.lia
e37e0 62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 73 bility.that.these.contractual.as
e3800 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 73 65 20 6f 6e 0a 20 20 20 sumptions.directly.impose.on....
e3820 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 0a 20 .those.licensors.and.authors....
e3840 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 69 .All.other.non-permissive.additi
e3860 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 22 66 75 72 74 68 onal.terms.are.considered."furth
e3880 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 22 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 6e er.restrictions".within.the.mean
e38a0 69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 ing.of.section.10...If.the.Progr
e38c0 61 6d 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 61 am.as.you.received.it,.or.any.pa
e38e0 72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 74 rt.of.it,.contains.a.notice.stat
e3900 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 ing.that.it.is.governed.by.this.
e3920 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 69 License.along.with.a.term.that.i
e3940 73 20 61 20 66 75 72 74 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 79 s.a.further.restriction,.you.may
e3960 20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 65 .remove.that.term...If.a.license
e3980 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 73 .document.contains.a.further.res
e39a0 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e 67 triction.but.permits.relicensing
e39c0 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 .or.conveying.under.this.License
e39e0 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 ,.you.may.add.to.a.covered.work.
e3a00 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a 6f material.governed.by.the.terms.o
e3a20 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 65 f.that.license.document,.provide
e3a40 64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 64 d.that.the.further.restriction.d
e3a60 6f 65 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e 67 oes.not.survive.such.relicensing
e3a80 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 72 .or.conveying.....If.you.add.ter
e3aa0 6d 73 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 77 ms.to.a.covered.work.in.accord.w
e3ac0 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 65 ith.this.section,.you.must.place
e3ae0 2c 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20 ,.in.the.relevant.source.files,.
e3b00 61 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 a.statement.of.the.additional.te
e3b20 72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 6f rms.that.apply.to.those.files,.o
e3b40 72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 66 r.a.notice.indicating.where.to.f
e3b60 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 41 64 64 ind.the.applicable.terms.....Add
e3b80 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f 6e itional.terms,.permissive.or.non
e3ba0 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 68 -permissive,.may.be.stated.in.th
e3bc0 65 0a 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 6c e.form.of.a.separately.written.l
e3be0 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 3b icense,.or.stated.as.exceptions;
e3c00 0a 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 69 .the.above.requirements.apply.ei
e3c20 74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 20 ther.way.....8..Termination.....
e3c40 59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 You.may.not.propagate.or.modify.
e3c60 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73 a.covered.work.except.as.express
e3c80 6c 79 0a 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 ly.provided.under.this.License..
e3ca0 20 41 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 67 .Any.attempt.otherwise.to.propag
e3cc0 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 69 ate.or.modify.it.is.void,.and.wi
e3ce0 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20 ll.automatically.terminate.your.
e3d00 72 69 67 68 74 73 20 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c 75 rights.under.this.License.(inclu
e3d20 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 64 ding.any.patent.licenses.granted
e3d40 20 75 6e 64 65 72 20 74 68 65 20 74 68 69 72 64 0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 65 .under.the.third.paragraph.of.se
e3d60 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 65 ction.11).....However,.if.you.ce
e3d80 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 ase.all.violation.of.this.Licens
e3da0 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 e,.then.your.license.from.a.part
e3dc0 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73 icular.copyright.holder.is.reins
e3de0 74 61 74 65 64 20 28 61 29 0a 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 20 tated.(a).provisionally,.unless.
e3e00 61 6e 64 20 75 6e 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65 and.until.the.copyright.holder.e
e3e20 78 70 6c 69 63 69 74 6c 79 20 61 6e 64 0a 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 73 xplicitly.and.finally.terminates
e3e40 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e 74 .your.license,.and.(b).permanent
e3e60 6c 79 2c 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 68 6f 6c 64 65 72 20 66 61 69 6c ly,.if.the.copyright.holder.fail
e3e80 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e s.to.notify.you.of.the.violation
e3ea0 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 0a 70 72 69 6f 72 20 .by.some.reasonable.means.prior.
e3ec0 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e 0a to.60.days.after.the.cessation..
e3ee0 0a 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 ...Moreover,.your.license.from.a
e3f00 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 0a .particular.copyright.holder.is.
e3f20 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 6f reinstated.permanently.if.the.co
e3f40 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 74 pyright.holder.notifies.you.of.t
e3f60 68 65 0a 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 he.violation.by.some.reasonable.
e3f80 6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f means,.this.is.the.first.time.yo
e3fa0 75 20 68 61 76 65 0a 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74 u.have.received.notice.of.violat
e3fc0 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72 ion.of.this.License.(for.any.wor
e3fe0 6b 29 20 66 72 6f 6d 20 74 68 61 74 0a 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 61 k).from.that.copyright.holder,.a
e4000 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 20 nd.you.cure.the.violation.prior.
e4020 74 6f 20 33 30 20 64 61 79 73 20 61 66 74 65 72 0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f 66 to.30.days.after.your.receipt.of
e4040 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 79 .the.notice.....Termination.of.y
e4060 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 6f our.rights.under.this.section.do
e4080 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f 66 es.not.terminate.the.licenses.of
e40a0 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 65 .parties.who.have.received.copie
e40c0 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 20 s.or.rights.from.you.under.this.
e40e0 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 65 License...If.your.rights.have.be
e4100 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e 64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 6c en.terminated.and.not.permanentl
e4120 79 0a 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 79 y.reinstated,.you.do.not.qualify
e4140 20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 65 .to.receive.new.licenses.for.the
e4160 20 73 61 6d 65 0a 6d 61 74 65 72 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 2e .same.material.under.section.10.
e4180 0a 0a 20 20 39 2e 20 41 63 63 65 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 66 ....9..Acceptance.Not.Required.f
e41a0 6f 72 20 48 61 76 69 6e 67 20 43 6f 70 69 65 73 2e 0a 0a 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 or.Having.Copies.....You.are.not
e41c0 20 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 .required.to.accept.this.License
e41e0 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 72 75 6e 20 61 20 63 6f .in.order.to.receive.or.run.a.co
e4200 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 72 py.of.the.Program...Ancillary.pr
e4220 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 75 opagation.of.a.covered.work.occu
e4240 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 rring.solely.as.a.consequence.of
e4260 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e .using.peer-to-peer.transmission
e4280 0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 73 .to.receive.a.copy.likewise.does
e42a0 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 65 .not.require.acceptance...Howeve
e42c0 72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 6e r,.nothing.other.than.this.Licen
e42e0 73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f 70 se.grants.you.permission.to.prop
e4300 61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b agate.or.modify.any.covered.work
e4320 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e 73 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 69 ...These.actions.infringe.copyri
e4340 67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 ght.if.you.do.not.accept.this.Li
e4360 63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 cense...Therefore,.by.modifying.
e4380 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 or.propagating.a.covered.work,.y
e43a0 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 74 ou.indicate.your.acceptance.of.t
e43c0 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 74 his.License.to.do.so.....10..Aut
e43e0 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 52 omatic.Licensing.of.Downstream.R
e4400 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 45 61 63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e 76 ecipients.....Each.time.you.conv
e4420 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 ey.a.covered.work,.the.recipient
e4440 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e 73 .automatically.receives.a.licens
e4460 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 74 e.from.the.original.licensors,.t
e4480 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 74 o.run,.modify.and.propagate.that
e44a0 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 .work,.subject.to.this.License..
e44c0 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e 66 .You.are.not.responsible.for.enf
e44e0 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 69 orcing.compliance.by.third.parti
e4500 65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 41 6e 20 22 65 6e 74 es.with.this.License.....An."ent
e4520 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f ity.transaction".is.a.transactio
e4540 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 67 n.transferring.control.of.an.org
e4560 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c 20 anization,.or.substantially.all.
e4580 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 6e assets.of.one,.or.subdividing.an
e45a0 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e 69 .organization,.or.merging.organi
e45c0 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f zations...If.propagation.of.a.co
e45e0 76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 74 vered.work.results.from.an.entit
e4600 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 61 y.transaction,.each.party.to.tha
e4620 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f 70 t.transaction.who.receives.a.cop
e4640 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 74 y.of.the.work.also.receives.what
e4660 65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 61 ever.licenses.to.the.work.the.pa
e4680 72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 61 rty's.predecessor.in.interest.ha
e46a0 64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 6f d.or.could.give.under.the.previo
e46c0 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 6f us.paragraph,.plus.a.right.to.po
e46e0 73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f ssession.of.the.Corresponding.So
e4700 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 63 urce.of.the.work.from.the.predec
e4720 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 63 essor.in.interest,.if.the.predec
e4740 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 20 essor.has.it.or.can.get.it.with.
e4760 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6e reasonable.efforts.....You.may.n
e4780 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f ot.impose.any.further.restrictio
e47a0 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 20 74 68 65 0a 72 69 67 68 74 73 ns.on.the.exercise.of.the.rights
e47c0 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 .granted.or.affirmed.under.this.
e47e0 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a 6e License...For.example,.you.may.n
e4800 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 79 ot.impose.a.license.fee,.royalty
e4820 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 20 6f ,.or.other.charge.for.exercise.o
e4840 66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 f.rights.granted.under.this.Lice
e4860 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 61 74 65 20 6c 69 nse,.and.you.may.not.initiate.li
e4880 74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 69 tigation.(including.a.cross-clai
e48a0 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 20 m.or.counterclaim.in.a.lawsuit).
e48c0 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e 79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 69 alleging.that.any.patent.claim.i
e48e0 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 65 s.infringed.by.making,.using,.se
e4900 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d 70 lling,.offering.for.sale,.or.imp
e4920 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 6f orting.the.Program.or.any.portio
e4940 6e 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 65 6e 74 73 2e 0a 0a 20 20 41 20 22 63 n.of.it.....11..Patents.....A."c
e4960 6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 ontributor".is.a.copyright.holde
e4980 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 0a r.who.authorizes.use.under.this.
e49a0 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b License.of.the.Program.or.a.work
e49c0 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e 20 .on.which.the.Program.is.based..
e49e0 20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c 65 .The.work.thus.licensed.is.calle
e4a00 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f 72 d.the.contributor's."contributor
e4a20 20 76 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 65 .version".....A.contributor's."e
e4a40 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c 20 ssential.patent.claims".are.all.
e4a60 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 6f 77 6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f 6c 6c 65 patent.claims.owned.or.controlle
e4a80 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 6c d.by.the.contributor,.whether.al
e4aa0 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 75 ready.acquired.or.hereafter.acqu
e4ac0 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 79 ired,.that.would.be.infringed.by
e4ae0 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65 72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 20 .some.manner,.permitted.by.this.
e4b00 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 65 License,.of.making,.using,.or.se
e4b20 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a 62 lling.its.contributor.version,.b
e4b40 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 6f ut.do.not.include.claims.that.wo
e4b60 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 65 uld.be.infringed.only.as.a.conse
e4b80 71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f quence.of.further.modification.o
e4ba0 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 0a f.the.contributor.version...For.
e4bc0 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 6f purposes.of.this.definition,."co
e4be0 6e 74 72 6f 6c 22 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 61 ntrol".includes.the.right.to.gra
e4c00 6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e 65 nt.patent.sublicenses.in.a.manne
e4c20 72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e r.consistent.with.the.requiremen
e4c40 74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 45 61 63 68 20 63 6f 6e 74 ts.of.this.License.....Each.cont
e4c60 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 69 ributor.grants.you.a.non-exclusi
e4c80 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 65 ve,.worldwide,.royalty-free.pate
e4ca0 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 nt.license.under.the.contributor
e4cc0 27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a 6d 's.essential.patent.claims,.to.m
e4ce0 61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c 20 ake,.use,.sell,.offer.for.sale,.
e4d00 69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 79 import.and.otherwise.run,.modify
e4d20 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69 .and.propagate.the.contents.of.i
e4d40 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 49 6e 20 74 68 ts.contributor.version.....In.th
e4d60 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 68 73 2c 20 61 20 e.following.three.paragraphs,.a.
e4d80 22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22 20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 0a "patent.license".is.any.express.
e4da0 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 72 agreement.or.commitment,.however
e4dc0 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 70 .denominated,.not.to.enforce.a.p
e4de0 61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 73 atent.(such.as.an.express.permis
e4e00 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f 76 sion.to.practice.a.patent.or.cov
e4e20 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 72 enant.not.to.sue.for.patent.infr
e4e40 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 22 67 72 61 6e 74 22 20 73 75 63 68 20 61 20 70 61 ingement)...To."grant".such.a.pa
e4e60 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 6f tent.license.to.a.party.means.to
e4e80 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 .make.such.an.agreement.or.commi
e4ea0 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 67 tment.not.to.enforce.a.patent.ag
e4ec0 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 ainst.the.party.....If.you.conve
e4ee0 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 y.a.covered.work,.knowingly.rely
e4f00 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 65 ing.on.a.patent.license,.and.the
e4f20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 .Corresponding.Source.of.the.wor
e4f40 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 6f k.is.not.available.for.anyone.to
e4f60 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 20 .copy,.free.of.charge.and.under.
e4f80 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f 75 the.terms.of.this.License,.throu
e4fa0 67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b 20 gh.a.publicly.available.network.
e4fc0 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 62 server.or.other.readily.accessib
e4fe0 6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 28 le.means,.then.you.must.either.(
e5000 31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 1).cause.the.Corresponding.Sourc
e5020 65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 72 e.to.be.so.available,.or.(2).arr
e5040 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 20 ange.to.deprive.yourself.of.the.
e5060 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 6f benefit.of.the.patent.license.fo
e5080 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 61 r.this.particular.work,.or.(3).a
e50a0 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 77 rrange,.in.a.manner.consistent.w
e50c0 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 63 ith.the.requirements.of.this.Lic
e50e0 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 6e ense,.to.extend.the.patent.licen
e5100 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 22 4b se.to.downstream.recipients..."K
e5120 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 22 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 65 nowingly.relying".means.you.have
e5140 0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 20 .actual.knowledge.that,.but.for.
e5160 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 69 the.patent.license,.your.conveyi
e5180 6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 79 ng.the.covered.work.in.a.country
e51a0 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 65 ,.or.your.recipient's.use.of.the
e51c0 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 6c .covered.work.in.a.country,.woul
e51e0 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 61 d.infringe.one.or.more.identifia
e5200 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 74 ble.patents.in.that.country.that
e5220 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 20 .you.have.reason.to.believe.are.
e5240 76 61 6c 69 64 2e 0a 0a 20 20 49 66 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e 20 valid.....If,.pursuant.to.or.in.
e5260 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 connection.with.a.single.transac
e5280 74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 2c tion.or.arrangement,.you.convey,
e52a0 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 65 .or.propagate.by.procuring.conve
e52c0 79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 72 yance.of,.a.covered.work,.and.gr
e52e0 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 20 ant.a.patent.license.to.some.of.
e5300 74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 the.parties.receiving.the.covere
e5320 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c 20 d.work.authorizing.them.to.use,.
e5340 70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66 79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 70 propagate,.modify.or.convey.a.sp
e5360 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c ecific.copy.of.the.covered.work,
e5380 20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 61 .then.the.patent.license.you.gra
e53a0 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f 20 nt.is.automatically.extended.to.
e53c0 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 6f all.recipients.of.the.covered.wo
e53e0 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 41 20 70 rk.and.works.based.on.it.....A.p
e5400 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 22 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 atent.license.is."discriminatory
e5420 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e 0a ".if.it.does.not.include.within.
e5440 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 69 the.scope.of.its.coverage,.prohi
e5460 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f 72 20 69 73 0a 63 6f 6e 64 bits.the.exercise.of,.or.is.cond
e5480 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 6f itioned.on.the.non-exercise.of.o
e54a0 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 72 ne.or.more.of.the.rights.that.ar
e54c0 65 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 e.specifically.granted.under.thi
e54e0 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 61 s.License...You.may.not.convey.a
e5500 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 69 66 20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 79 .covered.work.if.you.are.a.party
e5520 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 20 .to.an.arrangement.with.a.third.
e5540 70 61 72 74 79 20 74 68 61 74 20 69 73 0a 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f 66 party.that.is.in.the.business.of
e5560 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 68 .distributing.software,.under.wh
e5580 69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 6d 65 6e 74 0a 74 6f 20 74 68 65 20 74 68 69 72 ich.you.make.payment.to.the.thir
e55a0 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 79 d.party.based.on.the.extent.of.y
e55c0 6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 0a 74 68 65 20 77 6f our.activity.of.conveying.the.wo
e55e0 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 61 rk,.and.under.which.the.third.pa
e5600 72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f 66 20 74 68 65 0a 70 61 72 74 69 65 rty.grants,.to.any.of.the.partie
e5620 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 20 s.who.would.receive.the.covered.
e5640 77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 0a work.from.you,.a.discriminatory.
e5660 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e patent.license.(a).in.connection
e5680 20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b .with.copies.of.the.covered.work
e56a0 0a 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 65 .conveyed.by.you.(or.copies.made
e56c0 20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 6d .from.those.copies),.or.(b).prim
e56e0 61 72 69 6c 79 0a 66 6f 72 20 61 6e 64 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 arily.for.and.in.connection.with
e5700 20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f .specific.products.or.compilatio
e5720 6e 73 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b ns.that.contain.the.covered.work
e5740 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 61 ,.unless.you.entered.into.that.a
e5760 72 72 61 6e 67 65 6d 65 6e 74 2c 0a 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 6e rrangement,.or.that.patent.licen
e5780 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 63 se.was.granted,.prior.to.28.Marc
e57a0 68 20 32 30 30 37 2e 0a 0a 20 20 4e 6f 74 68 69 6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e h.2007.....Nothing.in.this.Licen
e57c0 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 65 64 20 61 73 20 65 78 63 6c 75 64 69 se.shall.be.construed.as.excludi
e57e0 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61 6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 6e ng.or.limiting.any.implied.licen
e5800 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 65 se.or.other.defenses.to.infringe
e5820 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74 68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 6c ment.that.may.otherwise.be.avail
e5840 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 74 able.to.you.under.applicable.pat
e5860 65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20 4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 20 ent.law.....12..No.Surrender.of.
e5880 4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e 0a 0a 20 20 49 66 20 63 6f 6e 64 69 74 69 6f 6e Others'.Freedom.....If.condition
e58a0 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 79 s.are.imposed.on.you.(whether.by
e58c0 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 6f 74 68 65 72 .court.order,.agreement.or.other
e58e0 77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 74 wise).that.contradict.the.condit
e5900 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 20 64 6f 20 6e 6f ions.of.this.License,.they.do.no
e5920 74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 t.excuse.you.from.the.conditions
e5940 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 20 63 61 6e 6e 6f 74 .of.this.License...If.you.cannot
e5960 20 63 6f 6e 76 65 79 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f 20 .convey.a.covered.work.so.as.to.
e5980 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 79 6f 75 72 20 6f 62 6c 69 satisfy.simultaneously.your.obli
e59a0 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 gations.under.this.License.and.a
e59c0 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c 20 ny.other.pertinent.obligations,.
e59e0 74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 79 6f 75 20 6d 61 79 0a 6e 6f then.as.a.consequence.you.may.no
e5a00 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 t.convey.it.at.all...For.example
e5a20 2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74 6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 6c ,.if.you.agree.to.terms.that.obl
e5a40 69 67 61 74 65 20 79 6f 75 0a 74 6f 20 63 6f 6c 6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 66 igate.you.to.collect.a.royalty.f
e5a60 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 20 or.further.conveying.from.those.
e5a80 74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 0a 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 to.whom.you.convey.the.Program,.
e5aa0 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 62 the.only.way.you.could.satisfy.b
e5ac0 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 oth.those.terms.and.this.License
e5ae0 20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 72 .would.be.to.refrain.entirely.fr
e5b00 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 2e om.conveying.the.Program.....13.
e5b20 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c .Use.with.the.GNU.Affero.General
e5b40 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 .Public.License.....Notwithstand
e5b60 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 ing.any.other.provision.of.this.
e5b80 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 License,.you.have.permission.to.
e5ba0 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b link.or.combine.any.covered.work
e5bc0 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a 75 6e 64 65 72 20 76 65 72 73 .with.a.work.licensed.under.vers
e5be0 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 ion.3.of.the.GNU.Affero.General.
e5c00 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 63 6f 6d Public.License.into.a.single.com
e5c20 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 65 bined.work,.and.to.convey.the.re
e5c40 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 sulting.work...The.terms.of.this
e5c60 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 20 .License.will.continue.to.apply.
e5c80 74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 68 65 20 63 6f 76 65 72 65 64 to.the.part.which.is.the.covered
e5ca0 20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d 65 .work,.but.the.special.requireme
e5cc0 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 nts.of.the.GNU.Affero.General.Pu
e5ce0 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65 63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 72 blic.License,.section.13,.concer
e5d00 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 20 61 20 6e 65 74 77 6f ning.interaction.through.a.netwo
e5d20 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e rk.will.apply.to.the.combination
e5d40 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 76 69 73 65 64 20 56 65 72 73 69 6f 6e .as.such.....14..Revised.Version
e5d60 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 54 68 65 20 46 72 65 65 20 53 s.of.this.License.....The.Free.S
e5d80 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 72 oftware.Foundation.may.publish.r
e5da0 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 74 68 evised.and/or.new.versions.of.th
e5dc0 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 72 6f e.GNU.General.Public.License.fro
e5de0 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 20 76 65 72 73 69 6f m.time.to.time...Such.new.versio
e5e00 6e 73 20 77 69 6c 6c 0a 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20 ns.will.be.similar.in.spirit.to.
e5e20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 20 64 69 66 the.present.version,.but.may.dif
e5e40 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 0a 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f fer.in.detail.to.address.new.pro
e5e60 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 45 61 63 68 20 76 65 72 73 69 blems.or.concerns.....Each.versi
e5e80 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 72 on.is.given.a.distinguishing.ver
e5ea0 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 50 72 6f 67 72 61 6d 20 73 70 65 sion.number...If.the.Program.spe
e5ec0 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 76 cifies.that.a.certain.numbered.v
e5ee0 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 ersion.of.the.GNU.General.Public
e5f00 20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 20 .License."or.any.later.version".
e5f20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 74 68 65 0a 6f 70 74 69 applies.to.it,.you.have.the.opti
e5f40 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f on.of.following.the.terms.and.co
e5f60 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 6e 75 6d 62 65 72 65 64 nditions.either.of.that.numbered
e5f80 0a 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e .version.or.of.any.later.version
e5fa0 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a .published.by.the.Free.Software.
e5fc0 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 73 Foundation...If.the.Program.does
e5fe0 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 .not.specify.a.version.number.of
e6000 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c .the.GNU.General.Public.License,
e6020 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 72 .you.may.choose.any.version.ever
e6040 20 70 75 62 6c 69 73 68 65 64 0a 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 .published.by.the.Free.Software.
e6060 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 73 70 Foundation.....If.the.Program.sp
e6080 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 65 63 69 64 65 20 ecifies.that.a.proxy.can.decide.
e60a0 77 68 69 63 68 20 66 75 74 75 72 65 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e 55 which.future.versions.of.the.GNU
e60c0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 63 61 6e 20 62 65 20 75 .General.Public.License.can.be.u
e60e0 73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27 73 0a 70 75 62 6c 69 63 20 73 74 61 74 65 6d 65 sed,.that.proxy's.public.stateme
e6100 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 65 nt.of.acceptance.of.a.version.pe
e6120 72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 0a 74 6f 20 63 68 6f 6f rmanently.authorizes.you.to.choo
e6140 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d 2e se.that.version.for.the.Program.
e6160 0a 0a 20 20 4c 61 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 67 ....Later.license.versions.may.g
e6180 69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 0a ive.you.additional.or.different.
e61a0 70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 69 permissions...However,.no.additi
e61c0 6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 onal.obligations.are.imposed.on.
e61e0 61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 61 any.author.or.copyright.holder.a
e6200 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 66 s.a.result.of.your.choosing.to.f
e6220 6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 31 35 2e 20 44 69 ollow.a.later.version.....15..Di
e6240 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 20 20 54 48 45 52 45 20 49 sclaimer.of.Warranty.....THERE.I
e6260 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c 20 54 S.NO.WARRANTY.FOR.THE.PROGRAM,.T
e6280 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c 49 43 O.THE.EXTENT.PERMITTED.BY.APPLIC
e62a0 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 45 ABLE.LAW...EXCEPT.WHEN.OTHERWISE
e62c0 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 .STATED.IN.WRITING.THE.COPYRIGHT
e62e0 0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 52 .HOLDERS.AND/OR.OTHER.PARTIES.PR
e6300 4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41 4d 20 22 41 53 20 49 53 22 20 57 49 54 48 4f 55 OVIDE.THE.PROGRAM."AS.IS".WITHOU
e6320 54 20 57 41 52 52 41 4e 54 59 0a 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 45 T.WARRANTY.OF.ANY.KIND,.EITHER.E
e6340 58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 XPRESSED.OR.IMPLIED,.INCLUDING,.
e6360 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 54 48 45 20 49 4d 50 4c 49 45 44 20 BUT.NOT.LIMITED.TO,.THE.IMPLIED.
e6380 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e WARRANTIES.OF.MERCHANTABILITY.AN
e63a0 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 0a 50 55 52 50 4f D.FITNESS.FOR.A.PARTICULAR.PURPO
e63c0 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20 52 49 53 4b 20 41 53 20 54 4f 20 54 48 45 20 51 SE...THE.ENTIRE.RISK.AS.TO.THE.Q
e63e0 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 20 54 48 45 20 50 52 UALITY.AND.PERFORMANCE.OF.THE.PR
e6400 4f 47 52 41 4d 0a 49 53 20 57 49 54 48 20 59 4f 55 2e 20 20 53 48 4f 55 4c 44 20 54 48 45 20 50 OGRAM.IS.WITH.YOU...SHOULD.THE.P
e6420 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 55 ROGRAM.PROVE.DEFECTIVE,.YOU.ASSU
e6440 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 0a 41 4c 4c 20 4e 45 43 45 53 53 41 52 59 20 53 45 52 ME.THE.COST.OF.ALL.NECESSARY.SER
e6460 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a 20 VICING,.REPAIR.OR.CORRECTION....
e6480 20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a 20 .16..Limitation.of.Liability....
e64a0 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 20 .IN.NO.EVENT.UNLESS.REQUIRED.BY.
e64c0 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 20 57 APPLICABLE.LAW.OR.AGREED.TO.IN.W
e64e0 52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 RITING.WILL.ANY.COPYRIGHT.HOLDER
e6500 2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 45 ,.OR.ANY.OTHER.PARTY.WHO.MODIFIE
e6520 53 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 0a 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 20 S.AND/OR.CONVEYS.THE.PROGRAM.AS.
e6540 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 4f PERMITTED.ABOVE,.BE.LIABLE.TO.YO
e6560 55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 0a 47 45 4e U.FOR.DAMAGES,.INCLUDING.ANY.GEN
e6580 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 4f 4e ERAL,.SPECIAL,.INCIDENTAL.OR.CON
e65a0 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 49 53 49 4e 47 20 4f 55 54 20 4f SEQUENTIAL.DAMAGES.ARISING.OUT.O
e65c0 46 20 54 48 45 0a 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 54 48 F.THE.USE.OR.INABILITY.TO.USE.TH
e65e0 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d E.PROGRAM.(INCLUDING.BUT.NOT.LIM
e6600 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 0a 44 41 54 41 20 4f 52 20 44 41 54 41 20 42 45 49 ITED.TO.LOSS.OF.DATA.OR.DATA.BEI
e6620 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 53 NG.RENDERED.INACCURATE.OR.LOSSES
e6640 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 50 41 52 54 49 .SUSTAINED.BY.YOU.OR.THIRD.PARTI
e6660 45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 54 ES.OR.A.FAILURE.OF.THE.PROGRAM.T
e6680 4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 41 4d O.OPERATE.WITH.ANY.OTHER.PROGRAM
e66a0 53 29 2c 0a 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 52 S),.EVEN.IF.SUCH.HOLDER.OR.OTHER
e66c0 20 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 .PARTY.HAS.BEEN.ADVISED.OF.THE.P
e66e0 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 0a 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 31 OSSIBILITY.OF.SUCH.DAMAGES.....1
e6700 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 35 7..Interpretation.of.Sections.15
e6720 20 61 6e 64 20 31 36 2e 0a 0a 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f 66 .and.16.....If.the.disclaimer.of
e6740 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 62 .warranty.and.limitation.of.liab
e6760 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61 62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 67 ility.provided.above.cannot.be.g
e6780 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 6e iven.local.legal.effect.accordin
e67a0 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 72 g.to.their.terms,.reviewing.cour
e67c0 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d 6f ts.shall.apply.local.law.that.mo
e67e0 73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f 78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f 6c st.closely.approximates.an.absol
e6800 75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 74 ute.waiver.of.all.civil.liabilit
e6820 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 6d y.in.connection.with.the.Program
e6840 2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 6f ,.unless.a.warranty.or.assumptio
e6860 6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f 70 n.of.liability.accompanies.a.cop
e6880 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 61 y.of.the.Program.in.return.for.a
e68a0 20 66 65 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 .fee........................END.
e68c0 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 20 20 20 20 20 OF.TERMS.AND.CONDITIONS.........
e68e0 20 20 20 20 20 48 6f 77 20 74 6f 20 41 70 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 6f .....How.to.Apply.These.Terms.to
e6900 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61 6d 73 0a 0a 20 20 49 66 20 79 6f 75 20 64 65 76 .Your.New.Programs....If.you.dev
e6920 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 elop.a.new.program,.and.you.want
e6940 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 62 .it.to.be.of.the.greatest.possib
e6960 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 77 le.use.to.the.public,.the.best.w
e6980 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 74 ay.to.achieve.this.is.to.make.it
e69a0 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 61 .free.software.which.everyone.ca
e69c0 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 20 n.redistribute.and.change.under.
e69e0 74 68 65 73 65 20 74 65 72 6d 73 2e 0a 0a 20 20 54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 68 these.terms.....To.do.so,.attach
e6a00 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 72 .the.following.notices.to.the.pr
e6a20 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 74 ogram...It.is.safest.to.attach.t
e6a40 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 20 hem.to.the.start.of.each.source.
e6a60 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 74 file.to.most.effectively.state.t
e6a80 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 61 he.exclusion.of.warranty;.and.ea
e6aa0 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 0a 74 68 65 ch.file.should.have.at.least.the
e6ac0 20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 ."copyright".line.and.a.pointer.
e6ae0 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 6e to.where.the.full.notice.is.foun
e6b00 64 2e 0a 0a 20 20 20 20 3c 6f 6e 65 20 6c 69 6e 65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 72 d.......<one.line.to.give.the.pr
e6b20 6f 67 72 61 6d 27 73 20 6e 61 6d 65 20 61 6e 64 20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f 66 ogram's.name.and.a.brief.idea.of
e6b40 20 77 68 61 74 20 69 74 20 64 6f 65 73 2e 3e 0a 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 .what.it.does.>.....Copyright.(C
e6b60 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 3e 0a 0a 20 20 20 20 ).<year>..<name.of.author>......
e6b80 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 This.program.is.free.software:.y
e6ba0 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f ou.can.redistribute.it.and/or.mo
e6bc0 64 69 66 79 0a 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 dify.....it.under.the.terms.of.t
e6be0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 he.GNU.General.Public.License.as
e6c00 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 .published.by.....the.Free.Softw
e6c20 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 are.Foundation,.either.version.3
e6c40 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 20 20 20 20 28 61 74 20 79 6f 75 72 .of.the.License,.or.....(at.your
e6c60 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 20 .option).any.later.version......
e6c80 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 .This.program.is.distributed.in.
e6ca0 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
e6cc0 0a 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 .....but.WITHOUT.ANY.WARRANTY;.w
e6ce0 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 ithout.even.the.implied.warranty
e6d00 20 6f 66 0a 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 .of.....MERCHANTABILITY.or.FITNE
e6d20 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
e6d40 65 20 74 68 65 0a 20 20 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 e.the.....GNU.General.Public.Lic
e6d60 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 20 59 6f 75 20 ense.for.more.details.......You.
e6d80 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 should.have.received.a.copy.of.t
e6da0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 20 he.GNU.General.Public.License...
e6dc0 20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e ..along.with.this.program...If.n
e6de0 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 ot,.see.<http://www.gnu.org/lice
e6e00 6e 73 65 73 2f 3e 2e 0a 0a 41 6c 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e nses/>...Also.add.information.on
e6e20 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f 6e 69 .how.to.contact.you.by.electroni
e6e40 63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c 2e 0a 0a 20 20 49 66 20 74 68 65 20 70 72 6f 67 c.and.paper.mail.....If.the.prog
e6e60 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c 20 6d ram.does.terminal.interaction,.m
e6e80 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c 69 6b ake.it.output.a.short.notice.lik
e6ea0 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e 74 65 e.this.when.it.starts.in.an.inte
e6ec0 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20 20 20 20 3c 70 72 6f 67 72 61 6d 3e 20 20 43 6f ractive.mode:......<program>..Co
e6ee0 70 79 72 69 67 68 74 20 28 43 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74 pyright.(C).<year>..<name.of.aut
e6f00 68 6f 72 3e 0a 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 68 hor>.....This.program.comes.with
e6f20 20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 74 .ABSOLUTELY.NO.WARRANTY;.for.det
e6f40 61 69 6c 73 20 74 79 70 65 20 60 73 68 6f 77 20 77 27 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 ails.type.`show.w'......This.is.
e6f60 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c 63 6f free.software,.and.you.are.welco
e6f80 6d 65 20 74 6f 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 0a 20 20 20 20 75 6e 64 65 72 20 me.to.redistribute.it.....under.
e6fa0 63 65 72 74 61 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 60 73 68 6f 77 20 63 certain.conditions;.type.`show.c
e6fc0 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 61 6c '.for.details...The.hypothetical
e6fe0 20 63 6f 6d 6d 61 6e 64 73 20 60 73 68 6f 77 20 77 27 20 61 6e 64 20 60 73 68 6f 77 20 63 27 20 .commands.`show.w'.and.`show.c'.
e7000 73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 70 61 72 74 should.show.the.appropriate.part
e7020 73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e s.of.the.General.Public.License.
e7040 20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 27 73 20 63 6f 6d 6d ..Of.course,.your.program's.comm
e7060 61 6e 64 73 0a 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 20 47 ands.might.be.different;.for.a.G
e7080 55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 61 6e 20 22 UI.interface,.you.would.use.an."
e70a0 61 62 6f 75 74 20 62 6f 78 22 2e 0a 0a 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 67 about.box".....You.should.also.g
e70c0 65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 61 73 et.your.employer.(if.you.work.as
e70e0 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 6e 79 .a.programmer).or.school,.if.any
e7100 2c 20 74 6f 20 73 69 67 6e 20 61 20 22 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 6d 65 ,.to.sign.a."copyright.disclaime
e7120 72 22 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 72 79 r".for.the.program,.if.necessary
e7140 2e 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 2c 20 ..For.more.information.on.this,.
e7160 61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 and.how.to.apply.and.follow.the.
e7180 47 4e 55 20 47 50 4c 2c 20 73 65 65 0a 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 GNU.GPL,.see.<http://www.gnu.org
e71a0 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 /licenses/>.....The.GNU.General.
e71c0 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 74 20 69 Public.License.does.not.permit.i
e71e0 6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 0a 69 6e 74 6f 20 70 ncorporating.your.program.into.p
e7200 72 6f 70 72 69 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 20 70 72 roprietary.programs...If.your.pr
e7220 6f 67 72 61 6d 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 20 6c 69 62 72 61 72 79 2c 20 79 ogram.is.a.subroutine.library,.y
e7240 6f 75 0a 6d 61 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 74 ou.may.consider.it.more.useful.t
e7260 6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 20 61 70 70 o.permit.linking.proprietary.app
e7280 6c 69 63 61 74 69 6f 6e 73 20 77 69 74 68 0a 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20 lications.with.the.library...If.
e72a0 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 75 73 65 this.is.what.you.want.to.do,.use
e72c0 20 74 68 65 20 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 20 4c .the.GNU.Lesser.General.Public.L
e72e0 69 63 65 6e 73 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 icense.instead.of.this.License..
e7300 20 42 75 74 20 66 69 72 73 74 2c 20 70 6c 65 61 73 65 20 72 65 61 64 0a 3c 68 74 74 70 3a 2f 2f .But.first,.please.read.<http://
e7320 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 70 68 69 6c 6f 73 6f 70 68 79 2f 77 68 79 2d 6e 6f 74 2d 6c www.gnu.org/philosophy/why-not-l
e7340 67 70 6c 2e 68 74 6d 6c 3e 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 gpl.html>.......................
e7360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e73a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e73c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e73e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2e 65 6c 00 00 00 00 emms-24/emms-source-beets.el....
e7420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
e7480 30 30 32 33 32 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 36 31 00 20 30 00 00 00 0023211.00000000000.014561..0...
e74a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e74c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e74e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
e7520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
e7540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e75a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e75c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e75e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e7600 3b 3b 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2e 65 6c 20 2d 2d 2d 20 45 4d 4d ;;;.emms-source-beets.el.---.EMM
e7620 53 20 73 6f 75 72 63 65 20 75 74 69 6c 69 7a 69 6e 67 20 61 20 62 65 65 74 73 20 6c 69 62 72 61 S.source.utilizing.a.beets.libra
e7640 72 79 20 64 61 74 61 62 61 73 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a ry.database.-*-.lexical-binding:
e7660 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 46 .t;.-*-..;;.Copyright.(C).2023.F
e7680 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b ree.Software.Foundation,.Inc...;
e76a0 3b 20 41 75 74 68 6f 72 3a 20 44 61 6e 69 65 6c 20 53 65 6d 79 6f 6e 6f 76 20 3c 64 61 6e 69 65 ;.Author:.Daniel.Semyonov.<danie
e76c0 6c 40 64 73 65 6d 79 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 l@dsemy.com>..;;.This.file.is.pa
e76e0 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 rt.of.EMMS...;;.EMMS.is.free.sof
e7700 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 tware;.you.can.redistribute.it.a
e7720 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 nd/or.modify.it.;;.under.the.ter
e7740 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 ms.of.the.GNU.General.Public.Lic
e7760 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 ense.as.published.by.;;.the.Free
e7780 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 .Software.Foundation;.either.ver
e77a0 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 sion.3,.or.(at.your.option).;;.a
e77c0 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 ny.later.version...;;.EMMS.is.di
e77e0 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 stributed.in.the.hope.that.it.wi
e7800 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 ll.be.useful,.but.WITHOUT.;;.ANY
e7820 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c .WARRANTY;.without.even.the.impl
e7840 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a ied.warranty.of.MERCHANTABILITY.
e7860 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 ;;.or.FITNESS.FOR.A.PARTICULAR.P
e7880 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 URPOSE...See.the.GNU.General.Pub
e78a0 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e lic.;;.License.for.more.details.
e78c0 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ..;;.You.should.have.received.a.
e78e0 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c copy.of.the.GNU.General.Public.L
e7900 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 icense.;;.along.with.EMMS;.see.t
e7920 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 he.file.COPYING..If.not,.write.t
e7940 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f o.the.Free.;;.Software.Foundatio
e7960 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 n,.Inc.,.51.Franklin.Street,.Fif
e7980 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 th.Floor,.Boston,.;;.MA.02110-13
e79a0 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 01,.USA...;;;.Commentary:..;;.Th
e79c0 69 73 20 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 6e 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 is.file.provides.an.EMMS.source.
e79e0 77 68 69 63 68 20 75 74 69 6c 69 7a 65 73 20 45 6d 61 63 73 27 20 53 51 4c 69 74 65 0a 3b 3b 20 which.utilizes.Emacs'.SQLite.;;.
e7a00 73 75 70 70 6f 72 74 20 74 6f 20 72 65 61 64 20 61 20 62 65 65 74 73 20 6c 69 62 72 61 72 79 20 support.to.read.a.beets.library.
e7a20 64 61 74 61 62 61 73 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 65 6e database...;;;.Code:..(eval-when
e7a40 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 0a 20 20 -compile...(require.'subr-x)....
e7a60 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 73 71 6c 69 74 65 2d 6e 65 78 74 20 22 73 (declare-function.sqlite-next."s
e7a80 71 6c 69 74 65 2e 63 22 29 0a 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 73 71 qlite.c")...(declare-function.sq
e7aa0 6c 69 74 65 2d 6f 70 65 6e 20 22 73 71 6c 69 74 65 2e 63 22 29 0a 20 20 28 64 65 63 6c 61 72 65 lite-open."sqlite.c")...(declare
e7ac0 2d 66 75 6e 63 74 69 6f 6e 20 73 71 6c 69 74 65 2d 73 65 6c 65 63 74 20 22 73 71 6c 69 74 65 2e -function.sqlite-select."sqlite.
e7ae0 63 22 29 29 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 67 72 6f 75 70 c"))..(require.'emms)..(defgroup
e7b00 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 20 6e 69 6c 0a 20 20 22 45 4d 4d 53 20 73 .emms-source-beets.nil..."EMMS.s
e7b20 6f 75 72 63 65 20 66 6f 72 20 62 65 65 74 73 20 6c 69 62 72 61 72 79 20 64 61 74 61 62 61 73 65 ource.for.beets.library.database
e7b40 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 0a 20 20 3a 70 72 65 s."...:group.'emms-source...:pre
e7b60 66 69 78 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 22 29 0a 0a 28 64 65 66 63 fix."emms-source-beets-")..(defc
e7b80 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 64 61 74 61 62 61 73 65 ustom.emms-source-beets-database
e7ba0 0a 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 62 65 65 74 73 2f 6c 69 62 72 ...(expand-file-name."beets/libr
e7bc0 61 72 79 2e 64 62 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 ary.db".....................(or.
e7be0 28 67 65 74 65 6e 76 20 22 58 44 47 5f 43 4f 4e 46 49 47 5f 48 4f 4d 45 22 29 20 22 7e 2f 2e 63 (getenv."XDG_CONFIG_HOME")."~/.c
e7c00 6f 6e 66 69 67 22 29 29 0a 20 20 22 44 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 onfig"))..."Database.containing.
e7c20 62 65 65 74 73 20 6c 69 62 72 61 72 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 74 beets.library.information."...:t
e7c40 79 70 65 20 27 28 66 69 6c 65 20 3a 6d 75 73 74 2d 6d 61 74 63 68 20 74 29 29 0a 0a 28 64 65 66 ype.'(file.:must-match.t))..(def
e7c60 63 6f 6e 73 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 2d 69 74 65 6d 73 2d 63 const.emms-source-beets--items-c
e7c80 6f 6c 75 6d 6e 73 0a 20 20 27 28 22 74 69 74 6c 65 22 20 22 61 72 74 69 73 74 22 20 22 61 72 74 olumns...'("title"."artist"."art
e7ca0 69 73 74 5f 73 6f 72 74 22 20 22 61 6c 62 75 6d 22 20 22 61 6c 62 75 6d 61 72 74 69 73 74 22 0a ist_sort"."album"."albumartist".
e7cc0 20 20 20 20 22 61 6c 62 75 6d 61 72 74 69 73 74 5f 73 6f 72 74 22 20 22 67 65 6e 72 65 22 20 22 ...."albumartist_sort"."genre"."
e7ce0 63 6f 6d 70 6f 73 65 72 22 20 22 63 6f 6d 70 6f 73 65 72 5f 73 6f 72 74 22 20 22 79 65 61 72 22 composer"."composer_sort"."year"
e7d00 20 22 74 72 61 63 6b 22 0a 20 20 20 20 22 74 72 61 63 6b 74 6f 74 61 6c 22 20 22 64 69 73 63 22 ."track"....."tracktotal"."disc"
e7d20 20 22 64 69 73 63 74 6f 74 61 6c 22 20 22 6c 61 62 65 6c 22 20 22 6f 72 69 67 69 6e 61 6c 5f 79 ."disctotal"."label"."original_y
e7d40 65 61 72 22 20 22 6c 65 6e 67 74 68 22 29 0a 20 20 22 43 6f 6c 75 6d 6e 73 20 74 6f 20 70 72 6f ear"."length")..."Columns.to.pro
e7d60 63 65 73 73 20 69 6e 20 74 68 65 20 5c 22 69 74 65 6d 73 5c 22 20 74 61 62 6c 65 2e 22 29 0a 0a cess.in.the.\"items\".table.")..
e7d80 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 73 6f 72 (defcustom.emms-source-beets-sor
e7da0 74 2d 63 6f 6c 75 6d 6e 73 0a 20 20 27 28 28 22 61 6c 62 75 6d 61 72 74 69 73 74 5f 73 6f 72 74 t-columns...'(("albumartist_sort
e7dc0 22 29 20 28 22 61 6c 62 75 6d 22 29 20 28 22 74 72 61 63 6b 22 29 29 0a 20 20 22 4c 69 73 74 20 ").("album").("track"))..."List.
e7de0 6f 66 20 63 6f 6c 75 6d 6e 73 20 74 6f 20 73 6f 72 74 20 62 79 20 77 68 65 6e 20 61 64 64 69 6e of.columns.to.sort.by.when.addin
e7e00 67 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 61 20 62 65 65 74 73 20 64 61 74 61 62 61 73 65 2e 0a g.tracks.from.a.beets.database..
e7e20 45 61 63 68 20 5c 22 63 6f 6c 75 6d 6e 5c 22 20 73 68 6f 75 6c 64 20 62 65 20 63 6f 6e 73 20 63 Each.\"column\".should.be.cons.c
e7e40 65 6c 6c 20 77 68 6f 73 65 20 63 61 72 20 69 73 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 ell.whose.car.is.the.column.name
e7e60 20 28 61 0a 73 74 72 69 6e 67 29 2c 20 61 6e 64 20 74 68 65 20 63 64 72 2c 20 69 66 20 6e 6f 6e .(a.string),.and.the.cdr,.if.non
e7e80 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 74 65 73 20 61 20 64 65 73 63 65 6e 64 69 6e 67 20 73 6f 72 -nil,.indicates.a.descending.sor
e7ea0 74 20 6f 72 64 65 72 0a 66 6f 72 20 74 68 65 20 63 6f 6c 75 6d 6e 2e 22 0a 20 20 3a 74 79 70 65 t.order.for.the.column."...:type
e7ec0 20 60 28 20 72 65 70 65 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 3a 74 61 67 .`(.repeat............(cons.:tag
e7ee0 20 22 53 6f 72 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 61 64 69 6f 20 ."Sort"..................(radio.
e7f00 3a 74 61 67 20 22 43 6f 6c 75 6d 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :tag."Column"...................
e7f20 20 20 20 20 20 20 2c 40 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c 29 20 60 28 ......,@(mapcar.(lambda.(col).`(
e7f40 63 6f 6e 73 74 20 2c 63 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 const.,col))....................
e7f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 ...............emms-source-beets
e7f80 2d 2d 69 74 65 6d 73 2d 63 6f 6c 75 6d 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --items-columns))...............
e7fa0 20 20 20 28 62 6f 6f 6c 65 61 6e 20 3a 74 61 67 20 22 44 65 73 63 65 6e 64 69 6e 67 22 29 29 29 ...(boolean.:tag."Descending")))
e7fc0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 2d 65 6e 73 )..(defun.emms-source-beets--ens
e7fe0 75 72 65 2d 73 71 6c 69 74 65 20 28 29 0a 20 20 22 45 6d 69 74 20 61 20 75 73 65 72 20 65 72 72 ure-sqlite.()..."Emit.a.user.err
e8000 6f 72 20 69 66 20 53 51 4c 69 74 65 20 73 75 70 70 6f 72 74 20 69 73 20 6e 6f 74 20 61 76 61 69 or.if.SQLite.support.is.not.avai
e8020 6c 61 62 6c 65 2e 22 0a 20 20 28 6f 72 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 73 71 6c lable."...(or.(and.(fboundp.'sql
e8040 69 74 65 2d 61 76 61 69 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 71 6c ite-available-p)............(sql
e8060 69 74 65 2d 61 76 61 69 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 ite-available-p)).......(user-er
e8080 72 6f 72 0a 20 20 20 20 20 20 20 22 53 51 4c 69 74 65 20 73 75 70 70 6f 72 74 20 69 73 20 6e 6f ror........"SQLite.support.is.no
e80a0 74 20 61 76 61 69 6c 61 62 6c 65 20 28 72 65 71 75 69 72 65 64 20 74 6f 20 72 65 61 64 20 62 65 t.available.(required.to.read.be
e80c0 65 74 73 20 64 61 74 61 62 61 73 65 73 29 22 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f ets.databases)")))..;;;###autolo
e80e0 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 62 65 65 74 73 20 22 65 ad.(autoload.'emms-play-beets."e
e8100 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 mms-source-beets".nil.t).;;;###a
e8120 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 62 65 65 74 utoload.(autoload.'emms-add-beet
e8140 73 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 22 20 6e 69 6c 20 74 29 0a 28 64 65 s."emms-source-beets".nil.t).(de
e8160 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 62 65 65 74 73 20 28 26 6f 70 74 69 6f 6e 61 fine-emms-source.beets.(&optiona
e8180 6c 20 64 61 74 61 62 61 73 65 20 66 69 6c 74 65 72 20 73 6f 72 74 29 0a 20 20 22 41 6e 20 45 4d l.database.filter.sort)..."An.EM
e81a0 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 62 65 65 74 73 20 6c 69 62 72 61 72 79 20 64 61 74 61 MS.source.for.beets.library.data
e81c0 62 61 73 65 73 2e 0a 0a 44 41 54 41 42 41 53 45 20 73 68 6f 75 6c 64 20 62 65 20 61 20 70 61 74 bases...DATABASE.should.be.a.pat
e81e0 68 20 74 6f 20 61 20 62 65 65 74 73 20 6c 69 62 72 61 72 79 20 64 61 74 61 62 61 73 65 0a 5c 28 h.to.a.beets.library.database.\(
e8200 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 64 61 74 61 62 61 73 65 27 20 69 73 20 `emms-source-beets-database'.is.
e8220 75 73 65 64 20 62 79 20 64 65 66 61 75 6c 74 29 2e 0a 57 68 65 6e 20 63 61 6c 6c 65 64 20 69 6e used.by.default)..When.called.in
e8240 74 65 72 61 63 74 69 76 65 6c 79 2c 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 46 49 4c teractively,.prefix.argument.FIL
e8260 54 45 52 20 77 69 6c 6c 20 63 61 75 73 65 20 61 64 64 65 64 0a 74 72 61 63 6b 73 20 74 6f 20 62 TER.will.cause.added.tracks.to.b
e8280 65 20 66 69 6c 74 65 72 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 75 6e 69 71 75 65 20 76 e.filtered.according.to.unique.v
e82a0 61 6c 75 65 73 20 66 72 6f 6d 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 74 68 65 0a 5c 22 69 74 65 6d alues.from.columns.in.the.\"item
e82c0 73 5c 22 20 74 61 62 6c 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 3b 20 77 69 74 68 20 s\".table.of.the.database;.with.
e82e0 61 20 64 6f 75 62 6c 65 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 28 6f 72 0a 6d 6f 72 a.double.prefix.argument.(or.mor
e8300 65 29 2c 20 53 4f 52 54 20 77 69 6c 6c 20 61 6c 73 6f 20 62 65 20 73 65 74 20 69 6e 74 65 72 61 e),.SORT.will.also.be.set.intera
e8320 63 74 69 76 65 6c 79 2c 20 64 65 66 61 75 6c 74 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 ctively,.defaulting.to.the.value
e8340 20 6f 66 0a 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 73 6f 72 74 2d 63 6f 6c 75 .of.`emms-source-beets-sort-colu
e8360 6d 6e 73 27 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 46 69 6c 74 65 72 69 6e 67 20 69 73 20 64 6f mns'.otherwise...Filtering.is.do
e8380 6e 65 20 69 6e 20 74 77 6f 20 73 74 65 70 73 3a 0a 2d 20 43 68 6f 6f 73 65 20 63 6f 6c 75 6d 6e ne.in.two.steps:.-.Choose.column
e83a0 28 73 29 20 28 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 29 2e 0a 2d 20 46 6f 72 20 65 61 63 (s).(with.completion)..-.For.eac
e83c0 68 20 63 68 6f 73 65 6e 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 6f 72 64 65 72 29 2c 20 63 68 6f 6f h.chosen.column.(in.order),.choo
e83e0 73 65 20 66 72 6f 6d 20 69 74 73 20 75 6e 69 71 75 65 20 76 61 6c 75 65 73 0a 20 20 28 77 69 74 se.from.its.unique.values...(wit
e8400 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 29 20 77 68 69 63 68 20 6d 61 74 63 68 20 61 6e 79 20 72 6f h.completion).which.match.any.ro
e8420 77 20 77 68 69 63 68 20 68 61 73 6e 27 74 20 62 65 65 6e 20 66 69 6c 74 65 72 65 64 20 62 79 0a w.which.hasn't.been.filtered.by.
e8440 20 20 61 20 70 72 65 76 69 6f 75 73 20 63 68 6f 69 63 65 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c ..a.previous.choice...For.exampl
e8460 65 2c 20 69 66 20 79 6f 75 20 68 61 76 65 20 35 20 61 6c 62 75 6d 73 3a 0a 4e 69 63 65 20 42 61 e,.if.you.have.5.albums:.Nice.Ba
e8480 6e 64 20 2d 20 4e 69 63 65 20 41 6c 62 75 6d 20 28 32 30 30 31 29 0a 4e 69 63 65 20 42 61 6e 64 nd.-.Nice.Album.(2001).Nice.Band
e84a0 20 2d 20 47 6f 6f 64 20 41 6c 62 75 6d 20 28 32 30 30 32 29 0a 43 6f 6f 6c 20 42 61 6e 64 20 2d .-.Good.Album.(2002).Cool.Band.-
e84c0 20 43 6f 6f 6c 20 41 6c 62 75 6d 20 28 32 30 30 31 29 0a 43 6f 6f 6c 20 42 61 6e 64 20 2d 20 43 .Cool.Album.(2001).Cool.Band.-.C
e84e0 6f 6c 64 20 41 6c 62 75 6d 20 28 32 30 30 32 29 0a 43 6f 6f 6c 20 42 61 6e 64 20 2d 20 57 61 72 old.Album.(2002).Cool.Band.-.War
e8500 6d 20 41 6c 62 75 6d 20 28 32 30 30 33 29 0a 0a 54 68 65 6e 3a 0a 0a 5c 5c 5b 75 6e 69 76 65 72 m.Album.(2003)..Then:..\\[univer
e8520 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 5c 5c 5b 65 6d 6d 73 2d 70 6c 61 79 2d 62 65 65 74 73 sal-argument].\\[emms-play-beets
e8540 5d 20 79 65 61 72 20 5c 5c 60 52 45 54 27 20 32 30 30 31 20 5c 5c 60 52 45 54 27 0a 0a 77 69 6c ].year.\\`RET'.2001.\\`RET'..wil
e8560 6c 20 70 6c 61 79 20 5c 22 4e 69 63 65 20 41 6c 62 75 6d 5c 22 20 61 6e 64 20 5c 22 43 6f 6f 6c l.play.\"Nice.Album\".and.\"Cool
e8580 20 41 6c 62 75 6d 5c 22 2e 20 20 54 68 65 20 79 65 61 72 20 63 68 6f 73 65 6e 20 6d 75 73 74 20 .Album\"...The.year.chosen.must.
e85a0 62 65 0a 6f 6e 65 20 6f 66 20 32 30 30 31 2c 20 32 30 30 32 20 6f 72 20 32 30 30 33 20 28 6f 72 be.one.of.2001,.2002.or.2003.(or
e85c0 20 61 6e 79 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 6d 29 2e 0a 0a 5c 5c 5b 75 .any.combination.of.them)...\\[u
e85e0 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 5c 5c 5b 65 6d 6d 73 2d 61 64 64 2d 62 niversal-argument].\\[emms-add-b
e8600 65 65 74 73 5d 20 61 6c 62 75 6d 61 72 74 69 73 74 2c 79 65 61 72 20 5c 0a 5c 5c 60 52 45 54 27 eets].albumartist,year.\.\\`RET'
e8620 20 4e 69 63 65 20 42 61 6e 64 20 5c 5c 60 52 45 54 27 20 32 30 30 32 20 5c 5c 60 52 45 54 27 0a .Nice.Band.\\`RET'.2002.\\`RET'.
e8640 0a 77 69 6c 6c 20 61 64 64 20 6f 6e 6c 79 20 5c 22 47 6f 6f 64 20 41 6c 62 75 6d 5c 22 2e 20 20 .will.add.only.\"Good.Album\"...
e8660 53 69 6e 63 65 20 74 68 65 20 66 69 72 73 74 20 63 68 6f 69 63 65 20 77 61 73 20 5c 22 4e 69 63 Since.the.first.choice.was.\"Nic
e8680 65 0a 42 61 6e 64 5c 22 2c 20 74 68 65 20 63 68 6f 69 63 65 20 6f 66 20 79 65 61 72 20 69 73 20 e.Band\",.the.choice.of.year.is.
e86a0 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 32 30 30 31 20 74 6f 20 32 30 30 32 20 28 6f 72 20 62 restricted.to.2001.to.2002.(or.b
e86c0 6f 74 68 29 2e 0a 0a 53 6f 72 74 69 6e 67 20 6f 63 63 75 72 73 20 61 66 74 65 72 20 66 69 6c 74 oth)...Sorting.occurs.after.filt
e86e0 65 72 69 6e 67 2c 20 61 6e 64 20 61 6c 6c 6f 77 73 20 73 65 6c 65 63 74 69 6e 67 20 6d 75 6c 74 ering,.and.allows.selecting.mult
e8700 69 70 6c 65 20 63 6f 6c 75 6d 6e 73 0a 74 6f 20 73 6f 72 74 20 62 79 2e 22 0a 20 20 28 69 6e 74 iple.columns.to.sort.by."...(int
e8720 65 72 61 63 74 69 76 65 0a 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 28 65 6d 6d 73 2d 73 6f eractive....(when-let.(((emms-so
e8740 75 72 63 65 2d 62 65 65 74 73 2d 2d 65 6e 73 75 72 65 2d 73 71 6c 69 74 65 29 29 0a 20 20 20 20 urce-beets--ensure-sqlite)).....
e8760 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 74 65 72 20 28 61 6e 64 20 63 75 72 72 65 6e 74 2d 70 ..........(filter.(and.current-p
e8780 72 65 66 69 78 2d 61 72 67 20 28 63 6f 6e 73 20 6e 69 6c 20 22 22 29 29 29 0a 20 20 20 20 20 20 refix-arg.(cons.nil.""))).......
e87a0 20 20 20 20 20 20 20 20 28 73 6f 72 74 20 28 70 72 6f 67 31 20 28 6f 72 20 63 75 72 72 65 6e 74 ........(sort.(prog1.(or.current
e87c0 2d 70 72 65 66 69 78 2d 61 72 67 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -prefix-arg.t)..................
e87e0 20 20 20 20 20 20 20 3b 3b 20 55 6e 73 65 74 20 61 66 74 65 72 20 75 73 65 20 75 6e 63 6f 6e 64 .......;;.Unset.after.use.uncond
e8800 69 74 69 6f 6e 61 6c 6c 79 20 74 6f 20 70 72 65 76 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 itionally.to.prevent............
e8820 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 4d 4d 53 27 73 20 64 65 66 61 75 6c 74 20 62 .............;;.EMMS's.default.b
e8840 65 68 61 76 69 6f 72 20 77 68 65 6e 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ehavior.when.source.............
e8860 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 63 61 6c 6c ............;;.commands.are.call
e8880 65 64 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20 20 20 20 ed.with.a.prefix.argument.......
e88a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 ...................(setq.current
e88c0 2d 70 72 65 66 69 78 2d 61 72 67 20 6e 69 6c 20 70 72 65 66 69 78 2d 61 72 67 20 6e 69 6c 29 29 -prefix-arg.nil.prefix-arg.nil))
e88e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 62 20 28 73 71 6c 69 74 65 2d 6f 70 65 6e )...............(db.(sqlite-open
e8900 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 64 61 74 61 62 61 73 65 29 29 0a 20 20 .emms-source-beets-database))...
e8920 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 20 22 20 28 64 65 73 63 65 6e 64 69 6e 67 29 22 ............(dec.".(descending)"
e8940 29 29 0a 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 20 63 6f 6c 20 28 63 6f 6d 70 6c 65 74 69 6e ))......(dolist.(.col.(completin
e8960 67 2d 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-read-multiple.................
e8980 20 20 20 20 22 46 69 6c 74 65 72 20 62 79 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."Filter.by:."...............
e89a0 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 2d 69 74 65 6d 73 2d 63 ......emms-source-beets--items-c
e89c0 6f 6c 75 6d 6e 73 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 46 6f 72 20 65 61 63 olumns.nil.t))........;;.For.eac
e89e0 68 20 63 6f 6c 75 6d 6e 20 63 68 6f 73 65 6e 20 74 6f 20 66 69 6c 74 65 72 20 62 79 2c 20 6f 6e h.column.chosen.to.filter.by,.on
e8a00 6c 79 20 61 6c 6c 6f 77 0a 20 20 20 20 20 20 20 3b 3b 20 63 68 6f 6f 73 69 6e 67 20 62 65 74 77 ly.allow........;;.choosing.betw
e8a20 65 65 6e 20 64 69 73 74 69 6e 63 74 20 76 61 6c 75 65 73 20 77 68 69 63 68 20 63 6f 72 72 65 73 een.distinct.values.which.corres
e8a40 70 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 69 74 65 6d 73 20 77 68 69 63 68 20 6d 61 pond........;;.to.items.which.ma
e8a60 74 63 68 65 64 20 64 69 73 74 69 6e 63 74 20 76 61 6c 75 65 73 20 63 68 6f 73 65 6e 20 66 6f 72 tched.distinct.values.chosen.for
e8a80 0a 20 20 20 20 20 20 20 3b 3b 20 70 72 65 76 69 6f 75 73 6c 79 20 70 72 6f 63 65 73 73 65 64 20 ........;;.previously.processed.
e8aa0 63 6f 6c 75 6d 6e 73 2e 0a 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 77 68 65 72 columns.........(when-let.((wher
e8ac0 65 20 28 63 64 72 20 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.(cdr.filter)).................
e8ae0 20 20 28 64 69 73 74 20 28 73 71 6c 69 74 65 2d 73 65 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 ..(dist.(sqlite-select..........
e8b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 62 20 28 66 6f 72 6d 61 74 20 22 73 65 6c 65 ................db.(format."sele
e8b20 63 74 20 64 69 73 74 69 6e 63 74 20 25 73 20 66 72 6f 6d 20 69 74 65 6d 73 25 73 22 0a 20 20 20 ct.distinct.%s.from.items%s"....
e8b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e8b60 20 63 6f 6c 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 77 68 65 72 65 29 0a .col.(if.(string-empty-p.where).
e8b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e8ba0 20 20 20 20 20 20 20 20 20 20 20 20 22 22 20 28 63 6f 6e 63 61 74 20 22 20 77 68 65 72 65 22 20 ............"".(concat.".where".
e8bc0 77 68 65 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 where)))........................
e8be0 20 20 28 63 61 72 20 66 69 6c 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(car.filter)))................
e8c00 20 20 20 28 64 69 73 74 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 28 63 61 61 72 20 64 69 73 74 ...(dist.(if.(stringp.(caar.dist
e8c20 29 29 20 64 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )).dist.........................
e8c40 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 29 20 28 6e 75 6d 62 65 72 2d ..(mapcar.(lambda.(val).(number-
e8c60 74 6f 2d 73 74 72 69 6e 67 20 28 63 61 72 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 to-string.(car.val)))...........
e8c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 74 29 29 29 29 ........................dist))))
e8ca0 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 66 69 6c 74 65 72 20 28 66 6f 72 6d 61 74 ..........(setcdr.filter.(format
e8cc0 20 22 20 25 73 20 69 6e 20 28 25 73 29 25 73 22 20 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 .".%s.in.(%s)%s".col............
e8ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a .....................(mapconcat.
e8d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e8d20 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 22 3f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(lambda.(_)."?")...............
e8d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 ...................(mapcar.(lamb
e8d60 64 61 20 28 76 61 6c 29 20 28 70 75 73 68 20 76 61 6c 20 28 63 61 72 20 66 69 6c 74 65 72 29 29 da.(val).(push.val.(car.filter))
e8d80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
e8da0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 6d 75 6c 74 ...........(completing-read-mult
e8dc0 69 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iple............................
e8de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 63 6f 6c 20 22 3a 20 22 29 ...............(concat.col.":.")
e8e00 20 64 69 73 74 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .dist.nil.t))...................
e8e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...............",.")............
e8e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 .....................(if.(string
e8e60 2d 65 6d 70 74 79 2d 70 20 77 68 65 72 65 29 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -empty-p.where).""..............
e8e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 61 .....................(concat.".a
e8ea0 6e 64 20 22 20 77 68 65 72 65 29 29 29 29 29 29 0a 20 20 20 20 20 28 6c 69 73 74 20 64 62 20 66 nd.".where))))))......(list.db.f
e8ec0 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 28 70 72 65 66 69 78 ilter............(and.(>.(prefix
e8ee0 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 73 6f 72 74 29 20 34 29 20 3b 20 6d 6f 72 65 20 74 -numeric-value.sort).4).;.more.t
e8f00 68 61 6e 20 6f 6e 65 20 43 2d 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 han.one.C-u.................(map
e8f20 63 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 can..................(lambda.(c)
e8f40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 69 66 20 28 73 ....................(list.(if.(s
e8f60 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 64 65 63 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 tring-suffix-p.dec.c)...........
e8f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 73 74 72 69 6e 67 ...................(cons.(string
e8fa0 2d 72 65 6d 6f 76 65 2d 73 75 66 66 69 78 20 64 65 63 20 63 29 20 74 29 0a 20 20 20 20 20 20 20 -remove-suffix.dec.c).t)........
e8fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 63 29 29 29 29 0a ....................(list.c)))).
e8fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 .................(completing-rea
e9000 64 2d 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 6f d-multiple..................."So
e9020 72 74 20 61 64 64 65 64 20 74 72 61 63 6b 73 20 62 79 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 rt.added.tracks.by:."...........
e9040 20 20 20 20 20 20 20 20 60 28 2c 40 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 2d 69 ........`(,@emms-source-beets--i
e9060 74 65 6d 73 2d 63 6f 6c 75 6d 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tems-columns....................
e9080 20 2c 40 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 29 20 28 63 6f 6e 63 61 74 20 63 .,@(mapcar.(lambda.(c).(concat.c
e90a0 20 64 65 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .dec))..........................
e90c0 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 2d 69 74 65 6d 73 2d 63 6f .....emms-source-beets--items-co
e90e0 6c 75 6d 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 lumns))...................nil.t)
e9100 29 29 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 28 65 6d 6d 73 2d 73 6f 75 72 63 65 )))))...(when-let.(((emms-source
e9120 2d 62 65 65 74 73 2d 2d 65 6e 73 75 72 65 2d 73 71 6c 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 -beets--ensure-sqlite)).........
e9140 20 20 20 20 20 28 64 62 20 28 6f 72 20 64 61 74 61 62 61 73 65 20 28 73 71 6c 69 74 65 2d 6f 70 .....(db.(or.database.(sqlite-op
e9160 65 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 64 61 74 61 62 61 73 65 29 29 29 en.emms-source-beets-database)))
e9180 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 74 65 72 20 28 6f 72 20 66 69 6c 74 65 72 ..............(filter.(or.filter
e91a0 20 28 63 6f 6e 73 20 6e 69 6c 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 .(cons.nil."")))..............(w
e91c0 68 65 72 65 20 28 63 64 72 20 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 here.(cdr.filter))..............
e91e0 28 73 6f 72 74 20 28 6f 72 20 73 6f 72 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 (sort.(or.sort.emms-source-beets
e9200 2d 73 6f 72 74 2d 63 6f 6c 75 6d 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 62 -sort-columns))..............(db
e9220 20 28 73 71 6c 69 74 65 2d 73 65 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(sqlite-select.................
e9240 20 20 64 62 20 28 66 6f 72 6d 61 74 20 22 73 65 6c 65 63 74 20 70 61 74 68 2c 20 25 73 20 66 72 ..db.(format."select.path,.%s.fr
e9260 6f 6d 20 69 74 65 6d 73 25 73 20 6f 72 64 65 72 20 62 79 20 25 73 22 0a 20 20 20 20 20 20 20 20 om.items%s.order.by.%s".........
e9280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 .....................(mapconcat.
e92a0 23 27 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #'identity......................
e92c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 ...................emms-source-b
e92e0 65 65 74 73 2d 2d 69 74 65 6d 73 2d 63 6f 6c 75 6d 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 eets--items-columns.............
e9300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 22 ............................",."
e9320 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 )..............................(
e9340 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 77 68 65 72 65 29 20 22 22 0a 20 20 20 if.(string-empty-p.where).""....
e9360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ............................(con
e9380 63 61 74 20 22 20 77 68 65 72 65 22 20 77 68 65 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 cat.".where".where))............
e93a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 ..................(mapconcat....
e93c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 ...........................(lamb
e93e0 64 61 20 28 63 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 da.(col)........................
e9400 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 64 72 20 63 6f 6c 29 20 28 63 6f 6e 63 61 74 20 28 .........(if.(cdr.col).(concat.(
e9420 63 61 72 20 63 6f 6c 29 20 22 20 64 65 73 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 car.col).".desc")...............
e9440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 63 6f 6c 29 29 29 0a ....................(car.col))).
e9460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6f ..............................so
e9480 72 74 20 22 2c 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 rt.",."))...................(car
e94a0 20 66 69 6c 74 65 72 29 20 27 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e .filter).'set))..............(in
e94c0 69 74 20 28 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 28 73 65 74 20 69 6e 69 74 20 28 72 65 6d it.(gensym))).....(set.init.(rem
e94e0 71 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 74 72 61 63 6b 0a 20 20 q.'emms-info-initialize-track...
e9500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e 69 ..................emms-track-ini
e9520 74 69 61 6c 69 7a 65 2d 66 75 6e 63 74 69 6f 6e 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 69 74 tialize-functions)).....(let.(it
e9540 65 6d 20 74 72 61 63 6b 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 em.track.path).......(while.(and
e9560 20 28 73 65 74 71 20 69 74 65 6d 20 28 73 71 6c 69 74 65 2d 6e 65 78 74 20 64 62 29 29 0a 20 20 .(setq.item.(sqlite-next.db))...
e9580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 20 28 65 6d 6d ................(setq.track.(emm
e95a0 73 2d 64 69 63 74 69 6f 6e 61 72 79 20 27 2a 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 s-dictionary.'*track))).........
e95c0 28 77 68 65 6e 20 28 73 65 74 71 20 70 61 74 68 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d (when.(setq.path.(decode-coding-
e95e0 73 74 72 69 6e 67 20 28 63 61 72 20 69 74 65 6d 29 20 27 75 74 66 2d 38 20 74 29 29 0a 20 20 20 string.(car.item).'utf-8.t))....
e9600 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 73 65 74 20 74 72 61 63 .......(emms-dictionary-set.trac
e9620 6b 20 27 74 79 70 65 20 27 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 64 k.'type.'file)...........(emms-d
e9640 69 63 74 69 6f 6e 61 72 79 2d 73 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 20 70 61 74 68 29 0a ictionary-set.track.'name.path).
e9660 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 79 70 65 29 0a 20 ..........(mapc.(lambda.(type)..
e9680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 76 61 6c .................(when-let.((val
e96a0 20 28 63 61 72 20 28 73 65 74 71 20 69 74 65 6d 20 28 63 64 72 20 69 74 65 6d 29 29 29 29 29 0a .(car.(setq.item.(cdr.item))))).
e96c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 79 70 65 20 28 ....................(setq.type.(
e96e0 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5f 22 20 74 79 70 65 29 0a 20 20 cond.((string-match."_".type)...
e9700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e9720 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 6e 69 6c 20 74 79 ....(replace-match."".nil.nil.ty
e9740 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe))............................
e9760 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 74 79 70 65 20 27 28 22 74 72 61 63 6b ..........((member.type.'("track
e9780 22 20 22 64 69 73 63 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "."disc"))......................
e97a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 74 79 70 65 20 22 6e .................(concat.type."n
e97c0 75 6d 62 65 72 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 umber"))........................
e97e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 ..............(t.type)))........
e9800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 3d 20 74 .............(if.(and.(string=.t
e9820 79 70 65 20 22 6c 65 6e 67 74 68 22 29 20 28 6e 75 6d 62 65 72 70 20 76 61 6c 29 29 0a 20 20 20 ype."length").(numberp.val))....
e9840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 .....................(progn.(set
e9860 71 20 76 61 6c 20 28 63 65 69 6c 69 6e 67 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 q.val.(ceiling.val))............
e9880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f ....................(emms-dictio
e98a0 6e 61 72 79 2d 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nary-set........................
e98c0 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d .........track.'info-playing-tim
e98e0 65 2d 6d 69 6e 20 28 2f 20 76 61 6c 20 36 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-min.(/.val.60))...............
e9900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 .................(emms-dictionar
e9920 79 2d 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y-set...........................
e9940 20 20 20 20 20 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 73 ......track.'info-playing-time-s
e9960 65 63 20 28 25 20 76 61 6c 20 36 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ec.(%.val.60))..................
e9980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 73 ..............(emms-dictionary-s
e99a0 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et..............................
e99c0 20 20 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 76 61 6c 29 ...track.'info-playing-time.val)
e99e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e ).......................(when.(n
e9a00 75 6d 62 65 72 70 20 76 61 6c 29 20 28 73 65 74 71 20 76 61 6c 20 28 6e 75 6d 62 65 72 2d 74 6f umberp.val).(setq.val.(number-to
e9a20 2d 73 74 72 69 6e 67 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -string.val)))..................
e9a40 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 76 61 6c .....(unless.(string-blank-p.val
e9a60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d ).........................(emms-
e9a80 64 69 63 74 69 6f 6e 61 72 79 2d 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dictionary-set..................
e9aa0 20 20 20 20 20 20 20 20 74 72 61 63 6b 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 69 ........track.(intern.(concat."i
e9ac0 6e 66 6f 2d 22 20 74 79 70 65 29 29 20 76 61 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 nfo-".type)).val)))))...........
e9ae0 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 2d 69 74 65 6d 73 2d 63 ......emms-source-beets--items-c
e9b00 6f 6c 75 6d 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 olumns)...........(run-hook-with
e9b20 2d 61 72 67 73 20 69 6e 69 74 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d -args.init.track)...........(emm
e9b40 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 0a 20 s-playlist-insert-track.track)..
e9b60 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 65 6d 6d 73 2d 63 61 63 .........(when.(fboundp.emms-cac
e9b80 68 65 2d 6d 6f 64 69 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 he-modified-function)...........
e9ba0 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 65 64 2d 66 ..(funcall.emms-cache-modified-f
e9bc0 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 unction.track))...........(when.
e9be0 28 66 62 6f 75 6e 64 70 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e (fboundp.emms-cache-set-function
e9c00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 ).............(funcall.emms-cach
e9c20 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 20 27 66 69 6c 65 20 70 61 74 68 20 74 72 61 63 6b 29 e-set-function.'file.path.track)
e9c40 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 ))))))..(provide.'emms-source-be
e9c60 65 74 73 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2e 65 6c 20 65 ets)..;;;.emms-source-beets.el.e
e9c80 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nds.here........................
e9ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e00 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/doc/....................
e9e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e60 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
e9e80 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 34 34 36 00 20 35 00 00 00 0000000.00000000000.011446..5...
e9ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
e9f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
e9f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea000 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/doc/Makefile............
ea020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
ea080 30 30 30 30 33 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 30 31 00 20 30 00 00 00 0000302.00000000000.013101..0...
ea0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
ea120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
ea140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea200 23 20 44 6f 6e 27 74 20 64 65 6c 65 74 65 20 69 66 20 6d 61 6b 65 20 69 73 20 69 6e 74 65 72 72 #.Don't.delete.if.make.is.interr
ea220 75 70 74 65 64 0a 2e 50 52 45 43 49 4f 55 53 3a 20 25 2e 69 6e 66 6f 20 25 2e 68 74 6d 6c 0a 0a upted..PRECIOUS:.%.info.%.html..
ea240 61 6c 6c 3a 20 65 6d 6d 73 2e 69 6e 66 6f 0a 0a 63 6c 65 61 6e 3a 0a 09 72 6d 20 2d 66 20 2a 2e all:.emms.info..clean:..rm.-f.*.
ea260 69 6e 66 6f 0a 0a 25 2e 69 6e 66 6f 3a 20 25 2e 74 65 78 69 6e 66 6f 0a 09 6d 61 6b 65 69 6e 66 info..%.info:.%.texinfo..makeinf
ea280 6f 20 2d 2d 6e 6f 2d 73 70 6c 69 74 20 24 3c 0a 0a 25 2e 68 74 6d 6c 3a 20 25 2e 74 65 78 69 6e o.--no-split.$<..%.html:.%.texin
ea2a0 66 6f 0a 09 6d 61 6b 65 69 6e 66 6f 20 2d 2d 68 74 6d 6c 20 2d 2d 6e 6f 2d 73 70 6c 69 74 20 24 fo..makeinfo.--html.--no-split.$
ea2c0 3c 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <...............................
ea2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea400 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 67 70 6c 2e 74 65 78 69 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/doc/gpl.texi............
ea420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
ea480 30 31 30 34 36 35 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 33 33 00 20 30 00 00 00 0104652.00000000000.013133..0...
ea4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
ea520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
ea540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea600 40 6e 6f 64 65 20 43 6f 70 79 69 6e 67 2c 20 54 68 65 20 47 4e 55 20 46 44 4c 2c 20 45 78 74 65 @node.Copying,.The.GNU.FDL,.Exte
ea620 6e 64 69 6e 67 20 45 6d 6d 73 2c 20 54 6f 70 0a 0a 40 75 6e 6e 75 6d 62 65 72 65 64 20 47 4e 55 nding.Emms,.Top..@unnumbered.GNU
ea640 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 40 63 65 6e 74 65 72 20 .General.Public.License.@center.
ea660 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 40 63 20 54 68 69 73 Version.3,.29.June.2007..@c.This
ea680 20 66 69 6c 65 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 .file.is.intended.to.be.included
ea6a0 20 69 6e 20 61 6e 6f 74 68 65 72 20 66 69 6c 65 2e 0a 0a 40 64 69 73 70 6c 61 79 0a 43 6f 70 79 .in.another.file...@display.Copy
ea6c0 72 69 67 68 74 20 40 63 6f 70 79 72 69 67 68 74 7b 7d 20 32 30 30 37 20 46 72 65 65 20 53 6f 66 right.@copyright{}.2007.Free.Sof
ea6e0 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 40 75 72 6c 7b 68 74 74 70 tware.Foundation,.Inc..@url{http
ea700 3a 2f 2f 66 73 66 2e 6f 72 67 2f 7d 0a 0a 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 ://fsf.org/}..Everyone.is.permit
ea720 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 ted.to.copy.and.distribute.verba
ea740 74 69 6d 20 63 6f 70 69 65 73 20 6f 66 20 74 68 69 73 0a 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d tim.copies.of.this.license.docum
ea760 65 6e 74 2c 20 62 75 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f ent,.but.changing.it.is.not.allo
ea780 77 65 64 2e 0a 40 65 6e 64 20 64 69 73 70 6c 61 79 0a 0a 40 75 6e 6e 75 6d 62 65 72 65 64 73 65 wed..@end.display..@unnumberedse
ea7a0 63 20 50 72 65 61 6d 62 6c 65 0a 0a 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c c.Preamble..The.GNU.General.Publ
ea7c0 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c ic.License.is.a.free,.copyleft.l
ea7e0 69 63 65 6e 73 65 20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 6b 69 icense.for.software.and.other.ki
ea800 6e 64 73 20 6f 66 20 77 6f 72 6b 73 2e 0a 0a 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 nds.of.works...The.licenses.for.
ea820 6d 6f 73 74 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 most.software.and.other.practica
ea840 6c 20 77 6f 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 l.works.are.designed.to.take.awa
ea860 79 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e y.your.freedom.to.share.and.chan
ea880 67 65 20 74 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 ge.the.works...By.contrast,.the.
ea8a0 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e GNU.General.Public.License.is.in
ea8c0 74 65 6e 64 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d tended.to.guarantee.your.freedom
ea8e0 0a 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e .to.share.and.change.all.version
ea900 73 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 s.of.a.program--to.make.sure.it.
ea920 72 65 6d 61 69 6e 73 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 remains.free.software.for.all.it
ea940 73 20 75 73 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 s.users...We,.the.Free.Software.
ea960 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 75 73 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 Foundation,.use.the.GNU.General.
ea980 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 Public.License.for.most.of.our.s
ea9a0 6f 66 74 77 61 72 65 3b 20 69 74 0a 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 20 61 6e 79 20 oftware;.it.applies.also.to.any.
ea9c0 6f 74 68 65 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 other.work.released.this.way.by.
ea9e0 69 74 73 20 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 0a 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 its.authors...You.can.apply.it.t
eaa00 6f 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 57 68 65 6e 20 77 65 20 73 o.your.programs,.too...When.we.s
eaa20 70 65 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 peak.of.free.software,.we.are.re
eaa40 66 65 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 ferring.to.freedom,.not.price...
eaa60 4f 75 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 Our.General.Public.Licenses.are.
eaa80 64 65 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 designed.to.make.sure.that.you.h
eaaa0 61 76 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f ave.the.freedom.to.distribute.co
eaac0 70 69 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 pies.of.free.software.(and.charg
eaae0 65 20 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f e.for.them.if.you.wish),.that.yo
eab00 75 20 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 u.receive.source.code.or.can.get
eab20 20 69 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e .it.if.you.want.it,.that.you.can
eab40 20 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 .change.the.software.or.use.piec
eab60 65 73 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 es.of.it.in.new.free.programs,.a
eab80 6e 64 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 nd.that.you.know.you.can.do.thes
eaba0 65 20 74 68 69 6e 67 73 2e 0a 0a 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 e.things...To.protect.your.right
eabc0 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 6f s,.we.need.to.prevent.others.fro
eabe0 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 73 m.denying.you.these.rights.or.as
eac00 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 73 king.you.to.surrender.the.rights
eac20 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 0a 68 61 76 65 20 63 65 72 74 61 69 6e 20 72 ...Therefore,.you.have.certain.r
eac40 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 esponsibilities.if.you.distribut
eac60 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 0a 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 20 e.copies.of.the.software,.or.if.
eac80 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 you.modify.it:.responsibilities.
eaca0 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 0a 6f 66 20 6f 74 68 65 72 73 to.respect.the.freedom.of.others
eacc0 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 ...For.example,.if.you.distribut
eace0 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 68 65 74 e.copies.of.such.a.program,.whet
ead00 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 6d 75 73 her.gratis.or.for.a.fee,.you.mus
ead20 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 68 65 20 t.pass.on.to.the.recipients.the.
ead40 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 65 64 2e same.freedoms.that.you.received.
ead60 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 79 2c 20 ..You.must.make.sure.that.they,.
ead80 74 6f 6f 2c 0a 72 65 63 65 69 76 65 20 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 6f 75 72 too,.receive.or.can.get.the.sour
eada0 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 68 65 6d ce.code...And.you.must.show.them
eadc0 20 74 68 65 73 65 0a 74 65 72 6d 73 20 73 6f 20 74 68 65 79 20 6b 6e 6f 77 20 74 68 65 69 72 20 .these.terms.so.they.know.their.
eade0 72 69 67 68 74 73 2e 0a 0a 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 65 20 74 68 65 rights...Developers.that.use.the
eae00 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 73 20 77 69 74 .GNU.GPL.protect.your.rights.wit
eae20 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 79 72 69 67 68 h.two.steps:.(1).assert.copyrigh
eae40 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 6f 66 66 65 72 t.on.the.software,.and.(2).offer
eae60 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f 75 20 6c 65 67 .you.this.License.giving.you.leg
eae80 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 75 74 al.permission.to.copy,.distribut
eaea0 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 46 6f 72 20 74 68 65 20 64 65 76 e.and/or.modify.it...For.the.dev
eaec0 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f 74 65 63 74 69 6f 6e elopers'.and.authors'.protection
eaee0 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e 73 0a 74 68 61 74 20 ,.the.GPL.clearly.explains.that.
eaf00 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 69 73 20 66 72 there.is.no.warranty.for.this.fr
eaf20 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 65 72 73 27 20 61 6e ee.software...For.both.users'.an
eaf40 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 72 65 71 75 69 72 65 d.authors'.sake,.the.GPL.require
eaf60 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 62 65 20 6d 61 72 6b s.that.modified.versions.be.mark
eaf80 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 65 69 72 20 70 72 6f ed.as.changed,.so.that.their.pro
eafa0 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 74 65 64 20 65 72 72 blems.will.not.be.attributed.err
eafc0 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 65 76 69 6f 75 73 20 oneously.to.authors.of.previous.
eafe0 76 65 72 73 69 6f 6e 73 2e 0a 0a 53 6f 6d 65 20 64 65 76 69 63 65 73 20 61 72 65 20 64 65 73 69 versions...Some.devices.are.desi
eb000 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 73 73 20 74 6f 20 69 6e 73 gned.to.deny.users.access.to.ins
eb020 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 tall.or.run.modified.versions.of
eb040 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 65 6d 2c 20 61 6c 74 68 6f .the.software.inside.them,.altho
eb060 75 67 68 20 74 68 65 0a 6d 61 6e 75 66 61 63 74 75 72 65 72 20 63 61 6e 20 64 6f 20 73 6f 2e 20 ugh.the.manufacturer.can.do.so..
eb080 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 69 6e 63 6f 6d 70 61 74 69 .This.is.fundamentally.incompati
eb0a0 62 6c 65 20 77 69 74 68 20 74 68 65 0a 61 69 6d 20 6f 66 20 70 72 6f 74 65 63 74 69 6e 67 20 75 ble.with.the.aim.of.protecting.u
eb0c0 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 sers'.freedom.to.change.the.soft
eb0e0 77 61 72 65 2e 20 20 54 68 65 0a 73 79 73 74 65 6d 61 74 69 63 20 70 61 74 74 65 72 6e 20 6f 66 ware...The.systematic.pattern.of
eb100 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20 61 72 65 61 20 6f .such.abuse.occurs.in.the.area.o
eb120 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 0a 69 6e 64 69 76 69 64 75 61 6c 73 20 74 6f 20 75 73 f.products.for.individuals.to.us
eb140 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 68 65 72 65 20 69 74 20 69 e,.which.is.precisely.where.it.i
eb160 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 0a 54 68 65 72 65 66 6f 72 65 2c 20 s.most.unacceptable..Therefore,.
eb180 77 65 20 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 we.have.designed.this.version.of
eb1a0 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 68 65 0a 70 72 61 63 74 69 63 .the.GPL.to.prohibit.the.practic
eb1c0 65 20 66 6f 72 20 74 68 6f 73 65 20 70 72 6f 64 75 63 74 73 2e 20 20 49 66 20 73 75 63 68 20 70 e.for.those.products...If.such.p
eb1e0 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 69 6e 0a 6f roblems.arise.substantially.in.o
eb200 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 20 73 74 61 6e 64 20 72 65 61 64 79 20 74 6f 20 ther.domains,.we.stand.ready.to.
eb220 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 74 6f 20 74 68 6f 73 65 0a 64 extend.this.provision.to.those.d
eb240 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 omains.in.future.versions.of.the
eb260 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74 65 63 74 20 74 68 65 0a 66 .GPL,.as.needed.to.protect.the.f
eb280 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 46 69 6e 61 6c 6c 79 2c 20 65 76 65 72 79 reedom.of.users...Finally,.every
eb2a0 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e 65 64 20 63 6f 6e 73 74 61 6e 74 6c .program.is.threatened.constantl
eb2c0 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 73 2e 0a 53 74 61 74 65 73 20 73 68 y.by.software.patents..States.sh
eb2e0 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e 74 73 20 74 6f 20 72 65 73 74 72 69 ould.not.allow.patents.to.restri
eb300 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 73 65 20 6f 66 0a 73 6f 66 74 77 61 ct.development.and.use.of.softwa
eb320 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 63 6f 6d 70 75 74 65 72 73 2c re.on.general-purpose.computers,
eb340 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 6f 2c 20 77 65 20 77 69 73 68 0a 74 .but.in.those.that.do,.we.wish.t
eb360 6f 20 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 64 61 6e 67 65 72 20 74 68 61 74 20 o.avoid.the.special.danger.that.
eb380 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 20 66 72 65 65 20 70 72 6f 67 72 61 patents.applied.to.a.free.progra
eb3a0 6d 0a 63 6f 75 6c 64 20 6d 61 6b 65 20 69 74 20 65 66 66 65 63 74 69 76 65 6c 79 20 70 72 6f 70 m.could.make.it.effectively.prop
eb3c0 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 20 74 68 69 73 2c 20 74 68 65 20 47 rietary...To.prevent.this,.the.G
eb3e0 50 4c 0a 61 73 73 75 72 65 73 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 63 61 6e 6e 6f 74 20 62 PL.assures.that.patents.cannot.b
eb400 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 20 70 72 6f 67 72 61 6d 20 6e 6f 6e e.used.to.render.the.program.non
eb420 2d 66 72 65 65 2e 0a 0a 54 68 65 20 70 72 65 63 69 73 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f -free...The.precise.terms.and.co
eb440 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 6e 67 2c 20 64 69 73 74 72 69 62 75 74 69 nditions.for.copying,.distributi
eb460 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 66 6f 6c 6c 6f 77 2e 0a 0a 40 69 66 on.and.modification.follow...@if
eb480 74 65 78 0a 40 75 6e 6e 75 6d 62 65 72 65 64 73 65 63 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e tex.@unnumberedsec.TERMS.AND.CON
eb4a0 44 49 54 49 4f 4e 53 0a 40 65 6e 64 20 69 66 74 65 78 0a 40 69 66 69 6e 66 6f 0a 40 63 65 6e 74 DITIONS.@end.iftex.@ifinfo.@cent
eb4c0 65 72 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 40 65 6e 64 20 69 66 69 er.TERMS.AND.CONDITIONS.@end.ifi
eb4e0 6e 66 6f 0a 0a 40 65 6e 75 6d 65 72 61 74 65 20 30 0a 40 69 74 65 6d 20 44 65 66 69 6e 69 74 69 nfo..@enumerate.0.@item.Definiti
eb500 6f 6e 73 2e 0a 0a 60 60 54 68 69 73 20 4c 69 63 65 6e 73 65 27 27 20 72 65 66 65 72 73 20 74 6f ons...``This.License''.refers.to
eb520 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .version.3.of.the.GNU.General.Pu
eb540 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 60 60 43 6f 70 79 72 69 67 68 74 27 27 20 61 6c 73 blic.License...``Copyright''.als
eb560 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 20 74 68 61 74 o.means.copyright-like.laws.that
eb580 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 20 6b 69 6e 64 73 0a 6f 66 20 77 6f 72 6b 73 2c 20 .apply.to.other.kinds.of.works,.
eb5a0 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 2e 0a 0a 60 60 such.as.semiconductor.masks...``
eb5c0 54 68 65 20 50 72 6f 67 72 61 6d 27 27 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20 63 6f 70 79 The.Program''.refers.to.any.copy
eb5e0 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 rightable.work.licensed.under.th
eb600 69 73 0a 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 69 73 20 61 64 is.License...Each.licensee.is.ad
eb620 64 72 65 73 73 65 64 20 61 73 20 60 60 79 6f 75 27 27 2e 20 20 60 60 4c 69 63 65 6e 73 65 65 73 dressed.as.``you''...``Licensees
eb640 27 27 20 61 6e 64 0a 60 60 72 65 63 69 70 69 65 6e 74 73 27 27 20 6d 61 79 20 62 65 20 69 6e 64 ''.and.``recipients''.may.be.ind
eb660 69 76 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 54 6f 20 60 ividuals.or.organizations...To.`
eb680 60 6d 6f 64 69 66 79 27 27 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 `modify''.a.work.means.to.copy.f
eb6a0 72 6f 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 20 rom.or.adapt.all.or.part.of.the.
eb6c0 77 6f 72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 work.in.a.fashion.requiring.copy
eb6e0 72 69 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 right.permission,.other.than.the
eb700 20 6d 61 6b 69 6e 67 20 6f 66 0a 61 6e 20 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 .making.of.an.exact.copy...The.r
eb720 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 60 60 6d 6f 64 69 esulting.work.is.called.a.``modi
eb740 66 69 65 64 20 76 65 72 73 69 6f 6e 27 27 20 6f 66 0a 74 68 65 20 65 61 72 6c 69 65 72 20 77 6f fied.version''.of.the.earlier.wo
eb760 72 6b 20 6f 72 20 61 20 77 6f 72 6b 20 60 60 62 61 73 65 64 20 6f 6e 27 27 20 74 68 65 20 65 61 rk.or.a.work.``based.on''.the.ea
eb780 72 6c 69 65 72 20 77 6f 72 6b 2e 0a 0a 41 20 60 60 63 6f 76 65 72 65 64 20 77 6f 72 6b 27 27 20 rlier.work...A.``covered.work''.
eb7a0 6d 65 61 6e 73 20 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 means.either.the.unmodified.Prog
eb7c0 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e 20 74 68 65 20 50 72 6f 67 72 ram.or.a.work.based.on.the.Progr
eb7e0 61 6d 2e 0a 0a 54 6f 20 60 60 70 72 6f 70 61 67 61 74 65 27 27 20 61 20 77 6f 72 6b 20 6d 65 61 am...To.``propagate''.a.work.mea
eb800 6e 73 20 74 6f 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 ns.to.do.anything.with.it.that,.
eb820 77 69 74 68 6f 75 74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 without.permission,.would.make.y
eb840 6f 75 20 64 69 72 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c ou.directly.or.secondarily.liabl
eb860 65 20 66 6f 72 0a 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 e.for.infringement.under.applica
eb880 62 6c 65 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 ble.copyright.law,.except.execut
eb8a0 69 6e 67 20 69 74 20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 66 79 69 6e ing.it.on.a.computer.or.modifyin
eb8c0 67 20 61 20 70 72 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 6f 6e 20 69 g.a.private.copy...Propagation.i
eb8e0 6e 63 6c 75 64 65 73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 ncludes.copying,.distribution.(w
eb900 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 ith.or.without.modification),.ma
eb920 6b 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 70 75 62 6c 69 63 2c 20 61 6e king.available.to.the.public,.an
eb940 64 20 69 6e 20 73 6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 d.in.some.countries.other.activi
eb960 74 69 65 73 20 61 73 20 77 65 6c 6c 2e 0a 0a 54 6f 20 60 60 63 6f 6e 76 65 79 27 27 20 61 20 77 ties.as.well...To.``convey''.a.w
eb980 6f 72 6b 20 6d 65 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f ork.means.any.kind.of.propagatio
eb9a0 6e 20 74 68 61 74 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70 61 72 74 69 65 73 20 74 6f 20 n.that.enables.other.parties.to.
eb9c0 6d 61 6b 65 20 6f 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e make.or.receive.copies...Mere.in
eb9e0 74 65 72 61 63 74 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 0a 74 68 72 6f 75 67 68 20 61 20 teraction.with.a.user.through.a.
eba00 63 6f 6d 70 75 74 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 61 6e 73 66 computer.network,.with.no.transf
eba20 65 72 20 6f 66 20 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 0a 63 6f 6e 76 65 79 69 6e 67 2e 0a er.of.a.copy,.is.not.conveying..
eba40 0a 41 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 .An.interactive.user.interface.d
eba60 69 73 70 6c 61 79 73 20 60 60 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 isplays.``Appropriate.Legal.Noti
eba80 63 65 73 27 27 20 74 6f 0a 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c ces''.to.the.extent.that.it.incl
ebaa0 75 64 65 73 20 61 20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c udes.a.convenient.and.prominentl
ebac0 79 20 76 69 73 69 62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c y.visible.feature.that.(1).displ
ebae0 61 79 73 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 ays.an.appropriate.copyright.not
ebb00 69 63 65 2c 20 61 6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 ice,.and.(2).tells.the.user.that
ebb20 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f .there.is.no.warranty.for.the.wo
ebb40 72 6b 20 28 65 78 63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65 6e 74 20 74 68 61 74 20 77 61 rk.(except.to.the.extent.that.wa
ebb60 72 72 61 6e 74 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 63 rranties.are.provided),.that.lic
ebb80 65 6e 73 65 65 73 20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a 77 6f 72 6b 20 75 6e 64 65 72 ensees.may.convey.the.work.under
ebba0 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 76 69 65 77 20 61 .this.License,.and.how.to.view.a
ebbc0 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 0a 74 68 65 20 69 .copy.of.this.License...If.the.i
ebbe0 6e 74 65 72 66 61 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 nterface.presents.a.list.of.user
ebc00 20 63 6f 6d 6d 61 6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 0a .commands.or.options,.such.as.a.
ebc20 6d 65 6e 75 2c 20 61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 menu,.a.prominent.item.in.the.li
ebc40 73 74 20 6d 65 65 74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 st.meets.this.criterion...@item.
ebc60 53 6f 75 72 63 65 20 43 6f 64 65 2e 0a 0a 54 68 65 20 60 60 73 6f 75 72 63 65 20 63 6f 64 65 27 Source.Code...The.``source.code'
ebc80 27 20 66 6f 72 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 '.for.a.work.means.the.preferred
ebca0 20 66 6f 72 6d 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 6f 72 0a 6d 61 6b 69 6e 67 20 6d 6f 64 .form.of.the.work.for.making.mod
ebcc0 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 20 69 74 2e 20 20 60 60 4f 62 6a 65 63 74 20 63 6f 64 65 ifications.to.it...``Object.code
ebce0 27 27 20 6d 65 61 6e 73 20 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 20 66 6f 72 6d 0a 6f 66 20 ''.means.any.non-source.form.of.
ebd00 61 20 77 6f 72 6b 2e 0a 0a 41 20 60 60 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 27 a.work...A.``Standard.Interface'
ebd20 27 20 6d 65 61 6e 73 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 '.means.an.interface.that.either
ebd40 20 69 73 20 61 6e 20 6f 66 66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 .is.an.official.standard.defined
ebd60 20 62 79 20 61 20 72 65 63 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c .by.a.recognized.standards.body,
ebd80 20 6f 72 2c 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72 66 61 63 65 73 20 73 .or,.in.the.case.of.interfaces.s
ebda0 70 65 63 69 66 69 65 64 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 pecified.for.a.particular.progra
ebdc0 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a 69 73 20 77 69 64 65 mming.language,.one.that.is.wide
ebde0 6c 79 20 75 73 65 64 20 61 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 ly.used.among.developers.working
ebe00 20 69 6e 20 74 68 61 74 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 54 68 65 20 60 60 53 79 73 74 65 6d .in.that.language...The.``System
ebe20 20 4c 69 62 72 61 72 69 65 73 27 27 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f .Libraries''.of.an.executable.wo
ebe40 72 6b 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65 72 0a 74 68 61 6e 20 rk.include.anything,.other.than.
ebe60 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 the.work.as.a.whole,.that.(a).is
ebe80 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f 72 6d 20 6f 66 0a .included.in.the.normal.form.of.
ebea0 70 61 63 6b 61 67 69 6e 67 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 packaging.a.Major.Component,.but
ebec0 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 20 4d 61 6a 6f 72 .which.is.not.part.of.that.Major
ebee0 0a 43 6f 6d 70 6f 6e 65 6e 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 .Component,.and.(b).serves.only.
ebf00 74 6f 20 65 6e 61 62 6c 65 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 20 74 to.enable.use.of.the.work.with.t
ebf20 68 61 74 0a 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 hat.Major.Component,.or.to.imple
ebf40 6d 65 6e 74 20 61 20 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 20 77 68 ment.a.Standard.Interface.for.wh
ebf60 69 63 68 20 61 6e 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 ich.an.implementation.is.availab
ebf80 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 le.to.the.public.in.source.code.
ebfa0 66 6f 72 6d 2e 20 20 41 0a 60 60 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 27 27 2c 20 69 6e form...A.``Major.Component'',.in
ebfc0 20 74 68 69 73 20 63 6f 6e 74 65 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 20 65 73 73 .this.context,.means.a.major.ess
ebfe0 65 6e 74 69 61 6c 20 63 6f 6d 70 6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 ential.component.(kernel,.window
ec000 20 73 79 73 74 65 6d 2c 20 61 6e 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20 73 70 65 63 69 .system,.and.so.on).of.the.speci
ec020 66 69 63 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e 79 29 20 6f 6e fic.operating.system.(if.any).on
ec040 20 77 68 69 63 68 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 72 75 6e 73 2c .which.the.executable.work.runs,
ec060 20 6f 72 20 61 20 63 6f 6d 70 69 6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64 75 63 65 20 74 .or.a.compiler.used.to.produce.t
ec080 68 65 20 77 6f 72 6b 2c 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 74 65 72 he.work,.or.an.object.code.inter
ec0a0 70 72 65 74 65 72 20 75 73 65 64 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 54 68 65 20 60 60 43 6f preter.used.to.run.it...The.``Co
ec0c0 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 27 27 20 66 6f 72 20 61 20 77 6f 72 6b 20 rresponding.Source''.for.a.work.
ec0e0 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61 6c 6c 0a 74 68 in.object.code.form.means.all.th
ec100 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 e.source.code.needed.to.generate
ec120 2c 20 69 6e 73 74 61 6c 6c 2c 20 61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c ,.install,.and.(for.an.executabl
ec140 65 0a 77 6f 72 6b 29 20 72 75 6e 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 e.work).run.the.object.code.and.
ec160 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 to.modify.the.work,.including.sc
ec180 72 69 70 74 73 20 74 6f 0a 63 6f 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 ripts.to.control.those.activitie
ec1a0 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 s...However,.it.does.not.include
ec1c0 20 74 68 65 20 77 6f 72 6b 27 73 0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 .the.work's.System.Libraries,.or
ec1e0 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 .general-purpose.tools.or.genera
ec200 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73 20 77 68 69 63 lly.available.free.programs.whic
ec220 68 20 61 72 65 20 75 73 65 64 20 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f 72 6d h.are.used.unmodified.in.perform
ec240 69 6e 67 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68 69 63 68 20 61 ing.those.activities.but.which.a
ec260 72 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46 6f 72 20 65 78 re.not.part.of.the.work...For.ex
ec280 61 6d 70 6c 65 2c 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 0a 69 6e 63 6c ample,.Corresponding.Source.incl
ec2a0 75 64 65 73 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 udes.interface.definition.files.
ec2c0 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 associated.with.source.files.for
ec2e0 0a 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 .the.work,.and.the.source.code.f
ec300 6f 72 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 or.shared.libraries.and.dynamica
ec320 6c 6c 79 0a 6c 69 6e 6b 65 64 20 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 lly.linked.subprograms.that.the.
ec340 77 6f 72 6b 20 69 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f work.is.specifically.designed.to
ec360 20 72 65 71 75 69 72 65 2c 0a 73 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 .require,.such.as.by.intimate.da
ec380 74 61 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 ta.communication.or.control.flow
ec3a0 20 62 65 74 77 65 65 6e 20 74 68 6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f .between.those.subprograms.and.o
ec3c0 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 54 68 65 20 43 6f 72 ther.parts.of.the.work...The.Cor
ec3e0 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 responding.Source.need.not.inclu
ec400 64 65 20 61 6e 79 74 68 69 6e 67 20 74 68 61 74 20 75 73 65 72 73 20 63 61 6e 0a 72 65 67 65 6e de.anything.that.users.can.regen
ec420 65 72 61 74 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 erate.automatically.from.other.p
ec440 61 72 74 73 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 arts.of.the.Corresponding.Source
ec460 2e 0a 0a 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 ...The.Corresponding.Source.for.
ec480 61 20 77 6f 72 6b 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 a.work.in.source.code.form.is.th
ec4a0 61 74 20 73 61 6d 65 0a 77 6f 72 6b 2e 0a 0a 40 69 74 65 6d 20 42 61 73 69 63 20 50 65 72 6d 69 at.same.work...@item.Basic.Permi
ec4c0 73 73 69 6f 6e 73 2e 0a 0a 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 ssions...All.rights.granted.unde
ec4e0 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 20 74 r.this.License.are.granted.for.t
ec500 68 65 20 74 65 72 6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 50 72 6f 67 he.term.of.copyright.on.the.Prog
ec520 72 61 6d 2c 20 61 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 70 72 6f 76 69 64 65 ram,.and.are.irrevocable.provide
ec540 64 20 74 68 65 20 73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e d.the.stated.conditions.are.met.
ec560 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d ..This.License.explicitly.affirm
ec580 73 20 79 6f 75 72 20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 s.your.unlimited.permission.to.r
ec5a0 75 6e 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 un.the.unmodified.Program...The.
ec5c0 6f 75 74 70 75 74 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f output.from.running.a.covered.wo
ec5e0 72 6b 20 69 73 20 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e rk.is.covered.by.this.License.on
ec600 6c 79 20 69 66 20 74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 20 69 74 73 0a 63 6f 6e 74 ly.if.the.output,.given.its.cont
ec620 65 6e 74 2c 20 63 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e ent,.constitutes.a.covered.work.
ec640 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 79 6f 75 72 ..This.License.acknowledges.your
ec660 0a 72 69 67 68 74 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 .rights.of.fair.use.or.other.equ
ec680 69 76 61 6c 65 6e 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 63 6f 70 79 72 69 67 68 ivalent,.as.provided.by.copyrigh
ec6a0 74 20 6c 61 77 2e 0a 0a 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 t.law...You.may.make,.run.and.pr
ec6c0 6f 70 61 67 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 68 61 74 20 79 6f 75 20 64 opagate.covered.works.that.you.d
ec6e0 6f 20 6e 6f 74 20 63 6f 6e 76 65 79 2c 0a 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 o.not.convey,.without.conditions
ec700 20 73 6f 20 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 .so.long.as.your.license.otherwi
ec720 73 65 20 72 65 6d 61 69 6e 73 20 69 6e 20 66 6f 72 63 65 2e 0a 59 6f 75 20 6d 61 79 20 63 6f 6e se.remains.in.force..You.may.con
ec740 76 65 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 vey.covered.works.to.others.for.
ec760 74 68 65 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 20 6f 66 20 68 61 76 69 6e 67 0a 74 68 65 6d 20 the.sole.purpose.of.having.them.
ec780 6d 61 6b 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 make.modifications.exclusively.f
ec7a0 6f 72 20 79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 20 77 69 74 68 0a 66 61 63 69 or.you,.or.provide.you.with.faci
ec7c0 6c 69 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 lities.for.running.those.works,.
ec7e0 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 68 20 74 68 provided.that.you.comply.with.th
ec800 65 0a 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 e.terms.of.this.License.in.conve
ec820 79 69 6e 67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 ying.all.material.for.which.you.
ec840 64 6f 20 6e 6f 74 0a 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 74 2e 20 20 54 68 6f 73 65 do.not.control.copyright...Those
ec860 20 74 68 75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 .thus.making.or.running.the.cove
ec880 72 65 64 20 77 6f 72 6b 73 20 66 6f 72 0a 79 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 red.works.for.you.must.do.so.exc
ec8a0 6c 75 73 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 lusively.on.your.behalf,.under.y
ec8c0 6f 75 72 20 64 69 72 65 63 74 69 6f 6e 20 61 6e 64 0a 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 our.direction.and.control,.on.te
ec8e0 72 6d 73 20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 rms.that.prohibit.them.from.maki
ec900 6e 67 20 61 6e 79 20 63 6f 70 69 65 73 20 6f 66 20 79 6f 75 72 0a 63 6f 70 79 72 69 67 68 74 65 ng.any.copies.of.your.copyrighte
ec920 64 20 6d 61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f d.material.outside.their.relatio
ec940 6e 73 68 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 nship.with.you...Conveying.under
ec960 20 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d .any.other.circumstances.is.perm
ec980 69 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 20 74 68 65 0a 63 6f 6e 64 69 74 69 6f 6e itted.solely.under.the.condition
ec9a0 73 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 s.stated.below...Sublicensing.is
ec9c0 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 .not.allowed;.section.10.makes.i
ec9e0 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 40 69 74 65 6d 20 50 72 6f 74 65 63 74 69 6e 67 t.unnecessary...@item.Protecting
eca00 20 55 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 .Users'.Legal.Rights.From.Anti-C
eca20 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a 4e 6f 20 63 6f 76 65 72 65 64 20 77 6f ircumvention.Law...No.covered.wo
eca40 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 66 rk.shall.be.deemed.part.of.an.ef
eca60 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 6e fective.technological.measure.un
eca80 64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 6e der.any.applicable.law.fulfillin
ecaa0 67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 6f g.obligations.under.article.11.o
ecac0 66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f 70 f.the.WIPO.copyright.treaty.adop
ecae0 74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d 69 ted.on.20.December.1996,.or.simi
ecb00 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 74 lar.laws.prohibiting.or.restrict
ecb20 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 72 ing.circumvention.of.such.measur
ecb40 65 73 2e 0a 0a 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 es...When.you.convey.a.covered.w
ecb60 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 72 20 74 ork,.you.waive.any.legal.power.t
ecb80 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 6e 6f o.forbid.circumvention.of.techno
ecba0 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 73 logical.measures.to.the.extent.s
ecbc0 75 63 68 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 69 73 20 65 66 66 65 63 74 65 64 20 62 79 uch.circumvention.is.effected.by
ecbe0 20 65 78 65 72 63 69 73 69 6e 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 .exercising.rights.under.this.Li
ecc00 63 65 6e 73 65 20 77 69 74 68 0a 72 65 73 70 65 63 74 20 74 6f 20 74 68 65 20 63 6f 76 65 72 65 cense.with.respect.to.the.covere
ecc20 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 69 6e 74 d.work,.and.you.disclaim.any.int
ecc40 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69 74 0a 6f 70 65 72 61 74 69 6f 6e 20 6f 72 20 6d 6f 64 ention.to.limit.operation.or.mod
ecc60 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 61 6e 73 ification.of.the.work.as.a.means
ecc80 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 0a 74 68 65 20 77 6f 72 6b 27 .of.enforcing,.against.the.work'
ecca0 73 20 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 73 27 20 s.users,.your.or.third.parties'.
eccc0 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e legal.rights.to.forbid.circumven
ecce0 74 69 6f 6e 20 6f 66 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 2e 0a tion.of.technological.measures..
ecd00 0a 40 69 74 65 6d 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 65 73 .@item.Conveying.Verbatim.Copies
ecd20 2e 0a 0a 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 ...You.may.convey.verbatim.copie
ecd40 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 s.of.the.Program's.source.code.a
ecd60 73 20 79 6f 75 0a 72 65 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69 75 6d 2c s.you.receive.it,.in.any.medium,
ecd80 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f 75 73 6c 79 .provided.that.you.conspicuously
ecda0 20 61 6e 64 0a 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f 6e 20 65 61 .and.appropriately.publish.on.ea
ecdc0 63 68 20 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 ch.copy.an.appropriate.copyright
ecde0 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 .notice;.keep.intact.all.notices
ece00 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 .stating.that.this.License.and.a
ece20 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 64 20 69 6e ny.non-permissive.terms.added.in
ece40 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 20 74 6f 20 .accord.with.section.7.apply.to.
ece60 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 the.code;.keep.intact.all.notice
ece80 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 61 6e 74 79 s.of.the.absence.of.any.warranty
ecea0 3b 20 61 6e 64 20 67 69 76 65 20 61 6c 6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 63 6f 70 79 ;.and.give.all.recipients.a.copy
ecec0 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 .of.this.License.along.with.the.
ecee0 50 72 6f 67 72 61 6d 2e 0a 0a 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 6e 79 20 70 72 69 Program...You.may.charge.any.pri
ecf00 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f 70 79 20 74 68 61 ce.or.no.price.for.each.copy.tha
ecf20 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 6f 66 66 65 72 20 t.you.convey,.and.you.may.offer.
ecf40 73 75 70 70 6f 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 74 69 6f 6e 20 66 support.or.warranty.protection.f
ecf60 6f 72 20 61 20 66 65 65 2e 0a 0a 40 69 74 65 6d 20 43 6f 6e 76 65 79 69 6e 67 20 4d 6f 64 69 66 or.a.fee...@item.Conveying.Modif
ecf80 69 65 64 20 53 6f 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 59 6f 75 20 6d 61 79 20 63 6f ied.Source.Versions...You.may.co
ecfa0 6e 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d nvey.a.work.based.on.the.Program
ecfc0 2c 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 0a 70 72 6f 64 75 63 ,.or.the.modifications.to.produc
ecfe0 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e 20 74 68 65 20 66 6f e.it.from.the.Program,.in.the.fo
ed000 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 68 65 0a 74 65 72 6d rm.of.source.code.under.the.term
ed020 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f s.of.section.4,.provided.that.yo
ed040 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 0a 63 6f 6e 64 69 74 69 u.also.meet.all.of.these.conditi
ed060 6f 6e 73 3a 0a 0a 40 65 6e 75 6d 65 72 61 74 65 20 61 0a 40 69 74 65 6d 0a 54 68 65 20 77 6f 72 ons:..@enumerate.a.@item.The.wor
ed080 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 k.must.carry.prominent.notices.s
ed0a0 74 61 74 69 6e 67 20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69 65 64 20 69 74 2c 0a 61 6e 64 tating.that.you.modified.it,.and
ed0c0 20 67 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 65 2e 0a 0a 40 69 74 65 6d 0a .giving.a.relevant.date...@item.
ed0e0 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f The.work.must.carry.prominent.no
ed100 74 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 20 72 65 6c 65 61 73 65 tices.stating.that.it.is.release
ed120 64 0a 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 63 6f 6e d.under.this.License.and.any.con
ed140 64 69 74 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 37 2e 20 20 ditions.added.under.section.7...
ed160 54 68 69 73 0a 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 72 65 This.requirement.modifies.the.re
ed180 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 6f 20 60 60 6b 65 65 70 quirement.in.section.4.to.``keep
ed1a0 20 69 6e 74 61 63 74 20 61 6c 6c 0a 6e 6f 74 69 63 65 73 27 27 2e 0a 0a 40 69 74 65 6d 0a 59 6f .intact.all.notices''...@item.Yo
ed1c0 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e 74 69 72 65 20 77 6f 72 6b 2c 20 u.must.license.the.entire.work,.
ed1e0 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 as.a.whole,.under.this.License.t
ed200 6f 0a 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 73 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 o.anyone.who.comes.into.possessi
ed220 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c on.of.a.copy...This.License.will
ed240 0a 74 68 65 72 65 66 6f 72 65 20 61 70 70 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 79 .therefore.apply,.along.with.any
ed260 20 61 70 70 6c 69 63 61 62 6c 65 20 73 65 63 74 69 6f 6e 20 37 20 61 64 64 69 74 69 6f 6e 61 6c .applicable.section.7.additional
ed280 20 74 65 72 6d 73 2c 0a 74 6f 20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b .terms,.to.the.whole.of.the.work
ed2a0 2c 20 61 6e 64 20 61 6c 6c 20 69 74 73 20 70 61 72 74 73 2c 20 72 65 67 61 72 64 6c 65 73 73 20 ,.and.all.its.parts,.regardless.
ed2c0 6f 66 20 68 6f 77 20 74 68 65 79 0a 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 of.how.they.are.packaged...This.
ed2e0 4c 69 63 65 6e 73 65 20 67 69 76 65 73 20 6e 6f 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c License.gives.no.permission.to.l
ed300 69 63 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 0a 61 6e 79 20 6f 74 68 65 72 20 77 61 79 icense.the.work.in.any.other.way
ed320 2c 20 62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 76 61 6c 69 64 61 74 65 20 73 75 63 ,.but.it.does.not.invalidate.suc
ed340 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 76 65 0a 73 65 70 61 72 61 74 h.permission.if.you.have.separat
ed360 65 6c 79 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 40 69 74 65 6d 0a 49 66 20 74 68 65 20 77 ely.received.it...@item.If.the.w
ed380 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 ork.has.interactive.user.interfa
ed3a0 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 41 70 70 72 6f 70 72 69 61 ces,.each.must.display.Appropria
ed3c0 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 72 2c 20 69 66 20 74 68 te.Legal.Notices;.however,.if.th
ed3e0 65 20 50 72 6f 67 72 61 6d 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 0a 69 6e 74 65 72 66 e.Program.has.interactive.interf
ed400 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 70 6c 61 79 20 41 70 70 72 6f 70 72 aces.that.do.not.display.Appropr
ed420 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 79 6f 75 72 20 77 6f 72 6b 0a 6e 65 iate.Legal.Notices,.your.work.ne
ed440 65 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d 20 64 6f 20 73 6f 2e 0a 40 65 6e 64 20 65 6e 75 ed.not.make.them.do.so..@end.enu
ed460 6d 65 72 61 74 65 0a 0a 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 merate..A.compilation.of.a.cover
ed480 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 6e 64 20 ed.work.with.other.separate.and.
ed4a0 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 independent.works,.which.are.not
ed4c0 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f 66 20 74 .by.their.nature.extensions.of.t
ed4e0 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 65 20 6e he.covered.work,.and.which.are.n
ed500 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 6f 20 66 ot.combined.with.it.such.as.to.f
ed520 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70 72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f 6e 20 61 orm.a.larger.program,.in.or.on.a
ed540 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69 62 75 .volume.of.a.storage.or.distribu
ed560 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 0a 60 60 61 67 67 72 tion.medium,.is.called.an.``aggr
ed580 65 67 61 74 65 27 27 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 69 egate''.if.the.compilation.and.i
ed5a0 74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a 75 ts.resulting.copyright.are.not.u
ed5c0 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 6c sed.to.limit.the.access.or.legal
ed5e0 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 65 .rights.of.the.compilation's.use
ed600 72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 6f rs.beyond.what.the.individual.wo
ed620 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 rks.permit...Inclusion.of.a.cove
ed640 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e 6f red.work.in.an.aggregate.does.no
ed660 74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 6f t.cause.this.License.to.apply.to
ed680 20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74 .the.other.parts.of.the.aggregat
ed6a0 65 2e 0a 0a 40 69 74 65 6d 20 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 e...@item..Conveying.Non-Source.
ed6c0 46 6f 72 6d 73 2e 0a 0a 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 Forms...You.may.convey.a.covered
ed6e0 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 20 .work.in.object.code.form.under.
ed700 74 68 65 20 74 65 72 6d 73 20 6f 66 0a 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 70 the.terms.of.sections.4.and.5,.p
ed720 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 65 rovided.that.you.also.convey.the
ed740 20 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 .machine-readable.Corresponding.
ed760 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c Source.under.the.terms.of.this.L
ed780 69 63 65 6e 73 65 2c 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 0a 77 61 79 73 3a 0a 0a 40 icense,.in.one.of.these.ways:..@
ed7a0 65 6e 75 6d 65 72 61 74 65 20 61 0a 40 69 74 65 6d 0a 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a enumerate.a.@item.Convey.the.obj
ed7c0 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 ect.code.in,.or.embodied.in,.a.p
ed7e0 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 hysical.product.(including.a.phy
ed800 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f sical.distribution.medium),.acco
ed820 6d 70 61 6e 69 65 64 20 62 79 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 mpanied.by.the.Corresponding.Sou
ed840 72 63 65 20 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 rce.fixed.on.a.durable.physical.
ed860 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 69 6c 79 0a 75 73 65 64 20 66 6f 72 20 73 6f 66 74 medium.customarily.used.for.soft
ed880 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 40 69 74 65 6d 0a 43 6f 6e 76 65 79 20 ware.interchange...@item.Convey.
ed8a0 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 the.object.code.in,.or.embodied.
ed8c0 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 28 69 6e 63 6c 75 64 69 6e in,.a.physical.product.(includin
ed8e0 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d g.a.physical.distribution.medium
ed900 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 20 77 72 69 74 74 65 6e 0a 6f 66 66 65 ),.accompanied.by.a.written.offe
ed920 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 74 68 72 65 65 20 79 65 61 72 r,.valid.for.at.least.three.year
ed940 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 79 6f 75 0a 6f s.and.valid.for.as.long.as.you.o
ed960 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f 72 20 63 75 73 74 6f 6d 65 72 20 73 75 70 ffer.spare.parts.or.customer.sup
ed980 70 6f 72 74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 75 63 74 20 6d 6f 64 65 6c 2c 20 74 6f 20 port.for.that.product.model,.to.
ed9a0 67 69 76 65 0a 61 6e 79 6f 6e 65 20 77 68 6f 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 give.anyone.who.possesses.the.ob
ed9c0 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 65 72 20 28 31 29 20 61 20 63 6f 70 79 20 6f 66 20 74 ject.code.either.(1).a.copy.of.t
ed9e0 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 he.Corresponding.Source.for.all.
eda00 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 20 74 68 65 20 70 72 6f 64 75 63 74 20 74 68 61 74 the.software.in.the.product.that
eda20 20 69 73 0a 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 .is.covered.by.this.License,.on.
eda40 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d a.durable.physical.medium.custom
eda60 61 72 69 6c 79 20 75 73 65 64 0a 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 arily.used.for.software.intercha
eda80 6e 67 65 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 79 6f nge,.for.a.price.no.more.than.yo
edaa0 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 0a 63 6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c 6c 79 ur.reasonable.cost.of.physically
edac0 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 20 63 6f 6e 76 65 79 69 6e 67 20 6f 66 20 73 6f .performing.this.conveying.of.so
edae0 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 0a 74 6f 20 63 6f 70 79 20 74 68 65 20 urce,.or.(2).access.to.copy.the.
edb00 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 72 6f 6d 20 61 20 6e 65 74 77 Corresponding.Source.from.a.netw
edb20 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 65 2e 0a 0a 40 69 74 65 6d 0a ork.server.at.no.charge...@item.
edb40 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 Convey.individual.copies.of.the.
edb60 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 77 object.code.with.a.copy.of.the.w
edb80 72 69 74 74 65 6e 0a 6f 66 66 65 72 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 ritten.offer.to.provide.the.Corr
edba0 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 69 73 20 61 6c 74 65 72 6e 61 74 esponding.Source...This.alternat
edbc0 69 76 65 20 69 73 0a 61 6c 6c 6f 77 65 64 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 ive.is.allowed.only.occasionally
edbe0 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 2c 20 61 6e 64 20 6f 6e 6c 79 20 69 .and.noncommercially,.and.only.i
edc00 66 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 f.you.received.the.object.code.w
edc20 69 74 68 20 73 75 63 68 20 61 6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 ith.such.an.offer,.in.accord.wit
edc40 68 20 73 75 62 73 65 63 74 69 6f 6e 0a 36 62 2e 0a 0a 40 69 74 65 6d 0a 43 6f 6e 76 65 79 20 74 h.subsection.6b...@item.Convey.t
edc60 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 he.object.code.by.offering.acces
edc80 73 20 66 72 6f 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 20 70 6c 61 63 65 0a 28 67 72 61 74 69 s.from.a.designated.place.(grati
edca0 73 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 s.or.for.a.charge),.and.offer.eq
edcc0 75 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e uivalent.access.to.the.Correspon
edce0 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 72 6f ding.Source.in.the.same.way.thro
edd00 75 67 68 20 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 74 20 6e 6f 0a 66 75 72 74 68 65 72 ugh.the.same.place.at.no.further
edd20 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 65 71 75 69 72 65 20 72 .charge...You.need.not.require.r
edd40 65 63 69 70 69 65 6e 74 73 20 74 6f 20 63 6f 70 79 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 ecipients.to.copy.the.Correspond
edd60 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 6f 62 6a 65 63 74 ing.Source.along.with.the.object
edd80 20 63 6f 64 65 2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 20 74 6f 20 63 6f 70 79 0a 74 68 65 .code...If.the.place.to.copy.the
edda0 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 .object.code.is.a.network.server
eddc0 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6d 61 79 20 62 ,.the.Corresponding.Source.may.b
edde0 65 0a 6f 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 e.on.a.different.server.(operate
ede00 64 20 62 79 20 79 6f 75 20 6f 72 20 61 20 74 68 69 72 64 20 70 61 72 74 79 29 20 74 68 61 74 20 d.by.you.or.a.third.party).that.
ede20 73 75 70 70 6f 72 74 73 0a 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 20 66 61 63 69 supports.equivalent.copying.faci
ede40 6c 69 74 69 65 73 2c 20 70 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 20 63 6c lities,.provided.you.maintain.cl
ede60 65 61 72 20 64 69 72 65 63 74 69 6f 6e 73 0a 6e 65 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 ear.directions.next.to.the.objec
ede80 74 20 63 6f 64 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 t.code.saying.where.to.find.the.
edea0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 0a 52 65 67 61 72 64 6c 65 73 73 Corresponding.Source..Regardless
edec0 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 20 43 6f 72 72 65 73 .of.what.server.hosts.the.Corres
edee0 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 0a 6f 62 6c 69 67 ponding.Source,.you.remain.oblig
edf00 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 20 61 76 61 69 6c 61 ated.to.ensure.that.it.is.availa
edf20 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 65 64 20 74 6f 0a 73 61 74 ble.for.as.long.as.needed.to.sat
edf40 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 0a 0a 40 69 74 65 6d 0a isfy.these.requirements...@item.
edf60 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 75 73 69 6e 67 20 70 65 65 Convey.the.object.code.using.pee
edf80 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 2c 20 70 72 6f 76 69 64 65 64 r-to-peer.transmission,.provided
edfa0 20 79 6f 75 0a 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 70 65 65 72 73 20 77 68 65 72 65 20 74 68 .you.inform.other.peers.where.th
edfc0 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 e.object.code.and.Corresponding.
edfe0 53 6f 75 72 63 65 20 6f 66 0a 74 68 65 20 77 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 Source.of.the.work.are.being.off
ee000 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f ered.to.the.general.public.at.no
ee020 20 63 68 61 72 67 65 20 75 6e 64 65 72 0a 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 40 65 .charge.under.subsection.6d...@e
ee040 6e 64 20 65 6e 75 6d 65 72 61 74 65 0a 0a 41 20 73 65 70 61 72 61 62 6c 65 20 70 6f 72 74 69 6f nd.enumerate..A.separable.portio
ee060 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 6f 73 65 20 73 6f 75 72 n.of.the.object.code,.whose.sour
ee080 63 65 20 63 6f 64 65 20 69 73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d 20 74 68 65 20 43 6f 72 ce.code.is.excluded.from.the.Cor
ee0a0 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 79 73 74 65 6d 20 4c 69 responding.Source.as.a.System.Li
ee0c0 62 72 61 72 79 2c 20 6e 65 65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 64 65 64 20 69 6e 20 63 brary,.need.not.be.included.in.c
ee0e0 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 2e 0a 0a onveying.the.object.code.work...
ee100 41 20 60 60 55 73 65 72 20 50 72 6f 64 75 63 74 27 27 20 69 73 20 65 69 74 68 65 72 20 28 31 29 A.``User.Product''.is.either.(1)
ee120 20 61 20 60 60 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 27 27 2c 20 77 68 69 63 68 20 6d .a.``consumer.product'',.which.m
ee140 65 61 6e 73 20 61 6e 79 0a 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c 20 70 72 6f 70 65 eans.any.tangible.personal.prope
ee160 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 20 66 6f 72 20 70 rty.which.is.normally.used.for.p
ee180 65 72 73 6f 6e 61 6c 2c 0a 66 61 6d 69 6c 79 2c 20 6f 72 20 68 6f 75 73 65 68 6f 6c 64 20 70 75 ersonal,.family,.or.household.pu
ee1a0 72 70 6f 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 73 69 67 6e 65 64 rposes,.or.(2).anything.designed
ee1c0 20 6f 72 20 73 6f 6c 64 20 66 6f 72 0a 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e 20 69 6e 74 6f 20 .or.sold.for.incorporation.into.
ee1e0 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 65 74 a.dwelling...In.determining.whet
ee200 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 20 61 0a 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 her.a.product.is.a.consumer.prod
ee220 75 63 74 2c 20 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 62 65 20 72 65 73 uct,.doubtful.cases.shall.be.res
ee240 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 63 6f 76 65 72 61 67 65 2e 20 20 46 6f 72 olved.in.favor.of.coverage...For
ee260 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 64 75 63 74 20 72 65 63 65 69 76 65 64 20 62 .a.particular.product.received.b
ee280 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 0a 60 60 6e 6f 72 6d 61 6c 6c 79 20 y.a.particular.user,.``normally.
ee2a0 75 73 65 64 27 27 20 72 65 66 65 72 73 20 74 6f 20 61 20 74 79 70 69 63 61 6c 20 6f 72 20 63 6f used''.refers.to.a.typical.or.co
ee2c0 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 20 6f 66 0a 70 72 6f 64 75 63 mmon.use.of.that.class.of.produc
ee2e0 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 20 6f 66 20 74 t,.regardless.of.the.status.of.t
ee300 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 20 77 61 79 he.particular.user.or.of.the.way
ee320 0a 69 6e 20 77 68 69 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 61 63 .in.which.the.particular.user.ac
ee340 74 75 61 6c 6c 79 20 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 73 20 65 78 tually.uses,.or.expects.or.is.ex
ee360 70 65 63 74 65 64 0a 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 20 41 20 70 pected.to.use,.the.product...A.p
ee380 72 6f 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 20 72 65 67 roduct.is.a.consumer.product.reg
ee3a0 61 72 64 6c 65 73 73 20 6f 66 0a 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 63 74 20 68 ardless.of.whether.the.product.h
ee3c0 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 20 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 6e 64 75 73 as.substantial.commercial,.indus
ee3e0 74 72 69 61 6c 20 6f 72 0a 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 75 6e 6c 65 trial.or.non-consumer.uses,.unle
ee400 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 6f 6e 6c 79 20 ss.such.uses.represent.the.only.
ee420 73 69 67 6e 69 66 69 63 61 6e 74 0a 6d 6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 68 65 20 70 significant.mode.of.use.of.the.p
ee440 72 6f 64 75 63 74 2e 0a 0a 60 60 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 roduct...``Installation.Informat
ee460 69 6f 6e 27 27 20 66 6f 72 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 6e 73 20 61 ion''.for.a.User.Product.means.a
ee480 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 6f 72 69 7a ny.methods,.procedures,.authoriz
ee4a0 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e ation.keys,.or.other.information
ee4c0 20 72 65 71 75 69 72 65 64 20 74 6f 0a 69 6e 73 74 61 6c 6c 20 61 6e 64 20 65 78 65 63 75 74 65 .required.to.install.and.execute
ee4e0 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 .modified.versions.of.a.covered.
ee500 77 6f 72 6b 20 69 6e 20 74 68 61 74 20 55 73 65 72 0a 50 72 6f 64 75 63 74 20 66 72 6f 6d 20 61 work.in.that.User.Product.from.a
ee520 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 72 65 73 70 .modified.version.of.its.Corresp
ee540 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 onding.Source...The.information.
ee560 6d 75 73 74 20 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 must.suffice.to.ensure.that.the.
ee580 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 0a 74 68 65 20 6d 6f 64 continued.functioning.of.the.mod
ee5a0 69 66 69 65 64 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 61 73 65 20 ified.object.code.is.in.no.case.
ee5c0 70 72 65 76 65 6e 74 65 64 20 6f 72 20 69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 0a 73 6f 6c prevented.or.interfered.with.sol
ee5e0 65 6c 79 20 62 65 63 61 75 73 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 20 62 65 65 ely.because.modification.has.bee
ee600 6e 20 6d 61 64 65 2e 0a 0a 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 6f 62 6a 65 63 74 n.made...If.you.convey.an.object
ee620 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 69 6e .code.work.under.this.section.in
ee640 2c 20 6f 72 20 77 69 74 68 2c 20 6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 66 6f 72 20 75 ,.or.with,.or.specifically.for.u
ee660 73 65 20 69 6e 2c 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 20 74 68 65 20 63 se.in,.a.User.Product,.and.the.c
ee680 6f 6e 76 65 79 69 6e 67 20 6f 63 63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 20 61 20 74 72 61 onveying.occurs.as.part.of.a.tra
ee6a0 6e 73 61 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 70 nsaction.in.which.the.right.of.p
ee6c0 6f 73 73 65 73 73 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 73 65 72 20 50 72 ossession.and.use.of.the.User.Pr
ee6e0 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 20 72 65 63 69 oduct.is.transferred.to.the.reci
ee700 70 69 65 6e 74 20 69 6e 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 20 61 0a 66 69 78 pient.in.perpetuity.or.for.a.fix
ee720 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 20 74 68 65 20 74 ed.term.(regardless.of.how.the.t
ee740 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 64 29 2c 20 74 68 ransaction.is.characterized),.th
ee760 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 20 e.Corresponding.Source.conveyed.
ee780 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 63 63 6f 6d under.this.section.must.be.accom
ee7a0 70 61 6e 69 65 64 0a 62 79 20 74 68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 panied.by.the.Installation.Infor
ee7c0 6d 61 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 64 6f mation...But.this.requirement.do
ee7e0 65 73 20 6e 6f 74 20 61 70 70 6c 79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f 75 20 6e 6f 72 20 es.not.apply.if.neither.you.nor.
ee800 61 6e 79 20 74 68 69 72 64 20 70 61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 65 20 61 62 69 6c any.third.party.retains.the.abil
ee820 69 74 79 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 20 63 ity.to.install.modified.object.c
ee840 6f 64 65 20 6f 6e 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 6f 72 20 65 78 61 ode.on.the.User.Product.(for.exa
ee860 6d 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 mple,.the.work.has.been.installe
ee880 64 20 69 6e 20 52 4f 4d 29 2e 0a 0a 54 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 70 d.in.ROM)...The.requirement.to.p
ee8a0 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 rovide.Installation.Information.
ee8c0 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 72 65 6d 65 6e 74 20 74 does.not.include.a.requirement.t
ee8e0 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 70 70 6f 72 74 20 73 65 o.continue.to.provide.support.se
ee900 72 76 69 63 65 2c 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 0a 75 70 64 61 74 65 73 20 66 6f 72 20 rvice,.warranty,.or.updates.for.
ee920 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 a.work.that.has.been.modified.or
ee940 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 74 68 65 0a 72 65 63 69 70 69 65 6e 74 2c 20 6f 72 20 .installed.by.the.recipient,.or.
ee960 66 6f 72 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 77 68 69 63 68 20 69 74 for.the.User.Product.in.which.it
ee980 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 0a 69 6e 73 74 61 6c 6c 65 64 2e .has.been.modified.or.installed.
ee9a0 20 20 41 63 63 65 73 73 20 74 6f 20 61 20 6e 65 74 77 6f 72 6b 20 6d 61 79 20 62 65 20 64 65 6e ..Access.to.a.network.may.be.den
ee9c0 69 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 0a 69 74 73 65 6c 66 ied.when.the.modification.itself
ee9e0 20 6d 61 74 65 72 69 61 6c 6c 79 20 61 6e 64 20 61 64 76 65 72 73 65 6c 79 20 61 66 66 65 63 74 .materially.and.adversely.affect
eea00 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 74 77 6f 72 6b 0a 6f s.the.operation.of.the.network.o
eea20 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 20 70 72 6f 74 6f 63 6f r.violates.the.rules.and.protoco
eea40 6c 73 20 66 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 6f 73 73 20 74 68 65 0a ls.for.communication.across.the.
eea60 6e 65 74 77 6f 72 6b 2e 0a 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 network...Corresponding.Source.c
eea80 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d onveyed,.and.Installation.Inform
eeaa0 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 74 ation.provided,.in.accord.with.t
eeac0 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 his.section.must.be.in.a.format.
eeae0 74 68 61 74 20 69 73 20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d 65 6e 74 65 64 20 28 61 6e 64 that.is.publicly.documented.(and
eeb00 20 77 69 74 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c .with.an.implementation.availabl
eeb20 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 72 63 65 20 63 6f 64 65 20 66 e.to.the.public.in.source.code.f
eeb40 6f 72 6d 29 2c 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 20 6e 6f 20 73 70 65 63 69 61 orm),.and.must.require.no.specia
eeb60 6c 20 70 61 73 73 77 6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a 75 6e 70 61 63 6b 69 6e 67 2c l.password.or.key.for.unpacking,
eeb80 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a 40 69 74 65 6d 20 41 64 64 69 .reading.or.copying...@item.Addi
eeba0 74 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 60 60 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d tional.Terms...``Additional.perm
eebc0 69 73 73 69 6f 6e 73 27 27 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 74 20 73 75 70 70 6c 65 6d issions''.are.terms.that.supplem
eebe0 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 62 79 ent.the.terms.of.this.License.by
eec00 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d 20 6f 6e 65 20 6f 72 20 6d .making.exceptions.from.one.or.m
eec20 6f 72 65 20 6f 66 20 69 74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 41 64 64 69 74 69 6f 6e 61 ore.of.its.conditions..Additiona
eec40 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 70 70 6c 69 63 61 62 6c l.permissions.that.are.applicabl
eec60 65 20 74 6f 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d 20 73 68 61 6c 6c 0a 62 65 e.to.the.entire.Program.shall.be
eec80 20 74 72 65 61 74 65 64 20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 20 77 65 72 65 20 69 6e 63 .treated.as.though.they.were.inc
eeca0 6c 75 64 65 64 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 6f 20 74 68 65 20 65 78 luded.in.this.License,.to.the.ex
eecc0 74 65 6e 74 0a 74 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 64 20 75 6e 64 65 72 20 61 tent.that.they.are.valid.under.a
eece0 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 pplicable.law...If.additional.pe
eed00 72 6d 69 73 73 69 6f 6e 73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20 70 61 72 74 20 6f 66 20 rmissions.apply.only.to.part.of.
eed20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 6d 61 79 20 62 65 20 75 73 the.Program,.that.part.may.be.us
eed40 65 64 20 73 65 70 61 72 61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f 73 65 20 70 65 72 6d 69 73 ed.separately.under.those.permis
eed60 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d 20 72 65 sions,.but.the.entire.Program.re
eed80 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 mains.governed.by.this.License.w
eeda0 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 ithout.regard.to.the.additional.
eedc0 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 permissions...When.you.convey.a.
eede0 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 copy.of.a.covered.work,.you.may.
eee00 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 20 61 6e 79 20 61 64 64 69 74 69 at.your.option.remove.any.additi
eee20 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d 20 74 68 61 74 20 63 6f 70 79 2c onal.permissions.from.that.copy,
eee40 20 6f 72 20 66 72 6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a 69 74 2e 20 20 28 41 64 64 69 74 .or.from.any.part.of.it...(Addit
eee60 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 20 62 65 20 77 72 69 74 74 65 6e ional.permissions.may.be.written
eee80 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e 0a 72 65 6d 6f 76 61 6c 20 69 6e .to.require.their.own.removal.in
eeea0 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 6f 75 20 6d 6f 64 69 66 79 20 74 .certain.cases.when.you.modify.t
eeec0 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c 61 63 65 0a 61 64 64 69 74 69 6f he.work.)..You.may.place.additio
eeee0 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 74 65 72 69 61 6c 2c 20 61 64 64 nal.permissions.on.material,.add
eef00 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 66 6f 72 ed.by.you.to.a.covered.work,.for
eef20 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 6e 20 67 69 76 65 20 61 70 70 72 .which.you.have.or.can.give.appr
eef40 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 4e opriate.copyright.permission...N
eef60 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 otwithstanding.any.other.provisi
eef80 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 66 6f 72 20 6d 61 74 65 72 69 61 6c on.of.this.License,.for.material
eefa0 20 79 6f 75 0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 .you.add.to.a.covered.work,.you.
eefc0 6d 61 79 20 28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 62 79 20 74 68 65 20 63 6f 70 79 72 69 may.(if.authorized.by.the.copyri
eefe0 67 68 74 20 68 6f 6c 64 65 72 73 0a 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 29 20 73 75 ght.holders.of.that.material).su
ef000 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e pplement.the.terms.of.this.Licen
ef020 73 65 20 77 69 74 68 20 74 65 72 6d 73 3a 0a 0a 40 65 6e 75 6d 65 72 61 74 65 20 61 0a 40 69 74 se.with.terms:..@enumerate.a.@it
ef040 65 6d 0a 44 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 74 em.Disclaiming.warranty.or.limit
ef060 69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 74 ing.liability.differently.from.t
ef080 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 20 31 36 20 6f he.terms.of.sections.15.and.16.o
ef0a0 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 40 69 74 65 6d 0a 52 65 71 75 69 72 f.this.License;.or..@item.Requir
ef0c0 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 69 65 64 20 72 65 ing.preservation.of.specified.re
ef0e0 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 20 61 75 74 68 6f 72 asonable.legal.notices.or.author
ef100 0a 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 20 6f .attributions.in.that.material.o
ef120 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 r.in.the.Appropriate.Legal.Notic
ef140 65 73 0a 64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f 72 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 es.displayed.by.works.containing
ef160 20 69 74 3b 20 6f 72 0a 0a 40 69 74 65 6d 0a 50 72 6f 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 .it;.or..@item.Prohibiting.misre
ef180 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 presentation.of.the.origin.of.th
ef1a0 61 74 20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 72 65 71 75 69 72 69 6e 67 20 74 68 61 74 20 6d at.material,.or.requiring.that.m
ef1c0 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72 69 61 odified.versions.of.such.materia
ef1e0 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 6e 0a 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 l.be.marked.in.reasonable.ways.a
ef200 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 s.different.from.the.original.ve
ef220 72 73 69 6f 6e 3b 20 6f 72 0a 0a 40 69 74 65 6d 0a 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 rsion;.or..@item.Limiting.the.us
ef240 65 20 66 6f 72 20 70 75 62 6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 e.for.publicity.purposes.of.name
ef260 73 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 6f 72 0a 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 s.of.licensors.or.authors.of.the
ef280 20 6d 61 74 65 72 69 61 6c 3b 20 6f 72 0a 0a 40 69 74 65 6d 0a 44 65 63 6c 69 6e 69 6e 67 20 74 .material;.or..@item.Declining.t
ef2a0 6f 20 67 72 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c o.grant.rights.under.trademark.l
ef2c0 61 77 20 66 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 20 74 72 61 64 65 0a 6e 61 6d 65 73 2c 20 aw.for.use.of.some.trade.names,.
ef2e0 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f 72 trademarks,.or.service.marks;.or
ef300 0a 0a 40 69 74 65 6d 0a 52 65 71 75 69 72 69 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 69 6f ..@item.Requiring.indemnificatio
ef320 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 n.of.licensors.and.authors.of.th
ef340 61 74 20 6d 61 74 65 72 69 61 6c 20 62 79 0a 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6e 76 65 79 at.material.by.anyone.who.convey
ef360 73 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 s.the.material.(or.modified.vers
ef380 69 6f 6e 73 20 6f 66 20 69 74 29 20 77 69 74 68 0a 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 73 73 ions.of.it).with.contractual.ass
ef3a0 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 74 6f 20 74 68 65 20 72 65 63 umptions.of.liability.to.the.rec
ef3c0 69 70 69 65 6e 74 2c 20 66 6f 72 20 61 6e 79 0a 6c 69 61 62 69 6c 69 74 79 20 74 68 61 74 20 74 ipient,.for.any.liability.that.t
ef3e0 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 hese.contractual.assumptions.dir
ef400 65 63 74 6c 79 20 69 6d 70 6f 73 65 20 6f 6e 20 74 68 6f 73 65 0a 6c 69 63 65 6e 73 6f 72 73 20 ectly.impose.on.those.licensors.
ef420 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 40 65 6e 64 20 65 6e 75 6d 65 72 61 74 65 0a 0a 41 6c 6c and.authors..@end.enumerate..All
ef440 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 69 6f 6e 61 6c .other.non-permissive.additional
ef460 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 60 60 66 75 72 74 68 65 72 0a .terms.are.considered.``further.
ef480 72 65 73 74 72 69 63 74 69 6f 6e 73 27 27 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 6e 69 6e restrictions''.within.the.meanin
ef4a0 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d g.of.section.10...If.the.Program
ef4c0 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 61 72 74 .as.you.received.it,.or.any.part
ef4e0 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 74 69 6e .of.it,.contains.a.notice.statin
ef500 67 20 74 68 61 74 20 69 74 20 69 73 0a 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 4c 69 g.that.it.is.governed.by.this.Li
ef520 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 69 73 20 cense.along.with.a.term.that.is.
ef540 61 20 66 75 72 74 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 79 20 72 a.further.restriction,.you.may.r
ef560 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 65 20 64 emove.that.term...If.a.license.d
ef580 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 73 74 72 ocument.contains.a.further.restr
ef5a0 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e 67 20 6f iction.but.permits.relicensing.o
ef5c0 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2c 20 r.conveying.under.this.License,.
ef5e0 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 6d 61 you.may.add.to.a.covered.work.ma
ef600 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a 6f 66 20 terial.governed.by.the.terms.of.
ef620 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 65 64 20 that.license.document,.provided.
ef640 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 64 6f 65 that.the.further.restriction.doe
ef660 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e 67 20 6f s.not.survive.such.relicensing.o
ef680 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 49 66 20 79 6f 75 20 61 64 64 20 74 65 72 6d 73 20 74 r.conveying...If.you.add.terms.t
ef6a0 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 o.a.covered.work.in.accord.with.
ef6c0 74 68 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 65 2c 20 69 6e this.section,.you.must.place,.in
ef6e0 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20 61 20 73 74 .the.relevant.source.files,.a.st
ef700 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 20 atement.of.the.additional.terms.
ef720 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 6f 72 20 61 20 that.apply.to.those.files,.or.a.
ef740 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 notice.indicating.where.to.find.
ef760 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 41 64 64 69 74 69 6f 6e 61 the.applicable.terms...Additiona
ef780 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f 6e 2d 70 65 72 6d 69 l.terms,.permissive.or.non-permi
ef7a0 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 68 65 0a 66 6f 72 6d ssive,.may.be.stated.in.the.form
ef7c0 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 6c 69 63 65 6e 73 65 .of.a.separately.written.license
ef7e0 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 3b 20 74 68 65 0a 61 ,.or.stated.as.exceptions;.the.a
ef800 62 6f 76 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 69 74 68 65 72 20 77 bove.requirements.apply.either.w
ef820 61 79 2e 0a 0a 40 69 74 65 6d 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 59 6f 75 20 6d 61 79 ay...@item.Termination...You.may
ef840 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 61 20 63 6f 76 65 72 .not.propagate.or.modify.a.cover
ef860 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73 6c 79 0a 70 72 6f 76 ed.work.except.as.expressly.prov
ef880 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 41 6e 79 20 61 74 ided.under.this.License...Any.at
ef8a0 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 67 61 74 65 20 6f 72 0a tempt.otherwise.to.propagate.or.
ef8c0 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 69 6c 6c 20 61 75 74 6f modify.it.is.void,.and.will.auto
ef8e0 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20 72 69 67 68 74 73 20 matically.terminate.your.rights.
ef900 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 6e under.this.License.(including.an
ef920 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 y.patent.licenses.granted.under.
ef940 74 68 65 20 74 68 69 72 64 0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 the.third.paragraph.of.section.1
ef960 31 29 2e 0a 0a 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 65 61 73 65 20 61 6c 6c 20 76 1)...However,.if.you.cease.all.v
ef980 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 6e 20 79 iolation.of.this.License,.then.y
ef9a0 6f 75 72 20 6c 69 63 65 6e 73 65 0a 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f our.license.from.a.particular.co
ef9c0 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73 74 61 74 65 64 20 28 61 29 pyright.holder.is.reinstated.(a)
ef9e0 20 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 0a 75 6e 6c 65 73 73 20 61 6e 64 20 75 6e 74 69 6c .provisionally,.unless.and.until
efa00 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65 78 70 6c 69 63 69 74 6c 79 .the.copyright.holder.explicitly
efa20 20 61 6e 64 20 66 69 6e 61 6c 6c 79 0a 74 65 72 6d 69 6e 61 74 65 73 20 79 6f 75 72 20 6c 69 63 .and.finally.terminates.your.lic
efa40 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e 74 6c 79 2c 20 69 66 20 74 68 ense,.and.(b).permanently,.if.th
efa60 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 0a 66 61 69 6c 73 20 74 6f 20 6e 6f 74 69 e.copyright.holder.fails.to.noti
efa80 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 fy.you.of.the.violation.by.some.
efaa0 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 20 70 72 69 6f 72 20 74 6f 0a 36 30 20 64 61 79 reasonable.means.prior.to.60.day
efac0 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e 0a 0a 4d 6f 72 65 6f 76 65 72 s.after.the.cessation...Moreover
efae0 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 ,.your.license.from.a.particular
efb00 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 0a 72 65 69 6e 73 74 61 74 65 64 20 .copyright.holder.is.reinstated.
efb20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c permanently.if.the.copyright.hol
efb40 64 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 74 68 65 0a 76 69 6f 6c 61 74 69 6f der.notifies.you.of.the.violatio
efb60 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 2c 20 74 68 69 73 n.by.some.reasonable.means,.this
efb80 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 68 61 76 65 0a 72 65 63 65 .is.the.first.time.you.have.rece
efba0 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 ived.notice.of.violation.of.this
efbc0 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72 6b 29 20 66 72 6f 6d 20 74 68 61 .License.(for.any.work).from.tha
efbe0 74 0a 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 61 6e 64 20 79 6f 75 20 63 75 72 65 t.copyright.holder,.and.you.cure
efc00 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 20 74 6f 20 33 30 20 64 61 79 73 20 .the.violation.prior.to.30.days.
efc20 61 66 74 65 72 0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f 66 20 74 68 65 20 6e 6f 74 69 63 65 after.your.receipt.of.the.notice
efc40 2e 0a 0a 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e ...Termination.of.your.rights.un
efc60 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e der.this.section.does.not.termin
efc80 61 74 65 20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 ate.the.licenses.of.parties.who.
efca0 68 61 76 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 have.received.copies.or.rights.f
efcc0 72 6f 6d 20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 rom.you.under.this.License...If.
efce0 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 65 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 your.rights.have.been.terminated
efd00 20 61 6e 64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 6c 79 0a 72 65 69 6e 73 74 61 74 65 64 2c .and.not.permanently.reinstated,
efd20 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 79 20 74 6f 20 72 65 63 65 69 76 65 20 6e .you.do.not.qualify.to.receive.n
efd40 65 77 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 65 20 73 61 6d 65 0a 6d 61 74 65 72 69 61 ew.licenses.for.the.same.materia
efd60 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 2e 0a 0a 40 69 74 65 6d 20 41 63 63 65 70 l.under.section.10...@item.Accep
efd80 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 66 6f 72 20 48 61 76 69 6e 67 20 43 6f tance.Not.Required.for.Having.Co
efda0 70 69 65 73 2e 0a 0a 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 74 6f 20 61 pies...You.are.not.required.to.a
efdc0 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 ccept.this.License.in.order.to.r
efde0 65 63 65 69 76 65 20 6f 72 20 72 75 6e 0a 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 eceive.or.run.a.copy.of.the.Prog
efe00 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 ram...Ancillary.propagation.of.a
efe20 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 75 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 .covered.work.occurring.solely.a
efe40 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f s.a.consequence.of.using.peer-to
efe60 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 -peer.transmission.to.receive.a.
efe80 63 6f 70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 copy.likewise.does.not.require.a
efea0 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 65 72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 cceptance...However,.nothing.oth
efec0 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 er.than.this.License.grants.you.
efee0 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f 70 61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 permission.to.propagate.or.modif
eff00 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f y.any.covered.work...These.actio
eff20 6e 73 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 69 67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a ns.infringe.copyright.if.you.do.
eff40 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 not.accept.this.License...Theref
eff60 6f 72 65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 ore,.by.modifying.or.propagating
eff80 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f .a.covered.work,.you.indicate.yo
effa0 75 72 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f ur.acceptance.of.this.License.to
effc0 20 64 6f 20 73 6f 2e 0a 0a 40 69 74 65 6d 20 41 75 74 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 .do.so...@item.Automatic.Licensi
effe0 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 52 65 63 69 70 69 65 6e 74 73 2e 0a 0a 45 61 ng.of.Downstream.Recipients...Ea
f0000 63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 ch.time.you.convey.a.covered.wor
f0020 6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 k,.the.recipient.automatically.r
f0040 65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 eceives.a.license.from.the.origi
f0060 6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 74 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e nal.licensors,.to.run,.modify.an
f0080 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 74 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 d.propagate.that.work,.subject.t
f00a0 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73 o.this.License...You.are.not.res
f00c0 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e 66 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63 ponsible.for.enforcing.complianc
f00e0 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 69 65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63 e.by.third.parties.with.this.Lic
f0100 65 6e 73 65 2e 0a 0a 41 6e 20 60 60 65 6e 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 27 27 ense...An.``entity.transaction''
f0120 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 .is.a.transaction.transferring.c
f0140 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 ontrol.of.an.organization,.or.su
f0160 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c 20 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f bstantially.all.assets.of.one,.o
f0180 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 6e 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f r.subdividing.an.organization,.o
f01a0 72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f r.merging.organizations...If.pro
f01c0 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c pagation.of.a.covered.work.resul
f01e0 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 ts.from.an.entity.transaction,.e
f0200 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 61 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 ach.party.to.that.transaction.wh
f0220 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c o.receives.a.copy.of.the.work.al
f0240 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 74 65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f so.receives.whatever.licenses.to
f0260 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 61 72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f .the.work.the.party's.predecesso
f0280 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 61 64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20 r.in.interest.had.or.could.give.
f02a0 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c under.the.previous.paragraph,.pl
f02c0 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a us.a.right.to.possession.of.the.
f02e0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b Corresponding.Source.of.the.work
f0300 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 .from.the.predecessor.in.interes
f0320 74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 63 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 t,.if.the.predecessor.has.it.or.
f0340 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 20 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 can.get.it.with.reasonable.effor
f0360 74 73 2e 0a 0a 59 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 ts...You.may.not.impose.any.furt
f0380 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 her.restrictions.on.the.exercise
f03a0 20 6f 66 20 74 68 65 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d .of.the.rights.granted.or.affirm
f03c0 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d ed.under.this.License...For.exam
f03e0 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a 6e 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 ple,.you.may.not.impose.a.licens
f0400 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 79 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 e.fee,.royalty,.or.other.charge.
f0420 66 6f 72 20 65 78 65 72 63 69 73 65 20 6f 66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 for.exercise.of.rights.granted.u
f0440 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e nder.this.License,.and.you.may.n
f0460 6f 74 20 69 6e 69 74 69 61 74 65 20 6c 69 74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64 69 6e ot.initiate.litigation.(includin
f0480 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 69 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 g.a.cross-claim.or.counterclaim.
f04a0 69 6e 20 61 20 6c 61 77 73 75 69 74 29 20 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e 79 20 in.a.lawsuit).alleging.that.any.
f04c0 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 69 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b patent.claim.is.infringed.by.mak
f04e0 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 65 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f ing,.using,.selling,.offering.fo
f0500 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d 70 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d r.sale,.or.importing.the.Program
f0520 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 6f 6e 20 6f 66 20 69 74 2e 0a 0a 40 69 74 65 6d 20 50 61 .or.any.portion.of.it...@item.Pa
f0540 74 65 6e 74 73 2e 0a 0a 41 20 60 60 63 6f 6e 74 72 69 62 75 74 6f 72 27 27 20 69 73 20 61 20 63 tents...A.``contributor''.is.a.c
f0560 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 opyright.holder.who.authorizes.u
f0580 73 65 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f se.under.this.License.of.the.Pro
f05a0 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 gram.or.a.work.on.which.the.Prog
f05c0 72 61 6d 20 69 73 20 62 61 73 65 64 2e 20 20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 ram.is.based...The.work.thus.lic
f05e0 65 6e 73 65 64 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 ensed.is.called.the.contributor'
f0600 73 20 60 60 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 27 27 2e 0a 0a 41 20 63 6f s.``contributor.version''...A.co
f0620 6e 74 72 69 62 75 74 6f 72 27 73 20 60 60 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 ntributor's.``essential.patent.c
f0640 6c 61 69 6d 73 27 27 20 61 72 65 20 61 6c 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 20 6f 77 laims''.are.all.patent.claims.ow
f0660 6e 65 64 0a 6f 72 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 ned.or.controlled.by.the.contrib
f0680 75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 6c 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f utor,.whether.already.acquired.o
f06a0 72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 75 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 r.hereafter.acquired,.that.would
f06c0 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65 .be.infringed.by.some.manner,.pe
f06e0 72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 rmitted.by.this.License,.of.maki
f0700 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 65 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69 ng,.using,.or.selling.its.contri
f0720 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a 62 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 butor.version,.but.do.not.includ
f0740 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 e.claims.that.would.be.infringed
f0760 20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65 .only.as.a.consequence.of.furthe
f0780 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f r.modification.of.the.contributo
f07a0 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 0a 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 r.version...For.purposes.of.this
f07c0 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 60 60 63 6f 6e 74 72 6f 6c 27 27 20 69 6e 63 6c 75 64 65 .definition,.``control''.include
f07e0 73 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 61 6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c s.the.right.to.grant.patent.subl
f0800 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e 65 72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 icenses.in.a.manner.consistent.w
f0820 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 ith.the.requirements.of.this.Lic
f0840 65 6e 73 65 2e 0a 0a 45 61 63 68 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 ense...Each.contributor.grants.y
f0860 6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72 ou.a.non-exclusive,.worldwide,.r
f0880 6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72 oyalty-free.patent.license.under
f08a0 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74 .the.contributor's.essential.pat
f08c0 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a 6d 61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20 ent.claims,.to.make,.use,.sell,.
f08e0 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c 20 69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72 offer.for.sale,.import.and.other
f0900 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 wise.run,.modify.and.propagate.t
f0920 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 he.contents.of.its.contributor.v
f0940 65 72 73 69 6f 6e 2e 0a 0a 49 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 ersion...In.the.following.three.
f0960 70 61 72 61 67 72 61 70 68 73 2c 20 61 20 60 60 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 27 27 paragraphs,.a.``patent.license''
f0980 20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 0a 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d .is.any.express.agreement.or.com
f09a0 6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 72 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f mitment,.however.denominated,.no
f09c0 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 70 61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61 t.to.enforce.a.patent.(such.as.a
f09e0 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 n.express.permission.to.practice
f0a00 20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f 76 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65 .a.patent.or.covenant.not.to.sue
f0a20 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 72 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 60 .for.patent.infringement)...To.`
f0a40 60 67 72 61 6e 74 27 27 20 73 75 63 68 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 `grant''.such.a.patent.license.t
f0a60 6f 20 61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 6f 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 o.a.party.means.to.make.such.an.
f0a80 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 agreement.or.commitment.not.to.e
f0aa0 6e 66 6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 67 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 nforce.a.patent.against.the.part
f0ac0 79 2e 0a 0a 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b y...If.you.convey.a.covered.work
f0ae0 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20 ,.knowingly.relying.on.a.patent.
f0b00 6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 license,.and.the.Corresponding.S
f0b20 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 ource.of.the.work.is.not.availab
f0b40 6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 6f 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 le.for.anyone.to.copy,.free.of.c
f0b60 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 harge.and.under.the.terms.of.thi
f0b80 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f 75 67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76 s.License,.through.a.publicly.av
f0ba0 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20 ailable.network.server.or.other.
f0bc0 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 62 6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79 readily.accessible.means,.then.y
f0be0 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 28 31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72 ou.must.either.(1).cause.the.Cor
f0c00 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c responding.Source.to.be.so.avail
f0c20 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 72 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20 able,.or.(2).arrange.to.deprive.
f0c40 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 20 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70 yourself.of.the.benefit.of.the.p
f0c60 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 6f 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 atent.license.for.this.particula
f0c80 72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 61 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e r.work,.or.(3).arrange,.in.a.man
f0ca0 6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d ner.consistent.with.the.requirem
f0cc0 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 ents.of.this.License,.to.extend.
f0ce0 74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 6e 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d the.patent.license.to.downstream
f0d00 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 60 60 4b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e .recipients...``Knowingly.relyin
f0d20 67 27 27 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 65 0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 g''.means.you.have.actual.knowle
f0d40 64 67 65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 dge.that,.but.for.the.patent.lic
f0d60 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 ense,.your.conveying.the.covered
f0d80 20 77 6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 .work.in.a.country,.or.your.reci
f0da0 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a pient's.use.of.the.covered.work.
f0dc0 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 6c 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 in.a.country,.would.infringe.one
f0de0 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 61 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e .or.more.identifiable.patents.in
f0e00 20 74 68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 .that.country.that.you.have.reas
f0e20 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 20 76 61 6c 69 64 2e 0a 0a 49 66 2c 20 70 75 on.to.believe.are.valid...If,.pu
f0e40 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 rsuant.to.or.in.connection.with.
f0e60 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d a.single.transaction.or.arrangem
f0e80 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 2c 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 ent,.you.convey,.or.propagate.by
f0ea0 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 65 79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65 .procuring.conveyance.of,.a.cove
f0ec0 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 72 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 red.work,.and.grant.a.patent.lic
f0ee0 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65 ense.to.some.of.the.parties.rece
f0f00 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 iving.the.covered.work.authorizi
f0f20 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c 20 70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66 ng.them.to.use,.propagate,.modif
f0f40 79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 70 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 y.or.convey.a.specific.copy.of.t
f0f60 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74 he.covered.work,.then.the.patent
f0f80 20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 61 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 .license.you.grant.is.automatica
f0fa0 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f 20 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f lly.extended.to.all.recipients.o
f0fc0 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 f.the.covered.work.and.works.bas
f0fe0 65 64 20 6f 6e 20 69 74 2e 0a 0a 41 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 60 ed.on.it...A.patent.license.is.`
f1000 60 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 27 27 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 `discriminatory''.if.it.does.not
f1020 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e 20 74 68 65 0a 73 63 6f 70 65 20 6f 66 20 69 74 73 .include.within.the.scope.of.its
f1040 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 69 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 .coverage,.prohibits.the.exercis
f1060 65 20 6f 66 2c 20 6f 72 20 69 73 20 63 6f 6e 64 69 74 69 6f 6e 65 64 20 6f 6e 0a 74 68 65 20 6e e.of,.or.is.conditioned.on.the.n
f1080 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 on-exercise.of.one.or.more.of.th
f10a0 65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 72 65 20 73 70 65 63 69 66 69 63 61 6c 6c 79 0a 67 e.rights.that.are.specifically.g
f10c0 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 ranted.under.this.License...You.
f10e0 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 66 may.not.convey.a.covered.work.if
f1100 20 79 6f 75 0a 61 72 65 20 61 20 70 61 72 74 79 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 .you.are.a.party.to.an.arrangeme
f1120 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 20 70 61 72 74 79 20 74 68 61 74 20 69 73 20 69 6e nt.with.a.third.party.that.is.in
f1140 20 74 68 65 0a 62 75 73 69 6e 65 73 73 20 6f 66 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f .the.business.of.distributing.so
f1160 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 68 69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 ftware,.under.which.you.make.pay
f1180 6d 65 6e 74 20 74 6f 20 74 68 65 0a 74 68 69 72 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e ment.to.the.third.party.based.on
f11a0 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 79 6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20 .the.extent.of.your.activity.of.
f11c0 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 0a 77 6f 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 conveying.the.work,.and.under.wh
f11e0 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 61 72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 ich.the.third.party.grants,.to.a
f1200 6e 79 20 6f 66 20 74 68 65 20 70 61 72 74 69 65 73 0a 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 ny.of.the.parties.who.would.rece
f1220 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61 ive.the.covered.work.from.you,.a
f1240 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 20 70 61 74 65 6e 74 0a 6c 69 63 65 6e 73 65 20 28 .discriminatory.patent.license.(
f1260 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20 a).in.connection.with.copies.of.
f1280 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 63 6f 6e 76 65 79 65 64 20 62 79 0a 79 6f 75 the.covered.work.conveyed.by.you
f12a0 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 65 20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69 .(or.copies.made.from.those.copi
f12c0 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 6d 61 72 69 6c 79 20 66 6f 72 20 61 6e 64 20 69 6e es),.or.(b).primarily.for.and.in
f12e0 0a 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63 .connection.with.specific.produc
f1300 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 ts.or.compilations.that.contain.
f1320 74 68 65 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74 the.covered.work,.unless.you.ent
f1340 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 6f 72 20 74 ered.into.that.arrangement,.or.t
f1360 68 61 74 20 70 61 74 65 6e 74 0a 6c 69 63 65 6e 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20 hat.patent.license.was.granted,.
f1380 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 63 68 20 32 30 30 37 2e 0a 0a 4e 6f 74 68 69 6e 67 prior.to.28.March.2007...Nothing
f13a0 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 .in.this.License.shall.be.constr
f13c0 75 65 64 20 61 73 20 65 78 63 6c 75 64 69 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61 6e 79 ued.as.excluding.or.limiting.any
f13e0 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 6e 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 .implied.license.or.other.defens
f1400 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74 68 65 es.to.infringement.that.may.othe
f1420 72 77 69 73 65 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 rwise.be.available.to.you.under.
f1440 61 70 70 6c 69 63 61 62 6c 65 20 70 61 74 65 6e 74 20 6c 61 77 2e 0a 0a 40 69 74 65 6d 20 4e 6f applicable.patent.law...@item.No
f1460 20 53 75 72 72 65 6e 64 65 72 20 6f 66 20 4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e 0a 0a .Surrender.of.Others'.Freedom...
f1480 49 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 If.conditions.are.imposed.on.you
f14a0 20 28 77 68 65 74 68 65 72 20 62 79 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d .(whether.by.court.order,.agreem
f14c0 65 6e 74 20 6f 72 0a 6f 74 68 65 72 77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 ent.or.otherwise).that.contradic
f14e0 74 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 t.the.conditions.of.this.License
f1500 2c 20 74 68 65 79 20 64 6f 20 6e 6f 74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 ,.they.do.not.excuse.you.from.th
f1520 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 e.conditions.of.this.License...I
f1540 66 20 79 6f 75 20 63 61 6e 6e 6f 74 20 63 6f 6e 76 65 79 0a 61 20 63 6f 76 65 72 65 64 20 77 6f f.you.cannot.convey.a.covered.wo
f1560 72 6b 20 73 6f 20 61 73 20 74 6f 20 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 rk.so.as.to.satisfy.simultaneous
f1580 6c 79 20 79 6f 75 72 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 0a 74 68 69 73 20 4c ly.your.obligations.under.this.L
f15a0 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f icense.and.any.other.pertinent.o
f15c0 62 6c 69 67 61 74 69 6f 6e 73 2c 20 74 68 65 6e 20 61 73 20 61 0a 63 6f 6e 73 65 71 75 65 6e 63 bligations,.then.as.a.consequenc
f15e0 65 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 e.you.may.not.convey.it.at.all..
f1600 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 0a 74 6f 20 74 65 .For.example,.if.you.agree.to.te
f1620 72 6d 73 20 74 68 61 74 20 6f 62 6c 69 67 61 74 65 20 79 6f 75 20 74 6f 20 63 6f 6c 6c 65 63 74 rms.that.obligate.you.to.collect
f1640 20 61 20 72 6f 79 61 6c 74 79 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 .a.royalty.for.further.conveying
f1660 0a 66 72 6f 6d 20 74 68 6f 73 65 20 74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 20 74 .from.those.to.whom.you.convey.t
f1680 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 he.Program,.the.only.way.you.cou
f16a0 6c 64 0a 73 61 74 69 73 66 79 20 62 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 ld.satisfy.both.those.terms.and.
f16c0 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e this.License.would.be.to.refrain
f16e0 20 65 6e 74 69 72 65 6c 79 0a 66 72 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f .entirely.from.conveying.the.Pro
f1700 67 72 61 6d 2e 0a 0a 40 69 74 65 6d 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 gram...@item.Use.with.the.GNU.Af
f1720 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 4e 6f fero.General.Public.License...No
f1740 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f twithstanding.any.other.provisio
f1760 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 70 65 72 6d n.of.this.License,.you.have.perm
f1780 69 73 73 69 6f 6e 20 74 6f 20 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f ission.to.link.or.combine.any.co
f17a0 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a vered.work.with.a.work.licensed.
f17c0 75 6e 64 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 under.version.3.of.the.GNU.Affer
f17e0 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 20 o.General.Public.License.into.a.
f1800 73 69 6e 67 6c 65 0a 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e single.combined.work,.and.to.con
f1820 76 65 79 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 vey.the.resulting.work...The.ter
f1840 6d 73 20 6f 66 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 ms.of.this.License.will.continue
f1860 20 74 6f 20 61 70 70 6c 79 20 74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 .to.apply.to.the.part.which.is.t
f1880 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c he.covered.work,.but.the.special
f18a0 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 .requirements.of.the.GNU.Affero.
f18c0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65 63 74 69 6f 6e 20 General.Public.License,.section.
f18e0 31 33 2c 20 63 6f 6e 63 65 72 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 13,.concerning.interaction.throu
f1900 67 68 20 61 20 6e 65 74 77 6f 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 0a 63 gh.a.network.will.apply.to.the.c
f1920 6f 6d 62 69 6e 61 74 69 6f 6e 20 61 73 20 73 75 63 68 2e 0a 0a 40 69 74 65 6d 20 52 65 76 69 73 ombination.as.such...@item.Revis
f1940 65 64 20 56 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 54 68 ed.Versions.of.this.License...Th
f1960 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 e.Free.Software.Foundation.may.p
f1980 75 62 6c 69 73 68 20 72 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 20 76 65 72 73 69 6f ublish.revised.and/or.new.versio
f19a0 6e 73 0a 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 ns.of.the.GNU.General.Public.Lic
f19c0 65 6e 73 65 20 66 72 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 ense.from.time.to.time...Such.ne
f19e0 77 0a 76 65 72 73 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 w.versions.will.be.similar.in.sp
f1a00 69 72 69 74 20 74 6f 20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 irit.to.the.present.version,.but
f1a20 20 6d 61 79 0a 64 69 66 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 20 61 64 64 72 65 73 73 .may.differ.in.detail.to.address
f1a40 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 45 61 63 68 .new.problems.or.concerns...Each
f1a60 20 76 65 72 73 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 .version.is.given.a.distinguishi
f1a80 6e 67 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 ng.version.number...If.the.Progr
f1aa0 61 6d 0a 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 am.specifies.that.a.certain.numb
f1ac0 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 ered.version.of.the.GNU.General.
f1ae0 50 75 62 6c 69 63 0a 4c 69 63 65 6e 73 65 20 60 60 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 Public.License.``or.any.later.ve
f1b00 72 73 69 6f 6e 27 27 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 rsion''.applies.to.it,.you.have.
f1b20 74 68 65 20 6f 70 74 69 6f 6e 20 6f 66 0a 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d the.option.of.following.the.term
f1b40 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 s.and.conditions.either.of.that.
f1b60 6e 75 6d 62 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 72 0a 6f 66 20 61 6e 79 20 6c 61 74 65 72 numbered.version.or.of.any.later
f1b80 20 76 65 72 73 69 6f 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 .version.published.by.the.Free.S
f1ba0 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 0a 74 68 65 20 50 72 6f 67 oftware.Foundation...If.the.Prog
f1bc0 72 61 6d 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e ram.does.not.specify.a.version.n
f1be0 75 6d 62 65 72 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 20 umber.of.the.GNU.General.Public.
f1c00 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 License,.you.may.choose.any.vers
f1c20 69 6f 6e 20 65 76 65 72 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 0a 53 ion.ever.published.by.the.Free.S
f1c40 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 49 66 20 74 68 65 20 50 72 6f 67 oftware.Foundation...If.the.Prog
f1c60 72 61 6d 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 ram.specifies.that.a.proxy.can.d
f1c80 65 63 69 64 65 20 77 68 69 63 68 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73 0a 6f 66 20 74 ecide.which.future.versions.of.t
f1ca0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 63 61 he.GNU.General.Public.License.ca
f1cc0 6e 20 62 65 20 75 73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27 73 20 70 75 62 6c 69 63 0a 73 n.be.used,.that.proxy's.public.s
f1ce0 74 61 74 65 6d 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 tatement.of.acceptance.of.a.vers
f1d00 69 6f 6e 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 20 74 ion.permanently.authorizes.you.t
f1d20 6f 0a 63 68 6f 6f 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 o.choose.that.version.for.the.Pr
f1d40 6f 67 72 61 6d 2e 0a 0a 4c 61 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d ogram...Later.license.versions.m
f1d60 61 79 20 67 69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 ay.give.you.additional.or.differ
f1d80 65 6e 74 0a 70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 ent.permissions...However,.no.ad
f1da0 64 69 74 69 6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 ditional.obligations.are.imposed
f1dc0 20 6f 6e 20 61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 .on.any.author.or.copyright.hold
f1de0 65 72 20 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 er.as.a.result.of.your.choosing.
f1e00 74 6f 20 66 6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 40 69 74 65 to.follow.a.later.version...@ite
f1e20 6d 20 44 69 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 54 48 45 52 45 m.Disclaimer.of.Warranty...THERE
f1e40 20 49 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c .IS.NO.WARRANTY.FOR.THE.PROGRAM,
f1e60 20 54 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c .TO.THE.EXTENT.PERMITTED.BY.APPL
f1e80 49 43 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 ICABLE.LAW...EXCEPT.WHEN.OTHERWI
f1ea0 53 45 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 SE.STATED.IN.WRITING.THE.COPYRIG
f1ec0 48 54 0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 HT.HOLDERS.AND/OR.OTHER.PARTIES.
f1ee0 50 52 4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41 4d 20 60 60 41 53 20 49 53 27 27 20 57 49 PROVIDE.THE.PROGRAM.``AS.IS''.WI
f1f00 54 48 4f 55 54 0a 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 THOUT.WARRANTY.OF.ANY.KIND,.EITH
f1f20 45 52 20 45 58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 ER.EXPRESSED.OR.IMPLIED,.INCLUDI
f1f40 4e 47 2c 20 42 55 54 20 4e 4f 54 0a 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 20 49 4d 50 4c NG,.BUT.NOT.LIMITED.TO,.THE.IMPL
f1f60 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 IED.WARRANTIES.OF.MERCHANTABILIT
f1f80 59 20 41 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 0a 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 Y.AND.FITNESS.FOR.A.PARTICULAR.P
f1fa0 55 52 50 4f 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20 52 49 53 4b 20 41 53 20 54 4f 20 54 URPOSE...THE.ENTIRE.RISK.AS.TO.T
f1fc0 48 45 20 51 55 41 4c 49 54 59 20 41 4e 44 0a 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 20 54 48 HE.QUALITY.AND.PERFORMANCE.OF.TH
f1fe0 45 20 50 52 4f 47 52 41 4d 20 49 53 20 57 49 54 48 20 59 4f 55 2e 20 20 53 48 4f 55 4c 44 20 54 E.PROGRAM.IS.WITH.YOU...SHOULD.T
f2000 48 45 20 50 52 4f 47 52 41 4d 20 50 52 4f 56 45 0a 44 45 46 45 43 54 49 56 45 2c 20 59 4f 55 20 HE.PROGRAM.PROVE.DEFECTIVE,.YOU.
f2020 41 53 53 55 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 20 41 4c 4c 20 4e 45 43 45 53 53 41 52 59 ASSUME.THE.COST.OF.ALL.NECESSARY
f2040 20 53 45 52 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f 52 0a 43 4f 52 52 45 43 54 49 4f 4e .SERVICING,.REPAIR.OR.CORRECTION
f2060 2e 0a 0a 40 69 74 65 6d 20 4c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 ...@item.Limitation.of.Liability
f2080 2e 0a 0a 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 ...IN.NO.EVENT.UNLESS.REQUIRED.B
f20a0 59 20 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e Y.APPLICABLE.LAW.OR.AGREED.TO.IN
f20c0 20 57 52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 .WRITING.WILL.ANY.COPYRIGHT.HOLD
f20e0 45 52 2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 ER,.OR.ANY.OTHER.PARTY.WHO.MODIF
f2100 49 45 53 20 41 4e 44 2f 4f 52 0a 43 4f 4e 56 45 59 53 20 54 48 45 20 50 52 4f 47 52 41 4d 20 41 IES.AND/OR.CONVEYS.THE.PROGRAM.A
f2120 53 20 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 S.PERMITTED.ABOVE,.BE.LIABLE.TO.
f2140 59 4f 55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 0a 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 20 47 YOU.FOR.DAMAGES,.INCLUDING.ANY.G
f2160 45 4e 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 ENERAL,.SPECIAL,.INCIDENTAL.OR.C
f2180 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 0a 41 52 49 53 49 4e 47 20 4f 55 54 ONSEQUENTIAL.DAMAGES.ARISING.OUT
f21a0 20 4f 46 20 54 48 45 20 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 .OF.THE.USE.OR.INABILITY.TO.USE.
f21c0 54 48 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 0a 4e 4f 54 20 4c THE.PROGRAM.(INCLUDING.BUT.NOT.L
f21e0 49 4d 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 20 44 41 54 41 20 4f 52 20 44 41 54 41 20 42 IMITED.TO.LOSS.OF.DATA.OR.DATA.B
f2200 45 49 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 0a 4c 4f 53 53 EING.RENDERED.INACCURATE.OR.LOSS
f2220 45 53 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 20 50 41 52 ES.SUSTAINED.BY.YOU.OR.THIRD.PAR
f2240 54 49 45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d TIES.OR.A.FAILURE.OF.THE.PROGRAM
f2260 0a 54 4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 .TO.OPERATE.WITH.ANY.OTHER.PROGR
f2280 41 4d 53 29 2c 20 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 AMS),.EVEN.IF.SUCH.HOLDER.OR.OTH
f22a0 45 52 0a 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 ER.PARTY.HAS.BEEN.ADVISED.OF.THE
f22c0 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 40 .POSSIBILITY.OF.SUCH.DAMAGES...@
f22e0 69 74 65 6d 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 item.Interpretation.of.Sections.
f2300 31 35 20 61 6e 64 20 31 36 2e 0a 0a 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f 66 15.and.16...If.the.disclaimer.of
f2320 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 62 .warranty.and.limitation.of.liab
f2340 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61 62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 67 ility.provided.above.cannot.be.g
f2360 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 6e iven.local.legal.effect.accordin
f2380 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 72 g.to.their.terms,.reviewing.cour
f23a0 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d 6f ts.shall.apply.local.law.that.mo
f23c0 73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f 78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f 6c st.closely.approximates.an.absol
f23e0 75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 74 ute.waiver.of.all.civil.liabilit
f2400 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 6d y.in.connection.with.the.Program
f2420 2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 6f ,.unless.a.warranty.or.assumptio
f2440 6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f 70 n.of.liability.accompanies.a.cop
f2460 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 61 y.of.the.Program.in.return.for.a
f2480 20 66 65 65 2e 0a 40 65 6e 64 20 65 6e 75 6d 65 72 61 74 65 0a 0a 40 69 66 74 65 78 0a 40 68 65 .fee..@end.enumerate..@iftex.@he
f24a0 61 64 69 6e 67 20 45 4e 44 20 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e ading.END.OF.TERMS.AND.CONDITION
f24c0 53 0a 40 65 6e 64 20 69 66 74 65 78 0a 40 69 66 69 6e 66 6f 0a 40 63 65 6e 74 65 72 20 45 4e 44 S.@end.iftex.@ifinfo.@center.END
f24e0 20 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 40 65 6e 64 20 69 66 .OF.TERMS.AND.CONDITIONS.@end.if
f2500 69 6e 66 6f 0a 40 75 6e 6e 75 6d 62 65 72 65 64 73 65 63 20 48 6f 77 20 74 6f 20 41 70 70 6c 79 info.@unnumberedsec.How.to.Apply
f2520 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 6f 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61 6d .These.Terms.to.Your.New.Program
f2540 73 0a 0a 49 66 20 79 6f 75 20 64 65 76 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c s..If.you.develop.a.new.program,
f2560 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 .and.you.want.it.to.be.of.the.gr
f2580 65 61 74 65 73 74 0a 70 6f 73 73 69 62 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 eatest.possible.use.to.the.publi
f25a0 63 2c 20 74 68 65 20 62 65 73 74 20 77 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 c,.the.best.way.to.achieve.this.
f25c0 69 73 20 74 6f 20 6d 61 6b 65 20 69 74 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 is.to.make.it.free.software.whic
f25e0 68 20 65 76 65 72 79 6f 6e 65 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 h.everyone.can.redistribute.and.
f2600 63 68 61 6e 67 65 20 75 6e 64 65 72 20 74 68 65 73 65 0a 74 65 72 6d 73 2e 0a 0a 54 6f 20 64 6f change.under.these.terms...To.do
f2620 20 73 6f 2c 20 61 74 74 61 63 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 .so,.attach.the.following.notice
f2640 73 20 74 6f 20 74 68 65 20 70 72 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a s.to.the.program...It.is.safest.
f2660 74 6f 20 61 74 74 61 63 68 20 74 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 to.attach.them.to.the.start.of.e
f2680 61 63 68 20 73 6f 75 72 63 65 20 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 ach.source.file.to.most.effectiv
f26a0 65 6c 79 0a 73 74 61 74 65 20 74 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 ely.state.the.exclusion.of.warra
f26c0 6e 74 79 3b 20 61 6e 64 20 65 61 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 nty;.and.each.file.should.have.a
f26e0 74 20 6c 65 61 73 74 0a 74 68 65 20 60 60 63 6f 70 79 72 69 67 68 74 27 27 20 6c 69 6e 65 20 61 t.least.the.``copyright''.line.a
f2700 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e nd.a.pointer.to.where.the.full.n
f2720 6f 74 69 63 65 20 69 73 20 66 6f 75 6e 64 2e 0a 40 73 6d 61 6c 6c 65 78 61 6d 70 6c 65 0a 40 76 otice.is.found..@smallexample.@v
f2740 61 72 7b 6f 6e 65 20 6c 69 6e 65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 72 6f 67 72 61 6d 27 ar{one.line.to.give.the.program'
f2760 73 20 6e 61 6d 65 20 61 6e 64 20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f 66 20 77 68 61 74 20 s.name.and.a.brief.idea.of.what.
f2780 69 74 20 64 6f 65 73 2e 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 40 76 61 72 7b 79 65 61 it.does.}.Copyright.(C).@var{yea
f27a0 72 7d 20 40 76 61 72 7b 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 7d 0a 0a 54 68 69 73 20 70 72 r}.@var{name.of.author}..This.pr
f27c0 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 ogram.is.free.software:.you.can.
f27e0 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 69 74 redistribute.it.and/or.modify.it
f2800 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .under.the.terms.of.the.GNU.Gene
f2820 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 ral.Public.License.as.published.
f2840 62 79 0a 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c by.the.Free.Software.Foundation,
f2860 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 .either.version.3.of.the.License
f2880 2c 20 6f 72 20 28 61 74 0a 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 ,.or.(at.your.option).any.later.
f28a0 76 65 72 73 69 6f 6e 2e 0a 0a 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 version...This.program.is.distri
f28c0 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 buted.in.the.hope.that.it.will.b
f28e0 65 20 75 73 65 66 75 6c 2c 20 62 75 74 0a 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e e.useful,.but.WITHOUT.ANY.WARRAN
f2900 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 TY;.without.even.the.implied.war
f2920 72 61 6e 74 79 20 6f 66 0a 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e ranty.of.MERCHANTABILITY.or.FITN
f2940 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 ESS.FOR.A.PARTICULAR.PURPOSE...S
f2960 65 65 20 74 68 65 20 47 4e 55 0a 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 ee.the.GNU.General.Public.Licens
f2980 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 59 6f 75 20 73 68 6f 75 6c 64 20 e.for.more.details...You.should.
f29a0 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 have.received.a.copy.of.the.GNU.
f29c0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 61 6c 6f 6e 67 20 77 69 74 General.Public.License.along.wit
f29e0 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 40 75 72 h.this.program...If.not,.see.@ur
f2a00 6c 7b 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 7d 2e l{http://www.gnu.org/licenses/}.
f2a20 0a 40 65 6e 64 20 73 6d 61 6c 6c 65 78 61 6d 70 6c 65 0a 0a 41 6c 73 6f 20 61 64 64 20 69 6e 66 .@end.smallexample..Also.add.inf
f2a40 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 ormation.on.how.to.contact.you.b
f2a60 79 20 65 6c 65 63 74 72 6f 6e 69 63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c 2e 0a 0a 49 66 y.electronic.and.paper.mail...If
f2a80 20 74 68 65 20 70 72 6f 67 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 .the.program.does.terminal.inter
f2aa0 61 63 74 69 6f 6e 2c 20 6d 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e action,.make.it.output.a.short.n
f2ac0 6f 74 69 63 65 20 6c 69 6b 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 otice.like.this.when.it.starts.i
f2ae0 6e 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 40 73 6d 61 6c 6c 65 78 n.an.interactive.mode:..@smallex
f2b00 61 6d 70 6c 65 0a 40 76 61 72 7b 70 72 6f 67 72 61 6d 7d 20 43 6f 70 79 72 69 67 68 74 20 28 43 ample.@var{program}.Copyright.(C
f2b20 29 20 40 76 61 72 7b 79 65 61 72 7d 20 40 76 61 72 7b 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 ).@var{year}.@var{name.of.author
f2b40 7d 0a 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 68 20 41 42 53 4f 4c 55 }.This.program.comes.with.ABSOLU
f2b60 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 74 61 69 6c 73 20 74 79 TELY.NO.WARRANTY;.for.details.ty
f2b80 70 65 20 40 73 61 6d 70 7b 73 68 6f 77 20 77 7d 2e 0a 54 68 69 73 20 69 73 20 66 72 65 65 20 73 pe.@samp{show.w}..This.is.free.s
f2ba0 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c 63 6f 6d 65 20 74 6f 20 oftware,.and.you.are.welcome.to.
f2bc0 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e 20 63 6f redistribute.it.under.certain.co
f2be0 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 40 73 61 6d 70 7b 73 68 6f 77 20 63 7d 20 66 6f 72 nditions;.type.@samp{show.c}.for
f2c00 20 64 65 74 61 69 6c 73 2e 0a 40 65 6e 64 20 73 6d 61 6c 6c 65 78 61 6d 70 6c 65 0a 0a 54 68 65 .details..@end.smallexample..The
f2c20 20 68 79 70 6f 74 68 65 74 69 63 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 40 73 61 6d 70 7b 73 68 6f .hypothetical.commands.@samp{sho
f2c40 77 20 77 7d 20 61 6e 64 20 40 73 61 6d 70 7b 73 68 6f 77 20 63 7d 20 73 68 6f 75 6c 64 20 73 68 w.w}.and.@samp{show.c}.should.sh
f2c60 6f 77 0a 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 ow.the.appropriate.parts.of.the.
f2c80 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 20 20 4f 66 20 63 6f 75 72 General.Public.License...Of.cour
f2ca0 73 65 2c 20 79 6f 75 72 0a 70 72 6f 67 72 61 6d 27 73 20 63 6f 6d 6d 61 6e 64 73 20 6d 69 67 68 se,.your.program's.commands.migh
f2cc0 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 20 47 55 49 20 69 6e 74 65 72 66 t.be.different;.for.a.GUI.interf
f2ce0 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 0a 75 73 65 20 61 6e 20 60 60 61 62 6f 75 74 20 62 6f ace,.you.would.use.an.``about.bo
f2d00 78 27 27 2e 0a 0a 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 67 65 74 20 79 6f 75 72 20 65 x''...You.should.also.get.your.e
f2d20 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 61 73 20 61 20 70 72 6f 67 72 61 mployer.(if.you.work.as.a.progra
f2d40 6d 6d 65 72 29 20 6f 72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 6e 79 2c 20 74 6f 20 73 69 67 6e mmer).or.school,.if.any,.to.sign
f2d60 20 61 20 60 60 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 6d 65 72 27 27 20 66 6f 72 20 .a.``copyright.disclaimer''.for.
f2d80 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 72 79 2e 0a 46 6f 72 20 6d the.program,.if.necessary..For.m
f2da0 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 2c 20 61 6e 64 20 68 6f 77 ore.information.on.this,.and.how
f2dc0 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 47 4e 55 20 47 50 4c .to.apply.and.follow.the.GNU.GPL
f2de0 2c 20 73 65 65 0a 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 ,.see.@url{http://www.gnu.org/li
f2e00 63 65 6e 73 65 73 2f 7d 2e 0a 0a 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 censes/}...The.GNU.General.Publi
f2e20 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 74 20 69 6e 63 6f 72 70 c.License.does.not.permit.incorp
f2e40 6f 72 61 74 69 6e 67 20 79 6f 75 72 0a 70 72 6f 67 72 61 6d 20 69 6e 74 6f 20 70 72 6f 70 72 69 orating.your.program.into.propri
f2e60 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 20 70 72 6f 67 72 61 6d etary.programs...If.your.program
f2e80 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 0a 6c 69 62 72 61 72 79 2c 20 79 6f 75 20 6d 61 .is.a.subroutine.library,.you.ma
f2ea0 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 74 6f 20 70 65 72 y.consider.it.more.useful.to.per
f2ec0 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 0a 61 70 70 6c 69 63 61 74 mit.linking.proprietary.applicat
f2ee0 69 6f 6e 73 20 77 69 74 68 20 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20 74 68 69 73 20 ions.with.the.library...If.this.
f2f00 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 75 73 65 0a 74 68 65 20 is.what.you.want.to.do,.use.the.
f2f20 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 GNU.Lesser.General.Public.Licens
f2f40 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 42 75 74 0a e.instead.of.this.License...But.
f2f60 66 69 72 73 74 2c 20 70 6c 65 61 73 65 20 72 65 61 64 20 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 77 first,.please.read.@url{http://w
f2f80 77 77 2e 67 6e 75 2e 6f 72 67 2f 70 68 69 6c 6f 73 6f 70 68 79 2f 77 68 79 2d 6e 6f 74 2d 6c 67 ww.gnu.org/philosophy/why-not-lg
f2fa0 70 6c 2e 68 74 6d 6c 7d 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 pl.html}........................
f2fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f2fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3000 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 66 64 6c 2e 74 65 78 69 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/doc/fdl.texi............
f3020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
f3080 30 30 35 31 30 30 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 31 30 00 20 30 00 00 00 0051006.00000000000.013110..0...
f30a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f30c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f30e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
f3120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
f3140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f31a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f31c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f31e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3200 40 6e 6f 64 65 20 54 68 65 20 47 4e 55 20 46 44 4c 2c 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 @node.The.GNU.FDL,.Concept.Index
f3220 2c 20 43 6f 70 79 69 6e 67 2c 20 54 6f 70 0a 40 63 68 61 70 74 65 72 20 47 4e 55 20 46 72 65 65 ,.Copying,.Top.@chapter.GNU.Free
f3240 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 0a 0a 40 63 69 6e 64 65 78 20 .Documentation.License..@cindex.
f3260 46 44 4c 2c 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 FDL,.GNU.Free.Documentation.Lice
f3280 6e 73 65 0a 40 63 65 6e 74 65 72 20 56 65 72 73 69 6f 6e 20 31 2e 32 2c 20 4e 6f 76 65 6d 62 65 nse.@center.Version.1.2,.Novembe
f32a0 72 20 32 30 30 32 0a 0a 40 64 69 73 70 6c 61 79 0a 43 6f 70 79 72 69 67 68 74 20 40 63 6f 70 79 r.2002..@display.Copyright.@copy
f32c0 72 69 67 68 74 7b 7d 20 32 30 30 30 2c 32 30 30 31 2c 32 30 30 32 20 46 72 65 65 20 53 6f 66 74 right{}.2000,2001,2002.Free.Soft
f32e0 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 35 31 20 46 72 61 6e 6b 6c 69 ware.Foundation,.Inc..51.Frankli
f3300 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 20 30 n.St,.Fifth.Floor,.Boston,.MA..0
f3320 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 0a 0a 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 2110-1301,.USA..Everyone.is.perm
f3340 69 74 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 itted.to.copy.and.distribute.ver
f3360 62 61 74 69 6d 20 63 6f 70 69 65 73 0a 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 batim.copies.of.this.license.doc
f3380 75 6d 65 6e 74 2c 20 62 75 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c ument,.but.changing.it.is.not.al
f33a0 6c 6f 77 65 64 2e 0a 40 65 6e 64 20 64 69 73 70 6c 61 79 0a 0a 40 65 6e 75 6d 65 72 61 74 65 20 lowed..@end.display..@enumerate.
f33c0 30 0a 40 69 74 65 6d 0a 50 52 45 41 4d 42 4c 45 0a 0a 54 68 65 20 70 75 72 70 6f 73 65 20 6f 66 0.@item.PREAMBLE..The.purpose.of
f33e0 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 73 20 74 6f 20 6d 61 6b 65 20 61 20 6d 61 6e 75 61 .this.License.is.to.make.a.manua
f3400 6c 2c 20 74 65 78 74 62 6f 6f 6b 2c 20 6f 72 20 6f 74 68 65 72 0a 66 75 6e 63 74 69 6f 6e 61 6c l,.textbook,.or.other.functional
f3420 20 61 6e 64 20 75 73 65 66 75 6c 20 64 6f 63 75 6d 65 6e 74 20 40 64 66 6e 7b 66 72 65 65 7d 20 .and.useful.document.@dfn{free}.
f3440 69 6e 20 74 68 65 20 73 65 6e 73 65 20 6f 66 20 66 72 65 65 64 6f 6d 3a 20 74 6f 0a 61 73 73 75 in.the.sense.of.freedom:.to.assu
f3460 72 65 20 65 76 65 72 79 6f 6e 65 20 74 68 65 20 65 66 66 65 63 74 69 76 65 20 66 72 65 65 64 6f re.everyone.the.effective.freedo
f3480 6d 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 2c 0a 77 m.to.copy.and.redistribute.it,.w
f34a0 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 79 69 6e 67 20 69 74 2c 20 65 69 74 ith.or.without.modifying.it,.eit
f34c0 68 65 72 20 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 20 6f 72 20 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 her.commercially.or.noncommercia
f34e0 6c 6c 79 2e 0a 53 65 63 6f 6e 64 61 72 69 6c 79 2c 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 70 lly..Secondarily,.this.License.p
f3500 72 65 73 65 72 76 65 73 20 66 6f 72 20 74 68 65 20 61 75 74 68 6f 72 20 61 6e 64 20 70 75 62 6c reserves.for.the.author.and.publ
f3520 69 73 68 65 72 20 61 20 77 61 79 0a 74 6f 20 67 65 74 20 63 72 65 64 69 74 20 66 6f 72 20 74 68 isher.a.way.to.get.credit.for.th
f3540 65 69 72 20 77 6f 72 6b 2c 20 77 68 69 6c 65 20 6e 6f 74 20 62 65 69 6e 67 20 63 6f 6e 73 69 64 eir.work,.while.not.being.consid
f3560 65 72 65 64 20 72 65 73 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 6d 6f 64 69 66 69 63 61 74 69 6f ered.responsible.for.modificatio
f3580 6e 73 20 6d 61 64 65 20 62 79 20 6f 74 68 65 72 73 2e 0a 0a 54 68 69 73 20 4c 69 63 65 6e 73 65 ns.made.by.others...This.License
f35a0 20 69 73 20 61 20 6b 69 6e 64 20 6f 66 20 60 60 63 6f 70 79 6c 65 66 74 27 27 2c 20 77 68 69 63 .is.a.kind.of.``copyleft'',.whic
f35c0 68 20 6d 65 61 6e 73 20 74 68 61 74 20 64 65 72 69 76 61 74 69 76 65 0a 77 6f 72 6b 73 20 6f 66 h.means.that.derivative.works.of
f35e0 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 6d 75 73 74 20 74 68 65 6d 73 65 6c 76 65 73 20 62 65 .the.document.must.themselves.be
f3600 20 66 72 65 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 73 65 6e 73 65 2e 20 20 49 74 0a 63 6f 6d .free.in.the.same.sense...It.com
f3620 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 plements.the.GNU.General.Public.
f3640 4c 69 63 65 6e 73 65 2c 20 77 68 69 63 68 20 69 73 20 61 20 63 6f 70 79 6c 65 66 74 0a 6c 69 63 License,.which.is.a.copyleft.lic
f3660 65 6e 73 65 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e ense.designed.for.free.software.
f3680 0a 0a 57 65 20 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 ..We.have.designed.this.License.
f36a0 69 6e 20 6f 72 64 65 72 20 74 6f 20 75 73 65 20 69 74 20 66 6f 72 20 6d 61 6e 75 61 6c 73 20 66 in.order.to.use.it.for.manuals.f
f36c0 6f 72 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 2c 20 62 65 63 61 75 73 65 20 66 72 65 65 20 73 or.free.software,.because.free.s
f36e0 6f 66 74 77 61 72 65 20 6e 65 65 64 73 20 66 72 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e oftware.needs.free.documentation
f3700 3a 20 61 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 20 73 68 6f 75 6c 64 20 63 6f 6d 65 20 77 69 74 :.a.free.program.should.come.wit
f3720 68 20 6d 61 6e 75 61 6c 73 20 70 72 6f 76 69 64 69 6e 67 20 74 68 65 20 73 61 6d 65 20 66 72 65 h.manuals.providing.the.same.fre
f3740 65 64 6f 6d 73 20 74 68 61 74 20 74 68 65 0a 73 6f 66 74 77 61 72 65 20 64 6f 65 73 2e 20 20 42 edoms.that.the.software.does...B
f3760 75 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 73 20 6e 6f 74 20 6c 69 6d 69 74 65 64 20 74 ut.this.License.is.not.limited.t
f3780 6f 20 73 6f 66 74 77 61 72 65 20 6d 61 6e 75 61 6c 73 3b 0a 69 74 20 63 61 6e 20 62 65 20 75 73 o.software.manuals;.it.can.be.us
f37a0 65 64 20 66 6f 72 20 61 6e 79 20 74 65 78 74 75 61 6c 20 77 6f 72 6b 2c 20 72 65 67 61 72 64 6c ed.for.any.textual.work,.regardl
f37c0 65 73 73 20 6f 66 20 73 75 62 6a 65 63 74 20 6d 61 74 74 65 72 20 6f 72 0a 77 68 65 74 68 65 72 ess.of.subject.matter.or.whether
f37e0 20 69 74 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 61 73 20 61 20 70 72 69 6e 74 65 64 20 62 6f .it.is.published.as.a.printed.bo
f3800 6f 6b 2e 20 20 57 65 20 72 65 63 6f 6d 6d 65 6e 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 70 ok...We.recommend.this.License.p
f3820 72 69 6e 63 69 70 61 6c 6c 79 20 66 6f 72 20 77 6f 72 6b 73 20 77 68 6f 73 65 20 70 75 72 70 6f rincipally.for.works.whose.purpo
f3840 73 65 20 69 73 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 6f 72 20 72 65 66 65 72 65 6e 63 65 2e 0a se.is.instruction.or.reference..
f3860 0a 40 69 74 65 6d 0a 41 50 50 4c 49 43 41 42 49 4c 49 54 59 20 41 4e 44 20 44 45 46 49 4e 49 54 .@item.APPLICABILITY.AND.DEFINIT
f3880 49 4f 4e 53 0a 0a 54 68 69 73 20 4c 69 63 65 6e 73 65 20 61 70 70 6c 69 65 73 20 74 6f 20 61 6e IONS..This.License.applies.to.an
f38a0 79 20 6d 61 6e 75 61 6c 20 6f 72 20 6f 74 68 65 72 20 77 6f 72 6b 2c 20 69 6e 20 61 6e 79 20 6d y.manual.or.other.work,.in.any.m
f38c0 65 64 69 75 6d 2c 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 70 6c edium,.that.contains.a.notice.pl
f38e0 61 63 65 64 20 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 73 61 79 aced.by.the.copyright.holder.say
f3900 69 6e 67 20 69 74 20 63 61 6e 20 62 65 0a 64 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72 20 ing.it.can.be.distributed.under.
f3920 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 53 75 63 68 the.terms.of.this.License...Such
f3940 20 61 20 6e 6f 74 69 63 65 20 67 72 61 6e 74 73 20 61 0a 77 6f 72 6c 64 2d 77 69 64 65 2c 20 72 .a.notice.grants.a.world-wide,.r
f3960 6f 79 61 6c 74 79 2d 66 72 65 65 20 6c 69 63 65 6e 73 65 2c 20 75 6e 6c 69 6d 69 74 65 64 20 69 oyalty-free.license,.unlimited.i
f3980 6e 20 64 75 72 61 74 69 6f 6e 2c 20 74 6f 20 75 73 65 20 74 68 61 74 0a 77 6f 72 6b 20 75 6e 64 n.duration,.to.use.that.work.und
f39a0 65 72 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 74 61 74 65 64 20 68 65 72 65 69 6e 2e er.the.conditions.stated.herein.
f39c0 20 20 54 68 65 20 60 60 44 6f 63 75 6d 65 6e 74 27 27 2c 20 62 65 6c 6f 77 2c 0a 72 65 66 65 72 ..The.``Document'',.below,.refer
f39e0 73 20 74 6f 20 61 6e 79 20 73 75 63 68 20 6d 61 6e 75 61 6c 20 6f 72 20 77 6f 72 6b 2e 20 20 41 s.to.any.such.manual.or.work...A
f3a00 6e 79 20 6d 65 6d 62 65 72 20 6f 66 20 74 68 65 20 70 75 62 6c 69 63 20 69 73 20 61 0a 6c 69 63 ny.member.of.the.public.is.a.lic
f3a20 65 6e 73 65 65 2c 20 61 6e 64 20 69 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 60 60 79 6f 75 ensee,.and.is.addressed.as.``you
f3a40 27 27 2e 20 20 59 6f 75 20 61 63 63 65 70 74 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 66 20 79 ''...You.accept.the.license.if.y
f3a60 6f 75 0a 63 6f 70 79 2c 20 6d 6f 64 69 66 79 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 74 68 ou.copy,.modify.or.distribute.th
f3a80 65 20 77 6f 72 6b 20 69 6e 20 61 20 77 61 79 20 72 65 71 75 69 72 69 6e 67 20 70 65 72 6d 69 73 e.work.in.a.way.requiring.permis
f3aa0 73 69 6f 6e 0a 75 6e 64 65 72 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2e 0a 0a 41 20 60 60 4d sion.under.copyright.law...A.``M
f3ac0 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 27 27 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e odified.Version''.of.the.Documen
f3ae0 74 20 6d 65 61 6e 73 20 61 6e 79 20 77 6f 72 6b 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a t.means.any.work.containing.the.
f3b00 44 6f 63 75 6d 65 6e 74 20 6f 72 20 61 20 70 6f 72 74 69 6f 6e 20 6f 66 20 69 74 2c 20 65 69 74 Document.or.a.portion.of.it,.eit
f3b20 68 65 72 20 63 6f 70 69 65 64 20 76 65 72 62 61 74 69 6d 2c 20 6f 72 20 77 69 74 68 0a 6d 6f 64 her.copied.verbatim,.or.with.mod
f3b40 69 66 69 63 61 74 69 6f 6e 73 20 61 6e 64 2f 6f 72 20 74 72 61 6e 73 6c 61 74 65 64 20 69 6e 74 ifications.and/or.translated.int
f3b60 6f 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 41 20 60 60 53 65 63 6f 6e 64 61 o.another.language...A.``Seconda
f3b80 72 79 20 53 65 63 74 69 6f 6e 27 27 20 69 73 20 61 20 6e 61 6d 65 64 20 61 70 70 65 6e 64 69 78 ry.Section''.is.a.named.appendix
f3ba0 20 6f 72 20 61 20 66 72 6f 6e 74 2d 6d 61 74 74 65 72 20 73 65 63 74 69 6f 6e 0a 6f 66 20 74 68 .or.a.front-matter.section.of.th
f3bc0 65 20 44 6f 63 75 6d 65 6e 74 20 74 68 61 74 20 64 65 61 6c 73 20 65 78 63 6c 75 73 69 76 65 6c e.Document.that.deals.exclusivel
f3be0 79 20 77 69 74 68 20 74 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 6f 66 20 74 68 65 0a 70 y.with.the.relationship.of.the.p
f3c00 75 62 6c 69 73 68 65 72 73 20 6f 72 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 44 6f 63 75 ublishers.or.authors.of.the.Docu
f3c20 6d 65 6e 74 20 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 27 73 20 6f 76 65 72 61 6c 6c 0a 73 ment.to.the.Document's.overall.s
f3c40 75 62 6a 65 63 74 20 28 6f 72 20 74 6f 20 72 65 6c 61 74 65 64 20 6d 61 74 74 65 72 73 29 20 61 ubject.(or.to.related.matters).a
f3c60 6e 64 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 74 68 69 6e 67 20 74 68 61 74 20 63 6f 75 6c 64 20 66 nd.contains.nothing.that.could.f
f3c80 61 6c 6c 0a 64 69 72 65 63 74 6c 79 20 77 69 74 68 69 6e 20 74 68 61 74 20 6f 76 65 72 61 6c 6c all.directly.within.that.overall
f3ca0 20 73 75 62 6a 65 63 74 2e 20 20 28 54 68 75 73 2c 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e .subject...(Thus,.if.the.Documen
f3cc0 74 20 69 73 20 69 6e 0a 70 61 72 74 20 61 20 74 65 78 74 62 6f 6f 6b 20 6f 66 20 6d 61 74 68 65 t.is.in.part.a.textbook.of.mathe
f3ce0 6d 61 74 69 63 73 2c 20 61 20 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e 20 6d 61 79 20 matics,.a.Secondary.Section.may.
f3d00 6e 6f 74 20 65 78 70 6c 61 69 6e 0a 61 6e 79 20 6d 61 74 68 65 6d 61 74 69 63 73 2e 29 20 20 54 not.explain.any.mathematics.)..T
f3d20 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 63 6f 75 6c 64 20 62 65 20 61 20 6d 61 74 74 65 he.relationship.could.be.a.matte
f3d40 72 20 6f 66 20 68 69 73 74 6f 72 69 63 61 6c 0a 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 r.of.historical.connection.with.
f3d60 74 68 65 20 73 75 62 6a 65 63 74 20 6f 72 20 77 69 74 68 20 72 65 6c 61 74 65 64 20 6d 61 74 74 the.subject.or.with.related.matt
f3d80 65 72 73 2c 20 6f 72 20 6f 66 20 6c 65 67 61 6c 2c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 70 68 ers,.or.of.legal,.commercial,.ph
f3da0 69 6c 6f 73 6f 70 68 69 63 61 6c 2c 20 65 74 68 69 63 61 6c 20 6f 72 20 70 6f 6c 69 74 69 63 61 ilosophical,.ethical.or.politica
f3dc0 6c 20 70 6f 73 69 74 69 6f 6e 20 72 65 67 61 72 64 69 6e 67 0a 74 68 65 6d 2e 0a 0a 54 68 65 20 l.position.regarding.them...The.
f3de0 60 60 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 27 27 20 61 72 65 20 63 65 72 74 61 ``Invariant.Sections''.are.certa
f3e00 69 6e 20 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e 73 20 77 68 6f 73 65 20 74 69 74 6c in.Secondary.Sections.whose.titl
f3e20 65 73 0a 61 72 65 20 64 65 73 69 67 6e 61 74 65 64 2c 20 61 73 20 62 65 69 6e 67 20 74 68 6f 73 es.are.designated,.as.being.thos
f3e40 65 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 69 6e 20 74 68 65 20 e.of.Invariant.Sections,.in.the.
f3e60 6e 6f 74 69 63 65 0a 74 68 61 74 20 73 61 79 73 20 74 68 61 74 20 74 68 65 20 44 6f 63 75 6d 65 notice.that.says.that.the.Docume
f3e80 6e 74 20 69 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 nt.is.released.under.this.Licens
f3ea0 65 2e 20 20 49 66 20 61 0a 73 65 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 66 69 74 20 74 68 e...If.a.section.does.not.fit.th
f3ec0 65 20 61 62 6f 76 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 53 65 63 6f 6e 64 61 72 79 20 e.above.definition.of.Secondary.
f3ee0 74 68 65 6e 20 69 74 20 69 73 20 6e 6f 74 0a 61 6c 6c 6f 77 65 64 20 74 6f 20 62 65 20 64 65 73 then.it.is.not.allowed.to.be.des
f3f00 69 67 6e 61 74 65 64 20 61 73 20 49 6e 76 61 72 69 61 6e 74 2e 20 20 54 68 65 20 44 6f 63 75 6d ignated.as.Invariant...The.Docum
f3f20 65 6e 74 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 7a 65 72 6f 0a 49 6e 76 61 72 69 61 6e 74 20 53 ent.may.contain.zero.Invariant.S
f3f40 65 63 74 69 6f 6e 73 2e 20 20 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 64 6f 65 73 20 6e ections...If.the.Document.does.n
f3f60 6f 74 20 69 64 65 6e 74 69 66 79 20 61 6e 79 20 49 6e 76 61 72 69 61 6e 74 0a 53 65 63 74 69 6f ot.identify.any.Invariant.Sectio
f3f80 6e 73 20 74 68 65 6e 20 74 68 65 72 65 20 61 72 65 20 6e 6f 6e 65 2e 0a 0a 54 68 65 20 60 60 43 ns.then.there.are.none...The.``C
f3fa0 6f 76 65 72 20 54 65 78 74 73 27 27 20 61 72 65 20 63 65 72 74 61 69 6e 20 73 68 6f 72 74 20 70 over.Texts''.are.certain.short.p
f3fc0 61 73 73 61 67 65 73 20 6f 66 20 74 65 78 74 20 74 68 61 74 20 61 72 65 20 6c 69 73 74 65 64 2c assages.of.text.that.are.listed,
f3fe0 0a 61 73 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 72 20 42 61 63 6b 2d 43 6f .as.Front-Cover.Texts.or.Back-Co
f4000 76 65 72 20 54 65 78 74 73 2c 20 69 6e 20 74 68 65 20 6e 6f 74 69 63 65 20 74 68 61 74 20 73 61 ver.Texts,.in.the.notice.that.sa
f4020 79 73 20 74 68 61 74 0a 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 72 65 6c 65 61 73 65 64 ys.that.the.Document.is.released
f4040 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 41 20 46 72 6f 6e 74 2d 43 6f .under.this.License...A.Front-Co
f4060 76 65 72 20 54 65 78 74 20 6d 61 79 0a 62 65 20 61 74 20 6d 6f 73 74 20 35 20 77 6f 72 64 73 2c ver.Text.may.be.at.most.5.words,
f4080 20 61 6e 64 20 61 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 20 6d 61 79 20 62 65 20 61 74 .and.a.Back-Cover.Text.may.be.at
f40a0 20 6d 6f 73 74 20 32 35 20 77 6f 72 64 73 2e 0a 0a 41 20 60 60 54 72 61 6e 73 70 61 72 65 6e 74 .most.25.words...A.``Transparent
f40c0 27 27 20 63 6f 70 79 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 65 61 6e 73 20 61 20 ''.copy.of.the.Document.means.a.
f40e0 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 63 6f 70 79 2c 0a 72 65 70 72 65 73 65 6e 74 machine-readable.copy,.represent
f4100 65 64 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 77 68 6f 73 65 20 73 70 65 63 69 66 69 63 61 74 69 ed.in.a.format.whose.specificati
f4120 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 67 65 6e 65 72 61 6c 20 70 on.is.available.to.the.general.p
f4140 75 62 6c 69 63 2c 20 74 68 61 74 20 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 72 65 76 69 ublic,.that.is.suitable.for.revi
f4160 73 69 6e 67 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 0a 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 sing.the.document.straightforwar
f4180 64 6c 79 20 77 69 74 68 20 67 65 6e 65 72 69 63 20 74 65 78 74 20 65 64 69 74 6f 72 73 20 6f 72 dly.with.generic.text.editors.or
f41a0 20 28 66 6f 72 20 69 6d 61 67 65 73 20 63 6f 6d 70 6f 73 65 64 20 6f 66 0a 70 69 78 65 6c 73 29 .(for.images.composed.of.pixels)
f41c0 20 67 65 6e 65 72 69 63 20 70 61 69 6e 74 20 70 72 6f 67 72 61 6d 73 20 6f 72 20 28 66 6f 72 20 .generic.paint.programs.or.(for.
f41e0 64 72 61 77 69 6e 67 73 29 20 73 6f 6d 65 20 77 69 64 65 6c 79 20 61 76 61 69 6c 61 62 6c 65 0a drawings).some.widely.available.
f4200 64 72 61 77 69 6e 67 20 65 64 69 74 6f 72 2c 20 61 6e 64 20 74 68 61 74 20 69 73 20 73 75 69 74 drawing.editor,.and.that.is.suit
f4220 61 62 6c 65 20 66 6f 72 20 69 6e 70 75 74 20 74 6f 20 74 65 78 74 20 66 6f 72 6d 61 74 74 65 72 able.for.input.to.text.formatter
f4240 73 20 6f 72 0a 66 6f 72 20 61 75 74 6f 6d 61 74 69 63 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 s.or.for.automatic.translation.t
f4260 6f 20 61 20 76 61 72 69 65 74 79 20 6f 66 20 66 6f 72 6d 61 74 73 20 73 75 69 74 61 62 6c 65 20 o.a.variety.of.formats.suitable.
f4280 66 6f 72 20 69 6e 70 75 74 0a 74 6f 20 74 65 78 74 20 66 6f 72 6d 61 74 74 65 72 73 2e 20 20 41 for.input.to.text.formatters...A
f42a0 20 63 6f 70 79 20 6d 61 64 65 20 69 6e 20 61 6e 20 6f 74 68 65 72 77 69 73 65 20 54 72 61 6e 73 .copy.made.in.an.otherwise.Trans
f42c0 70 61 72 65 6e 74 20 66 69 6c 65 0a 66 6f 72 6d 61 74 20 77 68 6f 73 65 20 6d 61 72 6b 75 70 2c parent.file.format.whose.markup,
f42e0 20 6f 72 20 61 62 73 65 6e 63 65 20 6f 66 20 6d 61 72 6b 75 70 2c 20 68 61 73 20 62 65 65 6e 20 .or.absence.of.markup,.has.been.
f4300 61 72 72 61 6e 67 65 64 20 74 6f 20 74 68 77 61 72 74 0a 6f 72 20 64 69 73 63 6f 75 72 61 67 65 arranged.to.thwart.or.discourage
f4320 20 73 75 62 73 65 71 75 65 6e 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 62 79 20 72 65 61 64 .subsequent.modification.by.read
f4340 65 72 73 20 69 73 20 6e 6f 74 20 54 72 61 6e 73 70 61 72 65 6e 74 2e 0a 41 6e 20 69 6d 61 67 65 ers.is.not.Transparent..An.image
f4360 20 66 6f 72 6d 61 74 20 69 73 20 6e 6f 74 20 54 72 61 6e 73 70 61 72 65 6e 74 20 69 66 20 75 73 .format.is.not.Transparent.if.us
f4380 65 64 20 66 6f 72 20 61 6e 79 20 73 75 62 73 74 61 6e 74 69 61 6c 20 61 6d 6f 75 6e 74 0a 6f 66 ed.for.any.substantial.amount.of
f43a0 20 74 65 78 74 2e 20 20 41 20 63 6f 70 79 20 74 68 61 74 20 69 73 20 6e 6f 74 20 60 60 54 72 61 .text...A.copy.that.is.not.``Tra
f43c0 6e 73 70 61 72 65 6e 74 27 27 20 69 73 20 63 61 6c 6c 65 64 20 60 60 4f 70 61 71 75 65 27 27 2e nsparent''.is.called.``Opaque''.
f43e0 0a 0a 45 78 61 6d 70 6c 65 73 20 6f 66 20 73 75 69 74 61 62 6c 65 20 66 6f 72 6d 61 74 73 20 66 ..Examples.of.suitable.formats.f
f4400 6f 72 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 69 65 73 20 69 6e 63 6c 75 64 65 20 70 6c or.Transparent.copies.include.pl
f4420 61 69 6e 0a 40 73 63 7b 61 73 63 69 69 7d 20 77 69 74 68 6f 75 74 20 6d 61 72 6b 75 70 2c 20 54 ain.@sc{ascii}.without.markup,.T
f4440 65 78 69 6e 66 6f 20 69 6e 70 75 74 20 66 6f 72 6d 61 74 2c 20 4c 61 40 54 65 58 7b 7d 20 69 6e exinfo.input.format,.La@TeX{}.in
f4460 70 75 74 0a 66 6f 72 6d 61 74 2c 20 40 61 63 72 6f 6e 79 6d 7b 53 47 4d 4c 7d 20 6f 72 20 40 61 put.format,.@acronym{SGML}.or.@a
f4480 63 72 6f 6e 79 6d 7b 58 4d 4c 7d 20 75 73 69 6e 67 20 61 20 70 75 62 6c 69 63 6c 79 20 61 76 61 cronym{XML}.using.a.publicly.ava
f44a0 69 6c 61 62 6c 65 0a 40 61 63 72 6f 6e 79 6d 7b 44 54 44 7d 2c 20 61 6e 64 20 73 74 61 6e 64 61 ilable.@acronym{DTD},.and.standa
f44c0 72 64 2d 63 6f 6e 66 6f 72 6d 69 6e 67 20 73 69 6d 70 6c 65 20 40 61 63 72 6f 6e 79 6d 7b 48 54 rd-conforming.simple.@acronym{HT
f44e0 4d 4c 7d 2c 0a 50 6f 73 74 53 63 72 69 70 74 20 6f 72 20 40 61 63 72 6f 6e 79 6d 7b 50 44 46 7d ML},.PostScript.or.@acronym{PDF}
f4500 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20 68 75 6d 61 6e 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e .designed.for.human.modification
f4520 2e 20 20 45 78 61 6d 70 6c 65 73 0a 6f 66 20 74 72 61 6e 73 70 61 72 65 6e 74 20 69 6d 61 67 65 ...Examples.of.transparent.image
f4540 20 66 6f 72 6d 61 74 73 20 69 6e 63 6c 75 64 65 20 40 61 63 72 6f 6e 79 6d 7b 50 4e 47 7d 2c 20 .formats.include.@acronym{PNG},.
f4560 40 61 63 72 6f 6e 79 6d 7b 58 43 46 7d 20 61 6e 64 0a 40 61 63 72 6f 6e 79 6d 7b 4a 50 47 7d 2e @acronym{XCF}.and.@acronym{JPG}.
f4580 20 20 4f 70 61 71 75 65 20 66 6f 72 6d 61 74 73 20 69 6e 63 6c 75 64 65 20 70 72 6f 70 72 69 65 ..Opaque.formats.include.proprie
f45a0 74 61 72 79 20 66 6f 72 6d 61 74 73 20 74 68 61 74 20 63 61 6e 20 62 65 0a 72 65 61 64 20 61 6e tary.formats.that.can.be.read.an
f45c0 64 20 65 64 69 74 65 64 20 6f 6e 6c 79 20 62 79 20 70 72 6f 70 72 69 65 74 61 72 79 20 77 6f 72 d.edited.only.by.proprietary.wor
f45e0 64 20 70 72 6f 63 65 73 73 6f 72 73 2c 20 40 61 63 72 6f 6e 79 6d 7b 53 47 4d 4c 7d 20 6f 72 0a d.processors,.@acronym{SGML}.or.
f4600 40 61 63 72 6f 6e 79 6d 7b 58 4d 4c 7d 20 66 6f 72 20 77 68 69 63 68 20 74 68 65 20 40 61 63 72 @acronym{XML}.for.which.the.@acr
f4620 6f 6e 79 6d 7b 44 54 44 7d 20 61 6e 64 2f 6f 72 20 70 72 6f 63 65 73 73 69 6e 67 20 74 6f 6f 6c onym{DTD}.and/or.processing.tool
f4640 73 20 61 72 65 0a 6e 6f 74 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 2c 20 61 s.are.not.generally.available,.a
f4660 6e 64 20 74 68 65 20 6d 61 63 68 69 6e 65 2d 67 65 6e 65 72 61 74 65 64 20 40 61 63 72 6f 6e 79 nd.the.machine-generated.@acrony
f4680 6d 7b 48 54 4d 4c 7d 2c 0a 50 6f 73 74 53 63 72 69 70 74 20 6f 72 20 40 61 63 72 6f 6e 79 6d 7b m{HTML},.PostScript.or.@acronym{
f46a0 50 44 46 7d 20 70 72 6f 64 75 63 65 64 20 62 79 20 73 6f 6d 65 20 77 6f 72 64 20 70 72 6f 63 65 PDF}.produced.by.some.word.proce
f46c0 73 73 6f 72 73 20 66 6f 72 0a 6f 75 74 70 75 74 20 70 75 72 70 6f 73 65 73 20 6f 6e 6c 79 2e 0a ssors.for.output.purposes.only..
f46e0 0a 54 68 65 20 60 60 54 69 74 6c 65 20 50 61 67 65 27 27 20 6d 65 61 6e 73 2c 20 66 6f 72 20 61 .The.``Title.Page''.means,.for.a
f4700 20 70 72 69 6e 74 65 64 20 62 6f 6f 6b 2c 20 74 68 65 20 74 69 74 6c 65 20 70 61 67 65 20 69 74 .printed.book,.the.title.page.it
f4720 73 65 6c 66 2c 0a 70 6c 75 73 20 73 75 63 68 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 67 65 73 20 self,.plus.such.following.pages.
f4740 61 73 20 61 72 65 20 6e 65 65 64 65 64 20 74 6f 20 68 6f 6c 64 2c 20 6c 65 67 69 62 6c 79 2c 20 as.are.needed.to.hold,.legibly,.
f4760 74 68 65 20 6d 61 74 65 72 69 61 6c 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 72 65 71 75 69 72 the.material.this.License.requir
f4780 65 73 20 74 6f 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 74 69 74 6c 65 20 70 61 67 65 2e 20 es.to.appear.in.the.title.page..
f47a0 20 46 6f 72 20 77 6f 72 6b 73 20 69 6e 0a 66 6f 72 6d 61 74 73 20 77 68 69 63 68 20 64 6f 20 6e .For.works.in.formats.which.do.n
f47c0 6f 74 20 68 61 76 65 20 61 6e 79 20 74 69 74 6c 65 20 70 61 67 65 20 61 73 20 73 75 63 68 2c 20 ot.have.any.title.page.as.such,.
f47e0 60 60 54 69 74 6c 65 20 50 61 67 65 27 27 20 6d 65 61 6e 73 0a 74 68 65 20 74 65 78 74 20 6e 65 ``Title.Page''.means.the.text.ne
f4800 61 72 20 74 68 65 20 6d 6f 73 74 20 70 72 6f 6d 69 6e 65 6e 74 20 61 70 70 65 61 72 61 6e 63 65 ar.the.most.prominent.appearance
f4820 20 6f 66 20 74 68 65 20 77 6f 72 6b 27 73 20 74 69 74 6c 65 2c 0a 70 72 65 63 65 64 69 6e 67 20 .of.the.work's.title,.preceding.
f4840 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 65 the.beginning.of.the.body.of.the
f4860 20 74 65 78 74 2e 0a 0a 41 20 73 65 63 74 69 6f 6e 20 60 60 45 6e 74 69 74 6c 65 64 20 58 59 5a .text...A.section.``Entitled.XYZ
f4880 27 27 20 6d 65 61 6e 73 20 61 20 6e 61 6d 65 64 20 73 75 62 75 6e 69 74 20 6f 66 20 74 68 65 20 ''.means.a.named.subunit.of.the.
f48a0 44 6f 63 75 6d 65 6e 74 20 77 68 6f 73 65 0a 74 69 74 6c 65 20 65 69 74 68 65 72 20 69 73 20 70 Document.whose.title.either.is.p
f48c0 72 65 63 69 73 65 6c 79 20 58 59 5a 20 6f 72 20 63 6f 6e 74 61 69 6e 73 20 58 59 5a 20 69 6e 20 recisely.XYZ.or.contains.XYZ.in.
f48e0 70 61 72 65 6e 74 68 65 73 65 73 20 66 6f 6c 6c 6f 77 69 6e 67 0a 74 65 78 74 20 74 68 61 74 20 parentheses.following.text.that.
f4900 74 72 61 6e 73 6c 61 74 65 73 20 58 59 5a 20 69 6e 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 translates.XYZ.in.another.langua
f4920 67 65 2e 20 20 28 48 65 72 65 20 58 59 5a 20 73 74 61 6e 64 73 20 66 6f 72 20 61 0a 73 70 65 63 ge...(Here.XYZ.stands.for.a.spec
f4940 69 66 69 63 20 73 65 63 74 69 6f 6e 20 6e 61 6d 65 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f ific.section.name.mentioned.belo
f4960 77 2c 20 73 75 63 68 20 61 73 20 60 60 41 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 27 27 2c w,.such.as.``Acknowledgements'',
f4980 0a 60 60 44 65 64 69 63 61 74 69 6f 6e 73 27 27 2c 20 60 60 45 6e 64 6f 72 73 65 6d 65 6e 74 73 .``Dedications'',.``Endorsements
f49a0 27 27 2c 20 6f 72 20 60 60 48 69 73 74 6f 72 79 27 27 2e 29 20 20 54 6f 20 60 60 50 72 65 73 65 '',.or.``History''.)..To.``Prese
f49c0 72 76 65 20 74 68 65 20 54 69 74 6c 65 27 27 0a 6f 66 20 73 75 63 68 20 61 20 73 65 63 74 69 6f rve.the.Title''.of.such.a.sectio
f49e0 6e 20 77 68 65 6e 20 79 6f 75 20 6d 6f 64 69 66 79 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d n.when.you.modify.the.Document.m
f4a00 65 61 6e 73 20 74 68 61 74 20 69 74 20 72 65 6d 61 69 6e 73 20 61 0a 73 65 63 74 69 6f 6e 20 60 eans.that.it.remains.a.section.`
f4a20 60 45 6e 74 69 74 6c 65 64 20 58 59 5a 27 27 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 69 `Entitled.XYZ''.according.to.thi
f4a40 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 0a 54 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 61 79 20 s.definition...The.Document.may.
f4a60 69 6e 63 6c 75 64 65 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 73 20 6e 65 78 include.Warranty.Disclaimers.nex
f4a80 74 20 74 6f 20 74 68 65 20 6e 6f 74 69 63 65 20 77 68 69 63 68 0a 73 74 61 74 65 73 20 74 68 61 t.to.the.notice.which.states.tha
f4aa0 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 44 6f t.this.License.applies.to.the.Do
f4ac0 63 75 6d 65 6e 74 2e 20 20 54 68 65 73 65 20 57 61 72 72 61 6e 74 79 0a 44 69 73 63 6c 61 69 6d cument...These.Warranty.Disclaim
f4ae0 65 72 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 ers.are.considered.to.be.include
f4b00 64 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 69 6e 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2c 20 d.by.reference.in.this.License,.
f4b20 62 75 74 20 6f 6e 6c 79 20 61 73 20 72 65 67 61 72 64 73 20 64 69 73 63 6c 61 69 6d 69 6e 67 20 but.only.as.regards.disclaiming.
f4b40 77 61 72 72 61 6e 74 69 65 73 3a 20 61 6e 79 20 6f 74 68 65 72 0a 69 6d 70 6c 69 63 61 74 69 6f warranties:.any.other.implicatio
f4b60 6e 20 74 68 61 74 20 74 68 65 73 65 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 n.that.these.Warranty.Disclaimer
f4b80 73 20 6d 61 79 20 68 61 76 65 20 69 73 20 76 6f 69 64 20 61 6e 64 20 68 61 73 0a 6e 6f 20 65 66 s.may.have.is.void.and.has.no.ef
f4ba0 66 65 63 74 20 6f 6e 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 74 68 69 73 20 4c 69 63 65 fect.on.the.meaning.of.this.Lice
f4bc0 6e 73 65 2e 0a 0a 40 69 74 65 6d 0a 56 45 52 42 41 54 49 4d 20 43 4f 50 59 49 4e 47 0a 0a 59 6f nse...@item.VERBATIM.COPYING..Yo
f4be0 75 20 6d 61 79 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 74 68 65 20 44 6f u.may.copy.and.distribute.the.Do
f4c00 63 75 6d 65 6e 74 20 69 6e 20 61 6e 79 20 6d 65 64 69 75 6d 2c 20 65 69 74 68 65 72 0a 63 6f 6d cument.in.any.medium,.either.com
f4c20 6d 65 72 63 69 61 6c 6c 79 20 6f 72 20 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 2c 20 70 72 mercially.or.noncommercially,.pr
f4c40 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 0a 63 6f ovided.that.this.License,.the.co
f4c60 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 2c 20 61 6e 64 20 74 68 65 20 6c 69 63 65 6e 73 65 pyright.notices,.and.the.license
f4c80 20 6e 6f 74 69 63 65 20 73 61 79 69 6e 67 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 70 70 6c .notice.saying.this.License.appl
f4ca0 69 65 73 0a 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 72 65 20 72 65 70 72 6f 64 75 63 ies.to.the.Document.are.reproduc
f4cc0 65 64 20 69 6e 20 61 6c 6c 20 63 6f 70 69 65 73 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 20 61 ed.in.all.copies,.and.that.you.a
f4ce0 64 64 20 6e 6f 20 6f 74 68 65 72 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 77 68 61 74 73 6f 65 76 65 dd.no.other.conditions.whatsoeve
f4d00 72 20 74 6f 20 74 68 6f 73 65 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 r.to.those.of.this.License...You
f4d20 20 6d 61 79 20 6e 6f 74 20 75 73 65 0a 74 65 63 68 6e 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 .may.not.use.technical.measures.
f4d40 74 6f 20 6f 62 73 74 72 75 63 74 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 72 65 61 64 69 to.obstruct.or.control.the.readi
f4d60 6e 67 20 6f 72 20 66 75 72 74 68 65 72 0a 63 6f 70 79 69 6e 67 20 6f 66 20 74 68 65 20 63 6f 70 ng.or.further.copying.of.the.cop
f4d80 69 65 73 20 79 6f 75 20 6d 61 6b 65 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 2e 20 20 48 6f 77 ies.you.make.or.distribute...How
f4da0 65 76 65 72 2c 20 79 6f 75 20 6d 61 79 20 61 63 63 65 70 74 0a 63 6f 6d 70 65 6e 73 61 74 69 6f ever,.you.may.accept.compensatio
f4dc0 6e 20 69 6e 20 65 78 63 68 61 6e 67 65 20 66 6f 72 20 63 6f 70 69 65 73 2e 20 20 49 66 20 79 6f n.in.exchange.for.copies...If.yo
f4de0 75 20 64 69 73 74 72 69 62 75 74 65 20 61 20 6c 61 72 67 65 20 65 6e 6f 75 67 68 0a 6e 75 6d 62 u.distribute.a.large.enough.numb
f4e00 65 72 20 6f 66 20 63 6f 70 69 65 73 20 79 6f 75 20 6d 75 73 74 20 61 6c 73 6f 20 66 6f 6c 6c 6f er.of.copies.you.must.also.follo
f4e20 77 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 69 6e 20 73 65 63 74 69 6f 6e 20 33 2e 0a 0a w.the.conditions.in.section.3...
f4e40 59 6f 75 20 6d 61 79 20 61 6c 73 6f 20 6c 65 6e 64 20 63 6f 70 69 65 73 2c 20 75 6e 64 65 72 20 You.may.also.lend.copies,.under.
f4e60 74 68 65 20 73 61 6d 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 74 61 74 65 64 20 61 62 6f 76 65 the.same.conditions.stated.above
f4e80 2c 20 61 6e 64 0a 79 6f 75 20 6d 61 79 20 70 75 62 6c 69 63 6c 79 20 64 69 73 70 6c 61 79 20 63 ,.and.you.may.publicly.display.c
f4ea0 6f 70 69 65 73 2e 0a 0a 40 69 74 65 6d 0a 43 4f 50 59 49 4e 47 20 49 4e 20 51 55 41 4e 54 49 54 opies...@item.COPYING.IN.QUANTIT
f4ec0 59 0a 0a 49 66 20 79 6f 75 20 70 75 62 6c 69 73 68 20 70 72 69 6e 74 65 64 20 63 6f 70 69 65 73 Y..If.you.publish.printed.copies
f4ee0 20 28 6f 72 20 63 6f 70 69 65 73 20 69 6e 20 6d 65 64 69 61 20 74 68 61 74 20 63 6f 6d 6d 6f 6e .(or.copies.in.media.that.common
f4f00 6c 79 20 68 61 76 65 0a 70 72 69 6e 74 65 64 20 63 6f 76 65 72 73 29 20 6f 66 20 74 68 65 20 44 ly.have.printed.covers).of.the.D
f4f20 6f 63 75 6d 65 6e 74 2c 20 6e 75 6d 62 65 72 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 31 30 30 ocument,.numbering.more.than.100
f4f40 2c 20 61 6e 64 20 74 68 65 0a 44 6f 63 75 6d 65 6e 74 27 73 20 6c 69 63 65 6e 73 65 20 6e 6f 74 ,.and.the.Document's.license.not
f4f60 69 63 65 20 72 65 71 75 69 72 65 73 20 43 6f 76 65 72 20 54 65 78 74 73 2c 20 79 6f 75 20 6d 75 ice.requires.Cover.Texts,.you.mu
f4f80 73 74 20 65 6e 63 6c 6f 73 65 20 74 68 65 0a 63 6f 70 69 65 73 20 69 6e 20 63 6f 76 65 72 73 20 st.enclose.the.copies.in.covers.
f4fa0 74 68 61 74 20 63 61 72 72 79 2c 20 63 6c 65 61 72 6c 79 20 61 6e 64 20 6c 65 67 69 62 6c 79 2c that.carry,.clearly.and.legibly,
f4fc0 20 61 6c 6c 20 74 68 65 73 65 20 43 6f 76 65 72 0a 54 65 78 74 73 3a 20 46 72 6f 6e 74 2d 43 6f .all.these.Cover.Texts:.Front-Co
f4fe0 76 65 72 20 54 65 78 74 73 20 6f 6e 20 74 68 65 20 66 72 6f 6e 74 20 63 6f 76 65 72 2c 20 61 6e ver.Texts.on.the.front.cover,.an
f5000 64 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 6e 0a 74 68 65 20 62 61 63 6b 20 63 d.Back-Cover.Texts.on.the.back.c
f5020 6f 76 65 72 2e 20 20 42 6f 74 68 20 63 6f 76 65 72 73 20 6d 75 73 74 20 61 6c 73 6f 20 63 6c 65 over...Both.covers.must.also.cle
f5040 61 72 6c 79 20 61 6e 64 20 6c 65 67 69 62 6c 79 20 69 64 65 6e 74 69 66 79 0a 79 6f 75 20 61 73 arly.and.legibly.identify.you.as
f5060 20 74 68 65 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 73 65 20 63 6f 70 69 65 73 2e 20 .the.publisher.of.these.copies..
f5080 20 54 68 65 20 66 72 6f 6e 74 20 63 6f 76 65 72 20 6d 75 73 74 20 70 72 65 73 65 6e 74 0a 74 68 .The.front.cover.must.present.th
f50a0 65 20 66 75 6c 6c 20 74 69 74 6c 65 20 77 69 74 68 20 61 6c 6c 20 77 6f 72 64 73 20 6f 66 20 74 e.full.title.with.all.words.of.t
f50c0 68 65 20 74 69 74 6c 65 20 65 71 75 61 6c 6c 79 20 70 72 6f 6d 69 6e 65 6e 74 20 61 6e 64 0a 76 he.title.equally.prominent.and.v
f50e0 69 73 69 62 6c 65 2e 20 20 59 6f 75 20 6d 61 79 20 61 64 64 20 6f 74 68 65 72 20 6d 61 74 65 72 isible...You.may.add.other.mater
f5100 69 61 6c 20 6f 6e 20 74 68 65 20 63 6f 76 65 72 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 2e 0a 43 ial.on.the.covers.in.addition..C
f5120 6f 70 79 69 6e 67 20 77 69 74 68 20 63 68 61 6e 67 65 73 20 6c 69 6d 69 74 65 64 20 74 6f 20 74 opying.with.changes.limited.to.t
f5140 68 65 20 63 6f 76 65 72 73 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 79 20 70 72 65 73 65 he.covers,.as.long.as.they.prese
f5160 72 76 65 0a 74 68 65 20 74 69 74 6c 65 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 6e rve.the.title.of.the.Document.an
f5180 64 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 20 63 61 6e 20 d.satisfy.these.conditions,.can.
f51a0 62 65 20 74 72 65 61 74 65 64 0a 61 73 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 69 be.treated.as.verbatim.copying.i
f51c0 6e 20 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 2e 0a 0a 49 66 20 74 68 65 20 72 65 71 75 69 72 n.other.respects...If.the.requir
f51e0 65 64 20 74 65 78 74 73 20 66 6f 72 20 65 69 74 68 65 72 20 63 6f 76 65 72 20 61 72 65 20 74 6f ed.texts.for.either.cover.are.to
f5200 6f 20 76 6f 6c 75 6d 69 6e 6f 75 73 20 74 6f 20 66 69 74 0a 6c 65 67 69 62 6c 79 2c 20 79 6f 75 o.voluminous.to.fit.legibly,.you
f5220 20 73 68 6f 75 6c 64 20 70 75 74 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 73 20 6c 69 73 74 65 .should.put.the.first.ones.liste
f5240 64 20 28 61 73 20 6d 61 6e 79 20 61 73 20 66 69 74 0a 72 65 61 73 6f 6e 61 62 6c 79 29 20 6f 6e d.(as.many.as.fit.reasonably).on
f5260 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 76 65 72 2c 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 .the.actual.cover,.and.continue.
f5280 74 68 65 20 72 65 73 74 20 6f 6e 74 6f 20 61 64 6a 61 63 65 6e 74 0a 70 61 67 65 73 2e 0a 0a 49 the.rest.onto.adjacent.pages...I
f52a0 66 20 79 6f 75 20 70 75 62 6c 69 73 68 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 4f 70 61 71 f.you.publish.or.distribute.Opaq
f52c0 75 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6e 75 6d 62 65 72 ue.copies.of.the.Document.number
f52e0 69 6e 67 0a 6d 6f 72 65 20 74 68 61 6e 20 31 30 30 2c 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 ing.more.than.100,.you.must.eith
f5300 65 72 20 69 6e 63 6c 75 64 65 20 61 20 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 54 72 er.include.a.machine-readable.Tr
f5320 61 6e 73 70 61 72 65 6e 74 0a 63 6f 70 79 20 61 6c 6f 6e 67 20 77 69 74 68 20 65 61 63 68 20 4f ansparent.copy.along.with.each.O
f5340 70 61 71 75 65 20 63 6f 70 79 2c 20 6f 72 20 73 74 61 74 65 20 69 6e 20 6f 72 20 77 69 74 68 20 paque.copy,.or.state.in.or.with.
f5360 65 61 63 68 20 4f 70 61 71 75 65 20 63 6f 70 79 0a 61 20 63 6f 6d 70 75 74 65 72 2d 6e 65 74 77 each.Opaque.copy.a.computer-netw
f5380 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 67 65 6e 65 ork.location.from.which.the.gene
f53a0 72 61 6c 20 6e 65 74 77 6f 72 6b 2d 75 73 69 6e 67 0a 70 75 62 6c 69 63 20 68 61 73 20 61 63 63 ral.network-using.public.has.acc
f53c0 65 73 73 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 75 73 69 6e 67 20 70 75 62 6c 69 63 2d 73 74 61 ess.to.download.using.public-sta
f53e0 6e 64 61 72 64 20 6e 65 74 77 6f 72 6b 20 70 72 6f 74 6f 63 6f 6c 73 0a 61 20 63 6f 6d 70 6c 65 ndard.network.protocols.a.comple
f5400 74 65 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 79 20 6f 66 20 74 68 65 20 44 6f 63 75 6d te.Transparent.copy.of.the.Docum
f5420 65 6e 74 2c 20 66 72 65 65 20 6f 66 20 61 64 64 65 64 20 6d 61 74 65 72 69 61 6c 2e 0a 49 66 20 ent,.free.of.added.material..If.
f5440 79 6f 75 20 75 73 65 20 74 68 65 20 6c 61 74 74 65 72 20 6f 70 74 69 6f 6e 2c 20 79 6f 75 20 6d you.use.the.latter.option,.you.m
f5460 75 73 74 20 74 61 6b 65 20 72 65 61 73 6f 6e 61 62 6c 79 20 70 72 75 64 65 6e 74 20 73 74 65 70 ust.take.reasonably.prudent.step
f5480 73 2c 0a 77 68 65 6e 20 79 6f 75 20 62 65 67 69 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f s,.when.you.begin.distribution.o
f54a0 66 20 4f 70 61 71 75 65 20 63 6f 70 69 65 73 20 69 6e 20 71 75 61 6e 74 69 74 79 2c 20 74 6f 20 f.Opaque.copies.in.quantity,.to.
f54c0 65 6e 73 75 72 65 0a 74 68 61 74 20 74 68 69 73 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 ensure.that.this.Transparent.cop
f54e0 79 20 77 69 6c 6c 20 72 65 6d 61 69 6e 20 74 68 75 73 20 61 63 63 65 73 73 69 62 6c 65 20 61 74 y.will.remain.thus.accessible.at
f5500 20 74 68 65 20 73 74 61 74 65 64 0a 6c 6f 63 61 74 69 6f 6e 20 75 6e 74 69 6c 20 61 74 20 6c 65 .the.stated.location.until.at.le
f5520 61 73 74 20 6f 6e 65 20 79 65 61 72 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 74 20 74 69 6d 65 ast.one.year.after.the.last.time
f5540 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 0a 4f 70 61 71 75 65 20 63 6f 70 79 20 28 .you.distribute.an.Opaque.copy.(
f5560 64 69 72 65 63 74 6c 79 20 6f 72 20 74 68 72 6f 75 67 68 20 79 6f 75 72 20 61 67 65 6e 74 73 20 directly.or.through.your.agents.
f5580 6f 72 20 72 65 74 61 69 6c 65 72 73 29 20 6f 66 20 74 68 61 74 0a 65 64 69 74 69 6f 6e 20 74 6f or.retailers).of.that.edition.to
f55a0 20 74 68 65 20 70 75 62 6c 69 63 2e 0a 0a 49 74 20 69 73 20 72 65 71 75 65 73 74 65 64 2c 20 62 .the.public...It.is.requested,.b
f55c0 75 74 20 6e 6f 74 20 72 65 71 75 69 72 65 64 2c 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 74 61 63 ut.not.required,.that.you.contac
f55e0 74 20 74 68 65 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 0a 44 6f 63 75 6d 65 6e 74 20 77 65 t.the.authors.of.the.Document.we
f5600 6c 6c 20 62 65 66 6f 72 65 20 72 65 64 69 73 74 72 69 62 75 74 69 6e 67 20 61 6e 79 20 6c 61 72 ll.before.redistributing.any.lar
f5620 67 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 70 69 65 73 2c 20 74 6f 20 67 69 76 65 0a 74 68 65 ge.number.of.copies,.to.give.the
f5640 6d 20 61 20 63 68 61 6e 63 65 20 74 6f 20 70 72 6f 76 69 64 65 20 79 6f 75 20 77 69 74 68 20 61 m.a.chance.to.provide.you.with.a
f5660 6e 20 75 70 64 61 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e n.updated.version.of.the.Documen
f5680 74 2e 0a 0a 40 69 74 65 6d 0a 4d 4f 44 49 46 49 43 41 54 49 4f 4e 53 0a 0a 59 6f 75 20 6d 61 79 t...@item.MODIFICATIONS..You.may
f56a0 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 61 20 4d 6f 64 69 66 69 65 64 20 .copy.and.distribute.a.Modified.
f56c0 56 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 75 6e 64 65 72 0a 74 68 Version.of.the.Document.under.th
f56e0 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 32 20 61 6e 64 20 33 e.conditions.of.sections.2.and.3
f5700 20 61 62 6f 76 65 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 72 65 6c 65 61 73 .above,.provided.that.you.releas
f5720 65 0a 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 75 6e 64 65 72 20 70 72 65 e.the.Modified.Version.under.pre
f5740 63 69 73 65 6c 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 77 69 74 68 20 74 68 65 20 4d 6f cisely.this.License,.with.the.Mo
f5760 64 69 66 69 65 64 0a 56 65 72 73 69 6f 6e 20 66 69 6c 6c 69 6e 67 20 74 68 65 20 72 6f 6c 65 20 dified.Version.filling.the.role.
f5780 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 74 68 75 73 20 6c 69 63 65 6e 73 69 6e 67 20 of.the.Document,.thus.licensing.
f57a0 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 61 6e 64 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 distribution.and.modification.of
f57c0 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 74 6f 20 77 68 6f 65 76 65 72 .the.Modified.Version.to.whoever
f57e0 20 70 6f 73 73 65 73 73 65 73 20 61 20 63 6f 70 79 0a 6f 66 20 69 74 2e 20 20 49 6e 20 61 64 64 .possesses.a.copy.of.it...In.add
f5800 69 74 69 6f 6e 2c 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 ition,.you.must.do.these.things.
f5820 69 6e 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 3a 0a 0a 40 65 6e 75 6d 65 in.the.Modified.Version:..@enume
f5840 72 61 74 65 20 41 0a 40 69 74 65 6d 0a 55 73 65 20 69 6e 20 74 68 65 20 54 69 74 6c 65 20 50 61 rate.A.@item.Use.in.the.Title.Pa
f5860 67 65 20 28 61 6e 64 20 6f 6e 20 74 68 65 20 63 6f 76 65 72 73 2c 20 69 66 20 61 6e 79 29 20 61 ge.(and.on.the.covers,.if.any).a
f5880 20 74 69 74 6c 65 20 64 69 73 74 69 6e 63 74 0a 66 72 6f 6d 20 74 68 61 74 20 6f 66 20 74 68 65 .title.distinct.from.that.of.the
f58a0 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 66 72 6f 6d 20 74 68 6f 73 65 20 6f 66 20 70 72 65 .Document,.and.from.those.of.pre
f58c0 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 0a 28 77 68 69 63 68 20 73 68 6f 75 6c 64 2c 20 69 66 vious.versions.(which.should,.if
f58e0 20 74 68 65 72 65 20 77 65 72 65 20 61 6e 79 2c 20 62 65 20 6c 69 73 74 65 64 20 69 6e 20 74 68 .there.were.any,.be.listed.in.th
f5900 65 20 48 69 73 74 6f 72 79 20 73 65 63 74 69 6f 6e 0a 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e e.History.section.of.the.Documen
f5920 74 29 2e 20 20 59 6f 75 20 6d 61 79 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 74 69 74 6c 65 20 t)...You.may.use.the.same.title.
f5940 61 73 20 61 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 0a 69 66 20 74 68 65 20 6f 72 69 as.a.previous.version.if.the.ori
f5960 67 69 6e 61 6c 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 ginal.publisher.of.that.version.
f5980 67 69 76 65 73 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 40 69 74 65 6d 0a 4c 69 73 74 20 6f 6e gives.permission...@item.List.on
f59a0 20 74 68 65 20 54 69 74 6c 65 20 50 61 67 65 2c 20 61 73 20 61 75 74 68 6f 72 73 2c 20 6f 6e 65 .the.Title.Page,.as.authors,.one
f59c0 20 6f 72 20 6d 6f 72 65 20 70 65 72 73 6f 6e 73 20 6f 72 20 65 6e 74 69 74 69 65 73 0a 72 65 73 .or.more.persons.or.entities.res
f59e0 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 61 75 74 68 6f 72 73 68 69 70 20 6f 66 20 74 68 65 20 6d ponsible.for.authorship.of.the.m
f5a00 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 4d 6f 64 69 66 69 65 64 0a 56 65 72 odifications.in.the.Modified.Ver
f5a20 73 69 6f 6e 2c 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 61 74 20 6c 65 61 73 74 20 66 69 76 sion,.together.with.at.least.fiv
f5a40 65 20 6f 66 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 e.of.the.principal.authors.of.th
f5a60 65 0a 44 6f 63 75 6d 65 6e 74 20 28 61 6c 6c 20 6f 66 20 69 74 73 20 70 72 69 6e 63 69 70 61 6c e.Document.(all.of.its.principal
f5a80 20 61 75 74 68 6f 72 73 2c 20 69 66 20 69 74 20 68 61 73 20 66 65 77 65 72 20 74 68 61 6e 20 66 .authors,.if.it.has.fewer.than.f
f5aa0 69 76 65 29 2c 0a 75 6e 6c 65 73 73 20 74 68 65 79 20 72 65 6c 65 61 73 65 20 79 6f 75 20 66 72 ive),.unless.they.release.you.fr
f5ac0 6f 6d 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 0a 0a 40 69 74 65 6d 0a 53 74 61 74 om.this.requirement...@item.Stat
f5ae0 65 20 6f 6e 20 74 68 65 20 54 69 74 6c 65 20 70 61 67 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 e.on.the.Title.page.the.name.of.
f5b00 74 68 65 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 0a 4d 6f 64 69 66 69 65 64 20 56 65 the.publisher.of.the.Modified.Ve
f5b20 72 73 69 6f 6e 2c 20 61 73 20 74 68 65 20 70 75 62 6c 69 73 68 65 72 2e 0a 0a 40 69 74 65 6d 0a rsion,.as.the.publisher...@item.
f5b40 50 72 65 73 65 72 76 65 20 61 6c 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 Preserve.all.the.copyright.notic
f5b60 65 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2e 0a 0a 40 69 74 65 6d 0a 41 64 64 20 61 es.of.the.Document...@item.Add.a
f5b80 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 66 n.appropriate.copyright.notice.f
f5ba0 6f 72 20 79 6f 75 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 61 64 6a 61 63 65 6e 74 20 74 or.your.modifications.adjacent.t
f5bc0 6f 20 74 68 65 20 6f 74 68 65 72 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 2e 0a 0a o.the.other.copyright.notices...
f5be0 40 69 74 65 6d 0a 49 6e 63 6c 75 64 65 2c 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65 72 @item.Include,.immediately.after
f5c00 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 2c 20 61 20 6c 69 63 65 6e 73 .the.copyright.notices,.a.licens
f5c20 65 20 6e 6f 74 69 63 65 0a 67 69 76 69 6e 67 20 74 68 65 20 70 75 62 6c 69 63 20 70 65 72 6d 69 e.notice.giving.the.public.permi
f5c40 73 73 69 6f 6e 20 74 6f 20 75 73 65 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f ssion.to.use.the.Modified.Versio
f5c60 6e 20 75 6e 64 65 72 20 74 68 65 0a 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 n.under.the.terms.of.this.Licens
f5c80 65 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 73 68 6f 77 6e 20 69 6e 20 74 68 65 20 41 64 64 65 e,.in.the.form.shown.in.the.Adde
f5ca0 6e 64 75 6d 20 62 65 6c 6f 77 2e 0a 0a 40 69 74 65 6d 0a 50 72 65 73 65 72 76 65 20 69 6e 20 74 ndum.below...@item.Preserve.in.t
f5cc0 68 61 74 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 hat.license.notice.the.full.list
f5ce0 73 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 0a 61 6e 64 20 72 65 71 75 s.of.Invariant.Sections.and.requ
f5d00 69 72 65 64 20 43 6f 76 65 72 20 54 65 78 74 73 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 44 6f ired.Cover.Texts.given.in.the.Do
f5d20 63 75 6d 65 6e 74 27 73 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 2e 0a 0a 40 69 74 65 6d 0a cument's.license.notice...@item.
f5d40 49 6e 63 6c 75 64 65 20 61 6e 20 75 6e 61 6c 74 65 72 65 64 20 63 6f 70 79 20 6f 66 20 74 68 69 Include.an.unaltered.copy.of.thi
f5d60 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 40 69 74 65 6d 0a 50 72 65 73 65 72 76 65 20 74 68 65 20 73 s.License...@item.Preserve.the.s
f5d80 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 60 60 48 69 73 74 6f 72 79 27 27 2c 20 50 72 65 ection.Entitled.``History'',.Pre
f5da0 73 65 72 76 65 20 69 74 73 20 54 69 74 6c 65 2c 20 61 6e 64 20 61 64 64 0a 74 6f 20 69 74 20 61 serve.its.Title,.and.add.to.it.a
f5dc0 6e 20 69 74 65 6d 20 73 74 61 74 69 6e 67 20 61 74 20 6c 65 61 73 74 20 74 68 65 20 74 69 74 6c n.item.stating.at.least.the.titl
f5de0 65 2c 20 79 65 61 72 2c 20 6e 65 77 20 61 75 74 68 6f 72 73 2c 20 61 6e 64 0a 70 75 62 6c 69 73 e,.year,.new.authors,.and.publis
f5e00 68 65 72 20 6f 66 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 61 73 20 67 her.of.the.Modified.Version.as.g
f5e20 69 76 65 6e 20 6f 6e 20 74 68 65 20 54 69 74 6c 65 20 50 61 67 65 2e 20 20 49 66 0a 74 68 65 72 iven.on.the.Title.Page...If.ther
f5e40 65 20 69 73 20 6e 6f 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 60 60 48 69 73 74 6f e.is.no.section.Entitled.``Histo
f5e60 72 79 27 27 20 69 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 63 72 65 61 74 65 20 6f 6e 65 ry''.in.the.Document,.create.one
f5e80 0a 73 74 61 74 69 6e 67 20 74 68 65 20 74 69 74 6c 65 2c 20 79 65 61 72 2c 20 61 75 74 68 6f 72 .stating.the.title,.year,.author
f5ea0 73 2c 20 61 6e 64 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 s,.and.publisher.of.the.Document
f5ec0 20 61 73 0a 67 69 76 65 6e 20 6f 6e 20 69 74 73 20 54 69 74 6c 65 20 50 61 67 65 2c 20 74 68 65 .as.given.on.its.Title.Page,.the
f5ee0 6e 20 61 64 64 20 61 6e 20 69 74 65 6d 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 4d 6f 64 n.add.an.item.describing.the.Mod
f5f00 69 66 69 65 64 0a 56 65 72 73 69 6f 6e 20 61 73 20 73 74 61 74 65 64 20 69 6e 20 74 68 65 20 70 ified.Version.as.stated.in.the.p
f5f20 72 65 76 69 6f 75 73 20 73 65 6e 74 65 6e 63 65 2e 0a 0a 40 69 74 65 6d 0a 50 72 65 73 65 72 76 revious.sentence...@item.Preserv
f5f40 65 20 74 68 65 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 2c 20 69 66 20 61 6e 79 2c 20 e.the.network.location,.if.any,.
f5f60 67 69 76 65 6e 20 69 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 66 6f 72 0a 70 75 62 6c 69 63 given.in.the.Document.for.public
f5f80 20 61 63 63 65 73 73 20 74 6f 20 61 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 79 20 6f 66 .access.to.a.Transparent.copy.of
f5fa0 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 6c 69 6b 65 77 69 73 65 0a 74 68 65 20 .the.Document,.and.likewise.the.
f5fc0 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 73 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 44 network.locations.given.in.the.D
f5fe0 6f 63 75 6d 65 6e 74 20 66 6f 72 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 0a 69 74 ocument.for.previous.versions.it
f6000 20 77 61 73 20 62 61 73 65 64 20 6f 6e 2e 20 20 54 68 65 73 65 20 6d 61 79 20 62 65 20 70 6c 61 .was.based.on...These.may.be.pla
f6020 63 65 64 20 69 6e 20 74 68 65 20 60 60 48 69 73 74 6f 72 79 27 27 20 73 65 63 74 69 6f 6e 2e 0a ced.in.the.``History''.section..
f6040 59 6f 75 20 6d 61 79 20 6f 6d 69 74 20 61 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 20 You.may.omit.a.network.location.
f6060 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 77 61 73 20 70 75 62 6c 69 73 68 65 64 20 61 74 for.a.work.that.was.published.at
f6080 0a 6c 65 61 73 74 20 66 6f 75 72 20 79 65 61 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 44 6f 63 .least.four.years.before.the.Doc
f60a0 75 6d 65 6e 74 20 69 74 73 65 6c 66 2c 20 6f 72 20 69 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c ument.itself,.or.if.the.original
f60c0 0a 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 20 76 65 72 73 69 6f 6e 20 69 74 20 72 65 66 .publisher.of.the.version.it.ref
f60e0 65 72 73 20 74 6f 20 67 69 76 65 73 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 40 69 74 65 6d 0a ers.to.gives.permission...@item.
f6100 46 6f 72 20 61 6e 79 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 60 60 41 63 6b 6e 6f For.any.section.Entitled.``Ackno
f6120 77 6c 65 64 67 65 6d 65 6e 74 73 27 27 20 6f 72 20 60 60 44 65 64 69 63 61 74 69 6f 6e 73 27 27 wledgements''.or.``Dedications''
f6140 2c 20 50 72 65 73 65 72 76 65 0a 74 68 65 20 54 69 74 6c 65 20 6f 66 20 74 68 65 20 73 65 63 74 ,.Preserve.the.Title.of.the.sect
f6160 69 6f 6e 2c 20 61 6e 64 20 70 72 65 73 65 72 76 65 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e ion,.and.preserve.in.the.section
f6180 20 61 6c 6c 20 74 68 65 0a 73 75 62 73 74 61 6e 63 65 20 61 6e 64 20 74 6f 6e 65 20 6f 66 20 65 .all.the.substance.and.tone.of.e
f61a0 61 63 68 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 61 63 6b 6e 6f 77 6c 65 64 ach.of.the.contributor.acknowled
f61c0 67 65 6d 65 6e 74 73 20 61 6e 64 2f 6f 72 0a 64 65 64 69 63 61 74 69 6f 6e 73 20 67 69 76 65 6e gements.and/or.dedications.given
f61e0 20 74 68 65 72 65 69 6e 2e 0a 0a 40 69 74 65 6d 0a 50 72 65 73 65 72 76 65 20 61 6c 6c 20 74 68 .therein...@item.Preserve.all.th
f6200 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 44 6f 63 75 e.Invariant.Sections.of.the.Docu
f6220 6d 65 6e 74 2c 0a 75 6e 61 6c 74 65 72 65 64 20 69 6e 20 74 68 65 69 72 20 74 65 78 74 20 61 6e ment,.unaltered.in.their.text.an
f6240 64 20 69 6e 20 74 68 65 69 72 20 74 69 74 6c 65 73 2e 20 20 53 65 63 74 69 6f 6e 20 6e 75 6d 62 d.in.their.titles...Section.numb
f6260 65 72 73 0a 6f 72 20 74 68 65 20 65 71 75 69 76 61 6c 65 6e 74 20 61 72 65 20 6e 6f 74 20 63 6f ers.or.the.equivalent.are.not.co
f6280 6e 73 69 64 65 72 65 64 20 70 61 72 74 20 6f 66 20 74 68 65 20 73 65 63 74 69 6f 6e 20 74 69 74 nsidered.part.of.the.section.tit
f62a0 6c 65 73 2e 0a 0a 40 69 74 65 6d 0a 44 65 6c 65 74 65 20 61 6e 79 20 73 65 63 74 69 6f 6e 20 45 les...@item.Delete.any.section.E
f62c0 6e 74 69 74 6c 65 64 20 60 60 45 6e 64 6f 72 73 65 6d 65 6e 74 73 27 27 2e 20 20 53 75 63 68 20 ntitled.``Endorsements''...Such.
f62e0 61 20 73 65 63 74 69 6f 6e 0a 6d 61 79 20 6e 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e a.section.may.not.be.included.in
f6300 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 0a 0a 40 69 74 65 6d 0a 44 6f .the.Modified.Version...@item.Do
f6320 20 6e 6f 74 20 72 65 74 69 74 6c 65 20 61 6e 79 20 65 78 69 73 74 69 6e 67 20 73 65 63 74 69 6f .not.retitle.any.existing.sectio
f6340 6e 20 74 6f 20 62 65 20 45 6e 74 69 74 6c 65 64 20 60 60 45 6e 64 6f 72 73 65 6d 65 6e 74 73 27 n.to.be.Entitled.``Endorsements'
f6360 27 20 6f 72 0a 74 6f 20 63 6f 6e 66 6c 69 63 74 20 69 6e 20 74 69 74 6c 65 20 77 69 74 68 20 61 '.or.to.conflict.in.title.with.a
f6380 6e 79 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 0a 50 72 65 ny.Invariant.Section...@item.Pre
f63a0 73 65 72 76 65 20 61 6e 79 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 73 2e 0a serve.any.Warranty.Disclaimers..
f63c0 40 65 6e 64 20 65 6e 75 6d 65 72 61 74 65 0a 0a 49 66 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 @end.enumerate..If.the.Modified.
f63e0 56 65 72 73 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 6e 65 77 20 66 72 6f 6e 74 2d 6d 61 74 74 65 Version.includes.new.front-matte
f6400 72 20 73 65 63 74 69 6f 6e 73 20 6f 72 0a 61 70 70 65 6e 64 69 63 65 73 20 74 68 61 74 20 71 75 r.sections.or.appendices.that.qu
f6420 61 6c 69 66 79 20 61 73 20 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e 73 20 61 6e 64 20 alify.as.Secondary.Sections.and.
f6440 63 6f 6e 74 61 69 6e 20 6e 6f 20 6d 61 74 65 72 69 61 6c 0a 63 6f 70 69 65 64 20 66 72 6f 6d 20 contain.no.material.copied.from.
f6460 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 the.Document,.you.may.at.your.op
f6480 74 69 6f 6e 20 64 65 73 69 67 6e 61 74 65 20 73 6f 6d 65 20 6f 72 20 61 6c 6c 0a 6f 66 20 74 68 tion.designate.some.or.all.of.th
f64a0 65 73 65 20 73 65 63 74 69 6f 6e 73 20 61 73 20 69 6e 76 61 72 69 61 6e 74 2e 20 20 54 6f 20 64 ese.sections.as.invariant...To.d
f64c0 6f 20 74 68 69 73 2c 20 61 64 64 20 74 68 65 69 72 20 74 69 74 6c 65 73 20 74 6f 20 74 68 65 0a o.this,.add.their.titles.to.the.
f64e0 6c 69 73 74 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 74 68 list.of.Invariant.Sections.in.th
f6500 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 27 73 20 6c 69 63 65 6e 73 65 20 6e 6f 74 e.Modified.Version's.license.not
f6520 69 63 65 2e 0a 54 68 65 73 65 20 74 69 74 6c 65 73 20 6d 75 73 74 20 62 65 20 64 69 73 74 69 6e ice..These.titles.must.be.distin
f6540 63 74 20 66 72 6f 6d 20 61 6e 79 20 6f 74 68 65 72 20 73 65 63 74 69 6f 6e 20 74 69 74 6c 65 73 ct.from.any.other.section.titles
f6560 2e 0a 0a 59 6f 75 20 6d 61 79 20 61 64 64 20 61 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 ...You.may.add.a.section.Entitle
f6580 64 20 60 60 45 6e 64 6f 72 73 65 6d 65 6e 74 73 27 27 2c 20 70 72 6f 76 69 64 65 64 20 69 74 20 d.``Endorsements'',.provided.it.
f65a0 63 6f 6e 74 61 69 6e 73 0a 6e 6f 74 68 69 6e 67 20 62 75 74 20 65 6e 64 6f 72 73 65 6d 65 6e 74 contains.nothing.but.endorsement
f65c0 73 20 6f 66 20 79 6f 75 72 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 62 79 20 76 61 s.of.your.Modified.Version.by.va
f65e0 72 69 6f 75 73 0a 70 61 72 74 69 65 73 2d 2d 2d 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 73 74 61 rious.parties---for.example,.sta
f6600 74 65 6d 65 6e 74 73 20 6f 66 20 70 65 65 72 20 72 65 76 69 65 77 20 6f 72 20 74 68 61 74 20 74 tements.of.peer.review.or.that.t
f6620 68 65 20 74 65 78 74 20 68 61 73 0a 62 65 65 6e 20 61 70 70 72 6f 76 65 64 20 62 79 20 61 6e 20 he.text.has.been.approved.by.an.
f6640 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 20 61 73 20 74 68 65 20 61 75 74 68 6f 72 69 74 61 74 69 76 organization.as.the.authoritativ
f6660 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 0a 73 74 61 6e 64 61 72 64 2e 0a 0a 59 6f 75 e.definition.of.a.standard...You
f6680 20 6d 61 79 20 61 64 64 20 61 20 70 61 73 73 61 67 65 20 6f 66 20 75 70 20 74 6f 20 66 69 76 65 .may.add.a.passage.of.up.to.five
f66a0 20 77 6f 72 64 73 20 61 73 20 61 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 2c 20 61 6e .words.as.a.Front-Cover.Text,.an
f66c0 64 20 61 0a 70 61 73 73 61 67 65 20 6f 66 20 75 70 20 74 6f 20 32 35 20 77 6f 72 64 73 20 61 73 d.a.passage.of.up.to.25.words.as
f66e0 20 61 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 2c 20 74 6f 20 74 68 65 20 65 6e 64 20 6f .a.Back-Cover.Text,.to.the.end.o
f6700 66 20 74 68 65 20 6c 69 73 74 0a 6f 66 20 43 6f 76 65 72 20 54 65 78 74 73 20 69 6e 20 74 68 65 f.the.list.of.Cover.Texts.in.the
f6720 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 20 20 4f 6e 6c 79 20 6f 6e 65 20 70 61 73 .Modified.Version...Only.one.pas
f6740 73 61 67 65 20 6f 66 0a 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 20 61 6e 64 20 6f 6e 65 sage.of.Front-Cover.Text.and.one
f6760 20 6f 66 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 20 6d 61 79 20 62 65 20 61 64 64 65 64 .of.Back-Cover.Text.may.be.added
f6780 20 62 79 20 28 6f 72 0a 74 68 72 6f 75 67 68 20 61 72 72 61 6e 67 65 6d 65 6e 74 73 20 6d 61 64 .by.(or.through.arrangements.mad
f67a0 65 20 62 79 29 20 61 6e 79 20 6f 6e 65 20 65 6e 74 69 74 79 2e 20 20 49 66 20 74 68 65 20 44 6f e.by).any.one.entity...If.the.Do
f67c0 63 75 6d 65 6e 74 20 61 6c 72 65 61 64 79 0a 69 6e 63 6c 75 64 65 73 20 61 20 63 6f 76 65 72 20 cument.already.includes.a.cover.
f67e0 74 65 78 74 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 63 6f 76 65 72 2c 20 70 72 65 76 69 6f 75 text.for.the.same.cover,.previou
f6800 73 6c 79 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 6f 72 0a 62 79 20 61 72 72 61 6e 67 65 6d 65 sly.added.by.you.or.by.arrangeme
f6820 6e 74 20 6d 61 64 65 20 62 79 20 74 68 65 20 73 61 6d 65 20 65 6e 74 69 74 79 20 79 6f 75 20 61 nt.made.by.the.same.entity.you.a
f6840 72 65 20 61 63 74 69 6e 67 20 6f 6e 20 62 65 68 61 6c 66 20 6f 66 2c 0a 79 6f 75 20 6d 61 79 20 re.acting.on.behalf.of,.you.may.
f6860 6e 6f 74 20 61 64 64 20 61 6e 6f 74 68 65 72 3b 20 62 75 74 20 79 6f 75 20 6d 61 79 20 72 65 70 not.add.another;.but.you.may.rep
f6880 6c 61 63 65 20 74 68 65 20 6f 6c 64 20 6f 6e 65 2c 20 6f 6e 20 65 78 70 6c 69 63 69 74 0a 70 65 lace.the.old.one,.on.explicit.pe
f68a0 72 6d 69 73 73 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 75 62 6c 69 rmission.from.the.previous.publi
f68c0 73 68 65 72 20 74 68 61 74 20 61 64 64 65 64 20 74 68 65 20 6f 6c 64 20 6f 6e 65 2e 0a 0a 54 68 sher.that.added.the.old.one...Th
f68e0 65 20 61 75 74 68 6f 72 28 73 29 20 61 6e 64 20 70 75 62 6c 69 73 68 65 72 28 73 29 20 6f 66 20 e.author(s).and.publisher(s).of.
f6900 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 64 6f 20 6e 6f 74 20 62 79 20 74 68 69 73 20 4c 69 63 65 the.Document.do.not.by.this.Lice
f6920 6e 73 65 0a 67 69 76 65 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 75 73 65 20 74 68 65 69 72 nse.give.permission.to.use.their
f6940 20 6e 61 6d 65 73 20 66 6f 72 20 70 75 62 6c 69 63 69 74 79 20 66 6f 72 20 6f 72 20 74 6f 20 61 .names.for.publicity.for.or.to.a
f6960 73 73 65 72 74 20 6f 72 0a 69 6d 70 6c 79 20 65 6e 64 6f 72 73 65 6d 65 6e 74 20 6f 66 20 61 6e ssert.or.imply.endorsement.of.an
f6980 79 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 0a 0a 40 69 74 65 6d 0a 43 4f 4d 42 49 y.Modified.Version...@item.COMBI
f69a0 4e 49 4e 47 20 44 4f 43 55 4d 45 4e 54 53 0a 0a 59 6f 75 20 6d 61 79 20 63 6f 6d 62 69 6e 65 20 NING.DOCUMENTS..You.may.combine.
f69c0 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 77 69 74 68 20 6f 74 68 65 72 20 64 6f 63 75 6d 65 6e 74 the.Document.with.other.document
f69e0 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2c 20 75 s.released.under.this.License,.u
f6a00 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 64 65 66 69 6e 65 64 20 69 6e 20 73 65 63 74 69 6f nder.the.terms.defined.in.sectio
f6a20 6e 20 34 20 61 62 6f 76 65 20 66 6f 72 20 6d 6f 64 69 66 69 65 64 0a 76 65 72 73 69 6f 6e 73 2c n.4.above.for.modified.versions,
f6a40 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 .provided.that.you.include.in.th
f6a60 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 61 6c 6c 20 6f 66 20 74 68 65 0a 49 6e 76 61 72 69 61 e.combination.all.of.the.Invaria
f6a80 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 61 6c 6c 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e nt.Sections.of.all.of.the.origin
f6aa0 61 6c 20 64 6f 63 75 6d 65 6e 74 73 2c 20 75 6e 6d 6f 64 69 66 69 65 64 2c 20 61 6e 64 0a 6c 69 al.documents,.unmodified,.and.li
f6ac0 73 74 20 74 68 65 6d 20 61 6c 6c 20 61 73 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e st.them.all.as.Invariant.Section
f6ae0 73 20 6f 66 20 79 6f 75 72 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 20 69 6e 20 69 74 73 0a 6c s.of.your.combined.work.in.its.l
f6b00 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 20 70 72 65 73 icense.notice,.and.that.you.pres
f6b20 65 72 76 65 20 61 6c 6c 20 74 68 65 69 72 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d erve.all.their.Warranty.Disclaim
f6b40 65 72 73 2e 0a 0a 54 68 65 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 20 6e 65 65 64 20 6f 6e 6c ers...The.combined.work.need.onl
f6b60 79 20 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e y.contain.one.copy.of.this.Licen
f6b80 73 65 2c 20 61 6e 64 0a 6d 75 6c 74 69 70 6c 65 20 69 64 65 6e 74 69 63 61 6c 20 49 6e 76 61 72 se,.and.multiple.identical.Invar
f6ba0 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6d 61 79 20 62 65 20 72 65 70 6c 61 63 65 64 20 77 69 iant.Sections.may.be.replaced.wi
f6bc0 74 68 20 61 20 73 69 6e 67 6c 65 0a 63 6f 70 79 2e 20 20 49 66 20 74 68 65 72 65 20 61 72 65 20 th.a.single.copy...If.there.are.
f6be0 6d 75 6c 74 69 70 6c 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 77 69 74 68 multiple.Invariant.Sections.with
f6c00 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 62 75 74 0a 64 69 66 66 65 72 65 6e 74 20 63 6f 6e .the.same.name.but.different.con
f6c20 74 65 6e 74 73 2c 20 6d 61 6b 65 20 74 68 65 20 74 69 74 6c 65 20 6f 66 20 65 61 63 68 20 73 75 tents,.make.the.title.of.each.su
f6c40 63 68 20 73 65 63 74 69 6f 6e 20 75 6e 69 71 75 65 20 62 79 0a 61 64 64 69 6e 67 20 61 74 20 74 ch.section.unique.by.adding.at.t
f6c60 68 65 20 65 6e 64 20 6f 66 20 69 74 2c 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2c 20 74 68 he.end.of.it,.in.parentheses,.th
f6c80 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 0a 61 75 74 68 6f 72 20 6f 72 e.name.of.the.original.author.or
f6ca0 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 61 74 20 73 65 63 74 69 6f 6e 20 69 66 20 6b 6e .publisher.of.that.section.if.kn
f6cc0 6f 77 6e 2c 20 6f 72 20 65 6c 73 65 20 61 20 75 6e 69 71 75 65 20 6e 75 6d 62 65 72 2e 0a 4d 61 own,.or.else.a.unique.number..Ma
f6ce0 6b 65 20 74 68 65 20 73 61 6d 65 20 61 64 6a 75 73 74 6d 65 6e 74 20 74 6f 20 74 68 65 20 73 65 ke.the.same.adjustment.to.the.se
f6d00 63 74 69 6f 6e 20 74 69 74 6c 65 73 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 0a 49 6e 76 61 ction.titles.in.the.list.of.Inva
f6d20 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c 69 63 65 6e 73 65 20 6e 6f riant.Sections.in.the.license.no
f6d40 74 69 63 65 20 6f 66 20 74 68 65 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 2e 0a 0a 49 6e 20 74 tice.of.the.combined.work...In.t
f6d60 68 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2c 20 79 6f 75 20 6d 75 73 74 20 63 6f 6d 62 69 6e 65 he.combination,.you.must.combine
f6d80 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 20 60 60 48 69 73 74 6f 72 79 .any.sections.Entitled.``History
f6da0 27 27 0a 69 6e 20 74 68 65 20 76 61 72 69 6f 75 73 20 6f 72 69 67 69 6e 61 6c 20 64 6f 63 75 6d ''.in.the.various.original.docum
f6dc0 65 6e 74 73 2c 20 66 6f 72 6d 69 6e 67 20 6f 6e 65 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c ents,.forming.one.section.Entitl
f6de0 65 64 0a 60 60 48 69 73 74 6f 72 79 27 27 3b 20 6c 69 6b 65 77 69 73 65 20 63 6f 6d 62 69 6e 65 ed.``History'';.likewise.combine
f6e00 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 20 60 60 41 63 6b 6e 6f 77 6c .any.sections.Entitled.``Acknowl
f6e20 65 64 67 65 6d 65 6e 74 73 27 27 2c 0a 61 6e 64 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 20 45 6e edgements'',.and.any.sections.En
f6e40 74 69 74 6c 65 64 20 60 60 44 65 64 69 63 61 74 69 6f 6e 73 27 27 2e 20 20 59 6f 75 20 6d 75 73 titled.``Dedications''...You.mus
f6e60 74 20 64 65 6c 65 74 65 20 61 6c 6c 0a 73 65 63 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 20 60 t.delete.all.sections.Entitled.`
f6e80 60 45 6e 64 6f 72 73 65 6d 65 6e 74 73 2e 27 27 0a 0a 40 69 74 65 6d 0a 43 4f 4c 4c 45 43 54 49 `Endorsements.''..@item.COLLECTI
f6ea0 4f 4e 53 20 4f 46 20 44 4f 43 55 4d 45 4e 54 53 0a 0a 59 6f 75 20 6d 61 79 20 6d 61 6b 65 20 61 ONS.OF.DOCUMENTS..You.may.make.a
f6ec0 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 74 68 65 20 44 6f .collection.consisting.of.the.Do
f6ee0 63 75 6d 65 6e 74 20 61 6e 64 20 6f 74 68 65 72 20 64 6f 63 75 6d 65 6e 74 73 0a 72 65 6c 65 61 cument.and.other.documents.relea
f6f00 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 72 65 70 6c sed.under.this.License,.and.repl
f6f20 61 63 65 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 69 65 73 20 6f 66 20 74 68 69 ace.the.individual.copies.of.thi
f6f40 73 0a 4c 69 63 65 6e 73 65 20 69 6e 20 74 68 65 20 76 61 72 69 6f 75 73 20 64 6f 63 75 6d 65 6e s.License.in.the.various.documen
f6f60 74 73 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 63 6f 70 79 20 74 68 61 74 20 69 73 20 69 6e ts.with.a.single.copy.that.is.in
f6f80 63 6c 75 64 65 64 20 69 6e 0a 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 70 72 6f 76 69 64 cluded.in.the.collection,.provid
f6fa0 65 64 20 74 68 61 74 20 79 6f 75 20 66 6f 6c 6c 6f 77 20 74 68 65 20 72 75 6c 65 73 20 6f 66 20 ed.that.you.follow.the.rules.of.
f6fc0 74 68 69 73 20 4c 69 63 65 6e 73 65 20 66 6f 72 0a 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e this.License.for.verbatim.copyin
f6fe0 67 20 6f 66 20 65 61 63 68 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 73 20 69 6e 20 61 6c g.of.each.of.the.documents.in.al
f7000 6c 20 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 2e 0a 0a 59 6f 75 20 6d 61 79 20 65 78 74 72 61 l.other.respects...You.may.extra
f7020 63 74 20 61 20 73 69 6e 67 6c 65 20 64 6f 63 75 6d 65 6e 74 20 66 72 6f 6d 20 73 75 63 68 20 61 ct.a.single.document.from.such.a
f7040 20 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 0a 69 74 20 69 .collection,.and.distribute.it.i
f7060 6e 64 69 76 69 64 75 61 6c 6c 79 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 ndividually.under.this.License,.
f7080 70 72 6f 76 69 64 65 64 20 79 6f 75 20 69 6e 73 65 72 74 20 61 20 63 6f 70 79 20 6f 66 20 74 68 provided.you.insert.a.copy.of.th
f70a0 69 73 0a 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 65 78 74 72 61 63 74 65 64 20 64 6f is.License.into.the.extracted.do
f70c0 63 75 6d 65 6e 74 2c 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 cument,.and.follow.this.License.
f70e0 69 6e 20 61 6c 6c 0a 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 20 72 65 67 61 72 64 69 6e 67 20 in.all.other.respects.regarding.
f7100 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 6f 66 20 74 68 61 74 20 64 6f 63 75 6d 65 6e verbatim.copying.of.that.documen
f7120 74 2e 0a 0a 40 69 74 65 6d 0a 41 47 47 52 45 47 41 54 49 4f 4e 20 57 49 54 48 20 49 4e 44 45 50 t...@item.AGGREGATION.WITH.INDEP
f7140 45 4e 44 45 4e 54 20 57 4f 52 4b 53 0a 0a 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 74 ENDENT.WORKS..A.compilation.of.t
f7160 68 65 20 44 6f 63 75 6d 65 6e 74 20 6f 72 20 69 74 73 20 64 65 72 69 76 61 74 69 76 65 73 20 77 he.Document.or.its.derivatives.w
f7180 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 0a 61 6e 64 20 69 6e 64 65 70 65 6e 64 65 ith.other.separate.and.independe
f71a0 6e 74 20 64 6f 63 75 6d 65 6e 74 73 20 6f 72 20 77 6f 72 6b 73 2c 20 69 6e 20 6f 72 20 6f 6e 20 nt.documents.or.works,.in.or.on.
f71c0 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 0a 64 69 73 74 72 69 62 a.volume.of.a.storage.or.distrib
f71e0 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 20 60 60 61 67 67 ution.medium,.is.called.an.``agg
f7200 72 65 67 61 74 65 27 27 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 72 65 73 75 6c 74 regate''.if.the.copyright.result
f7220 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 69 73 20 6e 6f 74 20 ing.from.the.compilation.is.not.
f7240 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 6c 65 67 61 6c 20 72 69 67 68 74 73 0a 6f used.to.limit.the.legal.rights.o
f7260 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 65 72 73 20 62 65 79 6f 6e 64 f.the.compilation's.users.beyond
f7280 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 6f 72 6b 73 20 70 65 72 6d 69 .what.the.individual.works.permi
f72a0 74 2e 0a 57 68 65 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 69 6e 63 6c 75 64 65 64 t..When.the.Document.is.included
f72c0 20 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 2c 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 64 .in.an.aggregate,.this.License.d
f72e0 6f 65 73 20 6e 6f 74 0a 61 70 70 6c 79 20 74 6f 20 74 68 65 20 6f 74 68 65 72 20 77 6f 72 6b 73 oes.not.apply.to.the.other.works
f7300 20 69 6e 20 74 68 65 20 61 67 67 72 65 67 61 74 65 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 .in.the.aggregate.which.are.not.
f7320 74 68 65 6d 73 65 6c 76 65 73 0a 64 65 72 69 76 61 74 69 76 65 20 77 6f 72 6b 73 20 6f 66 20 74 themselves.derivative.works.of.t
f7340 68 65 20 44 6f 63 75 6d 65 6e 74 2e 0a 0a 49 66 20 74 68 65 20 43 6f 76 65 72 20 54 65 78 74 20 he.Document...If.the.Cover.Text.
f7360 72 65 71 75 69 72 65 6d 65 6e 74 20 6f 66 20 73 65 63 74 69 6f 6e 20 33 20 69 73 20 61 70 70 6c requirement.of.section.3.is.appl
f7380 69 63 61 62 6c 65 20 74 6f 20 74 68 65 73 65 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 44 6f icable.to.these.copies.of.the.Do
f73a0 63 75 6d 65 6e 74 2c 20 74 68 65 6e 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 cument,.then.if.the.Document.is.
f73c0 6c 65 73 73 20 74 68 61 6e 20 6f 6e 65 20 68 61 6c 66 20 6f 66 0a 74 68 65 20 65 6e 74 69 72 65 less.than.one.half.of.the.entire
f73e0 20 61 67 67 72 65 67 61 74 65 2c 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 27 73 20 43 6f 76 65 72 .aggregate,.the.Document's.Cover
f7400 20 54 65 78 74 73 20 6d 61 79 20 62 65 20 70 6c 61 63 65 64 20 6f 6e 0a 63 6f 76 65 72 73 20 74 .Texts.may.be.placed.on.covers.t
f7420 68 61 74 20 62 72 61 63 6b 65 74 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 77 69 74 68 69 6e 20 hat.bracket.the.Document.within.
f7440 74 68 65 20 61 67 67 72 65 67 61 74 65 2c 20 6f 72 20 74 68 65 0a 65 6c 65 63 74 72 6f 6e 69 63 the.aggregate,.or.the.electronic
f7460 20 65 71 75 69 76 61 6c 65 6e 74 20 6f 66 20 63 6f 76 65 72 73 20 69 66 20 74 68 65 20 44 6f 63 .equivalent.of.covers.if.the.Doc
f7480 75 6d 65 6e 74 20 69 73 20 69 6e 20 65 6c 65 63 74 72 6f 6e 69 63 20 66 6f 72 6d 2e 0a 4f 74 68 ument.is.in.electronic.form..Oth
f74a0 65 72 77 69 73 65 20 74 68 65 79 20 6d 75 73 74 20 61 70 70 65 61 72 20 6f 6e 20 70 72 69 6e 74 erwise.they.must.appear.on.print
f74c0 65 64 20 63 6f 76 65 72 73 20 74 68 61 74 20 62 72 61 63 6b 65 74 20 74 68 65 20 77 68 6f 6c 65 ed.covers.that.bracket.the.whole
f74e0 0a 61 67 67 72 65 67 61 74 65 2e 0a 0a 40 69 74 65 6d 0a 54 52 41 4e 53 4c 41 54 49 4f 4e 0a 0a .aggregate...@item.TRANSLATION..
f7500 54 72 61 6e 73 6c 61 74 69 6f 6e 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 61 20 6b 69 6e 64 Translation.is.considered.a.kind
f7520 20 6f 66 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 73 6f 20 79 6f 75 20 6d 61 79 0a 64 69 73 .of.modification,.so.you.may.dis
f7540 74 72 69 62 75 74 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 44 6f 63 75 tribute.translations.of.the.Docu
f7560 6d 65 6e 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 ment.under.the.terms.of.section.
f7580 34 2e 0a 52 65 70 6c 61 63 69 6e 67 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 4..Replacing.Invariant.Sections.
f75a0 77 69 74 68 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 72 65 71 75 69 72 65 73 20 73 70 65 63 69 with.translations.requires.speci
f75c0 61 6c 0a 70 65 72 6d 69 73 73 69 6f 6e 20 66 72 6f 6d 20 74 68 65 69 72 20 63 6f 70 79 72 69 67 al.permission.from.their.copyrig
f75e0 68 74 20 68 6f 6c 64 65 72 73 2c 20 62 75 74 20 79 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64 65 0a ht.holders,.but.you.may.include.
f7600 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 6f 66 20 73 6f 6d 65 20 6f 72 20 61 6c 6c 20 49 6e 76 61 translations.of.some.or.all.Inva
f7620 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 riant.Sections.in.addition.to.th
f7640 65 0a 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 73 65 20 49 6e 76 e.original.versions.of.these.Inv
f7660 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2e 20 20 59 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64 ariant.Sections...You.may.includ
f7680 65 20 61 0a 74 72 61 6e 73 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c e.a.translation.of.this.License,
f76a0 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 73 20 69 6e 20 .and.all.the.license.notices.in.
f76c0 74 68 65 0a 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 61 6e 79 20 57 61 72 72 61 6e 74 79 20 44 the.Document,.and.any.Warranty.D
f76e0 69 73 63 6c 61 69 6d 65 72 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c isclaimers,.provided.that.you.al
f7700 73 6f 20 69 6e 63 6c 75 64 65 0a 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 45 6e 67 6c 69 73 68 20 so.include.the.original.English.
f7720 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 74 68 65 20 version.of.this.License.and.the.
f7740 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 73 0a 6f 66 20 74 68 6f 73 65 20 6e 6f 74 69 63 original.versions.of.those.notic
f7760 65 73 20 61 6e 64 20 64 69 73 63 6c 61 69 6d 65 72 73 2e 20 20 49 6e 20 63 61 73 65 20 6f 66 20 es.and.disclaimers...In.case.of.
f7780 61 20 64 69 73 61 67 72 65 65 6d 65 6e 74 20 62 65 74 77 65 65 6e 0a 74 68 65 20 74 72 61 6e 73 a.disagreement.between.the.trans
f77a0 6c 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 lation.and.the.original.version.
f77c0 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 72 20 61 20 6e 6f 74 69 63 65 0a 6f 72 20 64 of.this.License.or.a.notice.or.d
f77e0 69 73 63 6c 61 69 6d 65 72 2c 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 isclaimer,.the.original.version.
f7800 77 69 6c 6c 20 70 72 65 76 61 69 6c 2e 0a 0a 49 66 20 61 20 73 65 63 74 69 6f 6e 20 69 6e 20 74 will.prevail...If.a.section.in.t
f7820 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 45 6e 74 69 74 6c 65 64 20 60 60 41 63 6b 6e 6f 77 he.Document.is.Entitled.``Acknow
f7840 6c 65 64 67 65 6d 65 6e 74 73 27 27 2c 0a 60 60 44 65 64 69 63 61 74 69 6f 6e 73 27 27 2c 20 6f ledgements'',.``Dedications'',.o
f7860 72 20 60 60 48 69 73 74 6f 72 79 27 27 2c 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 28 r.``History'',.the.requirement.(
f7880 73 65 63 74 69 6f 6e 20 34 29 20 74 6f 20 50 72 65 73 65 72 76 65 0a 69 74 73 20 54 69 74 6c 65 section.4).to.Preserve.its.Title
f78a0 20 28 73 65 63 74 69 6f 6e 20 31 29 20 77 69 6c 6c 20 74 79 70 69 63 61 6c 6c 79 20 72 65 71 75 .(section.1).will.typically.requ
f78c0 69 72 65 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 61 63 74 75 61 6c 0a 74 69 74 6c 65 2e 0a 0a ire.changing.the.actual.title...
f78e0 40 69 74 65 6d 0a 54 45 52 4d 49 4e 41 54 49 4f 4e 0a 0a 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 @item.TERMINATION..You.may.not.c
f7900 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 6f 72 20 64 69 73 74 opy,.modify,.sublicense,.or.dist
f7920 72 69 62 75 74 65 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 65 78 63 65 70 74 0a 61 73 20 65 78 ribute.the.Document.except.as.ex
f7940 70 72 65 73 73 6c 79 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 75 6e 64 65 72 20 74 68 69 73 20 pressly.provided.for.under.this.
f7960 4c 69 63 65 6e 73 65 2e 20 20 41 6e 79 20 6f 74 68 65 72 20 61 74 74 65 6d 70 74 20 74 6f 0a 63 License...Any.other.attempt.to.c
f7980 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 73 75 62 6c 69 63 65 6e 73 65 20 6f 72 20 64 69 73 74 72 opy,.modify,.sublicense.or.distr
f79a0 69 62 75 74 65 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 ibute.the.Document.is.void,.and.
f79c0 77 69 6c 6c 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 will.automatically.terminate.you
f79e0 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 48 6f r.rights.under.this.License...Ho
f7a00 77 65 76 65 72 2c 0a 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 wever,.parties.who.have.received
f7a20 20 63 6f 70 69 65 73 2c 20 6f 72 20 72 69 67 68 74 73 2c 20 66 72 6f 6d 20 79 6f 75 20 75 6e 64 .copies,.or.rights,.from.you.und
f7a40 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 6e 6f 74 20 68 61 76 65 20 74 68 er.this.License.will.not.have.th
f7a60 65 69 72 20 6c 69 63 65 6e 73 65 73 20 74 65 72 6d 69 6e 61 74 65 64 20 73 6f 20 6c 6f 6e 67 20 eir.licenses.terminated.so.long.
f7a80 61 73 20 73 75 63 68 0a 70 61 72 74 69 65 73 20 72 65 6d 61 69 6e 20 69 6e 20 66 75 6c 6c 20 63 as.such.parties.remain.in.full.c
f7aa0 6f 6d 70 6c 69 61 6e 63 65 2e 0a 0a 40 69 74 65 6d 0a 46 55 54 55 52 45 20 52 45 56 49 53 49 4f ompliance...@item.FUTURE.REVISIO
f7ac0 4e 53 20 4f 46 20 54 48 49 53 20 4c 49 43 45 4e 53 45 0a 0a 54 68 65 20 46 72 65 65 20 53 6f 66 NS.OF.THIS.LICENSE..The.Free.Sof
f7ae0 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 6e 65 77 tware.Foundation.may.publish.new
f7b00 2c 20 72 65 76 69 73 65 64 20 76 65 72 73 69 6f 6e 73 0a 6f 66 20 74 68 65 20 47 4e 55 20 46 72 ,.revised.versions.of.the.GNU.Fr
f7b20 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 69 ee.Documentation.License.from.ti
f7b40 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 0a 76 65 72 73 69 6f 6e 73 20 77 me.to.time...Such.new.versions.w
f7b60 69 6c 6c 20 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20 74 68 65 20 ill.be.similar.in.spirit.to.the.
f7b80 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 0a 64 69 66 66 65 72 20 present.version,.but.may.differ.
f7ba0 69 6e 20 64 65 74 61 69 6c 20 74 6f 20 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f 62 6c 65 6d in.detail.to.address.new.problem
f7bc0 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 20 20 53 65 65 0a 40 75 72 65 66 7b 68 74 74 70 3a 2f s.or.concerns...See.@uref{http:/
f7be0 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 63 6f 70 79 6c 65 66 74 2f 7d 2e 0a 0a 45 61 63 68 20 76 /www.gnu.org/copyleft/}...Each.v
f7c00 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 20 69 73 20 67 69 76 65 6e 20 61 ersion.of.the.License.is.given.a
f7c20 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 0a .distinguishing.version.number..
f7c40 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 If.the.Document.specifies.that.a
f7c60 20 70 61 72 74 69 63 75 6c 61 72 20 6e 75 6d 62 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 .particular.numbered.version.of.
f7c80 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 60 60 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 this.License.``or.any.later.vers
f7ca0 69 6f 6e 27 27 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 74 68 ion''.applies.to.it,.you.have.th
f7cc0 65 20 6f 70 74 69 6f 6e 20 6f 66 0a 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 e.option.of.following.the.terms.
f7ce0 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 73 70 and.conditions.either.of.that.sp
f7d00 65 63 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 72 0a 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 ecified.version.or.of.any.later.
f7d20 76 65 72 73 69 6f 6e 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 70 75 62 6c 69 73 68 65 64 20 version.that.has.been.published.
f7d40 28 6e 6f 74 20 61 73 20 61 20 64 72 61 66 74 29 20 62 79 20 74 68 65 0a 46 72 65 65 20 53 6f 66 (not.as.a.draft).by.the.Free.Sof
f7d60 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 44 6f 63 75 6d 65 tware.Foundation...If.the.Docume
f7d80 6e 74 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 0a 6e 75 nt.does.not.specify.a.version.nu
f7da0 6d 62 65 72 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 6d 61 79 20 63 68 mber.of.this.License,.you.may.ch
f7dc0 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 72 20 70 75 62 6c 69 73 68 65 64 20 oose.any.version.ever.published.
f7de0 28 6e 6f 74 0a 61 73 20 61 20 64 72 61 66 74 29 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 (not.as.a.draft).by.the.Free.Sof
f7e00 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 40 65 6e 64 20 65 6e 75 6d 65 72 61 74 65 tware.Foundation..@end.enumerate
f7e20 0a 0a 40 70 61 67 65 0a 40 73 65 63 74 69 6f 6e 20 41 44 44 45 4e 44 55 4d 3a 20 48 6f 77 20 74 ..@page.@section.ADDENDUM:.How.t
f7e40 6f 20 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 79 6f 75 72 20 64 6f 63 75 o.use.this.License.for.your.docu
f7e60 6d 65 6e 74 73 0a 0a 54 6f 20 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 61 20 ments..To.use.this.License.in.a.
f7e80 64 6f 63 75 6d 65 6e 74 20 79 6f 75 20 68 61 76 65 20 77 72 69 74 74 65 6e 2c 20 69 6e 63 6c 75 document.you.have.written,.inclu
f7ea0 64 65 20 61 20 63 6f 70 79 20 6f 66 0a 74 68 65 20 4c 69 63 65 6e 73 65 20 69 6e 20 74 68 65 20 de.a.copy.of.the.License.in.the.
f7ec0 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 70 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 document.and.put.the.following.c
f7ee0 6f 70 79 72 69 67 68 74 20 61 6e 64 0a 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 73 20 6a 75 73 opyright.and.license.notices.jus
f7f00 74 20 61 66 74 65 72 20 74 68 65 20 74 69 74 6c 65 20 70 61 67 65 3a 0a 0a 40 73 6d 61 6c 6c 65 t.after.the.title.page:..@smalle
f7f20 78 61 6d 70 6c 65 0a 40 67 72 6f 75 70 0a 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 20 40 xample.@group...Copyright.(C)..@
f7f40 76 61 72 7b 79 65 61 72 7d 20 20 40 76 61 72 7b 79 6f 75 72 20 6e 61 6d 65 7d 2e 0a 20 20 50 65 var{year}..@var{your.name}....Pe
f7f60 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 rmission.is.granted.to.copy,.dis
f7f80 74 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 64 6f 63 75 6d tribute.and/or.modify.this.docum
f7fa0 65 6e 74 0a 20 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 ent...under.the.terms.of.the.GNU
f7fc0 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 20 56 65 72 .Free.Documentation.License,.Ver
f7fe0 73 69 6f 6e 20 31 2e 32 0a 20 20 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 sion.1.2...or.any.later.version.
f8000 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 published.by.the.Free.Software.F
f8020 6f 75 6e 64 61 74 69 6f 6e 3b 0a 20 20 77 69 74 68 20 6e 6f 20 49 6e 76 61 72 69 61 6e 74 20 53 oundation;...with.no.Invariant.S
f8040 65 63 74 69 6f 6e 73 2c 20 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 2c 20 61 ections,.no.Front-Cover.Texts,.a
f8060 6e 64 20 6e 6f 20 42 61 63 6b 2d 43 6f 76 65 72 0a 20 20 54 65 78 74 73 2e 20 20 41 20 63 6f 70 nd.no.Back-Cover...Texts...A.cop
f8080 79 20 6f 66 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 y.of.the.license.is.included.in.
f80a0 74 68 65 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 64 20 60 60 47 4e 55 0a 20 20 46 72 65 the.section.entitled.``GNU...Fre
f80c0 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 27 27 2e 0a 40 65 6e 64 20 e.Documentation.License''..@end.
f80e0 67 72 6f 75 70 0a 40 65 6e 64 20 73 6d 61 6c 6c 65 78 61 6d 70 6c 65 0a 0a 49 66 20 79 6f 75 20 group.@end.smallexample..If.you.
f8100 68 61 76 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 46 72 6f 6e 74 2d 43 have.Invariant.Sections,.Front-C
f8120 6f 76 65 72 20 54 65 78 74 73 20 61 6e 64 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 2c over.Texts.and.Back-Cover.Texts,
f8140 0a 72 65 70 6c 61 63 65 20 74 68 65 20 60 60 77 69 74 68 2e 2e 2e 54 65 78 74 73 2e 27 27 20 6c .replace.the.``with...Texts.''.l
f8160 69 6e 65 20 77 69 74 68 20 74 68 69 73 3a 0a 0a 40 73 6d 61 6c 6c 65 78 61 6d 70 6c 65 0a 40 67 ine.with.this:..@smallexample.@g
f8180 72 6f 75 70 0a 20 20 20 20 77 69 74 68 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 roup.....with.the.Invariant.Sect
f81a0 69 6f 6e 73 20 62 65 69 6e 67 20 40 76 61 72 7b 6c 69 73 74 20 74 68 65 69 72 20 74 69 74 6c 65 ions.being.@var{list.their.title
f81c0 73 7d 2c 20 77 69 74 68 0a 20 20 20 20 74 68 65 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 s},.with.....the.Front-Cover.Tex
f81e0 74 73 20 62 65 69 6e 67 20 40 76 61 72 7b 6c 69 73 74 7d 2c 20 61 6e 64 20 77 69 74 68 20 74 68 ts.being.@var{list},.and.with.th
f8200 65 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 0a 20 20 20 20 62 65 69 6e 67 20 40 76 61 e.Back-Cover.Texts.....being.@va
f8220 72 7b 6c 69 73 74 7d 2e 0a 40 65 6e 64 20 67 72 6f 75 70 0a 40 65 6e 64 20 73 6d 61 6c 6c 65 78 r{list}..@end.group.@end.smallex
f8240 61 6d 70 6c 65 0a 0a 49 66 20 79 6f 75 20 68 61 76 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 ample..If.you.have.Invariant.Sec
f8260 74 69 6f 6e 73 20 77 69 74 68 6f 75 74 20 43 6f 76 65 72 20 54 65 78 74 73 2c 20 6f 72 20 73 6f tions.without.Cover.Texts,.or.so
f8280 6d 65 20 6f 74 68 65 72 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 68 72 65 me.other.combination.of.the.thre
f82a0 65 2c 20 6d 65 72 67 65 20 74 68 6f 73 65 20 74 77 6f 20 61 6c 74 65 72 6e 61 74 69 76 65 73 20 e,.merge.those.two.alternatives.
f82c0 74 6f 20 73 75 69 74 20 74 68 65 0a 73 69 74 75 61 74 69 6f 6e 2e 0a 0a 49 66 20 79 6f 75 72 20 to.suit.the.situation...If.your.
f82e0 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 6e 74 72 69 76 69 61 6c 20 65 78 61 document.contains.nontrivial.exa
f8300 6d 70 6c 65 73 20 6f 66 20 70 72 6f 67 72 61 6d 20 63 6f 64 65 2c 20 77 65 0a 72 65 63 6f 6d 6d mples.of.program.code,.we.recomm
f8320 65 6e 64 20 72 65 6c 65 61 73 69 6e 67 20 74 68 65 73 65 20 65 78 61 6d 70 6c 65 73 20 69 6e 20 end.releasing.these.examples.in.
f8340 70 61 72 61 6c 6c 65 6c 20 75 6e 64 65 72 20 79 6f 75 72 20 63 68 6f 69 63 65 20 6f 66 0a 66 72 parallel.under.your.choice.of.fr
f8360 65 65 20 73 6f 66 74 77 61 72 65 20 6c 69 63 65 6e 73 65 2c 20 73 75 63 68 20 61 73 20 74 68 65 ee.software.license,.such.as.the
f8380 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 74 6f 20 .GNU.General.Public.License,.to.
f83a0 70 65 72 6d 69 74 20 74 68 65 69 72 20 75 73 65 20 69 6e 20 66 72 65 65 20 73 6f 66 74 77 61 72 permit.their.use.in.free.softwar
f83c0 65 2e 0a 0a 40 63 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 40 63 20 69 73 70 65 6c e...@c.Local.Variables:.@c.ispel
f83e0 6c 2d 6c 6f 63 61 6c 2d 70 64 69 63 74 3a 20 22 69 73 70 65 6c 6c 2d 64 69 63 74 22 0a 40 63 20 l-local-pdict:."ispell-dict".@c.
f8400 45 6e 64 3a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 End:............................
f8420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f84a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f84c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f84e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f85a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f85c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f85e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8600 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 65 6d 6d 73 2e 74 65 78 69 6e 66 6f 00 00 00 00 00 00 00 00 emms-24/doc/emms.texinfo........
f8620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
f8680 30 34 30 35 37 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 30 31 37 00 20 30 00 00 00 0405731.00000000000.014017..0...
f86a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f86c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f86e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
f8720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
f8740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f87a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f87c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f87e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8800 5c 69 6e 70 75 74 20 74 65 78 69 6e 66 6f 20 20 20 40 63 20 2d 2a 2d 74 65 78 69 6e 66 6f 2d 2a \input.texinfo...@c.-*-texinfo-*
f8820 2d 0a 40 63 20 25 2a 2a 73 74 61 72 74 20 6f 66 20 68 65 61 64 65 72 0a 40 73 65 74 66 69 6c 65 -.@c.%**start.of.header.@setfile
f8840 6e 61 6d 65 20 65 6d 6d 73 2e 69 6e 66 6f 0a 40 73 65 74 74 69 74 6c 65 20 54 68 65 20 45 6d 6d name.emms.info.@settitle.The.Emm
f8860 73 20 4d 61 6e 75 61 6c 0a 40 63 20 25 2a 2a 65 6e 64 20 6f 66 20 68 65 61 64 65 72 0a 0a 40 63 s.Manual.@c.%**end.of.header..@c
f8880 20 48 69 73 74 6f 72 79 3a 20 54 68 65 20 45 6d 6d 73 20 6d 61 6e 75 61 6c 20 77 61 73 20 61 6c .History:.The.Emms.manual.was.al
f88a0 6d 6f 73 74 20 65 6e 74 69 72 65 6c 79 20 72 65 77 72 69 74 74 65 6e 20 66 6f 72 20 74 68 65 0a most.entirely.rewritten.for.the.
f88c0 40 63 20 72 65 6c 65 61 73 65 20 6f 66 20 45 6d 6d 73 20 76 65 72 73 69 6f 6e 20 32 2e 0a 0a 0a @c.release.of.Emms.version.2....
f88e0 40 64 69 72 63 61 74 65 67 6f 72 79 20 45 6d 61 63 73 0a 40 64 69 72 65 6e 74 72 79 0a 2a 20 45 @dircategory.Emacs.@direntry.*.E
f8900 6d 6d 73 3a 20 28 65 6d 6d 73 29 2e 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 45 6d 61 63 73 mms:.(emms)............The.Emacs
f8920 20 4d 75 6c 74 69 6d 65 64 69 61 20 53 79 73 74 65 6d 0a 40 65 6e 64 20 64 69 72 65 6e 74 72 79 .Multimedia.System.@end.direntry
f8940 0a 0a 40 63 6f 70 79 69 6e 67 0a 20 40 63 6f 70 79 72 69 67 68 74 7b 7d 20 32 30 30 34 2c 20 32 ..@copying..@copyright{}.2004,.2
f8960 30 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 2c 20 32 30 31 005,.2006,.2007,.2008,.2009,.201
f8980 30 2c 20 32 30 31 31 2c 20 32 30 31 34 2c 0a 20 20 20 32 30 31 35 2c 20 32 30 31 36 2c 20 32 30 0,.2011,.2014,....2015,.2016,.20
f89a0 32 30 2c 20 32 30 32 31 2c 20 32 30 32 32 2c 20 32 30 32 33 2c 20 32 30 32 34 2c 20 32 30 32 35 20,.2021,.2022,.2023,.2024,.2025
f89c0 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 20 20 20 49 6e .Free.Software.Foundation,....In
f89e0 63 2e 0a 40 71 75 6f 74 61 74 69 6f 6e 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e c..@quotation.Permission.is.gran
f8a00 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d ted.to.copy,.distribute.and/or.m
f8a20 6f 64 69 66 79 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 0a 75 6e 64 65 72 20 74 68 65 20 74 65 odify.this.document.under.the.te
f8a40 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f rms.of.the.GNU.Free.Documentatio
f8a60 6e 20 4c 69 63 65 6e 73 65 2c 20 56 65 72 73 69 6f 6e 20 31 2e 31 20 6f 72 0a 61 6e 79 20 6c 61 n.License,.Version.1.1.or.any.la
f8a80 74 65 72 20 76 65 72 73 69 6f 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 ter.version.published.by.the.Fre
f8aa0 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 77 69 74 68 20 6e 6f 0a 49 e.Software.Foundation;.with.no.I
f8ac0 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 nvariant.Sections,.no.Front-Cove
f8ae0 72 20 54 65 78 74 73 2c 20 61 6e 64 20 6e 6f 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 r.Texts,.and.no.Back-Cover.Texts
f8b00 2e 20 41 0a 63 6f 70 79 20 6f 66 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e 63 6c 75 ..A.copy.of.the.license.is.inclu
f8b20 64 65 64 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 64 20 22 47 4e 55 ded.in.the.section.entitled."GNU
f8b40 20 46 72 65 65 0a 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 22 2e 0a 40 65 .Free.Documentation.License"..@e
f8b60 6e 64 20 71 75 6f 74 61 74 69 6f 6e 0a 40 65 6e 64 20 63 6f 70 79 69 6e 67 0a 0a 40 63 20 46 6f nd.quotation.@end.copying..@c.Fo
f8b80 72 20 70 72 69 6e 74 65 64 20 6d 61 74 65 72 69 61 6c 0a 40 74 69 74 6c 65 70 61 67 65 0a 40 74 r.printed.material.@titlepage.@t
f8ba0 69 74 6c 65 20 54 68 65 20 45 6d 6d 73 20 4d 61 6e 75 61 6c 0a 0a 40 70 61 67 65 0a 40 76 73 6b itle.The.Emms.Manual..@page.@vsk
f8bc0 69 70 20 30 70 74 20 70 6c 75 73 20 31 66 69 6c 6c 6c 0a 40 69 6e 73 65 72 74 63 6f 70 79 69 6e ip.0pt.plus.1filll.@insertcopyin
f8be0 67 0a 40 65 6e 64 20 74 69 74 6c 65 70 61 67 65 0a 0a 40 63 6f 6e 74 65 6e 74 73 0a 40 63 20 45 g.@end.titlepage..@contents.@c.E
f8c00 4e 44 20 46 6f 72 20 70 72 69 6e 74 65 64 20 6d 61 74 65 72 69 61 6c 0a 0a 40 69 66 6e 6f 74 74 ND.For.printed.material..@ifnott
f8c20 65 78 0a 40 6e 6f 64 65 20 54 6f 70 2c 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 2c 20 28 64 69 72 ex.@node.Top,.Introduction,.(dir
f8c40 29 2c 20 28 64 69 72 29 0a 40 74 6f 70 20 45 6d 6d 73 20 4d 61 6e 75 61 6c 0a 0a 54 68 69 73 20 ),.(dir).@top.Emms.Manual..This.
f8c60 69 73 20 74 68 65 20 4d 61 6e 75 61 6c 20 66 6f 72 20 74 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 is.the.Manual.for.the.Emacs.Mult
f8c80 69 6d 65 64 69 61 20 53 79 73 74 65 6d 2e 0a 0a 40 69 6e 73 65 72 74 63 6f 70 79 69 6e 67 0a 0a imedia.System...@insertcopying..
f8ca0 40 6d 65 6e 75 0a 53 74 61 72 74 69 6e 67 20 6f 75 74 0a 2a 20 49 6e 74 72 6f 64 75 63 74 69 6f @menu.Starting.out.*.Introductio
f8cc0 6e 3a 3a 20 20 20 20 20 20 20 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 45 6d 6d 73 2e n::........Introduction.to.Emms.
f8ce0 0a 2a 20 51 75 69 63 6b 73 74 61 72 74 20 47 75 69 64 65 3a 3a 20 20 20 20 46 69 72 73 74 20 73 .*.Quickstart.Guide::....First.s
f8d00 74 65 70 73 20 77 69 74 68 20 45 6d 6d 73 20 66 6f 72 20 6e 65 77 20 75 73 65 72 73 2e 0a 2a 20 teps.with.Emms.for.new.users..*.
f8d20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 3a 20 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 69 6e 73 Installation::........How.to.ins
f8d40 74 61 6c 6c 20 45 6d 6d 73 20 6f 6e 20 79 6f 75 72 20 53 79 73 74 65 6d 2e 0a 2a 20 53 65 74 75 tall.Emms.on.your.System..*.Setu
f8d60 70 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 73 65 74 75 70 20 45 p::...............How.to.setup.E
f8d80 6d 6d 73 2e 0a 2a 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 3a 20 20 20 20 20 20 20 4d 6f 72 mms..*.Configuration::.......Mor
f8da0 65 20 64 65 74 61 69 6c 65 64 20 73 65 74 75 70 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 e.detailed.setup.and.configurati
f8dc0 6f 6e 2e 0a 2a 20 47 65 74 74 69 6e 67 20 48 65 6c 70 3a 3a 20 20 20 20 20 20 20 20 57 68 65 72 on..*.Getting.Help::........Wher
f8de0 65 20 74 6f 20 67 65 74 20 68 65 6c 70 20 77 69 74 68 20 45 6d 6d 73 20 61 6e 64 20 6d 61 6b 65 e.to.get.help.with.Emms.and.make
f8e00 20 73 75 67 67 65 73 74 69 6f 6e 73 2e 0a 2a 20 46 6f 72 6d 61 74 73 20 61 6e 64 20 46 72 65 65 .suggestions..*.Formats.and.Free
f8e20 64 6f 6d 3a 3a 20 46 69 6c 65 20 66 6f 72 6d 61 74 73 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 dom::.File.formats.without.restr
f8e40 69 63 74 69 6f 6e 73 2e 0a 0a 45 6d 6d 73 20 62 61 73 69 63 73 0a 2a 20 42 61 73 69 63 20 43 6f ictions...Emms.basics.*.Basic.Co
f8e60 6d 6d 61 6e 64 73 3a 3a 20 20 20 20 20 20 48 6f 77 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 45 6d 6d mmands::......How.to.control.Emm
f8e80 73 20 77 69 74 68 20 65 61 73 65 2e 0a 2a 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 3a 3a 20 20 s.with.ease..*.The.Core.File::..
f8ea0 20 20 20 20 20 54 68 65 20 69 6e 6e 65 72 20 63 6f 72 65 20 6f 66 20 45 6d 6d 73 2e 0a 2a 20 53 .....The.inner.core.of.Emms..*.S
f8ec0 6f 75 72 63 65 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 75 72 63 65 73 20 66 6f 72 ources::.............Sources.for
f8ee0 20 70 6c 61 79 6c 69 73 74 73 2d 63 72 65 61 74 69 6f 6e 2e 0a 2a 20 53 69 6d 70 6c 65 20 50 6c .playlists-creation..*.Simple.Pl
f8f00 61 79 65 72 73 3a 3a 20 20 20 20 20 20 53 6f 6d 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 73 ayers::......Some.simple.players
f8f20 2e 0a 2a 20 50 6c 61 79 6c 69 73 74 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 45 6d ..*.Playlists::...........How.Em
f8f40 6d 73 20 6f 72 67 61 6e 69 7a 65 73 20 6d 65 64 69 61 2e 0a 0a 41 64 76 61 6e 63 65 64 20 46 65 ms.organizes.media...Advanced.Fe
f8f60 61 74 75 72 65 73 0a 2a 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 3a 3a 20 20 20 20 atures.*.Track.Information::....
f8f80 20 20 20 20 4d 6f 72 65 20 6e 61 72 72 61 74 69 76 65 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 ....More.narrative.track.descrip
f8fa0 74 69 6f 6e 73 2e 0a 2a 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 3a 3a tions..*.Interactive.Playlists::
f8fc0 20 20 20 20 49 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 2e 0a 2a 20 4d 61 72 ....Interactive.Playlists..*.Mar
f8fe0 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 3a 3a 20 20 20 20 20 20 20 41 6c 6c 6f 77 20 74 72 kable.Playlists::.......Allow.tr
f9000 61 63 6b 73 20 74 6f 20 62 65 20 6d 61 72 6b 65 64 2e 0a 2a 20 45 78 74 65 6e 64 69 6e 67 20 45 acks.to.be.marked..*.Extending.E
f9020 6d 6d 73 3a 3a 20 20 20 20 20 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 6e 65 77 20 70 6c mms::.......How.to.define.new.pl
f9040 61 79 65 72 73 20 61 6e 64 20 6d 6f 64 75 6c 65 73 2e 0a 0a 4d 6f 64 75 6c 65 73 20 61 6e 64 20 ayers.and.modules...Modules.and.
f9060 45 78 74 65 6e 73 69 6f 6e 73 0a 2a 20 54 68 65 20 42 72 6f 77 73 65 72 3a 3a 20 20 20 20 20 20 Extensions.*.The.Browser::......
f9080 20 20 20 20 41 64 76 61 6e 63 65 64 20 6d 65 74 61 64 61 74 61 20 62 72 6f 77 73 69 6e 67 2e 0a ....Advanced.metadata.browsing..
f90a0 2a 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 3a 3a 20 20 20 20 41 64 76 61 6e 63 65 *.The.Filter.System::....Advance
f90c0 64 20 6d 65 74 61 64 61 74 61 20 66 69 6c 74 65 72 69 6e 67 2e 0a 2a 20 53 6f 72 74 69 6e 67 20 d.metadata.filtering..*.Sorting.
f90e0 50 6c 61 79 6c 69 73 74 73 3a 3a 20 20 20 20 53 6f 72 74 69 6e 67 20 74 68 65 20 6f 72 64 65 72 Playlists::....Sorting.the.order
f9100 20 6f 66 20 74 68 65 20 74 72 61 63 6b 73 2e 0a 2a 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 .of.the.tracks..*.Persistent.Pla
f9120 79 6c 69 73 74 73 3a 3a 20 52 65 73 74 6f 72 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 6f 6e 20 ylists::.Restoring.playlists.on.
f9140 65 6d 61 63 73 20 73 74 61 72 74 75 70 2e 0a 2a 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 3a emacs.startup..*.Editing.Tracks:
f9160 3a 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f :.......Editing.track.informatio
f9180 6e 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 45 6d 6d 73 2e 0a 2a 20 45 6d 6d 73 20 4d 6f 64 65 20 n.from.within.Emms..*.Emms.Mode.
f91a0 4c 69 6e 65 3a 3a 20 20 20 20 20 20 20 45 6d 6d 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e Line::.......Emms.information.on
f91c0 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 0a 2a 20 4c 69 6d 69 74 69 6e 67 3a 3a 20 20 20 20 .the.mode.line..*.Limiting::....
f91e0 20 20 20 20 20 20 20 20 20 44 65 72 69 76 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 66 .........Derive.a.new.playlist.f
f9200 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 2e 0a 2a 20 4d 75 73 69 63 20 50 6c 61 79 65 72 20 rom.the.current..*.Music.Player.
f9220 44 61 65 6d 6f 6e 3a 3a 20 20 49 6e 74 65 72 66 61 63 65 20 74 6f 20 4d 75 73 69 63 20 50 6c 61 Daemon::..Interface.to.Music.Pla
f9240 79 65 72 20 44 61 65 6d 6f 6e 2e 0a 2a 20 4c 79 72 69 63 73 3a 3a 20 20 20 20 20 20 20 20 20 20 yer.Daemon..*.Lyrics::..........
f9260 20 20 20 20 20 44 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 20 73 79 6e 63 68 72 6f 6e 6f .....Displaying.lyrics.synchrono
f9280 75 73 6c 79 2e 0a 2a 20 56 6f 6c 75 6d 65 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 usly..*.Volume::...............C
f92a0 68 61 6e 67 69 6e 67 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 2a 20 53 74 72 65 61 6d 69 6e 67 20 hanging.the.volume..*.Streaming.
f92c0 41 75 64 69 6f 3a 3a 20 20 20 20 20 20 49 6e 74 65 72 66 61 63 65 20 74 6f 20 73 74 72 65 61 6d Audio::......Interface.to.stream
f92e0 69 6e 67 20 61 75 64 69 6f 2e 0a 2a 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 3a 3a 20 20 20 20 ing.audio..*.Radio.Browser::....
f9300 20 20 20 20 53 65 61 72 63 68 20 66 6f 72 20 69 6e 74 65 72 6e 65 74 20 72 61 64 69 6f 20 73 74 ....Search.for.internet.radio.st
f9320 61 74 69 6f 6e 73 0a 2a 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 3a 3a 20 20 ations.*.APE./.FLAC.Commands::..
f9340 48 6f 77 20 74 6f 20 70 6c 61 79 20 6e 65 78 74 20 6f 72 20 70 72 65 76 69 6f 75 73 20 74 72 61 How.to.play.next.or.previous.tra
f9360 63 6b 20 69 6e 20 74 68 65 73 65 20 66 69 6c 65 73 2e 0a 2a 20 42 6f 6f 6b 6d 61 72 6b 73 3a 3a ck.in.these.files..*.Bookmarks::
f9380 20 20 20 20 20 20 20 20 20 20 20 20 53 61 76 69 6e 67 20 61 20 70 6c 61 63 65 20 69 6e 20 61 20 ............Saving.a.place.in.a.
f93a0 6d 65 64 69 61 20 66 69 6c 65 2e 0a 2a 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 media.file..*.Managing.Playlists
f93c0 3a 3a 20 20 20 4d 61 6e 61 67 69 6e 67 20 6d 75 6c 74 69 70 6c 65 20 70 6c 61 79 6c 69 73 74 73 ::...Managing.multiple.playlists
f93e0 2e 0a 2a 20 47 4e 55 20 46 4d 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 6e 65 ..*.GNU.FM::...............Conne
f9400 63 74 20 74 6f 20 6d 75 73 69 63 20 63 6f 6d 6d 75 6e 69 74 79 20 77 65 62 73 69 74 65 73 2e 0a ct.to.music.community.websites..
f9420 2a 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 3a 3a 20 20 20 20 20 20 20 20 20 4e 6f 74 69 66 79 20 *.Listenbrainz::.........Notify.
f9440 6c 69 73 74 65 6e 62 72 61 69 6e 7a 20 6f 66 20 74 72 61 63 6b 73 20 70 6c 61 79 65 64 2e 0a 2a listenbrainz.of.tracks.played..*
f9460 20 44 2d 42 75 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 74 72 6f 6c 20 .D-Bus::................Control.
f9480 45 6d 6d 73 20 6f 76 65 72 20 44 2d 42 75 73 2e 0a 0a 43 6f 70 79 69 6e 67 20 61 6e 64 20 6c 69 Emms.over.D-Bus...Copying.and.li
f94a0 63 65 6e 73 65 0a 2a 20 43 6f 70 79 69 6e 67 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 cense.*.Copying::.............Th
f94c0 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 67 69 76 e.GNU.General.Public.License.giv
f94e0 65 73 20 79 6f 75 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 es.you.permission.to............
f9500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 64 69 73 74 72 69 62 75 74 65 20 45 6d .................redistribute.Em
f9520 6d 73 20 6f 6e 20 63 65 72 74 61 69 6e 20 74 65 72 6d 73 3b 20 69 74 20 61 6c 73 6f 20 65 78 70 ms.on.certain.terms;.it.also.exp
f9540 6c 61 69 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lains...........................
f9560 20 20 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 2e 0a 2a 20 54 ..that.there.is.no.warranty..*.T
f9580 68 65 20 47 4e 55 20 46 44 4c 3a 3a 20 20 20 20 20 20 20 20 20 54 68 65 20 6c 69 63 65 6e 73 65 he.GNU.FDL::.........The.license
f95a0 20 66 6f 72 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 0a 49 6e 64 69 63 65 .for.this.documentation...Indice
f95c0 73 0a 2a 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 3a 3a 0a 2a 20 46 75 6e 63 74 69 6f 6e 20 49 s.*.Concept.Index::.*.Function.I
f95e0 6e 64 65 78 3a 3a 0a 2a 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 3a 3a 0a 2a 20 4b 65 79 62 ndex::.*.Variable.Index::.*.Keyb
f9600 69 6e 64 69 6e 67 20 49 6e 64 65 78 3a 3a 0a 0a 40 64 65 74 61 69 6c 6d 65 6e 75 0a 2d 2d 2d 20 inding.Index::..@detailmenu.---.
f9620 54 68 65 20 44 65 74 61 69 6c 65 64 20 4e 6f 64 65 20 4c 69 73 74 69 6e 67 20 2d 2d 2d 0a 0a 48 The.Detailed.Node.Listing.---..H
f9640 65 72 65 20 61 72 65 20 73 6f 6d 65 20 6f 74 68 65 72 20 6e 6f 64 65 73 20 77 68 69 63 68 20 61 ere.are.some.other.nodes.which.a
f9660 72 65 20 72 65 61 6c 6c 79 20 69 6e 66 65 72 69 6f 72 73 20 6f 66 20 74 68 65 20 6f 6e 65 73 0a re.really.inferiors.of.the.ones.
f9680 61 6c 72 65 61 64 79 20 6c 69 73 74 65 64 2c 20 6d 65 6e 74 69 6f 6e 65 64 20 68 65 72 65 20 73 already.listed,.mentioned.here.s
f96a0 6f 20 79 6f 75 20 63 61 6e 20 67 65 74 20 74 6f 20 74 68 65 6d 20 69 6e 20 6f 6e 65 20 73 74 65 o.you.can.get.to.them.in.one.ste
f96c0 70 3a 0a 0a 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 2a 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d p:..Installation.*.Compiling.Emm
f96e0 73 3a 3a 20 20 20 20 20 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 20 69 6e 74 6f 20 42 79 74 s::......Compiling.Emms.into.Byt
f9700 65 2d 43 6f 64 65 2e 0a 0a 54 68 65 20 43 6f 72 65 20 46 69 6c 65 0a 2a 20 55 73 65 72 20 56 61 e-Code...The.Core.File.*.User.Va
f9720 72 69 61 62 6c 65 73 3a 3a 20 20 20 20 20 56 61 72 69 61 62 6c 65 73 20 66 6f 72 20 74 68 65 20 riables::.....Variables.for.the.
f9740 75 73 65 72 20 74 6f 20 74 77 65 61 6b 2e 0a 2a 20 48 6f 6f 6b 73 3a 3a 20 20 20 20 20 20 20 20 user.to.tweak..*.Hooks::........
f9760 20 20 20 20 20 20 48 6f 6f 6b 73 20 66 6f 72 20 69 6d 70 6f 72 74 61 6e 74 20 45 6d 6d 73 20 66 ......Hooks.for.important.Emms.f
f9780 75 6e 63 74 69 6f 6e 73 2e 0a 2a 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 3a 3a 20 20 20 20 unctions..*.Core.Functions::....
f97a0 20 50 72 6f 76 69 64 69 6e 67 20 74 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 6c 69 .Providing.the.basic.functionali
f97c0 74 79 20 6f 66 20 45 6d 6d 73 2e 0a 0a 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 2a ty.of.Emms...Track.Information.*
f97e0 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 3a 3a 20 53 75 70 70 6f 72 74 65 64 20 .Metadata.Utilities::.Supported.
f9800 65 78 74 65 72 6e 61 6c 20 6d 65 74 61 64 61 74 61 20 75 74 69 6c 69 74 69 65 73 2e 0a 2a 20 44 external.metadata.utilities..*.D
f9820 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 3a 3a 20 20 20 20 44 65 66 69 6e 69 efining.Info.Methods::....Defini
f9840 6e 67 20 6e 65 77 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 2e 0a 0a 45 78 74 65 6e 64 69 6e 67 20 ng.new.info.methods...Extending.
f9860 45 6d 6d 73 0a 2a 20 4e 65 77 20 50 6c 61 79 65 72 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 Emms.*.New.Player::.............
f9880 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 61 20 6e 65 77 20 70 6c 61 79 65 72 2e 0a 2a 20 ..How.to.define.a.new.player..*.
f98a0 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 3a 3a 20 45 78 61 6d 70 Simple.Player.for.`play'::.Examp
f98c0 6c 65 20 70 6c 61 79 65 72 20 75 73 69 6e 67 20 40 63 6f 6d 6d 61 6e 64 7b 70 6c 61 79 7d 2e 0a le.player.using.@command{play}..
f98e0 2a 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 3a 3a 20 20 20 20 20 20 45 78 61 *.More.Complex.Player::......Exa
f9900 6d 70 6c 65 20 6f 66 20 61 20 63 6f 6d 70 6c 65 78 20 70 6c 61 79 65 72 20 75 73 69 6e 67 20 40 mple.of.a.complex.player.using.@
f9920 63 6f 6d 6d 61 6e 64 7b 6d 70 67 33 32 31 7d 2e 0a 40 65 6e 64 20 64 65 74 61 69 6c 6d 65 6e 75 command{mpg321}..@end.detailmenu
f9940 0a 40 65 6e 64 20 6d 65 6e 75 0a 0a 40 65 6e 64 20 69 66 6e 6f 74 74 65 78 0a 0a 40 63 20 2d 2d .@end.menu..@end.ifnottex..@c.--
f9960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
f9980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
f99a0 2d 0a 40 6e 6f 64 65 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 0a 40 63 68 61 70 74 65 72 20 49 6e -.@node.Introduction.@chapter.In
f99c0 74 72 6f 64 75 63 74 69 6f 6e 0a 0a 40 63 69 6e 64 65 78 20 69 6e 74 72 6f 64 75 63 74 69 6f 6e troduction..@cindex.introduction
f99e0 0a 0a 45 6d 6d 73 20 69 73 20 74 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 2d 4d 65 64 69 61 20 ..Emms.is.the.Emacs.Multi-Media.
f9a00 53 79 73 74 65 6d 2e 20 45 6d 6d 73 20 6f 72 67 61 6e 69 7a 65 73 20 70 6c 61 79 6c 69 73 74 73 System..Emms.organizes.playlists
f9a20 2c 20 61 6c 6c 6f 77 73 0a 62 72 6f 77 73 69 6e 67 20 74 68 72 6f 75 67 68 20 74 72 61 63 6b 20 ,.allows.browsing.through.track.
f9a40 61 6e 64 20 61 6c 62 75 6d 20 6d 65 74 61 64 61 74 61 2c 20 61 6e 64 20 70 6c 61 79 73 20 66 69 and.album.metadata,.and.plays.fi
f9a60 6c 65 73 20 62 79 20 63 61 6c 6c 69 6e 67 0a 65 78 74 65 72 6e 61 6c 20 70 6c 61 79 65 72 73 2e les.by.calling.external.players.
f9a80 0a 0a 54 68 69 73 20 6d 61 6e 75 61 6c 20 74 72 69 65 73 20 74 6f 20 62 65 20 74 68 65 20 64 65 ..This.manual.tries.to.be.the.de
f9aa0 66 69 6e 69 74 69 76 65 20 73 6f 75 72 63 65 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 finitive.source.of.information.a
f9ac0 62 6f 75 74 0a 45 6d 6d 73 2c 20 61 6e 20 6f 6e 6c 69 6e 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 bout.Emms,.an.online.version.of.
f9ae0 74 68 65 20 6d 61 6e 75 61 6c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 3a 0a 40 75 72 65 the.manual.is.available.at:.@ure
f9b00 66 7b 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d f{http://www.gnu.org/software/em
f9b20 6d 73 2f 6d 61 6e 75 61 6c 2f 7d 2e 0a 0a 54 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e ms/manual/}...The.basic.function
f9b40 61 6c 69 74 79 20 6f 66 20 45 6d 6d 73 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 72 65 65 20 ality.of.Emms.consists.of.three.
f9b60 70 61 72 74 73 3a 20 54 68 65 20 63 6f 72 65 2c 20 74 68 65 0a 73 6f 75 72 63 65 73 2c 20 61 6e parts:.The.core,.the.sources,.an
f9b80 64 20 74 68 65 20 70 6c 61 79 65 72 73 2e 0a 0a 54 68 65 20 63 6f 72 65 20 72 65 73 69 64 65 73 d.the.players...The.core.resides
f9ba0 20 69 6e 20 40 66 69 6c 65 7b 65 6d 6d 73 2e 65 6c 7d 2c 20 70 72 6f 76 69 64 65 73 20 61 20 73 .in.@file{emms.el},.provides.a.s
f9bc0 69 6d 70 6c 65 20 70 6c 61 79 6c 69 73 74 2c 20 61 6e 64 0a 74 68 65 20 62 61 73 69 63 20 66 75 imple.playlist,.and.the.basic.fu
f9be0 6e 63 74 69 6f 6e 61 6c 69 74 79 20 74 6f 20 75 73 65 20 61 6c 6c 20 74 68 65 20 6f 74 68 65 72 nctionality.to.use.all.the.other
f9c00 20 66 65 61 74 75 72 65 73 20 6f 66 20 45 6d 6d 73 2e 20 49 74 0a 70 72 6f 76 69 64 65 73 20 74 .features.of.Emms..It.provides.t
f9c20 68 65 20 63 6f 6d 6d 6f 6e 20 75 73 65 72 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 69 6e 74 65 he.common.user.commands.and.inte
f9c40 72 66 61 63 65 73 20 66 6f 72 20 6f 74 68 65 72 20 70 61 72 74 73 2e 20 49 74 0a 74 68 69 6e 6b rfaces.for.other.parts..It.think
f9c60 73 20 69 6e 20 74 72 61 63 6b 73 2c 20 77 68 65 72 65 20 61 20 74 72 61 63 6b 20 69 73 20 74 68 s.in.tracks,.where.a.track.is.th
f9c80 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 61 20 74 79 70 65 20 61 6e 64 20 61 0a 6e 61 e.combination.of.a.type.and.a.na
f9ca0 6d 65 20 2d 20 65 2e 67 2e 20 20 74 68 65 20 74 72 61 63 6b 20 74 79 70 65 20 27 66 69 6c 65 20 me.-.e.g...the.track.type.'file.
f9cc0 68 61 73 20 61 20 6e 61 6d 65 20 74 68 61 74 20 69 73 20 74 68 65 20 66 69 6c 65 0a 6e 61 6d 65 has.a.name.that.is.the.file.name
f9ce0 2e 20 4f 74 68 65 72 20 74 72 61 63 6b 20 74 79 70 65 73 20 61 72 65 20 70 6f 73 73 69 62 6c 65 ..Other.track.types.are.possible
f9d00 2e 0a 0a 54 6f 20 67 65 74 20 74 6f 20 74 72 61 63 6b 73 2c 20 74 68 65 20 63 6f 72 65 20 6e 65 ...To.get.to.tracks,.the.core.ne
f9d20 65 64 73 20 73 6f 75 72 63 65 73 2e 20 54 68 65 20 66 69 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 eds.sources..The.file.@file{emms
f9d40 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 7d 0a 70 72 6f 76 69 64 65 73 20 73 69 6d 70 6c 65 -source-file.el}.provides.simple
f9d60 20 73 6f 75 72 63 65 73 20 74 6f 20 69 6e 74 65 72 61 63 74 20 77 69 74 68 20 74 68 65 20 66 69 .sources.to.interact.with.the.fi
f9d80 6c 65 20 73 79 73 74 65 6d 2e 0a 0a 57 68 65 6e 20 45 6d 6d 73 20 66 69 6e 61 6c 6c 79 20 68 61 le.system...When.Emms.finally.ha
f9da0 73 20 74 68 65 20 73 6f 75 72 63 65 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2c 20 69 s.the.sources.in.the.playlist,.i
f9dc0 74 20 6e 65 65 64 73 20 61 20 70 6c 61 79 65 72 0a 74 6f 20 70 6c 61 79 20 74 68 65 6d 2e 20 40 t.needs.a.player.to.play.them..@
f9de0 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 7d 20 64 65 66 69 file{emms-player-simple.el}.defi
f9e00 6e 65 73 20 61 20 66 65 77 20 75 73 65 66 75 6c 0a 70 6c 61 79 65 72 73 20 61 6e 64 20 70 72 6f nes.a.few.useful.players.and.pro
f9e20 76 69 64 65 73 20 61 20 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 64 20 77 61 79 20 6f 66 20 70 vides.a.straightforward.way.of.p
f9e40 72 6f 76 69 64 69 6e 67 20 79 6f 75 72 20 6f 77 6e 2e 0a 0a 54 68 65 20 45 6d 6d 73 20 63 6f 6d roviding.your.own...The.Emms.com
f9e60 65 73 20 77 69 74 68 20 6d 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 66 65 61 74 75 72 65 73 es.with.many.additional.features
f9e80 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 0a 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 62 65 79 .to.extend.the.functionality.bey
f9ea0 6f 6e 64 20 74 68 65 20 63 6f 72 65 2e 0a 0a 54 68 65 20 77 61 79 20 45 6d 6d 73 20 77 6f 72 6b ond.the.core...The.way.Emms.work
f9ec0 73 20 69 73 20 65 61 73 79 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 77 69 74 68 20 79 6f 75 72 s.is.easy.to.customize.with.your
f9ee0 20 6f 77 6e 20 63 6f 64 65 20 6f 72 20 62 79 20 75 73 69 6e 67 0a 60 4d 2d 78 20 63 75 73 74 6f .own.code.or.by.using.`M-x.custo
f9f00 6d 69 7a 65 27 20 6f 72 20 62 79 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c mize'.or.by.changing.the.variabl
f9f20 65 73 20 64 69 72 65 63 74 6c 79 2e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d es.directly....@c.--------------
f9f40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
f9f60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 51 75 69 63 ---------------------.@node.Quic
f9f80 6b 73 74 61 72 74 20 47 75 69 64 65 0a 40 63 68 61 70 74 65 72 20 51 75 69 63 6b 73 74 61 72 74 kstart.Guide.@chapter.Quickstart
f9fa0 20 47 75 69 64 65 0a 0a 54 68 69 73 20 63 68 61 70 74 65 72 20 64 65 6d 6f 6e 73 74 72 61 74 65 .Guide..This.chapter.demonstrate
f9fc0 73 20 68 6f 77 20 74 6f 20 73 65 74 75 70 20 45 6d 6d 73 20 73 6f 20 74 68 61 74 20 79 6f 75 20 s.how.to.setup.Emms.so.that.you.
f9fe0 63 61 6e 20 73 74 61 72 74 0a 6c 69 73 74 65 6e 69 6e 67 20 74 6f 20 79 6f 75 72 20 6d 75 73 69 can.start.listening.to.your.musi
fa000 63 20 77 69 74 68 6f 75 74 20 68 61 76 69 6e 67 20 74 6f 20 72 65 61 64 20 61 6c 6c 20 6f 66 20 c.without.having.to.read.all.of.
fa020 74 68 65 0a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 72 73 74 2e 20 54 68 69 73 20 69 73 the.documentation.first..This.is
fa040 20 74 68 65 20 74 6c 3b 64 72 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6d 61 6e 75 61 6c .the.tl;dr.version.of.the.manual
fa060 2e 0a 0a 54 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 74 6f 20 64 6f 20 69 73 20 74 6f 20 6c ...The.first.thing.to.do.is.to.l
fa080 6f 61 64 20 45 6d 6d 73 20 76 69 61 20 47 4e 55 20 45 4c 50 41 2e 20 49 6e 76 6f 6b 65 20 40 6b oad.Emms.via.GNU.ELPA..Invoke.@k
fa0a0 62 64 7b 4d 2d 78 0a 6c 69 73 74 2d 70 61 63 6b 61 67 65 73 7d 20 61 6e 64 20 63 68 6f 6f 73 65 bd{M-x.list-packages}.and.choose
fa0c0 20 74 6f 20 69 6e 73 74 61 6c 6c 20 45 6d 6d 73 2e 0a 0a 49 66 20 79 6f 75 20 61 72 65 20 69 6e .to.install.Emms...If.you.are.in
fa0e0 73 74 61 6c 6c 69 6e 67 20 45 6d 6d 73 20 6d 61 6e 75 61 6c 6c 79 2c 20 74 68 65 6e 20 73 74 61 stalling.Emms.manually,.then.sta
fa100 72 74 20 62 79 20 74 65 6c 6c 69 6e 67 20 45 6d 61 63 73 20 77 68 65 72 65 0a 79 6f 75 72 20 63 rt.by.telling.Emacs.where.your.c
fa120 6f 70 79 20 6f 66 20 45 6d 6d 73 20 69 73 20 6c 6f 63 61 74 65 64 2e 20 4c 65 74 27 73 20 73 61 opy.of.Emms.is.located..Let's.sa
fa140 79 20 79 6f 75 20 68 61 76 65 20 69 74 20 69 6e 0a 40 66 69 6c 65 7b 7e 2f 65 6c 69 73 70 2f 65 y.you.have.it.in.@file{~/elisp/e
fa160 6d 6d 73 2f 7d 2e 20 53 6f 20 61 64 64 20 74 68 69 73 20 6c 69 6e 65 20 74 6f 20 79 6f 75 72 20 mms/}..So.add.this.line.to.your.
fa180 40 66 69 6c 65 7b 2e 65 6d 61 63 73 7d 3a 0a 0a 40 6c 69 73 70 0a 28 61 64 64 2d 74 6f 2d 6c 69 @file{.emacs}:..@lisp.(add-to-li
fa1a0 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 20 22 7e 2f 65 6c 69 73 70 2f 65 6d 6d 73 2f 6c 69 73 70 st.'load-path."~/elisp/emms/lisp
fa1c0 2f 22 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 65 74 75 70 29 0a 40 65 6e 64 20 6c /").(require.'emms-setup).@end.l
fa1e0 69 73 70 0a 0a 28 4d 6f 72 65 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 isp..(More.detailed.information.
fa200 61 62 6f 75 74 20 69 6e 73 74 61 6c 6c 69 6e 67 20 45 6d 6d 73 20 63 61 6e 20 62 65 20 66 6f 75 about.installing.Emms.can.be.fou
fa220 6e 64 20 69 6e 20 74 68 65 0a 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 63 68 61 70 74 65 72 2c 20 nd.in.the.installation.chapter,.
fa240 40 78 72 65 66 7b 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 7d 2e 29 0a 0a 45 69 74 68 65 72 20 77 61 @xref{Installation}.)..Either.wa
fa260 79 2c 20 79 6f 75 20 61 72 65 20 6e 6f 77 20 72 65 61 64 79 20 74 6f 20 63 6f 6e 66 69 67 75 72 y,.you.are.now.ready.to.configur
fa280 65 20 45 6d 6d 73 2e 20 59 6f 75 72 20 45 6d 6d 73 20 63 6f 6e 66 69 67 20 63 61 6e 0a 62 65 20 e.Emms..Your.Emms.config.can.be.
fa2a0 61 73 20 73 69 6d 70 6c 65 20 61 73 20 74 68 72 65 65 20 6c 69 6e 65 73 2e 20 46 6f 72 20 65 78 as.simple.as.three.lines..For.ex
fa2c0 61 6d 70 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 61 6c 6c 29 0a 28 73 65 74 71 20 65 ample:..@lisp.(emms-all).(setq.e
fa2e0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 27 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 76 6c mms-player-list.'(emms-player-vl
fa300 63 29 0a 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 c).......emms-info-functions.'(e
fa320 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 mms-info-native)).@end.lisp..The
fa340 20 66 75 6e 63 74 69 6f 6e 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 61 6c 6c 7d 20 6c 6f 61 64 73 20 .function.@code{emms-all}.loads.
fa360 61 6c 6c 20 6f 66 20 74 68 65 20 73 74 61 62 6c 65 20 66 65 61 74 75 72 65 73 20 69 6e 20 45 6d all.of.the.stable.features.in.Em
fa380 6d 73 2e 0a 0a 45 6d 6d 73 20 63 61 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 ms...Emms.can.automatically.gene
fa3a0 72 61 74 65 20 74 68 61 74 20 60 73 65 74 71 27 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 72 20 79 rate.that.`setq'.statement.for.y
fa3c0 6f 75 20 62 61 73 65 64 20 6f 6e 0a 77 68 69 63 68 20 70 6c 61 79 65 72 73 20 61 6e 64 20 6d 65 ou.based.on.which.players.and.me
fa3e0 74 61 64 61 74 61 20 72 65 61 64 65 72 73 20 79 6f 75 20 68 61 76 65 20 69 6e 73 74 61 6c 6c 65 tadata.readers.you.have.installe
fa400 64 20 6f 6e 20 79 6f 75 72 0a 73 79 73 74 65 6d 2e 20 4a 75 73 74 20 69 6e 76 6f 6b 65 20 40 63 d.on.your.system..Just.invoke.@c
fa420 6f 64 65 7b 65 6d 6d 73 2d 73 65 74 75 70 2d 64 69 73 63 6f 76 65 72 7d 20 61 6e 64 20 61 6e 73 ode{emms-setup-discover}.and.ans
fa440 77 65 72 20 61 20 66 65 77 0a 71 75 65 73 74 69 6f 6e 73 2e 0a 0a 54 68 65 20 76 61 72 69 61 62 wer.a.few.questions...The.variab
fa460 6c 65 20 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 7d 20 69 73 20 61 20 6c le.@var{emms-player-list}.is.a.l
fa480 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 74 68 61 74 20 45 6d 6d 73 0a 73 68 6f 75 6c 64 20 ist.of.players.that.Emms.should.
fa4a0 63 61 6c 6c 20 74 6f 20 70 6c 61 79 20 79 6f 75 72 20 6d 65 64 69 61 2e 20 49 6e 20 74 68 69 73 call.to.play.your.media..In.this
fa4c0 20 65 78 61 6d 70 6c 65 20 77 65 20 61 73 73 75 6d 65 20 74 68 61 74 20 79 6f 75 0a 68 61 76 65 .example.we.assume.that.you.have
fa4e0 20 56 4c 43 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 2e 20 42 .VLC.installed.on.your.system..B
fa500 75 74 20 69 66 20 79 6f 75 20 75 73 65 20 6d 70 76 20 6f 72 20 6d 70 6c 61 79 65 72 0a 69 6e 73 ut.if.you.use.mpv.or.mplayer.ins
fa520 74 65 61 64 2c 20 6a 75 73 74 20 63 68 61 6e 67 65 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 70 6c 61 tead,.just.change.@code{emms-pla
fa540 79 65 72 2d 76 6c 63 7d 20 74 6f 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 yer-vlc}.to.@code{emms-player-mp
fa560 76 7d 0a 6f 72 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 7d v}.or.@code{emms-player-mplayer}
fa580 3b 20 79 6f 75 20 67 65 74 20 74 68 65 20 69 64 65 61 2e 0a 0a 54 68 65 20 76 61 72 69 61 62 6c ;.you.get.the.idea...The.variabl
fa5a0 65 20 40 76 61 72 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 7d 20 69 73 20 61 e.@var{emms-info-functions}.is.a
fa5c0 20 6c 69 73 74 20 6f 66 20 77 61 79 73 20 66 6f 72 20 45 6d 6d 73 20 74 6f 0a 72 65 61 64 20 74 .list.of.ways.for.Emms.to.read.t
fa5e0 68 65 20 6d 65 74 61 64 61 74 61 20 69 6e 20 79 6f 75 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2c he.metadata.in.your.media.files,
fa600 20 73 6f 20 74 68 61 74 20 45 6d 6d 73 20 63 61 6e 20 64 69 73 70 6c 61 79 20 74 68 65 0a 73 6f .so.that.Emms.can.display.the.so
fa620 6e 67 20 74 69 74 6c 65 2c 20 61 72 74 69 73 74 20 6e 61 6d 65 2c 20 65 74 63 2e 20 40 63 6f 64 ng.title,.artist.name,.etc..@cod
fa640 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 7d 20 69 73 20 61 20 6d 65 74 61 64 61 74 e{emms-info-native}.is.a.metadat
fa660 61 0a 72 65 61 64 65 72 20 77 72 69 74 74 65 6e 20 65 6e 74 69 72 65 6c 79 20 69 6e 20 45 6d 61 a.reader.written.entirely.in.Ema
fa680 63 73 20 4c 69 73 70 2c 20 62 75 74 20 74 68 65 72 65 20 61 72 65 20 61 6c 73 6f 20 6f 74 68 65 cs.Lisp,.but.there.are.also.othe
fa6a0 72 0a 62 61 63 6b 65 6e 64 73 20 77 68 69 63 68 20 63 61 6c 6c 20 65 78 74 65 72 6e 61 6c 20 70 r.backends.which.call.external.p
fa6c0 72 6f 67 72 61 6d 73 20 73 75 63 68 20 61 73 20 54 69 6e 79 54 61 67 2c 20 54 61 67 6c 69 62 2c rograms.such.as.TinyTag,.Taglib,
fa6e0 0a 45 78 69 66 74 6f 6f 6c 2c 20 61 6e 64 20 65 74 63 2e 0a 0a 52 65 6c 6f 61 64 20 79 6f 75 72 .Exiftool,.and.etc...Reload.your
fa700 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 2c 20 6f 72 20 72 .Emacs.initialization.file,.or.r
fa720 65 73 74 61 72 74 20 45 6d 61 63 73 20 74 6f 20 6c 65 74 20 74 68 65 0a 63 68 61 6e 67 65 73 20 estart.Emacs.to.let.the.changes.
fa740 68 61 76 65 20 61 6e 20 65 66 66 65 63 74 2e 0a 0a 41 64 64 20 61 6c 6c 20 79 6f 75 72 20 6d 75 have.an.effect...Add.all.your.mu
fa760 73 69 63 20 74 6f 20 61 20 70 6c 61 79 6c 69 73 74 20 62 79 20 69 6e 76 6f 6b 69 6e 67 20 40 6b sic.to.a.playlist.by.invoking.@k
fa780 62 64 7b 4d 2d 78 0a 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 52 bd{M-x.emms-add-directory-tree.R
fa7a0 45 54 20 7e 2f 6d 79 5f 6d 75 73 69 63 5f 64 69 72 65 63 74 6f 72 79 2f 20 52 45 54 7d 2e 20 57 ET.~/my_music_directory/.RET}..W
fa7c0 68 65 6e 20 79 6f 75 20 64 6f 0a 74 68 69 73 20 45 6d 6d 73 20 77 69 6c 6c 20 73 74 61 72 74 20 hen.you.do.this.Emms.will.start.
fa7e0 72 65 61 64 69 6e 67 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 73 20 reading.metadata.from.the.files.
fa800 61 6e 64 20 70 6f 70 75 6c 61 74 69 6e 67 0a 74 68 65 20 63 61 63 68 65 2e 20 54 68 69 73 20 6d and.populating.the.cache..This.m
fa820 61 79 20 74 61 6b 65 20 61 20 77 68 69 6c 65 2e 0a 0a 57 68 65 6e 20 79 6f 75 20 61 72 65 20 64 ay.take.a.while...When.you.are.d
fa840 6f 6e 65 2c 20 79 6f 75 20 63 61 6e 20 6c 6f 61 64 20 74 68 65 20 62 72 6f 77 73 65 72 20 77 69 one,.you.can.load.the.browser.wi
fa860 74 68 20 40 6b 62 64 7b 4d 2d 78 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 72 7d 2c 20 6f 72 20 76 69 th.@kbd{M-x.emms-browser},.or.vi
fa880 65 77 20 79 6f 75 72 20 70 6c 61 79 6c 69 73 74 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 20 40 ew.your.playlist.directly.with.@
fa8a0 6b 62 64 7b 4d 2d 78 0a 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 7d 20 28 kbd{M-x.emms-playlist-mode-go}.(
fa8c0 77 68 65 6e 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 79 6f 75 20 63 61 6e 20 68 69 74 when.in.the.playlist.you.can.hit
fa8e0 20 40 6b 62 64 7b 52 45 54 7d 20 6f 6e 0a 61 20 74 72 61 63 6b 20 74 6f 20 73 74 61 72 74 20 70 .@kbd{RET}.on.a.track.to.start.p
fa900 6c 61 79 69 6e 67 20 69 74 2e 29 0a 0a 4e 6f 77 20 79 6f 75 20 63 61 6e 20 73 74 61 72 74 20 65 laying.it.)..Now.you.can.start.e
fa920 78 70 6c 6f 72 69 6e 67 20 45 6d 6d 73 2e 20 49 74 27 73 20 70 72 6f 62 61 62 6c 79 20 62 65 73 xploring.Emms..It's.probably.bes
fa940 74 20 74 6f 20 62 65 67 69 6e 20 77 69 74 68 20 74 68 65 0a 62 61 73 69 63 20 63 6f 6d 6d 61 6e t.to.begin.with.the.basic.comman
fa960 64 73 20 28 40 70 78 72 65 66 7b 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 7d 29 2c 20 74 68 65 ds.(@pxref{Basic.Commands}),.the
fa980 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 73 0a 28 40 70 78 72 65 66 7b 49 .interactive.playlists.(@pxref{I
fa9a0 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 7d 29 2c 20 61 6e 64 20 74 68 65 20 nteractive.Playlists}),.and.the.
fa9c0 62 72 6f 77 73 65 72 20 28 40 70 78 72 65 66 7b 54 68 65 20 42 72 6f 77 73 65 72 7d 29 2e 0a 0a browser.(@pxref{The.Browser})...
fa9e0 4d 6f 72 65 20 64 65 74 61 69 6c 20 61 62 6f 75 74 20 73 65 74 74 69 6e 67 20 75 70 20 45 6d 6d More.detail.about.setting.up.Emm
faa00 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 73 65 74 75 70 20 63 68 61 70 s.can.be.found.in.the.setup.chap
faa20 74 65 72 2c 0a 40 78 72 65 66 7b 53 65 74 75 70 7d 2e 0a 0a 4e 65 65 64 20 68 65 6c 70 3f 20 54 ter,.@xref{Setup}...Need.help?.T
faa40 68 65 72 65 20 61 72 65 20 6b 6e 6f 77 6c 65 64 67 65 61 62 6c 65 20 70 65 6f 70 6c 65 20 6f 6e here.are.knowledgeable.people.on
faa60 20 74 68 65 20 23 65 6d 61 63 73 20 63 68 61 6e 6e 65 6c 20 6f 6e 20 69 72 63 0a 28 69 72 63 2e .the.#emacs.channel.on.irc.(irc.
faa80 6c 69 62 65 72 61 2e 63 68 61 74 29 2c 20 61 6e 64 20 45 6d 6d 73 20 68 61 73 20 61 20 6d 61 69 libera.chat),.and.Emms.has.a.mai
faaa0 6c 69 6e 67 20 6c 69 73 74 20 61 74 20 65 6d 6d 73 2d 68 65 6c 70 40 40 67 6e 75 2e 6f 72 67 2e ling.list.at.emms-help@@gnu.org.
faac0 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...@c.--------------------------
faae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fab00 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 40 63 68 ---------.@node.Installation.@ch
fab20 61 70 74 65 72 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 40 63 69 6e 64 65 78 20 69 6e 73 74 apter.Installation..@cindex.inst
fab40 61 6c 6c 61 74 69 6f 6e 0a 0a 45 6d 6d 73 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 76 69 61 20 allation..Emms.is.available.via.
fab60 47 4e 55 20 45 4c 50 41 2c 20 77 68 69 63 68 20 74 61 6b 65 73 20 63 61 72 65 20 6f 66 20 61 6c GNU.ELPA,.which.takes.care.of.al
fab80 6c 20 6f 66 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 65 70 73 20 61 75 74 6f 6d 61 74 l.of.the.following.steps.automat
faba0 69 63 61 6c 6c 79 2e 0a 0a 49 66 20 79 6f 75 20 61 72 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 45 ically...If.you.are.installing.E
fabc0 6d 6d 73 20 6d 61 6e 75 61 6c 6c 79 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 70 75 74 20 61 6c mms.manually,.you.need.to.put.al
fabe0 6c 20 74 68 65 20 2e 65 6c 20 66 69 6c 65 73 0a 6f 66 20 65 6d 6d 73 20 69 6e 20 61 20 64 69 72 l.the..el.files.of.emms.in.a.dir
fac00 65 63 74 6f 72 79 20 69 6e 20 79 6f 75 72 20 6c 6f 61 64 2d 70 61 74 68 2e 20 46 6f 72 20 65 78 ectory.in.your.load-path..For.ex
fac20 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 70 75 74 20 61 6c 6c 0a 74 68 6f 73 65 20 66 69 6c 65 ample,.if.you.put.all.those.file
fac40 73 20 69 6e 74 6f 20 7e 2f 65 6c 69 73 70 2f 65 6d 6d 73 2f 2c 20 74 68 65 6e 20 69 6e 20 79 6f s.into.~/elisp/emms/,.then.in.yo
fac60 75 72 20 7e 2f 2e 65 6d 61 63 73 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 61 64 64 3a 0a 0a 40 6c ur.~/.emacs,.you.should.add:..@l
fac80 69 73 70 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 20 22 7e 2f 65 isp.(add-to-list.'load-path."~/e
faca0 6c 69 73 70 2f 65 6d 6d 73 2f 6c 69 73 70 2f 22 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f 69 lisp/emms/lisp/").@end.lisp.@noi
facc0 6e 64 65 6e 74 0a 0a 40 6d 65 6e 75 0a 2a 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 3a 3a 20 ndent..@menu.*.Compiling.Emms::.
face0 20 20 20 20 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 20 69 6e 74 6f 20 42 79 74 65 2d 43 6f .....Compiling.Emms.into.Byte-Co
fad00 64 65 2e 0a 40 65 6e 64 20 6d 65 6e 75 0a 0a 0a 0a 40 6e 6f 64 65 20 43 6f 6d 70 69 6c 69 6e 67 de..@end.menu....@node.Compiling
fad20 20 45 6d 6d 73 0a 40 73 65 63 74 69 6f 6e 20 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 0a 0a 40 .Emms.@section.Compiling.Emms..@
fad40 63 69 6e 64 65 78 20 63 6f 6d 70 69 6c 69 6e 67 0a 0a 49 66 20 79 6f 75 20 61 72 65 20 75 73 69 cindex.compiling..If.you.are.usi
fad60 6e 67 20 58 45 6d 61 63 73 2c 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 65 64 69 74 ng.XEmacs,.you.will.need.to.edit
fad80 20 40 66 69 6c 65 7b 4d 61 6b 65 66 69 6c 65 7d 20 61 73 0a 66 6f 6c 6c 6f 77 73 20 62 65 66 6f .@file{Makefile}.as.follows.befo
fada0 72 65 20 63 6f 6e 74 69 6e 75 69 6e 67 2e 0a 0a 40 65 78 61 6d 70 6c 65 0a 45 4d 41 43 53 3d 78 re.continuing...@example.EMACS=x
fadc0 65 6d 61 63 73 0a 53 49 54 45 46 4c 41 47 3d 2d 6e 6f 2d 73 69 74 65 2d 66 69 6c 65 0a 40 65 6e emacs.SITEFLAG=-no-site-file.@en
fade0 64 20 65 78 61 6d 70 6c 65 0a 0a 59 6f 75 20 63 61 6e 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 20 d.example..You.can.byte-compile.
fae00 45 6d 6d 73 20 62 79 20 66 69 72 73 74 20 65 6e 74 65 72 69 6e 67 20 74 68 65 20 64 69 72 65 63 Emms.by.first.entering.the.direc
fae20 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 45 6d 6d 73 20 73 6f 75 72 63 65 20 tory.containing.the.Emms.source.
fae40 63 6f 64 65 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 69 6e 76 6f 6b 69 6e 67 3a 0a 0a 40 63 6f code,.followed.by.invoking:..@co
fae60 6d 6d 61 6e 64 7b 6d 61 6b 65 7d 0a 0a 57 68 69 63 68 20 77 69 6c 6c 20 62 79 74 65 20 63 6f 6d mmand{make}..Which.will.byte.com
fae80 70 69 6c 65 20 45 6d 6d 73 2e 20 59 6f 75 20 63 61 6e 20 74 68 65 6e 20 69 6e 76 6f 6b 65 3a 0a pile.Emms..You.can.then.invoke:.
faea0 0a 40 63 6f 6d 6d 61 6e 64 7b 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 7d 0a 0a 57 68 69 63 68 20 77 .@command{make.install}..Which.w
faec0 69 6c 6c 20 69 6e 73 74 61 6c 6c 20 45 6d 6d 73 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 ill.install.Emms.into.your.Emacs
faee0 20 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 72 6f 76 69 64 65 64 20 79 6f 75 20 68 61 76 65 0a .directories.(provided.you.have.
faf00 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 6f 20 64 the.appropriate.permissions.to.d
faf20 6f 20 73 6f 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 29 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 o.so.on.your.system)...Note.that
faf40 20 45 6d 6d 73 20 69 73 20 61 20 6c 69 67 68 74 2d 77 65 69 67 68 74 20 61 6e 64 20 61 67 69 6c .Emms.is.a.light-weight.and.agil
faf60 65 20 70 72 6f 67 72 61 6d 2c 20 79 6f 75 20 63 61 6e 20 74 68 65 72 65 66 6f 72 65 0a 72 75 6e e.program,.you.can.therefore.run
faf80 20 45 6d 6d 73 20 6a 75 73 74 20 66 69 6e 65 20 77 69 74 68 6f 75 74 20 62 79 74 65 20 63 6f 6d .Emms.just.fine.without.byte.com
fafa0 70 69 6c 69 6e 67 20 69 74 2e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d piling.it....@c.----------------
fafc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fafe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 53 65 74 75 70 0a -------------------.@node.Setup.
fb000 40 63 68 61 70 74 65 72 20 53 65 74 75 70 0a 0a 40 63 69 6e 64 65 78 20 73 65 74 75 70 0a 40 63 @chapter.Setup..@cindex.setup.@c
fb020 69 6e 64 65 78 20 73 65 74 74 69 6e 67 20 75 70 20 45 6d 6d 73 0a 40 63 69 6e 64 65 78 20 71 75 index.setting.up.Emms.@cindex.qu
fb040 69 63 6b 20 73 65 74 75 70 0a 0a 54 68 65 20 60 65 6d 6d 73 2d 73 65 74 75 70 27 20 66 65 61 74 ick.setup..The.`emms-setup'.feat
fb060 75 72 65 20 69 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 0a 40 66 69 6c ure.is.provided.by.the.file.@fil
fb080 65 7b 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 7d 2e 20 49 74 20 69 73 20 65 73 73 65 6e 74 69 61 e{emms-setup.el}..It.is.essentia
fb0a0 6c 6c 79 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 73 68 6f 72 74 63 75 74 73 20 66 6f lly.a.collection.of.shortcuts.fo
fb0c0 72 0a 6c 6f 61 64 69 6e 67 20 64 69 66 66 65 72 65 6e 74 20 45 6d 6d 73 20 66 65 61 74 75 72 65 r.loading.different.Emms.feature
fb0e0 73 20 71 75 69 63 6b 6c 79 2c 20 62 75 74 20 65 76 65 72 79 74 68 69 6e 67 20 79 6f 75 20 63 61 s.quickly,.but.everything.you.ca
fb100 6e 20 64 6f 0a 77 69 74 68 20 60 65 6d 6d 73 2d 73 65 74 75 70 27 20 63 61 6e 20 61 6c 73 6f 20 n.do.with.`emms-setup'.can.also.
fb120 62 65 20 64 6f 6e 65 20 6d 61 6e 75 61 6c 6c 79 2e 0a 0a 57 65 20 75 73 65 20 60 65 6d 6d 73 2d be.done.manually...We.use.`emms-
fb140 73 65 74 75 70 27 20 62 79 20 63 61 6c 6c 69 6e 67 20 6f 6e 65 20 6f 66 20 74 68 65 20 73 65 74 setup'.by.calling.one.of.the.set
fb160 75 70 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 69 6e 69 6d up.functions...@defun.emms-minim
fb180 61 6c 69 73 74 69 63 0a 41 6e 20 45 6d 6d 73 20 73 65 74 75 70 20 73 63 72 69 70 74 2e 0a 50 6c alistic.An.Emms.setup.script..Pl
fb1a0 61 79 6c 69 73 74 73 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 62 61 73 69 63 73 20 66 6f 72 20 70 aylists.and.all.the.basics.for.p
fb1c0 6c 61 79 69 6e 67 20 6d 65 64 69 61 2c 20 62 75 74 20 6e 6f 74 68 69 6e 67 20 65 6c 73 65 2e 0a laying.media,.but.nothing.else..
fb1e0 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 61 6c 6c 0a 41 6e 20 45 @end.defun..@defun.emms-all.An.E
fb200 6d 6d 73 20 73 65 74 75 70 20 73 63 72 69 70 74 2e 0a 4c 6f 61 64 73 20 61 6c 6c 20 74 68 65 20 mms.setup.script..Loads.all.the.
fb220 73 74 61 62 6c 65 20 66 65 61 74 75 72 65 73 20 77 68 69 63 68 20 63 6f 6d 65 20 77 69 74 68 20 stable.features.which.come.with.
fb240 74 68 65 20 45 6d 6d 73 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a 40 65 6e 64 20 64 65 66 75 the.Emms.distribution..@end.defu
fb260 6e 0a 0a 60 65 6d 6d 73 2d 73 65 74 75 70 27 20 61 6c 73 6f 20 63 6f 6d 65 73 20 77 69 74 68 20 n..`emms-setup'.also.comes.with.
fb280 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 61 20 a.convenience.function.to.set.a.
fb2a0 64 65 66 61 75 6c 74 0a 6c 69 73 74 20 6f 66 20 6d 65 64 69 61 20 70 6c 61 79 65 72 73 2e 0a 0a default.list.of.media.players...
fb2c0 40 64 65 66 75 6e 20 65 6d 6d 73 2d 64 65 66 61 75 6c 74 2d 70 6c 61 79 65 72 73 0a 53 65 74 20 @defun.emms-default-players.Set.
fb2e0 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 7d 20 74 6f 20 40 76 61 72 7b 65 @var{emms-player-list}.to.@var{e
fb300 6d 6d 73 2d 73 65 74 75 70 2d 64 65 66 61 75 6c 74 2d 70 6c 61 79 65 72 2d 6c 69 73 74 7d 2e 0a mms-setup-default-player-list}..
fb320 40 65 6e 64 20 64 65 66 75 6e 0a 0a 59 6f 75 20 63 61 6e 20 6f 66 20 63 6f 75 72 73 65 20 77 72 @end.defun..You.can.of.course.wr
fb340 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 45 6d 6d 73 20 73 65 74 75 70 20 66 75 6e 63 74 69 6f 6e ite.your.own.Emms.setup.function
fb360 73 20 6c 69 6b 65 20 74 68 65 20 61 62 6f 76 65 0a 62 79 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 s.like.the.above.by.looking.at.t
fb380 68 65 20 65 78 69 73 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 73 he.existing.function.definitions
fb3a0 20 69 6e 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 7d 2e 0a 0a 0a 40 63 20 2d .in.@file{emms-setup.el}....@c.-
fb3c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fb3e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fb400 2d 2d 0a 40 6e 6f 64 65 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 40 63 68 61 70 74 65 72 20 --.@node.Configuration.@chapter.
fb420 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 0a 40 63 69 6e 64 65 78 20 43 6f 6e 66 69 67 75 72 61 Configuration..@cindex.Configura
fb440 74 69 6f 6e 0a 0a 54 68 69 73 20 63 68 61 70 74 65 72 20 64 69 73 63 75 73 73 65 73 20 74 68 65 tion..This.chapter.discusses.the
fb460 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f 66 20 45 6d 6d 73 20 69 6e 20 6d 6f 72 65 20 64 .configuration.of.Emms.in.more.d
fb480 65 74 61 69 6c 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 66 72 61 67 6d etail...The.following.code.fragm
fb4a0 65 6e 74 20 70 72 6f 76 69 64 65 73 20 61 20 6d 69 6e 69 6d 61 6c 20 45 6d 6d 73 20 73 65 74 75 ent.provides.a.minimal.Emms.setu
fb4c0 70 20 77 69 74 68 6f 75 74 0a 75 73 69 6e 67 20 74 68 65 20 6c 61 79 65 72 20 6f 66 20 60 65 6d p.without.using.the.layer.of.`em
fb4e0 6d 73 2d 73 65 74 75 70 27 2e 20 49 74 20 63 61 6e 20 6d 61 79 62 65 20 62 65 20 75 73 65 64 20 ms-setup'..It.can.maybe.be.used.
fb500 74 6f 20 62 65 74 74 65 72 0a 75 6e 64 65 72 73 74 61 6e 64 20 74 68 65 20 69 6e 74 65 72 6e 61 to.better.understand.the.interna
fb520 6c 73 20 6f 66 20 45 6d 6d 73 2e 20 59 6f 75 20 63 61 6e 20 73 65 65 20 68 6f 77 20 45 6d 6d 73 ls.of.Emms..You.can.see.how.Emms
fb540 20 6e 65 65 64 73 20 74 6f 20 6b 6e 6f 77 0a 61 62 6f 75 74 20 70 6c 61 79 65 72 73 20 28 74 68 .needs.to.know.about.players.(th
fb560 65 73 65 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ese.are.defined.in.`emms-player-
fb580 73 69 6d 70 6c 65 27 29 20 61 6e 64 20 61 62 6f 75 74 0a 73 6f 75 72 63 65 73 20 66 6f 72 20 74 simple').and.about.sources.for.t
fb5a0 72 61 63 6b 73 20 28 74 72 69 76 69 61 6c 20 66 69 6c 65 20 73 79 73 74 65 6d 20 62 61 73 65 64 racks.(trivial.file.system.based
fb5c0 20 73 6f 75 72 63 65 73 2c 20 73 75 63 68 20 61 73 20 74 68 69 73 0a 60 65 6d 6d 73 2d 64 69 72 .sources,.such.as.this.`emms-dir
fb5e0 65 63 74 6f 72 79 2d 74 72 65 65 27 2c 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 60 65 6d ectory-tree',.are.defined.in.`em
fb600 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 27 29 2e 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 ms-source-file')...@lisp.(requir
fb620 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 28 72 65 71 75 69 72 65 20 e.'emms-player-simple).(require.
fb640 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 'emms-source-file).(require.'emm
fb660 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 29 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c s-source-playlist).(setq.emms-pl
fb680 61 79 65 72 2d 6c 69 73 74 20 27 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 0a 20 ayer-list.'(emms-player-mpg321..
fb6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 ........................emms-pla
fb6c0 79 65 72 2d 6f 67 67 31 32 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yer-ogg123......................
fb6e0 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 29 29 0a 40 65 6e 64 20 6c ....emms-player-mplayer)).@end.l
fb700 69 73 70 0a 0a 46 6f 72 20 61 20 64 69 73 63 75 73 73 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 isp..For.a.discussion.on.how.to.
fb720 64 65 66 69 6e 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 6c 61 79 65 72 73 2c 20 73 65 65 20 40 define.additional.players,.see.@
fb740 78 72 65 66 7b 53 69 6d 70 6c 65 0a 50 6c 61 79 65 72 73 7d 2e 0a 0a 4d 75 63 68 20 6f 66 20 74 xref{Simple.Players}...Much.of.t
fb760 68 65 20 62 65 68 61 76 69 6f 75 72 20 6f 66 20 45 6d 6d 73 20 63 61 6e 20 62 65 20 63 68 61 6e he.behaviour.of.Emms.can.be.chan
fb780 67 65 64 20 62 79 20 73 65 74 74 69 6e 67 0a 76 61 72 69 61 62 6c 65 73 2e 20 46 6f 72 20 65 78 ged.by.setting.variables..For.ex
fb7a0 61 6d 70 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 ample:..@lisp.(setq.emms-info-as
fb7c0 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 6e 69 6c 29 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 ynchronously.nil).(setq.emms-pla
fb7e0 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 4d 75 73 69 63 2a 22 29 0a 40 65 6e ylist-buffer-name."*Music*").@en
fb800 64 20 6c 69 73 70 0a 0a 54 68 65 20 66 69 72 73 74 20 40 63 6f 64 65 7b 73 65 74 71 7d 20 74 75 d.lisp..The.first.@code{setq}.tu
fb820 72 6e 73 20 6f 66 66 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64 61 74 69 6e rns.off.the.asynchronous.updatin
fb840 67 20 6f 66 20 69 6e 66 6f 20 74 61 67 73 2e 20 54 68 65 0a 73 65 63 6f 6e 64 20 73 65 74 73 20 g.of.info.tags..The.second.sets.
fb860 74 68 65 20 64 65 66 61 75 6c 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 the.default.name.of.the.Emms.pla
fb880 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 41 6e 6f 74 68 65 72 20 77 61 79 20 74 6f 20 63 68 ylist.buffer...Another.way.to.ch
fb8a0 61 6e 67 65 20 45 6d 6d 73 20 76 61 72 69 61 62 6c 65 73 20 69 73 20 74 6f 20 75 73 65 20 74 68 ange.Emms.variables.is.to.use.th
fb8c0 65 20 4d 2d 78 0a 40 63 6f 6d 6d 61 6e 64 7b 63 75 73 74 6f 6d 69 7a 65 7d 20 6d 65 63 68 61 6e e.M-x.@command{customize}.mechan
fb8e0 69 73 6d 20 70 72 6f 76 69 64 65 64 20 62 79 20 45 6d 61 63 73 2e 0a 0a 40 6d 65 6e 75 0a 2a 20 ism.provided.by.Emacs...@menu.*.
fb900 46 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 61 6e 64 20 73 70 65 65 64 3a 3a 20 20 20 20 20 46 69 Finding.files.and.speed::.....Fi
fb920 6e 64 69 6e 67 20 66 69 6c 65 73 20 71 75 69 63 6b 6c 79 20 6f 72 20 70 6f 72 74 61 62 6c 79 2e nding.files.quickly.or.portably.
fb940 0a 2a 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.Setup.Examples::.............
fb960 20 45 78 61 6d 70 6c 65 73 20 6f 66 20 77 61 79 73 20 74 6f 20 73 65 74 75 70 20 45 6d 6d 73 2e .Examples.of.ways.to.setup.Emms.
fb980 0a 40 65 6e 64 20 6d 65 6e 75 0a 0a 0a 0a 40 6e 6f 64 65 20 46 69 6e 64 69 6e 67 20 66 69 6c 65 .@end.menu....@node.Finding.file
fb9a0 73 20 61 6e 64 20 73 70 65 65 64 0a 40 73 65 63 74 69 6f 6e 20 46 69 6e 64 69 6e 67 20 66 69 6c s.and.speed.@section.Finding.fil
fb9c0 65 73 20 61 6e 64 20 73 70 65 65 64 0a 0a 40 63 69 6e 64 65 78 20 66 69 6c 65 73 0a 40 63 69 6e es.and.speed..@cindex.files.@cin
fb9e0 64 65 78 20 73 70 65 65 64 0a 0a 45 6d 6d 73 20 6e 65 65 64 73 20 74 6f 20 74 72 61 76 65 72 73 dex.speed..Emms.needs.to.travers
fba00 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 66 69 6e 64 20 70 e.directories.in.order.to.find.p
fba20 6c 61 79 61 62 6c 65 0a 6d 65 64 69 61 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20 6d 65 74 68 6f layable.media..The.default.metho
fba40 64 20 45 6d 6d 73 20 75 73 65 73 20 74 6f 20 61 63 68 69 76 65 20 74 68 69 73 20 69 73 0a 40 63 d.Emms.uses.to.achive.this.is.@c
fba60 6f 64 65 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 ode{emms-source-file-directory-t
fba80 72 65 65 2d 69 6e 74 65 72 6e 61 6c 7d 20 61 73 20 64 65 66 69 6e 65 64 20 69 6e 0a 40 66 69 6c ree-internal}.as.defined.in.@fil
fbaa0 65 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 7d 2e 20 20 54 68 65 20 61 62 6f e{emms-source-file.el}...The.abo
fbac0 76 65 20 6d 65 74 68 6f 64 20 69 73 20 77 72 69 74 74 65 6e 20 70 6f 72 74 61 62 6c 79 20 61 6e ve.method.is.written.portably.an
fbae0 64 0a 77 69 6c 6c 20 61 6c 77 61 79 73 20 77 6f 72 6b 2c 20 62 75 74 20 6d 69 67 68 74 20 62 65 d.will.always.work,.but.might.be
fbb00 20 74 6f 6f 20 73 6c 6f 77 20 69 66 20 77 65 20 77 61 6e 74 20 74 6f 20 6c 6f 61 64 20 73 65 76 .too.slow.if.we.want.to.load.sev
fbb20 65 72 61 6c 0a 68 75 6e 64 72 65 64 20 74 72 61 63 6b 73 20 28 6f 72 20 6d 6f 72 65 29 2e 0a 0a eral.hundred.tracks.(or.more)...
fbb40 40 66 69 6c 65 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 7d 20 64 65 66 69 6e @file{emms-source-file.el}.defin
fbb60 65 73 20 61 6e 6f 74 68 65 72 20 6d 65 74 68 6f 64 20 66 6f 72 20 66 69 6e 64 69 6e 67 20 66 69 es.another.method.for.finding.fi
fbb80 6c 65 73 2c 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 les,.@code{emms-source-file-dire
fbba0 63 74 6f 72 79 2d 74 72 65 65 2d 66 69 6e 64 7d 20 77 68 69 63 68 20 75 73 65 73 0a 47 4e 55 2f ctory-tree-find}.which.uses.GNU/
fbbc0 66 69 6e 64 2e 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 find..@code{emms-source-file-dir
fbbe0 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 69 6e 64 7d 20 69 73 20 75 73 75 61 6c 6c 79 20 61 6e 0a ectory-tree-find}.is.usually.an.
fbc00 6f 72 64 65 72 20 6f 66 20 6d 61 67 6e 69 74 75 64 65 20 66 61 73 74 65 72 2c 20 62 75 74 20 6f order.of.magnitude.faster,.but.o
fbc20 66 20 63 6f 75 72 73 65 20 77 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20 69 66 20 79 6f 75 20 64 6f f.course.will.not.work.if.you.do
fbc40 20 6e 6f 74 0a 68 61 76 65 20 47 4e 55 2f 66 69 6e 64 20 69 6e 73 74 61 6c 6c 65 64 2e 0a 0a 54 .not.have.GNU/find.installed...T
fbc60 68 65 20 6d 65 74 68 6f 64 20 45 6d 6d 73 20 77 69 6c 6c 20 75 73 65 20 69 73 20 64 65 66 69 6e he.method.Emms.will.use.is.defin
fbc80 65 64 20 69 6e 20 74 68 65 20 63 75 73 74 6f 6d 69 73 61 62 6c 65 20 76 61 72 69 61 62 6c 65 0a ed.in.the.customisable.variable.
fbca0 40 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d @var{emms-source-file-directory-
fbcc0 74 72 65 65 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a 0a 0a 40 6e 6f 64 65 20 53 65 74 75 70 20 45 78 tree-function}....@node.Setup.Ex
fbce0 61 6d 70 6c 65 73 0a 40 73 65 63 74 69 6f 6e 20 53 65 74 75 70 20 45 78 61 6d 70 6c 65 73 0a 0a amples.@section.Setup.Examples..
fbd00 40 63 69 6e 64 65 78 20 65 78 61 6d 70 6c 65 0a 40 63 69 6e 64 65 78 20 63 6f 6e 66 69 67 75 72 @cindex.example.@cindex.configur
fbd20 61 74 69 6f 6e 0a 0a 57 68 61 74 20 66 6f 6c 6c 6f 77 20 61 72 65 20 73 61 6d 70 6c 65 73 20 66 ation..What.follow.are.samples.f
fbd40 72 6f 6d 20 72 65 61 6c 2d 77 6f 72 6c 64 20 45 6d 6d 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f rom.real-world.Emms.configuratio
fbd60 6e 73 20 77 68 69 63 68 20 73 68 6f 77 0a 73 6f 6d 65 20 6f 66 20 74 68 65 20 76 61 72 69 65 74 ns.which.show.some.of.the.variet
fbd80 79 20 61 6e 64 20 62 72 65 61 64 74 68 20 6f 66 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 70 y.and.breadth.of.modifications.p
fbda0 65 6f 70 6c 65 20 6d 61 6b 65 20 74 6f 20 74 68 65 0a 64 65 66 61 75 6c 74 20 45 6d 6d 73 20 73 eople.make.to.the.default.Emms.s
fbdc0 65 74 75 70 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 72 70 74 20 69 6e 63 etup...The.following.excerpt.inc
fbde0 6c 75 64 65 73 20 64 62 75 73 20 69 6e 74 65 67 72 61 74 69 6f 6e 2c 20 64 65 66 69 6e 69 6e 67 ludes.dbus.integration,.defining
fbe00 20 61 20 22 72 65 63 65 6e 74 22 0a 66 69 6c 74 65 72 20 66 6f 72 20 74 68 65 20 40 78 72 65 66 .a."recent".filter.for.the.@xref
fbe20 7b 54 68 65 20 42 72 6f 77 73 65 72 7d 2c 20 70 65 72 73 69 73 74 65 6e 74 20 70 6c 61 79 6c 69 {The.Browser},.persistent.playli
fbe40 73 74 20 76 69 61 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2e 65 6c 7d 2c 20 61 st.via.@file{emms-history.el},.a
fbe60 6e 64 20 65 6e 61 62 6c 69 6e 67 20 73 65 6e 64 69 6e 67 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d nd.enabling.sending.track.inform
fbe80 61 74 69 6f 6e 20 77 69 74 68 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 ation.with.@file{emms-librefm-st
fbea0 72 65 61 6d 2e 65 6c 7d 3a 0a 0a 40 6c 69 73 70 0a 20 20 3b 3b 20 6e 6f 74 69 66 69 63 61 74 69 ream.el}:..@lisp...;;.notificati
fbec0 6f 6e 73 0a 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 64 62 75 73 29 0a 20 20 28 65 6d ons...(require.'emms-dbus)...(em
fbee0 6d 73 2d 64 62 75 73 2d 65 6e 61 62 6c 65 29 0a 20 20 3b 3b 20 63 6f 76 65 72 73 0a 20 20 28 73 ms-dbus-enable)...;;.covers...(s
fbf00 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 20 23 27 65 6d 6d 73 2d 62 etq.emms-browser-covers.#'emms-b
fbf20 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 79 6e 63 29 0a 20 20 rowser-cache-thumbnail-async)...
fbf40 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 73 6d 61 (setq.emms-browser-thumbnail-sma
fbf60 6c 6c 2d 73 69 7a 65 20 36 34 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 ll-size.64)...(setq.emms-browser
fbf80 2d 74 68 75 6d 62 6e 61 69 6c 2d 6d 65 64 69 75 6d 2d 73 69 7a 65 20 31 32 38 29 0a 20 20 3b 3b -thumbnail-medium-size.128)...;;
fbfa0 20 66 69 6c 74 65 72 73 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 .filters...(emms-browser-make-fi
fbfc0 6c 74 65 72 20 22 61 6c 6c 22 20 23 27 69 67 6e 6f 72 65 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f lter."all".#'ignore)...(emms-bro
fbfe0 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 72 65 63 65 6e 74 22 0a 20 20 20 20 20 28 wser-make-filter."recent"......(
fc000 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 20 28 3c 20 33 30 0a 20 20 20 20 20 20 20 20 28 74 69 lambda.(track).(<.30.........(ti
fc020 6d 65 2d 74 6f 2d 6e 75 6d 62 65 72 2d 6f 66 2d 64 61 79 73 0a 20 20 28 74 69 6d 65 2d 73 75 62 me-to-number-of-days...(time-sub
fc040 74 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 28 65 6d tract.(current-time).........(em
fc060 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 6d 74 69 6d 65 20 74 72 61 63 6b 29 29 ms-info-track-file-mtime.track))
fc080 29 29 29 29 0a 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 74 2d 66 69 6c 74 65 72 20 ))))...(emms-browser-set-filter.
fc0a0 28 61 73 73 6f 63 20 22 61 6c 6c 22 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 (assoc."all".emms-browser-filter
fc0c0 73 29 29 0a 20 20 3b 3b 20 68 69 73 74 6f 72 79 0a 20 20 28 65 6d 6d 73 2d 68 69 73 74 6f 72 79 s))...;;.history...(emms-history
fc0e0 2d 6c 6f 61 64 29 0a 20 20 3b 3b 20 6c 69 62 72 65 2d 66 6d 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 -load)...;;.libre-fm...(emms-lib
fc100 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 29 0a 40 65 6e 64 20 6c 69 73 70 refm-scrobbler-enable).@end.lisp
fc120 0a 0a 0a 49 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 74 20 69 73 20 70 6f 73 73 69 62 ...In.the.following.it.is.possib
fc140 6c 65 20 74 6f 20 73 65 65 20 68 6f 77 20 73 6f 6d 65 20 6f 66 20 64 65 66 61 75 6c 74 73 20 61 le.to.see.how.some.of.defaults.a
fc160 72 65 20 73 65 74 0a 72 65 67 61 72 64 69 6e 67 20 73 61 76 69 6e 67 20 70 6c 61 79 6c 69 73 74 re.set.regarding.saving.playlist
fc180 73 2c 20 70 6c 61 79 6c 69 73 74 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c 20 61 64 64 69 6e 67 20 s,.playlist.interaction,.adding.
fc1a0 73 70 65 63 69 61 6c 0a 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 61 20 73 70 65 63 69 66 69 63 20 special.arguments.to.a.specific.
fc1c0 70 6c 61 79 65 72 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 70 player.backend.and.configuring.p
fc1e0 6c 61 79 65 72 2d 73 70 65 63 69 66 69 63 0a 76 6f 6c 75 6d 65 20 63 6f 6e 74 72 6f 6c 20 6f 70 layer-specific.volume.control.op
fc200 74 69 6f 6e 73 20 65 6e 61 62 6c 65 64 20 76 69 61 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 76 6f 6c tions.enabled.via.@file{emms-vol
fc220 75 6d 65 2e 65 6c 7d 2e 0a 0a 40 6c 69 73 70 0a 20 20 28 73 65 74 71 2d 64 65 66 61 75 6c 74 0a ume.el}...@lisp...(setq-default.
fc240 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 ...emms-source-file-default-dire
fc260 63 74 6f 72 79 20 22 2f 6d 6e 74 2f 64 62 2f 6d 65 64 69 61 43 6f 72 65 2f 73 6f 75 6e 64 5f 6d ctory."/mnt/db/mediaCore/sound_m
fc280 75 73 69 63 2f 22 0a 0a 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d usic/".....emms-source-playlist-
fc2a0 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 20 27 6d 33 75 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 default-format.'m3u....emms-play
fc2c0 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 77 68 65 6e 2d 67 6f 20 74 0a 20 20 20 65 6d list-mode-center-when-go.t....em
fc2e0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 ms-playlist-default-major-mode.'
fc300 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 0a 20 20 20 65 6d 6d 73 2d 73 68 6f 77 2d emms-playlist-mode....emms-show-
fc320 66 6f 72 6d 61 74 20 22 4e 50 3a 20 25 73 22 0a 0a 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d format."NP:.%s".....emms-player-
fc340 6c 69 73 74 20 27 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 29 0a 20 20 20 65 6d 6d 73 2d list.'(emms-player-mpv)....emms-
fc360 70 6c 61 79 65 72 2d 6d 70 76 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 27 28 22 50 55 4c 53 45 5f player-mpv-environment.'("PULSE_
fc380 50 52 4f 50 5f 6d 65 64 69 61 2e 72 6f 6c 65 3d 6d 75 73 69 63 22 29 0a 20 20 20 65 6d 6d 73 2d PROP_media.role=music")....emms-
fc3a0 70 6c 61 79 65 72 2d 6d 70 76 2d 70 61 72 61 6d 65 74 65 72 73 20 27 28 22 2d 2d 71 75 69 65 74 player-mpv-parameters.'("--quiet
fc3c0 22 20 22 2d 2d 72 65 61 6c 6c 79 2d 71 75 69 65 74 22 20 22 2d 2d 6e 6f 2d 61 75 64 69 6f 2d 64 "."--really-quiet"."--no-audio-d
fc3e0 69 73 70 6c 61 79 22 20 22 2d 2d 66 6f 72 63 65 2d 77 69 6e 64 6f 77 3d 6e 6f 22 20 22 2d 2d 76 isplay"."--force-window=no"."--v
fc400 6f 3d 6e 75 6c 6c 22 29 0a 0a 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d o=null").....emms-volume-change-
fc420 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 63 68 61 6e 67 65 function.'emms-volume-mpv-change
fc440 0a 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2d 6d 65 74 68 6f 64 20 27 73 6d 61 72 ....emms-volume-mpv-method.'smar
fc460 74 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d t).@end.lisp...@c.--------------
fc480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fc4a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 47 65 74 74 ---------------------.@node.Gett
fc4c0 69 6e 67 20 48 65 6c 70 0a 40 63 68 61 70 74 65 72 20 47 65 74 74 69 6e 67 20 48 65 6c 70 0a 0a ing.Help.@chapter.Getting.Help..
fc4e0 40 63 69 6e 64 65 78 20 6d 61 69 6c 69 6e 67 20 6c 69 73 74 0a 40 63 69 6e 64 65 78 20 77 65 62 @cindex.mailing.list.@cindex.web
fc500 73 69 74 65 0a 0a 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 62 75 67 20 74 6f 20 72 65 70 6f 72 site..If.you.have.a.bug.to.repor
fc520 74 2c 20 6e 65 65 64 20 68 65 6c 70 2c 20 6f 72 20 77 69 73 68 20 74 6f 20 73 75 67 67 65 73 74 t,.need.help,.or.wish.to.suggest
fc540 20 61 20 66 65 61 74 75 72 65 2c 0a 70 6c 65 61 73 65 20 66 65 65 6c 20 66 72 65 65 20 74 6f 20 .a.feature,.please.feel.free.to.
fc560 75 73 65 20 74 68 65 20 45 6d 6d 73 20 6d 61 69 6c 69 6e 67 20 6c 69 73 74 2e 20 20 54 68 65 20 use.the.Emms.mailing.list...The.
fc580 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6c 69 73 74 0a 69 73 20 65 6d 6d 73 2d 68 65 6c 70 address.of.the.list.is.emms-help
fc5a0 40 40 67 6e 75 2e 6f 72 67 2e 20 20 54 6f 20 73 75 62 73 63 72 69 62 65 20 74 6f 20 69 74 2c 20 @@gnu.org...To.subscribe.to.it,.
fc5c0 76 69 73 69 74 0a 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 6c 69 73 74 73 2e 67 6e 75 2e 6f 72 67 2f visit.@url{http://lists.gnu.org/
fc5e0 6d 61 69 6c 6d 61 6e 2f 6c 69 73 74 69 6e 66 6f 2f 65 6d 6d 73 2d 68 65 6c 70 7d 2e 0a 0a 49 66 mailman/listinfo/emms-help}...If
fc600 20 79 6f 75 20 61 72 65 20 66 61 6d 69 6c 69 61 72 20 77 69 74 68 20 74 68 65 20 47 6d 61 6e 65 .you.are.familiar.with.the.Gmane
fc620 20 73 65 72 76 69 63 65 2c 20 74 68 65 72 65 20 69 73 20 61 20 47 6d 61 6e 65 20 6e 65 77 73 67 .service,.there.is.a.Gmane.newsg
fc640 72 6f 75 70 0a 77 68 69 63 68 20 6d 69 72 72 6f 72 73 20 74 68 69 73 20 6d 61 69 6c 69 6e 67 20 roup.which.mirrors.this.mailing.
fc660 61 64 64 72 65 73 73 20 61 74 20 67 6d 61 6e 65 2e 65 6d 61 63 73 2e 65 6d 6d 73 2e 75 73 65 72 address.at.gmane.emacs.emms.user
fc680 2e 0a 0a 45 6d 6d 73 20 61 6c 73 6f 20 68 61 73 20 61 20 77 65 62 73 69 74 65 20 61 74 20 40 75 ...Emms.also.has.a.website.at.@u
fc6a0 72 6c 7b 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 rl{http://www.gnu.org/software/e
fc6c0 6d 6d 73 2f 7d 2e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d mms/}....@c.--------------------
fc6e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fc700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 46 6f 72 6d 61 74 73 20 61 6e ---------------.@node.Formats.an
fc720 64 20 46 72 65 65 64 6f 6d 0a 40 63 68 61 70 74 65 72 20 46 6f 72 6d 61 74 73 20 61 6e 64 20 46 d.Freedom.@chapter.Formats.and.F
fc740 72 65 65 64 6f 6d 0a 0a 40 63 69 6e 64 65 78 20 66 72 65 65 64 6f 6d 0a 40 63 69 6e 64 65 78 20 reedom..@cindex.freedom.@cindex.
fc760 66 6f 72 6d 61 74 0a 0a 45 6d 6d 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 62 format..Emms.is.free.software,.b
fc780 75 74 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 20 69 74 20 63 ut.some.of.the.file.formats.it.c
fc7a0 61 6e 20 70 6c 61 79 20 63 61 72 72 79 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 2c 20 74 68 65 79 an.play.carry.restrictions,.they
fc7c0 20 61 72 65 20 70 72 6f 70 72 69 65 74 61 72 79 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 2e 20 50 .are.proprietary.file.formats..P
fc7e0 72 6f 70 72 69 65 74 61 72 79 20 73 6f 66 74 77 61 72 65 0a 63 6f 6d 70 61 6e 69 65 73 20 61 72 roprietary.software.companies.ar
fc800 65 20 70 75 73 68 69 6e 67 20 6f 75 74 20 61 75 64 69 6f 20 61 6e 64 20 76 69 64 65 6f 20 66 6f e.pushing.out.audio.and.video.fo
fc820 72 6d 61 74 73 20 77 68 69 63 68 20 72 65 73 74 72 69 63 74 20 77 68 65 6e 2c 0a 77 68 65 72 65 rmats.which.restrict.when,.where
fc840 20 61 6e 64 20 68 6f 77 20 79 6f 75 20 63 61 6e 20 70 6c 61 79 20 74 68 65 6d 2c 20 61 6e 64 20 .and.how.you.can.play.them,.and.
fc860 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 65 72 73 20 66 72 6f 6d 20 77 72 69 74 69 6e 67 restrict.developers.from.writing
fc880 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 69 6e 74 65 72 61 63 74 73 20 77 .free.software.which.interacts.w
fc8a0 69 74 68 20 74 68 65 6d 2e 0a 0a 52 65 73 74 72 69 63 74 69 76 65 20 66 69 6c 65 20 66 6f 72 6d ith.them...Restrictive.file.form
fc8c0 61 74 73 20 70 75 74 20 74 68 65 20 63 6f 72 70 6f 72 61 74 65 20 62 6f 74 74 6f 6d 2d 6c 69 6e ats.put.the.corporate.bottom-lin
fc8e0 65 20 62 65 66 6f 72 65 20 74 68 65 0a 70 75 62 6c 69 63 20 69 6e 74 65 72 65 73 74 2e 0a 0a 46 e.before.the.public.interest...F
fc900 6f 72 74 75 6e 61 74 65 6c 79 20 74 68 65 72 65 20 61 72 65 20 61 6c 74 65 72 6e 61 74 69 76 65 ortunately.there.are.alternative
fc920 73 20 6c 69 6b 65 20 4f 67 67 2e 20 4f 67 67 20 69 73 20 61 20 70 72 6f 66 65 73 73 69 6f 6e 61 s.like.Ogg..Ogg.is.a.professiona
fc940 6c 0a 67 72 61 64 65 20 6d 75 6c 74 69 6d 65 64 69 61 20 66 6f 72 6d 61 74 2e 20 4f 67 67 20 56 l.grade.multimedia.format..Ogg.V
fc960 6f 72 62 69 73 20 69 73 20 74 68 65 20 63 6f 6d 70 72 65 73 73 65 64 20 61 75 64 69 6f 20 66 6f orbis.is.the.compressed.audio.fo
fc980 72 6d 61 74 0a 28 6c 69 6b 65 20 4d 50 33 29 2c 20 61 6e 64 20 4f 67 67 20 54 68 65 6f 72 61 20 rmat.(like.MP3),.and.Ogg.Theora.
fc9a0 69 73 20 74 68 65 20 76 69 64 65 6f 20 66 6f 72 6d 61 74 2e 20 46 6f 72 20 6d 6f 72 65 20 69 6e is.the.video.format..For.more.in
fc9c0 66 6f 72 6d 61 74 69 6f 6e 2c 0a 67 6f 20 74 6f 20 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 77 77 77 formation,.go.to.@url{http://www
fc9e0 2e 78 69 70 68 2e 6f 72 67 2f 7d 2e 0a 0a 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 74 72 61 .xiph.org/}...If.you.want.to.tra
fca00 6e 73 63 6f 64 65 20 61 75 64 69 6f 20 69 6e 74 6f 20 61 20 6c 6f 73 73 6c 65 73 73 20 66 6f 72 nscode.audio.into.a.lossless.for
fca20 6d 61 74 2c 20 79 6f 75 20 63 61 6e 20 74 72 79 0a 46 4c 41 43 20 28 46 72 65 65 20 4c 6f 73 73 mat,.you.can.try.FLAC.(Free.Loss
fca40 6c 65 73 73 20 41 75 64 69 6f 20 43 6f 64 65 63 29 2e 20 46 4c 41 43 20 73 74 61 6e 64 73 20 6f less.Audio.Codec)..FLAC.stands.o
fca60 75 74 20 61 73 20 74 68 65 20 66 61 73 74 65 73 74 20 61 6e 64 0a 6d 6f 73 74 20 77 69 64 65 6c ut.as.the.fastest.and.most.widel
fca80 79 20 73 75 70 70 6f 72 74 65 64 20 6c 6f 73 73 6c 65 73 73 20 61 75 64 69 6f 20 63 6f 64 65 63 y.supported.lossless.audio.codec
fcaa0 2c 20 61 6e 64 20 74 68 65 20 6f 6e 6c 79 20 6f 6e 65 20 74 68 61 74 20 61 74 0a 6f 6e 63 65 20 ,.and.the.only.one.that.at.once.
fcac0 69 73 20 6e 6f 6e 2d 70 72 6f 70 72 69 65 74 61 72 79 2c 20 69 73 20 75 6e 65 6e 63 75 6d 62 65 is.non-proprietary,.is.unencumbe
fcae0 72 65 64 20 62 79 20 70 61 74 65 6e 74 73 20 61 6e 64 20 68 61 73 20 74 68 65 20 73 6f 75 72 63 red.by.patents.and.has.the.sourc
fcb00 65 0a 63 6f 64 65 20 66 6f 72 20 61 20 72 65 66 65 72 65 6e 63 65 20 69 6d 70 6c 65 6d 65 6e 74 e.code.for.a.reference.implement
fcb20 61 74 69 6f 6e 20 66 72 65 65 6c 79 20 61 76 61 69 6c 61 62 6c 65 2e 20 46 6f 72 20 6d 6f 72 65 ation.freely.available..For.more
fcb40 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 46 4c 41 43 2c 20 67 6f 20 74 6f 20 40 .information.about.FLAC,.go.to.@
fcb60 75 72 6c 7b 68 74 74 70 3a 2f 2f 66 6c 61 63 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f url{http://flac.sourceforge.net/
fcb80 7d 2e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d }....@c.------------------------
fcba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fcbc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 -----------.@node.Basic.Commands
fcbe0 0a 40 63 68 61 70 74 65 72 20 42 61 73 69 63 20 43 6f 6d 6d 61 6e 64 73 0a 0a 40 63 69 6e 64 65 .@chapter.Basic.Commands..@cinde
fcc00 78 20 62 61 73 69 63 20 63 6f 6d 6d 61 6e 64 73 0a 40 63 69 6e 64 65 78 20 63 6f 6d 6d 61 6e 64 x.basic.commands.@cindex.command
fcc20 73 2c 20 62 61 73 69 63 0a 0a 42 65 66 6f 72 65 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 s,.basic..Before.you.can.use.the
fcc40 20 69 6e 74 65 72 66 61 63 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 79 6f 75 20 6e 65 65 64 20 61 20 .interface.commands,.you.need.a.
fcc60 70 6c 61 79 6c 69 73 74 20 74 6f 0a 73 74 61 72 74 20 77 69 74 68 2e 20 54 68 65 20 66 6f 6c 6c playlist.to.start.with..The.foll
fcc80 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 6c 6c 6f 77 20 79 6f 75 20 74 6f 20 61 64 64 20 owing.commands.allow.you.to.add.
fcca0 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 0a 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 64 69 66 to.the.current.playlist.from.dif
fccc0 66 65 72 65 6e 74 20 73 6f 75 72 63 65 73 3a 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 63 ferent.sources:..Note.that.the.c
fcce0 6f 6d 6d 61 6e 64 73 20 77 69 74 68 20 74 68 65 20 60 60 65 6d 6d 73 2d 61 64 64 2d 27 27 20 70 ommands.with.the.``emms-add-''.p
fcd00 72 65 66 69 78 20 61 64 64 20 74 68 65 20 73 6f 75 72 63 65 20 74 6f 0a 74 68 65 20 70 6c 61 79 refix.add.the.source.to.the.play
fcd20 6c 69 73 74 20 62 75 74 20 64 6f 20 6e 6f 74 20 73 74 61 72 74 20 70 6c 61 79 69 6e 67 20 69 74 list.but.do.not.start.playing.it
fcd40 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 20 43 6f 6e 76 65 72 73 65 6c 79 2c 20 74 68 65 0a 63 6f .immediately..Conversely,.the.co
fcd60 6d 6d 61 6e 64 73 20 77 69 74 68 20 74 68 65 20 60 60 65 6d 6d 73 2d 70 6c 61 79 2d 27 27 20 70 mmands.with.the.``emms-play-''.p
fcd80 72 65 66 69 78 20 62 65 67 69 6e 20 70 6c 61 79 69 6e 67 20 74 68 65 20 74 72 61 63 6b 0a 69 6d refix.begin.playing.the.track.im
fcda0 6d 65 64 69 61 74 65 6c 79 2e 0a 0a 54 68 69 73 20 63 72 65 61 74 65 73 20 74 68 65 20 61 63 74 mediately...This.creates.the.act
fcdc0 69 76 65 20 70 6c 61 79 6c 69 73 74 20 61 6e 64 20 71 75 65 75 65 20 61 73 20 6e 65 65 64 65 64 ive.playlist.and.queue.as.needed
fcde0 2e 20 54 68 65 20 61 63 74 69 76 65 20 71 75 65 75 65 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 ..The.active.queue.will.automati
fce00 63 61 6c 6c 79 20 73 77 69 74 63 68 20 74 6f 20 61 6e 79 20 70 6c 61 79 6c 69 73 74 73 20 74 68 cally.switch.to.any.playlists.th
fce20 61 74 20 61 72 65 20 62 72 6f 77 73 65 64 20 74 6f 20 73 75 63 68 20 74 68 61 74 20 74 68 65 20 at.are.browsed.to.such.that.the.
fce40 6e 65 78 74 20 73 6f 6e 67 20 70 6c 61 79 65 64 20 77 69 6c 6c 20 63 6f 6d 65 20 66 72 6f 6d 20 next.song.played.will.come.from.
fce60 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 76 69 65 77 65 64 20 70 6c 61 79 6c 69 73 74 2e 0a 0a the.currently.viewed.playlist...
fce80 4c 6f 63 6b 69 6e 67 20 74 68 65 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 Locking.the.active.playlist.queu
fcea0 65 20 74 6f 20 69 74 73 20 70 6c 61 79 6c 69 73 74 20 77 69 6c 6c 20 70 72 65 76 65 6e 74 20 69 e.to.its.playlist.will.prevent.i
fcec0 74 20 66 72 6f 6d 20 63 68 61 6e 67 69 6e 67 2c 20 61 6c 6c 6f 77 69 6e 67 20 66 6f 72 20 62 72 t.from.changing,.allowing.for.br
fcee0 6f 77 73 69 6e 67 20 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 73 65 6e 64 69 owsing.other.playlists.and.sendi
fcf00 6e 67 20 73 6f 6e 67 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 ng.songs.to.the.current.active.p
fcf20 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 6d 2e 0a 0a 4c 6f 63 6b 69 6e 67 20 74 68 65 20 laylist.from.them...Locking.the.
fcf40 71 75 65 75 65 20 74 6f 20 69 74 73 20 70 6c 61 79 6c 69 73 74 20 61 6c 6c 6f 77 73 20 66 6f 72 queue.to.its.playlist.allows.for
fcf60 20 6c 69 76 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 63 75 72 61 74 65 64 20 70 6c 61 79 .live.creation.of.a.curated.play
fcf80 6c 69 73 74 20 62 79 20 62 72 6f 77 73 69 6e 67 20 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 73 list.by.browsing.other.playlists
fcfa0 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 6d 75 73 69 63 20 64 61 74 61 62 61 73 65 20 61 .as.well.as.the.music.database.a
fcfc0 6e 64 20 66 69 6c 65 73 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6c 65 nd.files...@defun.emms-play-file
fcfe0 20 66 69 6c 65 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 .file.A.source.for.a.single.file
fd000 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 66 69 6c 65 7d 2c 20 6f 72 20 71 75 65 72 69 65 64 .-.either.@var{file},.or.queried
fd020 20 66 72 6f 6d 20 74 68 65 0a 75 73 65 72 2e 20 49 66 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 .from.the.user..If.called.with.a
fd040 20 70 72 65 66 69 78 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 6c .prefix.the.file.will.be.added.l
fd060 69 6b 65 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 7d 2e 0a 40 65 6e ike.@command{emms-add-file}..@en
fd080 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 20 66 69 6c d.defun.@defun.emms-add-file.fil
fd0a0 65 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 2d 20 65 e.A.source.for.a.single.file.-.e
fd0c0 69 74 68 65 72 20 40 76 61 72 7b 66 69 6c 65 7d 2c 20 6f 72 20 71 75 65 72 69 65 64 20 66 72 6f ither.@var{file},.or.queried.fro
fd0e0 6d 0a 74 68 65 20 75 73 65 72 2e 20 49 66 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 72 65 m.the.user..If.called.with.a.pre
fd100 66 69 78 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 20 70 6c 61 79 65 64 20 6c 69 6b 65 fix.the.file.will.be.played.like
fd120 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6c 65 7d 2e 0a 40 65 6e 64 20 .@command{emms-play-file}..@end.
fd140 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 defun.@defun.emms-play-directory
fd160 20 64 69 72 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 .dir.A.source.for.a.whole.direct
fd180 6f 72 79 20 74 72 65 65 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 64 69 72 7d 2c 20 6f 72 20 ory.tree.-.either.@var{dir},.or.
fd1a0 71 75 65 72 69 65 64 0a 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 queried.from.the.user..@end.defu
fd1c0 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 0a n.@defun.emms-add-directory.dir.
fd1e0 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 A.source.for.a.whole.directory.t
fd200 72 65 65 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 64 69 72 7d 2c 20 6f 72 20 71 75 65 72 69 ree.-.either.@var{dir},.or.queri
fd220 65 64 0a 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 ed.from.the.user..@end.defun.@de
fd240 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 64 69 72 fun.emms-play-directory-tree.dir
fd260 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 .A.source.for.multiple.directory
fd280 20 74 72 65 65 73 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 64 69 72 7d 2c 20 6f 72 20 74 68 .trees.-.either.@var{dir},.or.th
fd2a0 65 0a 76 61 6c 75 65 20 6f 66 20 40 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 e.value.of.@var{emms-source-file
fd2c0 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a -default-directory}..@end.defun.
fd2e0 40 64 65 66 75 6e 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 64 @defun.emms-add-directory-tree.d
fd300 69 72 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f ir.A.source.for.multiple.directo
fd320 72 79 20 74 72 65 65 73 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 64 69 72 7d 2c 20 6f 72 20 ry.trees.-.either.@var{dir},.or.
fd340 74 68 65 0a 76 61 6c 75 65 20 6f 66 20 40 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 the.value.of.@var{emms-source-fi
fd360 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 7d 2e 0a 40 65 6e 64 20 64 65 66 75 le-default-directory}..@end.defu
fd380 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 2d 75 72 6c 20 75 72 6c 0a 41 20 73 6f 75 n.@defun.emms-play-url.url.A.sou
fd3a0 72 63 65 20 66 6f 72 20 61 6e 20 40 76 61 72 7b 75 72 6c 7d 20 2d 20 66 6f 72 20 65 78 61 6d 70 rce.for.an.@var{url}.-.for.examp
fd3c0 6c 65 2c 20 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 6f 76 65 72 20 68 74 74 70 2c 0a 70 6c 61 le,.for.streaming.over.http,.pla
fd3e0 79 69 6e 67 20 6f 76 65 72 20 73 66 74 70 2c 20 6f 72 20 70 6c 61 79 69 6e 67 20 6c 6f 63 61 6c ying.over.sftp,.or.playing.local
fd400 20 66 69 6c 65 73 20 28 77 69 74 68 20 74 68 65 20 60 60 66 69 6c 65 3a 2f 2f 27 27 0a 73 63 68 .files.(with.the.``file://''.sch
fd420 65 6d 65 29 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 61 64 64 eme)..@end.defun.@defun.emms-add
fd440 2d 75 72 6c 20 75 72 6c 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 61 6e 20 40 76 61 72 7b 75 72 -url.url.A.source.for.an.@var{ur
fd460 6c 7d 20 2d 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 l}.-.for.example,.for.streaming.
fd480 6f 76 65 72 20 68 74 74 70 2c 0a 70 6c 61 79 69 6e 67 20 6f 76 65 72 20 73 66 74 70 2c 20 6f 72 over.http,.playing.over.sftp,.or
fd4a0 20 70 6c 61 79 69 6e 67 20 6c 6f 63 61 6c 20 66 69 6c 65 73 20 28 77 69 74 68 20 74 68 65 20 60 .playing.local.files.(with.the.`
fd4c0 60 66 69 6c 65 3a 2f 2f 27 27 0a 73 63 68 65 6d 65 29 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 `file://''.scheme)..@end.defun.@
fd4e0 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 20 70 6c 61 79 6c 69 73 defun.emms-play-playlist.playlis
fd500 74 0a 41 20 73 6f 75 72 63 65 20 66 6f 72 20 74 68 65 20 4d 33 75 20 6f 72 20 50 4c 53 20 70 6c t.A.source.for.the.M3u.or.PLS.pl
fd520 61 79 6c 69 73 74 20 66 6f 72 6d 61 74 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 20 40 76 61 72 aylist.format.from.the.file.@var
fd540 7b 70 6c 61 79 6c 69 73 74 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d {playlist}..@end.defun.@defun.em
fd560 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 20 70 6c 61 79 6c 69 73 74 0a 41 20 73 6f 75 72 63 ms-add-playlist.playlist.A.sourc
fd580 65 20 66 6f 72 20 74 68 65 20 4d 33 75 20 6f 72 20 50 4c 53 20 70 6c 61 79 6c 69 73 74 20 66 6f e.for.the.M3u.or.PLS.playlist.fo
fd5a0 72 6d 61 74 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 20 40 76 61 72 7b 70 6c 61 79 6c 69 73 74 rmat.from.the.file.@var{playlist
fd5c0 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 2d 66 }..@end.defun.@defun.emms-play-f
fd5e0 69 6e 64 20 64 69 72 20 72 65 67 65 78 70 0a 41 20 73 6f 75 72 63 65 20 74 68 61 74 20 77 69 6c ind.dir.regexp.A.source.that.wil
fd600 6c 20 66 69 6e 64 20 66 69 6c 65 73 20 69 6e 20 40 76 61 72 7b 64 69 72 7d 20 6f 72 0a 40 76 61 l.find.files.in.@var{dir}.or.@va
fd620 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 r{emms-source-file-default-direc
fd640 74 6f 72 79 7d 20 77 68 69 63 68 20 6d 61 74 63 68 20 40 76 61 72 7b 72 65 67 65 78 70 7d 2e 0a tory}.which.match.@var{regexp}..
fd660 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 61 64 64 2d 66 69 6e 64 20 @end.defun.@defun.emms-add-find.
fd680 64 69 72 20 72 65 67 65 78 70 0a 41 20 73 6f 75 72 63 65 20 74 68 61 74 20 77 69 6c 6c 20 66 69 dir.regexp.A.source.that.will.fi
fd6a0 6e 64 20 66 69 6c 65 73 20 69 6e 20 40 76 61 72 7b 64 69 72 7d 20 6f 72 0a 40 76 61 72 7b 65 6d nd.files.in.@var{dir}.or.@var{em
fd6c0 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 ms-source-file-default-directory
fd6e0 7d 20 77 68 69 63 68 20 6d 61 74 63 68 20 40 76 61 72 7b 72 65 67 65 78 70 7d 2e 0a 40 65 6e 64 }.which.match.@var{regexp}..@end
fd700 20 64 65 66 75 6e 0a 0a 54 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 .defun..The.basic.functionality.
fd720 6f 66 20 45 6d 6d 73 20 69 73 20 6a 75 73 74 20 74 6f 20 70 6c 61 79 20 6d 75 73 69 63 20 77 69 of.Emms.is.just.to.play.music.wi
fd740 74 68 6f 75 74 20 62 65 69 6e 67 0a 6e 6f 74 69 63 65 64 2e 20 49 74 20 70 72 6f 76 69 64 65 73 thout.being.noticed..It.provides
fd760 20 61 20 66 65 77 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 73 6b 69 70 20 74 68 65 20 63 75 72 72 .a.few.commands.to.skip.the.curr
fd780 65 6e 74 20 74 72 61 63 6b 20 61 6e 64 0a 73 75 63 68 2c 20 62 75 74 20 6f 74 68 65 72 20 74 68 ent.track.and.such,.but.other.th
fd7a0 61 6e 20 74 68 61 74 20 69 74 20 64 6f 65 73 6e 27 74 20 73 68 6f 77 20 75 70 2e 20 45 6d 6d 73 an.that.it.doesn't.show.up..Emms
fd7c0 20 70 72 6f 76 69 64 65 73 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 62 61 73 69 63 20 75 73 .provides.the.following.basic.us
fd7e0 65 72 20 63 6f 6d 6d 61 6e 64 73 20 28 77 68 69 63 68 20 79 6f 75 20 6d 69 67 68 74 20 77 61 6e er.commands.(which.you.might.wan
fd800 74 20 74 6f 20 62 69 6e 64 20 74 6f 0a 6b 65 79 73 74 72 6f 6b 65 73 29 3a 0a 0a 40 64 65 66 75 t.to.bind.to.keystrokes):..@defu
fd820 6e 20 65 6d 6d 73 2d 73 74 61 72 74 0a 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 63 n.emms-start.Start.playing.the.c
fd840 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 urrent.playlist.@end.defun.@defu
fd860 6e 20 65 6d 6d 73 2d 73 74 6f 70 0a 53 74 6f 70 20 70 6c 61 79 69 6e 67 0a 40 65 6e 64 20 64 65 n.emms-stop.Stop.playing.@end.de
fd880 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6e 65 78 74 0a 53 74 61 72 74 20 70 6c 61 79 69 fun.@defun.emms-next.Start.playi
fd8a0 6e 67 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 ng.the.next.track.in.the.playlis
fd8c0 74 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 72 65 76 69 6f 75 t.@end.defun.@defun.emms-previou
fd8e0 73 0a 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 s.Start.playing.previous.track.i
fd900 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e n.the.playlist.@end.defun.@defun
fd920 20 65 6d 6d 73 2d 73 68 75 66 66 6c 65 0a 53 68 75 66 66 6c 65 20 74 68 65 20 63 75 72 72 65 6e .emms-shuffle.Shuffle.the.curren
fd940 74 20 70 6c 61 79 6c 69 73 74 2e 20 54 68 69 73 20 75 73 65 73 0a 40 76 61 72 7b 65 6d 6d 73 2d t.playlist..This.uses.@var{emms-
fd960 70 6c 61 79 6c 69 73 74 2d 73 68 75 66 66 6c 65 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a 40 65 6e 64 playlist-shuffle-function}..@end
fd980 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 72 74 0a 53 6f 72 74 20 74 68 65 .defun.@defun.emms-sort.Sort.the
fd9a0 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 20 54 68 69 73 20 75 73 65 73 0a 40 76 61 .current.playlist..This.uses.@va
fd9c0 72 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a r{emms-playlist-sort-function}..
fd9e0 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 6f 63 6b 2d 71 75 65 75 @end.defun.@defun.emms-lock-queu
fda00 65 0a 4c 6f 63 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 e.Lock.the.current.active.playli
fda20 73 74 20 71 75 65 75 65 20 74 6f 20 69 74 73 20 70 6c 61 79 6c 69 73 74 2e 0a 40 76 61 72 7b 65 st.queue.to.its.playlist..@var{e
fda40 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a 40 65 6e mms-playlist-sort-function}..@en
fda60 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 75 6e 6c 6f 63 6b 2d 71 75 65 75 65 d.defun.@defun.emms-unlock-queue
fda80 0a 55 6e 6c 6f 63 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 6c 61 79 6c .Unlock.the.current.active.playl
fdaa0 69 73 74 20 71 75 65 75 65 20 66 72 6f 6d 20 69 74 73 20 70 6c 61 79 6c 69 73 74 2e 0a 40 76 61 ist.queue.from.its.playlist..@va
fdac0 72 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a r{emms-playlist-sort-function}..
fdae0 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 6f 77 20 26 6f 70 74 @end.defun.@defun.emms-show.&opt
fdb00 69 6f 6e 61 6c 20 69 6e 73 65 72 74 70 0a 44 65 73 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 ional.insertp.Describe.the.curre
fdb20 6e 74 20 45 6d 6d 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e nt.Emms.track.in.the.minibuffer.
fdb40 20 49 66 20 40 76 61 72 7b 69 6e 73 65 72 74 70 7d 20 69 73 0a 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e .If.@var{insertp}.is.non-nil,.in
fdb60 73 65 72 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 63 75 sert.the.description.into.the.cu
fdb80 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 2e 20 54 68 69 73 0a 66 75 6e 63 74 rrent.buffer.instead..This.funct
fdba0 69 6f 6e 20 75 73 65 73 20 40 76 61 72 7b 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d 61 74 7d 20 ion.uses.@var{emms-show-format}.
fdbc0 74 6f 20 66 6f 72 6d 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 40 65 6e to.format.the.current.track..@en
fdbe0 64 20 64 65 66 75 6e 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d d.defun.The.command.@command{emm
fdc00 73 2d 73 68 6f 77 2d 61 6c 6c 7d 20 77 69 6c 6c 20 70 6f 70 20 75 70 20 61 20 77 69 6e 64 6f 77 s-show-all}.will.pop.up.a.window
fdc20 20 77 69 74 68 20 74 68 65 0a 63 6f 6d 70 6c 65 74 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 .with.the.complete.information.a
fdc40 62 6f 75 74 20 74 68 65 20 74 72 61 63 6b 20 62 65 69 6e 67 0a 70 6c 61 79 65 64 2e 20 40 63 6f bout.the.track.being.played..@co
fdc60 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 7d 20 69 73 20 70 72 6f 76 69 64 65 64 mmand{emms-show-all}.is.provided
fdc80 20 62 79 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2e 65 6c 7d 2c 20 77 68 69 .by.@file{emms-show-all.el},.whi
fdca0 63 68 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 60 65 6d 6d 73 2d 61 6c 6c 27 ch.is.included.in.the.`emms-all'
fdcc0 20 73 65 74 75 70 0a 6c 65 76 65 6c 2e 20 53 65 65 20 40 78 72 65 66 7b 53 65 74 75 70 7d 2e 0a .setup.level..See.@xref{Setup}..
fdce0 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..@c.---------------------------
fdd00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fdd20 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 0a 40 63 68 --------.@node.The.Core.File.@ch
fdd40 61 70 74 65 72 20 54 68 65 20 43 6f 72 65 20 46 69 6c 65 0a 0a 40 63 69 6e 64 65 78 20 63 6f 72 apter.The.Core.File..@cindex.cor
fdd60 65 20 66 69 6c 65 0a 40 63 69 6e 64 65 78 20 68 65 61 72 74 20 6f 66 20 45 6d 6d 73 0a 40 63 69 e.file.@cindex.heart.of.Emms.@ci
fdd80 6e 64 65 78 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 54 68 65 20 63 6f ndex.primitive.functions..The.co
fdda0 72 65 20 66 69 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2e 65 6c 7d 20 70 72 6f 76 69 64 65 73 20 re.file.@file{emms.el}.provides.
fddc0 74 68 65 20 61 6c 6c 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 0a 70 6c 61 79 the.all.basic.functions.for.play
fdde0 69 6e 67 20 6d 75 73 69 63 2c 20 67 65 6e 65 72 61 74 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 ing.music,.generating.playlists.
fde00 61 6e 64 20 64 65 66 69 6e 69 6e 67 20 70 6c 61 79 65 72 73 2e 0a 0a 40 6d 65 6e 75 0a 2a 20 55 and.defining.players...@menu.*.U
fde20 73 65 72 20 56 61 72 69 61 62 6c 65 73 3a 3a 20 20 20 20 20 56 61 72 69 61 62 6c 65 73 20 66 6f ser.Variables::.....Variables.fo
fde40 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 74 77 65 61 6b 2e 0a 2a 20 48 6f 6f 6b 73 3a 3a 20 20 r.the.user.to.tweak..*.Hooks::..
fde60 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 6f 6b 73 20 66 6f 72 20 69 6d 70 6f 72 74 61 6e 74 20 ............Hooks.for.important.
fde80 45 6d 6d 73 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 2a 20 43 6f 72 65 20 46 75 6e 63 74 69 6f 6e 73 Emms.functions..*.Core.Functions
fdea0 3a 3a 20 20 20 20 20 50 72 6f 76 69 64 69 6e 67 20 74 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 ::.....Providing.the.basic.funct
fdec0 69 6f 6e 61 6c 69 74 79 20 6f 66 20 45 6d 6d 73 2e 0a 40 65 6e 64 20 6d 65 6e 75 0a 0a 0a 0a 40 ionality.of.Emms..@end.menu....@
fdee0 6e 6f 64 65 20 55 73 65 72 20 56 61 72 69 61 62 6c 65 73 0a 40 73 65 63 74 69 6f 6e 20 55 73 65 node.User.Variables.@section.Use
fdf00 72 20 56 61 72 69 61 62 6c 65 73 0a 0a 40 63 69 6e 64 65 78 20 75 73 65 72 20 76 61 72 69 61 62 r.Variables..@cindex.user.variab
fdf20 6c 65 73 0a 40 63 69 6e 64 65 78 20 6f 70 74 69 6f 6e 73 0a 0a 54 68 65 20 63 6f 72 65 20 66 69 les.@cindex.options..The.core.fi
fdf40 6c 65 20 64 65 66 69 6e 65 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 75 73 65 72 20 76 61 72 69 le.defines.a.number.of.user.vari
fdf60 61 62 6c 65 73 2e 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 ables...@defopt.emms-player-list
fdf80 0a 41 20 6c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 45 6d 6d 73 20 63 61 6e 20 75 73 65 2e .A.list.of.players.Emms.can.use.
fdfa0 20 59 6f 75 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 69 73 20 69 6e 20 6f 72 64 65 72 20 74 .You.need.to.set.this.in.order.t
fdfc0 6f 20 75 73 65 0a 45 6d 6d 73 20 74 6f 20 70 6c 61 79 20 6d 65 64 69 61 2e 0a 40 65 6e 64 20 64 o.use.Emms.to.play.media..@end.d
fdfe0 65 66 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d 61 74 0a 54 efopt.@defopt.emms-show-format.T
fe000 68 65 20 66 6f 72 6d 61 74 20 74 6f 20 75 73 65 20 66 6f 72 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d he.format.to.use.for.@command{em
fe020 6d 73 2d 73 68 6f 77 7d 2e 20 41 6e 79 20 22 25 73 22 20 69 73 20 72 65 70 6c 61 63 65 64 20 62 ms-show}..Any."%s".is.replaced.b
fe040 79 0a 77 68 61 74 20 40 76 61 72 7b 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 y.what.@var{emms-track-descripti
fe060 6f 6e 2d 66 75 6e 63 74 69 6f 6e 7d 20 72 65 74 75 72 6e 73 20 66 6f 72 20 74 68 65 20 63 75 72 on-function}.returns.for.the.cur
fe080 72 65 6e 74 6c 79 0a 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 2e 0a 40 65 6e 64 20 64 65 66 6f 70 rently.playing.track..@end.defop
fe0a0 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 0a 4e t.@defopt.emms-repeat-playlist.N
fe0c0 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 73 68 6f 75 on-nil.if.the.Emms.playlist.shou
fe0e0 6c 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 70 65 61 74 20 74 68 65 20 70 6c 61 79 ld.automatically.repeat.the.play
fe100 6c 69 73 74 2e 0a 49 66 20 6e 69 6c 2c 20 70 6c 61 79 62 61 63 6b 20 77 69 6c 6c 20 73 74 6f 70 list..If.nil,.playback.will.stop
fe120 20 77 68 65 6e 20 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 20 66 69 6e 69 73 68 65 73 20 70 6c .when.the.last.track.finishes.pl
fe140 61 79 69 6e 67 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d aying..@end.defopt.@defopt.emms-
fe160 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 0a 46 75 6e 63 74 track-description-function.Funct
fe180 69 6f 6e 20 66 6f 72 20 64 65 73 63 72 69 62 69 6e 67 20 61 6e 20 45 6d 6d 73 20 74 72 61 63 6b ion.for.describing.an.Emms.track
fe1a0 20 69 6e 20 61 20 75 73 65 72 2d 66 72 69 65 6e 64 6c 79 20 77 61 79 2e 0a 40 65 6e 64 20 64 65 .in.a.user-friendly.way..@end.de
fe1c0 66 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 73 6f 72 74 2d 6c 65 73 73 70 2d 66 75 6e fopt.@defopt.emms-sort-lessp-fun
fe1e0 63 74 69 6f 6e 0a 41 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 74 ction.A.function.that.compares.t
fe200 77 6f 20 74 72 61 63 6b 73 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 69 wo.tracks,.and.returns.non-nil.i
fe220 66 20 74 68 65 20 66 69 72 73 74 0a 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 73 6f 72 74 f.the.first.track.should.be.sort
fe240 65 64 20 62 65 66 6f 72 65 20 74 68 65 20 73 65 63 6f 6e 64 20 28 73 65 65 20 61 6c 73 6f 20 40 ed.before.the.second.(see.also.@
fe260 63 6f 64 65 7b 73 6f 72 74 7d 29 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 0a 0a 0a 40 6e 6f 64 code{sort})..@end.defopt....@nod
fe280 65 20 48 6f 6f 6b 73 0a 40 73 65 63 74 69 6f 6e 20 48 6f 6f 6b 73 0a 0a 40 63 69 6e 64 65 78 20 e.Hooks.@section.Hooks..@cindex.
fe2a0 68 6f 6f 6b 73 0a 40 63 69 6e 64 65 78 20 61 64 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 61 6c 69 hooks.@cindex.adding.functionali
fe2c0 74 79 0a 0a 54 68 65 20 63 6f 72 65 20 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 68 6f 6f 6b 20 ty..The.core.file.provides.hook.
fe2e0 76 61 72 69 61 62 6c 65 73 20 66 6f 72 20 74 68 65 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e variables.for.the.basic.function
fe300 61 6c 69 74 79 20 6f 66 0a 45 6d 6d 73 2e 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 ality.of.Emms...@defopt.emms-pla
fe320 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 0a 41 20 68 6f 6f 6b 20 72 75 6e 20 77 68 65 6e yer-started-hook.A.hook.run.when
fe340 20 61 6e 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 73 74 61 72 74 65 64 20 70 6c 61 79 69 6e 67 2e .an.Emms.player.started.playing.
fe360 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 .@end.defopt.@defopt.emms-player
fe380 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 0a 41 20 68 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e -stopped-hook.A.hook.run.when.an
fe3a0 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 73 74 6f 70 70 65 64 20 70 6c 61 79 69 6e 67 2e 20 53 65 .Emms.player.stopped.playing..Se
fe3c0 65 20 61 6c 73 6f 0a 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 e.also.@var{emms-player-finished
fe3e0 2d 68 6f 6f 6b 7d 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 -hook}..@end.defopt.@defopt.emms
fe400 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 65 64 2d 68 6f 6f 6b 0a 48 -playlist-source-inserted-hook.H
fe420 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 20 73 6f 75 72 63 65 20 67 6f 74 20 69 6e 73 65 72 74 ook.run.when.a.source.got.insert
fe440 65 64 20 69 6e 74 6f 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 20 54 68 65 20 62 75 66 66 65 72 ed.into.the.playlist..The.buffer
fe460 20 69 73 0a 6e 61 72 72 6f 77 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 74 72 61 63 6b 73 2e 0a .is.narrowed.to.the.new.tracks..
fe480 40 65 6e 64 20 64 65 66 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 @end.defopt.@defopt.emms-playlis
fe4a0 74 2d 73 65 6c 65 63 74 69 6f 6e 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 0a 48 6f 6f 6b 20 72 75 t-selection-changed-hook.Hook.ru
fe4c0 6e 20 61 66 74 65 72 20 61 6e 6f 74 68 65 72 20 74 72 61 63 6b 20 69 73 20 73 65 6c 65 63 74 65 n.after.another.track.is.selecte
fe4e0 64 20 69 6e 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 2e 0a 40 65 6e 64 20 64 65 66 d.in.the.Emms.playlist..@end.def
fe500 6f 70 74 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 65 opt.@defopt.emms-playlist-cleare
fe520 64 2d 68 6f 6f 6b 0a 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 74 68 65 20 63 75 72 72 65 6e d-hook.Hook.run.after.the.curren
fe540 74 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 69 73 20 63 6c 65 61 72 65 64 2e 20 54 68 69 73 t.Emms.playlist.is.cleared..This
fe560 20 68 61 70 70 65 6e 73 20 62 6f 74 68 0a 77 68 65 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 .happens.both.when.the.playlist.
fe580 69 73 20 63 6c 65 61 72 65 64 20 61 6e 64 20 77 68 65 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 is.cleared.and.when.a.new.buffer
fe5a0 20 69 73 20 63 72 65 61 74 65 64 20 66 6f 72 20 69 74 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a .is.created.for.it..@end.defopt.
fe5c0 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f @defopt.emms-player-finished-hoo
fe5e0 6b 0a 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 66 k.Hook.run.when.an.Emms.player.f
fe600 69 6e 69 73 68 65 73 20 70 6c 61 79 69 6e 67 20 61 20 74 72 61 63 6b 2e 20 50 6c 65 61 73 65 20 inishes.playing.a.track..Please.
fe620 70 61 79 0a 61 74 74 65 6e 74 69 6f 6e 20 74 6f 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 73 pay.attention.to.the.differences
fe640 20 62 65 74 77 65 65 6e 20 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 .between.@var{emms-player-finish
fe660 65 64 2d 68 6f 6f 6b 7d 0a 61 6e 64 20 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 ed-hook}.and.@var{emms-player-st
fe680 6f 70 70 65 64 2d 68 6f 6f 6b 7d 2e 20 54 68 65 20 66 6f 72 6d 65 72 20 69 73 20 63 61 6c 6c 65 opped-hook}..The.former.is.calle
fe6a0 64 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 0a 70 6c 61 79 65 72 20 69 73 20 73 74 6f 70 70 65 d.only.when.the.player.is.stoppe
fe6c0 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 3b 20 74 68 65 20 6c 61 74 74 65 72 2c 20 6f 6e 6c d.interactively;.the.latter,.onl
fe6e0 79 20 77 68 65 6e 20 74 68 65 20 70 6c 61 79 65 72 0a 61 63 74 75 61 6c 6c 79 20 66 69 6e 69 73 y.when.the.player.actually.finis
fe700 68 65 73 20 70 6c 61 79 69 6e 67 20 61 20 74 72 61 63 6b 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 hes.playing.a.track..@end.defopt
fe720 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b .@defopt.emms-player-paused-hook
fe740 0a 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 20 70 6c 61 79 65 72 20 69 73 20 70 61 75 73 65 .Hook.run.when.a.player.is.pause
fe760 64 20 6f 72 20 72 65 73 75 6d 65 64 2e 20 55 73 65 0a 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 d.or.resumed..Use.@var{emms-play
fe780 65 72 2d 70 61 75 73 65 64 2d 70 7d 20 74 6f 20 66 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 er-paused-p}.to.find.the.current
fe7a0 20 73 74 61 74 65 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 0a 0a 0a 40 6e 6f 64 65 20 43 6f 72 .state..@end.defopt....@node.Cor
fe7c0 65 20 46 75 6e 63 74 69 6f 6e 73 0a 40 73 65 63 74 69 6f 6e 20 43 6f 72 65 20 46 75 6e 63 74 69 e.Functions.@section.Core.Functi
fe7e0 6f 6e 73 0a 0a 40 63 69 6e 64 65 78 20 63 6f 72 65 20 66 75 6e 63 74 69 6f 6e 73 0a 40 63 69 6e ons..@cindex.core.functions.@cin
fe800 64 65 78 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 54 68 65 20 63 6f 72 65 20 66 69 dex.basic.functions..The.core.fi
fe820 6c 65 20 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e le.also.defines.all.the.function
fe840 73 20 69 6d 70 6f 72 74 61 6e 74 20 74 6f 20 74 68 65 20 62 61 73 69 63 0a 75 73 65 20 6f 66 20 s.important.to.the.basic.use.of.
fe860 45 6d 6d 73 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 Emms...There.are.functions.which
fe880 20 64 65 61 6c 20 77 69 74 68 20 6d 6f 76 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 70 6c 61 79 6c .deal.with.movement.in.the.playl
fe8a0 69 73 74 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6e 65 78 74 2d 6e 6f 65 72 72 6f 72 0a 53 ist...@defun.emms-next-noerror.S
fe8c0 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 tart.playing.the.next.track.in.t
fe8e0 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 2e 20 55 6e 6c 69 6b 65 0a 40 63 6f 64 65 7b 65 he.Emms.playlist..Unlike.@code{e
fe900 6d 6d 73 2d 6e 65 78 74 7d 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 6e 27 74 mms-next},.this.function.doesn't
fe920 20 73 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 77 68 65 6e 20 63 61 6c 6c 65 64 20 61 74 0a .signal.an.error.when.called.at.
fe940 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 20 54 68 69 73 20 66 75 the.end.of.the.playlist..This.fu
fe960 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 nction.should.only.be.called.whe
fe980 6e 20 6e 6f 0a 70 6c 61 79 65 72 20 69 73 20 70 6c 61 79 69 6e 67 2e 20 54 68 69 73 20 69 73 20 n.no.player.is.playing..This.is.
fe9a0 61 20 67 6f 6f 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 75 74 20 69 6e 0a 40 63 6f 64 65 7b a.good.function.to.put.in.@code{
fe9c0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 7d 2e 0a 40 65 6e 64 emms-player-finished-hook}..@end
fe9e0 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 .defun.@defun.emms-playlist-next
fea00 0a 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 .Move.to.the.next.track.in.the.c
fea20 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e urrent.buffer..@end.defun.@defun
fea40 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 0a 4d 6f 76 65 20 74 6f 20 .emms-playlist-previous.Move.to.
fea60 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e the.previous.track.in.the.curren
fea80 74 20 62 75 66 66 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 t.buffer..@end.defun.@defun.emms
feaa0 2d 72 61 6e 64 6f 6d 0a 4a 75 6d 70 20 74 6f 20 61 20 72 61 6e 64 6f 6d 20 74 72 61 63 6b 2e 0a -random.Jump.to.a.random.track..
feac0 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 @end.defun.@defun.emms-toggle-re
feae0 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 0a 54 6f 67 67 6c 65 20 77 68 65 74 68 65 72 20 65 6d 6d peat-playlist.Toggle.whether.emm
feb00 73 20 72 65 70 65 61 74 73 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 66 74 65 72 20 69 74 20 s.repeats.the.playlist.after.it.
feb20 69 73 20 64 6f 6e 65 2e 20 53 65 65 0a 40 76 61 72 7b 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c is.done..See.@var{emms-repeat-pl
feb40 61 79 6c 69 73 74 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d aylist}..@end.defun.@defun.emms-
feb60 74 6f 67 67 6c 65 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 0a 54 6f 67 67 6c 65 20 77 68 65 74 68 toggle-repeat-track.Toggle.wheth
feb80 65 72 20 65 6d 6d 73 20 72 65 70 65 61 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 er.emms.repeats.the.current.trac
feba0 6b 2e 20 53 65 65 0a 40 76 61 72 7b 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 7d 2e 0a k..See.@var{emms-repeat-track}..
febc0 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 61 @end.defun.@defun.emms-toggle-ra
febe0 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 0a 54 6f 67 67 6c 65 20 77 68 65 74 68 65 72 20 65 6d 6d ndom-playlist.Toggle.whether.emm
fec00 73 20 70 6c 61 79 73 20 74 68 65 20 74 72 61 63 6b 73 20 72 61 6e 64 6f 6d 6c 79 20 6f 72 20 73 s.plays.the.tracks.randomly.or.s
fec20 65 71 75 65 6e 74 69 61 6c 6c 79 2e 20 53 65 65 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 76 61 72 equentially..See.@end.defun.@var
fec40 7b 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 7d 2e 0a 0a 53 6f 6d 65 20 66 75 {emms-random-playlist}...Some.fu
fec60 6e 63 74 69 6f 6e 73 20 64 65 61 6c 20 77 69 74 68 20 74 68 65 20 67 65 74 74 69 6e 67 20 61 6e nctions.deal.with.the.getting.an
fec80 64 20 73 65 74 74 69 6e 67 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 40 64 d.setting.track.information...@d
feca0 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 20 74 79 70 65 20 6e 61 6d 65 0a 43 72 65 61 74 65 efun.emms-track.type.name.Create
fecc0 20 61 20 74 72 61 63 6b 20 77 69 74 68 20 74 79 70 65 20 40 76 61 72 7b 74 79 70 65 7d 20 61 6e .a.track.with.type.@var{type}.an
fece0 64 20 6e 61 6d 65 20 40 76 61 72 7b 6e 61 6d 65 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 d.name.@var{name}..@end.defun.@d
fed00 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 0a 52 65 74 75 72 efun.emms-track-type.track.Retur
fed20 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 40 76 61 72 7b 74 72 61 63 6b 7d 2e 0a 40 65 6e 64 20 n.the.type.of.@var{track}..@end.
fed40 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 defun.@defun.emms-track-name.tra
fed60 63 6b 0a 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 40 76 61 72 7b 74 72 61 63 6b ck.Return.the.name.of.@var{track
fed80 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d }..@end.defun.@defun.emms-track-
feda0 67 65 74 20 6e 61 6d 65 20 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 65 78 69 73 74 get.name.track.&optional.inexist
fedc0 65 6e 74 0a 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 40 76 61 72 7b 6e 61 6d ent.Return.the.value.of.@var{nam
fede0 65 7d 20 66 6f 72 20 40 76 61 72 7b 74 72 61 63 6b 7d 2e 20 49 66 20 74 68 65 72 65 20 69 73 20 e}.for.@var{track}..If.there.is.
fee00 6e 6f 20 76 61 6c 75 65 2c 0a 72 65 74 75 72 6e 20 40 76 61 72 7b 64 65 66 61 75 6c 74 7d 20 28 no.value,.return.@var{default}.(
fee20 6f 72 20 6e 69 6c 2c 20 69 66 20 6e 6f 74 20 67 69 76 65 6e 29 2e 0a 40 65 6e 64 20 64 65 66 75 or.nil,.if.not.given)..@end.defu
fee40 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 6e 61 n.@defun.emms-track-set.track.na
fee60 6d 65 20 76 61 6c 75 65 0a 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 40 76 61 72 7b 6e me.value.Set.the.value.of.@var{n
fee80 61 6d 65 7d 20 66 6f 72 20 40 76 61 72 7b 74 72 61 63 6b 7d 20 74 6f 20 40 76 61 72 7b 76 61 6c ame}.for.@var{track}.to.@var{val
feea0 75 65 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 ue}..@end.defun.@defun.emms-trac
feec0 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b 0a 52 65 74 75 72 6e 20 61 20 64 65 73 k-description.track.Return.a.des
feee0 63 72 69 70 74 69 6f 6e 20 6f 66 20 40 76 61 72 7b 74 72 61 63 6b 7d 2e 20 54 68 69 73 20 66 75 cription.of.@var{track}..This.fu
fef00 6e 63 74 69 6f 6e 20 75 73 65 73 0a 40 76 61 72 7b 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 nction.uses.@var{emms-track-desc
fef20 72 69 70 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 ription-function}..@end.defun.@d
fef40 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 6f 72 20 74 72 61 63 6b 0a 52 65 74 75 72 efun.emms-player-for.track.Retur
fef60 6e 20 61 6e 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 63 61 70 61 62 6c 65 20 6f 66 20 70 6c 61 79 n.an.Emms.player.capable.of.play
fef80 69 6e 67 20 40 76 61 72 7b 74 72 61 63 6b 7d 2e 20 54 68 69 73 20 77 69 6c 6c 20 62 65 20 74 68 ing.@var{track}..This.will.be.th
fefa0 65 0a 66 69 72 73 74 20 70 6c 61 79 65 72 20 77 68 6f 73 65 20 50 4c 41 59 41 42 4c 45 50 20 66 e.first.player.whose.PLAYABLEP.f
fefc0 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 6f 72 20 6e 69 6c 20 unction.returns.non-nil,.or.nil.
fefe0 69 66 20 6e 6f 0a 73 75 63 68 20 70 6c 61 79 65 72 20 65 78 69 73 74 73 2e 0a 40 65 6e 64 20 64 if.no.such.player.exists..@end.d
ff000 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e efun.@defun.emms-playlist-curren
ff020 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 0a 52 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 t-selected-track.Return.the.curr
ff040 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 ently.selected.track.in.the.curr
ff060 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 54 68 65 72 65 20 ent.playlist..@end.defun..There.
ff080 61 72 65 20 61 6c 73 6f 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20 64 65 61 6c 20 77 69 are.also.functions.which.deal.wi
ff0a0 74 68 20 74 68 65 20 70 6c 61 79 69 6e 67 20 69 74 73 65 6c 66 2e 0a 0a 40 64 65 66 75 6e 20 65 th.the.playing.itself...@defun.e
ff0c0 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 20 74 72 61 63 6b 0a 53 74 61 72 74 20 70 6c 61 mms-player-start.track.Start.pla
ff0e0 79 69 6e 67 20 40 76 61 72 7b 74 72 61 63 6b 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 ying.@var{track}..@end.defun.@de
ff100 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 0a 53 74 6f 70 20 74 68 65 20 63 75 fun.emms-player-stop.Stop.the.cu
ff120 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 70 6c 61 79 65 72 2e 0a 40 65 6e 64 20 64 65 66 rrently.playing.player..@end.def
ff140 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 0a 44 65 un.@defun.emms-player-stopped.De
ff160 63 6c 61 72 65 20 74 68 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 70 6c 61 79 clare.that.the.current.Emms.play
ff180 65 72 20 69 73 20 66 69 6e 69 73 68 65 64 2e 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 er.is.finished..This.should.only
ff1a0 20 62 65 20 64 6f 6e 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 69 .be.done.by.the.current.player.i
ff1c0 74 73 65 6c 66 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 tself..@end.defun..@defun.emms-s
ff1e0 65 65 6b 20 64 75 72 61 74 69 6f 6e 0a 53 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c eek.duration.Seek.the.current.pl
ff200 61 79 65 72 20 62 79 20 40 76 61 72 7b 64 75 72 61 74 69 6f 6e 7d 20 66 72 6f 6d 20 69 74 73 20 ayer.by.@var{duration}.from.its.
ff220 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 54 68 65 20 61 72 67 75 6d 65 6e 74 20 40 current.position..The.argument.@
ff240 76 61 72 7b 64 75 72 61 74 69 6f 6e 7d 20 63 61 6e 20 62 65 3a 0a 0a 40 69 74 65 6d 69 7a 65 20 var{duration}.can.be:..@itemize.
ff260 40 6d 69 6e 75 73 0a 0a 40 69 74 65 6d 0a 41 20 73 69 6e 67 6c 65 20 6e 75 6d 62 65 72 2c 20 69 @minus..@item.A.single.number,.i
ff280 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 n.which.case.it.is.interpreted.a
ff2a0 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 40 69 74 65 6d 0a 41 20 73 74 72 69 6e 67 20 6f 66 20 66 6f s.seconds...@item.A.string.of.fo
ff2c0 72 6d 20 40 76 65 72 62 7b 7c 5b 2d 5d 5b 48 48 3a 5d 4d 4d 3a 53 53 2e 6d 7c 7d 2c 20 77 68 65 rm.@verb{|[-][HH:]MM:SS.m|},.whe
ff2e0 72 65 20 40 76 65 72 62 7b 7c 48 48 7c 7d 20 69 73 20 68 6f 75 72 73 2c 0a 40 76 65 72 62 7b 7c re.@verb{|HH|}.is.hours,.@verb{|
ff300 4d 4d 7c 7d 20 69 73 20 6d 69 6e 75 74 65 73 2c 20 61 6e 64 20 40 76 65 72 62 7b 7c 53 53 7c 7d MM|}.is.minutes,.and.@verb{|SS|}
ff320 20 69 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 49 6e 20 62 .is.seconds...@end.itemize..In.b
ff340 6f 74 68 20 66 6f 72 6d 73 20 73 65 63 6f 6e 64 73 20 63 61 6e 20 62 65 20 61 20 66 6c 6f 61 74 oth.forms.seconds.can.be.a.float
ff360 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 20 41 20 6e 65 67 61 74 69 76 65 0a 76 61 ing.point.number...A.negative.va
ff380 6c 75 65 20 73 65 65 6b 73 20 62 61 63 6b 77 61 72 64 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a lue.seeks.backwards..@end.defun.
ff3a0 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 65 6b 2d 74 6f 20 74 69 6d 65 73 74 61 6d 70 0a 53 .@defun.emms-seek-to.timestamp.S
ff3c0 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 74 6f 20 40 76 61 72 7b 74 eek.the.current.player.to.@var{t
ff3e0 69 6d 65 73 74 61 6d 70 7d 2e 20 20 41 63 63 65 70 74 61 62 6c 65 20 66 6f 72 6d 73 20 66 6f 72 imestamp}...Acceptable.forms.for
ff400 0a 40 76 61 72 7b 74 69 6d 65 73 74 61 6d 70 7d 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 61 73 .@var{timestamp}.are.the.same.as
ff420 20 74 69 6d 65 20 64 75 72 61 74 69 6f 6e 20 69 6e 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 73 65 65 .time.duration.in.@code{emms-see
ff440 6b 7d 2c 0a 65 78 63 65 70 74 20 74 68 61 74 20 74 69 6d 65 73 74 61 6d 70 73 20 63 61 6e 6e 6f k},.except.that.timestamps.canno
ff460 74 20 62 65 20 6e 65 67 61 74 69 76 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 t.be.negative..@end.defun..@defu
ff480 6e 20 65 6d 6d 73 2d 73 65 65 6b 2d 66 6f 72 77 61 72 64 0a 53 65 65 6b 20 74 65 6e 20 73 65 63 n.emms-seek-forward.Seek.ten.sec
ff4a0 6f 6e 64 73 20 66 6f 72 77 61 72 64 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 onds.forward..@end.defun.@defun.
ff4c0 65 6d 6d 73 2d 73 65 65 6b 2d 62 61 63 6b 77 61 72 64 0a 53 65 65 6b 20 74 65 6e 20 73 65 63 6f emms-seek-backward.Seek.ten.seco
ff4e0 6e 64 73 20 62 61 63 6b 77 61 72 64 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 46 6f 72 20 6d 6f nds.backward..@end.defun..For.mo
ff500 72 65 20 62 61 73 69 63 20 63 6f 6d 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 re.basic.commands.defined.in.the
ff520 20 63 6f 72 65 20 66 69 6c 65 20 73 65 65 20 40 78 72 65 66 7b 42 61 73 69 63 0a 43 6f 6d 6d 61 .core.file.see.@xref{Basic.Comma
ff540 6e 64 73 7d 2e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d nds}....@c.---------------------
ff560 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
ff580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 53 6f 75 72 63 65 73 0a 40 63 68 --------------.@node.Sources.@ch
ff5a0 61 70 74 65 72 20 53 6f 75 72 63 65 73 0a 0a 40 63 69 6e 64 65 78 20 53 6f 75 72 63 65 73 0a 0a apter.Sources..@cindex.Sources..
ff5c0 53 6f 75 72 63 65 73 20 61 6c 6c 6f 77 20 45 6d 6d 73 20 74 6f 20 61 64 64 20 61 6e 64 20 70 6c Sources.allow.Emms.to.add.and.pl
ff5e0 61 79 20 74 72 61 63 6b 73 2e 20 45 6d 6d 73 20 63 6f 6d 65 73 20 77 69 74 68 20 61 20 6e 75 6d ay.tracks..Emms.comes.with.a.num
ff600 62 65 72 20 6f 66 0a 73 6f 75 72 63 65 73 20 6f 66 20 69 74 73 20 6f 77 6e 2e 20 53 6f 75 72 63 ber.of.sources.of.its.own..Sourc
ff620 65 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 73 6f 20 74 68 61 74 20 63 72 65 61 74 69 6e 67 es.are.designed.so.that.creating
ff640 20 6e 65 77 20 6f 6e 65 73 0a 77 69 6c 6c 20 62 65 20 65 61 73 79 2e 0a 0a 46 6f 72 20 65 78 61 .new.ones.will.be.easy...For.exa
ff660 6d 70 6c 65 73 20 6f 66 20 45 6d 6d 73 20 73 6f 75 72 63 65 73 20 66 6f 72 20 66 69 6c 65 73 20 mples.of.Emms.sources.for.files.
ff680 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 73 65 65 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 73 and.directories.see.@file{emms-s
ff6a0 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 7d 2e 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 73 6f ource-file.el}...@defopt.emms-so
ff6c0 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 54 68 65 20 urce-file-default-directory.The.
ff6e0 64 65 66 61 75 6c 74 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 6d 65 default.directory.to.look.for.me
ff700 64 69 61 20 66 69 6c 65 73 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 40 64 65 66 75 6e 20 65 6d dia.files..@end.defopt.@defun.em
ff720 6d 73 2d 70 6c 61 79 2d 66 69 6e 64 0a 50 6c 61 79 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 40 ms-play-find.Play.all.files.in.@
ff740 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 var{emms-source-file-default-dir
ff760 65 63 74 6f 72 79 7d 20 74 68 61 74 20 6d 61 74 63 68 0a 61 20 73 70 65 63 69 66 69 63 20 72 65 ectory}.that.match.a.specific.re
ff780 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 gular.expression..@end.defun.@de
ff7a0 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 66 fun.emms-source-file.&optional.f
ff7c0 69 6c 65 0a 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 ile.An.Emms.source.for.a.single.
ff7e0 66 69 6c 65 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 66 69 6c 65 7d 2c 20 6f 72 20 71 75 65 file.-.either.@var{file},.or.que
ff800 72 69 65 64 20 66 72 6f 6d 20 74 68 65 0a 75 73 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 ried.from.the.user..@end.defun.@
ff820 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 73 20 66 69 6c 65 73 0a 41 6e defun.emms-source-files.files.An
ff840 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 40 76 61 72 7b .Emms.source.for.a.list.of.@var{
ff860 66 69 6c 65 73 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 files}..@end.defun.@defun.emms-s
ff880 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 0a 41 6e ource-directory.&optional.dir.An
ff8a0 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 63 74 6f .Emms.source.for.a.whole.directo
ff8c0 72 79 20 74 72 65 65 20 2d 20 65 69 74 68 65 72 20 40 76 61 72 7b 64 69 72 7d 2c 20 6f 72 20 71 ry.tree.-.either.@var{dir},.or.q
ff8e0 75 65 72 69 65 64 0a 66 72 6f 6d 20 74 68 65 20 75 73 65 72 0a 40 65 6e 64 20 64 65 66 75 6e 0a ueried.from.the.user.@end.defun.
ff900 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 @defun.emms-source-directory-tre
ff920 65 20 26 20 6f 70 74 69 6f 6e 61 6c 20 64 69 72 0a 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 e.&.optional.dir.An.Emms.source.
ff940 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 2d 20 65 for.multiple.directory.trees.-.e
ff960 69 74 68 65 72 20 40 76 61 72 7b 64 69 72 7d 2c 20 6f 72 20 74 68 65 0a 76 61 6c 75 65 20 6f 66 ither.@var{dir},.or.the.value.of
ff980 20 40 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 .@var{emms-source-file-default-d
ff9a0 69 72 65 63 74 6f 72 79 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d irectory}..@end.defun.@defun.emm
ff9c0 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 0a 41 6e 20 45 6d 6d 73 20 73 s-source-playlist.file.An.Emms.s
ff9e0 6f 75 72 63 65 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 73 2e 20 20 53 65 65 20 40 76 61 72 7b 65 ource.for.playlists...See.@var{e
ffa00 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 66 6f 72 6d 61 74 73 7d 0a 66 6f 72 mms-source-playlist-formats}.for
ffa20 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 2e 0a 40 65 .a.list.of.supported.formats..@e
ffa40 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 nd.defun.@defun.emms-source-play
ffa60 6c 69 73 74 2d 6e 61 74 69 76 65 20 66 69 6c 65 0a 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 list-native.file.An.Emms.source.
ffa80 66 6f 72 20 61 20 6e 61 74 69 76 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 2e for.a.native.Emms.playlist.file.
ffaa0 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 .@end.defun.@defun.emms-source-p
ffac0 6c 61 79 6c 69 73 74 2d 6d 33 75 20 66 69 6c 65 0a 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 laylist-m3u.file.An.Emms.source.
ffae0 66 6f 72 20 61 6e 20 6d 33 75 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 2e 0a 40 65 6e 64 20 64 for.an.m3u.playlist.file..@end.d
ffb00 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 efun.@defun.emms-source-playlist
ffb20 2d 70 6c 73 20 66 69 6c 65 0a 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 70 -pls.file.An.Emms.source.for.a.p
ffb40 6c 73 20 70 6c 61 79 6c 69 73 74 20 66 69 6c 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 ls.playlist.file..@end.defun.@de
ffb60 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 64 fun.emms-source-find.&optional.d
ffb80 69 72 20 72 65 67 65 78 0a 41 6e 20 45 6d 6d 73 20 73 6f 75 72 63 65 20 74 68 61 74 20 77 69 6c ir.regex.An.Emms.source.that.wil
ffba0 6c 20 66 69 6e 64 20 66 69 6c 65 73 20 69 6e 20 40 76 61 72 7b 64 69 72 7d 20 6f 72 0a 40 76 61 l.find.files.in.@var{dir}.or.@va
ffbc0 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 r{emms-source-file-default-direc
ffbe0 74 6f 72 79 7d 20 74 68 61 74 20 6d 61 74 63 68 20 40 76 61 72 7b 72 65 67 65 78 70 7d 2e 0a 40 tory}.that.match.@var{regexp}..@
ffc00 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 end.defun.@defun.emms-source-bee
ffc20 74 73 20 64 61 74 61 62 61 73 65 20 66 69 6c 74 65 72 20 73 6f 72 74 0a 41 6e 20 45 6d 6d 73 20 ts.database.filter.sort.An.Emms.
ffc40 73 6f 75 72 63 65 20 74 68 61 74 20 77 69 6c 6c 20 72 65 61 64 20 61 20 40 63 6f 6d 6d 61 6e 64 source.that.will.read.a.@command
ffc60 7b 62 65 65 74 73 7d 20 6c 69 62 72 61 72 79 20 64 61 74 61 62 61 73 65 0a 28 72 65 71 75 69 72 {beets}.library.database.(requir
ffc80 65 73 20 45 6d 61 63 73 20 74 6f 20 62 65 20 62 75 69 6c 74 20 77 69 74 68 20 53 51 4c 69 74 65 es.Emacs.to.be.built.with.SQLite
ffca0 20 73 75 70 70 6f 72 74 29 2e 20 20 57 69 74 68 20 70 72 65 66 69 78 0a 61 72 67 75 6d 65 6e 74 .support)...With.prefix.argument
ffcc0 20 40 76 61 72 7b 66 69 6c 74 65 72 7d 2c 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 66 69 6c .@var{filter},.interactively.fil
ffce0 74 65 72 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 20 20 57 69 74 68 20 61 0a 64 6f 75 62 6c 65 ter.the.database...With.a.double
ffd00 20 28 6f 72 20 6d 6f 72 65 29 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 61 6c 73 6f .(or.more).prefix.argument,.also
ffd20 20 73 65 74 20 40 76 61 72 7b 73 6f 72 74 7d 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 3b 0a 6f .set.@var{sort}.interactively;.o
ffd40 74 68 65 72 77 69 73 65 20 75 73 65 20 40 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 therwise.use.@var{emms-source-be
ffd60 65 74 73 2d 73 6f 72 74 2d 63 6f 6c 75 6d 6e 73 7d 2e 20 20 49 66 20 40 76 61 72 7b 64 61 74 61 ets-sort-columns}...If.@var{data
ffd80 62 61 73 65 7d 0a 69 73 20 6f 6d 69 74 74 65 64 20 6f 72 20 6e 69 6c 2c 20 40 76 61 72 7b 65 6d base}.is.omitted.or.nil,.@var{em
ffda0 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2d 64 61 74 61 62 61 73 65 7d 20 69 73 20 75 73 65 ms-source-beets-database}.is.use
ffdc0 64 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 d..@end.defun.@defun.emms-source
ffde0 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 -file-directory-tree.&optional.d
ffe00 69 72 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 75 6e ir.Return.a.list.of.all.files.un
ffe20 64 65 72 20 40 76 61 72 7b 64 69 72 7d 20 77 68 69 63 68 20 6d 61 74 63 68 20 40 76 61 72 7b 72 der.@var{dir}.which.match.@var{r
ffe40 65 67 65 78 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c egex}..@end.defun.@defun.emms-pl
ffe60 61 79 2d 64 69 72 65 64 0a 50 6c 61 79 20 61 6c 6c 20 6d 61 72 6b 65 64 20 66 69 6c 65 73 20 6f ay-dired.Play.all.marked.files.o
ffe80 66 20 61 20 64 69 72 65 64 20 62 75 66 66 65 72 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 f.a.dired.buffer.@end.defun.@def
ffea0 75 6e 20 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 64 0a 41 64 64 20 61 6c 6c 20 6d 61 72 6b 65 64 un.emms-add-dired.Add.all.marked
ffec0 20 66 69 6c 65 73 20 6f 66 20 61 20 64 69 72 65 64 20 62 75 66 66 65 72 0a 40 65 6e 64 20 64 65 .files.of.a.dired.buffer.@end.de
ffee0 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 72 65 67 65 fun.@defun.emms-source-file-rege
fff00 78 0a 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 65 x.Return.a.regexp.that.matches.e
fff20 76 65 72 79 74 68 69 6e 67 20 61 6e 79 20 70 6c 61 79 65 72 20 28 74 68 61 74 20 73 75 70 70 6f verything.any.player.(that.suppo
fff40 72 74 73 0a 66 69 6c 65 73 29 20 63 61 6e 20 70 6c 61 79 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a rts.files).can.play..@end.defun.
fff60 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 6f 63 61 74 65 20 72 65 67 65 78 70 0a 53 65 61 72 63 68 @defun.emms-locate.regexp.Search
fff80 20 66 6f 72 20 40 76 61 72 7b 72 65 67 65 78 70 7d 20 61 6e 64 20 64 69 73 70 6c 61 79 20 74 68 .for.@var{regexp}.and.display.th
fffa0 65 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 6c 6f 63 61 74 65 20 62 75 66 66 65 72 0a 40 65 6e e.results.in.a.locate.buffer.@en
fffc0 64 20 64 65 66 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d d.defun...@c.-------------------
fffe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
100000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 53 69 6d 70 6c 65 20 50 6c ----------------.@node.Simple.Pl
100020 61 79 65 72 73 0a 40 63 68 61 70 74 65 72 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 73 0a 0a 40 ayers.@chapter.Simple.Players..@
100040 63 69 6e 64 65 78 20 70 6c 61 79 65 72 73 2c 20 73 69 6d 70 6c 65 0a 0a 40 64 65 66 6d 61 63 20 cindex.players,.simple..@defmac.
100060 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 6e 61 6d 65 20 74 define-emms-simple-player.name.t
100080 79 70 65 73 20 72 65 67 65 78 20 63 6f 6d 6d 61 6e 64 20 26 72 65 73 74 20 61 72 67 73 0a 44 65 ypes.regex.command.&rest.args.De
1000a0 66 69 6e 65 20 61 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 2e 0a 40 76 61 72 7b 6e 61 6d 65 7d fine.a.simple.player..@var{name}
1000c0 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 6e 61 6d 65 20 6f .is.used.to.construct.the.name.o
1000e0 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6b 65 0a 65 6d 6d 73 2d 70 6c 61 79 65 72 2d f.the.function.like.emms-player-
100100 40 76 61 72 7b 6e 61 6d 65 7d 2e 20 40 76 61 72 7b 74 79 70 65 73 7d 20 69 73 20 61 20 6c 69 73 @var{name}..@var{types}.is.a.lis
100120 74 20 6f 66 20 74 72 61 63 6b 20 74 79 70 65 73 0a 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 74 t.of.track.types.understood.by.t
100140 68 69 73 20 70 6c 61 79 65 72 2e 20 40 76 61 72 7b 72 65 67 65 78 7d 20 6d 75 73 74 20 62 65 20 his.player..@var{regex}.must.be.
100160 61 20 72 65 67 65 78 70 20 74 68 61 74 20 6d 61 74 63 68 65 73 0a 74 68 65 20 66 69 6c 65 6e 61 a.regexp.that.matches.the.filena
100180 6d 65 73 20 74 68 65 20 70 6c 61 79 65 72 20 63 61 6e 20 70 6c 61 79 2e 20 40 76 61 72 7b 63 6f mes.the.player.can.play..@var{co
1001a0 6d 6d 61 6e 64 7d 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 6c 69 6e mmand}.specifies.the.command.lin
1001c0 65 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 70 6c 61 79 65 72 20 61 6e e.argument.to.call.the.player.an
1001e0 64 20 40 76 61 72 7b 61 72 67 73 7d 20 61 72 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e d.@var{args}.are.the.command.lin
100200 65 0a 61 72 67 75 6d 65 6e 74 73 2e 0a 40 65 6e 64 20 64 65 66 6d 61 63 0a 0a 46 6f 72 20 61 20 e.arguments..@end.defmac..For.a.
100220 64 69 73 63 75 73 73 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 6e 65 77 20 discussion.on.how.to.define.new.
100240 70 6c 61 79 65 72 73 20 73 65 65 20 40 78 72 65 66 7b 4e 65 77 20 50 6c 61 79 65 72 7d 2e 0a 0a players.see.@xref{New.Player}...
100260 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 74 6f 70 0a 53 @defun.emms-player-simple-stop.S
100280 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 70 72 6f 63 65 73 top.the.currently.playing.proces
1002a0 73 2c 20 69 66 20 69 6e 64 65 65 64 20 74 68 65 72 65 20 69 73 20 6f 6e 65 2e 0a 40 65 6e 64 20 s,.if.indeed.there.is.one..@end.
1002c0 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d defun.@defun.emms-player-simple-
1002e0 73 74 61 72 74 20 66 69 6c 65 6e 61 6d 65 20 63 6d 64 6e 61 6d 65 20 70 61 72 61 6d 73 0a 53 74 start.filename.cmdname.params.St
100300 61 72 74 73 20 61 20 70 72 6f 63 65 73 73 20 70 6c 61 79 69 6e 67 20 40 76 61 72 7b 66 69 6c 65 arts.a.process.playing.@var{file
100320 6e 61 6d 65 7d 20 75 73 69 6e 67 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 40 76 61 72 7b 63 name}.using.the.specified.@var{c
100340 6d 64 6e 61 6d 65 7d 20 77 69 74 68 0a 74 68 65 20 73 70 65 63 69 66 69 65 64 20 40 76 61 72 7b mdname}.with.the.specified.@var{
100360 70 61 72 61 6d 73 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d params}..@end.defun.@defun.emms-
100380 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 20 73 74 72 0a player-simple-sentinel.proc.str.
1003a0 53 65 6e 74 69 6e 65 6c 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 74 68 65 20 65 6e 64 Sentinel.for.determining.the.end
1003c0 20 6f 66 20 70 72 6f 63 65 73 73 20 66 6f 72 20 74 68 65 20 70 72 6f 63 65 73 73 20 40 76 61 72 .of.process.for.the.process.@var
1003e0 7b 70 72 6f 63 7d 0a 61 6e 64 20 74 68 65 20 73 65 6e 74 69 6e 65 6c 20 73 74 72 69 6e 67 20 40 {proc}.and.the.sentinel.string.@
100400 76 61 72 7b 73 74 72 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d var{str}..@end.defun...@c.------
100420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
100440 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e -----------------------------.@n
100460 6f 64 65 20 50 6c 61 79 6c 69 73 74 73 0a 40 63 68 61 70 74 65 72 20 50 6c 61 79 6c 69 73 74 73 ode.Playlists.@chapter.Playlists
100480 0a 0a 40 63 69 6e 64 65 78 20 6f 72 67 61 6e 69 7a 69 6e 67 20 74 72 61 63 6b 73 20 61 6e 64 20 ..@cindex.organizing.tracks.and.
1004a0 6d 65 64 69 61 0a 0a 45 6d 6d 73 20 75 73 65 73 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 20 74 media..Emms.uses.Emacs.buffers.t
1004c0 6f 20 73 74 6f 72 65 20 74 68 65 20 6d 65 64 69 61 20 74 72 61 63 6b 73 20 66 6f 72 20 70 6c 61 o.store.the.media.tracks.for.pla
1004e0 79 69 6e 67 2e 20 57 65 20 63 61 6c 6c 0a 6f 6e 65 20 73 75 63 68 20 62 75 66 66 65 72 20 61 20 ying..We.call.one.such.buffer.a.
100500 60 60 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 27 27 20 6f 72 20 61 6e 20 60 60 45 6d 6d 73 ``playlist.buffer''.or.an.``Emms
100520 20 70 6c 61 79 6c 69 73 74 0a 62 75 66 66 65 72 27 27 2e 20 45 6d 6d 73 20 74 68 65 6e 20 70 72 .playlist.buffer''..Emms.then.pr
100540 6f 63 65 65 64 73 20 74 6f 20 70 6c 61 79 20 74 68 65 20 6d 65 64 69 61 20 74 72 61 63 6b 73 20 oceeds.to.play.the.media.tracks.
100560 69 6e 20 74 68 65 20 62 75 66 66 65 72 0a 66 72 6f 6d 20 74 6f 70 20 74 6f 20 62 6f 74 74 6f 6d in.the.buffer.from.top.to.bottom
100580 20 75 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a .until.the.end.of.the.playlist..
1005a0 0a 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 .The.name.of.the.playlist.buffer
1005c0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 40 76 61 72 .is.defined.in.the.variable.@var
1005e0 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 7d 20 61 6e 64 20 {emms-playlist-buffer-name}.and.
100600 69 73 20 73 65 74 20 74 6f 20 62 65 20 61 6e 20 69 6e 76 69 73 69 62 6c 65 20 45 6d 61 63 73 0a is.set.to.be.an.invisible.Emacs.
100620 62 75 66 66 65 72 20 62 79 20 64 65 66 61 75 6c 74 2e 20 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 buffer.by.default..You.can.chang
100640 65 20 74 6f 20 61 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 2e 20 46 6f 72 20 61 6e 20 65 e.to.any.name.you.want..For.an.e
100660 78 61 6d 70 6c 65 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 65 20 40 78 72 65 66 7b 43 xample.configuration.see.@xref{C
100680 6f 6e 66 69 67 75 72 61 74 69 6f 6e 7d 2e 0a 0a 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 61 onfiguration}...You.can.create.a
1006a0 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 20 79 6f ny.number.of.playlist.buffers.yo
1006c0 75 20 77 69 73 68 2e 20 41 74 20 61 6e 79 20 74 69 6d 65 0a 45 6d 6d 73 20 68 61 73 20 61 20 73 u.wish..At.any.time.Emms.has.a.s
1006e0 69 6e 67 6c 65 20 60 60 63 75 72 72 65 6e 74 27 27 20 62 75 66 66 65 72 20 74 68 72 6f 75 67 68 ingle.``current''.buffer.through
100700 20 77 68 69 63 68 20 69 74 20 70 72 6f 63 65 65 64 73 20 74 72 61 63 6b 0a 62 79 20 74 72 61 63 .which.it.proceeds.track.by.trac
100720 6b 2e 20 41 20 73 61 76 65 64 20 70 6c 61 79 6c 69 73 74 20 63 61 6e 20 62 65 20 61 64 64 65 64 k..A.saved.playlist.can.be.added
100740 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 62 79 0a 63 61 6c 6c 69 6e .to.the.current.buffer.by.callin
100760 67 20 40 6b 62 64 7b 4d 2d 78 20 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 7d 20 6f 72 g.@kbd{M-x.emms-add-playlist}.or
100780 20 40 6b 62 64 7b 4d 2d 78 20 65 6d 6d 73 2d 70 6c 61 79 2d 70 6c 61 79 6c 69 73 74 7d 2c 0a 77 .@kbd{M-x.emms-play-playlist},.w
1007a0 68 69 63 68 20 61 6c 73 6f 20 70 6c 61 79 73 20 74 68 65 20 74 72 61 63 6b 73 20 69 6d 6d 65 64 hich.also.plays.the.tracks.immed
1007c0 69 61 74 65 6c 79 2e 0a 0a 54 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 70 6c 61 79 6c 69 iately...The.current.Emms.playli
1007e0 73 74 20 62 75 66 66 65 72 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 st.buffer.is.stored.in.the.varia
100800 62 6c 65 0a 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 7d 2e 0a ble.@var{emms-playlist-buffer}..
100820 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 20 26 6f 70 74 69 6f .@defun.emms-playlist-new.&optio
100840 6e 61 6c 20 6e 61 6d 65 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 nal.name.Create.a.new.playlist.b
100860 75 66 66 65 72 2e 0a 54 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 61 6d 65 64 20 40 76 61 72 7b uffer..The.buffer.is.named.@var{
100880 6e 61 6d 65 7d 2c 20 62 75 74 20 6d 61 64 65 20 75 6e 69 71 75 65 2e 20 40 76 61 72 7b 6e 61 6d name},.but.made.unique..@var{nam
1008a0 65 7d 20 64 65 66 61 75 6c 74 73 0a 74 6f 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 e}.defaults.to.`emms-playlist-bu
1008c0 66 66 65 72 2d 6e 61 6d 65 27 2e 20 49 66 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 ffer-name'..If.called.interactiv
1008e0 65 6c 79 2c 20 74 68 65 20 6e 65 77 0a 62 75 66 66 65 72 20 69 73 20 61 6c 73 6f 20 73 65 6c 65 ely,.the.new.buffer.is.also.sele
100900 63 74 65 64 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c cted..@end.defun..@defun.emms-pl
100920 61 79 6c 69 73 74 2d 73 61 76 65 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 61 74 20 66 69 6c aylist-save.&optional.format.fil
100940 65 0a 53 74 6f 72 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 74 6f 20 e.Store.the.current.playlist.to.
100960 46 49 4c 45 20 61 73 20 74 68 65 20 74 79 70 65 20 46 4f 52 4d 41 54 2e 20 20 54 68 65 20 64 65 FILE.as.the.type.FORMAT...The.de
100980 66 61 75 6c 74 0a 66 6f 72 6d 61 74 20 69 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 40 76 61 fault.format.is.specified.by.@va
1009a0 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 66 r{emms-source-playlist-default-f
1009c0 6f 72 6d 61 74 7d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d ormat}..@end.defun..@defun.emms-
1009e0 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 0a 43 6c 65 61 72 73 20 74 68 65 20 70 6c 61 79 6c 69 playlist-clear.Clears.the.playli
100a00 73 74 20 62 75 66 66 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d st.buffer..@end.defun..@defun.em
100a20 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 63 6c 65 61 72 0a 43 6c 65 61 72 20 ms-playlist-current-clear.Clear.
100a40 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 20 49 66 20 6e 6f 20 63 75 72 72 the.current.playlist..If.no.curr
100a60 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 65 78 69 73 74 73 2c 20 61 20 6e 65 77 20 6f 6e 65 0a 69 ent.playlist.exists,.a.new.one.i
100a80 73 20 67 65 6e 65 72 61 74 65 64 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 s.generated..@end.defun..@defun.
100aa0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 0a 4b 69 6c 6c 20 emms-playlist-current-kill.Kill.
100ac0 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 the.current.EMMS.playlist.buffer
100ae0 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6f 6e 65 2e 0a 40 65 6e .and.switch.to.the.next.one..@en
100b00 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 d.defun..@defun.emms-playlist-le
100b20 6e 67 74 68 0a 44 69 73 70 6c 61 79 20 74 68 65 20 74 6f 74 61 6c 20 70 6c 61 79 69 6e 67 20 74 ngth.Display.the.total.playing.t
100b40 69 6d 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 40 65 6e ime.of.the.current.playlist..@en
100b60 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 6f d.defun..@defun.emms-playlist-to
100b80 74 61 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 41 6c 69 61 73 20 66 6f 72 20 40 63 6f 64 65 tal-playing-time.Alias.for.@code
100ba0 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 6e 67 74 68 7d 2e 0a 40 65 6e 64 20 64 65 66 {emms-playlist-length}..@end.def
100bc0 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d un...@c.------------------------
100be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
100c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 -----------.@node.Track.Informat
100c20 69 6f 6e 0a 40 63 68 61 70 74 65 72 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a ion.@chapter.Track.Information..
100c40 40 63 69 6e 64 65 78 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 40 63 69 6e 64 65 @cindex.track.information.@cinde
100c60 78 20 69 6e 66 6f 20 74 61 67 73 0a 0a 42 79 20 64 65 66 61 75 6c 74 20 45 6d 6d 73 20 77 69 6c x.info.tags..By.default.Emms.wil
100c80 6c 20 6f 6e 6c 79 20 6c 69 73 74 20 74 72 61 63 6b 73 20 61 73 20 66 69 6c 65 20 6e 61 6d 65 73 l.only.list.tracks.as.file.names
100ca0 20 6f 72 20 55 52 4c 73 20 69 6e 0a 70 6c 61 79 6c 69 73 74 73 20 28 40 70 78 72 65 66 7b 50 6c .or.URLs.in.playlists.(@pxref{Pl
100cc0 61 79 6c 69 73 74 73 7d 29 20 61 6e 64 20 74 68 65 20 62 72 6f 77 73 65 72 20 28 40 70 78 72 65 aylists}).and.the.browser.(@pxre
100ce0 66 7b 54 68 65 20 42 72 6f 77 73 65 72 7d 29 2e 0a 48 6f 77 65 76 65 72 2c 20 45 6d 6d 73 20 63 f{The.Browser})..However,.Emms.c
100d00 61 6e 20 62 65 20 63 6f 6e 66 69 67 75 72 65 64 20 74 6f 20 75 74 69 6c 69 7a 65 20 73 6f 2d 63 an.be.configured.to.utilize.so-c
100d20 61 6c 6c 65 64 20 40 64 66 6e 7b 69 6e 66 6f 0a 6d 65 74 68 6f 64 73 7d 20 74 6f 20 61 75 67 6d alled.@dfn{info.methods}.to.augm
100d40 65 6e 74 20 74 72 61 63 6b 73 20 77 69 74 68 20 6d 65 74 61 64 61 74 61 20 69 6e 66 6f 72 6d 61 ent.tracks.with.metadata.informa
100d60 74 69 6f 6e 2c 20 73 75 63 68 20 61 73 20 61 72 74 69 73 74 0a 6e 61 6d 65 2c 20 74 72 61 63 6b tion,.such.as.artist.name,.track
100d80 20 6e 61 6d 65 2c 20 61 6c 62 75 6d 20 74 69 74 6c 65 2c 20 61 6e 64 20 74 68 65 20 6c 69 6b 65 .name,.album.title,.and.the.like
100da0 2e 20 20 57 65 20 64 65 73 63 72 69 62 65 20 74 68 65 73 65 0a 6d 65 74 68 6f 64 73 20 61 6e 64 ...We.describe.these.methods.and
100dc0 20 74 68 65 69 72 20 75 73 65 20 69 6e 20 74 68 69 73 20 63 68 61 70 74 65 72 2e 0a 0a 46 75 6e .their.use.in.this.chapter...Fun
100de0 64 61 6d 65 6e 74 61 6c 6c 79 2c 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 20 61 72 65 20 45 6d 61 damentally,.info.methods.are.Ema
100e00 63 73 20 4c 69 73 70 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 63 61 6c 6c 65 cs.Lisp.functions.that.are.calle
100e20 64 0a 66 6f 72 20 65 61 63 68 20 74 72 61 63 6b 20 74 6f 20 70 72 6f 76 69 64 65 20 69 6e 66 6f d.for.each.track.to.provide.info
100e40 72 6d 61 74 69 6f 6e 20 66 6f 72 20 74 68 61 74 20 74 72 61 63 6b 2e 20 20 43 75 72 72 65 6e 74 rmation.for.that.track...Current
100e60 20 69 6e 66 6f 0a 6d 65 74 68 6f 64 73 20 69 6e 20 45 6d 6d 73 20 61 72 65 20 72 65 73 74 72 69 .info.methods.in.Emms.are.restri
100e80 63 74 65 64 20 74 6f 20 74 72 61 63 6b 73 20 74 68 61 74 20 61 72 65 20 66 69 6c 65 73 3b 20 74 cted.to.tracks.that.are.files;.t
100ea0 68 65 79 20 64 6f 20 6e 6f 74 0a 77 6f 72 6b 20 77 69 74 68 20 73 74 72 65 61 6d 20 55 52 4c 73 hey.do.not.work.with.stream.URLs
100ec0 20 28 40 70 78 72 65 66 7b 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 7d 29 2e 20 20 53 6f 6d .(@pxref{Streaming.Audio})...Som
100ee0 65 20 6f 66 20 74 68 65 20 6d 65 74 68 6f 64 73 0a 72 65 71 75 69 72 65 20 69 6e 73 74 61 6c 6c e.of.the.methods.require.install
100f00 61 74 69 6f 6e 20 6f 66 20 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 73 6f 66 74 77 61 72 ation.of.some.additional.softwar
100f20 65 20 74 68 61 74 20 45 6d 6d 73 20 63 61 6e 20 74 68 65 6e 0a 63 61 6c 6c 20 74 6f 20 72 65 61 e.that.Emms.can.then.call.to.rea
100f40 64 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 64 69 73 6b 20 28 40 70 78 72 65 66 7b 4d 65 74 d.metadata.from.disk.(@pxref{Met
100f60 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 7d 29 2e 0a 46 69 6e 61 6c 6c 79 2c 20 73 6f 6d 65 adata.Utilities})..Finally,.some
100f80 20 6d 65 74 68 6f 64 73 20 77 6f 72 6b 20 6f 6e 6c 79 20 77 69 74 68 20 61 20 6c 69 6d 69 74 65 .methods.work.only.with.a.limite
100fa0 64 20 73 65 74 20 6f 66 20 6d 65 64 69 61 20 66 69 6c 65 0a 66 6f 72 6d 61 74 73 20 73 75 63 68 d.set.of.media.file.formats.such
100fc0 20 61 73 20 4f 67 67 20 6f 72 20 4d 50 33 2c 20 77 68 69 6c 65 20 73 6f 6d 65 20 6d 65 74 68 6f .as.Ogg.or.MP3,.while.some.metho
100fe0 64 73 20 73 75 70 70 6f 72 74 20 61 20 77 69 64 65 20 76 61 72 69 65 74 79 0a 6f 66 20 66 6f 72 ds.support.a.wide.variety.of.for
101000 6d 61 74 73 2e 0a 0a 49 66 20 63 61 63 68 69 6e 67 20 69 73 20 65 6e 61 62 6c 65 64 20 28 69 74 mats...If.caching.is.enabled.(it
101020 20 69 73 20 62 79 20 64 65 66 61 75 6c 74 29 20 74 68 65 6e 20 74 68 65 20 6d 65 74 61 64 61 74 .is.by.default).then.the.metadat
101040 61 20 66 6f 72 20 65 61 63 68 0a 74 72 61 63 6b 20 77 69 6c 6c 20 62 65 20 73 74 6f 72 65 64 20 a.for.each.track.will.be.stored.
101060 69 6e 20 74 68 65 20 63 61 63 68 65 20 66 6f 72 20 66 61 73 74 65 72 20 72 65 74 72 69 65 76 61 in.the.cache.for.faster.retrieva
101080 6c 2e 20 54 68 61 74 20 6d 65 61 6e 73 20 69 66 0a 79 6f 75 20 63 68 61 6e 67 65 20 69 6e 66 6f l..That.means.if.you.change.info
1010a0 20 6d 65 74 68 6f 64 20 61 6e 64 20 77 61 6e 74 20 75 70 64 61 74 65 64 20 74 72 61 63 6b 73 2c .method.and.want.updated.tracks,
1010c0 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 72 65 73 65 74 0a 74 68 65 20 63 61 63 68 .you.will.have.to.reset.the.cach
1010e0 65 20 40 6b 62 64 7b 4d 2d 78 20 65 6d 6d 73 2d 63 61 63 68 65 2d 72 65 73 65 74 7d 20 61 6e 64 e.@kbd{M-x.emms-cache-reset}.and
101100 20 74 68 65 6e 20 72 65 70 6f 70 75 6c 61 74 65 20 77 69 74 68 20 40 6b 62 64 7b 4d 2d 78 0a 65 .then.repopulate.with.@kbd{M-x.e
101120 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 52 45 54 20 7e 2f 4d 75 73 mms-add-directory-tree.RET.~/Mus
101140 69 63 2f 20 52 45 54 7d 20 6f 72 20 73 69 6d 69 6c 61 72 2e 0a 0a 41 75 74 6f 6d 61 74 69 63 20 ic/.RET}.or.similar...Automatic.
101160 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 74 72 69 65 76 61 6c 20 69 73 20 65 track.information.retrieval.is.e
101180 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 74 68 65 0a 40 63 6f 64 65 7b 65 nabled.by.default.in.the.@code{e
1011a0 6d 6d 73 2d 61 6c 6c 7d 20 73 65 74 75 70 20 6c 65 76 65 6c 20 28 40 70 78 72 65 66 7b 53 65 74 mms-all}.setup.level.(@pxref{Set
1011c0 75 70 7d 29 2e 20 20 54 68 61 74 20 73 65 74 75 70 20 6c 65 76 65 6c 0a 63 6f 6e 66 69 67 75 72 up})...That.setup.level.configur
1011e0 65 73 20 45 6d 6d 73 20 74 6f 20 75 73 65 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6e es.Emms.to.use.@code{emms-info-n
101200 61 74 69 76 65 7d 20 61 6e 64 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 69 6e ative}.and.@code{emms-info-cuein
101220 66 6f 7d 20 6d 65 74 68 6f 64 73 2c 20 61 73 20 74 68 65 79 20 61 72 65 20 74 68 65 20 6f 6e 6c fo}.methods,.as.they.are.the.onl
101240 79 20 6d 65 74 68 6f 64 73 20 74 68 61 74 20 64 6f 0a 6e 6f 74 20 72 65 6c 79 20 6f 6e 20 61 64 y.methods.that.do.not.rely.on.ad
101260 64 69 74 69 6f 6e 61 6c 20 73 6f 66 74 77 61 72 65 2e 0a 0a 48 65 72 65 20 69 73 20 61 20 6c 69 ditional.software...Here.is.a.li
101280 73 74 20 6f 66 20 61 6c 6c 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 20 64 69 73 74 72 69 62 75 74 st.of.all.info.methods.distribut
1012a0 65 64 20 77 69 74 68 20 45 6d 6d 73 20 61 6e 64 20 74 68 65 69 72 0a 73 6f 66 74 77 61 72 65 20 ed.with.Emms.and.their.software.
1012c0 72 65 71 75 69 72 65 6d 65 6e 74 73 3a 0a 0a 40 74 61 62 6c 65 20 40 63 6f 64 65 0a 0a 40 69 74 requirements:..@table.@code..@it
1012e0 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 em.emms-info-native.This.method.
101300 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 63 6f 6d 70 6c 65 74 65 6c 79 20 69 6e 20 45 6d 61 is.implemented.completely.in.Ema
101320 63 73 20 4c 69 73 70 20 61 6e 64 20 68 65 6e 63 65 20 64 6f 65 73 20 6e 6f 74 0a 72 65 71 75 69 cs.Lisp.and.hence.does.not.requi
101340 72 65 20 61 6e 79 20 65 78 74 65 72 6e 61 6c 20 73 6f 66 74 77 61 72 65 2e 20 20 49 74 20 73 75 re.any.external.software...It.su
101360 70 70 6f 72 74 73 20 4f 67 67 20 56 6f 72 62 69 73 2c 20 4f 70 75 73 2c 20 46 4c 41 43 20 61 6e pports.Ogg.Vorbis,.Opus,.FLAC.an
101380 64 0a 4d 50 33 20 66 69 6c 65 73 2e 0a 0a 40 69 74 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 d.MP3.files...@item.emms-info-ti
1013a0 6e 79 74 61 67 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 75 74 69 6c 69 7a 65 73 20 61 20 73 6d 61 nytag.This.method.utilizes.a.sma
1013c0 6c 6c 20 50 79 74 68 6f 6e 20 6c 69 62 72 61 72 79 20 40 63 6f 64 65 7b 74 69 6e 79 74 61 67 7d ll.Python.library.@code{tinytag}
1013e0 2e 20 20 49 74 0a 73 75 70 70 6f 72 74 73 20 4d 50 33 2c 20 4f 67 67 20 56 6f 72 62 69 73 2c 20 ...It.supports.MP3,.Ogg.Vorbis,.
101400 4f 70 75 73 2c 20 4d 50 34 2c 20 4d 34 41 2c 20 46 4c 41 43 2c 20 57 4d 41 20 61 6e 64 20 57 41 Opus,.MP4,.M4A,.FLAC,.WMA.and.WA
101420 56 20 66 6f 72 6d 61 74 73 2e 0a 0a 40 69 74 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 V.formats...@item.emms-info-exif
101440 74 6f 6f 6c 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 40 63 6f 6d 6d 61 6e 64 7b tool.This.method.calls.@command{
101460 65 78 69 66 74 6f 6f 6c 7d 20 75 74 69 6c 69 74 79 20 77 72 69 74 74 65 6e 20 69 6e 20 50 65 72 exiftool}.utility.written.in.Per
101480 6c 2e 20 20 49 74 0a 73 75 70 70 6f 72 74 73 20 64 6f 7a 65 6e 73 20 6f 66 20 6d 65 64 69 61 20 l...It.supports.dozens.of.media.
1014a0 66 69 6c 65 20 66 6f 72 6d 61 74 73 2c 20 66 61 72 20 74 6f 6f 20 6d 61 6e 79 20 74 6f 20 6c 69 file.formats,.far.too.many.to.li
1014c0 73 74 20 68 65 72 65 2e 0a 0a 40 69 74 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 st.here...@item.emms-info-libtag
1014e0 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 61 20 73 6d 61 6c 6c 20 60 60 73 68 69 .This.method.calls.a.small.``shi
101500 6d 27 27 20 65 78 65 63 75 74 61 62 6c 65 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 70 72 69 m''.executable.@command{emms-pri
101520 6e 74 2d 6d 65 74 61 64 61 74 61 7d 20 62 75 69 6c 74 20 61 72 6f 75 6e 64 20 54 61 67 4c 69 62 nt-metadata}.built.around.TagLib
101540 20 6c 69 62 72 61 72 79 2e 20 20 49 74 0a 73 75 70 70 6f 72 74 73 20 4d 50 33 2c 20 4f 67 67 20 .library...It.supports.MP3,.Ogg.
101560 56 6f 72 62 69 73 2c 20 4f 70 75 73 2c 20 46 4c 41 43 2c 20 4d 50 43 2c 20 53 70 65 65 78 2c 20 Vorbis,.Opus,.FLAC,.MPC,.Speex,.
101580 57 61 76 50 61 63 6b 2c 20 54 72 75 65 41 75 64 69 6f 2c 0a 57 41 56 2c 20 41 49 46 46 2c 20 4d WavPack,.TrueAudio,.WAV,.AIFF,.M
1015a0 50 34 20 61 6e 64 20 41 53 46 20 66 6f 72 6d 61 74 73 2e 0a 0a 40 69 74 65 6d 20 65 6d 6d 73 2d P4.and.ASF.formats...@item.emms-
1015c0 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 info-metaflac.This.method.calls.
1015e0 40 63 6f 6d 6d 61 6e 64 7b 6d 65 74 61 66 6c 61 63 7d 20 75 74 69 6c 69 74 79 2e 20 20 49 74 20 @command{metaflac}.utility...It.
101600 77 6f 72 6b 73 20 6f 6e 6c 79 20 77 69 74 68 20 46 4c 41 43 0a 66 69 6c 65 73 2e 0a 0a 40 69 74 works.only.with.FLAC.files...@it
101620 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 0a 54 68 69 73 20 6d 65 74 68 6f 64 em.emms-info-mp3info.This.method
101640 20 63 61 6c 6c 73 20 40 63 6f 6d 6d 61 6e 64 7b 6d 70 33 69 6e 66 6f 7d 20 75 74 69 6c 69 74 79 .calls.@command{mp3info}.utility
101660 2e 20 20 49 74 20 77 6f 72 6b 73 20 6f 6e 6c 79 20 77 69 74 68 20 4d 50 33 0a 66 69 6c 65 73 20 ...It.works.only.with.MP3.files.
101680 74 68 61 74 20 68 61 76 65 20 6f 6c 64 65 72 20 69 64 33 76 31 20 74 61 67 73 2e 0a 0a 40 69 74 that.have.older.id3v1.tags...@it
1016a0 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 0a 54 68 69 73 20 6d 65 74 68 6f 64 em.emms-info-ogginfo.This.method
1016c0 20 63 61 6c 6c 73 20 40 63 6f 6d 6d 61 6e 64 7b 6f 67 67 69 6e 66 6f 7d 20 75 74 69 6c 69 74 79 .calls.@command{ogginfo}.utility
1016e0 2e 20 20 49 74 20 73 75 70 70 6f 72 74 73 20 4f 67 67 20 56 6f 72 62 69 73 0a 61 6e 64 20 54 68 ...It.supports.Ogg.Vorbis.and.Th
101700 65 6f 72 61 20 66 6f 72 6d 61 74 73 2e 0a 0a 40 69 74 65 6d 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f eora.formats...@item.emms-info-o
101720 70 75 73 69 6e 66 6f 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 40 63 6f 6d 6d 61 pusinfo.This.method.calls.@comma
101740 6e 64 7b 6f 70 75 73 69 6e 66 6f 7d 20 75 74 69 6c 69 74 79 2e 20 20 49 74 20 77 6f 72 6b 73 20 nd{opusinfo}.utility...It.works.
101760 6f 6e 6c 79 20 77 69 74 68 20 4f 70 75 73 0a 66 69 6c 65 73 2e 0a 0a 40 69 74 65 6d 20 65 6d 6d only.with.Opus.files...@item.emm
101780 73 2d 69 6e 66 6f 2d 63 75 65 69 6e 66 6f 0a 54 68 69 73 20 69 73 20 61 20 73 70 65 63 69 61 6c s-info-cueinfo.This.is.a.special
1017a0 20 6d 65 74 68 6f 64 20 74 68 61 74 20 70 61 72 73 65 73 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d .method.that.parses.track.inform
1017c0 61 74 69 6f 6e 20 66 72 6f 6d 20 61 6e 0a 61 63 63 6f 6d 70 61 6e 79 69 6e 67 20 63 75 65 20 66 ation.from.an.accompanying.cue.f
1017e0 69 6c 65 20 66 6f 72 20 46 4c 41 43 20 61 6e 64 20 41 50 45 20 66 69 6c 65 73 20 28 40 70 78 72 ile.for.FLAC.and.APE.files.(@pxr
101800 65 66 7b 41 50 45 20 2f 20 46 4c 41 43 0a 43 6f 6d 6d 61 6e 64 73 7d 29 2e 20 20 49 74 20 64 6f ef{APE./.FLAC.Commands})...It.do
101820 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 73 6f es.not.require.any.additional.so
101840 66 74 77 61 72 65 2e 0a 0a 40 65 6e 64 20 74 61 62 6c 65 0a 0a 54 6f 20 75 73 65 20 61 6e 79 20 ftware...@end.table..To.use.any.
101860 6f 66 20 74 68 65 20 6d 65 74 68 6f 64 73 2c 20 61 64 64 20 74 68 65 20 6d 65 74 68 6f 64 20 74 of.the.methods,.add.the.method.t
101880 6f 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 7d 20 6c 69 73 o.@code{emms-info-functions}.lis
1018a0 74 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 t...For.example:..@lisp.(require
1018c0 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 29 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 .'emms-info-native).(add-to-list
1018e0 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f .'emms-info-functions.'emms-info
101900 2d 6e 61 74 69 76 65 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 6e 6f 69 6e 64 65 6e 74 0a 59 6f -native).@end.lisp..@noindent.Yo
101920 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 65 20 61 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 u.can.also.use.a.combination.of.
101940 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 63 20 74 6f 6f 6c 73 20 69 66 20 6e 65 65 64 65 64 3a format-specific.tools.if.needed:
101960 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 ..@lisp.(require.'emms-info-mp3i
101980 6e 66 6f 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f nfo).(require.'emms-info-ogginfo
1019a0 29 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 ).(add-to-list.'emms-info-functi
1019c0 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 20 27 65 6d 6d 73 2d 69 6e 66 ons.'emms-info-mp3info.'emms-inf
1019e0 6f 2d 6f 67 67 69 6e 66 6f 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 6e 6f 69 6e 64 65 6e 74 0a o-ogginfo).@end.lisp..@noindent.
101a00 49 6e 20 74 68 69 73 20 63 61 73 65 20 62 6f 74 68 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 In.this.case.both.@code{emms-inf
101a20 6f 2d 6d 70 33 69 6e 66 6f 7d 20 61 6e 64 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6f o-mp3info}.and.@code{emms-info-o
101a40 67 67 69 6e 66 6f 7d 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 66 6f 72 20 65 61 63 68 20 gginfo}.will.be.called.for.each.
101a60 74 72 61 63 6b 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 75 73 track...There.are.a.number.of.us
101a80 65 72 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 62 er.variables.which.control.the.b
101aa0 65 68 61 76 69 6f 72 20 6f 66 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 7d 3a 0a 0a 40 64 ehavior.of.@code{emms-info}:..@d
101ac0 65 66 6f 70 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 75 74 6f 2d 75 70 64 61 74 65 0a 4e 6f 6e 2d efopt.emms-info-auto-update.Non-
101ae0 6e 69 6c 20 77 68 65 6e 20 45 6d 6d 73 20 73 68 6f 75 6c 64 20 75 70 64 61 74 65 20 74 72 61 63 nil.when.Emms.should.update.trac
101b00 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 66 69 6c 65 20 63 68 61 6e 67 65 k.information.if.the.file.change
101b20 73 2e 0a 54 68 69 73 20 77 69 6c 6c 20 63 61 75 73 65 20 68 61 72 64 20 64 72 69 76 65 20 61 63 s..This.will.cause.hard.drive.ac
101b40 74 69 76 69 74 79 20 6f 6e 20 74 72 61 63 6b 20 6c 6f 61 64 69 6e 67 2e 20 49 66 20 74 68 69 73 tivity.on.track.loading..If.this
101b60 20 69 73 20 74 6f 6f 0a 61 6e 6e 6f 79 69 6e 67 20 66 6f 72 20 79 6f 75 2c 20 73 65 74 20 74 68 .is.too.annoying.for.you,.set.th
101b80 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a is.variable.to.nil..@end.defopt.
101ba0 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c .@defopt.emms-info-asynchronousl
101bc0 79 0a 4e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e y.Non-nil.when.track.information
101be0 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 61 64 65 64 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 .should.be.loaded.asynchronously
101c00 2e 20 54 68 69 73 0a 72 65 71 75 69 72 65 73 20 74 68 65 20 66 65 61 74 75 72 65 20 40 63 6f 64 ..This.requires.the.feature.@cod
101c20 65 7b 6c 61 74 65 72 2d 64 6f 7d 20 77 68 69 63 68 20 69 73 20 70 72 6f 76 69 64 65 64 20 62 79 e{later-do}.which.is.provided.by
101c40 20 74 68 65 20 66 69 6c 65 0a 40 66 69 6c 65 7b 6c 61 74 65 72 2d 64 6f 2e 65 6c 7d 2c 20 77 68 .the.file.@file{later-do.el},.wh
101c60 69 63 68 20 63 6f 6d 65 73 20 77 69 74 68 20 45 6d 6d 73 2e 20 20 53 65 65 20 76 61 72 69 61 62 ich.comes.with.Emms...See.variab
101c80 6c 65 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2d 62 61 74 63 68 7d 20 66 6f le.@code{emms-later-do-batch}.fo
101ca0 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 74 77 65 61 6b 69 6e 67 2e 0a 40 65 6e 64 20 64 65 66 r.performance.tweaking..@end.def
101cc0 6f 70 74 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 opt..@defopt.emms-info-functions
101ce0 0a 41 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 28 69 6e 66 6f 20 6d 65 74 68 6f .A.list.of.functions.(info.metho
101d00 64 73 29 20 77 68 69 63 68 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 74 72 61 ds).which.add.information.to.tra
101d20 63 6b 73 2e 0a 45 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 cks..Each.function.is.called.wit
101d40 68 20 61 20 74 72 61 63 6b 20 61 73 20 61 72 67 75 6d 65 6e 74 2e 20 20 49 66 20 74 77 6f 20 69 h.a.track.as.argument...If.two.i
101d60 6e 66 6f 20 6d 65 74 68 6f 64 73 0a 70 72 6f 64 75 63 65 20 74 68 65 20 73 61 6d 65 20 69 6e 66 nfo.methods.produce.the.same.inf
101d80 6f 72 6d 61 74 69 6f 6e 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 20 61 6c 62 75 6d 20 6e 61 6d 65 ormation.(for.example.album.name
101da0 29 2c 20 74 68 65 20 6c 61 74 74 65 72 20 6f 6e 65 0a 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e ),.the.latter.one.takes.preceden
101dc0 63 65 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 0a 40 6d 65 6e 75 0a 2a 20 4d 65 74 61 64 61 74 ce..@end.defopt..@menu.*.Metadat
101de0 61 20 55 74 69 6c 69 74 69 65 73 3a 3a 20 20 20 20 20 20 20 53 75 70 70 6f 72 74 65 64 20 65 78 a.Utilities::.......Supported.ex
101e00 74 65 72 6e 61 6c 20 6d 65 74 61 64 61 74 61 20 75 74 69 6c 69 74 69 65 73 2e 0a 2a 20 44 65 66 ternal.metadata.utilities..*.Def
101e20 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 3a 3a 20 20 20 20 48 6f 77 20 74 6f 20 64 ining.Info.Methods::....How.to.d
101e40 65 66 69 6e 65 20 6e 65 77 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 2e 0a 40 65 6e 64 20 6d 65 6e efine.new.info.methods..@end.men
101e60 75 0a 0a 0a 0a 40 6e 6f 64 65 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 0a 40 73 u....@node.Metadata.Utilities.@s
101e80 65 63 74 69 6f 6e 20 4d 65 74 61 64 61 74 61 20 55 74 69 6c 69 74 69 65 73 0a 0a 57 69 74 68 20 ection.Metadata.Utilities..With.
101ea0 74 68 65 20 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f the.exception.of.@code{emms-info
101ec0 2d 6e 61 74 69 76 65 7d 20 61 6e 64 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 -native}.and.@code{emms-info-cue
101ee0 69 6e 66 6f 7d 2c 20 45 6d 6d 73 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 20 72 65 71 75 69 72 65 info},.Emms.info.methods.require
101f00 20 65 78 74 65 72 6e 61 6c 20 6d 65 74 61 64 61 74 61 0a 75 74 69 6c 69 74 69 65 73 20 74 6f 20 .external.metadata.utilities.to.
101f20 72 65 61 64 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 20 read.metadata.from.media.files..
101f40 20 49 66 20 79 6f 75 20 70 6c 61 6e 20 74 6f 20 75 73 65 20 61 0a 63 65 72 74 61 69 6e 20 69 6e .If.you.plan.to.use.a.certain.in
101f60 66 6f 20 6d 65 74 68 6f 64 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 68 61 76 65 20 74 68 fo.method,.make.sure.you.have.th
101f80 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 75 74 69 6c 69 74 79 0a 69 6e 73 74 61 6c 6c 65 e.corresponding.utility.installe
101fa0 64 2e 20 20 41 6c 6c 20 6f 66 20 74 68 65 73 65 20 75 74 69 6c 69 74 69 65 73 20 61 72 65 20 66 d...All.of.these.utilities.are.f
101fc0 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 6d 6f 73 74 20 6f 66 20 74 68 65 6d 0a 61 ree.software,.and.most.of.them.a
101fe0 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 66 72 65 65 20 47 4e 55 2f 4c 69 6e 75 78 20 64 69 re.included.in.free.GNU/Linux.di
102000 73 74 72 69 62 75 74 69 6f 6e 73 2e 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 6e 67 20 74 69 6e stributions...@subsubheading.tin
102020 79 74 61 67 0a 0a 74 69 6e 79 74 61 67 20 69 73 20 61 20 50 79 74 68 6f 6e 20 6c 69 62 72 61 72 ytag..tinytag.is.a.Python.librar
102040 79 20 66 6f 72 20 72 65 61 64 69 6e 67 20 6d 65 74 61 64 61 74 61 20 66 72 6f 6d 20 6d 75 73 69 y.for.reading.metadata.from.musi
102060 63 20 66 69 6c 65 73 2e 20 20 49 74 0a 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 40 75 72 c.files...It.is.available.at.@ur
102080 6c 7b 68 74 74 70 73 3a 2f 2f 70 79 70 69 2e 6f 72 67 2f 70 72 6f 6a 65 63 74 2f 74 69 6e 79 74 l{https://pypi.org/project/tinyt
1020a0 61 67 2f 7d 2e 20 20 4e 61 74 75 72 61 6c 6c 79 20 61 0a 77 6f 72 6b 69 6e 67 20 50 79 74 68 6f ag/}...Naturally.a.working.Pytho
1020c0 6e 20 69 6e 74 65 72 70 72 65 74 65 72 20 69 73 20 61 6c 73 6f 20 72 65 71 75 69 72 65 64 2e 20 n.interpreter.is.also.required..
1020e0 20 54 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 45 6d 6d 73 0a 69 6e 66 6f 20 6d 65 74 .The.corresponding.Emms.info.met
102100 68 6f 64 20 69 73 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 7d 2e hod.is.@code{emms-info-tinytag}.
102120 0a 0a 49 74 20 69 73 20 62 65 73 74 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 40 63 6f 64 65 7b ..It.is.best.to.configure.@code{
102140 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 7d 20 61 73 20 74 68 65 20 73 6f 6c 65 20 69 emms-info-tinytag}.as.the.sole.i
102160 6e 66 6f 0a 6d 65 74 68 6f 64 20 66 6f 72 20 45 6d 6d 73 2c 20 62 65 63 61 75 73 65 20 63 6f 6d nfo.method.for.Emms,.because.com
102180 70 65 74 69 6e 67 20 61 6e 64 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 6d 65 74 68 6f 64 73 20 63 peting.and.overlapping.methods.c
1021a0 61 6e 20 63 61 75 73 65 0a 63 6f 6e 66 75 73 69 6f 6e 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 20 an.cause.confusion...To.use.it,.
1021c0 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 add.the.following.into.your.Emac
1021e0 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 s.initialization.file:..@lisp.(r
102200 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 74 69 6e 79 74 61 67 29 0a 28 73 65 74 71 equire.'emms-info-tinytag).(setq
102220 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f .emms-info-functions.'(emms-info
102240 2d 74 69 6e 79 74 61 67 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 73 75 62 73 75 62 68 65 61 -tinytag)).@end.lisp..@subsubhea
102260 64 69 6e 67 20 45 78 69 66 54 6f 6f 6c 0a 0a 45 78 69 66 54 6f 6f 6c 20 69 73 20 61 20 70 6c 61 ding.ExifTool..ExifTool.is.a.pla
102280 74 66 6f 72 6d 2d 69 6e 64 65 70 65 6e 64 65 6e 74 20 50 65 72 6c 20 6c 69 62 72 61 72 79 20 61 tform-independent.Perl.library.a
1022a0 6e 64 20 61 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 0a 61 70 70 6c 69 63 61 74 69 6f 6e 20 66 6f nd.a.command-line.application.fo
1022c0 72 20 72 65 61 64 69 6e 67 2c 20 77 72 69 74 69 6e 67 20 61 6e 64 20 65 64 69 74 69 6e 67 20 6d r.reading,.writing.and.editing.m
1022e0 65 74 61 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 61 0a 77 69 64 65 20 76 61 72 69 65 74 eta.information.in.a.wide.variet
102300 79 20 6f 66 20 66 69 6c 65 73 2e 20 20 49 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a y.of.files...It.is.available.at.
102320 40 75 72 65 66 7b 68 74 74 70 73 3a 2f 2f 65 78 69 66 74 6f 6f 6c 2e 6f 72 67 2f 7d 2e 20 20 4e @uref{https://exiftool.org/}...N
102340 61 74 75 72 61 6c 6c 79 20 61 20 77 6f 72 6b 69 6e 67 20 50 65 72 6c 20 69 6e 74 65 72 70 72 65 aturally.a.working.Perl.interpre
102360 74 65 72 20 69 73 0a 61 6c 73 6f 20 72 65 71 75 69 72 65 64 2e 20 20 54 68 65 20 63 6f 72 72 65 ter.is.also.required...The.corre
102380 73 70 6f 6e 64 69 6e 67 20 45 6d 6d 73 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 0a 40 63 6f sponding.Emms.info.method.is.@co
1023a0 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 7d 2e 0a 0a 49 74 20 69 73 20 62 de{emms-info-exiftool}...It.is.b
1023c0 65 73 74 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f est.to.configure.@code{emms-info
1023e0 2d 65 78 69 66 74 6f 6f 6c 7d 20 61 73 20 74 68 65 20 73 6f 6c 65 20 69 6e 66 6f 0a 6d 65 74 68 -exiftool}.as.the.sole.info.meth
102400 6f 64 20 66 6f 72 20 45 6d 6d 73 2c 20 62 65 63 61 75 73 65 20 63 6f 6d 70 65 74 69 6e 67 20 61 od.for.Emms,.because.competing.a
102420 6e 64 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 6d 65 74 68 6f 64 73 20 63 61 6e 20 63 61 75 73 65 nd.overlapping.methods.can.cause
102440 0a 63 6f 6e 66 75 73 69 6f 6e 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 20 61 64 64 20 74 68 65 20 .confusion...To.use.it,.add.the.
102460 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 0a 69 6e 69 74 69 61 following.into.your.Emacs.initia
102480 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 lization.file:..@lisp.(require.'
1024a0 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 29 0a 28 73 65 74 71 20 65 6d 6d 73 2d 69 emms-info-exiftool).(setq.emms-i
1024c0 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f nfo-functions.'(emms-info-exifto
1024e0 6f 6c 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 6e 67 20 54 ol)).@end.lisp..@subsubheading.T
102500 61 67 4c 69 62 0a 0a 54 61 67 4c 69 62 20 69 73 20 61 20 6c 69 62 72 61 72 79 20 66 6f 72 20 72 agLib..TagLib.is.a.library.for.r
102520 65 61 64 69 6e 67 20 61 6e 64 20 65 64 69 74 69 6e 67 20 6d 65 74 61 64 61 74 61 20 6f 66 20 73 eading.and.editing.metadata.of.s
102540 65 76 65 72 61 6c 0a 70 6f 70 75 6c 61 72 20 61 75 64 69 6f 20 66 6f 72 6d 61 74 73 2e 20 20 49 everal.popular.audio.formats...I
102560 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 74 61 t.is.available.at.@url{http://ta
102580 67 6c 69 62 2e 67 69 74 68 75 62 2e 69 6f 2f 7d 2e 20 20 42 65 63 61 75 73 65 20 54 61 67 4c 69 glib.github.io/}...Because.TagLi
1025a0 62 20 69 73 20 61 20 43 2b 2b 20 6c 69 62 72 61 72 79 0a 69 6e 73 74 65 61 64 20 6f 66 20 61 6e b.is.a.C++.library.instead.of.an
1025c0 20 65 78 65 63 75 74 61 62 6c 65 20 70 72 6f 67 72 61 6d 2c 20 79 6f 75 20 68 61 76 65 20 74 6f .executable.program,.you.have.to
1025e0 20 62 75 69 6c 64 20 61 6e 64 20 69 6e 73 74 61 6c 6c 20 61 0a 73 6d 61 6c 6c 20 60 60 73 68 69 .build.and.install.a.small.``shi
102600 6d 27 27 20 65 78 65 63 75 74 61 62 6c 65 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 70 72 69 m''.executable.@command{emms-pri
102620 6e 74 2d 6d 65 74 61 64 61 74 61 7d 20 61 72 6f 75 6e 64 20 69 74 2e 0a 40 63 6f 64 65 7b 65 6d nt-metadata}.around.it..@code{em
102640 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 7d 20 77 69 6c 6c 20 74 68 65 6e 20 63 61 6c 6c 20 74 ms-info-libtag}.will.then.call.t
102660 68 69 73 20 65 78 65 63 75 74 61 62 6c 65 20 74 6f 20 72 65 61 64 0a 6d 65 74 61 64 61 74 61 20 his.executable.to.read.metadata.
102680 66 72 6f 6d 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 0a 0a 54 6f 20 63 6f 6d 70 69 6c 65 20 40 63 from.media.files...To.compile.@c
1026a0 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 7d 20 69 6e 76 6f ommand{emms-print-metadata}.invo
1026c0 6b 65 0a 0a 40 63 6f 6d 6d 61 6e 64 7b 6d 61 6b 65 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 ke..@command{make.emms-print-met
1026e0 61 64 61 74 61 7d 0a 0a 40 6e 6f 69 6e 64 65 6e 74 0a 69 6e 20 45 6d 6d 73 20 64 69 72 65 63 74 adata}..@noindent.in.Emms.direct
102700 6f 72 79 2e 20 20 46 6f 72 20 74 68 69 73 20 74 6f 20 73 75 63 63 65 65 64 20 79 6f 75 20 6e 65 ory...For.this.to.succeed.you.ne
102720 65 64 20 74 6f 20 68 61 76 65 20 61 20 77 6f 72 6b 69 6e 67 20 43 2b 2b 0a 63 6f 6d 70 69 6c 65 ed.to.have.a.working.C++.compile
102740 72 20 61 6e 64 20 54 61 67 4c 69 62 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 6c 69 62 72 61 72 69 r.and.TagLib.development.librari
102760 65 73 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 2e 0a 54 68 65 es.installed.on.your.system..The
102780 20 72 65 73 75 6c 74 61 6e 74 20 62 69 6e 61 72 79 20 65 78 65 63 75 74 61 62 6c 65 20 77 69 6c .resultant.binary.executable.wil
1027a0 6c 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 77 68 65 6e 20 79 6f 75 20 69 6e 76 6f 6b 65 0a 0a l.be.installed.when.you.invoke..
1027c0 40 63 6f 6d 6d 61 6e 64 7b 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 7d 20 61 73 20 69 6e 20 40 78 72 @command{make.install}.as.in.@xr
1027e0 65 66 7b 43 6f 6d 70 69 6c 69 6e 67 20 45 6d 6d 73 7d 2e 0a 0a 40 6e 6f 69 6e 64 65 6e 74 0a 49 ef{Compiling.Emms}...@noindent.I
102800 74 20 69 73 20 6f 66 20 63 6f 75 72 73 65 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 t.is.of.course.also.possible.to.
102820 69 6e 73 74 61 6c 6c 20 6f 6e 6c 79 20 74 68 65 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 72 69 6e install.only.the.@file{emms-prin
102840 74 2d 6d 65 74 61 64 61 74 61 7d 20 62 69 6e 61 72 79 20 77 68 65 72 65 20 79 6f 75 72 20 73 79 t-metadata}.binary.where.your.sy
102860 73 74 65 6d 20 63 61 6e 20 66 69 6e 64 20 61 6e 64 0a 65 78 65 63 75 74 65 20 69 74 20 77 69 74 stem.can.find.and.execute.it.wit
102880 68 6f 75 74 20 69 6e 73 74 61 6c 6c 69 6e 67 20 61 6c 6c 20 6f 66 20 45 6d 6d 73 20 76 69 61 20 hout.installing.all.of.Emms.via.
1028a0 74 68 65 20 6d 61 6b 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4f 6e 63 65 20 40 63 6f 6d 6d 61 6e 64 the.make.command...Once.@command
1028c0 7b 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 7d 20 69 73 20 61 76 61 69 6c 61 62 {emms-print-metadata}.is.availab
1028e0 6c 65 2c 20 69 74 20 69 73 20 62 65 73 74 20 74 6f 0a 63 6f 6e 66 69 67 75 72 65 20 40 63 6f 64 le,.it.is.best.to.configure.@cod
102900 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 7d 20 61 73 20 74 68 65 20 73 6f 6c 65 20 e{emms-info-libtag}.as.the.sole.
102920 69 6e 66 6f 20 6d 65 74 68 6f 64 20 66 6f 72 20 45 6d 6d 73 2c 0a 62 65 63 61 75 73 65 20 63 6f info.method.for.Emms,.because.co
102940 6d 70 65 74 69 6e 67 20 61 6e 64 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 6d 65 74 68 6f 64 73 20 mpeting.and.overlapping.methods.
102960 63 61 6e 20 63 61 75 73 65 20 63 6f 6e 66 75 73 69 6f 6e 2e 20 20 54 6f 20 75 73 65 0a 69 74 2c can.cause.confusion...To.use.it,
102980 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 .add.the.following.into.your.Ema
1029a0 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 cs.initialization.file:..@lisp.(
1029c0 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 29 0a 28 73 65 74 71 require.'emms-info-libtag).(setq
1029e0 20 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 69 6e 66 6f .emms-info-functions.'(emms-info
102a00 2d 6c 69 62 74 61 67 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 73 75 62 73 75 62 68 65 61 64 -libtag)).@end.lisp..@subsubhead
102a20 69 6e 67 20 6d 65 74 61 66 6c 61 63 0a 0a 40 63 6f 6d 6d 61 6e 64 7b 6d 65 74 61 66 6c 61 63 7d ing.metaflac..@command{metaflac}
102a40 20 69 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 46 4c 41 43 20 66 69 6c 65 20 6d .is.the.command-line.FLAC.file.m
102a60 65 74 61 64 61 74 61 20 65 64 69 74 6f 72 2e 20 20 49 74 0a 69 73 20 69 6e 63 6c 75 64 65 64 20 etadata.editor...It.is.included.
102a80 69 6e 20 46 4c 41 43 20 73 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 76 61 69 in.FLAC.source.distribution.avai
102aa0 6c 61 62 6c 65 20 61 74 0a 40 75 72 6c 7b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d lable.at.@url{https://github.com
102ac0 2f 78 69 70 68 2f 66 6c 61 63 7d 2e 20 20 54 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 /xiph/flac}...The.corresponding.
102ae0 69 6e 66 6f 20 6d 65 74 68 6f 64 20 69 73 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6d info.method.is.@code{emms-info-m
102b00 65 74 61 66 6c 61 63 7d 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 20 61 64 64 20 74 68 65 20 66 6f etaflac}...To.use.it,.add.the.fo
102b20 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 0a 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 llowing.into.your.Emacs.initiali
102b40 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d zation.file:..@lisp.(require.'em
102b60 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 ms-info-metaflac).(add-to-list.'
102b80 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d emms-info-functions.'emms-info-m
102ba0 65 74 61 66 6c 61 63 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 etaflac).@end.lisp..@subsubheadi
102bc0 6e 67 20 4d 50 33 69 6e 66 6f 0a 0a 4d 50 33 69 6e 66 6f 20 69 73 20 61 20 73 6d 61 6c 6c 20 75 ng.MP3info..MP3info.is.a.small.u
102be0 74 69 6c 69 74 79 20 66 6f 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 6d 6f 64 69 66 79 69 6e 67 tility.for.reading.and.modifying
102c00 20 69 64 33 76 31 20 74 61 67 73 20 66 72 6f 6d 0a 4d 50 33 20 66 69 6c 65 73 2e 20 20 4e 6f 74 .id3v1.tags.from.MP3.files...Not
102c20 65 20 74 68 61 74 20 6d 6f 72 65 20 72 65 63 65 6e 74 20 69 64 33 76 32 20 74 61 67 73 20 61 72 e.that.more.recent.id3v2.tags.ar
102c40 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 3b 20 66 6f 72 0a 74 68 6f 73 65 20 79 6f 75 20 6e e.not.supported;.for.those.you.n
102c60 65 65 64 20 74 6f 20 75 73 65 20 61 6e 6f 74 68 65 72 20 69 6e 66 6f 20 6d 65 74 68 6f 64 2c 20 eed.to.use.another.info.method,.
102c80 66 6f 72 20 65 78 61 6d 70 6c 65 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 for.example.@code{emms-info-nati
102ca0 76 65 7d 2e 20 20 4d 50 33 69 6e 66 6f 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 40 75 ve}...MP3info.is.available.at.@u
102cc0 72 6c 7b 68 74 74 70 73 3a 2f 2f 69 62 69 62 6c 69 6f 2e 6f 72 67 2f 6d 70 33 69 6e 66 6f 2f 7d rl{https://ibiblio.org/mp3info/}
102ce0 2e 0a 0a 54 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f 20 6d 65 74 68 6f 64 ...The.corresponding.info.method
102d00 20 69 73 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 7d 2e 20 20 54 .is.@code{emms-info-mp3info}...T
102d20 6f 20 75 73 65 20 69 74 2c 0a 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f o.use.it,.add.the.following.into
102d40 20 79 6f 75 72 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a .your.Emacs.initialization.file:
102d60 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 ..@lisp.(require.'emms-info-mp3i
102d80 6e 66 6f 29 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e nfo).(add-to-list.'emms-info-fun
102da0 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 29 0a 40 65 6e 64 20 ctions.'emms-info-mp3info).@end.
102dc0 6c 69 73 70 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 6e 67 20 6f 67 67 69 6e 66 6f 0a 0a 40 63 lisp..@subsubheading.ogginfo..@c
102de0 6f 6d 6d 61 6e 64 7b 6f 67 67 69 6e 66 6f 7d 20 69 73 20 61 20 73 6d 61 6c 6c 20 75 74 69 6c 69 ommand{ogginfo}.is.a.small.utili
102e00 74 79 20 66 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 ty.for.extracting.information.ab
102e20 6f 75 74 0a 4f 67 67 20 56 6f 72 62 69 73 20 61 6e 64 20 54 68 65 6f 72 61 20 66 69 6c 65 73 2e out.Ogg.Vorbis.and.Theora.files.
102e40 20 20 49 74 20 69 73 20 70 61 72 74 20 6f 66 20 56 6f 72 62 69 73 20 54 6f 6f 6c 73 20 73 6f 75 ..It.is.part.of.Vorbis.Tools.sou
102e60 72 63 65 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 40 75 rce.distribution.available.at.@u
102e80 72 6c 7b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 78 69 70 68 2f 76 6f 72 62 69 rl{https://github.com/xiph/vorbi
102ea0 73 2d 74 6f 6f 6c 73 7d 2e 0a 54 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f s-tools}..The.corresponding.info
102ec0 20 6d 65 74 68 6f 64 20 69 73 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e .method.is.@code{emms-info-oggin
102ee0 66 6f 7d 2e 20 20 54 6f 20 75 73 65 20 69 74 2c 0a 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 fo}...To.use.it,.add.the.followi
102f00 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f ng.into.your.Emacs.initializatio
102f20 6e 20 66 69 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e n.file:..@lisp.(require.'emms-in
102f40 66 6f 2d 6f 67 67 69 6e 66 6f 29 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 fo-ogginfo).(add-to-list.'emms-i
102f60 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f nfo-functions.'emms-info-ogginfo
102f80 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 6e 67 20 6f 70 75 73 ).@end.lisp..@subsubheading.opus
102fa0 69 6e 66 6f 0a 0a 40 63 6f 6d 6d 61 6e 64 7b 6f 70 75 73 69 6e 66 6f 7d 20 69 73 20 61 20 73 6d info..@command{opusinfo}.is.a.sm
102fc0 61 6c 6c 20 75 74 69 6c 69 74 79 20 66 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 69 6e 66 6f 72 all.utility.for.extracting.infor
102fe0 6d 61 74 69 6f 6e 20 61 62 6f 75 74 0a 4f 70 75 73 20 66 69 6c 65 73 2e 20 20 49 74 20 69 73 20 mation.about.Opus.files...It.is.
103000 70 61 72 74 20 6f 66 20 4f 70 75 73 20 54 6f 6f 6c 73 20 73 6f 75 72 63 65 20 64 69 73 74 72 69 part.of.Opus.Tools.source.distri
103020 62 75 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a 40 75 72 6c 7b 68 74 74 70 73 3a 2f bution.available.at.@url{https:/
103040 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 78 69 70 68 2f 6f 70 75 73 2d 74 6f 6f 6c 73 7d 2e 20 20 54 /github.com/xiph/opus-tools}...T
103060 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 66 6f 0a 6d 65 74 68 6f 64 20 69 73 20 he.corresponding.info.method.is.
103080 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 7d 2e 20 20 54 6f 20 75 @code{emms-info-opusinfo}...To.u
1030a0 73 65 20 69 74 2c 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 69 6e 74 6f 20 79 6f se.it,.add.the.following.into.yo
1030c0 75 72 20 45 6d 61 63 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 3a 0a 0a 40 ur.Emacs.initialization.file:..@
1030e0 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 lisp.(require.'emms-info-opusinf
103100 6f 29 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 o).(add-to-list.'emms-info-funct
103120 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 29 0a 40 65 6e 64 20 6c ions.'emms-info-opusinfo).@end.l
103140 69 73 70 0a 0a 40 6e 6f 64 65 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 isp..@node.Defining.Info.Methods
103160 0a 40 73 65 63 74 69 6f 6e 20 44 65 66 69 6e 69 6e 67 20 49 6e 66 6f 20 4d 65 74 68 6f 64 73 0a .@section.Defining.Info.Methods.
103180 0a 40 63 69 6e 64 65 78 20 64 65 66 69 6e 69 6e 67 20 69 6e 66 6f 20 6d 65 74 68 6f 64 73 0a 0a .@cindex.defining.info.methods..
1031a0 41 6e 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 65 73 73 65 6e 74 69 61 6c 6c 79 20 63 6f 6e 73 69 An.info.method.essentially.consi
1031c0 73 74 73 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 2c 20 67 69 76 65 6e 20 61 sts.of.a.function.which,.given.a
1031e0 6e 20 45 6d 6d 73 0a 74 72 61 63 6b 2c 20 73 65 74 73 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 n.Emms.track,.sets.the.appropria
103200 74 65 20 40 64 66 6e 7b 69 6e 66 6f 2d 73 79 6d 62 6f 6c 73 7d 20 66 6f 72 20 74 68 61 74 20 74 te.@dfn{info-symbols}.for.that.t
103220 72 61 63 6b 2e 20 20 49 6e 66 6f 0a 73 79 6d 62 6f 6c 73 20 61 72 65 20 6b 65 79 73 20 74 68 61 rack...Info.symbols.are.keys.tha
103240 74 20 68 61 76 65 20 61 6e 20 61 73 73 6f 63 69 61 74 65 64 20 76 61 6c 75 65 20 73 74 6f 72 65 t.have.an.associated.value.store
103260 64 20 69 6e 20 74 68 65 0a 40 64 66 6e 7b 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 7d 2e 20 20 d.in.the.@dfn{metadata.cache}...
103280 57 68 69 6c 65 20 69 6e 66 6f 20 73 79 6d 62 6f 6c 73 20 63 61 6e 20 68 61 76 65 20 61 72 62 69 While.info.symbols.can.have.arbi
1032a0 74 72 61 72 79 20 6e 61 6d 65 73 2c 0a 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 79 6d 62 6f trary.names,.the.following.symbo
1032c0 6c 73 20 61 72 65 20 72 65 63 6f 67 6e 69 7a 65 64 20 62 79 20 45 6d 6d 73 3a 0a 0a 40 74 61 62 ls.are.recognized.by.Emms:..@tab
1032e0 6c 65 20 40 63 6f 64 65 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 61 6c 62 75 6d 0a 41 6c 62 75 6d 20 le.@code.@item.info-album.Album.
103300 74 69 74 6c 65 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 61 6c 62 75 6d 73 6f 72 74 0a 41 6c 62 title...@item.info-albumsort.Alb
103320 75 6d 20 74 69 74 6c 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 69 um.title.for.collation...@item.i
103340 6e 66 6f 2d 61 72 74 69 73 74 0a 41 72 74 69 73 74 20 6e 61 6d 65 2e 0a 0a 40 69 74 65 6d 20 69 nfo-artist.Artist.name...@item.i
103360 6e 66 6f 2d 61 72 74 69 73 74 73 6f 72 74 0a 41 72 74 69 73 74 20 6e 61 6d 65 20 66 6f 72 20 63 nfo-artistsort.Artist.name.for.c
103380 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 ollation...@item.info-albumartis
1033a0 74 0a 41 6c 62 75 6d 20 61 72 74 69 73 74 20 6e 61 6d 65 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f t.Album.artist.name...@item.info
1033c0 2d 61 6c 62 75 6d 61 72 74 69 73 74 73 6f 72 74 0a 41 6c 62 75 6d 20 61 72 74 69 73 74 20 6e 61 -albumartistsort.Album.artist.na
1033e0 6d 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 63 6f me.for.collation...@item.info-co
103400 6d 70 6f 73 65 72 0a 43 6f 6d 70 6f 73 65 72 20 6e 61 6d 65 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 mposer.Composer.name...@item.inf
103420 6f 2d 63 6f 6d 70 6f 73 65 72 73 6f 72 74 0a 43 6f 6d 70 6f 73 65 72 20 6e 61 6d 65 20 66 6f 72 o-composersort.Composer.name.for
103440 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 64 61 74 65 0a 52 65 6c .collation...@item.info-date.Rel
103460 65 61 73 65 20 64 61 74 65 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 64 ease.date...@item.info-originald
103480 61 74 65 0a 4f 72 69 67 69 6e 61 6c 20 72 65 6c 65 61 73 65 20 64 61 74 65 2e 0a 0a 40 69 74 65 ate.Original.release.date...@ite
1034a0 6d 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 0a 50 65 72 66 6f 72 6d 65 72 20 6e 61 6d 65 2e m.info-performer.Performer.name.
1034c0 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 74 69 74 6c 65 0a 54 72 61 63 6b 20 74 69 74 6c 65 2e 0a ..@item.info-title.Track.title..
1034e0 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 74 69 74 6c 65 73 6f 72 74 0a 54 72 61 63 6b 20 74 69 74 6c .@item.info-titlesort.Track.titl
103500 65 20 66 6f 72 20 63 6f 6c 6c 61 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 74 72 61 e.for.collation...@item.info-tra
103520 63 6b 6e 75 6d 62 65 72 0a 54 72 61 63 6b 20 6e 75 6d 62 65 72 2e 0a 0a 40 69 74 65 6d 20 69 6e cknumber.Track.number...@item.in
103540 66 6f 2d 64 69 73 63 6e 75 6d 62 65 72 0a 44 69 73 63 20 6e 75 6d 62 65 72 2e 0a 0a 40 69 74 65 fo-discnumber.Disc.number...@ite
103560 6d 20 69 6e 66 6f 2d 79 65 61 72 0a 52 65 6c 65 61 73 65 20 79 65 61 72 2e 0a 0a 40 69 74 65 6d m.info-year.Release.year...@item
103580 20 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 79 65 61 72 0a 4f 72 69 67 69 6e 61 6c 20 72 65 6c 65 .info-originalyear.Original.rele
1035a0 61 73 65 20 79 65 61 72 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 6e 6f 74 65 0a 46 72 65 65 2d ase.year...@item.info-note.Free-
1035c0 66 6f 72 6d 20 6e 6f 74 65 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 67 65 6e 72 65 0a 47 65 6e form.note...@item.info-genre.Gen
1035e0 72 65 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 6c 61 62 65 6c 0a 52 65 63 6f 72 64 20 6c 61 62 re...@item.info-label.Record.lab
103600 65 6c 2e 0a 0a 40 69 74 65 6d 20 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 0a 50 6c 61 el...@item.info-playing-time.Pla
103620 79 69 6e 67 20 74 69 6d 65 20 69 6e 20 73 65 63 6f 6e 64 73 2e 0a 0a 40 65 6e 64 20 74 61 62 6c ying.time.in.seconds...@end.tabl
103640 65 0a 0a 40 6e 6f 69 6e 64 65 6e 74 0a 41 6e 20 69 6e 66 6f 20 6d 65 74 68 6f 64 20 64 6f 65 73 e..@noindent.An.info.method.does
103660 20 6e 6f 74 20 6e 65 65 64 20 74 6f 20 61 64 64 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 73 79 .not.need.to.add.all.of.these.sy
103680 6d 62 6f 6c 73 20 69 6e 74 6f 20 74 68 65 0a 67 69 76 65 6e 20 74 72 61 63 6b 2e 20 20 49 74 20 mbols.into.the.given.track...It.
1036a0 63 61 6e 20 61 6c 73 6f 20 61 64 64 20 6f 74 68 65 72 20 73 79 6d 62 6f 6c 73 2c 20 62 75 74 20 can.also.add.other.symbols,.but.
1036c0 74 68 6f 73 65 20 65 78 74 72 61 20 73 79 6d 62 6f 6c 73 0a 77 6f 6e 27 74 20 62 65 20 75 73 65 those.extra.symbols.won't.be.use
1036e0 64 20 62 79 20 45 6d 6d 73 2e 0a 0a 57 65 20 63 61 6e 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 6c d.by.Emms...We.can.for.example.l
103700 6f 6f 6b 20 61 74 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64 20 6d 65 74 68 6f 64 20 66 6f 72 ook.at.the.predefined.method.for
103720 20 72 65 74 72 69 65 76 69 6e 67 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 75 .retrieving.information.about.au
103740 64 69 6f 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 4f 67 67 20 66 6f 72 6d 61 74 2e 20 20 54 dio.tracks.in.the.Ogg.format...T
103760 68 65 20 66 75 6e 63 74 69 6f 6e 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 he.function.@code{emms-info-oggi
103780 6e 66 6f 7d 20 70 72 6f 76 69 64 65 64 20 62 79 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 69 6e 66 6f nfo}.provided.by.@file{emms-info
1037a0 2d 6f 67 67 69 6e 66 6f 2e 65 6c 7d 0a 61 63 63 65 70 74 73 20 61 6e 20 45 6d 6d 73 20 74 72 61 -ogginfo.el}.accepts.an.Emms.tra
1037c0 63 6b 20 40 76 61 72 7b 74 72 61 63 6b 7d 20 61 73 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d ck.@var{track}.as.a.single.argum
1037e0 65 6e 74 2e 20 20 49 74 20 75 73 65 73 0a 40 63 6f 6d 6d 61 6e 64 7b 6f 67 67 69 6e 66 6f 7d 20 ent...It.uses.@command{ogginfo}.
103800 75 74 69 6c 69 74 79 20 74 6f 20 65 78 74 72 61 63 74 20 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 utility.to.extract.a.list.of.key
103820 2d 76 61 6c 75 65 20 6d 65 74 61 64 61 74 61 0a 70 61 69 72 73 20 66 72 6f 6d 20 74 68 65 20 66 -value.metadata.pairs.from.the.f
103840 69 6c 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 40 76 61 72 7b 74 72 61 63 6b 7d 2e 20 ile.represented.by.@var{track}..
103860 20 4e 65 78 74 2c 20 69 74 20 73 65 74 73 20 74 68 65 0a 61 70 70 72 6f 70 72 69 61 74 65 20 69 .Next,.it.sets.the.appropriate.i
103880 6e 66 6f 20 73 79 6d 62 6f 6c 73 20 66 6f 72 20 40 76 61 72 7b 74 72 61 63 6b 7d 20 62 79 20 63 nfo.symbols.for.@var{track}.by.c
1038a0 61 6c 6c 69 6e 67 0a 40 63 6f 64 65 7b 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 7d 2e 20 20 49 alling.@code{emms-track-set}...I
1038c0 6e 66 6f 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 69 6e 74 65 72 6e 65 64 20 66 72 6f 6d 20 74 68 nfo.symbols.are.interned.from.th
1038e0 65 20 65 78 74 72 61 63 74 65 64 0a 6b 65 79 73 2e 20 20 54 68 6f 73 65 20 6b 65 79 73 20 63 61 e.extracted.keys...Those.keys.ca
103900 6e 20 62 65 20 61 72 62 69 74 72 61 72 79 20 73 74 72 69 6e 67 73 2c 20 62 75 74 20 74 68 65 79 n.be.arbitrary.strings,.but.they
103920 20 74 79 70 69 63 61 6c 6c 79 0a 63 6f 69 6e 63 69 64 65 20 77 69 74 68 20 74 68 65 20 6b 65 79 .typically.coincide.with.the.key
103940 73 20 6c 69 73 74 65 64 20 61 62 6f 76 65 3b 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 60 60 61 6c s.listed.above;.for.example.``al
103960 62 75 6d 27 27 20 61 6e 64 0a 60 60 61 72 74 69 73 74 27 27 20 66 6f 72 6d 20 69 6e 66 6f 20 73 bum''.and.``artist''.form.info.s
103980 79 6d 62 6f 6c 73 20 40 63 6f 64 65 7b 69 6e 66 6f 2d 61 6c 62 75 6d 7d 20 61 6e 64 20 40 63 6f ymbols.@code{info-album}.and.@co
1039a0 64 65 7b 69 6e 66 6f 2d 61 72 74 69 73 74 7d 2e 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d de{info-artist}...@c.-----------
1039c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1039e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 49 ------------------------.@node.I
103a00 6e 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 0a 40 63 68 61 70 74 65 72 20 49 6e nteractive.Playlists.@chapter.In
103a20 74 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 0a 0a 40 63 69 6e 64 65 78 20 49 6e 74 teractive.Playlists..@cindex.Int
103a40 65 72 61 63 74 69 76 65 20 50 6c 61 79 6c 69 73 74 73 0a 0a 45 6d 6d 73 20 70 72 6f 76 69 64 65 eractive.Playlists..Emms.provide
103a60 73 20 61 20 76 69 73 75 61 6c 2c 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 s.a.visual,.interactive.playlist
103a80 20 6d 6f 64 65 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 0a 61 62 69 6c 69 74 79 20 74 6f 20 .mode.as.well.as.the.ability.to.
103aa0 75 73 65 20 70 6c 61 79 6c 69 73 74 73 20 77 69 74 68 6f 75 74 20 65 76 65 72 20 6c 6f 6f 6b 69 use.playlists.without.ever.looki
103ac0 6e 67 20 61 74 20 74 68 65 6e 2e 20 54 68 69 73 20 76 69 73 75 61 6c 2c 0a 69 6e 74 65 72 61 63 ng.at.then..This.visual,.interac
103ae0 74 69 76 65 20 6d 6f 64 65 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 60 65 6d 6d 73 2d 70 6c tive.mode.is.called.the.`emms-pl
103b00 61 79 6c 69 73 74 2d 6d 6f 64 65 27 20 61 6e 64 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 0a 40 aylist-mode'.and.is.defined.in.@
103b20 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 7d 2e 0a 0a 54 68 file{emms-playlist-mode.el}...Th
103b40 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 20 69 73 20 65 e.interactive.playlist.mode.is.e
103b60 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 74 68 65 20 60 65 6d 6d 73 2d 61 nabled.by.default.in.the.`emms-a
103b80 6c 6c 27 0a 73 65 74 75 70 20 6c 65 76 65 6c 2e 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d ll'.setup.level..For.more.inform
103ba0 61 74 69 6f 6e 20 61 62 6f 75 74 20 45 6d 6d 73 20 73 65 74 75 70 20 6c 65 76 65 6c 73 20 73 65 ation.about.Emms.setup.levels.se
103bc0 65 0a 40 78 72 65 66 7b 53 65 74 75 70 7d 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 e.@xref{Setup}...@defun.emms-pla
103be0 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 63 75 72 72 ylist-mode-go.Switch.to.the.curr
103c00 65 6e 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 75 73 65 ent.emms-playlist.buffer.and.use
103c20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a .emms-playlist-mode..@end.defun.
103c40 0a 49 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 6d 61 6b 65 20 74 68 69 73 20 74 68 65 20 64 65 .If.you.wish.to.make.this.the.de
103c60 66 61 75 6c 74 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 2c 20 61 64 64 20 74 68 fault.Emms.playlist.mode,.add.th
103c80 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 40 66 69 6c 65 7b 2e 65 6d 61 63 73 e.following.to.your.@file{.emacs
103ca0 7d 2e 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 }...@lisp.(setq.emms-playlist-de
103cc0 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d fault-major-mode.'emms-playlist-
103ce0 6d 6f 64 65 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 mode).@end.lisp..The.interactive
103d00 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 73 68 6f 77 73 20 74 68 65 20 74 72 61 63 6b .playlist.buffer.shows.the.track
103d20 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 0a 70 6c 61 79 6c 69 73 74 20 69 s.in.the.current.Emms.playlist.i
103d40 6e 20 74 68 65 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 74 68 65 79 20 77 69 6c 6c 20 62 n.the.order.in.which.they.will.b
103d60 65 20 70 6c 61 79 65 64 2e 20 54 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 0a 77 69 6c 6c e.played..The.current.track.will
103d80 20 62 65 20 68 69 67 68 6c 69 67 68 74 65 64 2e 0a 0a 57 68 65 6e 20 69 6e 20 74 68 65 20 69 6e .be.highlighted...When.in.the.in
103da0 74 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 20 77 65 20 63 61 6e 20 70 teractive.playlist.mode.we.can.p
103dc0 65 72 66 6f 72 6d 20 64 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e 73 0a 6f 6e 20 74 68 65 20 erform.different.actions.on.the.
103de0 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 74 61 62 6c 65 20 40 6b 62 64 0a 0a current.playlist...@table.@kbd..
103e00 40 69 74 65 6d 20 61 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f @item.a.@findex.emms-playlist-mo
103e20 64 65 2d 61 64 64 2d 63 6f 6e 74 65 6e 74 73 0a 41 64 64 20 66 69 6c 65 73 20 69 6e 20 74 68 65 de-add-contents.Add.files.in.the
103e40 20 70 6c 61 79 6c 69 73 74 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e .playlist.at.point.to.the.curren
103e60 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 49 66 20 77 65 20 61 72 65 20 69 6e 20 t.playlist.buffer..If.we.are.in.
103e80 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2c 20 6d 61 6b 65 20 61 20 6e 65 77 the.current.playlist,.make.a.new
103ea0 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 0a 73 65 74 20 69 74 20 61 73 20 63 .playlist.buffer.and.set.it.as.c
103ec0 75 72 72 65 6e 74 2e 0a 0a 40 69 74 65 6d 20 69 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c urrent...@item.i.@findex.emms-pl
103ee0 61 79 6c 69 73 74 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 49 6e 73 aylist-playlist-insert-track.Ins
103f00 65 72 74 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 69 6e 74 6f 20 61 63 74 69 76 65 20 70 ert.track.at.point.into.active.p
103f20 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 62 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 laylist...@item.b.@findex.emms-p
103f40 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 53 65 74 20 laylist-set-playlist-buffer.Set.
103f60 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 40 69 the.current.playlist.buffer...@i
103f80 74 65 6d 20 6e 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6e 65 78 74 0a 53 74 61 72 74 20 70 6c tem.n.@findex.emms-next.Start.pl
103fa0 61 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 aying.the.next.track.in.the.play
103fc0 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 70 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6e 65 78 74 list...@item.p.@findex.emms-next
103fe0 0a 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 .Start.playing.the.previous.trac
104000 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 73 0a 40 66 69 6e k.in.the.playlist...@item.s.@fin
104020 64 65 78 20 65 6d 6d 73 2d 73 74 6f 70 0a 53 74 6f 70 20 70 6c 61 79 69 6e 67 2e 0a 0a 40 69 74 dex.emms-stop.Stop.playing...@it
104040 65 6d 20 50 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 61 75 73 65 0a 50 61 75 73 65 2e 0a 0a em.P.@findex.emms-pause.Pause...
104060 40 69 74 65 6d 20 3e 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 73 65 65 6b 2d 66 6f 72 77 61 72 @item.>.@findex.emms-seek-forwar
104080 64 0a 53 65 65 6b 20 74 65 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 77 61 72 64 2e 0a 0a 40 69 74 d.Seek.ten.seconds.forward...@it
1040a0 65 6d 20 3c 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 73 65 65 6b 2d 62 61 63 6b 77 61 72 64 0a em.<.@findex.emms-seek-backward.
1040c0 53 65 65 6b 20 74 65 6e 20 73 65 63 6f 6e 64 73 20 62 61 63 6b 77 61 72 64 2e 0a 0a 40 69 74 65 Seek.ten.seconds.backward...@ite
1040e0 6d 20 66 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 73 68 6f 77 0a 44 65 73 63 72 69 62 65 20 74 m.f.@findex.emms-show.Describe.t
104100 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 20 69 6e 20 74 68 he.currently.playing.track.in.th
104120 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 0a 0a 40 69 74 65 6d 20 63 0a 40 66 69 6e 64 65 78 20 65 e.minibuffer...@item.c.@findex.e
104140 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 mms-playlist-mode-center-current
104160 0a 44 69 73 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 69 6e 20 74 68 .Display.the.current.track.in.th
104180 65 20 63 65 6e 74 65 72 20 6f 66 20 74 68 65 20 73 63 72 65 65 6e 2e 0a 0a 40 69 74 65 6d 20 52 e.center.of.the.screen...@item.R
1041a0 45 54 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c ET.@findex.emms-playlist-mode-pl
1041c0 61 79 2d 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 0a 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 ay-current-track.Start.playing.t
1041e0 68 65 20 74 72 61 63 6b 20 75 6e 64 65 72 20 70 6f 69 6e 74 2e 20 4e 6f 74 65 20 74 68 61 74 20 he.track.under.point..Note.that.
104200 74 68 69 73 20 69 73 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 0a 77 69 74 68 20 40 6b 62 64 this.is.also.available.with.@kbd
104220 7b 3c 6d 6f 75 73 65 2d 32 3e 7d 2e 0a 0a 40 69 74 65 6d 20 53 50 43 0a 40 66 69 6e 64 65 78 20 {<mouse-2>}...@item.SPC.@findex.
104240 73 63 72 6f 6c 6c 2d 75 70 0a 53 63 72 6f 6c 6c 20 75 70 20 61 20 6e 65 61 72 20 66 75 6c 6c 20 scroll-up.Scroll.up.a.near.full.
104260 70 61 67 65 2e 0a 0a 40 69 74 65 6d 20 4d 2d 3c 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c page...@item.M-<.@findex.emms-pl
104280 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 66 69 72 73 74 0a 47 6f 20 74 6f 20 74 68 65 20 66 69 72 73 aylist-mode-first.Go.to.the.firs
1042a0 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 t.track.in.the.playlist...@item.
1042c0 4d 2d 3e 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6c M->.@findex.emms-playlist-mode-l
1042e0 61 73 74 0a 47 6f 20 74 6f 20 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 ast.Go.to.the.last.track.in.the.
104300 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 72 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d playlist...@item.r.@findex.emms-
104320 72 61 6e 64 6f 6d 0a 47 6f 20 74 6f 20 61 20 72 61 6e 64 6f 6d 6c 79 20 73 65 6c 65 63 74 65 64 random.Go.to.a.randomly.selected
104340 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 71 .track.in.the.playlist...@item.q
104360 0a 40 66 69 6e 64 65 78 20 62 75 72 79 2d 62 75 66 66 65 72 0a 50 75 74 20 74 68 65 20 69 6e 74 .@findex.bury-buffer.Put.the.int
104380 65 72 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 74 20 74 68 65 20 eractive.playlist.buffer.at.the.
1043a0 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 0a 62 75 66 66 65 72 73 2e 0a end.of.the.list.of.all.buffers..
1043c0 0a 40 69 74 65 6d 20 43 2d 78 20 43 2d 73 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 .@item.C-x.C-s.@findex.emms-play
1043e0 6c 69 73 74 2d 73 61 76 65 0a 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c list-save.Save.the.current.playl
104400 69 73 74 20 62 75 66 66 65 72 20 74 6f 20 61 20 66 69 6c 65 2e 20 42 79 20 64 65 66 61 75 6c 74 ist.buffer.to.a.file..By.default
104420 2c 20 45 6d 6d 73 20 77 69 6c 6c 20 61 73 6b 0a 79 6f 75 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 ,.Emms.will.ask.you.for.confirma
104440 74 69 6f 6e 20 62 65 66 6f 72 65 20 6f 76 65 72 77 72 69 74 69 6e 67 20 61 6e 20 65 78 69 73 74 tion.before.overwriting.an.exist
104460 69 6e 67 20 70 6c 61 79 6c 69 73 74 2e 20 59 6f 75 20 63 61 6e 0a 73 69 6c 65 6e 74 6c 79 20 6f ing.playlist..You.can.silently.o
104480 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 70 6c 61 79 6c 69 73 74 20 62 79 20 73 65 verwrite.existing.playlist.by.se
1044a0 74 74 69 6e 67 0a 40 76 61 72 7b 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d tting.@var{emms-source-playlist-
1044c0 61 73 6b 2d 62 65 66 6f 72 65 2d 6f 76 65 72 77 72 69 74 65 7d 20 74 6f 20 6e 69 6c 2e 0a 0a 40 ask-before-overwrite}.to.nil...@
1044e0 69 74 65 6d 20 3f 0a 40 66 69 6e 64 65 78 20 64 65 73 63 72 69 62 65 2d 6d 6f 64 65 0a 44 65 73 item.?.@findex.describe-mode.Des
104500 63 72 69 62 65 20 74 68 65 20 6d 6f 64 65 2e 0a 0a 40 69 74 65 6d 20 43 2d 69 0a 40 66 69 6e 64 cribe.the.mode...@item.C-i.@find
104520 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 ex.emms-playlist-mode-shift-trac
104540 6b 2d 75 70 0a 53 68 69 66 74 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 75 70 k-up.Shift.the.track.at.point.up
104560 20 6f 6e 65 20 6c 69 6e 65 2e 0a 0a 40 69 74 65 6d 20 43 2d 6f 0a 40 66 69 6e 64 65 78 20 65 6d .one.line...@item.C-o.@findex.em
104580 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 2d 64 6f 77 ms-playlist-mode-shift-track-dow
1045a0 6e 0a 53 68 69 66 74 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 64 6f 77 6e 20 n.Shift.the.track.at.point.down.
1045c0 6f 6e 65 20 6c 69 6e 65 2e 0a 0a 40 69 74 65 6d 20 4d 2d 6e 0a 40 66 69 6e 64 65 78 20 65 6d 6d one.line...@item.M-n.@findex.emm
1045e0 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6e 65 78 74 0a 53 77 69 74 63 68 20 74 6f 20 74 s-playlist-mode-next.Switch.to.t
104600 68 65 20 6e 65 78 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 40 69 74 65 6d 20 he.next.playlist.buffer...@item.
104620 4d 2d 70 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 M-p.@findex.emms-playlist-mode-p
104640 72 65 76 69 6f 75 73 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 revious.Switch.to.the.previous.p
104660 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 0a 40 65 6e 64 20 74 61 62 6c 65 0a 0a 57 65 laylist.buffer....@end.table..We
104680 20 63 61 6e 20 61 6c 73 6f 20 65 64 69 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 75 73 69 6e .can.also.edit.the.playlist.usin
1046a0 67 20 66 61 6d 69 6c 69 61 72 20 47 4e 55 2f 45 6d 61 63 73 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a g.familiar.GNU/Emacs.commands:..
1046c0 40 74 61 62 6c 65 20 40 6b 62 64 0a 0a 40 69 74 65 6d 20 43 2d 6b 0a 40 66 69 6e 64 65 78 20 65 @table.@kbd..@item.C-k.@findex.e
1046e0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 74 72 61 63 6b 0a 52 65 6d mms-playlist-mode-kill-track.Rem
104700 6f 76 65 20 74 68 65 20 74 72 61 63 6b 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 66 72 6f 6d 20 74 ove.the.track.under.point.from.t
104720 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 20 41 6c 73 6f 20 61 76 61 69 6c 61 62 he.playlist.buffer..Also.availab
104740 6c 65 0a 75 73 69 6e 67 20 74 68 65 20 40 6b 62 64 7b 64 7d 20 6b 65 79 2e 0a 0a 40 69 74 65 6d le.using.the.@kbd{d}.key...@item
104760 20 43 2d 79 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d .C-y.@findex.emms-playlist-mode-
104780 79 61 6e 6b 0a 53 65 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 40 63 6f 6d 6d 61 6e 64 7b 79 61 yank.See.the.command.@command{ya
1047a0 6e 6b 7d 0a 0a 40 69 74 65 6d 20 4d 2d 79 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 nk}..@item.M-y.@findex.emms-play
1047c0 6c 69 73 74 2d 6d 6f 64 65 2d 79 61 6e 6b 2d 70 6f 70 0a 53 65 65 20 74 68 65 20 63 6f 6d 6d 61 list-mode-yank-pop.See.the.comma
1047e0 6e 64 20 40 63 6f 6d 6d 61 6e 64 7b 79 61 6e 6b 2d 70 6f 70 7d 2e 0a 0a 40 69 74 65 6d 20 43 2d nd.@command{yank-pop}...@item.C-
104800 6a 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 j.@findex.emms-playlist-mode-ins
104820 65 72 74 2d 6e 65 77 6c 69 6e 65 0a 49 6e 73 65 72 74 20 61 20 6e 65 77 6c 69 6e 65 20 61 74 20 ert-newline.Insert.a.newline.at.
104840 70 6f 69 6e 74 2e 0a 40 65 6e 64 20 74 61 62 6c 65 0a 0a 57 65 20 63 61 6e 20 75 73 65 20 74 68 point..@end.table..We.can.use.th
104860 65 20 72 65 67 75 6c 61 72 20 47 4e 55 2f 45 6d 61 63 73 20 6b 69 6c 6c 69 6e 67 20 61 6e 64 20 e.regular.GNU/Emacs.killing.and.
104880 79 61 6e 6b 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 6d 6f 76 65 0a 61 6e 64 20 63 6f 70 yanking.commands.to.move.and.cop
1048a0 79 20 74 72 61 63 6b 73 20 69 6e 20 62 65 74 77 65 65 6e 20 70 6c 61 79 6c 69 73 74 20 62 75 66 y.tracks.in.between.playlist.buf
1048c0 66 65 72 73 2e 20 57 65 20 63 61 6e 20 75 73 65 20 74 68 65 20 73 61 6d 65 0a 63 6f 6d 6d 61 6e fers..We.can.use.the.same.comman
1048e0 64 73 20 74 6f 20 69 6e 73 65 72 74 20 61 72 62 69 74 72 61 72 79 20 74 65 78 74 20 69 6e 74 6f ds.to.insert.arbitrary.text.into
104900 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 20 74 6f 67 65 74 68 65 72 0a 77 .the.playlist.buffers.together.w
104920 69 74 68 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 74 72 61 63 6b 73 2e 20 54 65 78 74 20 77 68 ith.the.playlist.tracks..Text.wh
104940 69 63 68 20 69 73 20 6e 6f 74 20 61 20 74 72 61 63 6b 20 69 73 20 69 67 6e 6f 72 65 64 20 62 79 ich.is.not.a.track.is.ignored.by
104960 20 74 68 65 0a 70 72 6f 67 72 61 6d 20 61 6e 64 20 63 61 6e 20 74 68 65 72 65 66 6f 72 65 20 62 .the.program.and.can.therefore.b
104980 65 20 75 73 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 69 74 6c 65 73 20 61 6e 64 20 61 6e 6e e.used.to.include.titles.and.ann
1049a0 6f 74 61 74 69 6f 6e 73 0a 77 69 74 68 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 0a otations.within.the.playlist....
1049c0 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d @c.-----------------------------
1049e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
104a00 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 0a ------.@node.Markable.Playlists.
104a20 40 63 68 61 70 74 65 72 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 0a 0a 40 63 69 @chapter.Markable.Playlists..@ci
104a40 6e 64 65 78 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 0a 0a 54 68 65 20 4d 61 72 ndex.Markable.Playlists..The.Mar
104a60 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 kable.Playlists.provided.by.the.
104a80 66 69 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 6d 61 72 6b 2e 65 6c 7d 20 61 72 65 20 61 6e 0a file.@file{emms-mark.el}.are.an.
104aa0 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6e 74 65 72 alternative.to.the.default.inter
104ac0 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 73 2c 20 40 78 72 65 66 7b 49 6e 74 65 72 61 63 74 active.playlists,.@xref{Interact
104ae0 69 76 65 0a 50 6c 61 79 6c 69 73 74 73 7d 2e 20 54 68 65 79 20 61 6c 6c 6f 77 20 6d 61 72 6b 69 ive.Playlists}..They.allow.marki
104b00 6e 67 20 74 72 61 63 6b 73 20 77 69 74 68 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 61 6d 69 6c ng.tracks.with.keybindings.famil
104b20 69 61 72 20 74 6f 20 75 73 65 72 73 0a 6f 66 20 64 69 72 65 64 2e 0a 0a 54 6f 20 65 6e 61 62 6c iar.to.users.of.dired...To.enabl
104b40 65 20 74 68 65 20 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 73 20 79 6f 75 20 68 61 76 e.the.Markable.Playlists.you.hav
104b60 65 20 74 6f 20 61 64 64 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d e.to.add..@lisp.(require.'emms-m
104b80 61 72 6b 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 74 6f 20 79 6f 75 72 20 40 66 69 6c 65 7b 2e 65 ark).@end.lisp..to.your.@file{.e
104ba0 6d 61 63 73 7d 2e 20 54 68 65 6e 20 79 6f 75 20 63 61 6e 20 61 63 74 69 76 61 74 65 20 40 63 6f macs}..Then.you.can.activate.@co
104bc0 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 7d 20 62 79 0a 65 78 65 63 75 74 69 mmand{emms-mark-mode}.by.executi
104be0 6e 67 20 40 63 6f 6d 6d 61 6e 64 7b 4d 2d 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 7d 20 ng.@command{M-x.emms-mark-mode}.
104c00 69 6e 20 61 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 20 59 6f 75 20 63 61 6e 0a 72 65 in.a.playlist.buffer..You.can.re
104c20 74 75 72 6e 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6e 74 65 72 61 63 74 69 76 65 20 turn.to.the.default.interactive.
104c40 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 20 77 69 74 68 20 40 63 6f 6d 6d 61 6e 64 7b 4d 2d 78 0a playlist.mode.with.@command{M-x.
104c60 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 2d 64 69 73 61 62 6c 65 7d 2e 0a 0a 49 66 20 79 6f 75 emms-mark-mode-disable}...If.you
104c80 20 77 69 73 68 20 74 6f 20 6d 61 6b 65 20 74 68 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 45 .wish.to.make.this.the.default.E
104ca0 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 2c 20 61 64 64 20 74 68 65 0a 66 6f 6c 6c 6f mms.playlist.mode,.add.the.follo
104cc0 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 40 66 69 6c 65 7b 2e 65 6d 61 63 73 7d 2e 0a 0a 40 6c 69 wing.to.your.@file{.emacs}...@li
104ce0 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d sp.(setq.emms-playlist-default-m
104d00 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 29 0a 40 65 6e 64 20 ajor-mode.'emms-mark-mode).@end.
104d20 6c 69 73 70 0a 0a 40 74 61 62 6c 65 20 40 6b 62 64 0a 0a 40 69 74 65 6d 20 6d 0a 40 66 69 6e 64 lisp..@table.@kbd..@item.m.@find
104d40 65 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 66 6f 72 77 61 72 64 0a 4d 61 72 6b 73 20 74 68 65 20 63 ex.emms-mark-forward.Marks.the.c
104d60 75 72 72 65 6e 74 20 74 72 61 63 6b 20 61 6e 64 20 73 65 74 73 20 70 6f 69 6e 74 20 6f 6e 65 20 urrent.track.and.sets.point.one.
104d80 6c 69 6e 65 20 66 6f 72 77 61 72 64 2e 20 49 66 20 61 20 70 72 65 66 69 78 0a 61 72 67 75 6d 65 line.forward..If.a.prefix.argume
104da0 6e 74 20 41 52 47 20 69 73 20 67 69 76 65 6e 2c 20 69 74 20 77 69 6c 6c 20 6d 61 72 6b 20 74 68 nt.ARG.is.given,.it.will.mark.th
104dc0 65 20 6e 65 78 74 20 41 52 47 20 74 72 61 63 6b 73 20 61 6e 64 20 73 65 74 20 70 6f 69 6e 74 0a e.next.ARG.tracks.and.set.point.
104de0 61 63 63 6f 72 64 69 6e 67 6c 79 2e 20 41 20 6e 65 67 61 74 69 76 65 20 61 72 67 75 6d 65 6e 74 accordingly..A.negative.argument
104e00 20 6d 61 72 6b 73 20 62 61 63 6b 77 61 72 64 2e 0a 0a 40 69 74 65 6d 20 55 0a 40 66 69 6e 64 65 .marks.backward...@item.U.@finde
104e20 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 6b 2d 61 6c 6c 0a 55 6e 6d 61 72 6b 73 20 61 x.emms-mark-unmark-all.Unmarks.a
104e40 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 ll.tracks.in.the.playlist...@ite
104e60 6d 20 74 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 74 6f 67 67 6c 65 0a 54 6f 67 m.t.@findex.emms-mark-toggle.Tog
104e80 67 6c 65 73 20 6d 61 72 6b 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a gles.mark.on.the.current.track..
104ea0 0a 40 69 74 65 6d 20 75 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 75 6e 6d 61 72 .@item.u.@findex.emms-mark-unmar
104ec0 6b 2d 66 6f 72 77 61 72 64 0a 55 6e 6d 61 72 6b 73 20 73 61 6d 65 20 77 61 79 20 61 73 20 40 63 k-forward.Unmarks.same.way.as.@c
104ee0 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 6d 61 72 6b 2d 66 6f 72 77 61 72 64 7d 20 6d 61 72 6b 73 2e ommand{emms-mark-forward}.marks.
104f00 0a 0a 40 69 74 65 6d 20 25 20 6d 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 72 65 ..@item.%.m.@findex.emms-mark-re
104f20 67 65 78 70 0a 4d 61 72 6b 73 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 70 6c 61 gexp.Marks.all.tracks.in.the.pla
104f40 79 6c 69 73 74 20 6d 61 74 63 68 69 6e 67 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 ylist.matching.the.given.regular
104f60 0a 65 78 70 72 65 73 73 69 6f 6e 2e 20 41 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 6d .expression..A.prefix.argument.m
104f80 65 61 6e 73 20 74 6f 20 75 6e 6d 61 72 6b 20 74 68 65 6d 20 69 6e 73 74 65 61 64 2e 0a 40 65 6e eans.to.unmark.them.instead..@en
104fa0 64 20 74 61 62 6c 65 0a 0a 57 68 65 6e 20 74 72 61 63 6b 73 20 61 72 65 20 6d 61 72 6b 65 64 20 d.table..When.tracks.are.marked.
104fc0 79 6f 75 20 63 61 6e 20 6f 70 65 72 61 74 65 20 6f 6e 20 74 68 65 6d 3a 0a 0a 40 74 61 62 6c 65 you.can.operate.on.them:..@table
104fe0 20 40 6b 62 64 0a 0a 40 69 74 65 6d 20 44 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 61 72 6b .@kbd..@item.D.@findex.emms-mark
105000 2d 64 65 6c 65 74 65 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 0a 44 65 6c 65 74 65 73 20 74 68 -delete-marked-tracks.Deletes.th
105020 65 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 e.marked.tracks.from.the.playlis
105040 74 2e 0a 0a 40 69 74 65 6d 20 4b 0a 40 66 69 6e 64 65 78 20 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6b t...@item.K.@findex..emms-mark-k
105060 69 6c 6c 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 0a 44 65 6c 65 74 65 73 20 74 68 65 20 6d 61 ill-marked-tracks.Deletes.the.ma
105080 72 6b 65 64 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 6e rked.tracks.from.the.playlist.an
1050a0 64 20 70 6c 61 63 65 73 20 74 68 65 6d 20 69 6e 20 74 68 65 0a 6b 69 6c 6c 2d 72 69 6e 67 2c 20 d.places.them.in.the.kill-ring,.
1050c0 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 40 63 6f 6d 6d 61 6e 64 7b 79 61 6e 6b 7d 20 69 so.that.you.can.@command{yank}.i
1050e0 6e 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 n.into.another.playlist...@item.
105100 57 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 61 72 6b 2d 63 6f 70 79 2d 6d 61 72 6b 65 64 2d W.@findex.emms-mark-copy-marked-
105120 74 72 61 63 6b 73 0a 41 64 64 73 20 74 68 65 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 20 74 6f tracks.Adds.the.marked.tracks.to
105140 20 74 68 65 20 6b 69 6c 6c 2d 72 69 6e 67 2c 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 .the.kill-ring,.so.that.you.can.
105160 40 63 6f 6d 6d 61 6e 64 7b 79 61 6e 6b 7d 0a 74 68 65 6d 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 @command{yank}.them.into.another
105180 20 70 6c 61 79 6c 69 73 74 2e 0a 40 65 6e 64 20 74 61 62 6c 65 0a 0a 65 6d 6d 73 2d 6d 61 72 6b .playlist..@end.table..emms-mark
1051a0 20 69 73 20 61 6c 73 6f 20 69 6e 74 65 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 77 61 79 .is.also.intent.to.provide.a.way
1051c0 20 66 6f 72 20 75 73 65 72 20 74 6f 20 73 65 6c 65 63 74 20 74 72 61 63 6b 73 0a 66 6f 72 20 6f .for.user.to.select.tracks.for.o
1051e0 74 68 65 72 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 6f 70 65 72 61 74 65 20 6f 6e 20 74 68 65 6d 2e ther.command.to.operate.on.them.
105200 20 43 75 72 72 65 6e 74 6c 79 2c 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f .Currently,.@file{emms-tag-edito
105220 72 2e 65 6c 7d 20 75 73 65 73 20 74 68 65 20 65 6d 6d 73 2d 6d 61 72 6b 20 74 6f 20 65 64 69 74 r.el}.uses.the.emms-mark.to.edit
105240 20 74 68 65 20 74 61 67 73 20 6f 66 0a 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 73 2e 20 54 77 .the.tags.of.selected.tracks..Tw
105260 6f 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 75 73 65 66 75 6c 20 66 6f 72 20 74 68 65 20 65 o.functions.are.useful.for.the.e
105280 6c 69 73 70 20 70 72 6f 67 72 61 6d 65 72 20 74 6f 0a 68 61 6e 64 6c 65 20 6d 61 72 6b 65 64 20 lisp.programer.to.handle.marked.
1052a0 74 72 61 63 6b 73 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 tracks...@defun.emms-mark-do-wit
1052c0 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b h-marked-track.This.function.tak
1052e0 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 65 72 66 6f 72 6d 20 6f 6e 20 61 6c 6c 20 6d e.a.function.to.perform.on.all.m
105300 61 72 6b 65 64 20 74 72 61 63 6b 73 2e 20 41 0a 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e arked.tracks..A.optional.argumen
105320 74 20 60 6d 6f 76 65 2d 66 6c 61 67 27 20 74 6f 20 74 65 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 t.`move-flag'.to.tell.the.functi
105340 6f 6e 20 74 6f 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 0a 6c 69 6e 65 20 61 66 74 65 72 20 63 61 on.to.move.forward.line.after.ca
105360 6c 6c 69 6e 67 20 67 69 76 65 6e 20 66 75 6e 63 74 69 6f 6e 2e 20 49 66 20 74 68 65 20 67 69 76 lling.given.function..If.the.giv
105380 65 6e 20 66 75 6e 63 74 69 6f 6e 20 64 69 64 6e 27 74 20 63 68 61 6e 67 65 0a 70 6f 73 69 74 69 en.function.didn't.change.positi
1053a0 6f 6e 2c 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 73 68 6f 75 6c 64 20 73 on,.the.second.argument.should.s
1053c0 65 74 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 et.to.non-nil..@end.defun..@defu
1053e0 6e 20 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 61 70 63 61 72 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a n.emms-mark-mapcar-marked-track.
105400 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 76 65 72 79 20 73 69 6d 69 6c 61 72 20 74 6f This.function.is.very.similar.to
105420 20 60 65 6d 6d 73 2d 6d 61 72 6b 2d 64 6f 2d 77 69 74 68 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b .`emms-mark-do-with-marked-track
105440 27 0a 65 78 63 65 70 74 20 69 74 20 63 6f 6c 6c 65 63 74 73 20 72 65 73 75 6c 74 20 6f 66 20 67 '.except.it.collects.result.of.g
105460 69 76 65 6e 20 66 75 6e 63 74 69 6f 6e 20 28 74 68 61 74 27 73 20 77 68 79 20 6e 61 6d 65 64 20 iven.function.(that's.why.named.
105480 77 69 74 68 0a 60 6d 61 70 63 61 72 27 29 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 0a 0a 40 63 with.`mapcar')..@end.defun....@c
1054a0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
1054c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1054e0 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 40 63 68 61 70 74 ----.@node.Extending.Emms.@chapt
105500 65 72 20 45 78 74 65 6e 64 69 6e 67 20 45 6d 6d 73 0a 0a 40 63 69 6e 64 65 78 20 6e 65 77 20 70 er.Extending.Emms..@cindex.new.p
105520 6c 61 79 65 72 73 0a 40 63 69 6e 64 65 78 20 64 65 66 69 6e 69 6e 67 20 70 6c 61 79 65 72 73 0a layers.@cindex.defining.players.
105540 40 63 69 6e 64 65 78 20 6e 65 77 20 70 6c 61 79 65 72 73 2c 20 64 65 66 69 6e 69 6e 67 0a 0a 45 @cindex.new.players,.defining..E
105560 6d 6d 73 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 68 69 67 68 20 61 62 73 74 72 61 63 74 69 6f mms.introduces.a.high.abstractio
105580 6e 20 6c 61 79 65 72 20 66 6f 72 20 70 6c 61 79 69 6e 67 20 6d 75 73 69 63 20 73 6f 20 79 6f 75 n.layer.for.playing.music.so.you
1055a0 20 63 61 6e 0a 63 75 73 74 6f 6d 69 73 65 20 69 74 20 74 6f 20 79 6f 75 72 20 6e 65 65 64 73 2e .can.customise.it.to.your.needs.
1055c0 0a 0a 40 6d 65 6e 75 0a 2a 20 4e 65 77 20 50 6c 61 79 65 72 3a 3a 20 20 20 20 20 20 20 20 20 20 ..@menu.*.New.Player::..........
1055e0 20 20 20 20 20 48 6f 77 20 74 6f 20 64 65 66 69 6e 65 20 61 20 6e 65 77 20 70 6c 61 79 65 72 2e .....How.to.define.a.new.player.
105600 0a 2a 20 53 69 6d 70 6c 65 20 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 3a 3a 20 41 6e .*.Simple.Player.for.`play'::.An
105620 20 65 78 61 6d 70 6c 65 20 70 6c 61 79 65 72 20 75 73 69 6e 67 20 40 63 6f 6d 6d 61 6e 64 7b 70 .example.player.using.@command{p
105640 6c 61 79 7d 2e 0a 2a 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 3a 3a 20 20 20 lay}..*.More.Complex.Player::...
105660 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 61 20 63 6f 6d 70 6c 65 78 20 70 6c 61 79 65 72 20 75 ...Example.of.a.complex.player.u
105680 73 69 6e 67 20 40 63 6f 6d 6d 61 6e 64 7b 6d 70 67 33 32 31 7d 2e 0a 40 65 6e 64 20 6d 65 6e 75 sing.@command{mpg321}..@end.menu
1056a0 0a 0a 0a 0a 40 6e 6f 64 65 20 4e 65 77 20 50 6c 61 79 65 72 0a 40 73 65 63 74 69 6f 6e 20 4e 65 ....@node.New.Player.@section.Ne
1056c0 77 20 50 6c 61 79 65 72 0a 0a 40 63 69 6e 64 65 78 20 6e 65 77 20 70 6c 61 79 65 72 0a 40 63 69 w.Player..@cindex.new.player.@ci
1056e0 6e 64 65 78 20 64 65 66 69 6e 69 6e 67 20 6e 65 77 20 70 6c 61 79 65 72 73 0a 0a 54 68 65 20 66 ndex.defining.new.players..The.f
105700 69 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 7d ile.@file{emms-player-simple.el}
105720 20 64 65 66 69 6e 65 73 20 73 6f 6d 65 20 65 61 73 79 20 70 6c 61 79 65 72 73 20 74 6f 0a 73 74 .defines.some.easy.players.to.st
105740 61 72 74 20 77 69 74 68 2c 20 62 75 74 20 69 74 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 20 68 61 art.with,.but.it.shouldn't.be.ha
105760 72 64 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 79 6f 75 rd.to.provide.a.function.for.you
105780 72 0a 66 61 76 6f 75 72 69 74 65 20 70 6c 61 79 65 72 2e 20 57 65 20 77 69 6c 6c 20 73 74 61 72 r.favourite.player..We.will.star
1057a0 74 20 77 69 74 68 20 61 6e 20 65 61 73 79 20 65 78 61 6d 70 6c 65 20 74 68 61 74 20 73 68 6f 77 t.with.an.easy.example.that.show
1057c0 73 20 68 6f 77 0a 77 65 20 63 61 6e 20 75 73 65 20 74 68 65 20 40 63 6f 6d 6d 61 6e 64 7b 70 6c s.how.we.can.use.the.@command{pl
1057e0 61 79 7d 20 63 6f 6d 6d 61 6e 64 20 75 6e 64 65 72 20 55 6e 69 78 20 74 6f 20 70 6c 61 79 20 6f ay}.command.under.Unix.to.play.o
105800 75 72 20 57 41 56 20 66 69 6c 65 73 2e 0a 0a 0a 0a 40 6e 6f 64 65 20 53 69 6d 70 6c 65 20 50 6c ur.WAV.files.....@node.Simple.Pl
105820 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 0a 40 73 65 63 74 69 6f 6e 20 53 69 6d 70 6c 65 20 ayer.for.`play'.@section.Simple.
105840 50 6c 61 79 65 72 20 66 6f 72 20 60 70 6c 61 79 27 0a 0a 40 63 69 6e 64 65 78 20 73 69 6d 70 6c Player.for.`play'..@cindex.simpl
105860 65 20 70 6c 61 79 65 72 0a 40 63 69 6e 64 65 78 20 70 72 69 6d 69 74 69 76 65 20 70 6c 61 79 65 e.player.@cindex.primitive.playe
105880 72 0a 40 63 69 6e 64 65 78 20 62 61 73 69 63 20 70 6c 61 79 65 72 0a 0a 50 6c 61 79 20 69 73 20 r.@cindex.basic.player..Play.is.
1058a0 61 20 76 65 72 79 20 65 61 73 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 6c 61 79 65 72 20 a.very.easy.command.line.player.
1058c0 66 6f 72 20 76 61 72 69 6f 75 73 20 66 6f 72 6d 61 74 2e 20 49 66 20 79 6f 75 0a 77 61 6e 74 20 for.various.format..If.you.want.
1058e0 79 6f 75 72 20 65 6d 6d 73 20 74 6f 20 70 6c 61 79 20 57 41 56 20 66 69 6c 65 73 20 6a 75 73 74 your.emms.to.play.WAV.files.just
105900 20 70 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 73 20 69 6e 20 79 6f 75 0a .put.the.following.lines.in.you.
105920 40 66 69 6c 65 7b 2e 65 6d 61 63 73 7d 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 @file{.emacs}:..@lisp.(require.'
105940 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 emms-player-simple).(define-emms
105960 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 20 70 6c 61 79 20 27 28 66 69 6c 65 29 20 22 5c 5c 2e -simple-player.play.'(file)."\\.
105980 77 61 76 24 22 20 22 70 6c 61 79 22 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f 69 6e 64 65 6e wav$"."play").@end.lisp.@noinden
1059a0 74 0a 0a 48 75 68 21 20 57 61 73 6e 27 74 20 74 68 61 74 20 65 61 73 79 3f 0a 0a 54 68 65 20 6d t..Huh!.Wasn't.that.easy?..The.m
1059c0 61 63 72 6f 20 66 75 6e 63 74 69 6f 6e 20 40 63 6f 6d 6d 61 6e 64 7b 64 65 66 69 6e 65 2d 65 6d acro.function.@command{define-em
1059e0 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 7d 20 74 61 6b 65 73 20 61 20 6d 69 6e 69 6d 75 ms-simple-player}.takes.a.minimu
105a00 6d 0a 6f 66 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 2e 20 54 68 65 20 66 69 72 73 74 20 m.of.three.arguments..The.first.
105a20 61 72 67 75 6d 65 6e 74 20 28 40 65 6d 70 68 7b 70 6c 61 79 7d 20 69 6e 20 6f 75 72 20 65 78 61 argument.(@emph{play}.in.our.exa
105a40 6d 70 6c 65 29 0a 64 65 66 69 6e 65 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 6c mple).defines.the.name.of.the.pl
105a60 61 79 65 72 2e 20 49 74 27 73 20 75 73 65 64 20 74 6f 20 6e 61 6d 65 20 74 68 65 20 70 6c 61 79 ayer..It's.used.to.name.the.play
105a80 65 72 0a 66 75 6e 63 74 69 6f 6e 73 2e 20 54 68 65 20 73 65 63 6f 6e 64 20 69 73 20 61 20 72 65 er.functions..The.second.is.a.re
105aa0 67 65 78 70 2c 20 74 68 61 74 20 64 65 66 69 6e 65 73 20 77 68 69 63 68 20 66 69 6c 65 73 20 74 gexp,.that.defines.which.files.t
105ac0 6f 20 70 6c 61 79 0a 77 69 74 68 20 6f 75 72 20 70 6c 61 79 65 72 2e 20 40 65 6d 70 68 7b 5c 5c o.play.with.our.player..@emph{\\
105ae0 2e 77 61 76 24 7d 20 6d 61 74 63 68 65 73 20 61 6e 79 20 66 69 6c 65 6e 61 6d 65 20 65 6e 64 69 .wav$}.matches.any.filename.endi
105b00 6e 67 20 77 69 74 68 20 61 20 64 6f 74 0a 61 6e 64 20 74 68 65 20 73 74 72 69 6e 67 20 77 61 76 ng.with.a.dot.and.the.string.wav
105b20 2e 20 54 68 65 20 6c 61 73 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 61 63 74 75 61 ..The.last.argument.is.the.actua
105b40 6c 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0a 63 6f 6d 6d 61 6e 64 20 77 65 20 75 73 65 20 74 6f l.command.line.command.we.use.to
105b60 20 70 6c 61 79 20 6f 75 72 20 66 69 6c 65 73 2e 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 64 .play.our.files..You.can.also.ad
105b80 64 20 74 68 65 20 70 61 74 68 20 62 75 74 20 77 65 0a 6a 75 73 74 20 61 73 73 75 6d 65 20 74 68 d.the.path.but.we.just.assume.th
105ba0 61 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 6e 20 79 6f 75 72 20 70 61 74 68 2e 20 at.the.command.is.in.your.path..
105bc0 41 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 79 6f 75 20 61 64 64 20 74 6f 0a 74 68 65 73 65 20 74 All.arguments.you.add.to.these.t
105be0 68 72 65 65 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 2e 20 54 68 65 79 20 64 65 66 69 6e 65 20 74 hree.are.optional..They.define.t
105c00 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 20 79 6f 75 0a 77 61 he.command.line.arguments.you.wa
105c20 6e 74 20 74 6f 20 61 64 64 20 74 6f 20 79 6f 75 72 20 61 72 67 75 6d 65 6e 74 2e 20 49 66 20 79 nt.to.add.to.your.argument..If.y
105c40 6f 75 20 77 61 6e 74 20 74 6f 20 68 65 61 72 20 74 68 65 20 77 61 76 20 66 69 6c 65 20 6f 66 20 ou.want.to.hear.the.wav.file.of.
105c60 79 6f 75 72 0a 66 61 76 6f 75 72 69 74 65 20 61 72 74 69 73 74 20 69 6e 20 74 68 65 20 6d 6f 73 your.favourite.artist.in.the.mos
105c80 74 20 70 6f 73 73 69 62 6c 65 20 76 6f 6c 75 6d 65 20 75 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 t.possible.volume.use.the.follow
105ca0 69 6e 67 20 6c 69 6e 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d ing.line:..@lisp.(require.'emms-
105cc0 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d player-simple)..(define-emms-sim
105ce0 70 6c 65 2d 70 6c 61 79 65 72 20 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ple-player.play.................
105d00 20 20 20 20 20 20 20 20 20 20 20 27 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........'(file)..............
105d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 61 72 74 69 73 74 2d 2a 2e 77 61 76 24 22 0a .............."\\artist-*.wav$".
105d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6c 61 79 ..........................."play
105d60 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d "............................"--
105d80 76 6f 6c 75 6d 65 3d 31 30 30 22 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f 69 6e 64 65 6e 74 volume=100").@end.lisp.@noindent
105da0 0a 0a 50 6c 65 61 73 65 20 6e 6f 74 69 63 65 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 74 6f ..Please.notice.that.you.have.to
105dc0 20 61 64 64 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 73 74 72 69 6e 67 73 21 0a 0a .add.the.arguments.as.strings!..
105de0 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 6f 6c 20 79 6f 75 20 75 73 65 20 66 6f The.command.line.tool.you.use.fo
105e00 72 20 40 63 6f 6d 6d 61 6e 64 7b 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c r.@command{define-emms-simple-pl
105e20 61 79 65 72 7d 0a 68 61 73 20 74 6f 20 74 61 6b 65 20 6f 6e 65 20 73 6f 6e 67 20 61 73 20 61 72 ayer}.has.to.take.one.song.as.ar
105e40 67 75 6d 65 6e 74 20 61 6e 64 20 73 74 6f 70 20 61 66 74 65 72 20 70 6c 61 79 69 6e 67 20 74 68 gument.and.stop.after.playing.th
105e60 61 74 0a 70 61 72 74 69 63 75 6c 61 72 20 73 6f 6e 67 2e 20 46 6f 72 20 61 6e 79 20 6f 74 68 65 at.particular.song..For.any.othe
105e80 72 20 63 6f 6e 63 65 70 74 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 63 75 73 74 6f r.concept.you.will.need.to.custo
105ea0 6d 69 73 65 0a 65 6d 6d 73 20 61 20 62 69 74 20 6d 6f 72 65 2e 2e 2e 0a 0a 0a 0a 40 6e 6f 64 65 mise.emms.a.bit.more.......@node
105ec0 20 4d 6f 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 0a 40 73 65 63 74 69 6f 6e 20 4d 6f .More.Complex.Player.@section.Mo
105ee0 72 65 20 43 6f 6d 70 6c 65 78 20 50 6c 61 79 65 72 0a 0a 40 63 69 6e 64 65 78 20 63 6f 6d 70 6c re.Complex.Player..@cindex.compl
105f00 65 78 20 70 6c 61 79 65 72 0a 40 63 69 6e 64 65 78 20 61 64 76 61 6e 63 65 64 20 70 6c 61 79 65 ex.player.@cindex.advanced.playe
105f20 72 0a 0a 54 68 65 20 6d 6f 73 74 20 70 6c 61 79 65 72 73 20 79 6f 75 20 75 73 65 20 77 69 6c 6c r..The.most.players.you.use.will
105f40 20 62 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 73 20 73 6f 20 79 6f 75 20 64 6f 6e 27 74 20 .be.simple.players.so.you.don't.
105f60 6e 65 65 64 20 74 6f 0a 72 65 61 64 20 74 68 69 73 20 63 68 61 70 74 65 72 2e 20 42 75 74 20 69 need.to.read.this.chapter..But.i
105f80 66 20 79 6f 75 20 61 72 65 20 63 75 72 69 6f 75 73 20 68 6f 77 20 79 6f 75 20 63 61 6e 20 75 73 f.you.are.curious.how.you.can.us
105fa0 65 20 28 61 6c 6d 6f 73 74 29 20 65 76 65 72 79 0a 70 6c 61 79 65 72 20 69 6e 20 65 6d 6d 73 20 e.(almost).every.player.in.emms.
105fc0 72 65 61 64 20 66 75 72 74 68 65 72 2e 2e 2e 0a 0a 49 6e 20 74 68 69 73 20 63 68 61 70 74 65 72 read.further.....In.this.chapter
105fe0 20 77 65 20 77 69 6c 6c 20 75 73 65 20 6d 70 67 33 32 31 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 .we.will.use.mpg321.to.construct
106000 20 61 20 70 6c 61 79 65 72 20 74 68 61 74 0a 61 63 74 75 61 6c 6c 79 20 63 61 6e 20 70 61 75 73 .a.player.that.actually.can.paus
106020 65 20 61 20 74 72 61 63 6b 2c 20 72 65 73 74 61 72 74 20 69 74 20 61 6e 64 20 73 68 6f 77 20 72 e.a.track,.restart.it.and.show.r
106040 65 73 74 20 74 69 6d 65 2e 20 57 65 20 77 6f 6e 27 74 0a 69 6d 70 6c 65 6d 65 6e 74 20 61 6c 6c est.time..We.won't.implement.all
106060 20 6f 66 20 74 68 61 74 2c 20 62 75 74 20 61 66 74 65 72 20 74 68 61 74 20 63 68 61 70 74 65 72 .of.that,.but.after.that.chapter
106080 20 79 6f 75 20 77 69 6c 6c 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 0a 64 65 66 69 6e 65 20 69 74 2e .you.will.know.how.to.define.it.
1060a0 0a 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 40 63 6f 6d 6d 61 6e 64 7b 64 65 66 69 6e 65 2d 65 6d ..The.command.@command{define-em
1060c0 6d 73 2d 73 69 6d 70 6c 65 2d 70 6c 61 79 65 72 7d 20 69 73 20 6a 75 73 74 20 61 20 61 62 73 74 ms-simple-player}.is.just.a.abst
1060e0 72 61 63 74 69 6f 6e 0a 6c 61 79 65 72 20 66 6f 72 20 40 63 6f 6d 6d 61 6e 64 7b 64 65 66 69 6e raction.layer.for.@command{defin
106100 65 2d 65 6d 6d 73 2d 70 6c 61 79 65 72 7d 2c 20 77 68 69 63 68 20 69 73 20 61 20 6c 69 74 74 6c e-emms-player},.which.is.a.littl
106120 65 20 62 69 74 20 6d 6f 72 65 0a 63 6f 6d 70 6c 69 63 61 74 65 64 20 62 75 74 20 6d 75 63 68 20 e.bit.more.complicated.but.much.
106140 6d 6f 72 65 20 70 6f 77 65 72 66 75 6c 21 0a 0a 40 6c 69 73 70 0a 28 64 65 66 69 6e 65 2d 65 6d more.powerful!..@lisp.(define-em
106160 6d 73 2d 70 6c 61 79 65 72 20 22 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 22 0a 20 ms-player."emms-mpg321-remote"..
106180 20 3a 73 74 61 72 74 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 61 72 .:start.'emms-mpg321-remote-star
1061a0 74 0a 20 20 3a 73 74 6f 70 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 t...:stop.'emms-mpg321-remote-st
1061c0 6f 70 0a 20 20 3a 70 6c 61 79 61 62 6c 65 70 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d op...:playablep.'emms-mpg321-rem
1061e0 6f 74 65 2d 70 6c 61 79 61 62 6c 65 2d 70 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f 69 6e 64 ote-playable-p).@end.lisp.@noind
106200 65 6e 74 0a 0a 53 6f 2c 20 74 68 61 74 20 69 73 20 61 6c 6d 6f 73 74 20 61 6c 6c 21 20 40 63 6f ent..So,.that.is.almost.all!.@co
106220 6d 6d 61 6e 64 7b 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 70 6c 61 79 65 72 7d 20 74 61 6b 65 73 20 mmand{define-emms-player}.takes.
106240 61 20 6d 69 6e 69 6d 75 6d 0a 6f 66 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 2e 20 54 68 a.minimum.of.three.arguments..Th
106260 65 20 66 69 72 73 74 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 6c 61 79 65 e.first.is.the.name.of.the.playe
106280 72 2e 20 54 68 65 20 72 65 73 74 20 61 72 65 0a 6d 65 74 68 6f 64 73 20 77 69 74 68 20 66 75 6e r..The.rest.are.methods.with.fun
1062a0 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 2e 20 54 68 72 65 65 20 6d 65 74 68 6f 64 73 20 61 72 ctions.to.call..Three.methods.ar
1062c0 65 20 72 65 71 75 69 72 65 64 3a 20 73 74 61 72 74 2c 0a 73 74 6f 70 20 61 6e 64 20 70 6c 61 79 e.required:.start,.stop.and.play
1062e0 61 62 6c 65 2e 20 53 74 61 72 74 20 73 61 79 73 20 45 6d 6d 73 20 68 6f 77 20 74 6f 20 73 74 61 able..Start.says.Emms.how.to.sta
106300 72 74 20 61 20 74 72 61 63 6b 20 28 73 69 63 21 29 2c 20 73 74 6f 70 0a 68 6f 77 20 74 6f 20 73 rt.a.track.(sic!),.stop.how.to.s
106320 74 6f 70 20 61 20 70 6c 61 79 65 72 20 61 6e 64 20 70 6c 61 79 61 62 6c 65 70 20 73 68 6f 75 6c top.a.player.and.playablep.shoul
106340 64 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 70 6c 61 79 65 72 0a 63 d.return.non-nil.if.the.player.c
106360 61 6e 20 70 6c 61 79 20 74 68 65 20 74 72 61 63 6b 2e 0a 0a 53 6f 20 77 65 20 6a 75 73 74 20 6e an.play.the.track...So.we.just.n
106380 65 65 64 20 74 68 65 73 65 20 74 68 72 65 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 67 65 74 eed.these.three.functions.to.get
1063a0 20 6f 75 72 20 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 3a 0a 0a 46 69 72 73 74 20 77 65 20 63 6f .our.mpg321-remote:..First.we.co
1063c0 64 65 20 74 68 65 20 73 74 61 72 74 20 66 75 6e 63 74 69 6f 6e 2e 20 57 65 20 77 69 6c 6c 20 63 de.the.start.function..We.will.c
1063e0 68 65 63 6b 20 69 66 20 74 68 65 72 65 27 73 20 61 20 6f 70 65 6e 0a 70 72 6f 63 65 73 73 20 61 heck.if.there's.a.open.process.a
106400 6e 64 20 73 74 61 72 74 20 6f 6e 65 20 6f 74 68 65 72 77 69 73 65 2e 20 54 68 65 6e 20 77 65 20 nd.start.one.otherwise..Then.we.
106420 73 65 6e 64 20 61 20 73 74 72 69 6e 67 20 74 6f 20 74 68 65 20 70 72 6f 63 65 73 73 0a 77 69 74 send.a.string.to.the.process.wit
106440 68 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 61 6e 64 20 73 65 74 20 61 20 66 69 6c 74 65 72 2e h.the.filename.and.set.a.filter.
106460 0a 0a 40 6c 69 73 70 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 ..@lisp.(defun.emms-mpg321-remot
106480 65 2d 73 74 61 72 74 20 28 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 2d 70 72 6f 63 65 73 e-start.()...(unless.(get-proces
1064a0 73 20 60 60 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 27 27 29 0a 20 20 20 20 28 73 65 74 71 20 65 s.``mpg321-remote'').....(setq.e
1064c0 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 mms-mpg321-remote-process.......
1064e0 20 20 20 20 28 73 74 61 72 74 2d 70 72 6f 63 65 73 73 20 22 6d 70 67 33 32 31 2d 72 65 6d 6f 74 ....(start-process."mpg321-remot
106500 65 2d 70 72 6f 63 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-process"......................
106520 20 20 20 20 22 2a 6d 70 67 33 32 31 2a 22 20 22 6d 70 67 33 32 31 22 20 22 2d 52 22 20 22 61 62 ...."*mpg321*"."mpg321"."-R"."ab
106540 63 22 29 29 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 22 6d 70 67 c"))...(process-send-string."mpg
106560 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 321-remote-process".............
106580 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 6c 20 22 20 28 65 6d 6d 73 2d 74 72 ...........(concat."l.".(emms-tr
1065a0 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 0a 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 ack-name.track)))...(set-process
1065c0 2d 66 69 6c 74 65 72 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 72 6f 63 65 -filter.emms-mpg321-remote-proce
1065e0 73 73 20 27 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 66 69 6c 74 65 72 29 29 29 ss.'emms-mpg321-remote-filter)))
106600 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f 69 6e 64 65 6e 74 0a 0a 57 65 20 6e 65 65 64 20 74 68 .@end.lisp.@noindent..We.need.th
106620 65 20 66 69 6c 74 65 72 2c 20 61 73 20 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 20 77 6f 6e 27 74 e.filter,.as.mpg321-remote.won't
106640 20 71 75 69 74 20 61 66 74 65 72 20 70 6c 61 79 69 6e 67 20 74 68 65 0a 74 72 61 63 6b 20 61 73 .quit.after.playing.the.track.as
106660 20 74 68 65 20 73 69 6d 70 6c 65 20 70 6c 61 79 65 72 20 64 6f 2e 20 57 65 20 77 61 69 74 20 75 .the.simple.player.do..We.wait.u
106680 6e 74 69 6c 20 74 68 65 20 70 72 6f 63 65 73 73 20 73 65 6e 64 73 20 74 68 65 0a 6f 75 74 70 75 ntil.the.process.sends.the.outpu
1066a0 74 20 60 60 28 61 74 2d 73 69 67 6e 29 50 20 30 27 27 20 28 74 68 65 20 73 69 67 6e 61 6c 20 6f t.``(at-sign)P.0''.(the.signal.o
1066c0 66 20 6d 70 67 33 32 31 20 74 68 61 74 20 74 68 65 20 73 6f 6e 67 20 65 6e 64 65 64 29 20 74 6f f.mpg321.that.the.song.ended).to
1066e0 20 74 68 65 0a 66 69 6c 74 65 72 20 61 6e 64 20 63 61 6c 6c 20 65 6d 6d 73 2d 6d 70 67 33 32 31 .the.filter.and.call.emms-mpg321
106700 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 2e 0a 0a 40 6c 69 73 70 0a 28 64 65 66 75 6e 20 65 6d 6d 73 -remote-stop...@lisp.(defun.emms
106720 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 65 73 73 20 6f -mpg321-remote-filter.(process.o
106740 75 74 70 75 74 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 28 61 utput)...(when.(string-match."(a
106760 74 2d 73 69 67 6e 29 50 20 30 22 20 6f 75 74 70 75 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 70 t-sign)P.0".output).....(emms-mp
106780 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 29 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e g321-remote-stop))).@end.lisp.@n
1067a0 6f 69 6e 64 65 6e 74 0a 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 oindent..@command{emms-mpg321-re
1067c0 6d 6f 74 65 2d 73 74 6f 70 7d 20 77 6f 6e 27 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 69 6e 74 mote-stop}.won't.do.anything.int
1067e0 65 72 65 73 74 69 6e 67 2e 20 49 74 0a 6a 75 73 74 20 74 65 73 74 20 69 66 20 74 68 65 72 65 20 eresting..It.just.test.if.there.
106800 61 72 65 20 6f 74 68 65 72 20 66 69 6c 65 73 20 74 6f 20 70 6c 61 79 20 61 6e 64 20 63 6c 6f 73 are.other.files.to.play.and.clos
106820 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 40 6c 69 73 70 0a e.the.process.otherwise...@lisp.
106840 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 73 74 6f 70 20 28 (defun.emms-mpg321-remote-stop.(
106860 29 0a 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 70 )...(unless.emms-playlist.....(p
106880 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 22 6d 70 67 33 32 31 2d 72 65 6d 6f 74 rocess-send-string."mpg321-remot
1068a0 65 2d 70 72 6f 63 65 73 73 22 20 22 51 5c 6e 22 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f e-process"."Q\n")).@end.lisp.@no
1068c0 69 6e 64 65 6e 74 0a 0a 41 6e 64 20 74 6f 20 6d 61 6b 65 20 74 68 61 74 20 61 20 70 6c 61 79 61 indent..And.to.make.that.a.playa
1068e0 62 6c 65 20 65 78 61 6d 70 6c 65 20 49 20 61 6c 73 6f 20 61 64 64 65 64 0a 40 63 6f 6d 6d 61 6e ble.example.I.also.added.@comman
106900 64 7b 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 6c 61 79 61 62 6c 65 70 7d 2c d{emms-mpg321-remote-playablep},
106920 20 77 68 69 63 68 20 49 20 72 65 61 6c 6c 79 20 6a 75 73 74 20 73 74 65 61 6c 0a 66 72 6f 6d 20 .which.I.really.just.steal.from.
106940 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2e 65 6c 7d 0a 0a 40 6c @file{emms-player-simple.el}..@l
106960 69 73 70 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 6c isp.(defun.emms-mpg321-remote-pl
106980 61 79 61 62 6c 65 70 20 28 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 22 52 65 74 75 72 6e 20 6e ayablep.(track)........"Return.n
1069a0 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 77 65 20 63 61 6e 20 70 6c 61 79 20 74 68 69 73 20 74 72 61 on-nil.when.we.can.play.this.tra
1069c0 63 6b 2e 22 0a 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c ck."........(and.(emms-track-fil
1069e0 65 2d 70 20 74 72 61 63 6b 29 0a 40 65 6e 64 20 6c 69 73 70 0a 40 6e 6f 69 6e 64 65 6e 74 0a 0a e-p.track).@end.lisp.@noindent..
106a00 4e 6f 77 20 77 65 20 68 61 76 65 20 61 20 72 65 61 64 79 20 70 6c 61 79 65 72 20 61 6e 64 20 77 Now.we.have.a.ready.player.and.w
106a20 65 20 63 6f 75 6c 64 20 61 64 64 20 63 6f 6d 6d 61 6e 64 73 20 6c 69 6b 65 0a 40 63 6f 6d 6d 61 e.could.add.commands.like.@comma
106a40 6e 64 7b 65 6d 6d 73 2d 6d 70 67 33 32 31 2d 72 65 6d 6f 74 65 2d 70 61 75 73 65 7d 20 66 6f 72 nd{emms-mpg321-remote-pause}.for
106a60 20 65 78 61 6d 70 6c 65 2e 0a 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .example.....@c.----------------
106a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
106aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 54 68 65 20 42 72 -------------------.@node.The.Br
106ac0 6f 77 73 65 72 0a 40 63 68 61 70 74 65 72 20 54 68 65 20 42 72 6f 77 73 65 72 0a 0a 54 68 65 20 owser.@chapter.The.Browser..The.
106ae0 42 72 6f 77 73 65 72 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 62 72 6f 77 73 65 20 74 68 65 Browser.allows.you.to.browse.the
106b00 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 20 61 6e 64 20 61 64 64 20 74 72 61 63 6b 73 20 74 .metadata.cache.and.add.tracks.t
106b20 6f 0a 79 6f 75 72 20 70 6c 61 79 6c 69 73 74 2e 20 49 74 20 69 6e 63 6c 75 64 65 73 20 61 20 70 o.your.playlist..It.includes.a.p
106b40 6f 77 65 72 66 75 6c 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 2e 0a 0a 54 68 65 20 42 owerful.interactive.mode...The.B
106b60 72 6f 77 73 65 72 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 40 66 69 6c 65 7b 65 6d 6d 73 2d rowser.is.defined.in.@file{emms-
106b80 62 72 6f 77 73 65 72 2e 65 6c 7d 20 61 6e 64 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 0a 74 browser.el}.and.is.included.in.t
106ba0 68 65 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 61 6c 6c 7d 20 73 65 74 75 70 20 6c 65 76 65 he.@command{emms-all}.setup.leve
106bc0 6c 2e 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 45 6d l..For.more.information.about.Em
106be0 6d 73 0a 73 65 74 75 70 20 6c 65 76 65 6c 73 20 73 65 65 20 40 78 72 65 66 7b 53 65 74 75 70 7d ms.setup.levels.see.@xref{Setup}
106c00 2e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6d 61 6e 75 61 6c 6c 79 20 61 64 64 20 74 68 65 ...You.can.also.manually.add.the
106c20 20 42 72 6f 77 73 65 72 20 74 6f 20 79 6f 75 72 20 45 6d 6d 73 20 73 65 74 75 70 20 62 79 20 6c .Browser.to.your.Emms.setup.by.l
106c40 6f 61 64 69 6e 67 20 69 74 0a 65 78 70 6c 69 63 69 74 6c 79 20 77 69 74 68 3a 0a 0a 40 6c 69 73 oading.it.explicitly.with:..@lis
106c60 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 65 6e 64 20 6c p.(require.'emms-browser).@end.l
106c80 69 73 70 0a 0a 54 6f 20 62 65 20 70 72 6f 70 65 72 6c 79 20 75 73 65 66 75 6c 2c 20 79 6f 75 20 isp..To.be.properly.useful,.you.
106ca0 73 68 6f 75 6c 64 20 64 6f 20 4d 2d 78 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 61 64 64 2d should.do.M-x.@command{emms-add-
106cc0 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 7d 20 74 6f 20 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 directory-tree}.to.all.the.files
106ce0 20 79 6f 75 20 6f 77 6e 20 61 74 20 6c 65 61 73 74 0a 6f 6e 63 65 20 73 6f 20 74 68 61 74 20 74 .you.own.at.least.once.so.that.t
106d00 68 65 20 63 61 63 68 65 20 69 73 20 66 75 6c 6c 79 20 70 6f 70 75 6c 61 74 65 64 2e 0a 0a 40 6d he.cache.is.fully.populated...@m
106d20 65 6e 75 0a 2a 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 61 63 65 3a 3a 20 20 20 20 20 54 68 enu.*.Browser.Interface::.....Th
106d40 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 62 72 6f 77 73 65 72 20 69 6e 74 65 72 66 61 63 65 2e e.interactive.browser.interface.
106d60 0a 2a 20 44 69 73 70 6c 61 79 69 6e 67 20 43 6f 76 65 72 73 3a 3a 20 20 20 20 20 44 69 73 70 6c .*.Displaying.Covers::.....Displ
106d80 61 79 69 6e 67 20 61 6c 62 75 6d 20 63 6f 76 65 72 73 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 aying.album.covers.in.the.browse
106da0 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 2a 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b 73 3a 3a 20 r.interface..*.Changing.Looks::.
106dc0 20 20 20 20 20 20 20 43 68 61 6e 67 69 6e 67 20 74 68 65 20 74 72 65 65 20 73 74 72 75 63 74 75 .......Changing.the.tree.structu
106de0 72 65 2c 20 64 69 73 70 6c 61 79 20 66 6f 72 6d 61 74 20 61 6e 64 20 66 61 63 65 73 2e 0a 2a 20 re,.display.format.and.faces..*.
106e00 46 69 6c 74 65 72 69 6e 67 20 54 72 61 63 6b 73 20 2d 20 64 65 70 72 65 63 61 74 65 64 3a 3a 20 Filtering.Tracks.-.deprecated::.
106e20 20 44 69 73 70 6c 61 79 69 6e 67 20 61 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 74 72 61 63 .Displaying.a.subset.of.the.trac
106e40 6b 73 2e 0a 40 65 6e 64 20 6d 65 6e 75 0a 0a 0a 0a 40 6e 6f 64 65 20 42 72 6f 77 73 65 72 20 49 ks..@end.menu....@node.Browser.I
106e60 6e 74 65 72 66 61 63 65 0a 40 73 65 63 74 69 6f 6e 20 42 72 6f 77 73 65 72 20 49 6e 74 65 72 66 nterface.@section.Browser.Interf
106e80 61 63 65 0a 0a 54 68 65 20 62 72 6f 77 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 61 6c 6c 6f 77 ace..The.browser.interface.allow
106ea0 73 20 79 6f 75 20 74 6f 20 64 69 73 70 6c 61 79 20 61 6e 64 20 69 6e 74 65 72 61 63 74 20 77 69 s.you.to.display.and.interact.wi
106ec0 74 68 20 79 6f 75 72 0a 74 72 61 63 6b 73 20 69 6e 20 6d 61 6e 79 20 64 69 66 66 65 72 65 6e 74 th.your.tracks.in.many.different
106ee0 20 77 61 79 73 2e 20 54 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 77 61 79 .ways..There.are.a.number.of.way
106f00 73 20 74 6f 20 73 74 61 72 74 20 74 68 65 0a 62 72 6f 77 73 65 72 2e 0a 0a 40 64 65 66 75 6e 20 s.to.start.the.browser...@defun.
106f20 65 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 65 0a 44 69 73 70 6c 61 79 20 62 72 6f 77 73 65 emms-smart-browse.Display.browse
106f40 72 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 2e 20 54 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 20 73 r.and.playlist..Toggle.between.s
106f60 65 6c 65 63 74 69 6e 67 20 62 72 6f 77 73 65 72 2c 0a 70 6c 61 79 6c 69 73 74 20 6f 72 20 68 69 electing.browser,.playlist.or.hi
106f80 64 69 6e 67 20 62 6f 74 68 2e 20 54 72 69 65 73 20 74 6f 20 62 65 68 61 76 65 20 73 61 6e 65 6c ding.both..Tries.to.behave.sanel
106fa0 79 20 69 66 20 74 68 65 20 75 73 65 72 20 68 61 73 0a 6d 61 6e 75 61 6c 6c 79 20 63 68 61 6e 67 y.if.the.user.has.manually.chang
106fc0 65 64 20 74 68 65 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 0a 40 65 6e ed.the.window.configuration..@en
106fe0 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 d.defun..@defun.emms-browse-by-a
107000 72 74 69 73 74 0a 44 69 73 70 6c 61 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 rtist.Display.the.browser.and.or
107020 64 65 72 20 74 68 65 20 74 72 61 63 6b 73 20 62 79 20 61 72 74 69 73 74 2e 0a 40 65 6e 64 20 64 der.the.tracks.by.artist..@end.d
107040 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 6c 62 75 efun..@defun.emms-browse-by-albu
107060 6d 0a 44 69 73 70 6c 61 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 64 65 72 20 m.Display.the.browser.and.order.
107080 74 68 65 20 74 72 61 63 6b 73 20 62 79 20 61 6c 62 75 6d 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a the.tracks.by.album..@end.defun.
1070a0 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 67 65 6e 72 65 0a 44 69 73 .@defun.emms-browse-by-genre.Dis
1070c0 70 6c 61 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 64 65 72 20 74 68 65 20 74 play.the.browser.and.order.the.t
1070e0 72 61 63 6b 73 20 62 79 20 67 65 6e 72 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 racks.by.genre..@end.defun..@def
107100 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 79 65 61 72 0a 44 69 73 70 6c 61 79 20 74 un.emms-browse-by-year.Display.t
107120 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6f 72 64 65 72 20 74 68 65 20 74 72 61 63 6b 73 20 he.browser.and.order.the.tracks.
107140 62 79 20 79 65 61 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 by.year..@end.defun..@defun.emms
107160 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 73 65 61 72 63 68 65 73 0a 53 68 6f 77 20 53 65 61 72 -browser-show-searches.Show.Sear
107180 63 68 20 63 72 75 6d 62 73 20 6f 66 20 74 68 65 20 61 63 74 69 76 65 20 73 65 61 72 63 68 65 73 ch.crumbs.of.the.active.searches
1071a0 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 ..@end.defun..@defun.emms-browse
1071c0 72 2d 72 65 6e 64 65 72 2d 6c 61 73 74 2d 73 65 61 72 63 68 0a 52 65 6e 64 65 72 20 74 68 65 20 r-render-last-search.Render.the.
1071e0 72 65 73 75 6c 74 73 20 66 6f 72 20 74 68 65 20 6c 61 73 74 20 73 65 61 72 63 68 20 77 69 74 68 results.for.the.last.search.with
107200 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 6e 67 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 4f .current.settings..@end.defun..O
107220 6e 63 65 20 74 68 65 20 42 72 6f 77 73 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 79 6f 75 nce.the.Browser.is.displayed.you
107240 20 63 61 6e 20 75 73 65 20 69 74 20 74 6f 20 6d 61 6e 61 67 65 64 20 79 6f 75 72 20 74 72 61 63 .can.use.it.to.managed.your.trac
107260 6b 0a 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 73 2e 20 54 68 65 20 k.collection.and.playlists..The.
107280 42 72 6f 77 73 65 72 20 69 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 61 6e 64 20 68 61 73 20 69 Browser.is.interactive.and.has.i
1072a0 74 73 20 6f 77 6e 0a 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 0a 40 74 61 62 6c 65 20 40 6b 62 64 ts.own.keybindings...@table.@kbd
1072c0 0a 0a 40 69 74 65 6d 20 43 2d 6a 0a 40 6b 69 6e 64 65 78 20 43 2d 6a 20 28 65 6d 6d 73 2d 62 72 ..@item.C-j.@kindex.C-j.(emms-br
1072e0 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d owser).@findex.emms-browser-add-
107300 74 72 61 63 6b 73 2d 61 6e 64 2d 70 6c 61 79 0a 41 64 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 61 tracks-and-play.Add.all.tracks.a
107320 74 20 70 6f 69 6e 74 2c 20 61 6e 64 20 70 6c 61 79 20 74 68 65 20 66 69 72 73 74 20 61 64 64 65 t.point,.and.play.the.first.adde
107340 64 20 74 72 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 52 45 54 0a 40 6b 69 6e 64 65 78 20 52 45 54 20 d.track...@item.RET.@kindex.RET.
107360 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 (emms-browser).@findex.emms-brow
107380 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 0a 41 64 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 61 74 ser-add-tracks.Add.all.tracks.at
1073a0 20 70 6f 69 6e 74 2e 0a 0a 40 69 74 65 6d 20 53 50 43 0a 40 6b 69 6e 64 65 78 20 53 50 43 20 28 .point...@item.SPC.@kindex.SPC.(
1073c0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 emms-browser).@findex.emms-brows
1073e0 65 72 2d 74 6f 67 67 6c 65 2d 73 75 62 69 74 65 6d 73 0a 53 68 6f 77 20 6f 72 20 68 69 64 65 20 er-toggle-subitems.Show.or.hide.
107400 28 6b 69 6c 6c 29 20 73 75 62 69 74 65 6d 73 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 6e (kill).subitems.under.the.curren
107420 74 20 6c 69 6e 65 2e 0a 0a 40 69 74 65 6d 20 31 0a 40 6b 69 6e 64 65 78 20 31 20 28 65 6d 6d 73 t.line...@item.1.@kindex.1.(emms
107440 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 -browser).@findex.emms-browser-c
107460 6f 6c 6c 61 70 73 65 2d 61 6c 6c 0a 43 6f 6c 6c 61 70 73 65 20 65 76 65 72 79 74 68 69 6e 67 2e ollapse-all.Collapse.everything.
107480 0a 0a 40 69 74 65 6d 20 32 0a 40 6b 69 6e 64 65 78 20 32 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 ..@item.2.@kindex.2.(emms-browse
1074a0 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 r).@findex.emms-browser-expand-t
1074c0 6f 2d 6c 65 76 65 6c 2d 32 0a 45 78 70 61 6e 64 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 o-level-2.Expand.all.top.level.i
1074e0 74 65 6d 73 20 6f 6e 65 20 6c 65 76 65 6c 2e 0a 0a 40 69 74 65 6d 20 33 0a 40 6b 69 6e 64 65 78 tems.one.level...@item.3.@kindex
107500 20 33 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 .3.(emms-browser).@findex.emms-b
107520 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f 2d 6c 65 76 65 6c 2d 33 0a 45 78 70 61 6e 64 20 rowser-expand-to-level-3.Expand.
107540 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 74 65 6d 73 20 74 77 6f 20 6c 65 76 65 6c 73 2e 0a all.top.level.items.two.levels..
107560 0a 40 69 74 65 6d 20 34 0a 40 6b 69 6e 64 65 78 20 34 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 .@item.4.@kindex.4.(emms-browser
107580 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 74 6f ).@findex.emms-browser-expand-to
1075a0 2d 6c 65 76 65 6c 2d 34 0a 45 78 70 61 6e 64 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 69 74 -level-4.Expand.all.top.level.it
1075c0 65 6d 73 20 74 68 72 65 65 20 6c 65 76 65 6c 73 2e 0a 0a 40 69 74 65 6d 20 43 0a 40 6b 69 6e 64 ems.three.levels...@item.C.@kind
1075e0 65 78 20 43 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 ex.C.(emms-browser).@findex.emms
107600 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 2d 70 6c 61 79 6c 69 73 74 0a 43 6c 65 61 72 20 74 68 -browser-clear-playlist.Clear.th
107620 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 45 0a 40 6b 69 6e 64 65 78 20 45 20 28 e.playlist...@item.E.@kindex.E.(
107640 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 emms-browser).@findex.emms-brows
107660 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 0a 45 78 70 61 6e 64 20 65 76 65 72 79 74 68 69 6e 67 2e er-expand-all.Expand.everything.
107680 0a 0a 40 69 74 65 6d 20 64 0a 40 6b 69 6e 64 65 78 20 64 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 ..@item.d.@kindex.d.(emms-browse
1076a0 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 76 69 65 77 2d 69 6e 2d r).@findex.emms-browser-view-in-
1076c0 64 69 72 65 64 0a 56 69 65 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 dired.View.the.current.directory
1076e0 20 69 6e 20 64 69 72 65 64 2e 0a 0a 40 69 74 65 6d 20 71 0a 40 6b 69 6e 64 65 78 20 71 20 28 65 .in.dired...@item.q.@kindex.q.(e
107700 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 mms-browser).@findex.emms-browse
107720 72 2d 62 75 72 79 2d 62 75 66 66 65 72 0a 42 75 72 79 20 74 68 65 20 62 72 6f 77 73 65 72 20 62 r-bury-buffer.Bury.the.browser.b
107740 75 66 66 65 72 2e 0a 0a 40 69 74 65 6d 20 72 0a 40 6b 69 6e 64 65 78 20 72 20 28 65 6d 6d 73 2d uffer...@item.r.@kindex.r.(emms-
107760 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 67 6f browser).@findex.emms-browser-go
107780 74 6f 2d 72 61 6e 64 6f 6d 0a 4a 75 6d 70 20 74 6f 20 61 20 72 61 6e 64 6f 6d 20 74 72 61 63 6b to-random.Jump.to.a.random.track
1077a0 2e 0a 0a 40 69 74 65 6d 20 2f 0a 40 6b 69 6e 64 65 78 20 2f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 ...@item./.@kindex./.(emms-brows
1077c0 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 69 73 65 61 72 63 68 2d 62 75 66 66 65 72 0a er).@findex.emms-isearch-buffer.
1077e0 49 73 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 40 69 74 Isearch.through.the.buffer...@it
107800 65 6d 20 3c 0a 40 6b 69 6e 64 65 78 20 3c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 em.<.@kindex.<.(emms-browser).@f
107820 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 72 65 76 69 6f 75 73 2d 72 69 6e 67 index.emms-filters-previous-ring
107840 2d 66 69 6c 74 65 72 0a 52 65 64 69 73 70 6c 61 79 20 77 69 74 68 20 74 68 65 20 70 72 65 76 69 -filter.Redisplay.with.the.previ
107860 6f 75 73 20 66 69 6c 74 65 72 2e 0a 0a 40 69 74 65 6d 20 3e 0a 40 6b 69 6e 64 65 78 20 3e 20 28 ous.filter...@item.>.@kindex.>.(
107880 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 emms-browser).@findex.emms-filte
1078a0 72 73 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 0a 52 65 64 69 73 70 6c 61 79 20 77 69 rs-next-ring-filter.Redisplay.wi
1078c0 74 68 20 74 68 65 20 6e 65 78 74 20 66 69 6c 74 65 72 2e 0a 0a 40 69 74 65 6d 20 3f 0a 40 6b 69 th.the.next.filter...@item.?.@ki
1078e0 6e 64 65 78 20 3f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 64 65 ndex.?.(emms-browser).@findex.de
107900 73 63 72 69 62 65 2d 6d 6f 64 65 0a 53 65 65 20 74 68 65 20 45 6d 61 63 73 20 64 6f 63 75 6d 65 scribe-mode.See.the.Emacs.docume
107920 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d ntation.for.the.function...@item
107940 20 43 2d 2f 0a 40 6b 69 6e 64 65 78 20 43 2d 2f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a .C-/.@kindex.C-/.(emms-browser).
107960 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 6e 64 6f 0a @findex.emms-playlist-mode-undo.
107980 55 6e 64 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 6c 61 79 6c 69 73 74 20 61 63 74 69 6f Undo.the.previous.playlist.actio
1079a0 6e 2e 0a 0a 40 69 74 65 6d 20 3c 43 2d 72 65 74 75 72 6e 3e 0a 40 6b 69 6e 64 65 78 20 3c 43 2d n...@item.<C-return>.@kindex.<C-
1079c0 72 65 74 75 72 6e 3e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 return>.(emms-browser).@findex.e
1079e0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 64 64 2d 74 72 61 63 6b 73 2d 61 6e 64 2d 70 6c 61 79 0a mms-browser-add-tracks-and-play.
107a00 41 64 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 61 74 20 70 6f 69 6e 74 2c 20 61 6e 64 20 70 6c 61 Add.all.tracks.at.point,.and.pla
107a20 79 20 74 68 65 20 66 69 72 73 74 20 61 64 64 65 64 20 74 72 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 y.the.first.added.track...@item.
107a40 3c 62 61 63 6b 74 61 62 3e 0a 40 6b 69 6e 64 65 78 20 3c 62 61 63 6b 74 61 62 3e 20 28 65 6d 6d <backtab>.@kindex.<backtab>.(emm
107a60 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d s-browser).@findex.emms-browser-
107a80 70 72 65 76 2d 6e 6f 6e 2d 74 72 61 63 6b 0a 4a 75 6d 70 20 74 6f 20 74 68 65 20 70 72 65 76 69 prev-non-track.Jump.to.the.previ
107aa0 6f 75 73 20 6e 6f 6e 2d 74 72 61 63 6b 20 65 6c 65 6d 65 6e 74 2e 0a 0a 40 69 74 65 6d 20 3c 74 ous.non-track.element...@item.<t
107ac0 61 62 3e 0a 40 6b 69 6e 64 65 78 20 3c 74 61 62 3e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 ab>.@kindex.<tab>.(emms-browser)
107ae0 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6e 6f 6e 2d 74 .@findex.emms-browser-next-non-t
107b00 72 61 63 6b 0a 4a 75 6d 70 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6e 6f 6e 2d 74 72 61 63 6b 20 rack.Jump.to.the.next.non-track.
107b20 65 6c 65 6d 65 6e 74 2e 0a 0a 40 69 74 65 6d 20 73 20 41 0a 40 6b 69 6e 64 65 78 20 73 20 41 20 element...@item.s.A.@kindex.s.A.
107b40 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 (emms-browser).@findex.emms-brow
107b60 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 0a 53 65 61 72 63 68 20 74 68 65 20 63 ser-search-by-album.Search.the.c
107b80 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 6c 62 75 6d 2e 0a 0a 40 69 74 65 6d 20 73 20 6f 0a 40 ollection.by.album...@item.s.o.@
107ba0 6b 69 6e 64 65 78 20 73 20 6f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 kindex.s.o.(emms-browser).@finde
107bc0 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 61 72 x.emms-browser-search-by-albumar
107be0 74 69 73 74 0a 53 65 61 72 63 68 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 72 tist.Search.the.collection.by.ar
107c00 74 69 73 74 2e 0a 0a 40 69 74 65 6d 20 73 20 61 0a 40 6b 69 6e 64 65 78 20 73 20 61 20 28 65 6d tist...@item.s.a.@kindex.s.a.(em
107c20 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 ms-browser).@findex.emms-browser
107c40 2d 73 65 61 72 63 68 2d 62 79 2d 61 72 74 69 73 74 0a 53 65 61 72 63 68 20 74 68 65 20 63 6f 6c -search-by-artist.Search.the.col
107c60 6c 65 63 74 69 6f 6e 20 62 79 20 61 72 74 69 73 74 2e 0a 0a 40 69 74 65 6d 20 73 20 73 0a 40 6b lection.by.artist...@item.s.s.@k
107c80 69 6e 64 65 78 20 73 20 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 index.s.s.(emms-browser).@findex
107ca0 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 0a 53 65 .emms-browser-search-by-names.Se
107cc0 61 72 63 68 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 6e 61 6d 65 73 2e 0a 0a 40 arch.the.collection.by.names...@
107ce0 69 74 65 6d 20 73 20 74 0a 40 6b 69 6e 64 65 78 20 73 20 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 item.s.t.@kindex.s.t.(emms-brows
107d00 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d er).@findex.emms-browser-search-
107d20 62 79 2d 74 69 74 6c 65 0a 53 65 61 72 63 68 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 by-title.Search.the.collection.b
107d40 79 20 74 69 74 6c 65 2e 0a 0a 40 69 74 65 6d 20 73 20 68 0a 40 6b 69 6e 64 65 78 20 73 20 68 20 y.title...@item.s.h.@kindex.s.h.
107d60 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 (emms-browser).@findex.emms-brow
107d80 73 65 72 2d 73 68 6f 77 2d 73 65 61 72 63 68 65 73 0a 53 68 6f 77 20 74 68 65 20 63 75 72 72 65 ser-show-searches.Show.the.curre
107da0 6e 74 6c 79 20 61 63 74 69 76 65 20 73 65 61 72 63 68 65 73 20 69 6e 20 74 68 65 20 73 65 61 72 ntly.active.searches.in.the.sear
107dc0 63 68 20 63 61 63 68 65 2e 0a 0a 40 69 74 65 6d 20 62 20 31 0a 40 6b 69 6e 64 65 78 20 62 20 31 ch.cache...@item.b.1.@kindex.b.1
107de0 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f .(emms-browser).@findex.emms-bro
107e00 77 73 65 2d 62 79 2d 61 72 74 69 73 74 0a 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 74 wse-by-artist.Browse.the.collect
107e20 69 6f 6e 20 62 79 20 61 72 74 69 73 74 2e 0a 0a 40 69 74 65 6d 20 62 20 32 0a 40 6b 69 6e 64 65 ion.by.artist...@item.b.2.@kinde
107e40 78 20 62 20 32 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d x.b.2.(emms-browser).@findex.emm
107e60 73 2d 62 72 6f 77 73 65 2d 62 79 2d 61 6c 62 75 6d 0a 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c s-browse-by-album.Browse.the.col
107e80 6c 65 63 74 69 6f 6e 20 62 79 20 61 6c 62 75 6d 2e 0a 0a 40 69 74 65 6d 20 62 20 33 0a 40 6b 69 lection.by.album...@item.b.3.@ki
107ea0 6e 64 65 78 20 62 20 33 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 ndex.b.3.(emms-browser).@findex.
107ec0 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 67 65 6e 72 65 0a 42 72 6f 77 73 65 20 74 68 65 20 emms-browse-by-genre.Browse.the.
107ee0 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 67 65 6e 72 65 2e 0a 0a 40 69 74 65 6d 20 62 20 34 0a collection.by.genre...@item.b.4.
107f00 40 6b 69 6e 64 65 78 20 62 20 34 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 @kindex.b.4.(emms-browser).@find
107f20 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 79 65 61 72 0a 42 72 6f 77 73 65 20 74 68 ex.emms-browse-by-year.Browse.th
107f40 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 79 65 61 72 2e 0a 0a 40 69 74 65 6d 20 62 20 35 e.collection.by.year...@item.b.5
107f60 0a 40 6b 69 6e 64 65 78 20 62 20 35 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e .@kindex.b.5.(emms-browser).@fin
107f80 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 63 6f 6d 70 6f 73 65 72 0a 42 72 6f 77 dex.emms-browse-by-composer.Brow
107fa0 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 63 6f 6d 70 6f 73 65 72 2e 0a 0a se.the.collection.by.composer...
107fc0 40 69 74 65 6d 20 62 20 36 0a 40 6b 69 6e 64 65 78 20 62 20 36 20 28 65 6d 6d 73 2d 62 72 6f 77 @item.b.6.@kindex.b.6.(emms-brow
107fe0 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2d 70 65 72 66 ser).@findex.emms-browse-by-perf
108000 6f 72 6d 65 72 0a 42 72 6f 77 73 65 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 62 79 20 70 ormer.Browse.the.collection.by.p
108020 65 72 66 6f 72 6d 65 72 2e 0a 0a 40 69 74 65 6d 20 62 20 37 0a 40 6b 69 6e 64 65 78 20 62 20 35 erformer...@item.b.7.@kindex.b.5
108040 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f .(emms-browser).@findex.emms-bro
108060 77 73 65 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 42 72 6f 77 73 65 20 74 68 65 20 63 6f wse-by-albumartist.Browse.the.co
108080 6c 6c 65 63 74 69 6f 6e 20 62 79 20 61 6c 62 75 6d 61 72 74 69 73 74 2e 0a 0a 40 69 74 65 6d 20 llection.by.albumartist...@item.
1080a0 57 20 61 20 70 0a 40 6b 69 6e 64 65 78 20 57 20 61 20 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 W.a.p.@kindex.W.a.p.(emms-browse
1080c0 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 r).@findex.emms-browser-lookup-a
1080e0 6c 62 75 6d 2d 6f 6e 2d 70 69 74 63 68 66 6f 72 6b 0a 4c 6f 6f 6b 75 70 20 74 68 65 20 61 6c 62 lbum-on-pitchfork.Lookup.the.alb
108100 75 6d 20 75 73 69 6e 67 20 50 69 74 63 68 66 6f 72 6b 2e 0a 0a 40 69 74 65 6d 20 57 20 6f 20 77 um.using.Pitchfork...@item.W.o.w
108120 0a 40 6b 69 6e 64 65 78 20 57 20 6f 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 .@kindex.W.o.w.(emms-browser).@f
108140 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 61 6c 62 75 6d 61 index.emms-browser-lookup-albuma
108160 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 0a 4c 6f 6f 6b 75 70 20 74 68 65 20 61 6c rtist-on-wikipedia.Lookup.the.al
108180 62 75 6d 20 61 72 74 69 73 74 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 40 69 74 bum.artist.using.Wikipedia...@it
1081a0 65 6d 20 57 20 41 20 77 0a 40 6b 69 6e 64 65 78 20 57 20 41 20 77 20 28 65 6d 6d 73 2d 62 72 6f em.W.A.w.@kindex.W.A.w.(emms-bro
1081c0 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 wser).@findex.emms-browser-looku
1081e0 70 2d 61 72 74 69 73 74 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 0a 4c 6f 6f 6b 75 70 20 74 68 65 p-artist-on-wikipedia.Lookup.the
108200 20 61 72 74 69 73 74 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 40 69 74 65 6d 20 .artist.using.Wikipedia...@item.
108220 57 20 63 20 77 0a 40 6b 69 6e 64 65 78 20 57 20 63 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 W.c.w.@kindex.W.c.w.(emms-browse
108240 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d 63 r).@findex.emms-browser-lookup-c
108260 6f 6d 70 6f 73 65 72 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 0a 4c 6f 6f 6b 75 70 20 74 68 65 20 omposer-on-wikipedia.Lookup.the.
108280 63 6f 6d 70 6f 73 65 72 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 40 69 74 65 6d composer.using.Wikipedia...@item
1082a0 20 57 20 70 20 77 0a 40 6b 69 6e 64 65 78 20 57 20 70 20 77 20 28 65 6d 6d 73 2d 62 72 6f 77 73 .W.p.w.@kindex.W.p.w.(emms-brows
1082c0 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b 75 70 2d er).@findex.emms-browser-lookup-
1082e0 70 65 72 66 6f 72 6d 65 72 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 0a 4c 6f 6f 6b 75 70 20 74 68 performer-on-wikipedia.Lookup.th
108300 65 20 70 65 72 66 6f 72 6d 65 72 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 40 69 e.performer.using.Wikipedia...@i
108320 74 65 6d 20 57 20 61 20 77 0a 40 6b 69 6e 64 65 78 20 57 20 61 20 77 20 28 65 6d 6d 73 2d 62 72 tem.W.a.w.@kindex.W.a.w.(emms-br
108340 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6c 6f 6f 6b owser).@findex.emms-browser-look
108360 75 70 2d 61 6c 62 75 6d 2d 6f 6e 2d 77 69 6b 69 70 65 64 69 61 0a 4c 6f 6f 6b 75 70 20 74 68 65 up-album-on-wikipedia.Lookup.the
108380 20 61 6c 62 75 6d 20 75 73 69 6e 67 20 57 69 6b 69 70 65 64 69 61 2e 0a 0a 40 69 74 65 6d 20 2b .album.using.Wikipedia...@item.+
1083a0 0a 40 6b 69 6e 64 65 78 20 2b 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 .@kindex.+.(emms-browser).@finde
1083c0 78 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 0a 52 61 69 73 65 20 74 68 65 20 76 6f x.emms-volume-raise.Raise.the.vo
1083e0 6c 75 6d 65 0a 0a 40 69 74 65 6d 20 2d 0a 40 6b 69 6e 64 65 78 20 2d 20 28 65 6d 6d 73 2d 62 72 lume..@item.-.@kindex.-.(emms-br
108400 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 72 owser).@findex.emms-volume-lower
108420 0a 4c 6f 77 65 72 20 74 68 65 20 76 6f 6c 75 6d 65 0a 0a 40 69 74 65 6d 20 69 20 73 0a 40 6b 69 .Lower.the.volume..@item.i.s.@ki
108440 6e 64 65 78 20 69 20 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 ndex.i.s.(emms-browser).@findex.
108460 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 2d 70 72 69 6e 74 0a 50 72 69 6e 74 20 emms-filters-status-print.Print.
108480 77 68 61 74 20 69 73 20 6b 6e 6f 77 6e 20 61 62 6f 75 74 20 74 68 65 20 66 69 6c 74 65 72 73 20 what.is.known.about.the.filters.
1084a0 61 6e 64 20 63 61 63 68 65 0a 0a 40 69 74 65 6d 20 69 20 63 0a 40 6b 69 6e 64 65 78 20 69 20 63 and.cache..@item.i.c.@kindex.i.c
1084c0 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c .(emms-browser).@findex.emms-fil
1084e0 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 63 6b 0a 53 68 6f 77 20 74 68 65 20 63 ters-show-cache-stack.Show.the.c
108500 75 72 72 65 6e 74 20 73 65 61 72 63 68 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 urrent.search.cache.stack...@ite
108520 6d 20 69 20 53 0a 40 6b 69 6e 64 65 78 20 69 20 53 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 m.i.S.@kindex.i.S.(emms-browser)
108540 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 .@findex.emms-filters-show-cache
108560 2d 73 74 61 73 68 0a 53 68 6f 77 20 74 68 65 20 63 61 63 68 65 20 6e 61 6d 65 73 20 69 6e 20 74 -stash.Show.the.cache.names.in.t
108580 68 65 20 73 74 61 73 68 2e 0a 0a 40 69 74 65 6d 20 69 20 66 0a 40 6b 69 6e 64 65 78 20 69 20 66 he.stash...@item.i.f.@kindex.i.f
1085a0 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c .(emms-browser).@findex.emms-fil
1085c0 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 73 0a 53 68 6f 77 20 74 68 65 20 66 69 6c 74 65 ters-show-filters.Show.the.filte
1085e0 72 73 20 74 68 65 72 65 20 61 72 65 2e 0a 0a 40 69 74 65 6d 20 69 20 6d 0a 40 6b 69 6e 64 65 78 rs.there.are...@item.i.m.@kindex
108600 20 69 20 6d 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 .i.m.(emms-browser).@findex.emms
108620 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 0a 53 68 6f 77 20 74 -filters-show-filter-menu.Show.t
108640 68 65 20 6d 65 6e 75 20 74 72 65 65 20 6f 66 20 66 69 6c 74 65 72 73 20 61 73 20 61 20 6d 65 6e he.menu.tree.of.filters.as.a.men
108660 75 2e 0a 0a 40 69 74 65 6d 20 69 20 46 0a 40 6b 69 6e 64 65 78 20 69 20 46 20 28 65 6d 6d 73 2d u...@item.i.F.@kindex.i.F.(emms-
108680 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 browser).@findex.emms-filters-sh
1086a0 6f 77 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 65 73 0a 53 68 6f 77 20 74 68 65 20 66 69 6c ow-filter-factories.Show.the.fil
1086c0 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 77 65 20 68 61 76 65 2e 0a 0a 40 69 74 65 6d 20 69 20 ter.factories.we.have...@item.i.
1086e0 72 0a 40 6b 69 6e 64 65 78 20 69 20 72 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 r.@kindex.i.r.(emms-browser).@fi
108700 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 72 69 ndex.emms-filters-show-filter-ri
108720 6e 67 0a 53 68 6f 77 20 74 68 65 20 66 69 6c 74 65 72 73 20 69 6e 20 74 68 65 20 66 69 6c 74 65 ng.Show.the.filters.in.the.filte
108740 72 20 72 69 6e 67 2e 0a 0a 40 69 74 65 6d 20 66 20 71 0a 40 6b 69 6e 64 65 78 20 66 20 71 20 28 r.ring...@item.f.q.@kindex.f.q.(
108760 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 emms-browser).@findex.emms-filte
108780 72 73 2d 70 6f 70 0a 50 6f 70 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 72 65 74 75 rs-pop.Pop.the.filter.stack.retu
1087a0 72 6e 69 6e 67 20 74 6f 20 6c 61 73 74 20 66 69 6c 74 65 72 2e 0a 0a 40 69 74 65 6d 20 66 20 72 rning.to.last.filter...@item.f.r
1087c0 0a 40 6b 69 6e 64 65 78 20 66 20 72 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 .@kindex.f.r.@findex.emms-filter
1087e0 73 2d 73 77 61 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 52 65 76 65 72 73 65 20 74 68 s-swap.(emms-browser).Reverse.th
108800 65 20 6c 61 73 74 20 74 77 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 e.last.two.entries.in.the.filter
108820 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 66 20 52 0a 40 6b 69 6e 64 65 78 20 66 20 52 20 28 .stack...@item.f.R.@kindex.f.R.(
108840 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 emms-browser).@findex.emms-filte
108860 72 73 2d 73 77 61 70 2d 70 6f 70 20 3b 20 72 6f 74 61 74 65 2d 65 6a 65 63 74 2c 20 2c 70 6f 70 rs-swap-pop.;.rotate-eject,.,pop
108880 2d 70 72 65 76 69 6f 75 73 0a 52 65 76 65 72 73 65 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 65 -previous.Reverse.the.last.two.e
1088a0 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2c 20 61 6e 64 20 ntries.in.the.filter.stack,.and.
1088c0 70 6f 70 20 74 68 65 20 74 6f 70 20 6f 6e 65 2e 0a 0a 40 69 74 65 6d 20 66 20 53 0a 40 6b 69 6e pop.the.top.one...@item.f.S.@kin
1088e0 64 65 78 20 66 20 53 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 dex.f.S.(emms-browser).@findex.e
108900 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 0a 53 71 75 61 73 68 20 74 68 65 20 66 69 mms-filters-squash.Squash.the.fi
108920 6c 74 65 72 20 73 74 61 63 6b 2c 20 6b 65 65 70 20 74 68 65 20 74 6f 70 20 65 6e 74 72 79 2e 0a lter.stack,.keep.the.top.entry..
108940 0a 40 69 74 65 6d 20 66 20 6b 0a 40 6b 69 6e 64 65 78 20 66 20 6b 20 28 65 6d 6d 73 2d 62 72 6f .@item.f.k.@kindex.f.k.(emms-bro
108960 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b 65 65 70 0a wser).@findex.emms-filters-keep.
108980 52 65 67 69 73 74 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 69 6e 74 6f Register.the.current.filter.into
1089a0 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 20 66 6f 72 20 74 68 65 20 73 65 73 .the.list.of.filters.for.the.ses
1089c0 73 69 6f 6e 2e 0a 49 66 20 40 76 61 72 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 75 6c 74 69 sion..If.@var{emms-filters-multi
1089e0 2d 66 69 6c 74 65 72 2d 73 61 76 65 2d 66 69 6c 65 7d 20 69 73 20 73 65 74 2c 20 61 70 70 65 6e -filter-save-file}.is.set,.appen
108a00 64 20 74 68 65 20 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 20 74 68 65 72 65 2e 0a 0a d.the.filter.definition.there...
108a20 40 69 74 65 6d 20 66 20 68 0a 40 6b 69 6e 64 65 78 20 66 20 68 20 28 65 6d 6d 73 2d 62 72 6f 77 @item.f.h.@kindex.f.h.(emms-brow
108a40 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 ser).@findex.emms-filters-hard-f
108a60 69 6c 74 65 72 0a 42 75 69 6c 64 20 61 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 ilter.Build.a.cache.from.the.cur
108a80 72 65 6e 74 20 66 69 6c 74 65 72 20 61 6e 64 20 70 75 73 68 20 69 74 20 74 6f 20 74 68 65 20 63 rent.filter.and.push.it.to.the.c
108aa0 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 66 20 63 0a 40 6b 69 6e 64 65 78 20 66 ache.stack...@item.f.c.@kindex.f
108ac0 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 .c.(emms-browser).@findex.emms-f
108ae0 69 6c 74 65 72 73 2d 63 6c 65 61 72 0a 43 6c 65 61 72 20 74 68 65 20 6d 65 74 61 20 66 69 6c 74 ilters-clear.Clear.the.meta.filt
108b00 65 72 20 73 74 61 63 6b 20 61 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 er.stack.and.the.current.filter.
108b20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 40 69 74 65 6d 20 3e 0a 40 6b 69 6e 64 65 78 20 3e 20 28 65 6d function...@item.>.@kindex.>.(em
108b40 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ms-browser).@findex.emms-filters
108b60 2d 6e 65 78 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 0a 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 -next-ring-filter.Move.to.the.ne
108b80 78 74 20 66 69 6c 74 65 72 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 40 xt.filter.in.the.filter.ring...@
108ba0 69 74 65 6d 20 3c 0a 40 6b 69 6e 64 65 78 20 3c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a item.<.@kindex.<.(emms-browser).
108bc0 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 72 65 76 69 6f 75 73 2d 72 69 @findex.emms-filters-previous-ri
108be0 6e 67 2d 66 69 6c 74 65 72 0a 4d 6f 76 65 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 ng-filter.Move.to.the.previous.f
108c00 69 6c 74 65 72 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 40 69 74 65 6d ilter.in.the.filter.ring...@item
108c20 20 66 20 21 0a 40 6b 69 6e 64 65 78 20 66 20 21 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a .f.!.@kindex.f.!.(emms-browser).
108c40 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 72 69 6e 67 2d @findex.emms-filters-clear-ring-
108c60 66 69 6c 74 65 72 0a 53 65 74 20 74 68 65 20 72 69 6e 67 20 66 69 6c 74 65 72 20 74 6f 20 6e 6f filter.Set.the.ring.filter.to.no
108c80 20 66 69 6c 74 65 72 2e 0a 0a 40 69 74 65 6d 20 66 20 70 0a 40 6b 69 6e 64 65 78 20 66 20 70 20 .filter...@item.f.p.@kindex.f.p.
108ca0 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 (emms-browser).@findex.emms-filt
108cc0 65 72 73 2d 70 75 73 68 0a 50 75 73 68 20 61 20 66 69 6c 74 65 72 20 74 6f 20 74 68 65 20 6d 65 ers-push.Push.a.filter.to.the.me
108ce0 74 61 2d 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 66 20 73 0a 40 6b 69 6e ta-filter.stack...@item.f.s.@kin
108d00 64 65 78 20 66 20 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 dex.f.s.(emms-browser).@findex.e
108d20 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 6d 61 73 68 0a 43 6c 65 61 72 20 74 68 65 20 73 74 61 63 mms-filters-smash.Clear.the.stac
108d40 6b 20 61 6e 64 20 73 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 70 75 73 68 20 74 6f k.and.select.a.filter.to.push.to
108d60 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 66 20 6f 0a 40 6b 69 6e 64 65 78 20 66 .the.stack...@item.f.o.@kindex.f
108d80 20 6f 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 .o.(emms-browser).@findex.emms-f
108da0 69 6c 74 65 72 73 2d 6f 72 0a 41 64 64 20 61 20 66 69 6c 74 65 72 20 74 6f 20 74 68 65 20 63 75 ilters-or.Add.a.filter.to.the.cu
108dc0 72 72 65 6e 74 2f 6c 61 73 74 20 66 69 6c 74 65 72 20 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 rrent/last.filter.list.in.the.cu
108de0 72 72 65 6e 74 20 66 69 6c 74 65 72 2e 0a 43 72 65 61 74 65 73 20 61 6e 20 4f 52 2e 0a 0a 40 69 rrent.filter..Creates.an.OR...@i
108e00 74 65 6d 20 66 20 61 0a 40 6b 69 6e 64 65 78 20 66 20 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 tem.f.a.@kindex.f.a.(emms-browse
108e20 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 0a 53 65 6c 65 r).@findex.emms-filters-and.Sele
108e40 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 73 74 61 72 74 20 61 20 6e 65 77 20 6c 69 73 74 20 ct.a.filter.to.start.a.new.list.
108e60 6f 66 20 66 69 6c 74 65 72 73 2c 20 63 72 65 61 74 65 73 20 61 6e 20 41 4e 44 2e 0a 0a 40 69 74 of.filters,.creates.an.AND...@it
108e80 65 6d 20 66 20 6e 0a 40 6b 69 6e 64 65 78 20 66 20 6e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 em.f.n.@kindex.f.n.(emms-browser
108ea0 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 0a 53 ).@findex.emms-filters-and-not.S
108ec0 65 6c 65 63 74 20 61 20 66 69 6c 74 65 72 20 74 6f 20 73 74 61 72 74 20 61 20 6e 65 77 20 6c 69 elect.a.filter.to.start.a.new.li
108ee0 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2c 20 63 72 65 61 74 65 73 20 61 6e 20 41 4e 44 2d 4e 4f st.of.filters,.creates.an.AND-NO
108f00 54 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 0a 40 69 74 65 6d 20 63 20 43 0a 40 6b T.list.of.filters...@item.c.C.@k
108f20 69 6e 64 65 78 20 63 20 43 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 index.c.C.(emms-browser).@findex
108f40 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 61 6c 6c 0a 52 65 73 65 74 20 74 68 .emms-filters-clear-all.Reset.th
108f60 65 20 63 61 63 68 65 20 73 74 61 63 6b 2c 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 e.cache.stack,.the.filter.stack.
108f80 61 6e 64 20 74 68 65 20 66 69 6c 74 65 72 2d 72 69 6e 67 2e 0a 0a 40 69 74 65 6d 20 63 20 70 0a and.the.filter-ring...@item.c.p.
108fa0 40 6b 69 6e 64 65 78 20 63 20 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 @kindex.c.p.(emms-browser).@find
108fc0 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 0a 43 61 63 68 65 ex.emms-filters-push-cache.Cache
108fe0 2f 53 74 6f 72 65 20 61 20 66 69 6c 74 65 72 20 61 6e 64 20 63 61 63 68 65 20 74 6f 20 74 68 65 /Store.a.filter.and.cache.to.the
109000 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 63 20 7a 0a 40 6b 69 6e 64 65 78 20 63 20 7a 20 28 .stack...@item.c.z.@kindex.c.z.(
109020 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 emms-browser).@findex.emms-filte
109040 72 73 2d 73 74 61 73 68 2d 70 6f 70 2d 63 61 63 68 65 0a 53 74 61 73 68 20 74 68 65 20 63 75 72 rs-stash-pop-cache.Stash.the.cur
109060 72 65 6e 74 20 63 61 63 68 65 20 66 6f 72 20 6c 61 74 65 72 2c 20 70 6f 70 20 69 74 20 66 72 6f rent.cache.for.later,.pop.it.fro
109080 6d 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 63 20 5a 0a 40 6b 69 6e 64 65 78 20 m.the.stack...@item.c.Z.@kindex.
1090a0 63 20 5a 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d c.Z.(emms-browser).@findex.emms-
1090c0 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 68 65 0a 53 74 61 73 68 20 74 68 65 20 63 75 filters-stash-cache.Stash.the.cu
1090e0 72 72 65 6e 74 20 63 61 63 68 65 20 66 6f 72 20 6c 61 74 65 72 2e 0a 0a 40 69 74 65 6d 20 63 20 rrent.cache.for.later...@item.c.
109100 50 0a 40 6b 69 6e 64 65 78 20 63 20 50 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 P.@kindex.c.P.(emms-browser).@fi
109120 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 0a 50 6f 70 20 ndex.emms-filters-pop-cache.Pop.
109140 74 68 65 20 63 75 72 72 65 6e 74 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 73 74 61 63 6b the.current.cache.from.the.stack
109160 2e 0a 0a 40 69 74 65 6d 20 63 20 68 0a 40 6b 69 6e 64 65 78 20 63 20 68 20 28 65 6d 6d 73 2d 62 ...@item.c.h.@kindex.c.h.(emms-b
109180 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 68 61 72 rowser).@findex.emms-filters-har
1091a0 64 2d 66 69 6c 74 65 72 0a 43 72 65 61 74 65 20 61 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 d-filter.Create.a.cache.from.the
1091c0 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 61 6e 64 20 70 75 73 68 20 74 6f 20 74 68 65 20 .current.filter.and.push.to.the.
1091e0 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 63 20 72 0a 40 6b 69 6e 64 65 78 20 63 20 72 20 28 65 stack...@item.c.r.@kindex.c.r.(e
109200 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 mms-browser).@findex.emms-filter
109220 73 2d 73 77 61 70 2d 63 61 63 68 65 0a 53 77 61 70 20 74 68 65 20 74 6f 70 20 74 77 6f 20 63 61 s-swap-cache.Swap.the.top.two.ca
109240 63 68 65 73 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 63 20 71 0a 40 6b ches.on.the.stack...@item.c.q.@k
109260 69 6e 64 65 78 20 63 20 71 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 index.c.q.(emms-browser).@findex
109280 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 0a 50 6f 70 20 74 68 65 20 .emms-filters-pop-cache.Pop.the.
1092a0 74 6f 70 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d top.cache.from.the.stack...@item
1092c0 20 63 20 52 0a 40 6b 69 6e 64 65 78 20 63 20 52 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a .c.R.@kindex.c.R.(emms-browser).
1092e0 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 2d 63 61 @findex.emms-filters-swap-pop-ca
109300 63 68 65 0a 53 77 61 70 20 74 68 65 20 74 6f 70 20 74 77 6f 20 63 61 63 68 65 73 20 6f 6e 20 74 che.Swap.the.top.two.caches.on.t
109320 68 65 20 73 74 61 63 6b 2c 20 74 68 65 6e 20 70 6f 70 20 74 68 65 20 74 6f 70 20 6f 6e 65 2e 0a he.stack,.then.pop.the.top.one..
109340 0a 40 69 74 65 6d 20 63 20 53 0a 40 6b 69 6e 64 65 78 20 63 20 53 20 28 65 6d 6d 73 2d 62 72 6f .@item.c.S.@kindex.c.S.(emms-bro
109360 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 wser).@findex.emms-filters-squas
109380 68 2d 63 61 63 68 65 73 0a 53 71 75 61 73 68 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2c h-caches.Squash.the.cache.stack,
1093a0 20 6b 65 65 70 20 74 68 65 20 74 6f 70 20 65 6e 74 72 79 2e 0a 0a 40 69 74 65 6d 20 63 20 63 0a .keep.the.top.entry...@item.c.c.
1093c0 40 6b 69 6e 64 65 78 20 63 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 @kindex.c.c.(emms-browser).@find
1093e0 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 2d 63 61 63 68 65 73 0a 43 6c 65 ex.emms-filters-clear-caches.Cle
109400 61 72 20 61 6c 6c 20 74 68 65 20 63 61 63 68 65 73 20 64 6f 77 6e 20 74 6f 20 74 68 65 20 6d 61 ar.all.the.caches.down.to.the.ma
109420 69 6e 20 63 61 63 68 65 2e 0a 0a 40 69 74 65 6d 20 73 20 6f 0a 40 6b 69 6e 64 65 78 20 73 20 6f in.cache...@item.s.o.@kindex.s.o
109440 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c .(emms-browser).@findex.emms-fil
109460 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 41 20 66 69 65 ters-search-by-albumartist.A.fie
109480 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 41 lds.search,.quick.one-shot.for.A
1094a0 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 lbum.artist,.push.results.to.the
1094c0 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 73 20 61 0a 40 6b 69 6e 64 65 78 .cache.stack...@item.s.a.@kindex
1094e0 20 73 20 61 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 6d 66 2d 73 .s.a.(emms-browser).@findex.mf-s
109500 65 61 72 63 68 2d 62 79 2d 61 72 74 69 73 74 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c earch-by-artist.A.fields.search,
109520 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 41 72 74 69 73 74 2c 20 70 75 73 68 .quick.one-shot.for.Artist,.push
109540 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 .results.to.the.cache.stack...@i
109560 74 65 6d 20 73 20 63 0a 40 6b 69 6e 64 65 78 20 73 20 63 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 tem.s.c.@kindex.s.c.(emms-browse
109580 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 r).@findex.emms-filters-search-b
1095a0 79 2d 63 6f 6d 70 6f 73 65 72 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 y-composer.A.fields.search,.quic
1095c0 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 43 6f 6d 70 6f 73 65 72 2c 20 70 75 73 68 20 72 65 k.one-shot.for.Composer,.push.re
1095e0 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d sults.to.the.cache.stack...@item
109600 20 73 20 70 0a 40 6b 69 6e 64 65 78 20 73 20 70 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a .s.p.@kindex.s.p.(emms-browser).
109620 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 70 @findex.emms-filters-search-by-p
109640 65 72 66 6f 72 6d 65 72 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 erformer.A.fields.search,.quick.
109660 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 50 65 72 6d 66 6f 72 6d 65 72 2c 20 70 75 73 68 20 72 65 one-shot.for.Permformer,.push.re
109680 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d sults.to.the.cache.stack...@item
1096a0 20 73 20 41 0a 40 6b 69 6e 64 65 78 20 73 20 41 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a .s.A.@kindex.s.A.(emms-browser).
1096c0 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 61 @findex.emms-filters-search-by-a
1096e0 6c 62 75 6d 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d lbum.A.fields.search,.quick.one-
109700 73 68 6f 74 20 66 6f 72 20 41 6c 62 75 6d 20 74 69 74 6c 65 2c 20 70 75 73 68 20 72 65 73 75 6c shot.for.Album.title,.push.resul
109720 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 73 20 ts.to.the.cache.stack...@item.s.
109740 74 0a 40 6b 69 6e 64 65 78 20 73 20 74 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 t.@kindex.s.t.(emms-browser).@fi
109760 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c ndex.emms-filters-search-by-titl
109780 65 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f e.A.fields.search,.quick.one-sho
1097a0 74 20 66 6f 72 20 53 6f 6e 67 20 74 69 74 6c 65 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 t.for.Song.title,.push.results.t
1097c0 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 73 20 54 0a 40 6b o.the.cache.stack...@item.s.T.@k
1097e0 69 6e 64 65 78 20 73 20 54 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 index.s.T.(emms-browser).@findex
109800 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 74 69 74 6c 65 73 0a 41 .emms-filters-search-by-titles.A
109820 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 .fields.search,.quick.one-shot.f
109840 6f 72 20 41 6c 62 75 6d 20 61 6e 64 20 73 6f 6e 67 20 74 69 74 6c 65 73 2c 20 70 75 73 68 20 72 or.Album.and.song.titles,.push.r
109860 65 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 esults.to.the.cache.stack...@ite
109880 6d 20 73 20 6e 0a 40 6b 69 6e 64 65 78 20 73 20 6e 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 m.s.n.@kindex.s.n.(emms-browser)
1098a0 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d .@findex.emms-filters-search-by-
1098c0 6e 61 6d 65 73 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 names.A.fields.search,.quick.one
1098e0 2d 73 68 6f 74 20 66 6f 72 20 61 6c 6c 20 6e 61 6d 65 73 2c 20 70 75 73 68 20 72 65 73 75 6c 74 -shot.for.all.names,.push.result
109900 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 73 20 73 s.to.the.cache.stack...@item.s.s
109920 0a 40 6b 69 6e 64 65 78 20 73 20 73 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e .@kindex.s.s.(emms-browser).@fin
109940 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 73 dex.emms-filters-search-by-names
109960 2d 61 6e 64 2d 74 69 74 6c 65 0a 41 20 66 69 65 6c 64 73 20 73 65 61 72 63 68 2c 20 71 75 69 63 -and-title.A.fields.search,.quic
109980 6b 20 6f 6e 65 2d 73 68 6f 74 20 66 6f 72 20 61 6c 6c 20 6e 61 6d 65 73 20 61 6e 64 20 74 69 74 k.one-shot.for.all.names.and.tit
1099a0 6c 65 73 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 les,.push.results.to.the.cache.s
1099c0 74 61 63 6b 2e 0a 0a 40 69 74 65 6d 20 73 20 65 0a 40 6b 69 6e 64 65 78 20 73 20 65 20 28 65 6d tack...@item.s.e.@kindex.s.e.(em
1099e0 6d 73 2d 62 72 6f 77 73 65 72 29 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 ms-browser).@findex.emms-filters
109a00 2d 73 65 61 72 63 68 2d 62 79 2d 61 6c 6c 2d 74 65 78 74 0a 41 20 66 69 65 6c 64 73 20 73 65 61 -search-by-all-text.A.fields.sea
109a20 72 63 68 2c 20 71 75 69 63 6b 20 6f 6e 65 2d 73 68 6f 74 20 69 6e 20 61 6c 6c 20 74 65 78 74 20 rch,.quick.one-shot.in.all.text.
109a40 66 69 65 6c 64 73 2c 20 70 75 73 68 20 72 65 73 75 6c 74 73 20 74 6f 20 74 68 65 20 63 61 63 68 fields,.push.results.to.the.cach
109a60 65 20 73 74 61 63 6b 2e 0a 0a 40 65 6e 64 20 74 61 62 6c 65 0a 0a 40 6e 6f 64 65 20 44 69 73 70 e.stack...@end.table..@node.Disp
109a80 6c 61 79 69 6e 67 20 43 6f 76 65 72 73 0a 40 73 65 63 74 69 6f 6e 20 44 69 73 70 6c 61 79 69 6e laying.Covers.@section.Displayin
109aa0 67 20 43 6f 76 65 72 73 0a 0a 54 68 65 20 62 72 6f 77 73 65 72 20 77 69 6c 6c 20 61 74 74 65 6d g.Covers..The.browser.will.attem
109ac0 70 74 20 74 6f 20 64 69 73 70 6c 61 79 20 63 6f 76 65 72 20 69 6d 61 67 65 73 20 69 66 20 74 68 pt.to.display.cover.images.if.th
109ae0 65 79 27 72 65 0a 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 43 75 73 74 6f 6d 69 7a 65 20 40 76 61 72 ey're.available...Customize.@var
109b00 7b 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 7d 20 74 6f 20 63 6f 6e 66 69 67 75 {emms-browser-covers}.to.configu
109b20 72 65 20 68 6f 77 20 45 4d 4d 53 20 73 68 6f 75 6c 64 20 72 65 74 72 69 65 76 65 20 74 68 65 0a re.how.EMMS.should.retrieve.the.
109b40 63 6f 76 65 72 73 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 20 69 74 20 6c 6f 6f 6b 73 20 66 6f 72 covers...By.default.it.looks.for
109b60 20 69 6d 61 67 65 73 20 40 66 69 6c 65 7b 63 6f 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 7d 2c 20 .images.@file{cover_small.jpg},.
109b80 40 66 69 6c 65 7b 63 6f 76 65 72 5f 6d 65 64 2e 6a 70 67 7d 2c 0a 65 74 63 2e 20 4e 6f 74 65 20 @file{cover_med.jpg},.etc..Note.
109ba0 74 68 61 74 20 79 6f 75 27 6c 6c 20 70 72 6f 62 61 62 6c 79 20 77 61 6e 74 20 74 6f 20 72 65 73 that.you'll.probably.want.to.res
109bc0 69 7a 65 20 79 6f 75 72 20 65 78 69 73 74 69 6e 67 20 63 6f 76 65 72 73 20 74 6f 20 70 61 72 74 ize.your.existing.covers.to.part
109be0 69 63 75 6c 61 72 0a 73 69 7a 65 73 2e 20 53 75 67 67 65 73 74 65 64 20 73 69 7a 65 73 20 61 72 icular.sizes..Suggested.sizes.ar
109c00 65 20 31 30 30 78 31 30 30 20 66 6f 72 20 73 6d 61 6c 6c 2c 20 61 6e 64 20 32 30 30 78 32 30 30 e.100x100.for.small,.and.200x200
109c20 20 66 6f 72 20 6d 65 64 69 75 6d 2e 0a 0a 54 68 65 20 61 62 6f 76 65 20 62 65 68 61 76 69 6f 75 .for.medium...The.above.behaviou
109c40 72 20 64 65 6d 61 6e 64 73 20 6d 61 6e 75 61 6c 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 6e 20 62 r.demands.manual.processing.on.b
109c60 65 68 61 6c 66 20 6f 66 20 74 68 65 20 75 73 65 72 2e 20 20 49 6e 73 74 65 61 64 2c 0a 79 6f 75 ehalf.of.the.user...Instead,.you
109c80 20 6d 69 67 68 74 20 70 72 65 66 65 72 20 74 6f 20 61 75 74 6f 6d 61 74 65 20 74 68 65 20 70 72 .might.prefer.to.automate.the.pr
109ca0 6f 63 65 73 73 20 62 79 20 73 65 74 74 69 6e 67 20 40 76 61 72 7b 65 6d 6d 73 2d 62 72 6f 77 73 ocess.by.setting.@var{emms-brows
109cc0 65 72 2d 63 6f 76 65 72 73 7d 20 74 6f 0a 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 er-covers}.to.'emms-browser-cach
109ce0 65 2d 74 68 75 6d 62 6e 61 69 6c 27 3a 20 63 6f 76 65 72 73 20 6d 61 74 63 68 69 6e 67 20 27 65 e-thumbnail':.covers.matching.'e
109d00 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 66 69 6c 74 65 72 27 0a 77 69 mms-browser-thumbnail-filter'.wi
109d20 6c 6c 20 62 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 73 69 7a 65 64 20 69 66 20 6e ll.be.automatically.resized.if.n
109d40 65 63 65 73 73 61 72 79 20 61 6e 64 20 63 61 63 68 65 64 20 74 6f 0a 40 76 61 72 7b 65 6d 6d 73 ecessary.and.cached.to.@var{emms
109d60 2d 62 72 6f 77 73 65 72 2d 74 68 75 6d 62 6e 61 69 6c 2d 64 69 72 65 63 74 6f 72 79 7d 2e 20 20 -browser-thumbnail-directory}...
109d80 54 68 65 20 63 61 63 68 65 20 67 65 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 70 64 The.cache.gets.automatically.upd
109da0 61 74 65 64 0a 75 70 6f 6e 20 63 68 61 6e 67 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 66 ated.upon.change.in.the.source.f
109dc0 6f 6c 64 65 72 2e 0a 0a 43 75 73 74 6f 6d 69 7a 65 20 40 76 61 72 7b 65 6d 6d 73 2d 62 72 6f 77 older...Customize.@var{emms-brow
109de0 73 65 72 2d 63 6f 76 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 7d 20 74 6f 20 69 ser-covers-file-extensions}.to.i
109e00 6e 63 6c 75 64 65 20 6f 72 20 65 78 63 6c 75 64 65 0a 73 70 65 63 69 66 69 63 20 65 78 74 65 6e nclude.or.exclude.specific.exten
109e20 73 69 6f 6e 73 2e 0a 0a 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d sions...'emms-browser-cache-thum
109e40 62 6e 61 69 6c 27 20 6d 69 67 68 74 20 62 65 20 65 76 65 72 79 74 69 6d 65 20 61 20 63 6f 76 65 bnail'.might.be.everytime.a.cove
109e60 72 20 69 73 20 71 75 65 72 69 65 64 2c 20 73 6f 0a 74 6f 20 68 65 6c 70 20 77 69 74 68 20 70 65 r.is.queried,.so.to.help.with.pe
109e80 72 66 6f 72 6d 61 6e 63 65 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 65 74 20 40 76 61 72 7b rformance.you.can.also.set.@var{
109ea0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 65 72 73 7d 20 74 6f 0a 27 65 6d 6d 73 2d 62 72 emms-browser-covers}.to.'emms-br
109ec0 6f 77 73 65 72 2d 63 61 63 68 65 2d 74 68 75 6d 62 6e 61 69 6c 2d 61 73 79 6e 63 27 2e 20 20 54 owser-cache-thumbnail-async'...T
109ee0 68 65 20 6c 61 74 74 65 72 20 69 73 20 6c 69 6b 65 20 74 68 65 20 66 6f 72 6d 65 72 0a 65 78 63 he.latter.is.like.the.former.exc
109f00 65 70 74 20 74 68 61 74 20 69 74 20 63 61 63 68 65 73 20 71 75 65 72 69 65 73 3a 20 65 76 65 72 ept.that.it.caches.queries:.ever
109f20 79 20 73 75 62 73 65 71 75 65 6e 74 20 71 75 65 72 79 20 77 69 6c 6c 20 62 65 20 6d 75 63 68 0a y.subsequent.query.will.be.much.
109f40 66 61 73 74 65 72 2e 20 20 54 68 65 20 64 72 61 77 62 61 63 6b 20 69 73 20 74 68 61 74 20 69 74 faster...The.drawback.is.that.it
109f60 20 77 6f 6e 27 74 20 73 65 65 20 63 68 61 6e 67 65 73 20 6d 61 64 65 20 74 6f 20 63 6f 76 65 72 .won't.see.changes.made.to.cover
109f80 73 20 61 66 74 65 72 0a 74 68 65 20 66 69 72 73 74 20 71 75 65 72 79 2e 20 20 54 6f 20 66 6f 72 s.after.the.first.query...To.for
109fa0 63 65 2d 72 65 66 72 65 73 68 20 74 68 65 20 74 68 75 6d 62 6e 61 69 6c 20 63 61 63 68 65 2c 20 ce-refresh.the.thumbnail.cache,.
109fc0 79 6f 75 20 63 61 6e 20 72 75 6e 0a 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6c 65 61 72 2d you.can.run.'emms-browser-clear-
109fe0 63 61 63 68 65 2d 68 61 73 68 27 2e 0a 0a 41 6c 73 6f 2c 20 45 6d 61 63 73 20 62 79 20 64 65 66 cache-hash'...Also,.Emacs.by.def
10a000 61 75 6c 74 20 77 69 6c 6c 20 6a 75 6d 70 20 61 72 6f 75 6e 64 20 61 20 6c 6f 74 20 77 68 65 6e ault.will.jump.around.a.lot.when
10a020 20 73 63 72 6f 6c 6c 69 6e 67 20 61 20 62 75 66 66 65 72 0a 77 69 74 68 20 69 6d 61 67 65 73 2e .scrolling.a.buffer.with.images.
10a040 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 74 68 61 74 2c 20 79 6f 75 20 63 .In.order.to.prevent.that,.you.c
10a060 61 6e 20 73 65 74 0a 40 76 61 72 7b 73 63 72 6f 6c 6c 2d 75 70 2d 61 67 67 72 65 73 73 69 76 65 an.set.@var{scroll-up-aggressive
10a080 6c 79 7d 20 61 6e 64 20 40 76 61 72 7b 73 63 72 6f 6c 6c 2d 64 6f 77 6e 2d 61 67 67 72 65 73 73 ly}.and.@var{scroll-down-aggress
10a0a0 69 76 65 6c 79 7d 20 74 6f 20 74 68 65 0a 6e 75 6d 62 65 72 20 60 60 30 2e 30 27 27 2e 0a 0a 54 ively}.to.the.number.``0.0''...T
10a0c0 6f 20 73 68 6f 77 20 61 20 27 6e 6f 20 63 6f 76 65 72 27 20 69 6d 61 67 65 20 66 6f 72 20 61 6c o.show.a.'no.cover'.image.for.al
10a0e0 62 75 6d 73 20 77 68 69 63 68 20 64 6f 6e 27 74 20 68 61 76 65 20 61 20 63 6f 76 65 72 2c 20 61 bums.which.don't.have.a.cover,.a
10a100 64 64 0a 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 74 6f 20 79 6f 75 72 20 2e 65 dd.the.following.code.to.your..e
10a120 6d 61 63 73 3a 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d macs:..@lisp.(setq.emms-browser-
10a140 64 65 66 61 75 6c 74 2d 63 6f 76 65 72 73 0a 20 20 28 6c 69 73 74 20 22 2f 70 61 74 68 2f 74 6f default-covers...(list."/path/to
10a160 2f 63 6f 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 22 20 6e 69 6c 20 6e 69 6c 29 0a 40 65 6e 64 20 /cover_small.jpg".nil.nil).@end.
10a180 6c 69 73 70 0a 0a 54 68 65 20 6d 65 64 69 75 6d 20 61 6e 64 20 6c 61 72 67 65 20 69 6d 61 67 65 lisp..The.medium.and.large.image
10a1a0 73 20 63 61 6e 20 62 65 20 73 65 74 20 61 73 20 77 65 6c 6c 2e 0a 0a 59 6f 75 20 63 61 6e 20 64 s.can.be.set.as.well...You.can.d
10a1c0 6f 77 6e 6c 6f 61 64 20 61 6e 20 65 78 61 6d 70 6c 65 20 40 75 72 65 66 7b 68 74 74 70 3a 2f 2f ownload.an.example.@uref{http://
10a1e0 72 65 70 6f 73 65 2e 63 78 2f 63 6f 76 65 72 5f 73 6d 61 6c 6c 2e 6a 70 67 2c 0a 60 6e 6f 20 63 repose.cx/cover_small.jpg,.`no.c
10a200 6f 76 65 72 27 20 69 6d 61 67 65 7d 2e 0a 0a 0a 0a 40 6e 6f 64 65 20 43 68 61 6e 67 69 6e 67 20 over'.image}.....@node.Changing.
10a220 4c 6f 6f 6b 73 0a 40 73 65 63 74 69 6f 6e 20 43 68 61 6e 67 69 6e 67 20 4c 6f 6f 6b 73 0a 0a 54 Looks.@section.Changing.Looks..T
10a240 68 65 20 42 72 6f 77 73 65 72 27 73 20 6c 6f 6f 6b 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d 69 he.Browser's.look.can.be.customi
10a260 73 65 64 2e 20 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 74 68 65 20 sed..You.can.change.the.way.the.
10a280 74 72 65 65 0a 73 74 72 75 63 74 75 72 65 20 6c 6f 6f 6b 73 2c 20 74 68 65 20 64 69 73 70 6c 61 tree.structure.looks,.the.displa
10a2a0 79 20 66 6f 72 6d 61 74 20 61 6e 64 20 64 69 73 70 6c 61 79 20 66 61 63 65 73 2e 0a 0a 40 73 75 y.format.and.display.faces...@su
10a2c0 62 68 65 61 64 69 6e 67 20 43 68 61 6e 67 69 6e 67 20 54 72 65 65 20 53 74 72 75 63 74 75 72 65 bheading.Changing.Tree.Structure
10a2e0 0a 0a 59 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 74 68 65 20 74 72 65 ..You.can.change.the.way.the.tre
10a300 65 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 76 61 e.is.displayed.by.setting.the.va
10a320 6c 75 65 20 6f 66 0a 40 76 61 72 7b 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f lue.of.@var{emms-browser-tree-no
10a340 64 65 2d 6d 61 70 7d 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 62 72 6f 77 73 65 de-map}..@lisp.(setq.emms-browse
10a360 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 74 72 65 r-tree-node-map.emms-browser-tre
10a380 65 2d 6e 6f 64 65 2d 6d 61 70 2d 64 65 66 61 75 6c 74 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 e-node-map-default).@end.lisp..T
10a3a0 68 65 20 6e 6f 64 65 20 6d 61 70 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 74 72 65 65 20 61 he.node.map.specifies.the.tree.a
10a3c0 73 20 61 6e 20 61 6c 69 73 74 2e 0a 46 6f 6c 6c 6f 77 20 74 68 65 20 63 68 61 69 6e 20 6f 66 20 s.an.alist..Follow.the.chain.of.
10a3e0 66 69 65 6c 64 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 62 72 6f 77 73 65 20 fields.from.the.starting.browse.
10a400 74 79 70 65 0a 74 6f 20 73 65 65 20 68 6f 77 20 74 68 65 20 62 72 6f 77 73 65 72 20 74 72 65 65 type.to.see.how.the.browser.tree
10a420 20 77 69 6c 6c 20 62 65 20 62 75 69 6c 74 2e 20 69 65 2e 20 53 74 61 72 74 69 6e 67 20 77 69 74 .will.be.built..ie..Starting.wit
10a440 68 0a 61 6c 62 75 6d 20 61 72 74 69 73 74 20 79 69 65 6c 64 73 20 61 20 74 72 65 65 20 77 69 74 h.album.artist.yields.a.tree.wit
10a460 68 20 61 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 61 72 74 69 73 74 20 61 6e 64 20 61 6c 62 75 6d h.album.artist,.artist.and.album
10a480 20 61 73 20 6e 6f 64 65 73 2e 0a 0a 40 6c 69 73 70 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 .as.nodes...@lisp.(defvar.emms-b
10a4a0 72 6f 77 73 65 72 2d 74 72 65 65 2d 6e 6f 64 65 2d 6d 61 70 2d 64 65 66 61 75 6c 74 0a 20 20 20 rowser-tree-node-map-default....
10a4c0 20 20 20 27 28 28 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 69 6e 66 6f 2d 61 72 ...'((info-albumartist...info-ar
10a4e0 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 tist).........(info-artist......
10a500 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 ..info-album).........(info-comp
10a520 6f 73 65 72 20 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 20 20 28 69 oser......info-album).........(i
10a540 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 20 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 nfo-performer.....info-album)...
10a560 20 20 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 74 ......(info-album.........info-t
10a580 69 74 6c 65 29 0a 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 20 20 20 20 20 20 itle).........(info-genre.......
10a5a0 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 ..info-artist).........(info-yea
10a5c0 72 20 20 20 20 20 20 20 20 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 29 0a 40 65 6e 64 20 6c r..........info-artist))).@end.l
10a5e0 69 73 70 0a 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 64 69 73 70 6c 61 79 isp...The.following.code.display
10a600 73 20 61 72 74 69 73 74 2d 3e 74 72 61 63 6b 20 69 6e 73 74 65 61 64 20 6f 66 0a 61 72 74 69 73 s.artist->track.instead.of.artis
10a620 74 2d 3e 61 6c 62 75 6d 2d 3e 74 72 61 63 6b 20 77 68 65 6e 20 79 6f 75 20 73 77 69 74 63 68 20 t->album->track.when.you.switch.
10a640 74 6f 20 74 68 65 20 27 73 69 6e 67 6c 65 73 27 20 66 69 6c 74 65 72 3a 0a 0a 40 6c 69 73 70 0a to.the.'singles'.filter:..@lisp.
10a660 28 64 65 66 61 64 76 69 63 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6d 61 70 (defadvice.emms-browser-next-map
10a680 70 69 6e 67 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ping-type.......................
10a6a0 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 6e 6f 2d 61 6c 62 75 6d 20 28 63 75 72 72 65 ..........(after.no-album.(curre
10a6c0 6e 74 2d 6d 61 70 70 69 6e 67 29 29 0a 20 20 28 77 68 65 6e 20 28 65 71 20 61 64 2d 72 65 74 75 nt-mapping))...(when.(eq.ad-retu
10a6e0 72 6e 2d 76 61 6c 75 65 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 28 73 65 74 71 20 rn-value.'info-album).....(setq.
10a700 61 64 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 0a 40 ad-return-value.'info-title))).@
10a720 65 6e 64 20 6c 69 73 70 0a 0a 40 6c 69 73 70 0a 28 64 65 66 75 6e 20 74 6f 67 67 6c 65 2d 61 6c end.lisp..@lisp.(defun.toggle-al
10a740 62 75 6d 2d 64 69 73 70 6c 61 79 20 28 29 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 65 6d bum-display.()...(if.(string=.em
10a760 6d 73 2d 62 72 6f 77 73 65 72 2d 63 75 72 72 65 6e 74 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 20 22 ms-browser-current-filter-name."
10a780 73 69 6e 67 6c 65 73 22 29 0a 20 20 20 20 20 20 28 61 64 2d 61 63 74 69 76 61 74 65 20 27 65 6d singles").......(ad-activate.'em
10a7a0 6d 73 2d 62 72 6f 77 73 65 72 2d 6e 65 78 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 29 0a 20 20 ms-browser-next-mapping-type)...
10a7c0 20 20 28 61 64 2d 64 65 61 63 74 69 76 61 74 65 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6e ..(ad-deactivate.'emms-browser-n
10a7e0 65 78 74 2d 6d 61 70 70 69 6e 67 2d 74 79 70 65 29 29 29 0a 0a 3b 3b 20 44 65 70 72 65 63 61 74 ext-mapping-type)))..;;.Deprecat
10a800 65 64 20 75 73 65 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 68 6f 6f 6b 20 69 6e 73 ed.use.the.emms-filters.hook.ins
10a820 74 65 61 64 2e 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 73 65 72 tead..;;.(add-hook.'emms-browser
10a840 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 27 74 6f 67 67 6c 65 2d 61 6c 62 -filter-changed-hook.'toggle-alb
10a860 75 6d 2d 64 69 73 70 6c 61 79 29 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 um-display).(add-hook.'emms-filt
10a880 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 27 74 6f 67 67 6c 65 2d ers-filter-changed-hook.'toggle-
10a8a0 61 6c 62 75 6d 2d 64 69 73 70 6c 61 79 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 46 75 72 74 68 65 album-display).@end.lisp..Furthe
10a8c0 72 6d 6f 72 65 2c 20 79 6f 75 20 63 61 6e 20 63 75 73 74 6f 6d 69 7a 65 0a 40 76 61 72 7b 65 6d rmore,.you.can.customize.@var{em
10a8e0 6d 73 2d 62 72 6f 77 73 65 72 2d 67 65 74 2d 74 72 61 63 6b 2d 66 69 65 6c 64 2d 66 75 6e 63 74 ms-browser-get-track-field-funct
10a900 69 6f 6e 7d 20 74 6f 20 63 68 6f 6f 73 65 20 77 68 69 63 68 20 74 68 65 20 6d 65 74 61 64 61 74 ion}.to.choose.which.the.metadat
10a920 61 0a 66 69 65 6c 64 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 a.fields.used.for.the.different.
10a940 74 72 65 65 20 6e 6f 64 65 73 20 28 40 63 6f 64 65 7b 27 69 6e 66 6f 2d 61 72 74 69 73 74 7d 2c tree.nodes.(@code{'info-artist},
10a960 0a 40 63 6f 64 65 7b 69 6e 66 6f 2d 79 65 61 72 7d 2c 20 65 74 63 2e 29 2e 20 20 46 6f 72 20 69 .@code{info-year},.etc.)...For.i
10a980 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 63 61 6e 20 63 68 6f 6f 73 65 20 77 68 65 74 68 65 72 20 nstance,.you.can.choose.whether.
10a9a0 74 6f 0a 6f 72 67 61 6e 69 7a 65 20 74 68 65 20 74 72 65 65 20 62 79 20 61 72 74 69 73 74 2c 20 to.organize.the.tree.by.artist,.
10a9c0 61 6c 62 75 6d 20 61 72 74 69 73 74 20 6f 72 20 70 65 72 66 6f 72 6d 65 72 2e 0a 0a 40 73 75 62 album.artist.or.performer...@sub
10a9e0 68 65 61 64 69 6e 67 20 43 68 61 6e 67 69 6e 67 20 44 69 73 70 6c 61 79 20 46 6f 72 6d 61 74 0a heading.Changing.Display.Format.
10aa00 0a 46 6f 72 6d 61 74 20 73 74 72 69 6e 67 73 20 67 6f 76 65 72 6e 20 74 68 65 20 77 61 79 20 69 .Format.strings.govern.the.way.i
10aa20 74 65 6d 73 20 61 72 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 tems.are.displayed.in.the.browse
10aa40 72 20 61 6e 64 0a 70 6c 61 79 6c 69 73 74 2e 20 59 6f 75 20 63 61 6e 20 63 75 73 74 6f 6d 69 7a r.and.playlist..You.can.customiz
10aa60 65 20 74 68 65 73 65 20 69 66 20 79 6f 75 20 77 69 73 68 2e 0a 0a 40 76 61 72 7b 65 6d 6d 73 2d e.these.if.you.wish...@var{emms-
10aa80 62 72 6f 77 73 65 72 2d 64 65 66 61 75 6c 74 2d 66 6f 72 6d 61 74 7d 20 63 6f 6e 74 72 6f 6c 73 browser-default-format}.controls
10aaa0 20 74 68 65 20 66 6f 72 6d 61 74 20 74 6f 20 75 73 65 20 77 68 65 6e 20 6e 6f 0a 6f 74 68 65 72 .the.format.to.use.when.no.other
10aac0 20 66 6f 72 6d 61 74 20 68 61 73 20 62 65 65 6e 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 66 69 .format.has.been.explicitly.defi
10aae0 6e 65 64 2e 20 42 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 74 72 61 63 6b 20 61 6e 64 0a ned..By.default,.only.track.and.
10ab00 61 6c 62 75 6d 73 20 64 65 76 69 61 74 65 20 66 72 6f 6d 20 74 68 65 20 64 65 66 61 75 6c 74 2e albums.deviate.from.the.default.
10ab20 0a 0a 54 6f 20 63 75 73 74 6f 6d 69 73 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 61 20 70 ..To.customise.the.format.of.a.p
10ab40 61 72 74 69 63 75 6c 61 72 20 74 79 70 65 2c 20 66 69 6e 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 articular.type,.find.the.name.of
10ab60 20 74 68 65 0a 66 69 65 6c 64 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 28 65 67 20 60 .the.field.you.want.to.use.(eg.`
10ab80 69 6e 66 6f 2d 61 72 74 69 73 74 27 2c 20 60 69 6e 66 6f 2d 74 69 74 6c 65 27 2c 20 65 74 63 29 info-artist',.`info-title',.etc)
10aba0 2c 20 61 6e 64 0a 69 6e 73 65 72 74 20 74 68 61 74 20 69 6e 74 6f 20 65 6d 6d 73 2d 62 72 6f 77 ,.and.insert.that.into.emms-brow
10abc0 73 65 72 2d 3c 74 79 70 65 3e 2d 66 6f 72 6d 61 74 20 6f 72 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 ser-<type>-format.or.emms-browse
10abe0 72 2d 70 6c 61 79 6c 69 73 74 2d 3c 74 79 70 65 3e 2d 66 6f 72 6d 61 74 2e 20 46 6f 72 20 65 78 r-playlist-<type>-format..For.ex
10ac00 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 77 61 6e 74 65 64 20 74 6f 0a 72 65 6d 6f 76 65 20 74 ample,.if.you.wanted.to.remove.t
10ac20 72 61 63 6b 20 6e 75 6d 62 65 72 73 20 66 72 6f 6d 20 74 72 61 63 6b 73 20 69 6e 20 62 6f 74 68 rack.numbers.from.tracks.in.both
10ac40 20 74 68 65 20 62 72 6f 77 73 65 72 20 61 6e 64 20 70 6c 61 79 6c 69 73 74 2c 20 79 6f 75 0a 63 .the.browser.and.playlist,.you.c
10ac60 6f 75 6c 64 20 64 6f 3a 0a 0a 40 6c 69 73 70 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f ould.do:..@lisp.(defvar.emms-bro
10ac80 77 73 65 72 2d 69 6e 66 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 20 22 25 69 25 6e 22 29 0a 28 wser-info-title-format."%i%n").(
10aca0 64 65 66 76 61 72 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 66 defvar.emms-browser-playlist-inf
10acc0 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 0a 20 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 69 6e o-title-format...emms-browser-in
10ace0 66 6f 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 20 fo-title-format).@end.lisp..The.
10ad00 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 63 6c format.specifiers.available.incl
10ad20 75 64 65 3a 0a 0a 40 69 74 65 6d 69 7a 65 20 40 77 7b 7d 0a 0a 40 69 74 65 6d 0a 25 69 20 20 20 ude:..@itemize.@w{}..@item.%i...
10ad40 20 69 6e 64 65 6e 74 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 .indent.relative.to.the.current.
10ad60 6c 65 76 65 6c 0a 0a 40 69 74 65 6d 0a 25 6e 20 20 20 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 level..@item.%n....the.value.of.
10ad80 74 68 65 20 69 74 65 6d 20 2d 20 65 67 20 2d 69 6e 66 6f 2d 61 72 74 69 73 74 20 6d 69 67 68 74 the.item.-.eg.-info-artist.might
10ada0 20 62 65 20 60 60 70 69 6e 6b 20 66 6c 6f 79 64 27 27 0a 0a 40 69 74 65 6d 0a 25 79 20 20 20 20 .be.``pink.floyd''..@item.%y....
10adc0 74 68 65 20 61 6c 62 75 6d 20 79 65 61 72 0a 0a 40 69 74 65 6d 0a 25 41 20 20 20 20 74 68 65 20 the.album.year..@item.%A....the.
10ade0 61 6c 62 75 6d 20 6e 61 6d 65 0a 0a 40 69 74 65 6d 0a 25 61 20 20 20 20 74 68 65 20 61 72 74 69 album.name..@item.%a....the.arti
10ae00 73 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 0a 25 6f 20 20 20 20 74 68 65 20 st.name.of.the.track..%o....the.
10ae20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 6e 61 6d 65 0a 40 69 74 65 6d 0a 0a 40 69 74 65 6d 0a 25 album.artist.name.@item..@item.%
10ae40 74 20 20 20 20 74 68 65 20 74 69 74 6c 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a 0a 40 69 74 t....the.title.of.the.track..@it
10ae60 65 6d 0a 25 6f 20 20 20 20 74 68 65 20 67 65 6e 72 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 0a em.%o....the.genre.of.the.track.
10ae80 0a 40 69 74 65 6d 0a 25 54 20 20 20 20 74 68 65 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0a 0a 40 .@item.%T....the.track.number..@
10aea0 69 74 65 6d 0a 25 63 53 20 20 20 61 20 73 6d 61 6c 6c 20 61 6c 62 75 6d 20 63 6f 76 65 72 0a 0a item.%cS...a.small.album.cover..
10aec0 40 69 74 65 6d 0a 25 63 4d 20 20 20 61 20 6d 65 64 69 75 6d 20 61 6c 62 75 6d 20 63 6f 76 65 72 @item.%cM...a.medium.album.cover
10aee0 0a 0a 40 69 74 65 6d 0a 25 63 4c 20 20 20 61 20 62 69 67 20 61 6c 62 75 6d 20 63 6f 76 65 72 0a ..@item.%cL...a.big.album.cover.
10af00 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 4e 6f 74 65 20 74 68 61 74 20 69 66 20 79 6f 75 20 75 @end.itemize..Note.that.if.you.u
10af20 73 65 20 74 72 61 63 6b 2d 72 65 6c 61 74 65 64 20 69 74 65 6d 73 20 6c 69 6b 65 20 25 74 2c 20 se.track-related.items.like.%t,.
10af40 69 74 20 77 69 6c 6c 20 74 61 6b 65 20 74 68 65 0a 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 66 it.will.take.the.data.from.the.f
10af60 69 72 73 74 20 74 72 61 63 6b 2e 0a 0a 40 73 75 62 68 65 61 64 69 6e 67 20 43 68 61 6e 67 69 6e irst.track...@subheading.Changin
10af80 67 20 44 69 73 70 6c 61 79 20 46 61 63 65 73 0a 0a 54 68 65 20 66 61 63 65 73 20 75 73 65 64 20 g.Display.Faces..The.faces.used.
10afa0 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 76 61 72 69 6f 75 73 20 66 69 65 6c 64 73 20 61 72 to.display.the.various.fields.ar
10afc0 65 20 61 6c 73 6f 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 2e 0a 54 68 65 79 20 61 72 65 20 69 6e e.also.customizable..They.are.in
10afe0 20 74 68 65 20 66 6f 72 6d 61 74 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 3c 74 79 70 65 3e 2d .the.format.emms-browser-<type>-
10b000 66 61 63 65 2c 20 77 68 65 72 65 20 74 79 70 65 20 69 73 20 6f 6e 65 20 6f 66 0a 22 79 65 61 72 face,.where.type.is.one.of."year
10b020 2f 67 65 6e 72 65 22 2c 20 22 61 72 74 69 73 74 22 2c 20 22 61 6c 62 75 6d 22 20 6f 72 20 22 74 /genre",."artist",."album".or."t
10b040 72 61 63 6b 22 2e 20 4e 6f 74 65 20 74 68 61 74 20 66 61 63 65 73 20 6c 61 63 6b 20 74 68 65 0a rack"..Note.that.faces.lack.the.
10b060 69 6e 69 74 69 61 6c 20 22 69 6e 66 6f 2d 22 20 70 61 72 74 2e 20 46 6f 72 20 65 78 61 6d 70 6c initial."info-".part..For.exampl
10b080 65 2c 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 61 72 74 69 73 74 20 66 61 63 65 2c 20 74 79 e,.to.change.the.artist.face,.ty
10b0a0 70 65 20 4d 2d 78 0a 40 63 6f 6d 6d 61 6e 64 7b 63 75 73 74 6f 6d 69 7a 65 2d 66 61 63 65 7d 20 pe.M-x.@command{customize-face}.
10b0c0 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 61 72 74 69 73 74 2d 66 61 63 @command{emms-browser-artist-fac
10b0e0 65 7d 2e 0a 0a 40 6e 6f 64 65 20 46 69 6c 74 65 72 69 6e 67 20 54 72 61 63 6b 73 20 2d 20 64 65 e}...@node.Filtering.Tracks.-.de
10b100 70 72 65 63 61 74 65 64 0a 40 73 65 63 74 69 6f 6e 20 46 69 6c 74 65 72 69 6e 67 20 54 72 61 63 precated.@section.Filtering.Trac
10b120 6b 73 20 2d 20 64 65 70 72 65 63 61 74 65 64 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 ks.-.deprecated..Note.that.these
10b140 20 61 72 65 20 74 68 65 20 64 69 72 65 63 74 69 6f 6e 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 .are.the.directions.for.creating
10b160 20 66 69 6c 74 65 72 73 20 66 72 6f 6d 20 74 68 65 20 62 72 6f 77 73 65 72 0a 41 50 49 20 77 68 .filters.from.the.browser.API.wh
10b180 69 63 68 20 6e 6f 77 20 77 6f 72 6b 73 20 74 68 72 6f 75 67 68 20 74 68 65 20 45 6d 6d 73 2d 66 ich.now.works.through.the.Emms-f
10b1a0 69 6c 74 65 72 73 20 73 79 73 74 65 6d 2e 0a 0a 54 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 20 ilters.system...The.Emms-filter.
10b1c0 73 79 73 74 65 6d 20 6f 62 73 6f 6c 65 74 65 73 20 74 68 69 73 20 6d 65 74 68 6f 64 20 6f 66 20 system.obsoletes.this.method.of.
10b1e0 63 72 65 61 74 69 6e 67 20 66 69 6c 74 65 72 73 2e 0a 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 creating.filters..However,.it.is
10b200 20 73 74 69 6c 6c 20 76 61 6c 69 64 2c 20 61 6e 64 20 77 69 6c 6c 20 77 6f 72 6b 20 69 66 20 79 .still.valid,.and.will.work.if.y
10b220 6f 75 20 68 61 76 65 20 66 69 6c 74 65 72 73 20 64 65 66 69 6e 65 64 0a 69 6e 20 74 68 69 73 20 ou.have.filters.defined.in.this.
10b240 77 61 79 2e 0a 0a 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 68 61 74 20 74 68 65 way...It.is.recommended.that.the
10b260 20 6e 65 77 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 69 73 20 75 73 65 64 20 64 69 72 65 63 .new.filter.system.is.used.direc
10b280 74 6c 79 20 72 61 74 68 65 72 0a 74 68 61 6e 20 62 75 69 6c 64 69 6e 67 20 66 69 6c 74 65 72 73 tly.rather.than.building.filters
10b2a0 20 69 6e 20 74 68 69 73 20 77 61 79 2e 0a 0a 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 69 .in.this.way...If.you.want.to.di
10b2c0 73 70 6c 61 79 20 61 20 73 75 62 73 65 74 20 6f 66 20 79 6f 75 72 20 63 6f 6c 6c 65 63 74 69 6f splay.a.subset.of.your.collectio
10b2e0 6e 20 28 73 75 63 68 20 61 73 20 61 0a 64 69 72 65 63 74 6f 72 79 20 6f 66 20 38 30 73 20 6d 75 n.(such.as.a.directory.of.80s.mu
10b300 73 69 63 2c 20 6f 6e 6c 79 20 61 76 69 20 66 69 6c 65 73 2c 20 65 74 63 2e 29 20 74 68 65 6e 20 sic,.only.avi.files,.etc.).then.
10b320 79 6f 75 20 63 61 6e 20 65 78 74 65 6e 64 20 74 68 65 0a 42 72 6f 77 73 65 72 20 62 79 20 64 65 you.can.extend.the.Browser.by.de
10b340 66 69 6e 69 6e 67 20 60 60 66 69 6c 74 65 72 73 27 27 2e 0a 0a 53 68 6f 77 20 65 76 65 72 79 74 fining.``filters''...Show.everyt
10b360 68 69 6e 67 3a 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d hing:..@lisp.(emms-browser-make-
10b380 66 69 6c 74 65 72 20 22 61 6c 6c 22 20 27 69 67 6e 6f 72 65 29 0a 40 65 6e 64 20 6c 69 73 70 0a filter."all".'ignore).@end.lisp.
10b3a0 0a 53 65 74 20 22 61 6c 6c 22 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c 74 65 72 .Set."all".as.the.default.filter
10b3c0 3a 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 65 74 2d 66 69 6c 74 65 :..@lisp.(emms-browser-set-filte
10b3e0 72 20 28 61 73 73 6f 63 20 22 61 6c 6c 22 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 r.(assoc."all".emms-browser-filt
10b400 65 72 73 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 53 68 6f 77 20 61 6c 6c 20 66 69 6c 65 73 20 ers)).@end.lisp..Show.all.files.
10b420 28 6e 6f 20 73 74 72 65 61 6d 6c 69 73 74 73 2c 20 65 74 63 29 3a 0a 0a 40 6c 69 73 70 0a 28 65 (no.streamlists,.etc):..@lisp.(e
10b440 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 0a 20 22 61 6c 6c 2d 66 69 mms-browser-make-filter.."all-fi
10b460 6c 65 73 22 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 74 les".(emms-browser-filter-only-t
10b480 79 70 65 20 27 66 69 6c 65 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 53 68 6f 77 20 6f 6e 6c 79 ype.'file)).@end.lisp..Show.only
10b4a0 20 74 72 61 63 6b 73 20 69 6e 20 6f 6e 65 20 66 6f 6c 64 65 72 3a 0a 0a 40 6c 69 73 70 0a 28 65 .tracks.in.one.folder:..@lisp.(e
10b4c0 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 0a 20 22 38 30 73 22 20 28 mms-browser-make-filter.."80s".(
10b4e0 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 64 69 72 20 22 7e 2f emms-browser-filter-only-dir."~/
10b500 4d 70 33 73 2f 38 30 73 22 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 53 68 6f 77 20 61 6c 6c 20 Mp3s/80s")).@end.lisp..Show.all.
10b520 74 72 61 63 6b 73 20 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 6c 61 73 74 20 6d 6f 6e 74 68 3a tracks.played.in.the.last.month:
10b540 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 ..@lisp.(emms-browser-make-filte
10b560 72 0a 20 22 6c 61 73 74 2d 6d 6f 6e 74 68 22 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 r.."last-month".(emms-browser-fi
10b580 6c 74 65 72 2d 6f 6e 6c 79 2d 72 65 63 65 6e 74 20 33 30 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a lter-only-recent.30)).@end.lisp.
10b5a0 0a 41 66 74 65 72 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 61 62 6f 76 65 20 63 6f 6d 6d 61 .After.executing.the.above.comma
10b5c0 6e 64 73 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 4d 2d 78 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 nds,.you.can.use.M-x.emms-browse
10b5e0 72 2d 73 68 6f 77 2d 61 6c 6c 2c 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 73 68 6f 77 2d 38 30 r-show-all,.emms-browser-show-80
10b600 73 2c 20 65 74 63 20 74 6f 20 74 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 0a 64 69 66 66 65 72 65 s,.etc.to.toggle.between.differe
10b620 6e 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 2e 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 79 6f nt.collections..Alternatively.yo
10b640 75 20 63 61 6e 20 75 73 65 20 27 3c 27 20 61 6e 64 20 27 3e 27 20 74 6f 20 63 79 63 6c 65 0a 74 u.can.use.'<'.and.'>'.to.cycle.t
10b660 68 72 6f 75 67 68 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 66 69 6c 74 65 72 73 2e 0a 0a 54 hrough.the.available.filters...T
10b680 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 6d 61 6b 65 2d 66 69 6c 74 65 he.second.argument.to.make-filte
10b6a0 72 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 74 20 r.is.a.function.which.returns.t.
10b6c0 69 66 20 61 0a 73 69 6e 67 6c 65 20 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 66 69 6c 74 if.a.single.track.should.be.filt
10b6e0 65 72 65 64 2e 20 59 6f 75 20 63 61 6e 20 77 72 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 66 69 6c ered..You.can.write.your.own.fil
10b700 74 65 72 0a 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 74 79 70 65 20 ter.functions.to.check.the.type.
10b720 6f 66 20 61 20 66 69 6c 65 2c 20 65 74 63 2e 0a 0a 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 63 6b of.a.file,.etc...Show.only.track
10b740 73 20 6e 6f 74 20 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 6c 61 73 74 20 79 65 61 72 3a 0a 0a s.not.played.in.the.last.year:..
10b760 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 @lisp.(emms-browser-make-filter.
10b780 22 6e 6f 74 2d 70 6c 61 79 65 64 22 0a 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 "not-played"..(lambda.(track)...
10b7a0 28 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 (not.(funcall.(emms-browser-filt
10b7c0 65 72 2d 6f 6e 6c 79 2d 72 65 63 65 6e 74 20 33 36 35 29 20 74 72 61 63 6b 29 29 29 29 0a 40 65 er-only-recent.365).track)))).@e
10b7e0 6e 64 20 6c 69 73 70 0a 0a 53 68 6f 77 20 61 6c 6c 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 nd.lisp..Show.all.files.that.are
10b800 20 6e 6f 74 20 69 6e 20 74 68 65 20 70 65 6e 64 69 6e 67 20 64 69 72 65 63 74 6f 72 79 3a 0a 0a .not.in.the.pending.directory:..
10b820 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 0a @lisp.(emms-browser-make-filter.
10b840 20 22 61 6c 6c 22 0a 20 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 28 6f 72 0a 20 ."all"..(lambda.(track)....(or..
10b860 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 66 69 6c 74 65 72 ...(funcall.(emms-browser-filter
10b880 2d 6f 6e 6c 79 2d 74 79 70 65 20 27 66 69 6c 65 29 20 74 72 61 63 6b 29 0a 20 20 20 20 28 6e 6f -only-type.'file).track).....(no
10b8a0 74 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 62 72 6f 77 73 t.(funcall...........(emms-brows
10b8c0 65 72 2d 66 69 6c 74 65 72 2d 6f 6e 6c 79 2d 64 69 72 20 22 7e 2f 4d 65 64 69 61 2f 70 65 6e 64 er-filter-only-dir."~/Media/pend
10b8e0 69 6e 67 22 29 20 74 72 61 63 6b 29 29 29 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 0a 40 63 20 ing").track))))).@end.lisp...@c.
10b900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10b920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10b940 2d 2d 2d 0a 40 6e 6f 64 65 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 40 63 68 61 ---.@node.The.Filter.System.@cha
10b960 70 74 65 72 20 54 68 65 20 46 69 6c 74 65 72 20 53 79 73 74 65 6d 0a 0a 54 68 65 20 66 69 6c 74 pter.The.Filter.System..The.filt
10b980 65 72 20 73 79 73 74 65 6d 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 66 69 6c 74 65 72 20 74 er.system.allows.you.to.filter.t
10b9a0 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 20 69 6e 20 6f 72 64 65 72 20 73 65 61 72 63 he.metadata.cache.in.order.searc
10b9c0 68 0a 61 6e 64 20 6e 61 72 72 6f 77 20 79 6f 75 72 20 74 72 61 63 6b 20 64 61 74 61 2e 20 49 74 h.and.narrow.your.track.data..It
10b9e0 20 69 73 20 62 61 73 65 64 20 6f 6e 20 61 20 76 65 72 79 20 70 6f 77 65 72 66 75 6c 20 69 6e 74 .is.based.on.a.very.powerful.int
10ba00 65 72 61 63 74 69 76 65 0a 73 79 73 74 65 6d 20 63 6f 6e 73 69 73 74 65 6e 74 69 6e 67 20 6f 66 eractive.system.consistenting.of
10ba20 20 66 69 6c 74 65 72 20 61 6e 64 20 63 61 63 68 65 20 73 74 61 63 6b 73 20 77 68 69 63 68 20 61 .filter.and.cache.stacks.which.a
10ba40 6c 6c 6f 77 0a 74 68 65 20 63 72 65 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6e 69 70 75 6c 61 74 69 llow.the.creation.and.manipulati
10ba60 6f 6e 20 6f 66 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 6e 64 20 72 65 73 75 6c 74 on.of.complex.filters.and.result
10ba80 73 20 63 61 63 68 65 73 2e 0a 0a 54 68 65 20 46 69 6c 74 65 72 20 73 79 73 74 65 6d 20 69 73 20 s.caches...The.Filter.system.is.
10baa0 64 65 66 69 6e 65 64 20 69 6e 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c defined.in.@file{emms-filters.el
10bac0 7d 20 61 6e 64 20 69 73 20 69 6e 63 6c 75 64 65 64 20 61 73 0a 70 61 72 74 20 6f 66 20 74 68 65 }.and.is.included.as.part.of.the
10bae0 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 2e 0a 0a 45 6d 6d 73 2d 46 69 6c 74 65 72 73 20 61 6c 6c .Emms-Browser...Emms-Filters.all
10bb00 6f 77 73 20 79 6f 75 20 74 6f 20 66 69 6c 74 65 72 20 61 6e 64 20 73 65 61 72 63 68 20 74 68 65 ows.you.to.filter.and.search.the
10bb20 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 2e 0a 54 68 69 73 20 6d 61 6e 61 67 65 73 20 74 68 .metadata.cache..This.manages.th
10bb40 65 20 73 65 61 72 63 68 20 61 6e 64 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 e.search.and.filter.functionalit
10bb60 69 65 73 20 6f 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 0a 0a 40 6d 65 6e 75 0a 2a 20 46 69 ies.of.emms-browser...@menu.*.Fi
10bb80 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 63 68 65 73 3a 3a 20 20 20 41 20 73 69 6d 70 6c 65 20 lters.and.Searches::...A.simple.
10bba0 6f 76 65 72 76 69 65 77 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 0a 2a overview.of.the.filter.system..*
10bbc0 20 42 61 63 6b 77 61 72 64 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 3a 20 42 61 63 6b 77 61 .Backward.Compatibility::.Backwa
10bbe0 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 20 42 rd.compatibility.with.the.Emms.B
10bc00 72 6f 77 73 65 72 2e 0a 2a 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f 6e 65 6e 74 73 3a 3a 20 20 20 rowser..*.Filter.Components::...
10bc20 20 20 20 44 65 66 69 6e 69 74 69 6f 6e 73 20 6f 66 20 62 61 73 69 63 20 74 65 72 6d 69 6e 6f 6c ...Definitions.of.basic.terminol
10bc40 6f 67 79 20 75 73 65 64 20 62 79 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 0a 2a ogy.used.by.the.filter.system..*
10bc60 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 3a 3a 20 20 20 20 20 20 20 44 65 66 69 6e 69 .Filter.Factories::.......Defini
10bc80 6e 67 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 2e 0a 2a 20 46 61 63 74 6f 72 79 20 52 ng.filter.factories..*.Factory.R
10bca0 65 67 69 73 74 72 61 74 69 6f 6e 3a 3a 20 20 20 52 65 67 69 73 74 65 72 69 6e 67 20 46 61 63 74 egistration::...Registering.Fact
10bcc0 6f 72 69 65 73 20 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 70 72 6f 6d 70 74 69 6e 67 20 73 79 ories.and.using.the.prompting.sy
10bce0 73 74 65 6d 2e 0a 2a 20 44 65 66 69 6e 65 64 20 46 61 63 74 6f 72 69 65 73 3a 3a 20 20 20 20 20 stem..*.Defined.Factories::.....
10bd00 20 54 68 65 20 62 75 69 6c 74 2d 69 6e 20 66 61 63 74 6f 72 69 65 73 20 61 76 61 69 6c 61 62 6c .The.built-in.factories.availabl
10bd20 65 0a 2a 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 3a 3a 20 20 20 20 20 20 20 44 65 66 e.*.Defining.Filters::.......Def
10bd40 69 6e 69 6e 67 20 66 69 6c 74 65 72 73 2e 0a 2a 20 54 68 65 20 46 69 6c 74 65 72 20 53 74 61 63 ining.filters..*.The.Filter.Stac
10bd60 6b 3a 3a 20 20 20 20 20 20 20 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2c 20 68 6f 77 20 k::.......The.filter.stack,.how.
10bd80 69 74 20 77 6f 72 6b 73 2c 20 68 6f 77 20 74 6f 20 75 73 65 20 69 74 2e 0a 2a 20 54 68 65 20 43 it.works,.how.to.use.it..*.The.C
10bda0 61 63 68 65 20 53 74 61 63 6b 3a 3a 20 20 20 20 20 20 20 20 54 68 65 20 63 61 63 68 65 20 73 74 ache.Stack::........The.cache.st
10bdc0 61 63 6b 2c 20 68 6f 77 20 74 6f 20 75 73 65 20 69 74 2e 0a 2a 20 53 68 6f 77 69 6e 67 20 53 74 ack,.how.to.use.it..*.Showing.St
10bde0 61 74 65 3a 3a 20 20 20 20 20 20 20 20 20 20 53 68 6f 77 69 6e 67 20 74 68 65 20 63 75 72 72 65 ate::..........Showing.the.curre
10be00 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 0a 40 nt.state.of.the.filter.system..@
10be20 65 6e 64 20 6d 65 6e 75 0a 0a 40 6e 6f 64 65 20 46 69 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 end.menu..@node.Filters.and.Sear
10be40 63 68 65 73 0a 40 73 65 63 74 69 6f 6e 20 46 69 6c 74 65 72 73 20 61 6e 64 20 53 65 61 72 63 68 ches.@section.Filters.and.Search
10be60 65 73 0a 0a 54 68 65 72 65 20 69 73 20 6c 69 74 74 6c 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 es..There.is.little.difference.b
10be80 65 74 77 65 65 6e 20 66 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 73 65 61 72 63 68 69 6e 67 2e 20 etween.filtering.and.searching..
10bea0 53 65 61 72 63 68 69 6e 67 0a 73 69 6d 70 6c 79 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 64 61 Searching.simply.results.in.a.da
10bec0 74 61 2d 63 61 63 68 65 20 77 68 69 63 68 20 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 74 ta-cache.which.is.smaller.than.t
10bee0 68 65 20 6f 72 69 67 69 6e 61 6c 2e 0a 0a 54 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 he.original...The.filter.system.
10bf00 68 61 73 20 61 20 63 61 63 68 65 20 73 74 61 63 6b 20 77 68 65 72 65 20 63 61 63 68 65 64 20 72 has.a.cache.stack.where.cached.r
10bf20 65 73 75 6c 74 73 20 61 72 65 20 6b 65 70 74 2e 20 41 6c 6c 0a 73 75 62 73 65 71 75 65 6e 74 20 esults.are.kept..All.subsequent.
10bf40 66 69 6c 74 65 72 73 20 61 6e 64 20 73 65 61 72 63 68 65 73 20 75 73 65 20 74 68 65 20 6d 6f 73 filters.and.searches.use.the.mos
10bf60 74 20 63 75 72 72 65 6e 74 20 63 61 63 68 65 2e 0a 0a 46 69 6c 74 65 72 69 6e 67 20 72 65 73 75 t.current.cache...Filtering.resu
10bf80 6c 74 73 20 69 6e 20 61 20 72 65 6e 64 65 72 65 64 20 76 69 65 77 20 66 6f 72 20 61 20 73 75 62 lts.in.a.rendered.view.for.a.sub
10bfa0 73 65 74 20 6f 66 20 77 68 61 74 20 69 73 20 69 6e 20 74 68 65 0a 64 61 74 61 2d 63 61 63 68 65 set.of.what.is.in.the.data-cache
10bfc0 2e 20 43 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 72 65 20 62 75 69 6c 74 20 69 6e 74 65 ..Complex.filters.are.built.inte
10bfe0 72 61 63 74 69 76 65 6c 79 20 6f 6e 20 61 20 66 69 6c 74 65 72 20 73 74 61 63 6b 0a 62 79 20 63 ractively.on.a.filter.stack.by.c
10c000 6f 6d 62 69 6e 69 6e 67 20 65 78 69 73 74 69 6e 67 20 66 69 6c 74 65 72 73 20 61 6e 64 20 69 6e ombining.existing.filters.and.in
10c020 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 20 66 69 6c 74 65 72 73 2e 0a 0a 41 20 teractively.created.filters...A.
10c040 73 6d 61 6c 6c 20 67 72 6f 75 70 20 6f 66 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 small.group.of.filter.factories.
10c060 61 72 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 66 69 6c 74 65 72 20 66 75 6e 63 74 69 are.used.to.create.filter.functi
10c080 6f 6e 73 0a 77 68 69 63 68 20 61 72 65 20 64 65 66 69 6e 65 64 20 65 6e 74 69 72 65 6c 79 20 61 ons.which.are.defined.entirely.a
10c0a0 73 20 64 61 74 61 2e 20 54 68 6f 73 65 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 63 6f 6d s.data..Those.filters.can.be.com
10c0c0 62 69 6e 65 64 20 77 69 74 68 0a 65 61 63 68 20 6f 74 68 65 72 20 61 6e 64 20 77 69 74 68 20 69 bined.with.each.other.and.with.i
10c0e0 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 20 66 69 6c 74 65 72 73 20 6f 6e 20 nteractively.created.filters.on.
10c100 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 0a 77 69 74 68 20 4f 52 2c 20 41 4e 44 2c 20 61 the.filter.stack.with.OR,.AND,.a
10c120 73 20 77 65 6c 6c 20 61 73 20 41 4e 44 2d 4e 4f 54 2e 20 54 68 65 73 65 20 6d 6f 72 65 20 63 6f s.well.as.AND-NOT..These.more.co
10c140 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 6d 61 79 20 61 6c 73 6f 0a 62 65 20 73 61 76 65 64 20 mplex.filters.may.also.be.saved.
10c160 61 6e 64 20 63 6f 64 65 64 20 65 6e 74 69 72 65 6c 79 20 61 73 20 64 61 74 61 2e 20 49 6e 20 61 and.coded.entirely.as.data..In.a
10c180 64 64 69 74 69 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 68 61 73 0a 76 61 72 ddition.the.filter.stack.has.var
10c1a0 69 6f 75 73 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 6d 61 6e 69 70 75 6c 61 74 65 20 69 74 2e 20 ious.commands.to.manipulate.it..
10c1c0 50 6f 70 2c 20 73 77 61 70 2c 20 73 77 61 70 2d 70 6f 70 2c 20 73 71 75 61 73 68 20 61 6e 64 20 Pop,.swap,.swap-pop,.squash.and.
10c1e0 63 6c 65 61 72 2c 0a 61 6d 6f 6e 67 20 6f 74 68 65 72 73 2e 0a 0a 46 6f 72 20 74 68 65 20 63 6f clear,.among.others...For.the.co
10c200 6e 63 65 70 74 20 6f 66 20 73 65 61 72 63 68 65 73 20 74 68 65 72 65 20 69 73 20 61 20 73 65 61 ncept.of.searches.there.is.a.sea
10c220 72 63 68 20 63 61 63 68 65 20 73 74 61 63 6b 20 77 68 69 63 68 20 69 73 20 61 0a 73 74 61 63 6b rch.cache.stack.which.is.a.stack
10c240 20 6f 66 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 68 61 73 68 20 74 61 62 6c 65 73 2e 20 54 .of.emms-cache-db.hash.tables..T
10c260 68 65 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 69 73 20 61 6c 77 61 79 73 20 70 72 65 73 65 he.emms-cache-db.is.always.prese
10c280 6e 74 20 61 74 0a 74 68 65 20 62 61 73 65 20 6f 66 20 74 68 69 73 20 73 74 61 63 6b 2e 20 41 6e nt.at.the.base.of.this.stack..An
10c2a0 79 20 66 69 6c 74 65 72 65 64 20 72 65 73 75 6c 74 20 6d 61 79 20 62 65 20 70 75 73 68 65 64 20 y.filtered.result.may.be.pushed.
10c2c0 74 6f 20 74 68 69 73 20 73 74 61 63 6b 0a 61 74 20 61 6e 79 20 74 69 6d 65 2e 20 46 69 6c 74 65 to.this.stack.at.any.time..Filte
10c2e0 72 73 20 61 6c 77 61 79 73 20 6f 70 65 72 61 74 65 20 61 67 61 69 6e 73 74 20 74 68 65 20 63 61 rs.always.operate.against.the.ca
10c300 63 68 65 20 61 74 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 0a 73 74 61 63 6b 2e 20 41 20 63 che.at.the.top.of.the.stack..A.c
10c320 61 63 68 65 20 6d 61 79 20 62 65 20 73 74 61 73 68 65 64 20 66 6f 72 20 6c 61 74 65 72 2c 20 61 ache.may.be.stashed.for.later,.a
10c340 6e 64 20 74 68 65 20 75 73 75 61 6c 20 73 74 61 63 6b 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 0a nd.the.usual.stack.manipulation.
10c360 66 75 6e 63 74 69 6f 6e 73 20 65 78 69 73 74 2e 20 50 6f 70 2c 20 73 77 61 70 2c 20 73 77 61 70 functions.exist..Pop,.swap,.swap
10c380 2d 70 6f 70 2c 20 73 71 75 61 73 68 2c 20 63 6c 65 61 72 2c 20 73 74 61 73 68 2c 20 61 6e 64 20 -pop,.squash,.clear,.stash,.and.
10c3a0 70 75 73 68 2e 0a 0a 46 61 63 74 6f 72 69 65 73 20 64 65 66 69 6e 65 20 66 69 6c 74 65 72 73 20 push...Factories.define.filters.
10c3c0 66 72 6f 6d 20 64 61 74 61 20 61 6e 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 0a 46 61 63 from.data.and.interactively..Fac
10c3e0 74 6f 72 69 65 73 20 61 72 65 20 6b 65 70 74 20 69 6e 20 61 20 72 69 6e 67 2c 20 61 6e 64 20 65 tories.are.kept.in.a.ring,.and.e
10c400 61 63 68 20 68 61 73 20 61 20 72 69 6e 67 20 6f 66 20 69 74 73 20 66 69 6c 74 65 72 73 2e 0a 49 ach.has.a.ring.of.its.filters..I
10c420 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 69 6e 67 20 61 20 6e 65 77 20 66 69 6c 74 nteractively.creating.a.new.filt
10c440 65 72 20 61 64 64 73 20 69 74 20 74 6f 20 74 68 65 20 72 69 6e 67 20 66 6f 72 20 74 68 65 20 73 er.adds.it.to.the.ring.for.the.s
10c460 65 73 73 69 6f 6e 2e 0a 50 65 72 73 6f 6e 61 6c 20 66 69 6c 74 65 72 20 72 69 6e 67 73 20 63 61 ession..Personal.filter.rings.ca
10c480 6e 20 61 6c 73 6f 20 62 65 20 65 61 73 69 6c 79 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 66 69 n.also.be.easily.added.to.the.fi
10c4a0 6c 74 65 72 20 6d 65 6e 75 20 72 69 6e 67 2e 0a 0a 54 68 65 72 65 20 69 73 20 61 6e 6f 74 68 65 lter.menu.ring...There.is.anothe
10c4c0 72 20 66 69 6c 74 65 72 20 72 69 6e 67 2c 20 77 68 69 63 68 20 63 61 6e 20 68 61 76 65 20 61 6e r.filter.ring,.which.can.have.an
10c4e0 79 20 66 69 6c 74 65 72 73 20 79 6f 75 20 6c 69 6b 65 2c 20 61 6e 64 20 69 73 0a 73 65 6c 65 63 y.filters.you.like,.and.is.selec
10c500 74 61 62 6c 65 20 77 69 74 68 20 3c 20 61 6e 64 20 3e 2e 20 20 54 68 65 20 61 63 74 69 76 65 20 table.with.<.and.>...The.active.
10c520 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 72 69 6e 67 20 63 6f 6d 62 69 6e 65 73 20 77 69 74 68 filter.on.the.ring.combines.with
10c540 0a 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 74 6f 20 73 68 6f 77 20 74 68 65 20 72 65 .the.filter.stack.to.show.the.re
10c560 6e 64 65 72 65 64 20 72 65 73 75 6c 74 73 2e 0a 0a 40 6e 6f 64 65 20 42 61 63 6b 77 61 72 64 20 ndered.results...@node.Backward.
10c580 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 40 73 65 63 74 69 6f 6e 20 42 61 63 6b 77 61 72 64 20 Compatibility.@section.Backward.
10c5a0 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 0a 4d 61 69 6e 74 61 69 6e 69 6e 67 20 62 61 63 6b 77 Compatibility..Maintaining.backw
10c5c0 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 79 20 77 69 74 68 20 74 68 65 20 45 6d 6d 6d 73 2d 62 ard.compatibily.with.the.Emmms-b
10c5e0 72 6f 77 73 65 72 27 73 20 70 72 65 76 69 6f 75 73 0a 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 rowser's.previous.functionality.
10c600 77 61 73 20 61 20 70 72 69 6d 65 20 67 6f 61 6c 20 69 6e 20 63 72 65 61 74 69 6e 67 20 74 68 65 was.a.prime.goal.in.creating.the
10c620 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 20 56 65 72 79 20 6c 69 74 74 6c 65 0a 69 73 20 6c .filter.system..Very.little.is.l
10c640 65 66 74 20 69 6e 20 63 6f 6d 6d 6f 6e 2c 20 62 75 74 20 74 68 65 20 42 72 6f 77 73 65 72 27 73 eft.in.common,.but.the.Browser's
10c660 20 73 65 61 72 63 68 2d 62 79 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 20 41 50 49 20 72 65 6d .search-by.and.filtering.API.rem
10c680 61 69 6e 73 0a 69 6e 74 61 63 74 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 73 20 74 6f 20 62 65 68 ains.intact.and.continues.to.beh
10c6a0 61 76 65 20 61 73 20 62 65 66 6f 72 65 2e 20 41 6e 79 6f 6e 65 20 77 68 6f 20 68 61 73 20 6d 61 ave.as.before..Anyone.who.has.ma
10c6c0 64 65 20 66 69 6c 74 65 72 0a 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 6e 6f 74 69 63 65 20 de.filter.functions.will.notice.
10c6e0 6e 6f 20 63 68 61 6e 67 65 20 69 6e 20 62 65 68 61 76 69 6f 72 20 6f 74 68 65 72 20 74 68 61 6e no.change.in.behavior.other.than
10c700 20 74 68 65 72 65 20 69 73 20 6d 6f 72 65 0a 66 6c 65 78 69 62 69 6c 69 74 79 20 69 6e 20 75 73 .there.is.more.flexibility.in.us
10c720 69 6e 67 20 74 68 65 69 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 54 68 65 20 66 69 6c 74 65 72 ing.their.functions...The.filter
10c740 20 73 79 73 74 65 6d 20 72 65 70 6c 61 63 65 73 20 62 6f 74 68 20 65 6d 6d 73 2d 62 72 6f 77 73 .system.replaces.both.emms-brows
10c760 65 72 20 66 69 6c 74 65 72 73 20 61 6e 64 20 73 65 61 72 63 68 2d 62 79 0a 66 75 6e 63 74 69 6f er.filters.and.search-by.functio
10c780 6e 61 6c 69 74 69 65 73 2e 20 54 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 20 41 50 49 20 72 nalities..The.Emms-browser.API.r
10c7a0 65 6d 61 69 6e 73 20 69 6e 20 70 6c 61 63 65 2c 20 68 6f 77 65 76 65 72 20 75 6e 64 65 72 6e 65 emains.in.place,.however.underne
10c7c0 61 74 68 0a 74 68 65 20 41 50 49 20 69 74 20 75 73 65 73 20 74 68 65 20 66 69 6c 74 65 72 20 73 ath.the.API.it.uses.the.filter.s
10c7e0 79 73 74 65 6d 20 66 6f 72 20 61 6c 6c 20 6f 66 20 69 74 73 20 70 75 72 70 6f 73 65 73 2e 0a 0a ystem.for.all.of.its.purposes...
10c800 45 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 61 6e 64 20 65 6d 6d Emms-browser-make-filter.and.emm
10c820 73 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 20 75 73 65 20 65 6d 6d 73 2d 66 69 6c s-browser-search-by.use.emms-fil
10c840 74 65 72 73 0a 66 6f 72 20 74 68 65 69 72 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 61 ters.for.their.current.functiona
10c860 6c 69 74 79 2e 20 54 68 65 20 73 65 61 72 63 68 2d 62 79 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 lity..The.search-by.functionalit
10c880 79 20 69 73 20 71 75 69 74 65 0a 73 69 6d 70 6c 65 2e 20 45 6d 75 6c 61 74 69 6e 67 20 74 68 65 y.is.quite.simple..Emulating.the
10c8a0 20 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 73 20 77 61 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 69 .browser.filters.was.more.compli
10c8c0 63 61 74 65 64 20 61 6e 64 20 68 61 73 20 61 0a 74 68 69 6e 20 63 6f 6d 70 61 74 69 62 69 6c 69 cated.and.has.a.thin.compatibili
10c8e0 74 79 20 6c 61 79 65 72 20 69 6e 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 ty.layer.in.@file{emms-browser.e
10c900 6c 7d 2e 0a 0a 49 6e 20 61 6c 6c 20 63 61 73 65 73 2c 20 6f 62 74 61 69 6e 69 6e 67 20 74 68 65 l}...In.all.cases,.obtaining.the
10c920 20 73 61 6d 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 20 73 6f 6c 65 79 20 77 69 74 68 .same.functionalities.soley.with
10c940 69 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 20 69 73 0a 73 69 6d 70 6c 65 72 20 61 6e 64 20 61 in.emms-filters.is.simpler.and.a
10c960 6e 64 20 6d 6f 72 65 20 70 6f 77 65 72 66 75 6c 2e 0a 0a 45 6d 6d 73 2d 62 72 6f 77 73 65 72 2d nd.more.powerful...Emms-browser-
10c980 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 73 70 65 63 69 66 69 65 64 20 74 filter.functions.are.specified.t
10c9a0 6f 20 72 65 74 75 72 6e 20 61 6e 0a 69 6e 76 65 72 74 65 64 20 76 61 6c 75 65 2e 20 74 68 65 20 o.return.an.inverted.value..the.
10c9c0 6f 6c 64 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 old.@command{emms-browser-make-f
10c9e0 69 6c 74 65 72 7d 0a 68 61 64 20 61 20 73 6c 69 67 68 74 6c 79 20 64 69 66 66 65 72 65 6e 74 20 ilter}.had.a.slightly.different.
10ca00 6d 65 63 68 61 6e 69 73 6d 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d mechanism.from.the.filter.system
10ca20 27 73 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 's.@command{emms-filters-make-fi
10ca40 6c 74 65 72 7d 2e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 lter}..emms-browser-make-filter.
10ca60 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 74 6f 0a 70 61 73 73 20 69 74 73 20 66 69 has.been.modified.to.pass.its.fi
10ca80 6c 74 65 72 73 20 74 6f 20 74 68 65 20 65 6d 6d 73 2d 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e lters.to.the.emms-filter.system.
10caa0 20 54 68 6f 73 65 20 66 69 6c 74 65 72 73 20 77 69 6c 6c 20 62 65 20 70 72 6f 70 65 72 6c 79 0a .Those.filters.will.be.properly.
10cac0 69 6e 76 65 72 74 65 64 20 61 6e 64 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 6b 6e 6f 77 6e 20 inverted.and.added.to.the.known.
10cae0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 73 20 61 6e 64 20 74 6f 20 74 68 65 20 emms-filters-filters.and.to.the.
10cb00 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 0a 77 68 69 63 68 20 65 emms-filters-filter-ring.which.e
10cb20 6d 75 6c 61 74 65 73 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 62 72 6f 77 73 65 72 20 66 69 6c mulates.the.original.browser.fil
10cb40 74 65 72 20 72 69 6e 67 2e 20 54 68 69 73 20 70 72 6f 76 69 64 65 73 20 61 0a 73 65 61 6d 6c 65 ter.ring..This.provides.a.seamle
10cb60 73 73 20 65 78 70 65 72 69 65 6e 63 65 20 66 6f 72 20 70 72 65 76 69 6f 75 73 20 75 73 65 72 73 ss.experience.for.previous.users
10cb80 20 6f 66 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 69 6c 74 65 72 69 6e 67 2e 20 41 73 0a 74 .of.emms-browser.filtering..As.t
10cba0 68 65 20 40 76 61 72 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 72 69 6e 67 he.@var{emms-filters-filter-ring
10cbc0 7d 20 69 73 20 66 75 6e 63 74 69 6f 6e 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 }.is.functionally.equivalent.to.
10cbe0 74 68 65 20 62 72 6f 77 73 65 72 27 73 0a 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 0a 54 68 65 20 the.browser's.filter.ring...The.
10cc00 62 72 6f 77 73 65 72 27 73 20 27 53 65 61 72 63 68 2d 62 79 27 20 77 61 73 20 6a 75 73 74 20 6f browser's.'Search-by'.was.just.o
10cc20 6e 65 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 2c 20 77 68 69 63 68 20 63 6f 72 72 65 73 70 ne.filter.factory,.which.corresp
10cc40 6f 6e 64 73 0a 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 27 73 20 27 66 69 65 onds.to.the.filter.system's.'fie
10cc60 6c 64 73 20 73 65 61 72 63 68 27 20 66 61 63 74 6f 72 79 2c 20 61 6e 64 20 73 65 61 72 63 68 65 lds.search'.factory,.and.searche
10cc80 73 20 61 72 65 20 6e 6f 74 0a 69 6e 76 65 72 74 65 64 2e 20 54 68 65 20 6f 6e 6c 79 20 72 65 61 s.are.not.inverted..The.only.rea
10cca0 6c 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 62 72 6f 77 73 65 72 l.difference.between.the.browser
10ccc0 27 73 20 66 69 6c 74 65 72 20 61 6e 64 20 61 0a 73 65 61 72 63 68 20 77 61 73 20 74 68 61 74 20 's.filter.and.a.search.was.that.
10cce0 61 20 66 69 6c 74 65 72 20 77 61 73 20 72 65 6e 64 65 72 65 64 20 61 6e 64 20 61 20 73 65 61 72 a.filter.was.rendered.and.a.sear
10cd00 63 68 20 77 61 73 20 73 61 76 65 64 20 74 6f 20 61 20 68 61 73 68 0a 66 6f 72 20 73 75 62 73 65 ch.was.saved.to.a.hash.for.subse
10cd20 71 75 65 6e 74 20 66 69 6c 74 65 72 69 6e 67 2e 20 46 69 6c 74 65 72 73 20 63 6f 75 6c 64 6e 27 quent.filtering..Filters.couldn'
10cd40 74 20 66 69 6c 74 65 72 20 61 20 73 65 61 72 63 68 2c 20 61 6e 64 20 6e 65 69 74 68 65 72 0a 63 t.filter.a.search,.and.neither.c
10cd60 6f 75 6c 64 20 77 6f 72 6b 20 61 67 61 69 6e 73 74 20 61 6e 79 74 68 69 6e 67 20 62 75 74 20 74 ould.work.against.anything.but.t
10cd80 68 65 20 45 6d 6d 73 2d 63 61 63 68 65 2d 64 62 2e 20 54 68 65 20 65 71 75 69 76 61 6c 65 6e 74 he.Emms-cache-db..The.equivalent
10cda0 20 74 6f 20 74 68 65 0a 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 2d 62 79 20 69 .to.the.emms-browser.search-by.i
10cdc0 73 20 6a 75 73 74 20 61 20 6f 6e 65 20 73 68 6f 74 20 69 6e 74 65 72 61 63 74 69 76 65 20 27 6e s.just.a.one.shot.interactive.'n
10cde0 65 77 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 27 0a 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 ew.fields-search'.filter.factory
10ce00 20 74 68 61 74 20 73 61 76 65 73 20 61 20 63 61 63 68 65 20 61 6e 64 20 74 68 65 6e 20 72 65 6d .that.saves.a.cache.and.then.rem
10ce20 6f 76 65 73 20 69 74 73 65 6c 66 2e 0a 0a 45 6d 6d 73 2d 46 69 6c 74 65 72 73 20 69 73 20 61 67 oves.itself...Emms-Filters.is.ag
10ce40 6e 6f 73 74 69 63 20 61 62 6f 75 74 20 74 68 65 20 72 65 6e 64 65 72 65 72 2e 20 43 75 72 72 65 nostic.about.the.renderer..Curre
10ce60 6e 74 6c 79 20 74 68 65 72 65 20 68 61 73 20 62 65 65 6e 20 61 0a 6c 6f 74 20 6f 66 20 65 66 66 ntly.there.has.been.a.lot.of.eff
10ce80 6f 72 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 or.to.maintain.backward.compatib
10cea0 69 74 79 20 77 69 74 68 20 74 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 20 61 73 0a 69 74 73 ity.with.the.Emms-browser.as.its
10cec0 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 77 61 73 20 72 65 70 6c 61 63 65 64 2e 20 54 68 65 .functionality.was.replaced..The
10cee0 72 65 20 61 72 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 68 6f 6f 6b 73 20 74 68 61 74 20 re.are.the.following.hooks.that.
10cf00 61 6e 79 0a 72 65 6e 64 65 72 65 72 20 63 6f 75 6c 64 20 75 73 65 20 69 6e 20 6f 72 64 65 72 20 any.renderer.could.use.in.order.
10cf20 74 6f 20 6c 65 76 65 72 61 67 65 20 45 6d 6d 73 2d 46 69 6c 74 65 72 73 2e 0a 0a 54 6f 20 6d 61 to.leverage.Emms-Filters...To.ma
10cf40 69 6e 74 61 69 6e 20 69 6e 64 65 70 65 6e 64 65 6e 63 65 20 74 68 65 72 65 20 61 72 65 20 74 68 intain.independence.there.are.th
10cf60 72 65 65 20 68 6f 6f 6b 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 61 6c 6c 6f 77 0a 65 ree.hook.variables.which.allow.e
10cf80 6d 6d 73 2d 66 69 6c 74 65 72 73 20 74 6f 20 69 6e 74 65 72 61 63 74 20 77 69 74 68 20 74 68 65 mms-filters.to.interact.with.the
10cfa0 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 73 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e 0a 0a 54 .Emms-Browsers.functionality...T
10cfc0 68 65 20 66 69 72 73 74 20 69 73 20 61 20 64 65 66 63 75 73 74 6f 6d 20 68 6f 6f 6b 20 74 6f 20 he.first.is.a.defcustom.hook.to.
10cfe0 6d 69 72 72 6f 72 20 74 68 65 20 62 72 6f 77 73 65 72 27 73 20 64 65 70 72 65 63 61 74 65 64 20 mirror.the.browser's.deprecated.
10d000 68 6f 6f 6b 0a 6f 66 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 2e 0a 54 68 65 20 73 65 63 6f 6e hook.of.the.same.name..The.secon
10d020 64 20 68 6f 6f 6b 20 68 61 70 70 65 6e 73 20 6a 75 73 74 20 61 66 74 65 72 2c 20 61 6e 64 20 69 d.hook.happens.just.after,.and.i
10d040 73 20 66 6f 72 20 61 6e 79 20 72 65 6e 64 65 72 65 72 0a 74 68 61 74 20 77 69 73 68 65 73 20 74 s.for.any.renderer.that.wishes.t
10d060 6f 20 72 65 2d 72 65 6e 64 65 72 20 77 68 65 6e 20 61 20 66 69 6c 74 65 72 20 63 68 61 6e 67 65 o.re-render.when.a.filter.change
10d080 73 2e 0a 54 68 65 20 74 68 69 72 64 20 68 6f 6f 6b 20 69 73 20 74 6f 20 74 65 6c 6c 20 61 6e 79 s..The.third.hook.is.to.tell.any
10d0a0 20 72 65 6e 64 65 72 65 72 20 74 6f 20 65 78 70 61 6e 64 20 69 74 73 20 72 65 6e 64 65 72 20 69 .renderer.to.expand.its.render.i
10d0c0 66 20 74 68 65 72 65 20 69 73 0a 61 20 66 69 6c 74 65 72 20 6f 72 20 63 61 63 68 65 20 73 74 61 f.there.is.a.filter.or.cache.sta
10d0e0 63 6b 20 65 6e 74 72 79 20 70 72 65 73 65 6e 74 2e 0a 0a 54 68 69 73 20 61 20 64 65 66 63 75 73 ck.entry.present...This.a.defcus
10d100 74 6f 6d 20 68 6f 6f 6b 20 74 68 61 74 20 69 73 20 72 75 6e 20 61 6e 79 74 69 6d 65 20 74 68 65 tom.hook.that.is.run.anytime.the
10d120 20 66 69 6c 74 65 72 73 20 63 68 61 6e 67 65 0a 40 76 61 72 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 .filters.change.@var{emms-filter
10d140 73 2d 66 69 6c 74 65 72 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 7d 0a 0a 40 6c 69 73 70 0a 28 61 s-filter-changed-hook}..@lisp.(a
10d160 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 6c 74 65 72 2d 63 68 61 dd-hook.'emms-filters-filter-cha
10d180 6e 67 65 64 2d 68 6f 6f 6b 20 27 6d 79 2d 66 69 6c 74 65 72 73 2d 68 61 76 65 2d 63 68 61 6e 67 nged-hook.'my-filters-have-chang
10d1a0 65 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 20 66 6f 6c 6c ed-function).@end.lisp..The.foll
10d1c0 6f 77 69 6e 67 20 74 77 6f 20 68 6f 6f 6b 73 20 61 72 65 20 66 6f 72 20 74 68 65 20 72 65 6e 64 owing.two.hooks.are.for.the.rend
10d1e0 65 72 65 72 73 20 77 68 69 63 68 20 69 73 20 63 75 72 72 65 6e 74 6c 79 0a 6a 75 73 74 20 74 68 erers.which.is.currently.just.th
10d200 65 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 2e 20 54 68 65 73 65 20 68 6f 6f 6b 73 20 61 72 65 20 e.Emms-Browser..These.hooks.are.
10d220 74 68 65 20 6d 65 63 68 61 6e 69 73 6d 20 75 73 65 64 20 74 6f 0a 61 63 74 75 61 6c 6c 79 20 66 the.mechanism.used.to.actually.f
10d240 69 6c 74 65 72 20 61 6e 64 20 72 65 6e 64 65 72 20 74 68 65 20 74 72 61 63 6b 73 2e 0a 0a 57 68 ilter.and.render.the.tracks...Wh
10d260 65 6e 20 74 68 65 20 66 69 6c 74 65 72 20 6f 72 20 63 61 63 68 65 20 63 68 61 6e 67 65 73 20 45 en.the.filter.or.cache.changes.E
10d280 6d 6d 73 2d 46 69 6c 74 65 72 73 20 6e 65 65 64 73 20 74 6f 0a 74 65 6c 6c 20 74 68 65 20 72 65 mms-Filters.needs.to.tell.the.re
10d2a0 6e 64 65 72 65 72 20 74 6f 20 72 65 2d 62 75 69 6c 64 20 69 74 73 20 68 61 73 68 20 61 6e 64 20 nderer.to.re-build.its.hash.and.
10d2c0 64 69 73 70 6c 61 79 20 69 74 2e 0a 46 6f 72 20 74 68 69 73 20 70 75 72 70 6f 73 65 20 74 68 65 display.it..For.this.purpose.the
10d2e0 72 65 20 69 73 20 61 6e 6f 74 68 65 72 20 68 6f 6f 6b 2c 20 74 68 65 0a 40 76 61 72 7b 65 6d 6d re.is.another.hook,.the.@var{emm
10d300 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 61 6e 64 2d 72 65 6e 64 65 72 2d 68 61 73 68 2d 68 s-filters-make-and-render-hash-h
10d320 6f 6f 6b 7d 2e 0a 0a 54 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 20 66 75 6e 63 74 69 6f 6e ook}...The.Emms-browser.function
10d340 20 66 6f 72 20 74 68 69 73 20 69 73 20 65 6d 6d 73 2d 62 72 6f 77 73 65 2d 62 79 2e 0a 54 68 69 .for.this.is.emms-browse-by..Thi
10d360 73 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 69 65 73 20 74 68 65 20 66 69 6c 74 65 72 73 2c 20 s.function.applies.the.filters,.
10d380 63 72 65 61 74 65 73 20 61 20 68 61 73 68 2c 0a 61 6e 64 20 74 68 65 6e 20 70 6f 70 75 6c 61 74 creates.a.hash,.and.then.populat
10d3a0 65 73 20 61 6e 64 20 72 65 6e 64 65 72 73 20 61 20 74 72 65 65 20 6f 66 20 64 61 74 61 2e 0a 40 es.and.renders.a.tree.of.data..@
10d3c0 6c 69 73 70 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b lisp.(add-hook.'emms-filters-mak
10d3e0 65 2d 61 6e 64 2d 72 65 6e 64 65 72 2d 68 61 73 68 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f e-and-render-hash-hook.'emms-bro
10d400 77 73 65 2d 62 79 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 20 6c 61 73 74 20 68 6f 6f 6b wse-by).@end.lisp..The.last.hook
10d420 20 69 73 20 74 68 65 20 40 76 61 72 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 65 78 70 61 6e 64 .is.the.@var{emms-filters-expand
10d440 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 7d 2e 0a 54 68 69 73 20 69 73 20 6a 75 73 74 20 73 6f 20 74 -render-hook}..This.is.just.so.t
10d460 68 61 74 20 45 6d 6d 73 2d 46 69 6c 74 65 72 73 20 63 61 6e 20 74 65 6c 6c 20 74 68 65 20 72 65 hat.Emms-Filters.can.tell.the.re
10d480 6e 64 65 72 65 72 20 74 6f 0a 65 78 70 61 6e 64 20 69 74 73 20 74 72 65 65 20 77 68 65 6e 20 74 nderer.to.expand.its.tree.when.t
10d4a0 68 65 72 65 20 69 73 20 61 20 66 69 6c 74 65 72 20 6f 72 20 63 61 63 68 65 20 73 74 61 63 6b 20 here.is.a.filter.or.cache.stack.
10d4c0 70 72 65 73 65 6e 74 0a 61 6e 64 20 73 6f 6d 65 74 68 69 6e 67 20 68 61 73 20 63 68 61 6e 67 65 present.and.something.has.change
10d4e0 64 2e 0a 46 6f 72 20 45 6d 6d 73 2d 42 72 6f 77 73 65 72 20 74 68 69 73 20 69 73 20 74 68 65 20 d..For.Emms-Browser.this.is.the.
10d500 66 75 6e 63 74 69 6f 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c function.emms-browser-expand-all
10d520 0a 0a 40 6c 69 73 70 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 66 69 6c 74 65 ..@lisp.;;.(add-hook.'emms-filte
10d540 72 73 2d 65 78 70 61 6e 64 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 62 72 6f 77 rs-expand-render-hook.'emms-brow
10d560 73 65 72 2d 65 78 70 61 6e 64 2d 61 6c 6c 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 20 66 ser-expand-all).@end.lisp..The.f
10d580 69 6c 74 65 72 20 73 79 73 74 65 6d 20 69 73 20 6d 75 63 68 20 6d 6f 72 65 20 70 6f 77 65 72 66 ilter.system.is.much.more.powerf
10d5a0 75 6c 20 74 68 61 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 79 73 74 65 6d 20 6f 66 0a 66 ul.than.the.previous.system.of.f
10d5c0 69 6c 74 65 72 69 6e 67 20 61 6e 64 20 73 65 61 72 63 68 69 6e 67 20 61 6e 64 20 69 73 20 6d 75 iltering.and.searching.and.is.mu
10d5e0 63 68 20 65 61 73 69 65 72 20 74 6f 20 75 73 65 20 62 6f 74 68 20 69 6e 20 63 6f 64 65 20 61 6e ch.easier.to.use.both.in.code.an
10d600 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 77 68 69 6c 65 20 73 65 61 72 63 68 69 6e 67 20 d.interactively.while.searching.
10d620 79 6f 75 72 20 74 72 61 63 6b 73 2e 0a 0a 48 65 72 65 20 69 73 20 61 20 73 75 6d 6d 61 72 79 20 your.tracks...Here.is.a.summary.
10d640 6f 66 20 64 69 66 66 65 72 65 6e 63 65 73 20 61 6e 64 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 of.differences.and.features.of.t
10d660 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 0a 0a 40 69 74 65 6d 69 7a 65 20 40 62 75 6c he.filter.system...@itemize.@bul
10d680 6c 65 74 0a 40 69 74 65 6d 20 46 69 6c 74 65 72 73 2c 20 6e 6f 20 6d 61 74 74 65 72 20 74 68 65 let.@item.Filters,.no.matter.the
10d6a0 20 63 6f 6d 70 6c 65 78 69 74 79 2c 20 61 72 65 20 64 65 66 69 6e 65 64 20 65 6e 74 69 72 65 6c .complexity,.are.defined.entirel
10d6c0 79 20 61 73 20 64 61 74 61 2e 0a 40 69 74 65 6d 20 46 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 y.as.data..@item.Filters.can.be.
10d6e0 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 41 4e 44 2c 20 4f 52 20 61 73 20 77 65 6c 6c 20 61 73 combined.with.AND,.OR.as.well.as
10d700 20 41 4e 44 2d 4e 4f 54 2e 0a 40 69 74 65 6d 20 46 69 6c 74 65 72 73 20 72 65 74 75 72 6e 20 74 .AND-NOT..@item.Filters.return.t
10d720 72 75 65 20 69 66 20 74 68 65 79 20 6d 61 74 63 68 20 74 68 65 20 74 72 61 63 6b 73 2e 0a 40 69 rue.if.they.match.the.tracks..@i
10d740 74 65 6d 20 46 69 6c 74 65 72 73 20 61 72 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 73 tem.Filters.are.lambda.functions
10d760 20 63 72 65 61 74 65 64 20 77 69 74 68 20 66 61 63 74 6f 72 69 65 73 20 66 72 6f 6d 20 64 61 74 .created.with.factories.from.dat
10d780 61 2e 0a 40 69 74 65 6d 20 54 68 65 72 65 20 69 73 20 6e 6f 20 64 69 66 66 65 72 65 6e 63 65 20 a..@item.There.is.no.difference.
10d7a0 62 65 74 77 65 65 6e 20 61 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 61 20 between.a.search.function.and.a.
10d7c0 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 2e 0a 40 69 74 65 6d 20 54 68 65 20 66 61 63 74 6f filter.function..@item.The.facto
10d7e0 72 79 20 73 68 6f 75 6c 64 20 77 72 61 70 20 74 68 65 20 6c 61 6d 62 64 61 20 69 6e 20 61 20 6c ry.should.wrap.the.lambda.in.a.l
10d800 65 74 20 77 69 74 68 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 20 74 2e 0a 40 69 74 65 6d et.with.lexical-binding.t..@item
10d820 20 54 68 65 20 66 61 63 74 6f 72 69 65 73 20 61 6e 64 20 74 68 65 20 66 69 6c 74 65 72 73 20 6d .The.factories.and.the.filters.m
10d840 75 73 74 20 62 6f 74 68 20 62 65 20 72 65 67 69 73 74 65 72 65 64 20 77 69 74 68 20 45 6d 6d 73 ust.both.be.registered.with.Emms
10d860 2d 66 69 6c 74 65 72 73 2e 0a 40 69 74 65 6d 20 52 65 67 69 73 74 65 72 65 64 20 66 61 63 74 6f -filters..@item.Registered.facto
10d880 72 69 65 73 20 68 61 76 65 20 61 20 62 75 69 6c 74 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 ries.have.a.built.in.interactive
10d8a0 20 70 72 6f 6d 70 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a 40 69 74 65 6d 20 41 6e 79 20 72 65 73 .prompting.system..@item.Any.res
10d8c0 75 6c 74 73 20 63 61 6e 20 62 65 20 70 75 73 68 65 64 20 74 6f 20 74 68 65 20 63 61 63 68 65 20 ults.can.be.pushed.to.the.cache.
10d8e0 73 74 61 63 6b 20 66 6f 72 20 66 75 74 75 72 65 20 66 69 6c 74 65 72 73 20 61 6e 64 20 73 65 61 stack.for.future.filters.and.sea
10d900 72 63 68 65 73 2e 0a 40 69 74 65 6d 20 43 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 72 65 rches..@item.Complex.filters.are
10d920 20 63 72 65 61 74 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6f 6e 20 74 68 65 20 66 69 .created.interactively.on.the.fi
10d940 6c 74 65 72 20 73 74 61 63 6b 2e 0a 40 69 74 65 6d 20 53 65 61 72 63 68 65 73 20 61 72 65 20 69 lter.stack..@item.Searches.are.i
10d960 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 20 66 69 6c 74 65 72 73 20 77 68 69 nteractively.created.filters.whi
10d980 63 68 20 6c 65 61 76 65 20 61 20 63 61 63 68 65 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 0a 40 ch.leave.a.cache.on.the.stack..@
10d9a0 69 74 65 6d 20 49 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 64 20 66 69 6c 74 65 item.Interactively.created.filte
10d9c0 72 73 20 63 61 6e 20 62 65 20 73 61 76 65 64 20 61 73 20 64 61 74 61 20 66 6f 72 20 6c 61 74 65 rs.can.be.saved.as.data.for.late
10d9e0 72 20 75 73 65 2e 0a 40 69 74 65 6d 20 49 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 r.use..@item.Interactively.creat
10da00 65 64 20 66 69 6c 74 65 72 73 20 72 65 6d 61 69 6e 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 ed.filters.remain.in.the.filter.
10da20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e 75 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 2e 0a selection.menu.for.the.session..
10da40 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 40 6e 6f 64 65 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f @end.itemize..@node.Filter.Compo
10da60 6e 65 6e 74 73 0a 40 73 65 63 74 69 6f 6e 20 46 69 6c 74 65 72 20 43 6f 6d 70 6f 6e 65 6e 74 73 nents.@section.Filter.Components
10da80 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
10daa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10dac0 2d 2d 2d 2d 0a 54 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 63 6f 6e 73 69 73 74 73 20 ----.The.filter.system.consists.
10dae0 6f 66 20 61 20 66 65 77 20 64 69 66 66 65 72 65 6e 74 20 6d 65 63 68 61 6e 69 73 6d 73 2e 0a 54 of.a.few.different.mechanisms..T
10db00 68 65 72 65 20 61 72 65 20 66 61 63 74 6f 72 69 65 73 20 74 6f 20 6d 61 6b 65 20 66 69 6c 74 65 here.are.factories.to.make.filte
10db20 72 73 2e 20 54 68 65 72 65 20 69 73 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 0a 74 6f rs..There.is.the.filter.stack.to
10db40 20 6d 61 6e 61 67 65 20 74 68 65 20 63 72 65 61 74 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 .manage.the.creation.and.use.of.
10db60 66 69 6c 74 65 72 73 2e 20 46 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 6d 61 64 65 20 6f 66 20 filters..Filters.can.be.made.of.
10db80 66 69 6c 74 65 72 73 2e 0a 0a 54 68 65 72 65 20 69 73 20 74 68 65 20 63 61 63 68 65 20 73 74 61 filters...There.is.the.cache.sta
10dba0 63 6b 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 73 61 76 69 6e 67 20 6f 66 20 61 20 73 65 74 ck.to.handle.the.saving.of.a.set
10dbc0 20 6f 66 20 66 69 6c 74 65 72 65 64 20 72 65 73 75 6c 74 73 0a 69 6e 74 6f 20 61 20 72 65 64 75 .of.filtered.results.into.a.redu
10dbe0 63 65 64 20 64 61 74 61 62 61 73 65 20 63 61 63 68 65 20 66 6f 72 20 73 75 62 73 65 71 75 65 6e ced.database.cache.for.subsequen
10dc00 74 20 66 69 6c 74 65 72 73 2e 0a 0a 54 68 65 72 65 20 69 73 20 74 68 65 20 66 69 6c 74 65 72 20 t.filters...There.is.the.filter.
10dc20 72 69 6e 67 20 66 6f 72 20 71 75 69 63 6b 6c 79 20 73 77 69 74 63 68 69 6e 67 20 62 65 74 77 65 ring.for.quickly.switching.betwe
10dc40 65 6e 20 63 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 66 69 6c 74 65 72 73 2e 0a 54 68 69 73 20 66 en.commonly.used.filters..This.f
10dc60 69 6c 74 65 72 20 69 73 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 ilter.is.combined.with.the.curre
10dc80 6e 74 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 74 6f 20 72 65 6e 64 65 72 20 72 65 73 75 6c 74 nt.filter.stack.to.render.result
10dca0 73 2e 0a 0a 40 69 74 65 6d 69 7a 65 20 40 62 75 6c 6c 65 74 0a 40 69 74 65 6d 20 46 69 6c 74 65 s...@itemize.@bullet.@item.Filte
10dcc0 72 20 46 61 63 74 6f 72 69 65 73 20 2d 20 54 6f 20 6d 61 6b 65 20 66 69 6c 74 65 72 20 66 75 6e r.Factories.-.To.make.filter.fun
10dce0 63 74 69 6f 6e 73 2e 0a 40 69 74 65 6d 20 46 69 6c 74 65 72 73 20 20 20 20 20 20 20 20 20 20 2d ctions..@item.Filters..........-
10dd00 20 44 65 66 69 6e 65 64 20 61 73 20 64 61 74 61 2e 20 44 79 6e 61 6d 69 63 61 6c 6c 79 20 63 72 .Defined.as.data..Dynamically.cr
10dd20 65 61 74 65 64 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 40 69 74 65 6d 20 46 69 eated.lambda.functions..@item.Fi
10dd40 6c 74 65 72 20 6d 65 6e 75 20 20 20 20 20 20 2d 20 41 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 lter.menu......-.A.customizable.
10dd60 72 69 6e 67 20 6f 66 20 66 61 63 74 6f 72 69 65 73 20 61 6e 64 20 74 68 65 69 72 20 72 69 6e 67 ring.of.factories.and.their.ring
10dd80 73 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 40 69 74 65 6d 20 4d 75 6c 74 69 2d 66 69 6c 74 65 72 s.of.filters..@item.Multi-filter
10dda0 20 20 20 20 20 2d 20 41 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 74 6f 20 63 72 65 61 74 .....-.A.filter.factory.to.creat
10ddc0 65 20 66 69 6c 74 65 72 73 20 6d 61 64 65 20 6f 66 20 66 69 6c 74 65 72 73 2e 0a 40 69 74 65 6d e.filters.made.of.filters..@item
10dde0 20 4d 65 74 61 2d 66 69 6c 74 65 72 20 20 20 20 20 20 2d 20 41 20 6d 75 6c 74 69 2d 66 69 6c 74 .Meta-filter......-.A.multi-filt
10de00 65 72 20 64 61 74 61 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 40 69 74 65 6d 20 54 68 65 20 66 69 er.data.definition..@item.The.fi
10de20 6c 74 65 72 20 73 74 61 63 6b 20 2d 20 41 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 6d 61 6e 69 70 lter.stack.-.A.meta-filter.manip
10de40 75 6c 61 74 6f 72 20 61 6e 64 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 63 72 65 61 74 6f 72 2e ulator.and.multi-filter.creator.
10de60 0a 40 69 74 65 6d 20 54 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 20 2d 20 41 20 73 74 61 63 .@item.The.cache.stack..-.A.stac
10de80 6b 20 6f 66 20 64 61 74 61 62 61 73 65 20 63 61 63 68 65 73 2e 0a 40 69 74 65 6d 20 54 68 65 20 k.of.database.caches..@item.The.
10dea0 66 69 6c 74 65 72 20 72 69 6e 67 20 20 2d 20 41 20 73 75 62 73 65 74 20 6f 66 20 63 6f 6e 76 65 filter.ring..-.A.subset.of.conve
10dec0 6e 69 65 6e 74 20 74 6f 20 75 73 65 20 66 69 6c 74 65 72 73 2e 0a 40 65 6e 64 20 69 74 65 6d 69 nient.to.use.filters..@end.itemi
10dee0 7a 65 0a 0a 40 6e 6f 64 65 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 0a 40 73 65 63 74 ze..@node.Filter.Factories.@sect
10df00 69 6f 6e 20 46 69 6c 74 65 72 20 46 61 63 74 6f 72 69 65 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ion.Filter.Factories.-----------
10df20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10df40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 46 69 6c 74 65 72 20 ------------------------.Filter.
10df60 66 61 63 74 6f 72 69 65 73 20 6d 61 6b 65 20 66 69 6c 74 65 72 73 20 77 68 69 63 68 20 61 72 65 factories.make.filters.which.are
10df80 20 73 69 6d 70 6c 79 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 0a 74 61 6b .simply.test.functions.which.tak
10dfa0 65 20 61 20 74 72 61 63 6b 20 61 6e 64 20 72 65 74 75 72 6e 20 74 72 75 65 20 6f 72 20 66 61 6c e.a.track.and.return.true.or.fal
10dfc0 73 65 2e 0a 0a 46 61 63 74 6f 72 69 65 73 20 61 72 65 20 72 65 67 69 73 74 65 72 65 64 20 77 69 se...Factories.are.registered.wi
10dfe0 74 68 20 74 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 20 73 79 73 74 65 6d 20 73 6f 20 74 68 61 th.the.Emms-filter.system.so.tha
10e000 74 20 74 68 65 79 20 68 61 76 65 0a 6e 61 6d 65 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 t.they.have.names.that.can.be.re
10e020 66 65 72 65 6e 63 65 64 20 6c 61 74 65 72 2e 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 72 65 ferenced.later..Additionally,.re
10e040 67 69 73 74 72 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 61 0a 70 72 6f 6d 70 74 20 61 6e 64 gistration.includes.a.prompt.and
10e060 20 70 61 72 61 6d 65 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 54 68 69 73 20 61 6c 6c 6f .parameter.definition..This.allo
10e080 77 73 20 74 68 65 20 45 6d 6d 73 2d 66 69 6c 74 65 72 73 20 70 72 6f 6d 70 74 69 6e 67 0a 73 79 ws.the.Emms-filters.prompting.sy
10e0a0 73 74 65 6d 20 74 6f 20 70 72 6f 76 69 64 65 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 69 stem.to.provide.an.interactive.i
10e0c0 6e 74 65 72 66 61 63 65 20 74 6f 20 61 6e 79 20 66 69 6c 74 65 72 20 66 61 63 74 6f 72 79 20 69 nterface.to.any.filter.factory.i
10e0e0 6e 0a 6f 72 64 65 72 20 74 6f 20 63 72 65 61 74 65 20 6e 65 77 20 66 69 6c 74 65 72 73 20 61 74 n.order.to.create.new.filters.at
10e100 20 61 6e 79 20 74 69 6d 65 2e 0a 0a 46 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 64 65 70 .any.time...Filter.factories.dep
10e120 65 6e 64 20 75 70 6f 6e 20 6c 65 78 69 63 61 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 69 end.upon.lexical.context.of.thei
10e140 72 20 70 61 72 61 6d 65 74 65 72 73 2e 20 49 6e 0a 6f 72 64 65 72 20 74 6f 20 68 61 76 65 20 64 r.parameters..In.order.to.have.d
10e160 61 74 61 20 76 61 6c 75 65 73 20 74 68 61 74 20 73 74 69 63 6b 20 61 66 74 65 72 20 66 75 6e 63 ata.values.that.stick.after.func
10e180 74 69 6f 6e 20 63 72 65 61 74 69 6f 6e 20 74 68 65 72 65 0a 69 73 20 6c 65 74 20 77 69 74 68 20 tion.creation.there.is.let.with.
10e1a0 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 20 74 6f 20 65 6e 73 75 72 65 20 74 68 65 20 66 61 lexical-binding.to.ensure.the.fa
10e1c0 63 74 6f 72 79 20 62 65 68 61 76 65 73 20 61 73 20 65 78 70 65 63 74 65 64 2e 0a 54 68 69 73 20 ctory.behaves.as.expected..This.
10e1e0 74 72 61 6e 73 66 65 72 73 20 74 68 65 20 76 61 6c 75 65 73 20 74 6f 20 6c 6f 63 61 6c 20 76 61 transfers.the.values.to.local.va
10e200 6c 75 65 73 20 61 6e 64 20 75 73 65 73 20 74 68 65 6d 20 61 73 20 6e 6f 72 6d 61 6c 0a 77 69 74 lues.and.uses.them.as.normal.wit
10e220 68 69 6e 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 hin.the.returned.#'(lambda.(trac
10e240 6b 29 2e 2e 2e 29 20 61 6e 6f 6e 79 6d 6f 75 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 41 73 20 61 k)...).anonymous.function...As.a
10e260 6e 20 65 78 61 6d 70 6c 65 2c 20 68 65 72 65 20 69 73 20 74 68 65 20 67 65 6e 65 72 69 63 20 66 n.example,.here.is.the.generic.f
10e280 69 65 6c 64 2d 63 6f 6d 70 61 72 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 49 74 20 74 61 6b 65 73 20 ield-compare.function..It.takes.
10e2a0 61 6e 20 6f 70 65 72 61 74 6f 72 20 66 75 6e 63 74 69 6f 6e 2c 20 61 20 66 69 65 6c 64 20 6e 61 an.operator.function,.a.field.na
10e2c0 6d 65 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 63 6f 6d 70 61 72 65 2e 0a 54 68 69 me.and.the.value.to.compare..Thi
10e2e0 73 20 73 69 6e 67 6c 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 61 20 6e 65 77 20 66 s.single.function.can.be.a.new.f
10e300 61 63 74 6f 72 79 20 66 6f 72 20 61 6e 79 20 64 61 74 61 20 66 69 65 6c 64 0a 75 73 69 6e 67 20 actory.for.any.data.field.using.
10e320 61 6e 79 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 77 65 20 77 6f 75 6c 64 any.comparison.function.we.would
10e340 20 6c 69 6b 65 2e 0a 0a 40 6c 69 73 70 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 69 6c 74 65 72 .like...@lisp.(defun.emms-filter
10e360 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 20 28 6f 70 65 s-make-filter-field-compare.(ope
10e380 72 61 74 6f 72 2d 66 75 6e 63 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 2d 76 61 6c 29 0a 20 20 rator-func.field.compare-val)...
10e3a0 22 4d 61 6b 65 20 61 20 66 69 6c 74 65 72 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 46 49 45 "Make.a.filter.that.compares.FIE
10e3c0 4c 44 20 74 6f 20 43 4f 4d 50 41 52 45 2d 56 41 4c 55 45 20 77 69 74 68 20 4f 50 45 52 41 54 4f LD.to.COMPARE-VALUE.with.OPERATO
10e3e0 52 2d 46 55 4e 43 2e 0a 57 6f 72 6b 73 20 66 6f 72 20 6e 75 6d 62 65 72 20 66 69 65 6c 64 73 20 R-FUNC..Works.for.number.fields.
10e400 61 6e 64 20 73 74 72 69 6e 67 20 66 69 65 6c 64 73 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 61 and.string.fields.provided.the.a
10e420 70 70 72 6f 70 72 69 61 74 65 0a 74 79 70 65 20 6d 61 74 63 68 20 62 65 74 77 65 65 6e 20 76 61 ppropriate.type.match.between.va
10e440 6c 75 65 73 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e lues.and.the.comparison.function
10e460 2e 20 50 61 72 74 69 61 6c 73 20 63 61 6e 0a 65 61 73 69 6c 79 20 6d 61 6b 65 20 6d 6f 72 65 20 ..Partials.can.easily.make.more.
10e480 73 70 65 63 69 66 69 63 20 66 61 63 74 6f 72 79 20 66 75 6e 63 74 69 6f 6e 73 20 66 72 6f 6d 20 specific.factory.functions.from.
10e4a0 74 68 69 73 20 6f 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 this.one."...(let.((local-operat
10e4c0 6f 72 20 6f 70 65 72 61 74 6f 72 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.operator-func)...............
10e4e0 20 20 28 6c 6f 63 61 6c 2d 66 69 65 6c 64 20 66 69 65 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 ..(local-field.field)...........
10e500 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 63 6f 6d 70 61 72 65 2d 76 61 6c 20 63 6f 6d 70 61 72 65 ......(local-compare-val.compare
10e520 2d 76 61 6c 29 29 0a 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 74 72 61 63 6b 29 0a 20 20 20 -val)).....#'(lambda.(track)....
10e540 20 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 2d 76 61 6c 20 28 65 6d 6d 73 2d 74 72 61 63 .....(let.((track-val.(emms-trac
10e560 6b 2d 67 65 74 20 74 72 61 63 6b 20 6c 6f 63 61 6c 2d 66 69 65 6c 64 29 29 29 0a 20 20 20 20 20 k-get.track.local-field)))......
10e580 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 2d 76 61 6c 0a 20 .....(and............track-val..
10e5a0 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 6f 63 61 6c 2d 6f 70 65 72 61 74 6f ..........(funcall.local-operato
10e5c0 72 20 6c 6f 63 61 6c 2d 63 6f 6d 70 61 72 65 2d 76 61 6c 20 74 72 61 63 6b 2d 76 61 6c 29 29 29 r.local-compare-val.track-val)))
10e5e0 29 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 0a 40 6e 6f 64 65 20 46 61 63 74 6f 72 79 20 52 65 ))).@end.lisp...@node.Factory.Re
10e600 67 69 73 74 72 61 74 69 6f 6e 0a 40 73 65 63 74 69 6f 6e 20 46 61 63 74 6f 72 79 20 52 65 67 69 gistration.@section.Factory.Regi
10e620 73 74 72 61 74 69 6f 6e 0a 0a 52 65 67 69 73 74 65 72 69 6e 67 20 61 20 66 61 63 74 6f 72 79 20 stration..Registering.a.factory.
10e640 61 73 73 6f 63 69 61 74 65 73 20 61 20 6e 61 6d 65 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 61 6e associates.a.name,.a.function.an
10e660 64 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 0a 64 65 66 69 6e 69 74 69 6f 6e 73 20 73 d.a.list.of.prompt.definitions.s
10e680 6f 20 74 68 61 74 20 77 65 20 6d 61 79 20 63 72 65 61 74 65 20 66 69 6c 74 65 72 73 20 69 6e 74 o.that.we.may.create.filters.int
10e6a0 65 72 61 63 74 69 76 65 6c 79 20 62 79 20 6e 61 6d 65 2e 20 54 68 65 0a 70 72 6f 6d 70 74 69 6e eractively.by.name..The.promptin
10e6c0 67 20 73 79 73 74 65 6d 20 77 69 6c 6c 20 63 6f 65 72 63 65 20 74 68 65 20 76 61 6c 75 65 73 20 g.system.will.coerce.the.values.
10e6e0 67 69 76 65 6e 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 74 79 70 65 0a 70 72 6f 76 given.to.the.specified.type.prov
10e700 69 64 69 6e 67 20 73 65 6c 65 63 74 20 6c 69 73 74 73 20 61 73 20 69 6e 64 69 63 61 74 65 64 2e iding.select.lists.as.indicated.
10e720 0a 0a 54 68 65 20 66 61 63 74 6f 72 79 20 70 72 6f 6d 70 74 20 64 61 74 61 20 69 73 20 75 73 65 ..The.factory.prompt.data.is.use
10e740 64 20 74 6f 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 72 65 61 74 65 20 6e 65 77 20 66 69 d.to.interactively.create.new.fi
10e760 6c 74 65 72 73 2e 0a 41 20 70 72 6f 6d 70 74 20 69 73 20 20 28 70 72 6f 6d 70 74 20 28 74 79 70 lters..A.prompt.is..(prompt.(typ
10e780 65 20 2e 20 73 65 6c 65 63 74 2d 6c 69 73 74 29 29 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f e...select-list)).if.there.is.no
10e7a0 0a 73 65 6c 65 63 74 20 6c 69 73 74 20 77 65 20 72 65 61 64 20 74 68 65 20 76 61 6c 75 65 20 61 .select.list.we.read.the.value.a
10e7c0 6e 64 20 63 6f 65 72 63 65 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 74 68 65 0a 74 79 70 65 20 nd.coerce.the.value.to.the.type.
10e7e0 61 73 20 6e 65 65 64 65 64 2e 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 6b 6e 6f 77 6e 20 as.needed...These.are.the.known.
10e800 63 6f 65 72 63 69 6f 6e 20 74 79 70 65 73 2e 0a 0a 40 69 74 65 6d 69 7a 65 20 40 62 75 6c 6c 65 coercion.types...@itemize.@bulle
10e820 74 0a 40 69 74 65 6d 20 3a 6e 75 6d 62 65 72 0a 40 69 74 65 6d 20 3a 73 74 72 69 6e 67 0a 40 69 t.@item.:number.@item.:string.@i
10e840 74 65 6d 20 3a 6c 69 73 74 0a 40 69 74 65 6d 20 3a 73 79 6d 62 6f 6c 0a 40 69 74 65 6d 20 3a 66 tem.:list.@item.:symbol.@item.:f
10e860 75 6e 63 74 69 6f 6e 0a 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 48 65 72 65 20 69 73 20 74 68 unction.@end.itemize..Here.is.th
10e880 65 20 47 65 6e 72 65 20 46 61 63 74 6f 72 79 20 77 68 69 63 68 20 69 73 20 61 63 74 75 61 6c 6c e.Genre.Factory.which.is.actuall
10e8a0 79 20 6d 61 64 65 20 66 72 6f 6d 20 74 68 65 20 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 66 61 y.made.from.the.field-compare.fa
10e8c0 63 74 6f 72 79 2e 20 54 68 69 73 20 69 73 20 61 20 63 6f 6d 6d 6f 6e 20 70 61 74 74 65 72 6e 20 ctory..This.is.a.common.pattern.
10e8e0 74 6f 20 63 72 65 61 74 65 20 61 20 73 69 6d 70 6c 65 72 20 66 61 63 74 6f 72 79 20 66 72 6f 6d to.create.a.simpler.factory.from
10e900 20 61 0a 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 6f 6e 65 2e 20 49 74 20 69 73 20 73 69 6d 70 6c .a.more.complex.one..It.is.simpl
10e920 79 20 61 20 70 61 72 74 69 61 6c 20 74 68 61 74 20 69 73 20 72 65 67 69 73 74 65 72 65 64 20 64 y.a.partial.that.is.registered.d
10e940 69 72 65 63 74 6c 79 0a 77 69 74 68 20 61 20 64 69 66 66 65 72 65 6e 74 20 73 65 74 20 6f 66 20 irectly.with.a.different.set.of.
10e960 70 72 6f 6d 70 74 73 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 27 47 65 6e 72 65 3a 27 20 69 prompts..In.this.case.'Genre:'.i
10e980 73 20 74 68 65 20 70 72 6f 6d 70 74 0a 61 6e 64 20 69 74 20 69 73 20 65 78 70 65 63 74 65 64 20 s.the.prompt.and.it.is.expected.
10e9a0 74 6f 20 62 65 20 61 20 73 74 72 69 6e 67 2e 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 66 69 6c to.be.a.string...@lisp.(emms-fil
10e9c0 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 0a 20 22 47 ters-register-filter-factory.."G
10e9e0 65 6e 72 65 22 0a 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 65 6d 6d 73 2d 66 69 enre"..(apply-partially.'emms-fi
10ea00 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a lters-make-filter-field-compare.
10ea20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 2d 65 71 75 61 6c 2d ..................'string-equal-
10ea40 69 67 6e 6f 72 65 2d 63 61 73 65 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 20 27 28 28 22 47 65 ignore-case.'info-genre)..'(("Ge
10ea60 6e 72 65 3a 20 22 20 28 3a 73 74 72 69 6e 67 20 2e 20 6e 69 6c 29 29 29 29 3b 3b 0a 40 65 6e 64 nre:.".(:string...nil))));;.@end
10ea80 20 6c 69 73 70 0a 0a 54 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 .lisp..The.registration.for.the.
10eaa0 63 6f 6d 70 61 72 65 20 66 69 65 6c 64 20 66 61 63 74 6f 72 79 20 69 73 20 6d 6f 72 65 20 63 6f compare.field.factory.is.more.co
10eac0 6d 70 6c 65 78 20 62 65 63 61 75 73 65 20 6f 66 0a 74 68 65 20 70 72 6f 6d 70 74 69 6e 67 20 66 mplex.because.of.the.prompting.f
10eae0 6f 72 20 61 6c 6c 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 2e 20 42 79 20 63 68 61 6e 67 69 or.all.the.parameters..By.changi
10eb00 6e 67 20 6a 75 73 74 20 74 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 0a 6e 61 6d 65 20 61 6e ng.just.the.registration.name.an
10eb20 64 20 74 68 65 20 70 72 6f 6d 70 74 73 20 77 65 20 63 61 6e 20 63 72 65 61 74 65 20 74 77 6f 20 d.the.prompts.we.can.create.two.
10eb40 66 61 63 74 6f 72 69 65 73 2c 20 6f 6e 65 20 66 6f 72 20 6e 75 6d 62 65 72 73 20 61 6e 64 0a 6f factories,.one.for.numbers.and.o
10eb60 6e 65 20 66 6f 72 20 73 74 72 69 6e 67 73 2e 20 4e 6f 74 65 20 74 68 65 20 75 73 65 20 6f 66 20 ne.for.strings..Note.the.use.of.
10eb80 74 68 65 20 60 20 61 6e 64 20 2c 20 74 6f 20 66 6f 72 63 65 20 74 68 65 20 73 65 6c 65 63 74 20 the.`.and.,.to.force.the.select.
10eba0 6c 69 73 74 73 0a 74 6f 20 72 65 73 6f 6c 76 65 20 77 69 74 68 69 6e 20 74 68 65 20 6c 61 6d 62 lists.to.resolve.within.the.lamb
10ebc0 64 61 2e 0a 0a 48 65 72 65 20 69 73 20 74 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 66 6f da...Here.is.the.registration.fo
10ebe0 72 20 74 68 65 20 6e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 20 66 61 63 74 6f r.the.number.field.compare.facto
10ec00 72 79 2e 20 54 68 65 0a 6f 70 65 72 61 74 6f 72 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 61 20 ry..The.operator.function.has.a.
10ec20 73 65 6c 65 63 74 20 6c 69 73 74 20 6f 66 20 6e 75 6d 62 65 72 20 63 6f 6d 70 61 72 69 73 6f 6e select.list.of.number.comparison
10ec40 20 66 75 6e 63 74 69 6f 6e 73 2e 20 54 68 65 0a 66 69 65 6c 64 20 6e 61 6d 65 20 68 61 73 20 61 .functions..The.field.name.has.a
10ec60 20 73 65 6c 65 63 74 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 6e 75 6d 65 72 69 63 20 66 69 .select.list.of.known.numeric.fi
10ec80 65 6c 64 20 6e 61 6d 65 73 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 0a 74 6f 20 63 6f 6d 70 61 eld.names.and.the.value.to.compa
10eca0 72 65 20 6d 75 73 74 20 62 65 20 61 20 6e 75 6d 62 65 72 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 re.must.be.a.number.and.will.be.
10ecc0 63 6f 65 72 63 65 64 20 61 73 20 6e 65 65 64 65 64 2e 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d coerced.as.needed...@lisp.(emms-
10ece0 66 69 6c 74 65 72 73 2d 72 65 67 69 73 74 65 72 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 79 20 filters-register-filter-factory.
10ed00 22 4e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 22 0a 20 20 20 20 20 20 20 20 20 "Number.field.compare"..........
10ed20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 66 69 6c 74 65 72 ....................'emms-filter
10ed40 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 2d 66 69 65 6c 64 2d 63 6f 6d 70 61 72 65 0a 20 20 20 20 s-make-filter-field-compare.....
10ed60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 6d .........................;;.prom
10ed80 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pts.............................
10eda0 20 60 28 28 22 43 6f 6d 70 61 72 65 20 46 75 6e 63 74 69 6f 6e 3a 20 22 0a 20 20 20 20 20 20 20 .`(("Compare.Function:."........
10edc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 75 6e 63 74 .........................(:funct
10ede0 69 6f 6e 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 65 72 2d 63 6f 6d 70 61 ion...,emms-filters-number-compa
10ee00 72 65 2d 66 75 6e 63 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 re-functions))..................
10ee20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 46 69 65 6c 64 20 6e 61 6d 65 3a 20 22 0a 20 20 ..............("Field.name:."...
10ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a ..............................(:
10ee60 73 79 6d 62 6f 6c 20 2e 20 2c 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6e 75 6d 62 65 72 2d 66 69 symbol...,emms-filters-number-fi
10ee80 65 6c 64 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eld-names)).....................
10eea0 20 20 20 20 20 20 20 20 20 20 20 28 22 43 6f 6d 70 61 72 65 20 74 6f 3a 20 22 0a 20 20 20 20 20 ...........("Compare.to:."......
10eec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 6e 75 6d ...........................(:num
10eee0 62 65 72 20 2e 20 6e 69 6c 29 29 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 0a 40 6e 6f 64 65 20 ber...nil)))).@end.lisp...@node.
10ef00 44 65 66 69 6e 65 64 20 46 61 63 74 6f 72 69 65 73 0a 40 73 65 63 74 69 6f 6e 20 44 65 66 69 6e Defined.Factories.@section.Defin
10ef20 65 64 20 46 61 63 74 6f 72 69 65 73 0a 0a 54 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 ed.Factories..There.are.a.number
10ef40 20 6f 66 20 64 65 66 69 6e 65 64 20 66 61 63 74 6f 72 69 65 73 20 64 65 72 69 76 65 64 20 66 72 .of.defined.factories.derived.fr
10ef60 6f 6d 20 6a 75 73 74 20 61 20 66 65 77 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 4d 6f 73 74 20 63 6f om.just.a.few.functions..Most.co
10ef80 6d 6d 6f 6e 20 66 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 6d 61 64 65 20 mmon.filters.can.be.easily.made.
10efa0 77 69 74 68 20 74 68 65 73 65 2e 0a 54 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 70 72 65 64 with.these..There.are.a.few.pred
10efc0 69 66 69 6e 65 64 20 66 69 6c 74 65 72 73 2c 20 62 75 74 20 74 68 61 74 20 68 61 73 20 62 65 65 ifined.filters,.but.that.has.bee
10efe0 6e 20 6b 65 70 74 20 74 6f 20 61 20 6d 69 6e 69 6d 75 6d 0a 61 73 20 66 69 6c 74 65 72 73 20 63 n.kept.to.a.minimum.as.filters.c
10f000 61 6e 20 62 65 20 61 20 76 65 72 79 20 70 65 72 73 6f 6e 61 6c 20 74 68 69 6e 67 2e 20 54 68 65 an.be.a.very.personal.thing..The
10f020 72 65 20 61 72 65 20 61 6c 72 65 61 64 79 20 66 69 6c 74 65 72 73 20 66 6f 72 20 65 76 65 72 79 re.are.already.filters.for.every
10f040 0a 74 72 61 63 6b 20 74 79 70 65 20 61 6e 64 20 74 68 65 72 65 20 6d 61 6e 79 20 63 6f 6d 6d 6f .track.type.and.there.many.commo
10f060 6e 20 67 65 6e 72 65 73 20 61 6e 64 20 79 65 61 72 20 72 61 6e 67 65 20 66 69 6c 74 65 72 73 20 n.genres.and.year.range.filters.
10f080 62 79 20 64 65 63 61 64 65 2e 0a 0a 46 69 6c 74 65 72 20 66 61 63 74 6f 72 69 65 73 20 6c 69 6b by.decade...Filter.factories.lik
10f0a0 65 20 61 72 74 69 73 74 2c 20 61 6c 62 75 6d 20 61 72 74 69 73 74 2c 20 63 6f 6d 70 6f 73 65 72 e.artist,.album.artist,.composer
10f0c0 2c 20 4e 61 6d 65 73 2c 20 65 74 63 2e 0a 61 72 65 20 61 6c 6c 20 6a 75 73 74 20 73 70 65 63 69 ,.Names,.etc..are.all.just.speci
10f0e0 61 6c 69 7a 65 64 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 20 6f 72 20 74 68 65 20 66 69 65 6c alized.field.compare.or.the.fiel
10f100 64 73 20 73 65 61 72 63 68 20 66 61 63 74 6f 72 69 65 73 2e 0a 0a 46 69 6c 74 65 72 20 66 61 63 ds.search.factories...Filter.fac
10f120 74 6f 72 69 65 73 20 69 6e 63 6c 75 64 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 0a 40 tories.include.the.following...@
10f140 69 74 65 6d 69 7a 65 20 40 62 75 6c 6c 65 74 0a 40 69 74 65 6d 20 41 6c 62 75 6d 0a 40 69 74 65 itemize.@bullet.@item.Album.@ite
10f160 6d 20 41 6c 62 75 6d 2d 61 72 74 69 73 74 0a 40 69 74 65 6d 20 41 6c 6c 20 74 65 78 74 20 66 69 m.Album-artist.@item.All.text.fi
10f180 65 6c 64 73 0a 40 69 74 65 6d 20 41 72 74 69 73 74 0a 40 69 74 65 6d 20 41 72 74 69 73 74 73 0a elds.@item.Artist.@item.Artists.
10f1a0 40 69 74 65 6d 20 41 72 74 69 73 74 73 20 61 6e 64 20 63 6f 6d 70 6f 73 65 72 0a 40 69 74 65 6d @item.Artists.and.composer.@item
10f1c0 20 43 6f 6d 70 6f 73 65 72 0a 40 69 74 65 6d 20 44 69 72 65 63 74 6f 72 79 0a 40 69 74 65 6d 20 .Composer.@item.Directory.@item.
10f1e0 44 75 72 61 74 69 6f 6e 20 6c 65 73 73 0a 40 69 74 65 6d 20 44 75 72 61 74 69 6f 6e 20 6d 6f 72 Duration.less.@item.Duration.mor
10f200 65 0a 40 69 74 65 6d 20 46 69 65 6c 64 73 20 73 65 61 72 63 68 0a 40 69 74 65 6d 20 47 65 6e 72 e.@item.Fields.search.@item.Genr
10f220 65 0a 40 69 74 65 6d 20 47 72 65 61 74 65 72 20 74 68 61 6e 20 59 65 61 72 0a 40 69 74 65 6d 20 e.@item.Greater.than.Year.@item.
10f240 4c 65 73 73 20 74 68 61 6e 20 59 65 61 72 0a 40 69 74 65 6d 20 4d 75 6c 74 69 2d 66 69 6c 74 65 Less.than.Year.@item.Multi-filte
10f260 72 0a 40 69 74 65 6d 20 4e 61 6d 65 73 0a 40 69 74 65 6d 20 4e 61 6d 65 73 20 61 6e 64 20 74 69 r.@item.Names.@item.Names.and.ti
10f280 74 6c 65 73 0a 40 69 74 65 6d 20 4e 6f 74 20 70 6c 61 79 65 64 20 73 69 6e 63 65 0a 40 69 74 65 tles.@item.Not.played.since.@ite
10f2a0 6d 20 4e 6f 74 65 73 0a 40 69 74 65 6d 20 4e 75 6d 62 65 72 20 66 69 65 6c 64 20 63 6f 6d 70 61 m.Notes.@item.Number.field.compa
10f2c0 72 65 0a 40 69 74 65 6d 20 4f 72 63 68 65 73 74 72 61 0a 40 69 74 65 6d 20 50 65 72 66 6f 72 6d re.@item.Orchestra.@item.Perform
10f2e0 65 72 0a 40 69 74 65 6d 20 50 6c 61 79 65 64 20 73 69 6e 63 65 0a 40 69 74 65 6d 20 53 74 72 69 er.@item.Played.since.@item.Stri
10f300 6e 67 20 66 69 65 6c 64 20 63 6f 6d 70 61 72 65 0a 40 69 74 65 6d 20 54 69 74 6c 65 0a 40 69 74 ng.field.compare.@item.Title.@it
10f320 65 6d 20 54 69 74 6c 65 73 0a 40 69 74 65 6d 20 54 72 61 63 6b 20 74 79 70 65 0a 40 69 74 65 6d em.Titles.@item.Track.type.@item
10f340 20 59 65 61 72 20 72 61 6e 67 65 0a 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 0a 40 6e 6f 64 65 .Year.range.@end.itemize...@node
10f360 20 44 65 66 69 6e 69 6e 67 20 46 69 6c 74 65 72 73 0a 40 73 65 63 74 69 6f 6e 20 44 65 66 69 6e .Defining.Filters.@section.Defin
10f380 69 6e 67 20 46 69 6c 74 65 72 73 0a 0a 4d 61 6b 69 6e 67 20 61 20 66 69 6c 74 65 72 20 69 6e 20 ing.Filters..Making.a.filter.in.
10f3a0 65 6c 69 73 70 20 66 72 6f 6d 20 61 20 66 61 63 74 6f 72 79 20 69 73 20 65 61 73 79 2e 0a 0a 28 elisp.from.a.factory.is.easy...(
10f3c0 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 3c 46 61 63 74 6f 72 emms-filters-make-filter.<Factor
10f3e0 79 20 4e 61 6d 65 3e 20 3c 46 69 6c 74 65 72 20 4e 61 6d 65 3e 20 3c 46 61 63 74 6f 72 79 20 50 y.Name>.<Filter.Name>.<Factory.P
10f400 61 72 61 6d 65 74 65 72 73 3e 29 0a 0a 54 68 65 20 47 65 6e 72 65 20 46 61 63 74 6f 72 79 20 74 arameters>)..The.Genre.Factory.t
10f420 61 6b 65 73 20 6f 6e 65 20 73 74 72 69 6e 67 20 61 72 67 75 6d 65 6e 74 2e 0a 40 6c 69 73 70 0a akes.one.string.argument..@lisp.
10f440 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 20 22 47 65 6e 72 65 (emms-filters-make-filter."Genre
10f460 22 20 22 4d 79 20 47 65 6e 72 65 20 66 69 6c 74 65 72 22 20 22 53 6f 6d 65 76 61 6c 75 65 22 29 "."My.Genre.filter"."Somevalue")
10f480 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 4d 61 6b 65 20 61 20 6c 6f 74 20 6f 66 20 66 69 6c 74 65 72 .@end.lisp..Make.a.lot.of.filter
10f4a0 73 20 61 74 20 6f 6e 63 65 20 77 69 74 68 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 s.at.once.with.emms-filters-make
10f4c0 2d 66 69 6c 74 65 72 73 2e 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d -filters...@lisp.(emms-filters-m
10f4e0 61 6b 65 2d 66 69 6c 74 65 72 73 20 27 28 28 22 47 65 6e 72 65 22 20 22 57 61 6c 74 7a 22 20 20 ake-filters.'(("Genre"."Waltz"..
10f500 20 20 20 20 22 77 61 6c 74 7a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."waltz")....................
10f520 20 28 22 47 65 6e 72 65 22 20 22 53 61 6c 73 61 22 20 20 20 20 20 20 22 73 61 6c 73 61 22 29 0a .("Genre"."Salsa"......"salsa").
10f540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 42 6c ....................("Genre"."Bl
10f560 75 65 73 22 20 20 20 20 20 20 22 62 6c 75 65 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ues"......"blues")..............
10f580 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 4a 61 7a 7a 22 20 20 20 20 20 20 20 22 6a 61 .......("Genre"."Jazz"......."ja
10f5a0 7a 7a 22 29 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 46 69 6c 74 65 72 73 20 63 61 6e 20 62 65 zz"))).@end.lisp..Filters.can.be
10f5c0 20 65 61 73 69 6c 79 20 63 72 65 61 74 65 64 20 69 6e 74 65 72 61 63 74 69 76 6c 79 2e 0a 4a 75 .easily.created.interactivly..Ju
10f5e0 73 74 20 70 75 73 68 20 61 20 66 69 6c 74 65 72 20 6f 6e 74 6f 20 74 68 65 20 73 74 61 63 6b 20 st.push.a.filter.onto.the.stack.
10f600 77 69 74 68 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 7d with.@command{emms-filters-push}
10f620 2c 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 7d 2c 20 40 63 ,.@command{emms-filters-and},.@c
10f640 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 7d 2c 20 40 63 6f 6d 6d 61 6e ommand{emms-filters-or},.@comman
10f660 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 7d 2c 0a 6f 72 20 40 63 6f 6d d{emms-filters-and-not},.or.@com
10f680 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 7d 2c 0a 73 65 6c 65 63 mand{emms-filters-squash},.selec
10f6a0 74 20 27 6e 65 77 20 66 69 6c 74 65 72 27 20 74 68 65 6e 20 79 6f 75 72 20 66 61 63 74 6f 72 79 t.'new.filter'.then.your.factory
10f6c0 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 70 72 6f 6d 70 74 73 2e 0a 0a 46 69 6c 74 65 72 .and.follow.the.prompts...Filter
10f6e0 73 20 61 72 65 20 61 64 64 65 64 20 62 79 20 6e 61 6d 65 20 74 6f 20 74 68 65 69 72 20 72 65 73 s.are.added.by.name.to.their.res
10f700 70 65 63 74 69 76 65 20 66 61 63 74 6f 72 79 27 73 20 66 69 6c 74 65 72 20 72 69 6e 67 2e 0a 48 pective.factory's.filter.ring..H
10f720 65 72 65 20 61 72 65 20 73 6f 6d 65 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 ere.are.some.more.complex.filter
10f740 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 69 6e 63 6c 75 64 69 6e 67 20 73 6f 6d 65 0a 4d 75 6c 74 .definitions.including.some.Mult
10f760 69 2d 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 73 2c 20 6f 72 20 6d 65 74 61 2d 66 69 i-filter.definitions,.or.meta-fi
10f780 6c 74 65 72 73 20 77 68 69 63 68 20 61 72 65 20 73 69 6d 70 6c 79 20 6c 69 73 74 73 0a 6f 66 20 lters.which.are.simply.lists.of.
10f7a0 66 69 6c 74 65 72 73 20 62 79 20 6e 61 6d 65 2c 20 74 68 65 79 20 61 72 65 20 66 75 6e 63 74 69 filters.by.name,.they.are.functi
10f7c0 6f 6e 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 77 68 61 74 0a 69 73 20 62 65 69 onally.equivalent.to.what.is.bei
10f7e0 6e 67 20 62 75 69 6c 74 20 62 79 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 0a 0a 40 ng.built.by.the.filter.stack...@
10f800 6c 69 73 70 0a 28 73 65 74 71 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 0a 20 20 20 20 20 20 27 lisp.(setq.tango-filters.......'
10f820 28 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 30 30 2d 31 39 32 39 22 20 31 39 30 30 20 (("Year.range"."1900-1929".1900.
10f840 31 39 32 39 29 0a 20 20 20 20 20 20 20 20 28 22 59 65 61 72 20 72 61 6e 67 65 22 20 22 31 39 32 1929).........("Year.range"."192
10f860 39 2d 31 39 33 37 22 20 31 39 32 39 20 31 39 33 37 29 0a 0a 20 20 20 20 20 20 20 20 28 22 44 69 9-1937".1929.1937)..........("Di
10f880 72 65 63 74 6f 72 79 22 20 22 74 61 6e 67 6f 74 75 6e 65 73 22 20 22 74 61 6e 67 6f 74 75 6e 65 rectory"."tangotunes"."tangotune
10f8a0 73 66 6c 61 63 22 29 0a 0a 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 56 61 6c 73 22 sflac")..........("Genre"."Vals"
10f8c0 20 20 20 20 22 76 61 6c 73 22 29 0a 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 20 22 54 61 ...."vals").........("Genre"."Ta
10f8e0 6e 67 6f 22 20 20 20 22 74 61 6e 67 6f 22 29 0a 20 20 20 20 20 20 20 20 28 22 47 65 6e 72 65 22 ngo"..."tango").........("Genre"
10f900 20 22 4d 69 6c 6f 6e 67 61 22 20 22 6d 69 6c 6f 6e 67 61 22 29 0a 0a 20 20 20 20 20 20 20 20 28 ."Milonga"."milonga")..........(
10f920 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 22 31 39 30 30 2d 31 39 "Multi-filter".........."1900-19
10f940 33 37 22 0a 20 20 20 20 20 20 20 20 20 28 28 22 31 39 30 30 2d 31 39 32 39 22 20 22 31 39 32 39 37"..........(("1900-1929"."1929
10f960 2d 31 39 33 37 22 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 -1937")))..........("Multi-filte
10f980 72 22 0a 20 20 20 20 20 20 20 20 20 22 56 61 6c 73 20 7c 20 6d 69 6c 6f 6e 67 61 22 0a 20 20 20 r".........."Vals.|.milonga"....
10f9a0 20 20 20 20 20 20 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 29 29 0a 0a 20 20 20 ......(("Vals"."Milonga"))).....
10f9c0 20 20 20 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 22 56 .....("Multi-filter".........."V
10f9e0 61 6c 73 20 31 39 30 30 2d 31 39 32 39 22 0a 20 20 20 20 20 20 20 20 20 28 28 22 56 61 6c 73 22 als.1900-1929"..........(("Vals"
10fa00 29 20 28 22 31 39 30 30 2d 31 39 32 39 22 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 22 4d 75 6c ).("1900-1929")))..........("Mul
10fa20 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 22 4e 6f 74 20 76 61 6c 73 22 0a 20 ti-filter".........."Not.vals"..
10fa40 20 20 20 20 20 20 20 20 28 28 3a 6e 6f 74 20 22 56 61 6c 73 22 29 29 29 0a 0a 20 20 20 20 20 20 ........((:not."Vals")))........
10fa60 20 20 28 22 4d 75 6c 74 69 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 22 56 61 6c 73 ..("Multi-filter".........."Vals
10fa80 20 6f 72 20 6d 69 6c 6f 6e 67 61 20 31 39 30 30 2d 31 39 33 37 22 0a 20 20 20 20 20 20 20 20 20 .or.milonga.1900-1937"..........
10faa0 28 28 22 56 61 6c 73 22 20 22 4d 69 6c 6f 6e 67 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 (("Vals"."Milonga")...........("
10fac0 31 39 30 30 2d 31 39 32 39 22 20 22 31 39 32 39 2d 31 39 33 37 22 29 29 29 0a 20 20 20 20 20 20 1900-1929"."1929-1937"))).......
10fae0 20 20 29 29 0a 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 2d 66 69 6c 74 65 72 73 ..))..(emms-filters-make-filters
10fb00 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 41 20 6e 65 77 .tango-filters).@end.lisp..A.new
10fb20 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 46 61 63 74 6f 72 79 20 72 69 6e 67 20 61 6c 6f 6e 67 .entry.in.the.Factory.ring.along
10fb40 20 77 69 74 68 20 69 74 27 73 20 66 69 6c 74 65 72 73 0a 63 61 6e 20 61 6c 73 6f 20 62 65 20 65 .with.it's.filters.can.also.be.e
10fb60 61 73 69 6c 79 20 61 64 64 65 64 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 6f 6e asily.added..This.function.decon
10fb80 73 74 72 75 63 74 73 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 0a 74 6f 20 66 61 63 69 6c structs.the.definitions.to.facil
10fba0 69 74 61 74 65 20 74 68 65 20 65 61 73 65 20 6f 66 20 61 64 64 69 74 69 6f 6e 2e 20 49 74 20 63 itate.the.ease.of.addition..It.c
10fbc0 61 6e 20 61 6c 73 6f 20 62 65 20 6d 61 64 65 20 66 72 6f 6d 20 61 0a 73 69 6d 70 6c 65 20 6c 69 an.also.be.made.from.a.simple.li
10fbe0 73 74 20 6f 66 20 6e 61 6d 65 73 20 61 73 20 77 65 6c 6c 2e 20 54 68 65 20 66 69 6c 74 65 72 73 st.of.names.as.well..The.filters
10fc00 20 77 69 6c 6c 20 61 70 70 65 61 72 20 62 6f 74 68 20 75 6e 64 65 72 20 74 68 65 69 72 0a 72 65 .will.appear.both.under.their.re
10fc20 73 70 65 63 74 69 76 65 20 66 61 63 74 6f 72 69 65 73 2c 20 61 6e 64 20 75 6e 64 65 72 20 74 68 spective.factories,.and.under.th
10fc40 69 73 20 6e 65 77 20 6d 65 6e 75 20 69 74 65 6d 20 27 54 61 6e 67 6f 27 2e 0a 54 68 65 79 20 61 is.new.menu.item.'Tango'..They.a
10fc60 72 65 20 6e 6f 74 20 72 65 63 72 65 61 74 65 64 2c 20 62 75 74 20 73 69 6d 70 6c 79 20 6c 69 73 re.not.recreated,.but.simply.lis
10fc80 74 65 64 20 62 79 20 74 68 65 69 72 20 6e 61 6d 65 73 20 74 6f 20 62 65 20 63 68 6f 73 65 6e 2e ted.by.their.names.to.be.chosen.
10fca0 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c ..@lisp.(emms-filters-add-to-fil
10fcc0 74 65 72 2d 6d 65 6e 75 2d 66 72 6f 6d 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 22 54 61 6e 67 6f ter-menu-from-filter-list."Tango
10fce0 22 20 74 61 6e 67 6f 2d 66 69 6c 74 65 72 73 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 48 65 72 65 ".tango-filters).@end.lisp..Here
10fd00 20 69 73 20 74 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 .is.the.easiest.way.to.make.the.
10fd20 66 69 6c 74 65 72 20 72 69 6e 67 20 61 73 20 75 73 65 64 20 62 79 20 74 68 65 20 42 72 6f 77 73 filter.ring.as.used.by.the.Brows
10fd40 65 72 2e 0a 49 74 20 69 73 20 6a 75 73 74 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 20 er..It.is.just.a.list.of.filter.
10fd60 6e 61 6d 65 73 2e 0a 0a 40 6c 69 73 70 0a 28 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 61 6b 65 names...@lisp.(emms-filters-make
10fd80 2d 66 69 6c 74 65 72 2d 72 69 6e 67 20 27 28 22 54 61 6e 67 6f 22 20 22 56 61 6c 73 22 20 22 4d -filter-ring.'("Tango"."Vals"."M
10fda0 69 6c 6f 6e 67 61 22 29 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 65 20 66 69 6c 74 65 72 20 ilonga")).@end.lisp..The.filter.
10fdc0 6d 65 6e 75 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 menu.is.automatically.constructe
10fde0 64 20 61 73 20 61 20 72 69 6e 67 20 6f 66 20 66 61 63 74 6f 72 79 20 6e 61 6d 65 73 0a 61 73 20 d.as.a.ring.of.factory.names.as.
10fe00 27 66 6f 6c 64 65 72 73 27 20 74 68 61 74 20 68 61 76 65 20 61 20 72 69 6e 67 20 6f 66 20 66 69 'folders'.that.have.a.ring.of.fi
10fe20 6c 74 65 72 73 2e 20 54 68 69 73 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 20 63 61 6e lters..This.filter.menu.tree.can
10fe40 20 62 65 0a 61 64 64 65 64 20 74 6f 20 69 6e 20 76 61 72 69 6f 75 73 20 77 61 79 73 2e 20 27 4b .be.added.to.in.various.ways..'K
10fe60 65 65 70 69 6e 67 27 20 61 20 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 eeping'.a.filter.on.the.filter.s
10fe80 74 61 63 6b 20 77 69 6c 6c 0a 74 65 6d 70 6f 72 61 72 69 6c 79 20 61 64 64 20 74 68 65 20 6d 75 tack.will.temporarily.add.the.mu
10fea0 6c 74 69 2d 66 69 6c 74 65 72 20 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 20 66 69 6c 74 65 72 lti-filter.defined.by.the.filter
10fec0 20 73 74 61 63 6b 20 74 6f 20 74 68 65 0a 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 72 69 6e 67 2e .stack.to.the.multi-filter.ring.
10fee0 0a 0a 54 68 65 72 65 20 61 72 65 20 6f 74 68 65 72 20 77 61 79 73 20 74 6f 20 61 64 64 20 74 6f ..There.are.other.ways.to.add.to
10ff00 20 74 68 65 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 2e 0a 40 63 6f 6d 6d 61 6e 64 7b .the.filter.menu.tree..@command{
10ff20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 2d emms-filters-add-to-filter-menu-
10ff40 66 72 6f 6d 2d 66 69 6c 74 65 72 2d 6c 69 73 74 7d 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 63 from-filter-list}.is.used.to.dec
10ff60 6f 6e 73 74 72 75 63 74 0a 61 20 76 61 72 69 61 62 6c 65 20 68 6f 6c 64 69 6e 67 20 66 69 6c 74 onstruct.a.variable.holding.filt
10ff80 65 72 20 64 65 66 69 6e 74 69 6f 6e 73 20 61 73 20 69 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 er.defintions.as.in.the.example.
10ffa0 61 62 6f 76 65 20 69 6e 20 6f 72 64 65 72 0a 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 72 above.in.order.to.create.a.new.r
10ffc0 69 6e 67 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 74 72 65 65 2e 0a 0a 49 6e 20 74 75 72 6e 20 74 ing.in.the.menu.tree...In.turn.t
10ffe0 68 61 74 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d hat.function.uses.@command{emms-
110000 66 69 6c 74 65 72 73 2d 61 64 64 2d 74 6f 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 7d 20 77 68 69 63 filters-add-to-filter-menu}.whic
110020 68 20 74 61 6b 65 73 0a 61 20 66 6f 6c 64 65 72 20 6e 61 6d 65 20 61 6e 64 20 61 20 66 69 6c 74 h.takes.a.folder.name.and.a.filt
110040 65 72 20 6f 72 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 73 20 74 6f 20 70 6c 61 63 65 20 69 er.or.list.of.filters.to.place.i
110060 6e 20 74 68 65 20 72 69 6e 67 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 40 63 6f 6d 6d 61 6e n.the.ring..The.function.@comman
110080 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 64 64 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6c 74 65 d{emms-filters-add-name-to-filte
1100a0 72 2d 6d 65 6e 75 7d 20 77 69 6c 6c 20 61 64 64 20 61 20 66 69 6c 74 65 72 20 62 79 0a 6e 61 6d r-menu}.will.add.a.filter.by.nam
1100c0 65 20 74 6f 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 74 65 72 20 66 6f 6c 64 65 72 2f 66 e.to.an.existing.filter.folder/f
1100e0 61 63 74 6f 72 79 2e 0a 0a 49 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 actory...It.is.also.possible.to.
110100 76 69 65 77 20 74 68 65 20 66 69 6c 74 65 72 20 6d 65 6e 75 20 74 72 65 65 20 61 73 20 61 20 6d view.the.filter.menu.tree.as.a.m
110120 65 73 73 61 67 65 20 77 69 74 68 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 essage.with.@command{emms-filter
110140 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 7d 0a 0a 0a 40 6e 6f 64 65 20 54 68 65 20 s-show-filter-menu}...@node.The.
110160 46 69 6c 74 65 72 20 53 74 61 63 6b 0a 40 73 65 63 74 69 6f 6e 20 54 68 65 20 46 69 6c 74 65 72 Filter.Stack.@section.The.Filter
110180 20 53 74 61 63 6b 0a 0a 54 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 62 75 69 6c 64 73 20 .Stack..The.filter.stack.builds.
1101a0 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 66 69 6c 74 65 72 73 20 61 73 20 79 6f 75 20 70 75 73 68 more.complex.filters.as.you.push
1101c0 20 66 69 6c 74 65 72 73 20 74 6f 0a 69 74 2e 20 41 64 64 69 6e 67 20 74 6f 20 74 68 65 20 66 69 .filters.to.it..Adding.to.the.fi
1101e0 6c 74 65 72 20 6f 72 20 72 65 70 6c 61 63 69 6e 67 20 69 74 20 77 69 74 68 20 61 6e 6f 74 68 65 lter.or.replacing.it.with.anothe
110200 72 20 70 75 73 68 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 0a 6d 65 74 61 2d 66 69 6c 74 65 72 r.push.creates.a.new.meta-filter
110220 20 61 6e 64 20 69 74 27 73 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 .and.it's.multi-filter.function.
110240 74 6f 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 20 54 6f 20 72 65 74 75 72 6e 0a 74 to.the.filter.stack..To.return.t
110260 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 6c 74 65 72 20 73 69 6d 70 6c 79 20 70 6f 70 o.the.previous.filter.simply.pop
110280 20 74 68 65 20 73 74 61 63 6b 2e 20 45 61 63 68 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20 73 .the.stack..Each.change.to.the.s
1102a0 74 61 63 6b 2c 20 63 72 65 61 74 65 73 0a 61 20 6d 65 74 61 2d 66 69 6c 74 65 72 20 61 6e 64 20 tack,.creates.a.meta-filter.and.
1102c0 69 74 27 73 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 6e 73 74 72 75 63 74 65 64 20 6d it's.corresponding.constructed.m
1102e0 65 74 61 2d 66 69 6c 74 65 72 2e 20 41 6e 79 20 63 68 61 6e 67 65 0a 72 65 73 75 6c 74 73 20 69 eta-filter..Any.change.results.i
110300 6e 20 61 20 6e 65 77 20 27 63 75 72 72 65 6e 74 27 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2e 20 n.a.new.'current'.multi-filter..
110320 54 68 65 20 66 69 6c 74 65 72 73 20 61 72 65 20 72 65 70 72 65 73 65 73 65 6e 74 65 64 0a 61 73 The.filters.are.represesented.as
110340 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 66 69 .are.constructed.names.of.the.fi
110360 6c 74 65 72 73 20 74 68 61 74 20 63 72 65 61 74 65 64 20 69 74 2e 0a 0a 54 68 65 20 66 69 6c 74 lters.that.created.it...The.filt
110380 65 72 20 73 74 61 63 6b 20 75 73 65 73 20 6d 65 74 61 2d 66 69 6c 74 65 72 73 20 69 6e 20 61 20 er.stack.uses.meta-filters.in.a.
1103a0 63 6f 6e 73 0a 6c 69 6b 65 20 74 68 69 73 3b 20 28 6e 61 6d 65 20 2e 20 6d 65 74 61 2d 66 69 6c cons.like.this;.(name...meta-fil
1103c0 74 65 72 29 2e 0a 46 69 6c 74 65 72 20 6e 61 6d 65 73 20 66 6f 72 20 6d 65 74 61 2d 66 69 6c 74 ter)..Filter.names.for.meta-filt
1103e0 65 72 73 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 ers.can.be.easily.constructed.fr
110400 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 73 0a 74 68 65 79 20 61 72 65 20 6d 61 64 65 20 66 72 6f om.the.filters.they.are.made.fro
110420 6d 2e 20 54 68 65 79 20 61 72 65 6e 27 74 20 73 68 6f 72 74 20 62 75 74 20 74 68 65 79 20 77 6f m..They.aren't.short.but.they.wo
110440 72 6b 20 77 65 6c 6c 20 65 6e 6f 75 67 68 2e 0a 0a 54 6f 20 75 73 65 20 61 20 66 69 6c 74 65 72 rk.well.enough...To.use.a.filter
110460 2c 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 7d 20 69 74 ,.@command{emms-filters-push}.it
110480 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 0a .to.create.a.new.current.filter.
1104a0 6f 6e 20 74 68 65 20 73 74 61 63 6b 2e 20 49 74 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 61 20 6d on.the.stack..It.will.become.a.m
1104c0 65 74 61 2d 66 69 6c 74 65 72 20 6f 6e 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 61 eta-filter.on.the.filter.stack.a
1104e0 6e 64 20 74 68 65 0a 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 66 69 6c 74 65 72 20 77 69 6c nd.the.current.active.filter.wil
110500 6c 20 62 65 20 61 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 l.be.a.multi-filter.version.of.i
110520 74 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 73 0a 72 65 71 75 69 72 65 64 20 74 6f 20 63 6f 6e t..The.functions.required.to.con
110540 73 74 72 75 63 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 struct.the.current.multi-filter.
110560 61 72 65 20 72 65 73 6f 6c 76 65 64 20 61 74 20 74 68 69 73 20 74 69 6d 65 0a 69 6e 20 61 20 6e are.resolved.at.this.time.in.a.n
110580 65 77 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 2e ew.multi-filter.lambda.function.
1105a0 0a 0a 54 68 65 20 66 69 6c 74 65 72 20 72 69 6e 67 20 77 6f 72 6b 73 20 69 6e 64 65 70 65 6e 64 ..The.filter.ring.works.independ
1105c0 65 6e 74 6c 79 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 2e 20 45 61 63 68 20 ently.of.the.filter.stack..Each.
1105e0 72 65 2d 66 69 6c 74 65 72 69 6e 67 0a 6f 66 20 74 72 61 63 6b 73 20 75 73 65 73 20 74 68 65 20 re-filtering.of.tracks.uses.the.
110600 63 75 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 61 6e 64 20 74 68 65 20 63 75 72 72 current.ring.filter.and.the.curr
110620 65 6e 74 20 66 69 6c 74 65 72 20 74 6f 67 65 74 68 65 72 2e 0a 0a 41 20 66 69 6c 74 65 72 20 6f ent.filter.together...A.filter.o
110640 6e 20 74 68 65 20 73 74 61 63 6b 20 63 61 6e 20 62 65 20 27 6b 65 70 74 27 2e 20 54 68 65 20 66 n.the.stack.can.be.'kept'..The.f
110660 75 6e 63 74 69 6f 6e 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b 65 unction.@command{emms-filters-ke
110680 65 70 7d 0a 77 69 6c 6c 20 63 72 65 61 74 65 20 61 6e 64 20 72 65 67 69 73 74 65 72 20 61 20 6d ep}.will.create.and.register.a.m
1106a0 75 6c 74 69 2d 66 69 6c 74 65 72 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 ulti-filter.of.the.current.filte
1106c0 72 2c 20 61 64 64 69 6e 67 0a 69 74 20 74 6f 20 74 68 65 20 6d 75 6c 74 69 2d 66 69 6c 74 65 72 r,.adding.it.to.the.multi-filter
1106e0 20 6d 65 6e 75 2e 20 54 68 69 73 20 6f 6e 6c 79 20 6c 61 73 74 73 20 75 6e 74 69 6c 20 74 68 65 .menu..This.only.lasts.until.the
110700 20 63 75 72 72 65 6e 74 20 45 6d 61 63 73 0a 73 65 73 73 69 6f 6e 20 65 6e 64 73 2e 20 49 66 20 .current.Emacs.session.ends..If.
110720 40 76 61 72 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6d 75 6c 74 69 2d 66 69 6c 74 65 72 2d 73 @var{emms-filters-multi-filter-s
110740 61 76 65 2d 66 69 6c 65 7d 20 69 73 20 73 65 74 2c 20 6b 65 65 70 20 77 69 6c 6c 0a 61 70 70 65 ave-file}.is.set,.keep.will.appe
110760 6e 64 20 61 20 75 73 61 62 6c 65 20 66 69 6c 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 20 74 6f nd.a.usable.filter.definition.to
110780 20 74 68 65 20 66 69 6c 65 20 66 6f 72 20 72 65 75 73 65 20 61 73 20 79 6f 75 20 77 69 73 68 2e .the.file.for.reuse.as.you.wish.
1107a0 0a 0a 4f 74 68 65 72 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 6d 61 6e 69 70 75 6c 61 74 69 6e ..Other.commands.for.manipulatin
1107c0 67 20 74 68 65 20 73 74 61 63 6b 20 61 72 65 20 6c 69 73 74 65 64 20 68 65 72 65 2e 20 4d 6f 73 g.the.stack.are.listed.here..Mos
1107e0 74 0a 73 68 6f 75 6c 64 20 62 65 20 73 65 6c 66 20 65 78 70 6c 61 6e 61 74 6f 72 79 2c 20 53 71 t.should.be.self.explanatory,.Sq
110800 75 61 73 68 20 63 6c 65 61 72 73 20 74 68 65 20 73 74 61 63 6b 2c 20 6c 65 61 76 69 6e 67 20 74 uash.clears.the.stack,.leaving.t
110820 68 65 0a 74 6f 70 6d 6f 73 74 20 66 69 6c 74 65 72 2e 20 53 6d 61 73 68 20 69 73 20 61 20 63 6c he.topmost.filter..Smash.is.a.cl
110840 65 61 72 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 70 75 73 68 2e 0a 0a 40 69 74 65 6d 69 7a ear.followed.by.a.push...@itemiz
110860 65 20 40 62 75 6c 6c 65 74 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 e.@bullet.@item.@command{emms-fi
110880 6c 74 65 72 73 2d 70 6f 70 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 lters-pop}.@item.@command{emms-f
1108a0 69 6c 74 65 72 73 2d 73 71 75 61 73 68 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d ilters-squash}.@item.@command{em
1108c0 6d 73 2d 66 69 6c 74 65 72 73 2d 73 6d 61 73 68 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 ms-filters-smash}.@item.@command
1108e0 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 6c 65 61 72 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d {emms-filters-clear}.@item.@comm
110900 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 7d 0a 40 69 74 65 6d 20 40 63 6f and{emms-filters-swap}.@item.@co
110920 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 7d 0a 40 69 74 mmand{emms-filters-swap-pop}.@it
110940 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6b 65 65 70 7d 0a 40 em.@command{emms-filters-keep}.@
110960 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 41 6e 20 69 6e 69 74 69 61 6c 20 66 69 6c 74 65 72 20 63 end.itemize..An.initial.filter.c
110980 61 6e 20 62 65 20 63 72 65 61 74 65 64 20 77 69 74 68 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 an.be.created.with.@command{emms
1109a0 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 7d 20 6f 72 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d -filters-push}.or.@command{emms-
1109c0 66 69 6c 74 65 72 73 2d 73 6d 61 73 68 7d 20 77 68 69 63 68 20 69 73 20 61 20 63 6c 65 61 72 20 filters-smash}.which.is.a.clear.
1109e0 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 70 75 73 68 2e 0a 0a 41 64 64 69 6e 67 20 74 6f 20 74 followed.by.a.push...Adding.to.t
110a00 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 69 73 20 64 6f 6e 65 20 77 69 74 68 0a 40 63 6f he.filter.stack.is.done.with.@co
110a20 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 7d 2c 20 40 63 6f 6d 6d 61 6e mmand{emms-filters-and},.@comman
110a40 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 72 7d 2c 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d d{emms-filters-or},.@command{emm
110a60 73 2d 66 69 6c 74 65 72 73 2d 61 6e 64 2d 6e 6f 74 7d 2c 0a 0a 40 6e 6f 64 65 20 54 68 65 20 43 s-filters-and-not},..@node.The.C
110a80 61 63 68 65 20 53 74 61 63 6b 0a 40 73 65 63 74 69 6f 6e 20 54 68 65 20 43 61 63 68 65 20 53 74 ache.Stack.@section.The.Cache.St
110aa0 61 63 6b 0a 0a 54 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 73 69 6d 70 6c 79 ack..The.cache.stack.is.a.simply
110ac0 20 61 20 73 74 61 63 6b 20 6f 66 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 73 74 79 6c 65 20 .a.stack.of.emms-cache-db.style.
110ae0 68 61 73 68 20 74 61 62 6c 65 73 2e 0a 54 68 65 20 66 75 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 hash.tables..The.full.emms-cache
110b00 2d 64 62 20 69 73 20 61 74 20 74 68 65 20 62 61 73 65 20 6f 66 20 74 68 65 20 73 74 61 63 6b 20 -db.is.at.the.base.of.the.stack.
110b20 61 6e 64 20 69 73 20 61 6c 77 61 79 73 20 74 68 65 72 65 2e 0a 45 61 63 68 20 65 6e 74 72 79 20 and.is.always.there..Each.entry.
110b40 69 6e 20 74 68 65 20 73 74 61 63 6b 20 69 73 20 61 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 in.the.stack.is.a.subset.of.the.
110b60 63 61 63 68 65 20 62 65 6c 6f 77 20 69 74 20 61 73 20 61 20 72 65 73 75 6c 74 0a 6f 66 20 66 69 cache.below.it.as.a.result.of.fi
110b80 6c 74 65 72 69 6e 67 2e 20 54 68 65 20 73 74 61 63 6b 20 65 6e 74 72 79 20 6e 61 6d 65 73 20 61 ltering..The.stack.entry.names.a
110ba0 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 73 0a re.constructed.from.the.filters.
110bc0 77 68 69 63 68 20 63 72 65 61 74 65 64 20 74 68 65 6d 2e 0a 0a 46 69 6c 74 65 72 69 6e 67 20 61 which.created.them...Filtering.a
110be0 6e 64 20 64 69 73 70 6c 61 79 69 6e 67 20 6f 66 20 74 72 61 63 6b 73 20 69 73 20 64 6f 6e 65 20 nd.displaying.of.tracks.is.done.
110c00 61 67 61 69 6e 73 74 20 74 68 65 20 74 6f 70 20 63 61 63 68 65 20 6f 6e 20 74 68 65 20 73 74 61 against.the.top.cache.on.the.sta
110c20 63 6b 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 ck...The.function,.@command{emms
110c40 2d 66 69 6c 74 65 72 73 2d 68 61 72 64 2d 66 69 6c 74 65 72 7d 20 69 73 20 74 68 65 20 6d 6f 73 -filters-hard-filter}.is.the.mos
110c60 74 20 63 6f 6d 6d 6f 6e 20 77 61 79 20 74 6f 20 63 72 65 61 74 65 0a 61 6e 20 65 6e 74 72 79 20 t.common.way.to.create.an.entry.
110c80 6f 6e 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 2e 20 49 74 20 63 72 65 61 74 65 73 20 61 on.the.cache.stack..It.creates.a
110ca0 20 63 61 63 68 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 0a 61 .cache.from.the.current.filter.a
110cc0 6e 64 20 63 61 63 68 65 2c 20 61 6e 64 20 70 75 73 68 65 73 20 69 74 20 74 6f 20 74 68 65 20 73 nd.cache,.and.pushes.it.to.the.s
110ce0 74 61 63 6b 2e 20 54 68 69 73 20 64 6f 65 73 20 72 65 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 tack..This.does.render.the.curre
110d00 6e 74 20 66 69 6c 74 65 72 0a 61 73 20 6e 6f 6e 2d 65 66 66 65 63 74 69 76 65 2c 20 73 6f 20 69 nt.filter.as.non-effective,.so.i
110d20 74 20 63 61 6e 20 62 65 20 63 6c 65 61 72 65 64 2c 20 6f 72 20 63 6f 6e 74 69 6e 75 65 20 74 6f t.can.be.cleared,.or.continue.to
110d40 20 67 72 6f 77 20 64 65 70 65 6e 64 69 6e 67 0a 6f 6e 20 79 6f 75 72 20 64 65 73 69 72 65 73 2e .grow.depending.on.your.desires.
110d60 20 20 49 74 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 6a 75 73 74 20 6b 65 65 70 20 ..It.can.be.useful.to.just.keep.
110d80 67 6f 69 6e 67 20 73 6f 20 74 68 61 74 20 72 65 74 75 72 6e 69 6e 67 0a 74 6f 20 74 68 65 20 70 going.so.that.returning.to.the.p
110da0 72 65 76 69 6f 75 73 20 73 74 61 74 65 20 69 73 20 70 6f 73 73 69 62 6c 65 2e 0a 0a 4f 6e 65 20 revious.state.is.possible...One.
110dc0 6f 66 20 74 68 65 20 64 72 69 76 69 6e 67 20 66 6f 72 63 65 73 20 77 69 74 68 20 63 72 65 61 74 of.the.driving.forces.with.creat
110de0 69 6e 67 20 63 61 63 68 65 20 65 6e 74 72 69 65 73 20 77 61 73 20 74 68 65 20 77 61 79 20 74 68 ing.cache.entries.was.the.way.th
110e00 61 74 0a 74 68 65 20 45 6d 6d 73 2d 62 72 6f 77 73 65 72 20 68 61 73 20 61 6c 77 61 79 73 20 64 at.the.Emms-browser.has.always.d
110e20 6f 6e 65 20 73 65 61 72 63 68 69 6e 67 2e 20 20 54 6f 20 74 68 69 73 20 65 6e 64 2c 20 61 64 64 one.searching...To.this.end,.add
110e40 69 74 69 6f 6e 61 6c 0a 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 77 61 73 20 63 72 65 61 74 65 itional.functionality.was.create
110e60 64 20 74 6f 20 62 65 74 74 65 72 20 65 6d 75 6c 61 74 65 20 74 68 65 20 62 72 6f 77 73 65 72 27 d.to.better.emulate.the.browser'
110e80 73 20 77 61 79 20 6f 66 20 64 6f 69 6e 67 0a 74 68 69 6e 67 73 2e 20 48 6f 77 65 76 65 72 20 74 s.way.of.doing.things..However.t
110ea0 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 70 72 6f 76 69 64 65 73 20 61 20 6c 6f 74 20 6f 66 he.cache.stack.provides.a.lot.of
110ec0 20 66 6c 65 78 69 62 69 6c 69 74 79 20 61 6e 64 20 70 6f 77 65 72 0a 69 6e 20 68 6f 77 20 79 6f .flexibility.and.power.in.how.yo
110ee0 75 20 6e 61 76 69 67 61 74 65 20 61 6e 64 20 73 65 61 72 63 68 20 79 6f 75 72 20 6d 75 73 69 63 u.navigate.and.search.your.music
110f00 2e 20 53 69 6d 70 6c 79 20 62 65 69 6e 67 20 61 62 6c 65 20 74 6f 20 72 65 70 65 61 74 65 64 6c ..Simply.being.able.to.repeatedl
110f20 79 0a 73 65 61 72 63 68 20 61 6e 64 20 6e 61 72 72 6f 77 20 74 68 65 20 64 61 74 61 20 69 73 20 y.search.and.narrow.the.data.is.
110f40 71 75 69 74 65 20 70 6f 77 65 72 66 75 6c 20 61 6c 6c 20 62 79 20 69 74 73 65 6c 66 2e 0a 0a 4f quite.powerful.all.by.itself...O
110f60 6e 65 2d 53 68 6f 74 20 66 69 6c 74 65 72 69 6e 67 20 61 6c 6c 6f 77 73 20 62 65 68 61 76 69 6f ne-Shot.filtering.allows.behavio
110f80 72 61 6c 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 ral.backward.compatibility.with.
110fa0 74 68 65 0a 62 72 6f 77 73 65 72 2e 20 4f 6e 65 20 73 68 6f 74 73 20 77 65 72 65 20 63 72 65 61 the.browser..One.shots.were.crea
110fc0 74 65 64 20 74 6f 20 65 6d 75 6c 61 74 65 20 74 68 65 20 62 72 6f 77 73 65 72 27 73 20 62 65 68 ted.to.emulate.the.browser's.beh
110fe0 61 76 69 6f 72 20 6f 66 0a 63 72 65 61 74 69 6e 67 20 61 20 73 75 62 73 65 74 20 63 61 63 68 65 avior.of.creating.a.subset.cache
111000 20 66 72 6f 6d 20 73 65 61 72 63 68 2d 62 79 2e 20 4f 6e 65 20 73 68 6f 74 73 20 70 75 73 68 20 .from.search-by..One.shots.push.
111020 61 20 66 69 6c 74 65 72 2c 20 73 61 76 65 0a 74 6f 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 a.filter,.save.to.the.cache.stac
111040 6b 20 61 6e 64 20 70 6f 70 20 74 68 65 20 66 69 6c 74 65 72 2c 20 6c 65 61 76 69 6e 67 20 6f 6e k.and.pop.the.filter,.leaving.on
111060 6c 79 20 74 68 65 20 63 61 63 68 65 2e 0a 0a 55 73 69 6e 67 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d ly.the.cache...Using.@command{em
111080 6d 73 2d 66 69 6c 74 65 72 73 2d 6f 6e 65 2d 73 68 6f 74 7d 20 77 69 6c 6c 20 70 75 73 68 20 61 ms-filters-one-shot}.will.push.a
1110a0 20 66 69 6c 74 65 72 2c 20 70 75 73 68 20 61 20 63 61 63 68 65 2c 0a 74 68 65 6e 20 70 6f 70 20 .filter,.push.a.cache,.then.pop.
1110c0 74 68 65 20 66 69 6c 74 65 72 2e 20 49 74 20 77 69 6c 6c 20 69 6e 74 65 72 61 63 74 69 76 65 6c the.filter..It.will.interactivel
1110e0 79 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 66 61 63 74 6f 72 79 2c 20 74 68 65 0a 66 69 6c 74 y.prompt.for.a.factory,.the.filt
111100 65 72 2c 20 61 6e 64 20 74 68 65 6e 20 74 68 65 20 66 69 6c 74 65 72 20 70 61 72 61 6d 65 74 65 er,.and.then.the.filter.paramete
111120 72 73 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 69 6c 74 65 72 20 69 66 20 6e 6f 6e 65 20 69 73 rs.to.create.a.filter.if.none.is
111140 0a 67 69 76 65 6e 2e 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 .given..@command{emms-filters-qu
111160 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 7d 20 74 61 6b 65 73 20 61 20 66 61 63 74 6f 72 79 20 6e 61 ick-one-shot}.takes.a.factory.na
111180 6d 65 2c 20 61 6e 64 20 69 6e 76 6f 6b 65 73 0a 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 me,.and.invokes.the.interactive.
1111a0 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 6e 65 77 20 66 69 6c 74 65 72 20 77 69 74 68 20 74 68 creation.of.a.new.filter.with.th
1111c0 61 74 20 66 61 63 74 6f 72 79 20 64 69 72 65 63 74 6c 79 2e 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 at.factory.directly..The.command
1111e0 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 69 65 6c 64 73 2d 73 65 .@command{emms-filters-fields-se
111200 61 72 63 68 2d 71 75 69 63 6b 2d 6f 6e 65 2d 73 68 6f 74 7d 20 69 73 20 61 20 6f 6e 65 2d 73 68 arch-quick-one-shot}.is.a.one-sh
111220 6f 74 0a 75 73 69 6e 67 20 74 68 65 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 66 69 6c 74 65 ot.using.the.fields-search.filte
111240 72 20 66 61 63 74 6f 72 79 2c 20 77 68 69 6c 65 20 61 64 64 69 6e 67 20 74 6f 20 74 68 65 20 66 r.factory,.while.adding.to.the.f
111260 69 65 6c 64 73 2d 73 65 61 72 63 68 0a 72 69 6e 67 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 ields-search.ring.in.the.filter.
111280 6d 65 6e 75 2d 74 72 65 65 2e 20 54 68 65 20 66 69 65 6c 64 73 2d 73 65 61 72 63 68 20 66 61 63 menu-tree..The.fields-search.fac
1112a0 74 6f 72 79 20 69 73 20 74 68 65 20 66 69 6c 74 65 72 0a 73 79 73 74 65 6d 27 73 20 77 61 79 20 tory.is.the.filter.system's.way.
1112c0 6f 66 20 65 6d 75 6c 61 74 69 6e 67 20 62 72 6f 77 73 65 72 27 73 20 73 65 61 72 63 68 2d 62 79 of.emulating.browser's.search-by
1112e0 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e 0a 0a 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 .functionality...These.functions
111300 20 65 66 66 65 63 74 69 76 65 6c 79 20 61 6c 6c 6f 77 20 74 68 65 20 65 6d 75 6c 61 74 69 6f 6e .effectively.allow.the.emulation
111320 20 6f 66 20 74 68 65 20 62 72 6f 77 73 65 72 27 73 20 73 65 61 72 63 68 0a 62 65 68 61 76 69 6f .of.the.browser's.search.behavio
111340 72 20 6f 66 20 71 75 69 63 6b 6c 79 20 70 72 6f 6d 70 74 69 6e 67 2c 20 66 69 6c 74 65 72 69 6e r.of.quickly.prompting,.filterin
111360 67 20 61 6e 64 20 70 75 73 68 69 6e 67 20 61 20 63 61 63 68 65 20 66 6f 6c 6c 6f 77 65 64 0a 62 g.and.pushing.a.cache.followed.b
111380 79 20 61 20 70 6f 70 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 75 73 65 64 2e 20 42 79 20 74 y.a.pop.of.the.filter.used..By.t
1113a0 68 65 20 67 72 61 63 65 20 6f 66 20 74 68 61 74 2c 20 73 69 6d 70 6c 65 20 77 72 61 70 70 65 72 he.grace.of.that,.simple.wrapper
1113c0 0a 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 65 61 63 68 20 6f 66 20 74 68 65 20 62 72 6f 77 73 .functions.for.each.of.the.brows
1113e0 65 72 27 73 20 73 65 61 72 63 68 20 66 75 6e 63 74 69 6f 6e 73 20 77 65 72 65 20 63 72 65 61 74 er's.search.functions.were.creat
111400 65 64 0a 75 73 69 6e 67 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 71 75 69 63 6b 2d 6f 6e 65 2d ed.using.emms-filters-quick-one-
111420 73 68 6f 74 2e 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 6e 61 6d 65 64 20 shot..These.functions.are.named.
111440 61 66 74 65 72 20 74 68 65 69 72 20 62 72 6f 77 73 65 72 0a 65 71 75 69 76 61 6c 65 6e 74 73 20 after.their.browser.equivalents.
111460 61 73 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 65 61 72 63 68 2d 62 79 2d 3c 66 69 65 6c 64 as.emms-filters-search-by-<field
111480 2d 6e 61 6d 65 73 3e 2e 20 54 68 65 20 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 20 66 75 6e 63 -names>..The.browser.search.func
1114a0 74 69 6f 6e 73 0a 6e 6f 77 20 63 61 6c 6c 20 74 68 65 73 65 20 66 69 6c 74 65 72 20 73 79 73 74 tions.now.call.these.filter.syst
1114c0 65 6d 20 66 75 6e 63 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 2e 0a 0a 4d 61 6e 69 70 75 6c 61 em.functions.directly...Manipula
1114e0 74 69 6e 67 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 73 69 6d 69 6c 61 72 20 ting.the.cache.stack.is.similar.
111500 74 6f 20 6d 61 6e 69 70 75 6c 61 74 69 6e 67 20 74 68 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b to.manipulating.the.filter.stack
111520 2c 0a 54 68 65 20 75 73 75 61 6c 20 73 74 61 63 6b 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 3a 0a ,.The.usual.stack.commands.are:.
111540 40 69 74 65 6d 69 7a 65 20 40 62 75 6c 6c 65 74 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b @itemize.@bullet.@item.@command{
111560 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 6f 70 2d 63 61 63 68 65 7d 0a 40 69 74 65 6d 20 40 63 emms-filters-pop-cache}.@item.@c
111580 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 71 75 61 73 68 2d 63 61 63 68 65 ommand{emms-filters-squash-cache
1115a0 73 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 s}.@item.@command{emms-filters-c
1115c0 6c 65 61 72 2d 63 61 63 68 65 73 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 lear-caches}.@item.@command{emms
1115e0 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 63 61 63 68 65 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d -filters-swap-cache}.@item.@comm
111600 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 77 61 70 2d 70 6f 70 2d 63 61 63 68 65 7d and{emms-filters-swap-pop-cache}
111620 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 .@item.@command{emms-filters-pus
111640 68 2d 63 61 63 68 65 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c h-cache}.@item.@command{emms-fil
111660 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 68 65 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 ters-stash-cache}.@item.@command
111680 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 70 6f 70 2d 63 61 63 68 65 7d 0a 40 {emms-filters-stash-pop-cache}.@
1116a0 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 40 63 6f 6d 6d end.itemize..The.functions.@comm
1116c0 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 7d 2c 20 40 63 and{emms-filters-push-cache},.@c
1116e0 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 2d 63 61 63 68 65 7d ommand{emms-filters-stash-cache}
111700 20 61 6e 64 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 73 68 .and.@command{emms-filters-stash
111720 2d 70 6f 70 2d 63 61 63 68 65 7d 20 61 6c 6c 6f 77 20 66 6f 72 20 61 20 63 61 63 68 65 20 74 6f -pop-cache}.allow.for.a.cache.to
111740 20 62 65 20 73 74 61 73 68 65 64 20 61 6e 64 20 74 68 65 6e 0a 6c 61 74 65 72 20 70 75 73 68 65 .be.stashed.and.then.later.pushe
111760 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 74 61 63 6b 2e 20 54 68 65 20 63 75 72 72 65 6e 74 d.back.to.the.stack..The.current
111780 20 63 61 63 68 65 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 63 61 6e 20 62 65 0a 73 74 61 73 68 .cache.on.the.stack.can.be.stash
1117a0 65 64 20 61 74 20 61 6e 79 74 69 6d 65 2e 20 54 68 65 20 73 74 61 73 68 65 64 20 63 61 63 68 65 ed.at.anytime..The.stashed.cache
1117c0 73 20 77 69 6c 6c 20 62 65 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 72 69 6e 67 0a 66 6f 72 20 40 s.will.be.a.selection.ring.for.@
1117e0 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d 63 61 63 68 65 7d command{emms-filters-push-cache}
111800 2e 0a 0a 0a 40 6e 6f 64 65 20 53 68 6f 77 69 6e 67 20 53 74 61 74 65 0a 40 73 65 63 74 69 6f 6e ....@node.Showing.State.@section
111820 20 53 68 6f 77 69 6e 67 20 53 74 61 74 65 0a 0a 54 68 65 72 65 20 61 72 65 20 76 61 72 69 6f 75 .Showing.State..There.are.variou
111840 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 65 6e 61 62 6c 65 20 61 20 76 69 65 77 20 6f s.functions.that.enable.a.view.o
111860 66 20 61 6c 6c 20 74 68 61 74 20 69 73 20 67 6f 69 6e 67 0a 6f 6e 20 77 69 74 68 69 6e 20 74 68 f.all.that.is.going.on.within.th
111880 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 20 41 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 e.filter.system..At.the.top.leve
1118a0 6c 20 74 68 65 73 65 20 61 72 65 20 73 69 6d 70 6c 79 20 65 6d 61 63 73 0a 6d 65 73 73 61 67 65 l.these.are.simply.emacs.message
1118c0 73 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 64 69 73 6d 69 73 73 65 64 2e s.which.can.be.easily.dismissed.
1118e0 20 4a 75 73 74 20 62 65 6c 6f 77 20 74 68 65 6d 2c 20 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 .Just.below.them,.are.equivalent
111900 0a 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 67 69 76 65 20 66 6f 72 6d 61 74 74 65 64 20 73 .functions.that.give.formatted.s
111920 74 72 69 6e 67 20 76 65 72 73 69 6f 6e 73 20 66 6f 72 20 75 73 65 20 61 73 20 79 6f 75 20 6c 69 tring.versions.for.use.as.you.li
111940 6b 65 2e 0a 0a 54 68 65 20 72 65 67 69 73 74 65 72 65 64 20 66 69 6c 74 65 72 20 66 61 63 74 6f ke...The.registered.filter.facto
111960 72 69 65 73 20 63 61 6e 20 62 65 20 73 68 6f 77 6e 20 77 69 74 68 0a 40 63 6f 6d 6d 61 6e 64 7b ries.can.be.shown.with.@command{
111980 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 66 61 63 74 6f 72 69 emms-filters-show-filter-factori
1119a0 65 73 7d 2c 20 74 68 65 20 72 65 67 69 73 74 65 72 65 64 0a 66 69 6c 74 65 72 73 20 63 61 6e 20 es},.the.registered.filters.can.
1119c0 62 65 20 73 68 6f 77 6e 20 77 69 74 68 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 be.shown.with.@command{emms-filt
1119e0 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 73 7d 2e 0a 54 68 65 20 40 63 6f 6d 6d 61 6e 64 7b ers-show-filters}..The.@command{
111a00 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 6d 65 6e 75 7d 20 77 emms-filters-show-filter-menu}.w
111a20 69 6c 6c 20 73 68 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 6d 65 6e 75 ill.show.the.current.filter.menu
111a40 20 74 72 65 65 2e 0a 0a 54 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 74 65 72 20 72 69 6e 67 20 .tree...The.current.filter.ring.
111a60 63 61 6e 20 62 65 20 73 68 6f 77 6e 20 77 69 74 68 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d can.be.shown.with.@command{emms-
111a80 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 66 69 6c 74 65 72 2d 72 69 6e 67 7d 0a 61 6e 64 20 74 68 filters-show-filter-ring}.and.th
111aa0 65 20 66 69 6c 74 65 72 20 73 74 61 63 6b 20 63 61 6e 20 62 65 20 73 68 6f 77 6e 20 77 69 74 68 e.filter.stack.can.be.shown.with
111ac0 20 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d ..@command{emms-filters-current-
111ae0 6d 65 74 61 2d 66 69 6c 74 65 72 7d 2e 0a 0a 49 6e 20 63 6f 64 65 2c 20 74 68 65 20 63 75 72 72 meta-filter}...In.code,.the.curr
111b00 65 6e 74 20 66 69 6c 74 65 72 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 ent.filter.name.can.be.obtained.
111b20 77 69 74 68 20 74 68 65 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 with.the.@command{emms-filters-c
111b40 75 72 72 65 6e 74 2d 6d 65 74 61 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 7d 2e 0a 54 68 65 20 63 75 urrent-meta-filter-name}..The.cu
111b60 72 72 65 6e 74 20 72 69 6e 67 20 66 69 6c 74 65 72 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 6f 62 rrent.ring.filter.name.can.be.ob
111b80 74 61 69 6e 65 64 20 77 69 74 68 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 tained.with.@command{emms-filter
111ba0 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 2d 6e 61 6d 65 7d 0a 0a 53 68 6f s-current-ring-filter-name}..Sho
111bc0 77 69 6e 67 20 74 68 65 20 63 61 63 68 65 20 73 74 61 63 6b 20 69 73 20 64 6f 6e 65 20 77 69 74 wing.the.cache.stack.is.done.wit
111be0 68 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 h.@command{emms-filters-show-cac
111c00 68 65 2d 73 74 61 63 6b 7d 2e 0a 41 6e 79 20 73 74 61 73 68 65 64 20 63 61 63 68 65 73 20 63 61 he-stack}..Any.stashed.caches.ca
111c20 6e 20 62 65 20 73 65 65 6e 20 77 69 74 68 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c n.be.seen.with.@command{emms-fil
111c40 74 65 72 73 2d 73 68 6f 77 2d 63 61 63 68 65 2d 73 74 61 73 68 7d 0a 77 68 69 63 68 20 77 69 6c ters-show-cache-stash}.which.wil
111c60 6c 20 61 6c 73 6f 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 69 6e 76 6f 6b 65 l.also.appear.in.the.menu.invoke
111c80 64 20 62 79 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 70 75 73 68 2d d.by.@command{emms-filters-push-
111ca0 63 61 63 68 65 7d 2e 0a 0a 46 69 6e 61 6c 6c 79 20 66 6f 72 20 61 20 6d 6f 72 65 20 63 6f 6d 70 cache}...Finally.for.a.more.comp
111cc0 6c 65 74 65 20 72 65 70 6f 72 74 20 6f 66 20 74 68 65 20 73 79 73 74 65 6d 20 75 73 65 20 40 63 lete.report.of.the.system.use.@c
111ce0 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 2d 70 72 69 6e 74 ommand{emms-filters-status-print
111d00 7d 0a 77 68 69 63 68 20 69 73 20 61 20 6d 65 73 73 61 67 65 20 6f 66 20 74 68 65 20 66 6f 72 6d }.which.is.a.message.of.the.form
111d20 61 74 74 65 64 20 73 74 72 69 6e 67 20 67 69 76 65 6e 20 62 79 20 40 63 6f 6d 6d 61 6e 64 7b 65 atted.string.given.by.@command{e
111d40 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 7d 2e 0a 0a 49 6e 20 74 75 72 6e 2c 20 74 mms-filters-status}...In.turn,.t
111d60 68 65 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 73 74 61 74 75 73 7d he.@command{emms-filters-status}
111d80 20 69 73 20 73 69 6d 70 6c 79 20 61 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f .is.simply.a.format.of.the.follo
111da0 77 69 6e 67 20 66 6f 75 72 0a 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 67 69 76 65 20 66 6f wing.four.functions.that.give.fo
111dc0 72 6d 61 74 74 65 64 20 73 74 72 69 6e 67 73 20 6f 66 20 74 68 65 20 6d 6f 76 69 6e 67 20 70 61 rmatted.strings.of.the.moving.pa
111de0 72 74 73 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 20 73 79 73 74 65 6d 2e 0a 0a 40 69 74 65 6d rts.of.the.filter.system...@item
111e00 69 7a 65 20 40 62 75 6c 6c 65 74 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d ize.@bullet.@item.@command{emms-
111e20 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 2d 72 69 6e 67 2d 66 69 6c 74 65 72 7d 0a 40 69 74 filters-current-ring-filter}.@it
111e40 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 63 75 72 72 65 6e 74 em.@command{emms-filters-current
111e60 2d 6d 65 74 61 2d 66 69 6c 74 65 72 7d 0a 40 69 74 65 6d 20 40 63 6f 6d 6d 61 6e 64 7b 65 6d 6d -meta-filter}.@item.@command{emm
111e80 73 2d 66 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 2d 73 74 61 63 6b 7d 0a 40 69 74 65 6d 20 40 63 s-filters-format-stack}.@item.@c
111ea0 6f 6d 6d 61 6e 64 7b 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2d 66 6f 72 6d 61 74 2d 63 61 63 68 65 ommand{emms-filters-format-cache
111ec0 2d 73 74 61 63 6b 7d 0a 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d -stack}.@end.itemize...@c.------
111ee0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
111f00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e -----------------------------.@n
111f20 6f 64 65 20 53 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 0a 40 63 68 61 70 74 65 72 20 53 ode.Sorting.Playlists.@chapter.S
111f40 6f 72 74 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 0a 0a 40 63 69 6e 64 65 78 20 73 6f 72 74 0a 40 orting.Playlists..@cindex.sort.@
111f60 63 69 6e 64 65 78 20 74 72 61 63 6b 20 6f 72 64 65 72 0a 0a 54 68 65 20 60 65 6d 6d 73 2d 70 6c cindex.track.order..The.`emms-pl
111f80 61 79 6c 69 73 74 2d 73 6f 72 74 27 20 6d 6f 64 75 6c 65 2c 20 64 65 66 69 6e 65 64 20 69 6e 20 aylist-sort'.module,.defined.in.
111fa0 74 68 65 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2e 65 6c 7d the.@file{emms-playlist-sort.el}
111fc0 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 .package.provides.functions.for.
111fe0 73 6f 72 74 69 6e 67 0a 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 73 2c 20 61 73 20 77 65 6c 6c 20 sorting.Emms.playlists,.as.well.
112000 61 73 20 6b 65 79 62 6f 61 72 64 20 73 68 6f 72 74 63 75 74 73 20 66 6f 72 20 69 6e 76 6f 6b 69 as.keyboard.shortcuts.for.invoki
112020 6e 67 20 74 68 65 0a 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 ng.the.functions.in.the.playlist
112040 20 62 75 66 66 65 72 2e 20 4d 6f 73 74 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 .buffer..Most.of.the.functions.w
112060 69 6c 6c 20 73 6f 72 74 20 69 6e 0a 72 65 76 65 72 73 65 20 6f 72 64 65 72 20 69 66 20 74 68 65 ill.sort.in.reverse.order.if.the
112080 20 63 6f 6d 6d 61 6e 64 20 69 73 20 70 72 65 63 65 64 65 64 20 62 79 20 61 0a 70 72 65 66 69 78 .command.is.preceded.by.a.prefix
1120a0 2e 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 27 20 63 61 6e 20 62 65 20 6c 6f ..`emms-playlist-sort'.can.be.lo
1120c0 61 64 65 64 20 62 79 20 69 6e 76 6f 6b 69 6e 67 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 aded.by.invoking:..@lisp.(requir
1120e0 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 29 0a 40 65 6e 64 20 6c 69 73 70 e.'emms-playlist-sort).@end.lisp
112100 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 ..@defun.emms-playlist-sort-by-i
112120 6e 66 6f 2d 61 72 74 69 73 74 0a 53 6f 72 74 20 62 79 20 61 72 74 69 73 74 20 6e 61 6d 65 2e 0a nfo-artist.Sort.by.artist.name..
112140 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 @end.defun..@defun.emms-playlist
112160 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 53 6f 72 74 20 62 -sort-by-info-albumartist.Sort.b
112180 79 20 61 6c 62 75 6d 61 72 74 69 73 74 20 6e 61 6d 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a y.albumartist.name..@end.defun..
1121a0 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 70 6c 61 @defun.emms-playlist-sort-by-pla
1121c0 79 2d 63 6f 75 6e 74 0a 53 6f 72 74 20 62 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 6d 65 73 20 y-count.Sort.by.number.of.times.
1121e0 74 68 65 20 74 72 61 63 6b 20 68 61 73 20 62 65 65 6e 20 70 6c 61 79 65 64 2e 0a 40 65 6e 64 20 the.track.has.been.played..@end.
112200 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 defun..@defun.emms-playlist-sort
112220 2d 62 79 2d 69 6e 66 6f 2d 61 6c 62 75 6d 0a 53 6f 72 74 20 62 79 20 61 6c 62 75 6d 20 6e 61 6d -by-info-album.Sort.by.album.nam
112240 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c e..@end.defun..@defun.emms-playl
112260 69 73 74 2d 73 6f 72 74 2d 62 79 2d 6c 61 73 74 2d 70 6c 61 79 65 64 0a 53 6f 72 74 20 62 79 20 ist-sort-by-last-played.Sort.by.
112280 74 69 6d 65 20 74 68 65 20 74 72 61 63 6b 20 77 61 73 20 70 6c 61 79 65 64 20 6c 61 73 74 2e 0a time.the.track.was.played.last..
1122a0 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 @end.defun..@defun.emms-playlist
1122c0 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 74 69 74 6c 65 0a 53 6f 72 74 20 62 79 20 74 72 61 63 -sort-by-info-title.Sort.by.trac
1122e0 6b 20 74 69 74 6c 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 k.title..@end.defun..@defun.emms
112300 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e -playlist-sort-by-file-extension
112320 0a 53 6f 72 74 20 62 79 20 66 69 6c 65 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 40 65 6e .Sort.by.filename.extension..@en
112340 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f d.defun..@defun.emms-playlist-so
112360 72 74 2d 62 79 2d 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 0a 53 6f 72 74 20 62 79 20 70 65 72 rt-by-info-performer.Sort.by.per
112380 66 6f 72 6d 65 72 20 6e 61 6d 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 former.name..@end.defun..@defun.
1123a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 79 65 61 72 0a emms-playlist-sort-by-info-year.
1123c0 53 6f 72 74 20 62 79 20 79 65 61 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e Sort.by.year..@end.defun..@defun
1123e0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 6e 66 6f 2d 6e 6f 74 65 .emms-playlist-sort-by-info-note
112400 0a 53 6f 72 74 20 62 79 20 74 72 61 63 6b 20 6e 6f 74 65 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e .Sort.by.track.notes..@end.defun
112420 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 69 ..@defun.emms-playlist-sort-by-i
112440 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 53 6f 72 74 20 62 79 20 63 6f 6d 70 6f 73 65 72 2e 0a 40 nfo-composer.Sort.by.composer..@
112460 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d end.defun..@defun.emms-playlist-
112480 73 6f 72 74 2d 62 79 2d 6e 61 6d 65 0a 53 6f 72 74 20 62 79 20 74 72 61 63 6b 20 6e 61 6d 65 2e sort-by-name.Sort.by.track.name.
1124a0 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .@end.defun..@defun.emms-playlis
1124c0 74 2d 73 6f 72 74 2d 62 79 2d 66 69 6c 65 2d 6d 74 69 6d 65 0a 53 6f 72 74 20 62 79 20 66 69 6c t-sort-by-file-mtime.Sort.by.fil
1124e0 65 20 6d 74 69 6d 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 e.mtime..@end.defun..@defun.emms
112500 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 0a 53 6f 72 74 20 72 61 -playlist-sort-by-random.Sort.ra
112520 6e 64 6f 6d 6c 79 2e 20 41 6c 69 61 73 20 66 6f 72 20 60 65 6d 6d 73 2d 73 68 75 66 66 6c 65 27 ndomly..Alias.for.`emms-shuffle'
112540 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 ..@end.defun..@defun.emms-playli
112560 73 74 2d 73 68 75 66 66 6c 65 0a 41 6c 69 61 73 20 66 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 6c st-shuffle.Alias.for.`emms-playl
112580 69 73 74 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 27 20 61 6e 64 20 60 65 6d 6d 73 2d 73 68 ist-sort-by-random'.and.`emms-sh
1125a0 75 66 66 6c 65 27 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d uffle'..@end.defun...@c.--------
1125c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1125e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 ---------------------------.@nod
112600 65 20 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 73 74 73 0a 40 63 68 61 70 74 65 72 20 e.Persistent.Playlists.@chapter.
112620 50 65 72 73 69 73 74 65 6e 74 20 50 6c 61 79 6c 69 73 74 73 0a 0a 54 68 65 20 45 6d 6d 73 20 6d Persistent.Playlists..The.Emms.m
112640 6f 64 75 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2e 65 6c 7d 20 6d 61 6b odule.@file{emms-history.el}.mak
112660 65 73 20 70 6c 61 79 6c 69 73 74 73 20 70 65 72 73 69 73 74 65 6e 74 20 6f 76 65 72 0a 65 6d 61 es.playlists.persistent.over.ema
112680 63 73 20 73 65 73 73 69 6f 6e 73 2e 20 20 54 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 74 68 69 cs.sessions...To.make.use.of.thi
1126a0 73 20 66 65 61 74 75 72 65 20 70 75 74 20 74 68 69 73 20 69 6e 74 6f 20 79 6f 75 72 0a 7e 2f 2e s.feature.put.this.into.your.~/.
1126c0 65 6d 61 63 73 2e 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 68 69 73 emacs...@lisp.(require.'emms-his
1126e0 74 6f 72 79 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 57 68 65 6e 20 79 6f 75 20 6b 69 6c 6c 20 65 tory).@end.lisp..When.you.kill.e
112700 6d 61 63 73 20 61 6c 6c 20 70 6c 61 79 6c 69 73 74 73 20 77 69 6c 6c 20 62 65 20 73 61 76 65 64 macs.all.playlists.will.be.saved
112720 20 69 6e 20 74 68 65 20 66 69 6c 65 20 67 69 76 65 6e 20 62 79 20 74 68 65 0a 76 61 72 69 61 62 .in.the.file.given.by.the.variab
112740 6c 65 3a 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 0a 54 le:..@defopt.emms-history-file.T
112760 68 65 20 66 69 6c 65 20 74 6f 20 73 61 76 65 20 70 6c 61 79 6c 69 73 74 73 20 69 6e 2e 20 20 49 he.file.to.save.playlists.in...I
112780 74 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 22 7e 2f 2e 65 6d 61 63 73 2e 64 2f 65 6d 6d 73 2d 68 t.defaults.to."~/.emacs.d/emms-h
1127a0 69 73 74 6f 72 79 22 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 0a 41 66 74 65 72 20 79 6f 75 20 istory"..@end.defopt..After.you.
1127c0 73 74 61 72 74 65 64 20 75 70 20 65 6d 61 63 73 20 61 67 61 69 6e 2c 20 79 6f 75 20 63 61 6e 20 started.up.emacs.again,.you.can.
1127e0 72 65 73 74 6f 72 65 20 61 6c 6c 20 73 61 76 65 64 20 70 6c 61 79 6c 69 73 74 73 0a 77 69 74 68 restore.all.saved.playlists.with
112800 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 68 69 73 .this.function...@defun.emms-his
112820 74 6f 72 79 2d 6c 6f 61 64 0a 52 65 73 74 6f 72 65 20 61 6c 6c 20 70 6c 61 79 6c 69 73 74 73 20 tory-load.Restore.all.playlists.
112840 69 6e 20 60 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 27 2e 0a 40 65 6e 64 20 64 65 66 in.`emms-history-file'..@end.def
112860 75 6e 0a 0a 49 66 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 64 6f 6e 65 20 61 75 74 6f 6d un..If.that.should.be.done.autom
112880 61 74 69 63 61 6c 6c 79 20 6f 6e 20 65 61 63 68 20 73 74 61 72 74 75 70 2c 20 70 75 74 20 74 68 atically.on.each.startup,.put.th
1128a0 65 73 65 20 6c 69 6e 65 73 0a 69 6e 74 6f 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 73 2e 0a 0a 40 ese.lines.into.your.~/.emacs...@
1128c0 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 29 0a 28 65 6d lisp.(require.'emms-history).(em
1128e0 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 4e 6f 72 6d ms-history-load).@end.lisp..Norm
112900 61 6c 6c 79 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 68 69 73 74 6f 72 79 7d 20 6f 6e 6c 79 20 72 65 ally.@code{emms-history}.only.re
112920 73 74 6f 72 65 73 20 70 6c 61 79 6c 69 73 74 73 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 stores.playlists...If.you.want.i
112940 74 20 74 6f 0a 73 74 61 72 74 20 70 6c 61 79 62 61 63 6b 20 61 66 74 65 72 77 61 72 64 73 2c 20 t.to.start.playback.afterwards,.
112960 79 6f 75 20 63 61 6e 20 74 77 65 61 6b 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 2e 0a 0a 40 64 you.can.tweak.this.variable...@d
112980 65 66 6f 70 74 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 73 74 61 72 74 2d 70 6c 61 79 69 6e 67 efopt.emms-history-start-playing
1129a0 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 20 65 6d 6d 73 20 73 74 61 72 74 73 20 70 6c 61 79 69 6e 67 20 .If.non-nil.emms.starts.playing.
1129c0 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 61 66 74 65 72 0a 60 65 6d 6d 73 2d 68 69 the.current.track.after.`emms-hi
1129e0 73 74 6f 72 79 2d 6c 6f 61 64 27 20 77 61 73 20 69 6e 76 6f 6b 65 64 2e 20 20 54 68 65 20 64 65 story-load'.was.invoked...The.de
112a00 66 61 75 6c 74 20 76 61 6c 75 65 20 69 73 20 6e 69 6c 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a fault.value.is.nil..@end.defopt.
112a20 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..@c.---------------------------
112a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
112a60 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 0a 40 63 --------.@node.Editing.Tracks.@c
112a80 68 61 70 74 65 72 20 45 64 69 74 69 6e 67 20 54 72 61 63 6b 73 0a 0a 40 63 69 6e 64 65 78 20 74 hapter.Editing.Tracks..@cindex.t
112aa0 72 61 63 6b 20 65 64 69 74 6f 72 0a 0a 55 73 69 6e 67 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 74 61 rack.editor..Using.@file{emms-ta
112ac0 67 2d 65 64 69 74 6f 72 2e 65 6c 7d 2c 20 65 6d 6d 73 20 63 61 6e 20 73 65 74 20 74 61 67 20 69 g-editor.el},.emms.can.set.tag.i
112ae0 6e 66 6f 72 6d 61 74 69 6f 6e 73 20 6f 66 20 74 72 61 63 6b 73 0a 61 6e 64 20 77 72 69 74 65 20 nformations.of.tracks.and.write.
112b00 74 68 65 6d 20 62 61 63 6b 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 65 20 68 them.back.to.the.file.with.the.h
112b20 65 6c 70 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 73 2c 20 73 75 63 68 0a 61 elp.of.external.programs,.such.a
112b40 73 20 60 6d 69 64 33 76 32 27 20 61 6e 64 20 60 76 6f 72 62 69 73 63 6f 6d 6d 65 6e 74 27 2e 0a s.`mid3v2'.and.`vorbiscomment'..
112b60 0a 55 73 65 20 74 68 65 20 6b 65 79 62 69 6e 64 69 6e 67 20 40 6b 62 64 7b 45 7d 20 74 6f 20 65 .Use.the.keybinding.@kbd{E}.to.e
112b80 64 69 74 20 74 68 65 20 74 61 67 73 20 6f 66 20 74 72 61 63 6b 20 75 6e 64 65 72 20 70 6f 69 6e dit.the.tags.of.track.under.poin
112ba0 74 20 69 6e 20 74 68 65 0a 70 6c 61 79 6c 69 73 74 20 6f 72 20 61 6c 6c 20 6d 61 72 6b 65 64 20 t.in.the.playlist.or.all.marked.
112bc0 74 72 61 63 6b 73 20 28 40 70 78 72 65 66 7b 4d 61 72 6b 61 62 6c 65 20 50 6c 61 79 6c 69 73 74 tracks.(@pxref{Markable.Playlist
112be0 73 7d 20 66 6f 72 20 68 6f 77 20 74 6f 0a 6d 61 72 6b 20 74 72 61 63 6b 73 29 2e 20 20 54 68 65 s}.for.how.to.mark.tracks)...The
112c00 20 74 72 61 63 6b 27 73 20 74 61 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 73 20 61 72 65 20 6c 69 .track's.tag.informations.are.li
112c20 73 74 65 64 20 69 6e 20 61 20 73 70 65 63 69 61 6c 0a 62 75 66 66 65 72 20 60 2a 45 6d 6d 73 2d sted.in.a.special.buffer.`*Emms-
112c40 54 41 47 53 2a 27 20 69 6e 20 74 65 78 74 20 66 6f 72 6d 61 74 2e 20 20 46 69 65 6c 64 20 6e 61 TAGS*'.in.text.format...Field.na
112c60 6d 65 73 20 61 72 65 20 6d 61 72 6b 65 64 20 69 6e 20 62 6f 6c 64 0a 66 61 63 65 20 61 6e 64 20 mes.are.marked.in.bold.face.and.
112c80 61 72 65 20 6e 6f 74 20 65 64 69 74 61 62 6c 65 2e 20 20 41 6e 79 20 74 61 67 20 69 6e 66 6f 72 are.not.editable...Any.tag.infor
112ca0 6d 61 74 69 6f 6e 20 69 73 20 70 6c 61 63 65 64 20 62 65 68 69 6e 64 20 61 6e 0a 65 71 75 61 6c mation.is.placed.behind.an.equal
112cc0 20 73 69 67 6e 20 61 6e 64 20 69 73 20 63 68 61 6e 67 61 62 6c 65 2e 20 20 41 20 73 70 65 63 69 .sign.and.is.changable...A.speci
112ce0 61 6c 20 66 69 65 6c 64 20 60 6e 61 6d 65 27 20 69 73 20 74 68 65 20 74 72 61 63 6b 27 73 20 66 al.field.`name'.is.the.track's.f
112d00 69 6c 65 0a 6e 61 6d 65 2e 20 20 49 66 20 61 6e 79 20 63 68 61 6e 67 65 20 69 73 20 6d 61 64 65 ile.name...If.any.change.is.made
112d20 20 69 6e 20 74 68 69 73 20 66 69 65 6c 64 2c 20 74 68 65 20 74 72 61 63 6b 27 73 20 66 69 6c 65 .in.this.field,.the.track's.file
112d40 20 77 69 6c 6c 20 62 65 0a 72 65 6e 61 6d 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 6e 61 6d 65 .will.be.renamed.to.the.new.name
112d60 2e 20 20 57 68 65 6e 20 79 6f 75 20 66 69 6e 69 73 68 65 64 20 65 64 69 74 69 6e 67 20 74 68 65 ...When.you.finished.editing.the
112d80 20 74 61 67 20 69 6e 66 6f 73 20 75 73 65 0a 40 6b 62 64 7b 43 2d 63 20 43 2d 63 7d 20 28 77 68 .tag.infos.use.@kbd{C-c.C-c}.(wh
112da0 69 63 68 20 63 61 6c 6c 73 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d ich.calls.@code{emms-tag-editor-
112dc0 73 75 62 6d 69 74 2d 61 6e 64 2d 65 78 69 74 7d 29 20 74 6f 0a 73 75 62 6d 69 74 20 74 68 65 20 submit-and-exit}).to.submit.the.
112de0 63 68 61 6e 67 65 73 20 61 6e 64 20 63 6c 6f 73 65 20 74 68 65 20 60 2a 45 6d 6d 73 2d 54 41 47 changes.and.close.the.`*Emms-TAG
112e00 53 2a 27 20 62 75 66 66 65 72 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 63 6f 6d S*'.buffer...There.are.a.few.com
112e20 6d 61 6e 64 73 20 74 6f 20 70 65 72 66 6f 72 6d 20 63 68 61 6e 67 65 73 20 6f 6e 20 61 6c 6c 20 mands.to.perform.changes.on.all.
112e40 74 72 61 63 6b 73 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d tracks...@defun.emms-tag-editor-
112e60 73 65 74 2d 61 6c 6c 20 74 61 67 20 76 61 6c 75 65 0a 53 65 74 20 54 41 47 20 74 6f 20 56 41 4c set-all.tag.value.Set.TAG.to.VAL
112e80 55 45 20 69 6e 20 61 6c 6c 20 74 72 61 63 6b 73 2e 0a 0a 49 66 20 74 72 61 6e 73 69 65 6e 74 2d UE.in.all.tracks...If.transient-
112ea0 6d 61 72 6b 2d 6d 6f 64 65 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 mark-mode.is.turned.on,.you.can.
112ec0 61 70 70 6c 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 61 0a 73 65 6c 65 63 74 65 64 20 apply.the.command.to.a.selected.
112ee0 72 65 67 69 6f 6e 2e 0a 0a 49 66 20 60 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 region...If.`transient-mark-mode
112f00 27 20 69 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 20 '.is.on.and.the.mark.is.active,.
112f20 74 68 65 20 63 68 61 6e 67 65 73 20 77 69 6c 6c 0a 6f 6e 6c 79 20 74 61 6b 65 20 65 66 66 65 63 the.changes.will.only.take.effec
112f40 74 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 0a 40 t.on.the.tracks.in.the.region..@
112f60 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f end.defun..@defun.emms-tag-edito
112f80 72 2d 72 65 70 6c 61 63 65 2d 69 6e 2d 74 61 67 20 74 61 67 20 66 72 6f 6d 20 74 6f 0a 51 75 65 r-replace-in-tag.tag.from.to.Que
112fa0 72 79 20 61 6e 64 20 72 65 70 6c 61 63 65 20 74 65 78 74 20 69 6e 20 73 65 6c 65 63 74 65 64 20 ry.and.replace.text.in.selected.
112fc0 54 41 47 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 69 6e 66 6f 2d 74 TAG...For.example,.if.the.info-t
112fe0 69 74 6c 65 20 74 61 67 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 74 68 65 6e 20 6f 6e 6c 79 20 itle.tag.is.selected,.then.only.
113000 70 65 72 66 6f 72 6d 0a 72 65 70 6c 61 63 65 6d 65 6e 74 20 69 6e 20 74 69 74 6c 65 20 74 61 67 perform.replacement.in.title.tag
113020 73 2e 0a 0a 49 66 20 60 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 69 73 20 s...If.`transient-mark-mode'.is.
113040 6f 6e 20 61 6e 64 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 63 on.and.the.mark.is.active,.the.c
113060 68 61 6e 67 65 73 20 77 69 6c 6c 0a 6f 6e 6c 79 20 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 hanges.will.only.take.effect.on.
113080 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 0a 40 65 6e 64 20 64 the.tracks.in.the.region..@end.d
1130a0 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 efun..@defun.emms-tag-editor-tra
1130c0 6e 73 70 6f 73 65 2d 74 61 67 20 74 61 67 31 20 74 61 67 32 0a 54 72 61 6e 73 70 6f 73 65 20 76 nspose-tag.tag1.tag2.Transpose.v
1130e0 61 6c 75 65 20 6f 66 20 54 41 47 31 20 61 6e 64 20 54 41 47 32 2e 0a 0a 49 66 20 60 74 72 61 6e alue.of.TAG1.and.TAG2...If.`tran
113100 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 6d sient-mark-mode'.is.on.and.the.m
113120 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 63 68 61 6e 67 65 73 20 77 69 6c 6c 0a ark.is.active,.the.changes.will.
113140 6f 6e 6c 79 20 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 20 69 only.take.effect.on.the.tracks.i
113160 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e n.the.region..@end.defun..@defun
113180 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 20 61 72 67 0a 4d 61 6b 65 .emms-tag-editor-submit.arg.Make
1131a0 20 6d 6f 64 69 66 69 65 64 20 74 61 67 73 20 74 61 6b 65 20 61 66 66 65 63 74 2e 0a 0a 57 69 74 .modified.tags.take.affect...Wit
1131c0 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 62 75 72 79 20 74 68 65 20 74 61 67 20 h.prefix.argument,.bury.the.tag.
1131e0 65 64 69 74 20 62 75 66 66 65 72 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 49 66 20 79 6f 75 20 edit.buffer..@end.defun..If.you.
113200 77 61 6e 74 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 74 61 67 20 65 64 69 74 6f 72 20 74 6f want.to.extend.the.tag.editor.to
113220 20 77 6f 72 6b 20 77 69 74 68 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 20 6f 74 68 65 72 0a 74 68 .work.with.file.formats.other.th
113240 61 6e 20 60 6d 70 33 27 20 61 6e 64 20 60 6f 67 67 27 2c 20 68 61 76 65 20 61 20 6c 6f 6f 6b 20 an.`mp3'.and.`ogg',.have.a.look.
113260 61 74 20 74 68 65 73 65 20 76 61 72 69 61 62 6c 65 73 2e 0a 0a 40 64 65 66 76 72 20 7b 56 61 72 at.these.variables...@defvr.{Var
113280 69 61 62 6c 65 7d 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 73 0a 54 iable}.emms-tag-editor-formats.T
1132a0 68 69 73 20 76 61 72 69 61 62 6c 65 20 64 65 74 65 72 6d 69 6e 65 20 68 6f 77 20 74 6f 20 69 6e his.variable.determine.how.to.in
1132c0 73 65 72 74 20 74 72 61 63 6b 20 66 69 65 6c 64 73 20 74 6f 0a 60 65 6d 6d 73 2d 74 61 67 2d 65 sert.track.fields.to.`emms-tag-e
1132e0 64 69 74 6f 72 2d 65 64 69 74 2d 62 75 66 66 65 72 27 2e 20 20 45 6d 6d 73 20 74 61 67 20 69 6e ditor-edit-buffer'...Emms.tag.in
113300 66 6f 20 65 64 69 74 61 62 6c 65 20 66 69 65 6c 64 73 20 69 73 20 75 73 75 61 6c 6c 79 0a 64 65 fo.editable.fields.is.usually.de
113320 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 20 74 72 61 termined.by.the.extension.of.tra
113340 63 6b 20 6e 61 6d 65 2e 20 20 54 68 65 20 76 61 72 69 61 62 6c 65 0a 60 65 6d 6d 73 2d 74 61 67 ck.name...The.variable.`emms-tag
113360 2d 65 64 69 74 6f 72 2d 74 61 67 73 27 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 74 61 67 73 20 -editor-tags'.contains.all.tags.
113380 74 68 61 74 20 65 6d 6d 73 20 74 72 61 63 6b 20 6d 61 79 20 68 61 76 65 2e 20 20 41 0a 73 69 6e that.emms.track.may.have...A.sin
1133a0 67 6c 65 20 63 68 61 72 61 63 74 61 72 20 69 73 20 61 73 73 69 67 6e 65 64 20 74 6f 20 74 68 65 gle.charactar.is.assigned.to.the
1133c0 20 74 61 67 20 74 6f 20 6d 61 6b 65 20 74 68 65 0a 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f .tag.to.make.the.`emms-tag-edito
1133e0 72 2d 66 6f 72 6d 61 74 73 27 20 65 61 73 69 65 72 20 74 6f 20 67 65 6e 65 72 61 74 65 2e 0a 40 r-formats'.easier.to.generate..@
113400 65 6e 64 20 64 65 66 76 72 0a 0a 40 64 65 66 76 72 20 7b 56 61 72 69 61 62 6c 65 7d 20 65 6d 6d end.defvr..@defvr.{Variable}.emm
113420 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 54 s-tag-editor-tagfile-functions.T
113440 6f 20 77 72 69 74 65 20 74 61 67 73 20 74 6f 20 74 72 61 63 6b 20 66 69 6c 65 2c 20 61 6e 20 65 o.write.tags.to.track.file,.an.e
113460 78 74 65 72 6e 20 70 72 6f 67 72 61 6d 20 73 68 6f 75 6c 64 20 73 70 65 63 69 66 69 65 64 20 69 xtern.program.should.specified.i
113480 6e 20 74 68 69 73 0a 76 61 72 69 61 62 6c 65 2e 0a 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 68 65 n.this.variable..@end.defvr..@he
1134a0 61 64 69 6e 67 20 52 65 6e 61 6d 69 6e 67 20 46 69 6c 65 73 0a 54 68 65 20 74 61 67 20 65 64 69 ading.Renaming.Files.The.tag.edi
1134c0 74 6f 72 20 69 73 20 61 6c 73 6f 20 63 61 70 61 62 6c 65 20 74 6f 20 72 65 6e 61 6d 65 20 74 68 tor.is.also.capable.to.rename.th
1134e0 65 20 66 69 6c 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 0a 6f 72 20 e.file.of.the.track.at.point.or.
113500 61 6c 6c 20 66 69 6c 65 73 20 6f 66 20 74 68 65 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 20 61 all.files.of.the.marked.tracks.a
113520 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 74 68 69 73 20 76 61 72 69 61 ccording.to.the.value.this.varia
113540 62 6c 65 2e 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 ble...@defopt.emms-tag-editor-re
113560 6e 61 6d 65 2d 66 6f 72 6d 61 74 0a 57 68 65 6e 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f name-format.When.`emms-tag-edito
113580 72 2d 72 65 6e 61 6d 65 27 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 68 65 20 74 72 61 63 6b 27 73 r-rename'.is.invoked.the.track's
1135a0 20 66 69 6c 65 20 77 69 6c 6c 20 62 65 0a 72 65 6e 61 6d 65 64 20 61 63 63 6f 72 64 69 6e 67 20 .file.will.be.renamed.according.
1135c0 74 68 69 73 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 20 20 54 68 65 20 this.format.specification...The.
1135e0 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 77 69 6c 6c 20 62 65 0a 61 64 64 65 64 20 61 75 74 file.extension.will.be.added.aut
113600 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 0a 49 74 20 75 73 65 73 20 74 68 65 20 66 6f 72 6d 61 74 20 omatically...It.uses.the.format.
113620 73 70 65 63 73 20 64 65 66 69 6e 65 64 20 69 6e 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 74 61 67 2d specs.defined.in.@code{emms-tag-
113640 65 64 69 74 6f 72 2d 74 61 67 73 7d 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 editor-tags}...The.default.value
113660 20 69 73 20 22 25 61 20 2d 20 25 6c 20 2d 20 25 6e 20 2d 20 25 74 22 2c 20 73 6f 20 74 68 61 74 .is."%a.-.%l.-.%n.-.%t",.so.that
113680 20 66 69 6c 65 73 20 61 72 65 20 6e 61 6d 65 64 0a 0a 20 20 3c 41 72 74 69 73 74 3e 20 2d 20 3c .files.are.named....<Artist>.-.<
1136a0 41 6c 62 75 6d 3e 20 2d 20 3c 54 72 61 63 6b 6e 75 6d 62 65 72 3e 20 2d 20 3c 54 69 74 6c 65 3e Album>.-.<Tracknumber>.-.<Title>
1136c0 2e 3c 65 78 74 65 6e 73 69 6f 6e 3e 0a 0a 61 66 74 65 72 20 72 65 6e 61 6d 69 6e 67 2e 0a 40 65 .<extension>..after.renaming..@e
1136e0 6e 64 20 64 65 66 6f 70 74 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 nd.defopt..@defopt.emms-tag-edit
113700 6f 72 2d 66 69 6c 65 2d 72 65 6e 61 6d 65 2d 61 6c 69 73 74 0a 46 6f 72 20 65 61 63 68 20 70 61 or-file-rename-alist.For.each.pa
113720 69 72 20 69 6e 20 74 68 69 73 20 61 6c 69 73 74 2c 20 74 68 65 20 66 69 72 73 74 20 73 74 72 69 ir.in.this.alist,.the.first.stri
113740 6e 67 20 77 69 6c 6c 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 65 0a 73 65 63 6f 6e 64 2e 20 ng.will.replaced.by.the.second..
113760 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 70 6c 61 63 65 20 66 69 6c 65 This.can.be.used.to.replace.file
113780 6e 61 6d 65 20 65 6c 65 6d 65 6e 74 73 2c 20 73 70 61 63 65 73 2c 20 6f 72 0a 6f 74 68 65 72 20 name.elements,.spaces,.or.other.
1137a0 75 6e 77 61 6e 74 65 64 20 73 74 72 69 6e 67 73 20 6f 72 20 63 68 61 72 61 63 74 65 72 73 20 61 unwanted.strings.or.characters.a
1137c0 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 65 76 65 72 20 72 65 6e 61 6d 69 6e 67 20 61 utomatically.whenever.renaming.a
1137e0 0a 66 69 6c 65 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 0a 54 6f 20 70 65 72 66 6f 72 6d 20 74 .file..@end.defopt..To.perform.t
113800 68 65 20 72 65 6e 61 6d 69 6e 67 20 70 75 74 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 74 72 61 he.renaming.put.point.on.the.tra
113820 63 6b 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6e 61 6d 65 20 6f 72 0a 6d 61 72 6b 20 73 6f ck.you.want.to.rename.or.mark.so
113840 6d 65 20 74 72 61 63 6b 73 2e 20 20 54 68 65 6e 20 68 69 74 20 40 6b 62 64 7b 52 7d 20 77 68 69 me.tracks...Then.hit.@kbd{R}.whi
113860 63 68 20 63 61 6c 6c 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a 40 64 65 66 75 6e 20 ch.calls.this.function:..@defun.
113880 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 0a 52 65 6e 61 6d 65 20 74 68 emms-tag-editor-rename.Rename.th
1138a0 65 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 72 61 63 6b 20 61 74 e.file.corresponding.to.track.at
1138c0 20 70 6f 69 6e 74 20 6f 72 20 61 6c 6c 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 0a 61 63 63 6f .point.or.all.marked.tracks.acco
1138e0 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 40 63 6f 64 65 7b 65 6d 6d 73 rding.to.the.value.of.@code{emms
113900 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 7d 2e 0a 40 65 6e 64 -tag-editor-rename-format}..@end
113920 20 64 65 66 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .defun...@c.--------------------
113940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
113960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 45 6d 6d 73 20 4d 6f 64 65 20 ---------------.@node.Emms.Mode.
113980 4c 69 6e 65 0a 40 63 68 61 70 74 65 72 20 45 6d 6d 73 20 4d 6f 64 65 20 4c 69 6e 65 0a 0a 40 63 Line.@chapter.Emms.Mode.Line..@c
1139a0 69 6e 64 65 78 20 6d 6f 64 65 20 6c 69 6e 65 0a 40 63 69 6e 64 65 78 20 64 69 73 70 6c 61 79 20 index.mode.line.@cindex.display.
1139c0 65 6d 6d 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 57 65 20 63 61 6e 20 64 69 73 70 6c 61 79 emms.information..We.can.display
1139e0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 72 72 65 6e 74 79 20 .information.about.the.currenty.
113a00 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 20 6f 6e 20 74 68 65 0a 45 6d 61 63 73 20 6d 6f 64 65 20 playing.track.on.the.Emacs.mode.
113a20 6c 69 6e 65 20 75 73 69 6e 67 20 74 68 65 20 70 61 63 6b 61 67 65 20 60 65 6d 6d 73 2d 6d 6f 64 line.using.the.package.`emms-mod
113a40 65 2d 6c 69 6e 65 27 20 77 68 69 63 68 20 69 73 20 70 72 6f 76 69 64 65 64 0a 62 79 20 74 68 65 e-line'.which.is.provided.by.the
113a60 20 66 69 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2e 65 6c 7d 2e 0a .file.@file{emms-mode-line.el}..
113a80 0a 54 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 66 65 61 74 75 72 65 20 69 6e 76 6f 6b 65 .To.activate.this.feature.invoke
113aa0 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e :..@lisp.(require.'emms-mode-lin
113ac0 65 29 0a 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 20 31 29 0a 40 65 6e 64 20 6c 69 73 70 0a e).(emms-mode-line.1).@end.lisp.
113ae0 0a 49 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 64 69 73 70 6c 61 79 20 .It.is.also.possible.to.display.
113b00 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 74 69 6d 65 20 61 20 74 72 61 63 6b 20 68 61 73 20 62 the.amount.of.time.a.track.has.b
113b20 65 65 6e 0a 70 6c 61 79 69 6e 67 2e 20 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20 64 65 66 een.playing..This.feature.is.def
113b40 69 6e 65 64 20 69 6e 20 74 68 65 20 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 27 20 ined.in.the.`emms-playing-time'.
113b60 70 61 63 6b 61 67 65 0a 77 68 69 63 68 20 69 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 package.which.is.provided.by.the
113b80 20 66 69 6c 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2e 65 6c .file.@file{emms-playing-time.el
113ba0 7d 2e 0a 0a 54 6f 20 75 73 65 20 74 68 69 73 20 66 65 61 74 75 72 65 20 69 6e 76 6f 6b 65 3a 0a }...To.use.this.feature.invoke:.
113bc0 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 .@lisp.(require.'emms-playing-ti
113be0 6d 65 29 0a 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 31 29 0a 40 65 6e 64 20 6c me).(emms-playing-time.1).@end.l
113c00 69 73 70 0a 0a 41 20 67 72 61 70 68 69 63 61 6c 20 69 63 6f 6e 20 63 61 6e 20 62 65 20 64 69 73 isp..A.graphical.icon.can.be.dis
113c20 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 6d 6f 64 65 6c 69 6e 65 20 77 68 65 6e 20 45 6d 6d 73 played.in.the.modeline.when.Emms
113c40 20 69 73 0a 70 6c 61 79 69 6e 67 2e 20 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20 70 72 6f .is.playing..This.feature.is.pro
113c60 76 69 64 65 64 20 62 79 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 vided.by.@file{emms-mode-line-ic
113c80 6f 6e 2e 65 6c 7d 2e 20 54 6f 0a 65 6e 61 62 6c 65 20 69 6e 76 6f 6b 65 20 74 68 65 20 66 6f 6c on.el}..To.enable.invoke.the.fol
113ca0 6c 6f 77 69 6e 67 20 61 6e 64 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 0a 40 76 61 72 7b 65 lowing.and.make.sure.that.@var{e
113cc0 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 2d 65 6e 61 62 6c 65 64 2d 70 7d 20 69 73 mms-mode-line-icon-enabled-p}.is
113ce0 20 73 65 74 20 74 6f 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 3a 0a 0a 40 6c 69 73 70 0a .set.to.a.non-nil.value:..@lisp.
113d00 28 72 65 71 75 69 72 65 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 63 6f 6e 29 0a 40 65 (require.emms-mode-line-icon).@e
113d20 6e 64 20 6c 69 73 70 0a 0a 4e 6f 74 65 3a 20 60 28 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 nd.lisp..Note:.`(emms-playing-ti
113d40 6d 65 20 2d 31 29 27 20 77 69 6c 6c 20 64 69 73 61 62 6c 65 20 65 6d 6d 73 2d 70 6c 61 79 69 6e me.-1)'.will.disable.emms-playin
113d60 67 2d 74 69 6d 65 20 6d 6f 64 75 6c 65 0a 63 6f 6d 70 6c 65 74 65 6c 79 2c 20 61 6e 64 20 69 73 g-time.module.completely,.and.is
113d80 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 20 28 73 69 6e 63 65 20 73 6f 6d 65 20 6f 74 .not.recommended..(since.some.ot
113da0 68 65 72 20 65 6d 6d 73 20 6d 6f 64 75 6c 65 73 20 6d 61 79 0a 72 65 6c 79 20 6f 6e 20 69 74 29 her.emms.modules.may.rely.on.it)
113dc0 0a 0a 49 6e 73 74 65 61 64 2c 20 74 6f 20 74 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 ..Instead,.to.toggle.displaying.
113de0 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2c 20 6f 6e 65 20 63 playing.time.on.mode.line,.one.c
113e00 6f 75 6c 64 20 63 61 6c 6c 0a 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 ould.call.`emms-playing-time-ena
113e20 62 6c 65 2d 64 69 73 70 6c 61 79 27 20 61 6e 64 0a 60 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 ble-display'.and.`emms-playing-t
113e40 69 6d 65 2d 64 69 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 27 2e 22 0a 0a 40 64 65 66 75 6e 20 65 ime-disable-display'."..@defun.e
113e60 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2d 65 6e 61 62 6c 65 2d 64 69 73 70 6c 61 79 0a mms-playing-time-enable-display.
113e80 44 69 73 70 6c 61 79 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e Display.playing.time.on.mode.lin
113ea0 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 69 e..@end.defun..@defun.emms-playi
113ec0 6e 67 2d 74 69 6d 65 2d 64 69 73 61 62 6c 65 2d 64 69 73 70 6c 61 79 0a 52 65 6d 6f 76 65 20 70 ng-time-disable-display.Remove.p
113ee0 6c 61 79 69 6e 67 20 74 69 6d 65 20 66 72 6f 6d 20 6d 6f 64 65 20 6c 69 6e 65 2e 0a 40 65 6e 64 laying.time.from.mode.line..@end
113f00 20 64 65 66 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .defun...@c.--------------------
113f20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
113f40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 4c 69 6d 69 74 69 6e 67 0a 40 ---------------.@node.Limiting.@
113f60 63 68 61 70 74 65 72 20 4c 69 6d 69 74 69 6e 67 0a 0a 40 63 69 6e 64 65 78 20 6c 69 6d 69 74 69 chapter.Limiting..@cindex.limiti
113f80 6e 67 0a 40 63 69 6e 64 65 78 20 70 6c 61 79 6c 69 73 74 0a 0a 54 68 65 20 70 61 63 6b 61 67 65 ng.@cindex.playlist..The.package
113fa0 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 27 2c 20 70 72 6f 76 69 64 65 64 .`emms-playlist-limit',.provided
113fc0 20 62 79 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2e 65 6c .by.@file{emms-playlist-limit.el
113fe0 7d 2c 20 61 6c 6c 6f 77 73 20 63 72 65 61 74 69 6e 67 20 61 20 6e 65 77 0a 70 6c 61 79 6c 69 73 },.allows.creating.a.new.playlis
114000 74 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 t.derived.from.the.playlist.in.t
114020 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 2e 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c he.current.buffer..For.instance,
114040 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 0a .it.is.possible.to.create.a.new.
114060 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 6c 79 20 61 20 63 65 72 74 61 playlist.containing.only.a.certa
114080 69 6e 20 61 72 74 69 73 74 20 6f 72 20 67 65 6e 72 65 20 66 72 6f 6d 20 74 68 65 0a 70 6c 61 79 in.artist.or.genre.from.the.play
1140a0 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 list.in.the.current.buffer...If.
1140c0 74 68 65 20 70 6c 61 79 6c 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 the.playlist.in.the.current.buff
1140e0 65 72 20 69 73 20 74 68 65 20 65 6d 6d 73 20 63 75 72 72 65 6e 74 0a 70 6c 61 79 6c 69 73 74 20 er.is.the.emms.current.playlist.
114100 74 68 65 6e 20 74 68 65 20 64 65 72 69 76 65 64 20 70 6c 61 79 6c 69 73 74 20 62 65 63 6f 6d 65 then.the.derived.playlist.become
114120 73 20 63 75 72 72 65 6e 74 2e 0a 0a 40 74 61 62 6c 65 20 40 6b 62 64 0a 40 69 74 65 6d 20 2f 20 s.current...@table.@kbd.@item./.
114140 61 0a 40 6b 69 6e 64 65 78 20 2f 20 61 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c a.@kindex./.a.@findex.emms-playl
114160 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 61 72 74 69 73 74 0a 43 72 65 61 74 65 20 ist-limit-to-info-artist.Create.
114180 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 a.new.playlist.buffer.and.popula
1141a0 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 61 72 74 69 73 74 20 69 te.it.with.tracks.whose.artist.i
1141c0 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 nfo.field.matches.the.given.regu
1141e0 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 61 72 74 lar.expression.(default:.the.art
114200 69 73 74 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 61 74 20 70 ist.info.field.of.the.track.at.p
114220 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 41 0a 40 6b 69 6e 64 65 78 20 2f 20 41 0a 40 66 oint)...@item./.A.@kindex./.A.@f
114240 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 index.emms-playlist-limit-to-inf
114260 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c o-albumartist.Create.a.new.playl
114280 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 ist.buffer.and.populate.it.with.
1142a0 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 69 6e 66 6f 20 66 tracks.whose.album.artist.info.f
1142c0 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 0a 65 ield.matches.the.given.regular.e
1142e0 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 61 6c 62 75 6d 20 61 72 xpression.(default:.the.album.ar
114300 74 69 73 74 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 61 74 20 tist.info.field.of.the.track.at.
114320 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 62 0a 40 6b 69 6e 64 65 78 20 2f 20 62 0a 40 point)...@item./.b.@kindex./.b.@
114340 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e findex.emms-playlist-limit-to-in
114360 66 6f 2d 61 6c 62 75 6d 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 fo-album.Create.a.new.playlist.b
114380 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b uffer.and.populate.it.with.track
1143a0 73 0a 77 68 6f 73 65 20 61 6c 62 75 6d 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 s.whose.album.info.field.matches
1143c0 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 28 64 .the.given.regular.expression.(d
1143e0 65 66 61 75 6c 74 3a 20 74 68 65 20 61 6c 62 75 6d 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 efault:.the.album.info.field.of.
114400 74 68 65 0a 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 63 0a the.track.at.point)...@item./.c.
114420 40 6b 69 6e 64 65 78 20 2f 20 63 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 @kindex./.c.@findex.emms-playlis
114440 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a 43 72 65 61 74 65 20 t-limit-to-info-composer.Create.
114460 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 a.new.playlist.buffer.and.popula
114480 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 63 6f 6d 70 6f 73 65 72 te.it.with.tracks.whose.composer
1144a0 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 .info.field.matches.the.given.re
1144c0 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 63 gular.expression.(default:.the.c
1144e0 6f 6d 70 6f 73 65 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 omposer.info.field.of.the.track.
114500 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 64 0a 40 6b 69 6e 64 65 78 20 2f 20 at.point)...@item./.d.@kindex./.
114520 64 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f d.@findex.emms-playlist-limit-to
114540 2d 64 65 73 63 72 69 70 74 69 6f 6e 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 -description.Create.a.new.playli
114560 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 st.buffer.and.populate.it.with.t
114580 72 61 63 6b 73 0a 77 68 6f 73 65 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6d 61 racks.whose.track.description.ma
1145a0 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 tches.the.given.regular.expressi
1145c0 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 on.(default:.the.track.descripti
1145e0 6f 6e 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 on.of.the.track.at.point)...@ite
114600 6d 20 2f 20 67 0a 40 6b 69 6e 64 65 78 20 2f 20 67 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 m./.g.@kindex./.g.@findex.emms-p
114620 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 67 65 6e 72 65 0a 43 72 65 61 laylist-limit-to-info-genre.Crea
114640 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 te.a.new.playlist.buffer.and.pop
114660 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 67 65 6e 72 65 ulate.it.with.tracks.whose.genre
114680 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 .info.field.matches.the.given.re
1146a0 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 67 gular.expression.(default:.the.g
1146c0 65 6e 72 65 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 61 74 20 enre.info.field.of.the.track.at.
1146e0 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 6e 0a 40 6b 69 6e 64 65 78 20 2f 20 6e 0a 40 point)...@item./.n.@kindex./.n.@
114700 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 6e 61 findex.emms-playlist-limit-to-na
114720 6d 65 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 me.Create.a.new.playlist.buffer.
114740 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 and.populate.it.with.tracks.whos
114760 65 20 6e 61 6d 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 e.name.matches.the.given.regular
114780 20 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 0a 74 68 65 20 6e 61 6d 65 20 6f .expression.(default:.the.name.o
1147a0 66 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 f.the.track.at.point)...@item./.
1147c0 70 0a 40 6b 69 6e 64 65 78 20 2f 20 70 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c p.@kindex./.p.@findex.emms-playl
1147e0 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 0a 43 72 65 61 ist-limit-to-info-performer.Crea
114800 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 te.a.new.playlist.buffer.and.pop
114820 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 70 65 72 66 6f ulate.it.with.tracks.whose.perfo
114840 72 6d 65 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 rmer.info.field.matches.the.give
114860 6e 20 72 65 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 n.regular.expression.(default:.t
114880 68 65 20 70 65 72 66 6f 72 6d 65 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 he.performer.info.field.of.the.t
1148a0 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 74 0a 40 6b 69 6e 64 rack.at.point)...@item./.t.@kind
1148c0 65 78 20 2f 20 74 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d ex./.t.@findex.emms-playlist-lim
1148e0 69 74 2d 74 6f 2d 69 6e 66 6f 2d 74 69 74 6c 65 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c it-to-info-title.Create.a.new.pl
114900 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 69 74 20 77 69 aylist.buffer.and.populate.it.wi
114920 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 74 69 74 6c 65 20 69 6e 66 6f 20 66 69 65 6c 64 th.tracks.whose.title.info.field
114940 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 67 75 6c 61 72 0a 65 78 70 72 65 .matches.the.given.regular.expre
114960 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 74 69 74 6c 65 20 69 6e 66 6f 20 66 ssion.(default:.the.title.info.f
114980 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 29 2e 0a 0a 40 69 ield.of.the.track.at.point)...@i
1149a0 74 65 6d 20 2f 20 79 0a 40 6b 69 6e 64 65 78 20 2f 20 79 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 tem./.y.@kindex./.y.@findex.emms
1149c0 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 69 6e 66 6f 2d 79 65 61 72 0a 43 72 65 -playlist-limit-to-info-year.Cre
1149e0 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f ate.a.new.playlist.buffer.and.po
114a00 70 75 6c 61 74 65 20 69 74 20 77 69 74 68 20 74 72 61 63 6b 73 0a 77 68 6f 73 65 20 79 65 61 72 pulate.it.with.tracks.whose.year
114a20 20 69 6e 66 6f 20 66 69 65 6c 64 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 72 65 .info.field.matches.the.given.re
114a40 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 28 64 65 66 61 75 6c 74 3a 20 74 68 65 20 79 gular.expression.(default:.the.y
114a60 65 61 72 20 69 6e 66 6f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 0a 74 72 61 63 6b 20 61 74 20 70 ear.info.field.of.the.track.at.p
114a80 6f 69 6e 74 29 2e 0a 0a 40 69 74 65 6d 20 2f 20 2f 0a 40 6b 69 6e 64 65 78 20 2f 20 2f 0a 40 66 oint)...@item././.@kindex././.@f
114aa0 69 6e 64 65 78 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2d 74 6f 2d 61 6c 6c index.emms-playlist-limit-to-all
114ac0 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 70 6c 61 79 6c 69 73 74 .Switch.to.the.original.playlist
114ae0 20 62 75 66 66 65 72 20 28 69 66 20 69 74 20 73 74 69 6c 6c 20 65 78 69 73 74 73 29 2e 0a 40 65 .buffer.(if.it.still.exists)..@e
114b00 6e 64 20 74 61 62 6c 65 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d nd.table...@c.------------------
114b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
114b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 4d 75 73 69 63 20 50 6c -----------------.@node.Music.Pl
114b60 61 79 65 72 20 44 61 65 6d 6f 6e 0a 40 63 68 61 70 74 65 72 20 4d 75 73 69 63 20 50 6c 61 79 65 ayer.Daemon.@chapter.Music.Playe
114b80 72 20 44 61 65 6d 6f 6e 0a 0a 40 63 69 6e 64 65 78 20 6d 75 73 69 63 20 70 6c 61 79 65 72 20 64 r.Daemon..@cindex.music.player.d
114ba0 61 65 6d 6f 6e 0a 40 63 69 6e 64 65 78 20 72 65 6d 6f 74 65 20 69 6e 74 65 72 66 61 63 65 0a 40 aemon.@cindex.remote.interface.@
114bc0 63 69 6e 64 65 78 20 6d 70 64 0a 0a 45 6d 6d 73 20 70 72 6f 76 69 64 65 73 20 61 6e 20 69 6e 74 cindex.mpd..Emms.provides.an.int
114be0 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 40 75 72 65 66 7b 68 74 74 70 3a 2f 2f 77 77 77 2e 6d erface.to.the.@uref{http://www.m
114c00 75 73 69 63 70 64 2e 6f 72 67 2f 2c 20 4d 75 73 69 63 0a 50 6c 61 79 65 72 20 44 61 65 6d 6f 6e usicpd.org/,.Music.Player.Daemon
114c20 7d 28 4d 75 73 69 63 50 44 29 20 73 6f 66 74 77 61 72 65 2e 20 54 68 65 20 70 61 63 6b 61 67 65 }(MusicPD).software..The.package
114c40 20 69 73 20 63 61 6c 6c 65 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 27 20 61 6e 64 .is.called.`emms-player-mpd'.and
114c60 0a 69 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 40 66 69 6c 65 7b 65 .is.provided.by.the.file.@file{e
114c80 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 7d 2e 0a 0a 54 68 65 20 61 64 76 61 6e 74 61 mms-player-mpd.el}...The.advanta
114ca0 67 65 73 20 6f 66 20 75 73 69 6e 67 20 4d 75 73 69 63 50 44 20 61 73 20 61 6e 20 45 6d 6d 73 20 ges.of.using.MusicPD.as.an.Emms.
114cc0 62 61 63 6b 65 6e 64 20 69 6e 63 6c 75 64 65 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 0a backend.include.the.following...
114ce0 40 69 74 65 6d 69 7a 65 20 40 62 75 6c 6c 65 74 0a 0a 40 69 74 65 6d 20 6d 69 6e 69 6d 61 6c 20 @itemize.@bullet..@item.minimal.
114d00 43 50 55 20 75 73 61 67 65 0a 0a 40 69 74 65 6d 20 66 61 73 74 20 61 63 63 65 73 73 20 6f 66 20 CPU.usage..@item.fast.access.of.
114d20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 40 69 74 65 6d 20 6f 70 74 69 6f 6e 61 track.information..@item.optiona
114d40 6c 20 63 72 6f 73 73 66 61 64 65 0a 40 65 6e 64 20 69 74 65 6d 69 7a 65 0a 0a 40 73 75 62 68 65 l.crossfade.@end.itemize..@subhe
114d60 61 64 69 6e 67 20 53 65 74 75 70 0a 0a 54 6f 20 6c 6f 61 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 ading.Setup..To.load.`emms-playe
114d80 72 2d 6d 70 64 27 20 69 6e 76 6f 6b 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 r-mpd'.invoke:..@lisp.(require.'
114da0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 53 65 74 20 emms-player-mpd).@end.lisp..Set.
114dc0 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d the.variables.@var{emms-player-m
114de0 70 64 2d 73 65 72 76 65 72 2d 6e 61 6d 65 7d 20 61 6e 64 0a 40 76 61 72 7b 65 6d 6d 73 2d 70 6c pd-server-name}.and.@var{emms-pl
114e00 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 6f 72 74 7d 20 74 6f 20 74 68 65 20 6c 6f 63 ayer-mpd-server-port}.to.the.loc
114e20 61 74 69 6f 6e 20 61 6e 64 20 70 6f 72 74 0a 28 72 65 73 70 65 63 74 69 76 65 6c 79 29 20 6f 66 ation.and.port.(respectively).of
114e40 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 2e 20 46 6f 72 20 65 78 61 6d 70 6c .your.MusicPD.server..For.exampl
114e60 65 3a 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d e:..@lisp.(setq.emms-player-mpd-
114e80 73 65 72 76 65 72 2d 6e 61 6d 65 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 28 73 65 74 71 20 65 server-name."localhost").(setq.e
114ea0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 6f 72 74 20 22 36 36 30 30 mms-player-mpd-server-port."6600
114ec0 22 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 49 66 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 73 65 ").@end.lisp..If.your.MusicPD.se
114ee0 74 75 70 20 72 65 71 75 69 72 65 73 20 61 20 70 61 73 73 77 6f 72 64 2c 20 79 6f 75 20 77 69 6c tup.requires.a.password,.you.wil
114f00 6c 20 74 6f 20 73 65 74 0a 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 l.to.set.@var{emms-player-mpd-se
114f20 72 76 65 72 2d 70 61 73 73 77 6f 72 64 7d 20 61 73 20 66 6f 6c 6c 6f 77 73 2e 0a 0a 40 6c 69 73 rver-password}.as.follows...@lis
114f40 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 p.(setq.emms-player-mpd-server-p
114f60 61 73 73 77 6f 72 64 20 22 6d 79 70 61 73 73 77 6f 72 64 22 29 0a 40 65 6e 64 20 6c 69 73 70 0a assword."mypassword").@end.lisp.
114f80 0a 54 6f 20 67 65 74 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 4d .To.get.track.information.from.M
114fa0 75 73 69 63 50 44 2c 20 69 6e 76 6f 6b 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 40 usicPD,.invoke.the.following:..@
114fc0 6c 69 73 70 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e lisp.(add-to-list.'emms-info-fun
114fe0 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 29 0a 40 65 6e 64 20 6c 69 73 70 ctions.'emms-info-mpd).@end.lisp
115000 0a 0a 41 64 64 69 6e 67 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 27 20 74 6f 20 79 6f ..Adding.`emms-player-mpd'.to.yo
115020 75 72 20 45 6d 6d 73 20 70 6c 61 79 65 72 20 6c 69 73 74 20 69 73 20 61 63 63 6f 6d 70 6c 69 73 ur.Emms.player.list.is.accomplis
115040 68 65 64 20 62 79 0a 69 6e 76 6f 6b 69 6e 67 3a 0a 0a 40 6c 69 73 70 0a 28 61 64 64 2d 74 6f 2d hed.by.invoking:..@lisp.(add-to-
115060 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 list.'emms-player-list.'emms-pla
115080 79 65 72 2d 6d 70 64 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 55 6e 6c 65 73 73 20 79 6f 75 72 20 yer-mpd).@end.lisp..Unless.your.
1150a0 4d 75 73 69 63 50 44 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 74 6f 20 75 73 65 20 61 62 73 MusicPD.is.configured.to.use.abs
1150c0 6f 6c 75 74 65 20 66 69 6c 65 20 6e 61 6d 65 73 2c 20 79 6f 75 20 6d 75 73 74 0a 73 65 74 20 74 olute.file.names,.you.must.set.t
1150e0 68 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f he.emms-player-mpd-music-directo
115100 72 79 20 76 61 72 69 61 62 6c 65 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 0a 27 6d 75 73 ry.variable.to.the.value.of.'mus
115120 69 63 5f 64 69 72 65 63 74 6f 72 79 27 20 69 6e 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 63 6f ic_directory'.in.your.MusicPD.co
115140 6e 66 69 67 75 72 61 74 69 6f 6e 2e 20 20 54 68 65 72 65 20 61 72 65 0a 61 64 64 69 74 69 6f 6e nfiguration...There.are.addition
115160 61 6c 20 6f 70 74 69 6f 6e 73 20 61 76 61 69 6c 61 62 6c 65 20 61 73 20 77 65 6c 6c 2c 20 62 75 al.options.available.as.well,.bu
115180 74 20 74 68 65 20 64 65 66 61 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 0a 73 75 66 66 69 63 69 t.the.defaults.should.be.suffici
1151a0 65 6e 74 20 66 6f 72 20 6d 6f 73 74 20 75 73 65 73 2e 0a 0a 4f 6e 63 65 20 79 6f 75 27 76 65 20 ent.for.most.uses...Once.you've.
1151c0 64 6f 6e 65 20 74 68 65 20 61 62 6f 76 65 2c 20 72 75 6e 20 74 68 65 20 40 6b 62 64 7b 4d 2d 78 done.the.above,.run.the.@kbd{M-x
1151e0 0a 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 7d 20 63 6f .emms-cache-set-from-mpd-all}.co
115200 6d 6d 61 6e 64 20 74 6f 20 66 69 6c 6c 20 74 68 65 20 45 6d 6d 73 20 63 61 63 68 65 20 77 69 74 mmand.to.fill.the.Emms.cache.wit
115220 68 20 74 68 65 0a 63 6f 6e 74 65 6e 74 73 20 6f 66 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 64 h.the.contents.of.your.MusicPD.d
115240 61 74 61 62 61 73 65 2e 20 54 68 65 20 6d 75 73 69 63 20 69 6e 20 79 6f 75 72 20 4d 75 73 69 63 atabase..The.music.in.your.Music
115260 50 44 20 64 61 74 61 62 61 73 65 0a 73 68 6f 75 6c 64 20 74 68 65 6e 20 62 65 20 61 63 63 65 73 PD.database.should.then.be.acces
115280 73 69 62 6c 65 20 76 69 61 20 74 68 65 20 45 6d 6d 73 20 62 72 6f 77 73 65 72 2e 0a 0a 59 6f 75 sible.via.the.Emms.browser...You
1152a0 20 63 61 6e 20 73 65 74 20 40 76 61 72 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 .can.set.@var{emms-player-mpd-sy
1152c0 6e 63 2d 70 6c 61 79 6c 69 73 74 7d 20 74 6f 20 6e 69 6c 20 69 66 20 79 6f 75 72 20 6d 61 73 74 nc-playlist}.to.nil.if.your.mast
1152e0 65 72 0a 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 6c 79 20 73 er.Emms.playlist.contains.only.s
115300 74 6f 72 65 64 20 70 6c 61 79 6c 69 73 74 73 2e 0a 0a 49 6e 20 6f 72 64 65 72 20 66 6f 72 20 45 tored.playlists...In.order.for.E
115320 6d 6d 73 20 74 6f 20 73 79 6e 63 68 72 6f 6e 69 7a 65 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 mms.to.synchronize.track.informa
115340 74 69 6f 6e 20 63 6f 72 72 65 63 74 6c 79 20 77 69 74 68 0a 4d 75 73 69 63 50 44 2c 20 79 6f 75 tion.correctly.with.MusicPD,.you
115360 20 6d 75 73 74 20 73 65 74 20 74 68 65 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 20 72 75 6e .must.set.the.MusicPD.server.run
115380 74 69 6d 65 20 27 63 6f 6e 73 75 6d 65 27 20 6f 70 74 69 6f 6e 20 74 6f 0a 27 6f 66 66 27 2e 20 time.'consume'.option.to.'off'..
1153a0 54 68 69 73 20 63 61 6e 20 62 65 20 61 63 63 6f 6d 70 6c 69 73 68 65 64 20 77 69 74 68 20 74 68 This.can.be.accomplished.with.th
1153c0 65 20 6d 70 63 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 4d 75 73 69 63 50 44 20 63 6c 69 65 6e e.mpc.command.line.MusicPD.clien
1153e0 74 0a 75 73 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 40 63 6f 6d 6d 61 6e 64 7b 6d 70 63 t.using.the.command.@command{mpc
115400 20 63 6f 6e 73 75 6d 65 20 6f 66 66 7d 2e 0a 0a 40 73 75 62 68 65 61 64 69 6e 67 20 43 6f 6d 6d .consume.off}...@subheading.Comm
115420 61 6e 64 73 20 70 72 6f 76 69 64 65 64 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 ands.provided..@defun.emms-playe
115440 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 0a 43 6f 6e 6e 65 63 74 20 74 6f 20 4d 75 73 69 63 50 44 r-mpd-connect.Connect.to.MusicPD
115460 20 61 6e 64 20 72 65 74 72 69 65 76 65 20 69 74 73 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 .and.retrieve.its.current.playli
115480 73 74 2e 20 41 66 74 65 72 77 61 72 64 2c 20 74 68 65 0a 73 74 61 74 75 73 20 6f 66 20 4d 75 73 st..Afterward,.the.status.of.Mus
1154a0 69 63 50 44 20 77 69 6c 6c 20 62 65 20 74 72 61 63 6b 65 64 2e 0a 40 65 6e 64 20 64 65 66 75 6e icPD.will.be.tracked..@end.defun
1154c0 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 69 73 63 6f 6e 6e ..@defun.emms-player-mpd-disconn
1154e0 65 63 74 0a 54 65 72 6d 69 6e 61 74 65 20 74 68 65 20 4d 75 73 69 63 50 44 20 63 6c 69 65 6e 74 ect.Terminate.the.MusicPD.client
115500 20 70 72 6f 63 65 73 73 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 4d 75 73 .process.and.disconnect.from.Mus
115520 69 63 50 44 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c icPD..@end.defun..@defun.emms-pl
115540 61 79 65 72 2d 6d 70 64 2d 73 68 6f 77 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 73 65 72 74 70 0a ayer-mpd-show.&optional.insertp.
115560 44 65 73 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 74 72 61 63 6b 20 Describe.the.current.Emms.track.
115580 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 20 49 66 20 49 4e 53 45 52 54 50 20 69 73 in.the.minibuffer..If.INSERTP.is
1155a0 0a 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 65 72 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e .non-nil,.insert.the.description
1155c0 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 .into.the.current.buffer.instead
1155e0 2e 20 54 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 40 76 61 72 7b 65 6d 6d 73 2d 73 ..This.function.uses.@var{emms-s
115600 68 6f 77 2d 66 6f 72 6d 61 74 7d 20 74 6f 20 66 6f 72 6d 61 74 20 74 68 65 20 63 75 72 72 65 6e how-format}.to.format.the.curren
115620 74 20 74 72 61 63 6b 2e 20 49 74 0a 64 69 66 66 65 72 73 20 66 72 6f 6d 20 40 63 6f 6d 6d 61 6e t.track..It.differs.from.@comman
115640 64 7b 65 6d 6d 73 2d 73 68 6f 77 7d 20 69 6e 20 74 68 61 74 20 69 74 20 61 73 6b 73 20 4d 75 73 d{emms-show}.in.that.it.asks.Mus
115660 69 63 50 44 20 66 6f 72 20 74 68 65 0a 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2c 20 72 61 74 68 icPD.for.the.current.track,.rath
115680 65 72 20 74 68 61 6e 20 45 6d 6d 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 73 75 62 73 75 er.than.Emms..@end.defun..@subsu
1156a0 62 68 65 61 64 69 6e 67 20 55 70 64 61 74 69 6e 67 20 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 bheading.Updating.the.MusicPD.da
1156c0 74 61 62 61 73 65 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 tabase..@defun.emms-player-mpd-u
1156e0 70 64 61 74 65 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 0a 43 61 75 73 65 20 74 68 65 20 74 72 pdate-directory.dir.Cause.the.tr
115700 61 63 6b 73 20 69 6e 20 44 49 52 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 69 6e 20 74 68 65 acks.in.DIR.to.be.updated.in.the
115720 20 4d 75 73 69 63 50 44 20 64 61 74 61 62 61 73 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 .MusicPD.database..@end.defun..@
115740 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 70 64 61 74 65 2d 61 6c 6c defun.emms-player-mpd-update-all
115760 0a 43 61 75 73 65 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 4d 75 73 69 63 50 44 .Cause.all.tracks.in.the.MusicPD
115780 20 6d 75 73 69 63 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 69 .music.directory.to.be.updated.i
1157a0 6e 0a 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 74 61 62 61 73 65 2e 0a 40 65 6e 64 20 64 65 66 n.the.MusicPD.database..@end.def
1157c0 75 6e 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 6e 67 20 65 6d 6d 73 2d 63 61 63 68 65 2e 65 6c un..@subsubheading.emms-cache.el
1157e0 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d .integration..@defun.emms-cache-
115800 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 0a 44 75 6d 70 20 set-from-mpd-directory.dir.Dump.
115820 61 6c 6c 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 66 72 6f 6d 20 44 49 52 20 69 6e 74 6f 20 74 all.MusicPD.data.from.DIR.into.t
115840 68 65 20 45 6d 6d 73 20 63 61 63 68 65 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 74 6f he.Emms.cache..This.is.useful.to
115860 20 64 6f 20 77 68 65 6e 20 79 6f 75 20 68 61 76 65 20 72 65 63 65 6e 74 6c 79 20 61 63 71 75 69 .do.when.you.have.recently.acqui
115880 72 65 64 20 6e 65 77 20 6d 75 73 69 63 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 red.new.music..@end.defun..@defu
1158a0 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 0a 44 75 n.emms-cache-set-from-mpd-all.Du
1158c0 6d 70 20 61 6c 6c 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 69 6e 74 6f 20 74 68 65 20 45 6d 6d mp.all.MusicPD.data.into.the.Emm
1158e0 73 20 63 61 63 68 65 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 74 6f 20 64 6f 20 6f 6e s.cache..This.is.useful.to.do.on
115900 63 65 2c 20 6a 75 73 74 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 65 6d 6d 73 2d 62 72 6f 77 73 ce,.just.before.using.emms-brows
115920 65 72 2e 65 6c 2c 20 69 6e 0a 6f 72 64 65 72 20 74 6f 20 70 72 69 6d 65 20 74 68 65 20 63 61 63 er.el,.in.order.to.prime.the.cac
115940 68 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 73 75 62 73 75 62 68 65 61 64 69 6e 67 20 65 he..@end.defun..@subsubheading.e
115960 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 0a 54 6f 20 61 63 mms-volume.el.integration..To.ac
115980 74 69 76 61 74 65 20 74 68 69 73 2c 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 tivate.this,.add.the.following.t
1159a0 6f 20 79 6f 75 72 20 2e 65 6d 61 63 73 2e 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 o.your..emacs...@lisp.(require.'
1159c0 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 emms-volume).(setq.emms-volume-c
1159e0 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 64 2d hange-function.'emms-volume-mpd-
115a00 63 68 61 6e 67 65 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d change).@end.lisp...@c.---------
115a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
115a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 --------------------------.@node
115a60 20 4c 79 72 69 63 73 0a 40 63 68 61 70 74 65 72 20 4c 79 72 69 63 73 0a 0a 40 63 69 6e 64 65 78 .Lyrics.@chapter.Lyrics..@cindex
115a80 20 6c 79 72 69 63 73 0a 0a 57 65 20 63 61 6e 20 64 69 73 70 6c 61 79 20 74 68 65 20 6c 79 72 69 .lyrics..We.can.display.the.lyri
115aa0 63 73 20 6f 66 20 61 20 73 6f 6e 67 20 69 6e 20 74 69 6d 65 20 77 69 74 68 20 74 68 65 20 6d 75 cs.of.a.song.in.time.with.the.mu
115ac0 73 69 63 20 75 73 69 6e 67 20 74 68 65 0a 60 65 6d 6d 73 2d 6c 79 72 69 63 73 27 20 70 61 63 6b sic.using.the.`emms-lyrics'.pack
115ae0 61 67 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 40 66 69 6c 65 7b 65 age.provided.by.the.file.@file{e
115b00 6d 6d 73 2d 6c 79 72 69 63 73 2e 65 6c 7d 2e 0a 0a 54 68 65 20 6c 79 72 69 63 73 20 66 69 6c 65 mms-lyrics.el}...The.lyrics.file
115b20 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 74 69 6f 6e 20 60 60 2e 6c s.should.have.the.extention.``.l
115b40 72 63 27 27 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 70 6c 61 63 65 64 0a 75 6e 64 65 72 20 65 69 rc'',.and.can.be.placed.under.ei
115b60 74 68 65 72 20 74 68 65 20 73 61 6d 65 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 74 68 65 20 6d ther.the.same.directory.as.the.m
115b80 75 73 69 63 20 66 69 6c 65 73 20 6f 72 0a 40 76 61 72 7b 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 usic.files.or.@var{emms-lyrics-d
115ba0 69 72 7d 2e 0a 0a 54 6f 20 61 64 64 20 74 68 69 73 20 66 65 61 74 75 72 65 20 77 65 20 69 6e 76 ir}...To.add.this.feature.we.inv
115bc0 6f 6b 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 79 72 69 63 oke:..@lisp.(require.'emms-lyric
115be0 73 29 0a 28 65 6d 6d 73 2d 6c 79 72 69 63 73 20 31 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 53 79 s).(emms-lyrics.1).@end.lisp..Sy
115c00 6e 63 68 72 6f 6e 69 7a 65 64 20 6c 79 72 69 63 73 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 6f nchronized.lyrics.files.can.be.o
115c20 62 74 61 69 6e 65 64 20 6d 61 6e 75 61 6c 6c 79 20 66 72 6f 6d 20 76 61 72 69 6f 75 73 0a 73 6f btained.manually.from.various.so
115c40 75 72 63 65 73 2c 20 6f 72 20 66 65 74 63 68 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 urces,.or.fetched.automatically.
115c60 66 6f 72 20 6e 65 77 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 61 6e 20 4c 52 43 4c 49 42 20 73 65 for.new.tracks.from.an.LRCLIB.se
115c80 72 76 65 72 0a 28 40 75 72 6c 7b 68 74 74 70 73 3a 2f 2f 6c 72 63 6c 69 62 2e 6e 65 74 7d 29 20 rver.(@url{https://lrclib.net}).
115ca0 62 79 20 61 64 64 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e by.adding.the.following.function
115cc0 20 74 6f 0a 40 76 61 72 7b 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 66 .to.@var{emms-track-initialize-f
115ce0 75 6e 63 74 69 6f 6e 73 7d 3a 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c unctions}:..@defun.emms-lyrics-l
115d00 72 63 6c 69 62 2d 67 65 74 20 26 6f 70 74 69 6f 6e 61 6c 20 74 72 61 63 6b 20 66 6f 72 63 65 20 rclib-get.&optional.track.force.
115d20 69 6e 74 65 72 61 63 74 69 76 65 0a 53 65 61 72 63 68 20 66 6f 72 20 73 79 6e 63 68 72 6f 6e 69 interactive.Search.for.synchroni
115d40 7a 65 64 20 6c 79 72 69 63 73 20 66 6f 72 20 40 76 61 72 7b 74 72 61 63 6b 7d 20 74 68 72 6f 75 zed.lyrics.for.@var{track}.throu
115d60 67 68 20 4c 52 43 4c 49 42 e2 80 99 73 20 41 50 49 2e 0a 49 66 20 40 76 61 72 7b 74 72 61 63 6b gh.LRCLIB...s.API..If.@var{track
115d80 7d 20 69 73 20 6f 6d 69 74 74 65 64 20 6f 72 20 6e 69 6c 2c 20 75 73 65 20 74 68 65 20 73 65 6c }.is.omitted.or.nil,.use.the.sel
115da0 65 63 74 65 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 20 70 6c 61 79 6c ected.track.in.the.current.playl
115dc0 69 73 74 2e 0a 57 68 65 6e 20 75 73 65 64 20 61 73 20 61 20 74 72 61 63 6b 20 69 6e 69 74 69 61 ist..When.used.as.a.track.initia
115de0 6c 69 7a 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 2c 20 40 76 61 72 7b 74 72 61 63 6b 7d 20 69 lization.function,.@var{track}.i
115e00 73 20 73 65 74 20 74 6f 0a 74 68 65 20 74 72 61 63 6b 20 62 65 69 6e 67 20 69 6e 69 74 69 61 6c s.set.to.the.track.being.initial
115e20 69 7a 65 64 2e 0a 54 68 65 20 6c 79 72 69 63 73 20 61 72 65 20 73 61 76 65 64 20 69 6e 20 61 6e ized..The.lyrics.are.saved.in.an
115e40 20 60 60 2e 6c 72 63 27 27 20 66 69 6c 65 20 61 6c 6f 6e 67 73 69 64 65 20 74 68 65 20 74 72 61 .``.lrc''.file.alongside.the.tra
115e60 63 6b 2c 20 75 6e 6c 65 73 73 0a 74 68 65 20 66 69 6c 65 20 61 6c 72 65 61 64 79 20 65 78 69 73 ck,.unless.the.file.already.exis
115e80 74 73 20 28 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 73 65 61 72 63 68 20 69 73 6e ts.(in.which.case.the.search.isn
115ea0 e2 80 99 74 20 70 65 72 66 6f 72 6d 65 64 29 2e 0a 57 68 65 6e 20 63 61 6c 6c 65 64 20 69 6e 74 ...t.performed)..When.called.int
115ec0 65 72 61 63 74 69 76 65 6c 79 20 28 6e 6f 6e 2d 6e 69 6c 20 40 76 61 72 7b 69 6e 74 65 72 61 63 eractively.(non-nil.@var{interac
115ee0 74 69 76 65 7d 29 2c 20 64 69 73 70 6c 61 79 0a 69 6e 66 6f 72 6d 61 74 69 76 65 20 6d 65 73 73 tive}),.display.informative.mess
115f00 61 67 65 73 2c 20 61 6e 64 20 77 69 74 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 40 ages,.and.with.prefix.argument.@
115f20 76 61 72 7b 66 6f 72 63 65 7d 2c 20 61 73 6b 20 74 6f 0a 6f 76 65 72 77 72 69 74 65 20 65 78 69 var{force},.ask.to.overwrite.exi
115f40 73 74 69 6e 67 20 60 60 2e 6c 72 63 27 27 20 66 69 6c 65 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e sting.``.lrc''.files..@end.defun
115f60 0a 0a 54 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 76 61 72 69 61 62 6c 65 ..There.are.a.number.of.variable
115f80 73 20 77 65 20 63 61 6e 20 73 65 74 20 74 6f 20 64 65 66 69 6e 65 20 74 68 65 20 77 61 79 20 74 s.we.can.set.to.define.the.way.t
115fa0 68 61 74 0a 60 65 6d 6d 73 2d 6c 79 72 69 63 73 27 20 62 65 68 61 76 65 73 2c 20 77 65 20 63 61 hat.`emms-lyrics'.behaves,.we.ca
115fc0 6e 20 73 65 74 20 74 68 65 73 65 20 64 69 72 65 63 74 6c 79 20 6f 72 20 62 79 20 75 73 69 6e 67 n.set.these.directly.or.by.using
115fe0 20 74 68 65 0a 43 75 73 74 6f 6d 69 7a 65 20 66 65 61 74 75 72 65 20 69 6e 20 45 6d 61 63 73 2e .the.Customize.feature.in.Emacs.
116000 0a 0a 40 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 6f 6e 7d 20 65 6d 6d 73 2d 6c 79 72 69 ..@defvr.{User.Option}.emms-lyri
116020 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 0a 49 66 20 6e 6f 6e 2d cs-display-on-minibuffer.If.non-
116040 6e 69 6c 2c 20 64 69 73 70 6c 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 66 65 nil,.display.lyrics.on.minibuffe
116060 72 2e 0a 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 r..@end.defvr..@defvr.{User.Opti
116080 6f 6e 7d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c on}.emms-lyrics-display-on-model
1160a0 69 6e 65 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 69 73 70 6c 61 79 20 6c 79 72 69 63 73 20 6f ine.If.non-nil,.display.lyrics.o
1160c0 6e 20 6d 6f 64 65 6c 69 6e 65 2e 0a 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 64 65 66 76 72 20 7b n.modeline..@end.defvr..@defvr.{
1160e0 55 73 65 72 20 4f 70 74 69 6f 6e 7d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 72 0a 4c 6f 63 User.Option}.emms-lyrics-dir.Loc
116100 61 6c 20 6c 79 72 69 63 73 20 72 65 70 6f 73 69 74 6f 72 79 2e 0a 40 63 6f 6d 6d 61 6e 64 7b 65 al.lyrics.repository..@command{e
116120 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e 64 2d 6c 79 72 69 63 7d 20 77 69 6c 6c 20 6c 6f 6f 6b mms-lyrics-find-lyric}.will.look
116140 20 66 6f 72 20 6c 79 72 69 63 73 20 69 6e 20 63 75 72 72 65 6e 74 0a 64 69 72 65 63 74 6f 72 79 .for.lyrics.in.current.directory
116160 28 69 2e 65 2e 2c 20 73 61 6d 65 20 61 73 20 74 68 65 20 6d 75 73 69 63 20 66 69 6c 65 29 20 61 (i.e.,.same.as.the.music.file).a
116180 6e 64 20 74 68 69 73 20 64 69 72 65 63 74 6f 72 79 2e 0a 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 nd.this.directory..@end.defvr..@
1161a0 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 6f 6e 7d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d defvr.{User.Option}.emms-lyrics-
1161c0 64 69 73 70 6c 61 79 2d 66 6f 72 6d 61 74 0a 46 6f 72 6d 61 74 20 66 6f 72 20 64 69 73 70 6c 61 display-format.Format.for.displa
1161e0 79 69 6e 67 20 6c 79 72 69 63 73 2e 20 22 25 73 22 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 ying.lyrics.."%s".will.be.replac
116200 65 64 20 62 79 20 74 68 65 20 6c 79 72 69 63 73 0a 73 74 72 69 6e 67 2e 0a 40 65 6e 64 20 64 65 ed.by.the.lyrics.string..@end.de
116220 66 76 72 0a 0a 40 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 6f 6e 7d 20 65 6d 6d 73 2d 6c fvr..@defvr.{User.Option}.emms-l
116240 79 72 69 63 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 0a 43 6f 64 69 6e 67 20 73 79 73 74 65 yrics-coding-system.Coding.syste
116260 6d 20 75 73 65 64 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 6c 79 72 69 63 73 2e 0a m.used.in.the.output.of.lyrics..
116280 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 6f 6e 7d @end.defvr..@defvr.{User.Option}
1162a0 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 70 0a 4e 6f 6e 2d 6e 69 6c 20 76 61 .emms-lyrics-scroll-p.Non-nil.va
1162c0 6c 75 65 20 77 69 6c 6c 20 65 6e 61 62 6c 65 20 6c 79 72 69 63 73 20 73 63 72 6f 6c 6c 69 6e 67 lue.will.enable.lyrics.scrolling
1162e0 2e 0a 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 6f ..@end.defvr..@defvr.{User.Optio
116300 6e 7d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 72 2d 69 6e 74 65 n}.emms-lyrics-scroll-timer-inte
116320 72 76 61 6c 0a 49 6e 74 65 72 76 61 6c 20 62 65 74 77 65 65 6e 20 73 63 72 6f 6c 6c 65 72 20 74 rval.Interval.between.scroller.t
116340 69 6d 65 72 73 2e 20 54 68 65 20 73 68 6f 72 74 65 72 2c 20 74 68 65 20 66 61 73 74 65 72 2e 0a imers..The.shorter,.the.faster..
116360 40 65 6e 64 20 64 65 66 76 72 0a 0a 40 64 65 66 76 72 20 7b 55 73 65 72 20 4f 70 74 69 6f 6e 7d @end.defvr..@defvr.{User.Option}
116380 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2d 75 72 6c 0a 42 61 73 65 20 55 52 4c .emms-lyrics-lrclib-url.Base.URL
1163a0 20 66 6f 72 20 4c 52 43 4c 49 42 20 41 50 49 20 72 65 71 75 65 73 74 73 2e 0a 40 65 6e 64 20 64 .for.LRCLIB.API.requests..@end.d
1163c0 65 66 76 72 0a 0a 57 65 20 63 61 6e 20 63 6f 6e 74 72 6f 6c 20 60 65 6d 6d 73 2d 6c 79 72 69 63 efvr..We.can.control.`emms-lyric
1163e0 73 27 20 77 69 74 68 20 74 68 65 20 68 65 6c 70 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e s'.with.the.help.of.the.followin
116400 67 20 66 75 6e 63 74 69 6f 6e 73 3a 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 g.functions:..@defun.emms-lyrics
116420 2d 73 74 61 72 74 0a 53 74 61 72 74 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 0a -start.Start.displaying.lyrics..
116440 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 @end.defun..@defun.emms-lyrics-s
116460 74 6f 70 0a 53 74 6f 70 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 0a 40 65 6e 64 top.Stop.displaying.lyrics..@end
116480 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c .defun..@defun.emms-lyrics-toggl
1164a0 65 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 0a 54 6f 67 67 6c 65 20 64 e-display-on-minibuffer.Toggle.d
1164c0 69 73 70 6c 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 65 72 2e 0a 40 65 6e 64 isplay.lyrics.on.minibufer..@end
1164e0 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c .defun..@defun.emms-lyrics-toggl
116500 65 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 0a 54 6f 67 67 6c 65 20 64 69 73 e-display-on-modeline.Toggle.dis
116520 70 6c 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2e 0a 40 65 6e 64 20 64 play.lyrics.on.mode.line..@end.d
116540 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6e 61 62 6c 65 0a efun..@defun.emms-lyrics-enable.
116560 45 6e 61 62 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 45 6d 6d 73 20 6c 79 72 69 63 73 2e 0a 40 Enable.displaying.Emms.lyrics..@
116580 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 end.defun..@defun.emms-lyrics-di
1165a0 73 61 62 6c 65 0a 44 69 73 61 62 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 45 6d 6d 73 20 6c 79 sable.Disable.displaying.Emms.ly
1165c0 72 69 63 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 rics..@end.defun..@defun.emms-ly
1165e0 72 69 63 73 2d 74 6f 67 67 6c 65 0a 54 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 45 6d rics-toggle.Toggle.displaying.Em
116600 6d 73 20 6c 79 72 69 63 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d ms.lyrics..@end.defun...@c.-----
116620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
116640 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 ------------------------------.@
116660 6e 6f 64 65 20 56 6f 6c 75 6d 65 0a 40 63 68 61 70 74 65 72 20 56 6f 6c 75 6d 65 0a 0a 40 63 69 node.Volume.@chapter.Volume..@ci
116680 6e 64 65 78 20 76 6f 6c 75 6d 65 0a 0a 57 65 20 63 61 6e 20 75 73 65 20 74 68 65 20 60 65 6d 6d ndex.volume..We.can.use.the.`emm
1166a0 73 2d 76 6f 6c 75 6d 65 27 20 70 61 63 6b 61 67 65 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 s-volume'.package,.as.provided.b
1166c0 79 20 74 68 65 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 7d 20 66 69 6c 65 y.the.@file{emms-volume.el}.file
1166e0 2c 20 74 6f 20 6d 61 6e 69 70 75 6c 61 74 65 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 0a 40 64 65 ,.to.manipulate.the.volume...@de
116700 66 6f 70 74 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 0a 54 fopt.emms-volume-change-amount.T
116720 68 65 20 61 6d 6f 75 6e 74 20 74 6f 20 75 73 65 20 77 68 65 6e 20 72 61 69 73 69 6e 67 20 6f 72 he.amount.to.use.when.raising.or
116740 20 6c 6f 77 65 72 69 6e 67 20 74 68 65 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 74 68 65 0a 65 .lowering.the.volume.using.the.e
116760 6d 6d 73 2d 76 6f 6c 75 6d 65 20 69 6e 74 65 72 66 61 63 65 2e 0a 0a 54 68 69 73 20 73 68 6f 75 mms-volume.interface...This.shou
116780 6c 64 20 62 65 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 0a 40 65 6e 64 20 64 ld.be.a.positive.integer..@end.d
1167a0 65 66 6f 70 74 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 72 61 69 73 65 0a efopt..@defun.emms-volume-raise.
1167c0 49 6e 63 72 65 61 73 65 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a Increase.the.volume..@end.defun.
1167e0 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6c 6f 77 65 72 0a 44 65 63 72 65 61 .@defun.emms-volume-lower.Decrea
116800 73 65 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 49 66 20 79 6f se.the.volume..@end.defun..If.yo
116820 75 20 66 65 65 6c 20 6c 69 6b 65 20 62 69 6e 64 69 6e 67 20 74 68 6f 73 65 20 74 77 6f 20 66 75 u.feel.like.binding.those.two.fu
116840 6e 63 74 69 6f 6e 73 20 74 6f 20 67 6c 6f 62 61 6c 20 6b 65 79 73 20 2d 2d 2d 20 64 6f 6e 27 74 nctions.to.global.keys.---.don't
116860 20 64 6f 0a 69 74 20 6f 72 20 79 6f 75 27 6c 6c 20 6d 69 73 73 20 74 68 65 20 63 6f 6e 76 65 6e .do.it.or.you'll.miss.the.conven
116880 69 65 6e 63 65 20 6f 66 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 ience.of.`emms-volume-minor-mode
1168a0 27 2e 20 49 6e 73 74 65 61 64 2c 0a 62 69 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 '..Instead,.bind.the.following.t
1168c0 77 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 73 6f 6d 65 20 6b 65 79 73 20 74 68 61 74 20 79 6f wo.commands.to.some.keys.that.yo
1168e0 75 20 6c 69 6b 65 2e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 u.like...@defun.emms-volume-mode
116900 2d 70 6c 75 73 0a 52 61 69 73 65 20 76 6f 6c 75 6d 65 20 61 6e 64 20 65 6e 61 62 6c 65 20 6f 72 -plus.Raise.volume.and.enable.or
116920 20 65 78 74 65 6e 64 20 74 68 65 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d .extend.the.`emms-volume-minor-m
116940 6f 64 65 27 20 74 69 6d 65 6f 75 74 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e ode'.timeout..@end.defun..@defun
116960 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 6d 69 6e 75 73 0a 4c 6f 77 65 72 20 76 6f .emms-volume-mode-minus.Lower.vo
116980 6c 75 6d 65 20 61 6e 64 20 65 6e 61 62 6c 65 20 6f 72 20 65 78 74 65 6e 64 20 74 68 65 20 60 65 lume.and.enable.or.extend.the.`e
1169a0 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 74 69 6d 65 6f 75 74 2e 0a mms-volume-minor-mode'.timeout..
1169c0 40 65 6e 64 20 64 65 66 75 6e 0a 0a 45 78 61 6d 70 6c 65 3a 0a 0a 40 6c 69 73 70 0a 28 67 6c 6f @end.defun..Example:..@lisp.(glo
1169e0 62 61 6c 2d 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 20 2b 22 29 20 27 65 6d 6d 73 2d bal-set-key.(kbd."C-c.+").'emms-
116a00 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 70 6c 75 73 29 0a 28 67 6c 6f 62 61 6c 2d 73 65 74 2d 6b 65 volume-mode-plus).(global-set-ke
116a20 79 20 28 6b 62 64 20 22 43 2d 63 20 2d 22 29 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 y.(kbd."C-c.-").'emms-volume-mod
116a40 65 2d 6d 69 6e 75 73 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 57 68 65 6e 65 76 65 72 20 79 6f 75 e-minus).@end.lisp..Whenever.you
116a60 20 75 73 65 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 6b 65 79 73 20 6f 72 20 63 61 6c 6c 20 74 .use.one.of.these.keys.or.call.t
116a80 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 74 68 0a 40 6b 62 64 7b 4d 2d 78 7d 2c 20 45 hese.functions.with.@kbd{M-x},.E
116aa0 6d 6d 73 20 77 69 6c 6c 20 62 65 20 70 75 74 20 69 6e 74 6f 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d mms.will.be.put.into.`emms-volum
116ac0 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 66 6f 72 20 61 20 73 68 6f 72 74 0a 70 65 72 69 6f 64 e-minor-mode'.for.a.short.period
116ae0 20 64 65 66 69 6e 65 64 20 62 79 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 65 2d 74 69 .defined.by.`emms-volume-mode-ti
116b00 6d 65 6f 75 74 27 2e 0a 0a 40 64 65 66 6f 70 74 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 6f 64 meout'...@defopt.emms-volume-mod
116b20 65 2d 74 69 6d 65 6f 75 74 0a 54 68 65 20 74 69 6d 65 6f 75 74 20 69 6e 20 61 6d 6f 75 6e 74 20 e-timeout.The.timeout.in.amount.
116b40 6f 66 20 73 65 63 6f 6e 64 73 20 75 73 65 64 20 62 79 20 60 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d of.seconds.used.by.`emms-volume-
116b60 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 0a 40 65 6e 64 20 64 65 66 6f 70 74 0a 0a 49 6e 20 74 68 69 minor-mode'..@end.defopt..In.thi
116b80 73 20 69 6e 74 65 72 76 61 6c 20 79 6f 75 20 63 61 6e 20 72 61 69 73 65 2f 6c 6f 77 65 72 20 74 s.interval.you.can.raise/lower.t
116ba0 68 65 20 76 6f 6c 75 6d 65 20 73 69 6d 70 6c 79 20 62 79 20 70 72 65 73 73 69 6e 67 0a 40 6b 62 he.volume.simply.by.pressing.@kb
116bc0 64 7b 2b 7d 20 6f 72 20 40 6b 62 64 7b 2d 7d 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 61 6c 73 6f d{+}.or.@kbd{-},.which.will.also
116be0 20 72 65 73 65 74 20 74 68 65 20 74 69 6d 65 72 20 74 6f 20 69 74 73 20 69 6e 69 74 69 61 6c 0a .reset.the.timer.to.its.initial.
116c00 76 61 6c 75 65 2e 20 53 6f 20 69 6e 73 74 65 61 64 20 6f 66 20 70 72 65 73 73 69 6e 67 20 40 6b value..So.instead.of.pressing.@k
116c20 62 64 7b 43 2d 63 20 2b 7d 20 73 69 78 20 74 69 6d 65 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 bd{C-c.+}.six.times.to.increase.
116c40 76 6f 6c 75 6d 65 0a 62 79 20 73 69 78 20 73 74 65 70 73 20 6f 66 20 40 63 6f 64 65 7b 65 6d 6d volume.by.six.steps.of.@code{emm
116c60 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 61 6d 6f 75 6e 74 7d 2c 20 79 6f 75 20 77 6f 75 s-volume-change-amount},.you.wou
116c80 6c 64 20 73 69 6d 70 6c 79 20 74 79 70 65 0a 40 6b 62 64 7b 43 2d 63 20 2b 20 2b 20 2b 20 2b 20 ld.simply.type.@kbd{C-c.+.+.+.+.
116ca0 2b 20 2b 7d 2e 0a 0a 45 6d 6d 73 20 63 61 6e 20 63 68 61 6e 67 65 20 76 6f 6c 75 6d 65 20 77 69 +.+}...Emms.can.change.volume.wi
116cc0 74 68 20 61 6d 69 78 65 72 2c 20 6d 70 64 2c 20 50 75 6c 73 65 41 75 64 69 6f 20 61 6e 64 20 6d th.amixer,.mpd,.PulseAudio.and.m
116ce0 69 78 65 72 63 74 6c 20 6f 75 74 0a 6f 66 20 74 68 65 20 62 6f 78 2c 20 73 65 65 20 40 76 61 72 ixerctl.out.of.the.box,.see.@var
116d00 7b 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 7d 2e 0a 0a {emms-volume-change-function}...
116d20 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .@c.----------------------------
116d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
116d60 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 0a 40 63 -------.@node.Streaming.Audio.@c
116d80 68 61 70 74 65 72 20 53 74 72 65 61 6d 69 6e 67 20 41 75 64 69 6f 0a 0a 40 63 69 6e 64 65 78 20 hapter.Streaming.Audio..@cindex.
116da0 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 0a 40 63 69 6e 64 65 78 20 69 6e 74 65 72 6e 65 74 streaming.audio.@cindex.internet
116dc0 20 72 61 64 69 6f 0a 0a 45 6d 6d 73 20 69 73 20 61 20 67 72 65 61 74 20 77 61 79 20 74 6f 20 70 .radio..Emms.is.a.great.way.to.p
116de0 6c 61 79 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 61 6e 64 20 69 6e 74 65 72 6e 65 74 lay.streaming.audio.and.internet
116e00 20 72 61 64 69 6f 2e 20 49 74 20 69 73 0a 70 6f 73 73 69 62 6c 65 20 74 6f 20 61 64 64 20 73 74 .radio..It.is.possible.to.add.st
116e20 72 65 61 6d 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 55 52 4c 73 20 74 6f 20 61 6e reaming.playlists.and.URLs.to.an
116e40 79 20 70 6c 61 79 6c 69 73 74 2c 20 62 75 74 20 45 6d 6d 73 0a 61 6c 73 6f 20 63 6f 6d 65 73 20 y.playlist,.but.Emms.also.comes.
116e60 77 69 74 68 20 61 20 62 75 69 6c 74 2d 69 6e 2c 20 65 63 6c 65 63 74 69 63 20 6c 69 73 74 20 6f with.a.built-in,.eclectic.list.o
116e80 66 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 0a 73 74 61 74 69 6f 6e 73 2e 20 40 66 6f 6f f.streaming.audio.stations..@foo
116ea0 74 6e 6f 74 65 7b 45 6d 6d 73 20 68 61 73 20 6e 6f 20 61 66 66 69 6c 69 61 74 69 6f 6e 20 6f 66 tnote{Emms.has.no.affiliation.of
116ec0 20 61 6e 79 20 6b 69 6e 64 20 77 69 74 68 20 74 68 65 0a 73 74 72 65 61 6d 69 6e 67 20 61 75 64 .any.kind.with.the.streaming.aud
116ee0 69 6f 20 73 74 61 74 69 6f 6e 73 20 69 6e 63 6c 75 64 65 64 2c 20 6e 6f 72 20 69 73 20 74 68 65 io.stations.included,.nor.is.the
116f00 69 72 20 69 6e 63 6c 75 73 69 6f 6e 20 61 6e 0a 65 6e 64 6f 72 73 65 6d 65 6e 74 20 6f 66 20 74 ir.inclusion.an.endorsement.of.t
116f20 68 65 73 65 20 73 74 61 74 69 6f 6e 73 2e 20 49 6e 73 74 65 61 64 2c 20 74 68 69 73 20 69 73 20 hese.stations..Instead,.this.is.
116f40 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 0a 73 74 61 74 69 6f 6e 73 20 73 75 62 6d 69 74 74 a.collection.of.stations.submitt
116f60 65 64 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 6f 76 65 72 20 74 68 65 20 79 65 61 72 73 ed.to.the.project.over.the.years
116f80 20 62 79 20 70 65 6f 70 6c 65 20 77 68 6f 20 65 6e 6a 6f 79 0a 45 6d 6d 73 2e 20 57 65 20 68 6f .by.people.who.enjoy.Emms..We.ho
116fa0 70 65 20 79 6f 75 20 77 69 6c 6c 20 65 6e 6a 6f 79 20 74 68 65 6d 20 74 6f 6f 2c 20 61 6e 64 20 pe.you.will.enjoy.them.too,.and.
116fc0 69 6e 76 69 74 65 20 79 6f 75 20 74 6f 20 73 65 6e 64 20 69 6e 20 79 6f 75 72 0a 73 75 67 67 65 invite.you.to.send.in.your.sugge
116fe0 73 74 69 6f 6e 73 20 74 6f 20 61 64 64 20 74 6f 20 74 68 65 20 6c 69 73 74 2e 7d 0a 0a 54 68 65 stions.to.add.to.the.list.}..The
117000 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 7d 20 70 61 63 6b 61 67 65 20 .@file{emms-streams.el}.package.
117020 70 72 6f 76 69 64 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 40 63 6f 6d 6d 61 6e 64 7b 65 6d provides.the.command.@command{em
117040 6d 73 2d 73 74 72 65 61 6d 73 7d 2e 0a 0a 49 6e 76 6f 6b 69 6e 67 20 40 63 6f 6d 6d 61 6e 64 7b ms-streams}...Invoking.@command{
117060 65 6d 6d 73 2d 73 74 72 65 61 6d 73 7d 20 77 69 6c 6c 20 70 75 6c 6c 20 75 70 20 61 6e 20 45 6d emms-streams}.will.pull.up.an.Em
117080 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 0a 61 6e 64 20 70 6f 70 75 6c 61 74 65 20 ms.playlist.buffer.and.populate.
1170a0 69 74 20 77 69 74 68 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 6c 69 73 74 20 6f 66 20 73 74 72 it.with.the.built-in.list.of.str
1170c0 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 73 6f 75 72 63 65 73 2e 0a 0a 49 66 20 79 6f 75 20 61 72 eaming.audio.sources...If.you.ar
1170e0 65 20 75 73 69 6e 67 20 74 68 65 20 6d 70 76 20 70 6c 61 79 65 72 2c 20 64 65 66 69 6e 65 64 20 e.using.the.mpv.player,.defined.
117100 62 79 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 7d 2c 0a 74 68 by.@file{emms-player-mpv.el},.th
117120 65 6e 20 79 6f 75 20 63 61 6e 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 en.you.can.display.the.currently
117140 20 73 74 72 65 61 6d 69 6e 67 20 74 72 61 63 6b 20 74 69 74 6c 65 20 28 69 66 20 74 68 65 0a 73 .streaming.track.title.(if.the.s
117160 74 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 73 20 74 68 61 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e tation.provides.that.information
117180 29 20 62 79 20 63 6f 6e 66 69 67 75 72 69 6e 67 3a 0a 0a 40 6c 69 73 70 0a 20 20 28 63 75 73 74 ).by.configuring:..@lisp...(cust
1171a0 6f 6d 69 7a 65 2d 73 65 74 2d 76 61 72 69 61 62 6c 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d omize-set-variable.'emms-player-
1171c0 6d 70 76 2d 75 70 64 61 74 65 2d 6d 65 74 61 64 61 74 61 20 74 29 0a 40 65 6e 64 20 6c 69 73 70 mpv-update-metadata.t).@end.lisp
1171e0 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...@c.--------------------------
117200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
117220 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 0a 40 63 ---------.@node.Radio.Browser.@c
117240 68 61 70 74 65 72 20 52 61 64 69 6f 20 42 72 6f 77 73 65 72 0a 0a 40 63 69 6e 64 65 78 20 73 74 hapter.Radio.Browser..@cindex.st
117260 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 0a 40 63 69 6e 64 65 78 20 69 6e 74 65 72 6e 65 74 20 72 reaming.audio.@cindex.internet.r
117280 61 64 69 6f 0a 0a 57 65 20 63 61 6e 20 66 69 6e 64 20 6e 65 77 20 69 6e 74 65 72 6e 65 74 20 72 adio..We.can.find.new.internet.r
1172a0 61 64 69 6f 20 73 74 61 74 69 6f 6e 73 20 74 6f 20 73 74 72 65 61 6d 20 62 79 0a 73 65 61 72 63 adio.stations.to.stream.by.searc
1172c0 68 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65 20 61 74 0a 40 75 72 6c 7b 68 74 74 70 73 3a hing.the.database.at.@url{https:
1172e0 2f 2f 77 77 77 2e 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 69 6e 66 6f 7d 2e 20 20 54 68 65 0a //www.radio-browser.info}...The.
117300 40 66 69 6c 65 7b 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 7d 20 70 61 63 @file{emms-radio-browser.el}.pac
117320 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d kage.provides.the.following.comm
117340 61 6e 64 73 0a 74 6f 20 64 6f 20 74 68 69 73 3a 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 ands.to.do.this:..@defun.emms-ra
117360 64 69 6f 2d 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 6e 61 6d 65 0a 50 72 6f 6d 70 dio-browser-search-by-name.Promp
117380 74 73 20 66 6f 72 20 61 20 73 74 61 74 69 6f 6e 20 4e 41 4d 45 20 61 6e 64 20 72 65 74 75 72 6e ts.for.a.station.NAME.and.return
1173a0 73 20 61 20 70 6c 61 79 6c 69 73 74 20 6f 66 0a 6d 61 74 63 68 69 6e 67 20 73 74 72 65 61 6d 73 s.a.playlist.of.matching.streams
1173c0 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d ..@end.defun..@defun.emms-radio-
1173e0 62 72 6f 77 73 65 72 2d 73 65 61 72 63 68 2d 62 79 2d 75 72 6c 0a 50 72 6f 6d 70 74 73 20 66 6f browser-search-by-url.Prompts.fo
117400 72 20 61 20 73 74 61 74 69 6f 6e 20 55 52 4c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 70 6c r.a.station.URL.and.returns.a.pl
117420 61 79 6c 69 73 74 20 6f 66 0a 6d 61 74 63 68 69 6e 67 20 73 74 72 65 61 6d 73 2e 0a 40 65 6e 64 aylist.of.matching.streams..@end
117440 20 64 65 66 75 6e 0a 0a 40 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 .defun..@defun.emms-radio-browse
117460 72 2d 66 75 6c 6c 2d 73 65 61 72 63 68 0a 50 6f 70 73 20 75 70 20 61 20 66 6f 72 6d 20 74 6f 20 r-full-search.Pops.up.a.form.to.
117480 73 65 61 72 63 68 20 62 79 20 6e 61 6d 65 2c 20 74 61 67 73 2c 20 63 6f 75 6e 74 72 79 20 6f 72 search.by.name,.tags,.country.or
1174a0 20 6c 61 6e 67 75 61 67 65 2e 0a 52 65 74 75 72 6e 73 20 61 20 70 6c 61 79 6c 69 73 74 20 6f 66 .language..Returns.a.playlist.of
1174c0 20 6d 61 74 63 68 69 6e 67 20 73 74 72 65 61 6d 73 2e 0a 40 65 6e 64 20 64 65 66 75 6e 0a 0a 54 .matching.streams..@end.defun..T
1174e0 6f 20 61 63 74 69 76 61 74 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 o.activate.@file{emms-radio-brow
117500 73 65 72 2e 65 6c 7d 2c 20 64 6f 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d ser.el},.do..@lisp.(require.'emm
117520 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 59 6f 75 20 s-radio-browser).@end.lisp..You.
117540 77 69 6c 6c 20 6e 65 65 64 20 74 68 65 20 40 66 69 6c 65 7b 74 72 61 6e 73 69 65 6e 74 2e 65 6c will.need.the.@file{transient.el
117560 7d 20 70 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 28 74 68 69 73 20 }.package.to.be.installed.(this.
117580 69 73 0a 62 75 69 6c 74 2d 69 6e 20 73 69 6e 63 65 20 65 6d 61 63 73 20 76 32 38 2e 31 29 2e 0a is.built-in.since.emacs.v28.1)..
1175a0 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .@c.----------------------------
1175c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1175e0 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 -------.@node.APE./.FLAC.Command
117600 73 0a 40 63 68 61 70 74 65 72 20 41 50 45 20 2f 20 46 4c 41 43 20 43 6f 6d 6d 61 6e 64 73 0a 0a s.@chapter.APE./.FLAC.Commands..
117620 4f 66 74 65 6e 2c 20 61 20 73 69 6e 67 6c 65 20 41 50 45 20 6f 72 20 46 4c 41 43 20 66 69 6c 65 Often,.a.single.APE.or.FLAC.file
117640 20 63 6f 6e 74 61 69 6e 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 61 6c 62 75 6d 2e 20 20 57 65 20 .contains.a.complete.album...We.
117660 63 61 6e 0a 73 74 69 6c 6c 20 70 6c 61 79 20 6e 65 78 74 20 6f 72 20 70 72 65 76 69 6f 75 73 20 can.still.play.next.or.previous.
117680 74 72 61 63 6b 20 69 6e 20 74 68 65 20 61 6c 62 75 6d 20 77 69 74 68 20 74 68 65 20 68 65 6c 70 track.in.the.album.with.the.help
1176a0 20 6f 66 0a 40 66 69 6c 65 7b 65 6d 6d 73 2d 63 75 65 2e 65 6c 7d 20 70 61 63 6b 61 67 65 2c 20 .of.@file{emms-cue.el}.package,.
1176c0 70 72 6f 76 69 64 65 64 20 74 68 65 72 65 20 69 73 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e provided.there.is.a.correspondin
1176e0 67 20 63 75 65 0a 73 68 65 65 74 20 66 69 6c 65 2e 20 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 g.cue.sheet.file...This.package.
117700 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 40 63 6f 64 65 7b 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 also.defines.@code{emms-info-cue
117720 69 6e 66 6f 7d 20 66 6f 72 0a 72 65 74 72 65 69 76 69 6e 67 20 74 68 65 20 74 72 61 63 6b 20 69 info}.for.retreiving.the.track.i
117740 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 41 50 45 20 2f 20 46 4c 41 43 20 69 74 73 65 6c 66 nformation.for.APE./.FLAC.itself
117760 2e 0a 0a 54 6f 20 6c 6f 61 64 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 63 75 65 2e 65 6c 7d 3a 0a 0a ...To.load.@file{emms-cue.el}:..
117780 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 75 65 29 0a 28 61 64 64 2d 74 @lisp.(require.'emms-cue).(add-t
1177a0 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d o-list.'emms-info-functions.'emm
1177c0 73 2d 69 6e 66 6f 2d 63 75 65 69 6e 66 6f 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 40 64 65 66 75 s-info-cueinfo).@end.lisp..@defu
1177e0 6e 20 65 6d 6d 73 2d 63 75 65 2d 6e 65 78 74 0a 50 6c 61 79 20 6e 65 78 74 20 74 72 61 63 6b 20 n.emms-cue-next.Play.next.track.
117800 66 72 6f 6d 20 2e 63 75 65 20 66 69 6c 65 0a 40 65 6e 64 20 64 65 66 75 6e 0a 40 64 65 66 75 6e from..cue.file.@end.defun.@defun
117820 20 65 6d 6d 73 2d 63 75 65 2d 70 72 65 76 69 6f 75 73 0a 50 6c 61 79 20 70 72 65 76 69 6f 75 73 .emms-cue-previous.Play.previous
117840 20 74 72 61 63 6b 20 66 72 6f 6d 20 2e 63 75 65 20 66 69 6c 65 0a 40 65 6e 64 20 64 65 66 75 6e .track.from..cue.file.@end.defun
117860 0a 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....@c.-------------------------
117880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1178a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 42 6f 6f 6b 6d 61 72 6b 73 0a 40 63 68 61 70 ----------.@node.Bookmarks.@chap
1178c0 74 65 72 20 42 6f 6f 6b 6d 61 72 6b 73 0a 0a 45 6d 6d 73 20 63 61 6e 20 73 61 76 65 20 61 20 60 ter.Bookmarks..Emms.can.save.a.`
1178e0 60 74 65 6d 70 6f 72 61 6c 20 62 6f 6f 6b 6d 61 72 6b 27 27 20 69 6e 20 61 20 6d 65 64 69 61 20 `temporal.bookmark''.in.a.media.
117900 66 69 6c 65 20 76 69 61 0a 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 20 54 68 65 20 66 69 6c file.via.emms-bookmarks..The.fil
117920 65 20 40 66 69 6c 65 7b 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 65 6c 7d 20 70 72 6f 76 69 e.@file{emms-bookmarks.el}.provi
117940 64 65 73 20 74 68 65 20 70 61 63 6b 61 67 65 0a 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 0a des.the.package.emms-bookmarks..
117960 0a 57 68 69 6c 65 20 73 6f 6d 65 20 6d 65 64 69 61 20 69 73 20 70 6c 61 79 69 6e 67 2c 20 69 6e .While.some.media.is.playing,.in
117980 76 6f 6b 69 6e 67 20 40 6b 62 64 7b 4d 2d 78 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 61 voking.@kbd{M-x.emms-bookmarks-a
1179a0 64 64 7d 0a 77 69 6c 6c 20 66 69 72 73 74 20 70 61 75 73 65 20 74 68 65 20 70 6c 61 79 62 61 63 dd}.will.first.pause.the.playbac
1179c0 6b 20 61 6e 64 20 74 68 65 6e 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 6e 61 6d 65 20 64 65 73 k.and.then.prompt.for.a.name.des
1179e0 63 72 69 62 69 6e 67 0a 74 68 65 20 62 6f 6f 6b 6d 61 72 6b 2e 20 54 72 61 63 6b 73 20 63 61 6e cribing.the.bookmark..Tracks.can
117a00 20 68 61 76 65 20 6d 75 6c 74 69 70 6c 65 20 62 6f 6f 6b 6d 61 72 6b 73 20 61 73 73 6f 63 69 61 .have.multiple.bookmarks.associa
117a20 74 65 64 20 77 69 74 68 20 74 68 65 6d 2e 0a 0a 54 6f 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 6e ted.with.them...To.jump.to.the.n
117a40 65 78 74 20 61 6e 64 20 70 72 65 76 69 6f 75 73 20 62 6f 6f 6b 6d 61 72 6b 73 20 69 6e 20 74 68 ext.and.previous.bookmarks.in.th
117a60 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 69 6e 76 6f 6b 65 0a 40 6b 62 64 7b 4d 2d 78 20 e.current.track.invoke.@kbd{M-x.
117a80 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 6e 65 78 74 7d 20 61 6e 64 20 40 6b 62 64 7b 4d 2d emms-bookmarks-next}.and.@kbd{M-
117aa0 78 20 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 70 72 65 76 7d 0a 72 65 73 70 65 63 74 69 76 x.emms-bookmarks-prev}.respectiv
117ac0 65 6c 79 2e 0a 0a 54 6f 20 63 6c 65 61 72 20 61 6c 6c 20 6f 66 20 74 68 65 20 62 6f 6f 6b 6d 61 ely...To.clear.all.of.the.bookma
117ae0 72 6b 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 69 6e 76 6f 6b 65 rks.for.the.current.track.invoke
117b00 20 40 6b 62 64 7b 4d 2d 78 0a 65 6d 6d 73 2d 62 6f 6f 6b 6d 61 72 6b 73 2d 63 6c 65 61 72 7d 2e .@kbd{M-x.emms-bookmarks-clear}.
117b20 0a 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...@c.--------------------------
117b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
117b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 ---------.@node.Managing.Playlis
117b80 74 73 0a 40 63 68 61 70 74 65 72 20 4d 61 6e 61 67 69 6e 67 20 50 6c 61 79 6c 69 73 74 73 0a 0a ts.@chapter.Managing.Playlists..
117ba0 45 6d 6d 73 20 63 61 6e 20 68 61 76 65 20 6d 75 6c 74 69 70 6c 65 20 70 6c 61 79 6c 69 73 74 73 Emms.can.have.multiple.playlists
117bc0 2c 20 73 69 6e 63 65 20 61 20 70 6c 61 79 6c 69 73 74 20 69 73 20 6a 75 73 74 20 61 6e 6f 74 68 ,.since.a.playlist.is.just.anoth
117be0 65 72 0a 62 75 66 66 65 72 20 77 69 74 68 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 63 6b 73 2e er.buffer.with.a.list.of.tracks.
117c00 20 59 6f 75 20 63 61 6e 20 6d 61 6e 61 67 65 20 6d 75 6c 74 69 70 6c 65 20 70 6c 61 79 6c 69 73 .You.can.manage.multiple.playlis
117c20 74 73 20 75 73 69 6e 67 0a 60 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 ts.using.`emms-metaplaylist-mode
117c40 27 2c 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 0a 40 66 69 6c 65 7b 65 6d ',.provided.by.the.file.@file{em
117c60 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 7d 2e 0a 0a 53 74 61 72 74 20 74 68 ms-metaplaylist-mode}...Start.th
117c80 65 20 70 6c 61 79 6c 69 73 74 20 6d 61 6e 61 67 65 72 20 77 69 74 68 20 40 6b 62 64 7b 4d 2d 78 e.playlist.manager.with.@kbd{M-x
117ca0 0a 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 7d 2e 20 54 68 65 .emms-metaplaylist-mode-go}..The
117cc0 20 70 6c 61 79 6c 69 73 74 20 6d 61 6e 61 67 65 72 20 77 69 6c 6c 20 6c 69 73 74 20 74 68 65 0a .playlist.manager.will.list.the.
117ce0 70 6c 61 79 6c 69 73 74 73 20 61 6e 64 20 6d 61 72 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 6f playlists.and.mark.the.current.o
117d00 6e 65 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 0a 61 ne..The.following.commands.are.a
117d20 76 61 69 6c 61 62 6c 65 3a 0a 0a 40 74 61 62 6c 65 20 40 6b 62 64 0a 0a 40 69 74 65 6d 20 52 45 vailable:..@table.@kbd..@item.RE
117d40 54 0a 40 6b 69 6e 64 65 78 20 52 45 54 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 65 74 61 70 T.@kindex.RET.@findex.emms-metap
117d60 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 74 6f 2d 63 75 72 72 65 6e 74 0a 4d 61 6b 65 20 74 laylist-mode-goto-current.Make.t
117d80 68 65 20 62 75 66 66 65 72 20 61 74 20 70 6f 69 6e 74 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 he.buffer.at.point.the.Emms.play
117da0 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 69 74 2e 0a 0a 2b list.buffer.and.switch.to.it...+
117dc0 40 69 74 65 6d 20 56 0a 40 6b 69 6e 64 65 78 20 76 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d @item.V.@kindex.v.@findex.emms-m
117de0 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 74 6f 0a 56 69 73 69 74 20 74 68 65 20 etaplaylist-mode-goto.Visit.the.
117e00 70 6c 61 79 6c 69 73 74 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 40 69 74 65 6d 20 53 50 43 0a 40 6b playlist.at.point...@item.SPC.@k
117e20 69 6e 64 65 78 20 53 50 43 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c index.SPC.@findex.emms-metaplayl
117e40 69 73 74 2d 6d 6f 64 65 2d 73 65 74 2d 61 63 74 69 76 65 0a 4d 61 6b 65 20 74 68 65 20 62 75 66 ist-mode-set-active.Make.the.buf
117e60 66 65 72 20 61 74 20 70 6f 69 6e 74 20 74 68 65 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 fer.at.point.the.Emms.playlist.b
117e80 75 66 66 65 72 20 28 62 75 74 20 64 6f 20 6e 6f 74 20 73 77 69 74 63 68 0a 74 6f 20 69 74 29 2e uffer.(but.do.not.switch.to.it).
117ea0 0a 0a 40 69 74 65 6d 20 6e 0a 40 6b 69 6e 64 65 78 20 6e 0a 40 66 69 6e 64 65 78 20 6e 65 78 74 ..@item.n.@kindex.n.@findex.next
117ec0 2d 6c 69 6e 65 0a 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 78 74 20 70 6c 61 -line.Move.point.to.the.next.pla
117ee0 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 70 0a 40 6b 69 6e 64 65 78 20 70 0a 40 66 69 6e 64 65 ylist...@item.p.@kindex.p.@finde
117f00 78 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 0a 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 x.previous-line.Move.point.to.th
117f20 65 20 70 72 65 76 69 6f 75 73 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 40 69 74 65 6d 20 67 0a 40 6b e.previous.playlist...@item.g.@k
117f40 69 6e 64 65 78 20 67 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 index.g.@findex.emms-metaplaylis
117f60 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 0a 55 70 64 61 74 65 20 74 68 65 20 70 6c 61 79 6c 69 73 t-mode-update.Update.the.playlis
117f80 74 20 6d 61 6e 61 67 65 72 20 62 75 66 66 65 72 2e 0a 0a 40 69 74 65 6d 20 43 0a 40 6b 69 6e 64 t.manager.buffer...@item.C.@kind
117fa0 65 78 20 43 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d ex.C.@findex.emms-metaplaylist-m
117fc0 6f 64 65 2d 6e 65 77 2d 62 75 66 66 65 72 0a 43 72 65 61 74 65 20 61 20 6e 65 77 20 45 6d 6d 73 ode-new-buffer.Create.a.new.Emms
117fe0 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 40 69 74 65 6d 20 43 2d 6b 0a 40 6b 69 .playlist.buffer...@item.C-k.@ki
118000 6e 64 65 78 20 43 2d 6b 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 ndex.C-k.@findex.emms-metaplayli
118020 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 0a 4b 69 6c 6c 20 74 68 65 20 45 6d 6d st-mode-kill-buffer.Kill.the.Emm
118040 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 40 69 74 s.playlist.buffer.at.point...@it
118060 65 6d 20 63 0a 40 6b 69 6e 64 65 78 20 63 0a 40 66 69 6e 64 65 78 20 65 6d 6d 73 2d 6d 65 74 61 em.c.@kindex.c.@findex.emms-meta
118080 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 0a 4d 6f 76 playlist-mode-center-current.Mov
1180a0 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 e.point.to.the.current.playlist.
1180c0 62 75 66 66 65 72 2e 0a 0a 40 69 74 65 6d 20 71 0a 40 6b 69 6e 64 65 78 20 71 0a 40 66 69 6e 64 buffer...@item.q.@kindex.q.@find
1180e0 65 78 20 6b 69 6c 6c 2d 74 68 69 73 2d 62 75 66 66 65 72 0a 4b 69 6c 6c 20 74 68 65 20 70 6c 61 ex.kill-this-buffer.Kill.the.pla
118100 79 6c 69 73 74 20 6d 61 6e 61 67 65 72 2e 0a 0a 40 65 6e 64 20 74 61 62 6c 65 0a 0a 0a 40 63 20 ylist.manager...@end.table...@c.
118120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
118140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
118160 2d 2d 2d 0a 40 6e 6f 64 65 20 47 4e 55 20 46 4d 0a 40 63 68 61 70 74 65 72 20 47 4e 55 20 46 4d ---.@node.GNU.FM.@chapter.GNU.FM
118180 0a 0a 40 63 69 6e 64 65 78 20 47 4e 55 20 46 4d 0a 0a 40 75 72 6c 7b 68 74 74 70 73 3a 2f 2f 77 ..@cindex.GNU.FM..@url{https://w
1181a0 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 67 6e 75 66 6d 2f 2c 20 47 4e 55 20 ww.gnu.org/software/gnufm/,.GNU.
1181c0 46 4d 7d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 66 6f 72 0a 72 75 6e 6e 69 6e 67 FM}.is.free.software.for.running
1181e0 20 6d 75 73 69 63 20 63 6f 6d 6d 75 6e 69 74 79 20 77 65 62 73 69 74 65 73 2e 20 49 74 20 77 61 .music.community.websites..It.wa
118200 73 20 63 72 65 61 74 65 64 20 66 6f 72 20 74 68 65 20 6d 75 73 69 63 0a 63 6f 6d 6d 75 6e 69 74 s.created.for.the.music.communit
118220 79 20 73 69 74 65 2c 20 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 6c 69 62 72 65 2e 66 6d 2f 2c 20 4c y.site,.@url{http://libre.fm/,.L
118240 69 62 72 65 2e 66 6d 7d 2e 0a 0a 45 6d 6d 73 20 63 61 6e 20 73 65 6e 64 20 74 72 61 63 6b 20 69 ibre.fm}...Emms.can.send.track.i
118260 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 61 6e 64 20 73 74 72 65 61 6d 20 6d 75 73 69 63 20 66 72 6f nformation,.and.stream.music.fro
118280 6d 20 47 4e 55 20 46 4d 20 73 65 72 76 65 72 73 0a 75 73 69 6e 67 20 40 66 69 6c 65 7b 65 6d 6d m.GNU.FM.servers.using.@file{emm
1182a0 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2e 65 6c 7d 20 61 6e 64 0a 40 66 69 6c s-librefm-scrobbler.el}.and.@fil
1182c0 65 7b 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 2e 65 6c 7d 2c 20 72 65 73 70 65 e{emms-librefm-stream.el},.respe
1182e0 63 74 69 76 65 6c 79 2e 0a 0a 45 6d 6d 73 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 62 79 20 ctively...Emms.is.configured.by.
118300 64 65 66 61 75 6c 74 20 74 6f 20 75 73 65 20 40 75 72 6c 7b 68 74 74 70 3a 2f 2f 6c 69 62 72 65 default.to.use.@url{http://libre
118320 2e 66 6d 2f 2c 20 4c 69 62 72 65 2e 66 6d 7d 2c 0a 62 75 74 20 63 61 6e 20 77 6f 72 6b 20 77 69 .fm/,.Libre.fm},.but.can.work.wi
118340 74 68 20 61 6e 79 20 47 4e 55 20 46 4d 20 73 65 72 76 65 72 20 62 79 20 63 6f 6e 66 69 67 75 72 th.any.GNU.FM.server.by.configur
118360 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 40 76 61 72 7b 65 6d 6d 73 2d 6c 69 62 72 65 ing.the.variable.@var{emms-libre
118380 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 68 61 6b 65 2d 75 72 6c 7d 20 74 6f 20 74 fm-scrobbler-handshake-url}.to.t
1183a0 68 65 20 55 52 4c 20 6f 66 20 74 68 65 20 47 4e 55 20 46 4d 0a 73 65 72 76 65 72 2e 0a 0a 54 68 he.URL.of.the.GNU.FM.server...Th
1183c0 65 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 77 61 79 20 6f 66 20 70 72 6f 76 69 64 69 6e 67 20 79 e.recommended.way.of.providing.y
1183e0 6f 75 72 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 74 68 65 20 47 4e 55 20 46 4d 20 73 65 our.credentials.to.the.GNU.FM.se
118400 72 76 65 72 0a 69 73 20 62 79 20 75 73 69 6e 67 20 61 6e 20 61 75 74 68 69 6e 66 6f 20 66 69 6c rver.is.by.using.an.authinfo.fil
118420 65 2e 20 20 41 64 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 74 6f 20 79 6f 75 72 20 61 e...Add.authentication.to.your.a
118440 75 74 68 2d 69 6e 66 6f 0a 66 69 6c 65 2c 20 74 79 70 69 63 61 6c 6c 79 20 40 66 69 6c 65 7b 7e uth-info.file,.typically.@file{~
118460 2f 2e 61 75 74 68 69 6e 66 6f 2e 67 70 67 7d 2c 20 61 73 3a 0a 40 73 6d 61 6c 6c 65 78 61 6d 70 /.authinfo.gpg},.as:.@smallexamp
118480 6c 65 0a 6d 61 63 68 69 6e 65 20 6c 69 62 72 65 2e 66 6d 20 6c 6f 67 69 6e 20 55 53 45 52 4e 41 le.machine.libre.fm.login.USERNA
1184a0 4d 45 20 70 61 73 73 77 6f 72 64 20 50 41 53 53 57 4f 52 44 0a 40 65 6e 64 20 73 6d 61 6c 6c 65 ME.password.PASSWORD.@end.smalle
1184c0 78 61 6d 70 6c 65 0a 49 66 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 73 6f 6d 65 20 6f 74 68 xample.If.you.are.using.some.oth
1184e0 65 72 20 73 65 72 76 65 72 20 74 68 61 6e 20 6c 69 62 72 65 2e 66 6d 2c 20 63 68 61 6e 67 65 0a er.server.than.libre.fm,.change.
118500 60 60 40 73 61 6d 70 7b 6c 69 62 72 65 2e 66 6d 7d 27 27 20 74 6f 20 6d 61 74 63 68 0a 40 76 61 ``@samp{libre.fm}''.to.match.@va
118520 72 7b 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 68 61 r{emms-librefm-scrobbler-handsha
118540 6b 65 2d 75 72 6c 7d 2e 0a 0a 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 63 61 6e ke-url}...Alternatively,.you.can
118560 20 73 61 76 65 20 74 68 65 20 70 61 73 73 77 6f 72 64 20 69 6e 20 70 6c 61 69 6e 74 65 78 74 20 .save.the.password.in.plaintext.
118580 69 6e 20 79 6f 75 72 20 69 6e 69 74 2d 66 69 6c 65 0a 62 79 20 73 65 74 74 69 6e 67 20 74 68 65 in.your.init-file.by.setting.the
1185a0 73 65 20 76 61 72 69 61 62 6c 65 73 3a 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d se.variables:..@lisp.(setq.emms-
1185c0 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 75 73 65 72 6e 61 6d 65 20 22 55 53 45 52 librefm-scrobbler-username."USER
1185e0 4e 41 4d 45 22 0a 20 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c NAME".......emms-librefm-scrobbl
118600 65 72 2d 70 61 73 73 77 6f 72 64 20 22 50 41 53 53 57 4f 52 44 22 29 0a 40 65 6e 64 20 6c 69 73 er-password."PASSWORD").@end.lis
118620 70 0a 0a 40 6d 65 6e 75 0a 2a 20 55 70 6c 6f 61 64 69 6e 67 20 54 72 61 63 6b 20 49 6e 66 6f 72 p..@menu.*.Uploading.Track.Infor
118640 6d 61 74 69 6f 6e 3a 3a 20 48 6f 77 20 74 6f 20 73 75 62 6d 69 74 20 6c 69 73 74 65 6e 65 64 20 mation::.How.to.submit.listened.
118660 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 2a 20 47 4e 55 20 46 4d 20 53 74 72 65 track.information..*.GNU.FM.Stre
118680 61 6d 69 6e 67 3a 3a 20 53 74 72 65 61 6d 69 6e 67 20 6d 75 73 69 63 20 66 72 6f 6d 20 61 20 47 aming::.Streaming.music.from.a.G
1186a0 4e 55 20 46 4d 20 73 65 72 76 65 72 2e 0a 40 65 6e 64 20 6d 65 6e 75 0a 0a 0a 0a 40 6e 6f 64 65 NU.FM.server..@end.menu....@node
1186c0 20 55 70 6c 6f 61 64 69 6e 67 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 40 73 65 .Uploading.Track.Information.@se
1186e0 63 74 69 6f 6e 20 55 70 6c 6f 61 64 69 6e 67 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f ction.Uploading.Track.Informatio
118700 6e 0a 0a 47 4e 55 20 46 4d 20 73 65 72 76 65 72 73 2c 20 73 75 63 68 20 61 73 20 4c 69 62 72 65 n..GNU.FM.servers,.such.as.Libre
118720 2e 66 6d 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 74 6f 72 65 20 61 20 75 73 65 72 27 .fm.can.optionally.store.a.user'
118740 73 0a 6c 69 73 74 65 6e 69 6e 67 20 68 61 62 69 74 73 20 75 73 69 6e 67 20 69 6e 66 6f 72 6d 61 s.listening.habits.using.informa
118760 74 69 6f 6e 20 73 65 6e 74 20 74 6f 20 74 68 65 20 77 65 62 73 69 74 65 27 73 20 73 65 72 76 65 tion.sent.to.the.website's.serve
118780 72 20 66 72 6f 6d 0a 74 68 65 20 45 6d 6d 73 2e 20 42 79 20 75 74 69 6c 69 7a 69 6e 67 20 74 68 r.from.the.Emms..By.utilizing.th
1187a0 65 20 72 65 63 6f 72 64 73 20 6f 66 20 75 73 65 72 73 27 20 6c 69 73 74 65 6e 69 6e 67 20 68 61 e.records.of.users'.listening.ha
1187c0 62 69 74 73 2c 20 74 68 65 0a 77 65 62 73 69 74 65 20 61 69 6d 73 20 74 6f 20 62 65 20 61 62 6c bits,.the.website.aims.to.be.abl
1187e0 65 20 74 6f 20 72 65 63 6f 6d 6d 65 6e 64 20 6d 75 73 69 63 20 74 6f 20 75 73 65 72 73 20 62 79 e.to.recommend.music.to.users.by
118800 20 61 6e 61 6c 79 7a 69 6e 67 20 74 68 65 69 72 0a 6d 75 73 69 63 61 6c 20 74 61 73 74 65 2e 0a .analyzing.their.musical.taste..
118820 0a 4c 6f 61 64 20 74 68 65 20 66 65 61 74 75 72 65 20 69 6e 74 6f 20 45 6d 6d 73 20 77 69 74 68 .Load.the.feature.into.Emms.with
118840 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d :..@lisp.(require.'emms-librefm-
118860 73 63 72 6f 62 62 6c 65 72 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 54 68 69 73 20 66 65 61 74 75 scrobbler).@end.lisp..This.featu
118880 72 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 65 6e 61 62 6c 65 64 20 76 69 61 20 40 78 72 65 66 re.can.also.be.enabled.via.@xref
1188a0 7b 53 65 74 75 70 7d 2c 20 69 6e 20 74 68 65 20 60 65 6d 6d 73 2d 61 6c 6c 27 0a 73 65 74 75 70 {Setup},.in.the.`emms-all'.setup
1188c0 20 6c 65 76 65 6c 2e 0a 0a 45 6e 61 62 6c 65 20 75 70 6c 6f 61 64 69 6e 67 20 74 68 65 20 64 65 .level...Enable.uploading.the.de
1188e0 74 61 69 6c 73 20 6f 66 20 74 68 65 20 74 72 61 63 6b 73 20 45 6d 6d 73 20 70 6c 61 79 73 20 74 tails.of.the.tracks.Emms.plays.t
118900 6f 20 74 68 65 20 47 4e 55 20 46 4d 0a 73 65 72 76 65 72 20 77 69 74 68 20 40 6b 62 64 7b 65 6d o.the.GNU.FM.server.with.@kbd{em
118920 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 7d 2e 20 54 68 ms-librefm-scrobbler-enable}..Th
118940 65 20 74 72 61 63 6b 27 73 20 64 65 74 61 69 6c 73 0a 77 69 6c 6c 20 62 65 20 75 70 6c 6f 61 64 e.track's.details.will.be.upload
118960 65 64 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 20 77 68 65 6e 20 74 68 65 20 74 72 61 63 6b 27 ed.to.the.server.when.the.track'
118980 73 20 70 6c 61 79 62 61 63 6b 20 65 6e 64 73 2e 20 59 6f 75 20 63 61 6e 0a 64 69 73 61 62 6c 65 s.playback.ends..You.can.disable
1189a0 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 77 69 74 68 20 40 6b 62 64 7b 65 6d 6d 73 2d 6c 69 .this.behavior.with.@kbd{emms-li
1189c0 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 73 61 62 6c 65 7d 2e 0a 0a 0a 0a 0a 40 6e brefm-scrobbler-disable}......@n
1189e0 6f 64 65 20 47 4e 55 20 46 4d 20 53 74 72 65 61 6d 69 6e 67 0a 40 73 65 63 74 69 6f 6e 20 47 4e ode.GNU.FM.Streaming.@section.GN
118a00 55 20 46 4d 20 53 74 72 65 61 6d 69 6e 67 0a 0a 49 66 20 74 68 65 20 47 4e 55 20 46 4d 20 73 65 U.FM.Streaming..If.the.GNU.FM.se
118a20 72 76 65 72 20 70 72 6f 76 69 64 65 73 20 61 20 73 74 72 65 61 6d 69 6e 67 20 6d 75 73 69 63 20 rver.provides.a.streaming.music.
118a40 73 65 72 76 69 63 65 20 79 6f 75 20 63 61 6e 20 74 61 6b 65 0a 61 64 76 61 6e 74 61 67 65 20 6f service.you.can.take.advantage.o
118a60 66 20 69 74 20 62 79 20 6c 6f 61 64 69 6e 67 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 f.it.by.loading:..@lisp.(require
118a80 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 29 0a 40 65 6e 64 20 6c 69 73 70 .'emms-librefm-stream).@end.lisp
118aa0 0a 0a 54 68 69 73 20 66 65 61 74 75 72 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 65 6e 61 62 6c ..This.feature.can.also.be.enabl
118ac0 65 64 20 76 69 61 20 40 78 72 65 66 7b 53 65 74 75 70 7d 2c 20 69 6e 20 74 68 65 20 60 65 6d 6d ed.via.@xref{Setup},.in.the.`emm
118ae0 73 2d 61 6c 6c 27 0a 73 65 74 75 70 20 6c 65 76 65 6c 2e 0a 0a 54 68 65 6e 20 69 6e 76 6f 6b 65 s-all'.setup.level...Then.invoke
118b00 20 40 6b 62 64 7b 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 74 72 65 61 6d 7d 20 61 6e 64 20 65 .@kbd{emms-librefm-stream}.and.e
118b20 6e 74 65 72 20 74 68 65 20 55 52 4c 20 6f 66 20 74 68 65 20 73 74 61 74 69 6f 6e 0a 79 6f 75 20 nter.the.URL.of.the.station.you.
118b40 77 69 73 68 20 74 6f 20 6c 69 73 74 65 6e 20 74 6f 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 60 wish.to.listen.to,.for.example.`
118b60 60 6c 69 62 72 65 66 6d 3a 2f 2f 67 6c 6f 62 61 6c 74 61 67 73 2f 43 6c 61 73 73 69 63 61 6c 27 `librefm://globaltags/Classical'
118b80 27 2e 0a 0a 40 63 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d '...@c.-------------------------
118ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
118bc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 6e 6f 64 65 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 0a 40 63 ----------.@node.Listenbrainz.@c
118be0 68 61 70 74 65 72 20 4c 69 73 74 65 6e 62 72 61 69 6e 7a 0a 0a 40 63 69 6e 64 65 78 20 4c 69 73 hapter.Listenbrainz..@cindex.Lis
118c00 74 65 6e 62 72 61 69 6e 7a 0a 0a 4c 69 73 74 65 6e 62 72 61 69 6e 7a 20 6f 66 66 65 72 73 20 61 tenbrainz..Listenbrainz.offers.a
118c20 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 73 74 6f 72 65 20 6f 66 20 6c 69 73 74 65 6e 69 6e 67 n.alternative.store.of.listening
118c40 20 68 61 62 69 74 73 0a 75 73 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 6e 74 20 62 .habits.using.information.sent.b
118c60 79 20 74 68 65 20 45 6d 6d 73 2e 0a 0a 54 6f 20 75 73 65 20 74 68 69 73 20 73 65 72 76 69 63 65 y.the.Emms...To.use.this.service
118c80 2c 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 6f 62 74 61 69 6e 20 61 20 75 73 65 72 ,.you.will.need.to.obtain.a.user
118ca0 20 74 6f 6b 65 6e 0a 66 72 6f 6d 20 40 75 72 6c 7b 68 74 74 70 73 3a 2f 2f 6c 69 73 74 65 6e 62 .token.from.@url{https://listenb
118cc0 72 61 69 6e 7a 2e 6f 72 67 2f 73 65 74 74 69 6e 67 73 2f 7d 2e 20 20 59 6f 75 0a 73 68 6f 75 6c rainz.org/settings/}...You.shoul
118ce0 64 20 73 74 6f 72 65 20 74 68 69 73 20 74 6f 6b 65 6e 20 69 6e 20 40 66 69 6c 65 7b 20 7e 2f 2e d.store.this.token.in.@file{.~/.
118d00 61 75 74 68 69 6e 66 6f 2e 67 70 67 7d 20 6f 72 20 61 6e 0a 65 71 75 69 76 61 6c 65 6e 74 20 66 authinfo.gpg}.or.an.equivalent.f
118d20 69 6c 65 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 61 75 74 68 2d 73 6f 75 72 63 65 20 77 69 ile.understood.by.auth-source.wi
118d40 74 68 20 61 20 6c 69 6e 65 20 6c 69 6b 65 0a 74 68 69 73 3a 0a 0a 40 73 6d 61 6c 6c 65 78 61 6d th.a.line.like.this:..@smallexam
118d60 70 6c 65 0a 6d 61 63 68 69 6e 65 20 61 70 69 2e 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2e 6f 72 67 ple.machine.api.listenbrainz.org
118d80 20 70 61 73 73 77 6f 72 64 20 30 61 62 63 31 64 65 32 2d 32 34 35 2d 36 37 66 61 2d 38 39 30 36 .password.0abc1de2-245-67fa-8906
118da0 62 2d 62 63 31 32 33 64 34 64 62 64 61 61 0a 40 65 6e 64 20 73 6d 61 6c 6c 65 78 61 6d 70 6c 65 b-bc123d4dbdaa.@end.smallexample
118dc0 0a 0a 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 74 6f 72 65 20 74 ..Alternatively,.you.can.store.t
118de0 68 65 20 74 6f 6b 65 6e 20 69 6e 20 70 6c 61 69 6e 2d 74 65 78 74 20 69 6e 20 79 6f 75 72 0a 69 he.token.in.plain-text.in.your.i
118e00 6e 69 74 20 66 69 6c 65 20 62 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c 65 nit.file.by.setting.the.variable
118e20 0a 40 6b 62 64 7b 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 .@kbd{emms-listenbrainz-scrobble
118e40 72 2d 74 6f 6b 65 6e 7d 3a 0a 0a 40 6c 69 73 70 0a 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 73 74 r-token}:..@lisp.(setq.emms-list
118e60 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 74 6f 6b 65 6e 20 22 30 61 62 63 31 64 enbrainz-scrobbler-token."0abc1d
118e80 65 32 2d 32 34 35 2d 36 37 66 61 2d 38 39 30 36 62 2d 62 63 31 32 33 64 34 64 62 64 61 61 22 29 e2-245-67fa-8906b-bc123d4dbdaa")
118ea0 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 4f 6e 63 65 20 74 68 69 73 20 69 73 20 64 6f 6e 65 2c 20 79 .@end.lisp..Once.this.is.done,.y
118ec0 6f 75 20 63 61 6e 20 6c 6f 61 64 20 74 68 65 20 66 65 61 74 75 72 65 20 77 69 74 68 0a 0a 40 6c ou.can.load.the.feature.with..@l
118ee0 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d isp.(require.'emms-listenbrainz-
118f00 73 63 72 6f 62 62 6c 65 72 29 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 45 6e 61 62 6c 65 20 75 70 6c scrobbler).@end.lisp..Enable.upl
118f20 6f 61 64 69 6e 67 20 74 68 65 20 64 65 74 61 69 6c 73 20 6f 66 20 74 68 65 20 74 72 61 63 6b 73 oading.the.details.of.the.tracks
118f40 20 45 6d 6d 73 20 70 6c 61 79 73 20 74 6f 20 74 68 65 20 6c 69 73 74 65 6e 62 72 61 69 6e 7a 0a .Emms.plays.to.the.listenbrainz.
118f60 73 65 72 76 65 72 20 77 69 74 68 20 40 6b 62 64 7b 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 server.with.@kbd{emms-listenbrai
118f80 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 7d 2e 20 54 68 65 20 74 72 61 63 6b 27 nz-scrobbler-enable}..The.track'
118fa0 73 20 64 65 74 61 69 6c 73 0a 77 69 6c 6c 20 62 65 20 75 70 6c 6f 61 64 65 64 20 74 6f 20 74 68 s.details.will.be.uploaded.to.th
118fc0 65 20 73 65 72 76 65 72 20 77 68 65 6e 20 74 68 65 20 74 72 61 63 6b 27 73 20 70 6c 61 79 62 61 e.server.when.the.track's.playba
118fe0 63 6b 20 65 6e 64 73 2e 20 59 6f 75 20 63 61 6e 0a 64 69 73 61 62 6c 65 20 74 68 69 73 20 62 65 ck.ends..You.can.disable.this.be
119000 68 61 76 69 6f 72 20 77 69 74 68 20 40 6b 62 64 7b 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 havior.with.@kbd{emms-listenbrai
119020 6e 7a 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 73 61 62 6c 65 7d 2e 0a 0a 40 63 20 2d 2d 2d 2d 2d nz-scrobbler-disable}...@c.-----
119040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
119060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 40 ------------------------------.@
119080 6e 6f 64 65 20 44 2d 42 75 73 0a 40 63 68 61 70 74 65 72 20 44 2d 42 75 73 0a 0a 40 63 69 6e 64 node.D-Bus.@chapter.D-Bus..@cind
1190a0 65 78 20 44 2d 42 75 73 0a 0a 45 6d 6d 73 20 63 61 6e 20 70 72 6f 76 69 64 65 20 61 6e 20 4d 50 ex.D-Bus..Emms.can.provide.an.MP
1190c0 52 49 53 20 69 6e 74 65 72 66 61 63 65 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 69 74 20 74 6f RIS.interface.which.allows.it.to
1190e0 20 62 65 0a 63 6f 6e 74 72 6f 6c 6c 65 64 20 6f 76 65 72 20 44 2d 42 75 73 2e 0a 0a 54 6f 20 65 .be.controlled.over.D-Bus...To.e
119100 6e 61 62 6c 65 20 74 68 69 73 2c 20 66 69 72 73 74 20 6c 6f 61 64 20 74 68 65 20 66 65 61 74 75 nable.this,.first.load.the.featu
119120 72 65 3a 0a 0a 40 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6d 70 72 69 73 29 re:..@lisp.(require.'emms-mpris)
119140 0a 40 65 6e 64 20 6c 69 73 70 0a 0a 0a 61 6e 64 20 74 68 65 6e 20 74 75 72 6e 20 69 74 20 6f 6e .@end.lisp...and.then.turn.it.on
119160 20 77 69 74 68 20 40 6b 62 64 7b 65 6d 6d 73 2d 6d 70 72 69 73 2d 65 6e 61 62 6c 65 7d 2e 20 20 .with.@kbd{emms-mpris-enable}...
119180 59 6f 75 20 63 61 6e 0a 74 75 72 6e 20 69 74 20 6f 66 66 20 77 69 74 68 20 40 6b 62 64 7b 65 6d You.can.turn.it.off.with.@kbd{em
1191a0 6d 73 2d 6d 70 72 69 73 2d 64 69 73 61 62 6c 65 7d 2e 0a 0a 41 74 20 70 72 65 73 65 6e 74 2c 20 ms-mpris-disable}...At.present,.
1191c0 74 68 65 20 45 6d 6d 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 40 the.Emms.implementation.of.the.@
1191e0 75 72 6c 7b 0a 68 74 74 70 73 3a 2f 2f 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2e 66 72 65 65 url{.https://specifications.free
119200 64 65 73 6b 74 6f 70 2e 6f 72 67 2f 6d 70 72 69 73 2d 73 70 65 63 2f 6c 61 74 65 73 74 2f 69 6e desktop.org/mpris-spec/latest/in
119220 64 65 78 2e 68 74 6d 6c 2c 0a 4d 50 52 49 53 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 7d 20 69 dex.html,.MPRIS.specification}.i
119240 73 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 3a 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 76 6f 6c s.not.complete:.changing.the.vol
119260 75 6d 65 0a 69 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64 2e 0a ume.is.not.currently.supported..
119280 0a 0a 40 63 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 6c 69 63 65 ..@c.including.the.relevant.lice
1192a0 6e 73 65 73 0a 40 69 6e 63 6c 75 64 65 20 67 70 6c 2e 74 65 78 69 0a 40 69 6e 63 6c 75 64 65 20 nses.@include.gpl.texi.@include.
1192c0 66 64 6c 2e 74 65 78 69 0a 0a 0a 0a 40 6e 6f 64 65 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 0a fdl.texi....@node.Concept.Index.
1192e0 40 75 6e 6e 75 6d 62 65 72 65 64 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 0a 40 70 72 69 6e 74 @unnumbered.Concept.Index.@print
119300 69 6e 64 65 78 20 63 70 0a 0a 0a 0a 40 6e 6f 64 65 20 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 78 index.cp....@node.Function.Index
119320 0a 40 75 6e 6e 75 6d 62 65 72 65 64 20 46 75 6e 63 74 69 6f 6e 20 49 6e 64 65 78 0a 40 70 72 69 .@unnumbered.Function.Index.@pri
119340 6e 74 69 6e 64 65 78 20 66 6e 0a 0a 0a 0a 40 6e 6f 64 65 20 56 61 72 69 61 62 6c 65 20 49 6e 64 ntindex.fn....@node.Variable.Ind
119360 65 78 0a 40 75 6e 6e 75 6d 62 65 72 65 64 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 0a 40 70 ex.@unnumbered.Variable.Index.@p
119380 72 69 6e 74 69 6e 64 65 78 20 76 72 0a 0a 0a 0a 40 6e 6f 64 65 20 4b 65 79 62 69 6e 64 69 6e 67 rintindex.vr....@node.Keybinding
1193a0 20 49 6e 64 65 78 0a 40 75 6e 6e 75 6d 62 65 72 65 64 20 4b 65 79 62 69 6e 64 69 6e 67 20 49 6e .Index.@unnumbered.Keybinding.In
1193c0 64 65 78 0a 40 70 72 69 6e 74 69 6e 64 65 78 20 6b 79 0a 0a 40 62 79 65 0a 00 00 00 00 00 00 00 dex.@printindex.ky..@bye........
1193e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119400 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 64 65 76 65 6c 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/doc/devel/..............
119420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119460 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
119480 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 34 35 00 20 35 00 00 00 0000000.00000000000.012545..5...
1194a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1194c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1194e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
119520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
119540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1195a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1195c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1195e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119600 65 6d 6d 73 2d 32 34 2f 64 6f 63 2f 64 65 76 65 6c 2f 64 65 76 65 6c 6f 70 65 72 2d 72 65 6c 65 emms-24/doc/devel/developer-rele
119620 61 73 65 2e 74 78 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ase.txt.........................
119640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
119680 30 30 30 33 32 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 37 31 33 00 20 30 00 00 00 0003243.00000000000.016713..0...
1196a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1196c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1196e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
119720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
119740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1197a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1197c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1197e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119800 2d 2a 2d 20 6f 75 74 6c 69 6e 65 20 2d 2a 2d 0a 54 68 69 73 20 69 73 20 61 6e 20 65 78 70 6c 61 -*-.outline.-*-.This.is.an.expla
119820 6e 61 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 6f 20 6d 61 6b 65 20 61 20 72 65 6c 65 61 73 65 20 nation.of.how.to.make.a.release.
119840 66 6f 72 20 45 6d 6d 73 2e 20 45 6d 6d 73 20 69 73 0a 64 65 76 65 6c 6f 70 65 64 20 61 74 20 53 for.Emms..Emms.is.developed.at.S
119860 61 76 61 6e 6e 61 68 20 28 68 74 74 70 73 3a 2f 2f 73 61 76 61 6e 6e 61 68 2e 67 6e 75 2e 6f 72 avannah.(https://savannah.gnu.or
119880 67 2f 70 72 6f 6a 65 63 74 73 2f 65 6d 6d 73 2f 29 20 61 6e 64 0a 64 69 73 74 72 69 62 75 74 65 g/projects/emms/).and.distribute
1198a0 64 20 76 69 61 20 45 6d 61 63 73 20 45 4c 50 41 20 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 d.via.Emacs.ELPA.(https://elpa.g
1198c0 6e 75 2e 6f 72 67 2f 29 2e 0a 0a 2a 20 63 6c 65 61 6e 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 0a 43 nu.org/)...*.clean.compilation.C
1198e0 68 65 63 6b 20 66 6f 72 20 63 6c 65 61 6e 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 6e 20 74 68 heck.for.clean.compilation.on.th
119900 65 20 74 77 6f 20 6c 61 74 65 73 74 20 6d 61 6a 6f 72 20 45 6d 61 63 73 20 72 65 6c 65 61 73 65 e.two.latest.major.Emacs.release
119920 73 2e 0a 0a 0a 2a 20 63 68 65 63 6b 20 66 6f 72 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 s....*.check.for.basic.functiona
119940 6c 69 74 79 0a 43 68 65 63 6b 20 66 6f 72 20 63 6c 65 61 6e 20 6c 6f 61 64 69 6e 67 20 61 6e 64 lity.Check.for.clean.loading.and
119960 20 72 75 6e 6e 69 6e 67 20 77 69 74 68 20 62 61 73 69 63 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 .running.with.basic.functionalit
119980 79 20 6f 6e 20 74 68 65 0a 74 77 6f 20 6c 61 74 65 73 74 20 6d 61 6a 6f 72 20 45 6d 61 63 73 20 y.on.the.two.latest.major.Emacs.
1199a0 72 65 6c 65 61 73 65 73 2e 0a 0a 0a 2a 20 76 65 72 73 69 6f 6e 20 62 75 6d 70 0a 49 6e 63 72 65 releases....*.version.bump.Incre
1199c0 61 73 65 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 69 6e 20 65 6d 6d 73 2e 65 ase.the.version.number.in.emms.e
1199e0 6c 20 28 60 65 6d 6d 73 2d 76 65 72 73 69 6f 6e 27 20 61 6e 64 20 74 68 65 20 65 6c 70 61 0a 68 l.(`emms-version'.and.the.elpa.h
119a00 65 61 64 65 72 20 61 73 20 61 20 63 6f 6d 6d 65 6e 74 29 2e 0a 0a 0a 2a 20 4e 45 57 53 0a 75 70 eader.as.a.comment)....*.NEWS.up
119a20 64 61 74 65 20 74 68 65 20 4e 45 57 53 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 20 67 69 74 20 date.the.NEWS.file.from.the.git.
119a40 6c 6f 67 20 74 6f 20 69 6e 63 6c 75 64 65 20 61 6c 6c 20 73 69 67 6e 69 66 69 63 61 6e 74 0a 75 log.to.include.all.significant.u
119a60 73 65 72 2d 66 61 63 69 6e 67 20 63 68 61 6e 67 65 73 2e 0a 0a 0a 2a 20 63 6f 6e 74 72 69 62 75 ser-facing.changes....*.contribu
119a80 74 6f 72 73 0a 55 70 64 61 74 65 20 41 55 54 48 4f 52 53 20 66 69 6c 65 20 77 69 74 68 20 74 68 tors.Update.AUTHORS.file.with.th
119aa0 65 20 6e 61 6d 65 73 20 6f 66 20 61 6e 79 20 6e 65 77 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 2e e.names.of.any.new.contributors.
119ac0 20 54 68 69 73 20 69 73 20 61 0a 67 6f 6f 64 20 63 68 61 6e 63 65 20 74 6f 20 6d 61 6b 65 20 73 .This.is.a.good.chance.to.make.s
119ae0 75 72 65 20 77 65 20 61 72 65 20 72 65 6c 65 61 73 69 6e 67 20 65 76 65 72 79 74 68 69 6e 67 20 ure.we.are.releasing.everything.
119b00 77 69 74 68 20 70 72 6f 70 65 72 0a 63 6f 70 79 6c 65 66 74 2e 0a 0a 0a 2a 20 63 6f 70 79 6c 65 with.proper.copyleft....*.copyle
119b20 66 74 20 6e 6f 74 69 63 65 73 0a 43 68 65 63 6b 20 74 68 61 74 20 61 6e 79 20 6e 65 77 20 66 69 ft.notices.Check.that.any.new.fi
119b40 6c 65 73 20 68 61 76 65 20 63 6f 72 72 65 63 74 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 les.have.correct.copyright.notic
119b60 65 73 2c 20 61 6e 64 20 74 68 61 74 20 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 20 es,.and.that.all.modified.files.
119b80 68 61 76 65 20 75 70 64 61 74 65 64 20 79 65 61 72 73 20 72 65 66 6c 65 63 74 69 6e 67 20 77 68 have.updated.years.reflecting.wh
119ba0 65 6e 20 74 68 65 79 20 77 65 72 65 20 63 68 61 6e 67 65 64 2e 0a 0a 0a 2a 20 75 70 64 61 74 65 en.they.were.changed....*.update
119bc0 20 74 68 65 20 6d 61 6e 75 61 6c 0a 55 70 64 61 74 65 20 74 68 65 20 6d 61 6e 75 61 6c 3a 0a 0a .the.manual.Update.the.manual:..
119be0 20 20 20 20 24 20 6d 61 6b 65 69 6e 66 6f 20 2d 2d 68 74 6d 6c 20 2d 2d 6e 6f 2d 73 70 6c 69 74 ....$.makeinfo.--html.--no-split
119c00 20 65 6d 6d 73 2e 74 65 78 69 6e 66 6f 0a 0a 4d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 .emms.texinfo..Make.sure.that.th
119c20 65 20 6d 61 6e 75 61 6c 20 63 6f 6d 70 69 6c 65 73 20 63 6c 65 61 6e 6c 79 20 61 6e 64 20 74 68 e.manual.compiles.cleanly.and.th
119c40 61 74 20 69 74 20 6c 6f 6f 6b 73 20 72 69 67 68 74 2e 0a 0a 0a 2a 20 77 65 62 73 69 74 65 20 75 at.it.looks.right....*.website.u
119c60 70 64 61 74 65 0a 55 70 64 61 74 65 20 74 68 65 20 77 65 62 73 69 74 65 20 77 69 74 68 20 61 6c pdate.Update.the.website.with.al
119c80 6c 20 61 6e 79 20 70 65 72 74 69 6e 65 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 55 70 6c l.any.pertinent.information..Upl
119ca0 6f 61 64 20 61 20 6e 65 77 0a 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6d 61 6e 75 61 6c 20 oad.a.new.version.of.the.manual.
119cc0 69 66 20 69 74 20 68 61 73 20 63 68 61 6e 67 65 64 20 69 6e 20 74 68 69 73 20 72 65 6c 65 61 73 if.it.has.changed.in.this.releas
119ce0 65 3a 0a 0a 20 20 20 20 24 20 63 76 73 20 63 6f 6d 6d 69 74 20 2d 6d 20 22 75 70 64 61 74 65 20 e:......$.cvs.commit.-m."update.
119d00 77 65 62 73 69 74 65 22 20 69 6e 64 65 78 2e 68 74 6d 6c 0a 0a 0a 2a 20 74 61 67 20 72 65 6c 65 website".index.html...*.tag.rele
119d20 61 73 65 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 74 61 67 0a 43 6f 6d 6d 69 74 20 61 6e 64 20 ase.and.push.the.tag.Commit.and.
119d40 70 75 73 68 20 61 6c 6c 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 73 2c 20 74 push.all.of.the.above.changes,.t
119d60 68 65 6e 20 74 61 67 20 74 68 65 20 72 65 6c 65 61 73 65 20 69 6e 20 67 69 74 2c 0a 66 6f 72 20 hen.tag.the.release.in.git,.for.
119d80 65 78 61 6d 70 6c 65 3a 0a 0a 20 20 20 20 24 20 67 69 74 20 74 61 67 20 2d 61 20 34 2e 32 20 2d example:......$.git.tag.-a.4.2.-
119da0 6d 20 22 34 2e 32 22 0a 20 20 20 20 24 20 67 69 74 20 70 75 73 68 20 2d 2d 74 61 67 73 20 6f 72 m."4.2".....$.git.push.--tags.or
119dc0 69 67 69 6e 20 22 34 2e 32 22 0a 0a 0a 2a 20 70 75 73 68 20 74 6f 20 72 65 70 6f 0a 50 75 73 68 igin."4.2"...*.push.to.repo.Push
119de0 20 74 68 65 20 76 65 72 73 69 6f 6e 20 75 70 64 61 74 65 20 69 74 73 65 6c 66 20 74 6f 20 74 68 .the.version.update.itself.to.th
119e00 65 20 67 69 74 20 72 65 70 6f 2e 20 57 65 20 68 61 76 65 20 61 75 74 6f 6d 61 74 69 63 0a 73 79 e.git.repo..We.have.automatic.sy
119e20 6e 63 68 72 6f 6e 69 7a 61 74 69 6f 6e 20 73 65 74 20 75 70 20 66 6f 72 20 47 4e 55 20 45 4c 50 nchronization.set.up.for.GNU.ELP
119e40 41 2c 20 73 6f 20 77 65 20 61 72 65 20 64 6f 6e 65 2e 0a 0a 0a 2a 20 61 6e 6e 6f 75 6e 63 65 0a A,.so.we.are.done....*.announce.
119e60 41 6e 6e 6f 75 6e 63 65 20 74 68 65 20 72 65 6c 65 61 73 65 20 69 6e 20 74 68 65 20 65 6d 6d 73 Announce.the.release.in.the.emms
119e80 20 6d 61 69 6c 69 6e 67 20 6c 69 73 74 20 69 66 20 69 74 20 69 73 20 63 61 6c 6c 65 64 20 66 6f .mailing.list.if.it.is.called.fo
119ea0 72 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r...............................
119ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a000 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6d 61 69 6e 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-maint.el...........
11a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
11a080 30 30 30 30 31 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 32 37 30 00 20 30 00 00 00 0000170.00000000000.013270..0...
11a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
11a120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
11a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a200 3b 3b 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 3b ;;.-*-.lexical-binding:.t;.-*-.;
11a220 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 33 2d 32 30 32 30 20 20 46 72 65 65 20 ;.Copyright.(C).2003-2020..Free.
11a240 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 28 61 64 64 2d Software.Foundation,.Inc...(add-
11a260 74 6f 2d 6c 69 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 20 22 2e 22 29 0a 00 00 00 00 00 00 00 00 to-list.'load-path.".").........
11a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 79 72 69 63 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 emms-24/emms-lyrics.el..........
11a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
11a480 30 30 34 37 37 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 30 32 00 20 30 00 00 00 0047721.00000000000.013502..0...
11a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
11a520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
11a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a600 3b 3b 3b 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2e 65 6c 20 2d 2d 2d 20 44 69 73 70 6c 61 79 20 6c ;;;.emms-lyrics.el.---.Display.l
11a620 79 72 69 63 73 20 73 79 6e 63 68 72 6f 6e 69 63 61 6c 6c 79 20 20 2d 2a 2d 20 6c 65 78 69 63 61 yrics.synchronically..-*-.lexica
11a640 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 l-binding:.t;.-*-..;;.Copyright.
11a660 28 43 29 20 32 30 30 35 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 (C).2005-2021..Free.Software.Fou
11a680 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 57 69 6c 6c 69 61 ndation,.Inc...;;.Author:.Willia
11a6a0 6d 20 58 75 20 3c 77 69 6c 6c 69 61 6d 2e 78 77 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 m.Xu.<william.xwl@gmail.com>.;;.
11a6c0 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 20 6d 75 73 69 63 20 6c 79 72 69 63 73 0a 0a 3b 3b 20 Keywords:.emms.music.lyrics..;;.
11a6e0 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 This.file.is.part.of.EMMS...;;.E
11a700 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 MMS.is.free.software;.you.can.re
11a720 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 distribute.it.and/or.modify.;;.i
11a740 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e t.under.the.terms.of.the.GNU.Gen
11a760 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 eral.Public.License.as.published
11a780 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .by.;;.the.Free.Software.Foundat
11a7a0 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f ion;.either.version.3,.or.(at.yo
11a7c0 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e ur.option).;;.any.later.version.
11a7e0 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 .;;.;;.EMMS.is.distributed.in.th
11a800 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b e.hope.that.it.will.be.useful,.;
11a820 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ;.but.WITHOUT.ANY.WARRANTY;.with
11a840 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
11a860 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 .;;.MERCHANTABILITY.or.FITNESS.F
11a880 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
11a8a0 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 e.;;.GNU.General.Public.License.
11a8c0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
11a8e0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
11a900 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
11a920 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 ng.with.EMMS;.if.not,.write.to.t
11a940 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 he.Free.Software.Foundation,.;;.
11a960 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f Inc.,.51.Franklin.St,.Fifth.Floo
11a980 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a r,.Boston,.MA.02110-1301,.USA...
11a9a0 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 70 61 63 6b 61 67 65 ;;;.Commentary:..;;.This.package
11a9c0 20 65 6e 61 62 6c 65 73 20 79 6f 75 20 74 6f 20 70 6c 61 79 20 6d 75 73 69 63 20 66 69 6c 65 73 .enables.you.to.play.music.files
11a9e0 20 61 6e 64 20 64 69 73 70 6c 61 79 20 6c 79 72 69 63 73 0a 3b 3b 20 73 79 6e 63 68 72 6f 6e 69 .and.display.lyrics.;;.synchroni
11aa00 63 61 6c 6c 79 21 20 3a 2d 29 20 50 6c 75 73 2c 20 69 74 20 70 72 6f 76 69 64 65 73 20 61 20 60 cally!.:-).Plus,.it.provides.a.`
11aa20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 27 20 66 6f 72 0a 3b 3b 20 6d 61 6b 69 6e 67 20 emms-lyrics-mode'.for.;;.making.
11aa40 6c 79 72 69 63 20 66 69 6c 65 73 2e 0a 0a 3b 3b 20 50 75 74 20 74 68 69 73 20 66 69 6c 65 20 69 lyric.files...;;.Put.this.file.i
11aa60 6e 74 6f 20 79 6f 75 72 20 6c 6f 61 64 2d 70 61 74 68 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f nto.your.load-path.and.the.follo
11aa80 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 72 0a 3b 3b 20 7e 2f 2e 65 6d 61 63 73 3a 0a 3b 3b 20 20 wing.into.your.;;.~/.emacs:.;;..
11aaa0 20 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 ...........(require.'emms-lyrics
11aac0 29 0a 3b 3b 0a 3b 3b 20 54 68 65 6e 20 65 69 74 68 65 72 20 60 4d 2d 78 20 65 6d 6d 73 2d 6c 79 ).;;.;;.Then.either.`M-x.emms-ly
11aae0 72 69 63 73 2d 65 6e 61 62 6c 65 27 20 6f 72 20 61 64 64 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 rics-enable'.or.add.(emms-lyrics
11ab00 20 31 29 20 69 6e 0a 3b 3b 20 79 6f 75 72 20 2e 65 6d 61 63 73 20 74 6f 20 65 6e 61 62 6c 65 2e .1).in.;;.your..emacs.to.enable.
11ab20 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 0a 0a 3b 3b 20 31 2e 20 4d 61 79 62 65 20 74 68 65 20 6c 79 72 ..;;;.TODO:..;;.1..Maybe.the.lyr
11ab40 69 63 20 73 65 74 75 70 20 73 68 6f 75 6c 64 20 72 75 6e 20 62 65 66 6f 72 65 20 60 65 6d 6d 73 ic.setup.should.run.before.`emms
11ab60 2d 73 74 61 72 74 27 2e 0a 3b 3b 20 32 2e 20 47 69 76 65 20 61 20 75 73 65 72 20 61 20 63 68 61 -start'..;;.2..Give.a.user.a.cha
11ab80 6e 63 65 20 74 6f 20 63 68 6f 6f 73 65 20 77 68 65 6e 20 66 69 6e 64 69 6e 67 20 6f 75 74 20 6d nce.to.choose.when.finding.out.m
11aba0 75 6c 74 69 70 6c 65 20 6c 79 72 69 63 73 2e 0a 3b 3b 20 33 2e 20 53 65 61 72 63 68 20 2e 6c 72 ultiple.lyrics..;;.3..Search..lr
11abc0 63 20 66 6f 72 6d 61 74 20 6c 79 72 69 63 73 20 66 72 6f 6d 20 69 6e 74 65 72 6e 65 74 20 3f 0a c.format.lyrics.from.internet.?.
11abe0 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 .;;;.Code:..(require.'emms).(req
11ac00 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 29 0a 28 72 65 71 75 69 uire.'emms-player-simple).(requi
11ac20 72 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 re.'emms-source-file).(require.'
11ac40 74 69 6d 65 2d 64 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 75 72 6c 29 0a 28 time-date).(require.'emms-url).(
11ac60 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 6f 6d 70 61 74 29 0a 0a 3b 3b 3b 20 55 73 65 72 20 require.'emms-compat)..;;;.User.
11ac80 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 6c 79 Customization..(defgroup.emms-ly
11aca0 72 69 63 73 20 6e 69 6c 0a 20 20 22 4c 79 72 69 63 73 20 6d 6f 64 75 6c 65 20 66 6f 72 20 45 4d rics.nil..."Lyrics.module.for.EM
11acc0 4d 53 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d MS."...:group.'emms)..(defcustom
11ace0 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 .emms-lyrics-display-on-modeline
11ad00 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 69 73 70 6c 61 79 20 6c 79 72 69 63 73 .t..."If.non-nil,.display.lyrics
11ad20 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e .on.mode.line."...:type.'boolean
11ad40 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 )..(defcustom.emms-lyrics-displa
11ad60 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 y-on-minibuffer.nil..."If.non-ni
11ad80 6c 2c 20 64 69 73 70 6c 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 66 65 72 2e l,.display.lyrics.on.minibuffer.
11ada0 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 "...:type.'boolean)..(defcustom.
11adc0 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 emms-lyrics-display-buffer.nil..
11ade0 20 22 4e 6f 6e 2d 6e 69 6c 20 77 69 6c 6c 20 63 72 65 61 74 65 20 64 65 63 69 61 74 65 64 20 60 ."Non-nil.will.create.deciated.`
11ae00 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 62 75 66 66 65 72 27 20 74 6f 20 64 69 73 70 6c 61 79 20 6c emms-lyrics-buffer'.to.display.l
11ae20 79 72 69 63 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 yrics."...:type.'boolean)..(defc
11ae40 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 72 20 22 7e 2f 6d 75 73 69 63 2f 6c ustom.emms-lyrics-dir."~/music/l
11ae60 79 72 69 63 73 22 0a 20 20 22 4c 6f 63 61 6c 20 6c 79 72 69 63 73 20 72 65 70 6f 73 69 74 6f 72 yrics"..."Local.lyrics.repositor
11ae80 79 2e 0a 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e 64 2d 6c 79 72 69 63 27 20 77 69 6c 6c y..`emms-lyrics-find-lyric'.will
11aea0 20 6c 6f 6f 6b 20 66 6f 72 20 6c 79 72 69 63 73 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 .look.for.lyrics.in.current.dire
11aec0 63 74 6f 72 79 28 69 2e 65 2e 2c 0a 73 61 6d 65 20 61 73 20 74 68 65 20 6d 75 73 69 63 20 66 69 ctory(i.e.,.same.as.the.music.fi
11aee0 6c 65 29 20 61 6e 64 20 74 68 69 73 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 3a 74 79 70 65 le).and.this.directory."...:type
11af00 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 .'string)..(defcustom.emms-lyric
11af20 73 2d 64 69 73 70 6c 61 79 2d 66 6f 72 6d 61 74 20 22 20 25 73 20 22 0a 20 20 22 46 6f 72 6d 61 s-display-format.".%s."..."Forma
11af40 74 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 22 0a 20 20 3a 74 79 70 t.for.displaying.lyrics."...:typ
11af60 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 e.'string)..(defcustom.emms-lyri
11af80 63 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 6e 69 6c 0a 20 20 22 43 6f 64 69 6e 67 20 73 cs-coding-system.nil..."Coding.s
11afa0 79 73 74 65 6d 20 66 6f 72 20 72 65 61 64 69 6e 67 20 6c 79 72 69 63 73 20 66 69 6c 65 73 2e 0a ystem.for.reading.lyrics.files..
11afc0 0a 49 66 20 61 6c 6c 20 79 6f 75 72 20 6c 79 72 69 63 73 20 75 73 65 20 74 68 65 20 73 61 6d 65 .If.all.your.lyrics.use.the.same
11afe0 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 .coding.system,.you.can.set.this
11b000 0a 76 61 72 69 61 62 6c 65 20 74 6f 20 74 68 61 74 20 76 61 6c 75 65 3b 20 65 6c 73 65 20 79 6f .variable.to.that.value;.else.yo
11b020 75 27 64 20 62 65 74 74 65 72 20 6c 65 61 76 65 20 69 74 20 74 6f 20 6e 69 6c 2c 20 61 6e 64 0a u'd.better.leave.it.to.nil,.and.
11b040 72 65 6c 79 20 6f 6e 20 60 70 72 65 66 65 72 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 2c 20 rely.on.`prefer-coding-system',.
11b060 60 66 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 61 6c 69 73 74 27 20 6f 72 0a 5c 28 `file-coding-system-alist'.or.\(
11b080 69 6e 66 6f 20 5c 22 28 65 6d 61 63 73 29 46 69 6c 65 20 56 61 72 69 61 62 6c 65 73 5c 22 29 2c info.\"(emacs)File.Variables\"),
11b0a0 20 73 6f 72 74 65 64 20 62 79 20 70 72 69 6f 72 69 74 79 0a 69 6e 63 72 65 61 73 69 6e 67 6c 79 .sorted.by.priority.increasingly
11b0c0 2e 22 0a 20 20 3a 74 79 70 65 20 27 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 ."...:type.'coding-system)..(def
11b0e0 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 6e 69 6c custom.emms-lyrics-mode-hook.nil
11b100 0a 20 20 22 4e 6f 72 6d 61 6c 20 68 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 65 6e 74 65 72 69 ..."Normal.hook.run.after.enteri
11b120 6e 67 20 45 6d 6d 73 20 4c 79 72 69 63 20 6d 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f ng.Emms.Lyric.mode."...:type.'ho
11b140 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e 64 ok)..(defcustom.emms-lyrics-find
11b160 2d 6c 79 72 69 63 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e -lyric-function.'emms-lyrics-fin
11b180 64 2d 6c 79 72 69 63 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 66 69 6e 64 69 6e 67 20 d-lyric..."Function.for.finding.
11b1a0 6c 79 72 69 63 20 66 69 6c 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a 0a lyric.files."...:type.'symbol)..
11b1c0 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 70 20 (defcustom.emms-lyrics-scroll-p.
11b1e0 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 20 77 69 6c 6c 20 65 6e 61 62 6c 65 20 6c t..."Non-nil.value.will.enable.l
11b200 79 72 69 63 73 20 73 63 72 6f 6c 6c 69 6e 67 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2e 0a 0a 4e yrics.scrolling.on.mode.line...N
11b220 6f 74 65 3a 20 45 76 65 6e 20 69 66 20 74 68 69 73 20 69 73 20 73 65 74 20 74 6f 20 74 2c 20 69 ote:.Even.if.this.is.set.to.t,.i
11b240 74 20 61 6c 73 6f 20 64 65 70 65 6e 64 73 20 6f 6e 0a 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 t.also.depends.on.`emms-lyrics-d
11b260 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 27 20 74 6f 20 62 65 20 74 2e 22 0a 20 20 isplay-on-modeline'.to.be.t."...
11b280 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 :type.'boolean)..(defcustom.emms
11b2a0 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 72 2d 69 6e 74 65 72 76 61 6c 20 30 2e -lyrics-scroll-timer-interval.0.
11b2c0 34 0a 20 20 22 49 6e 74 65 72 76 61 6c 20 62 65 74 77 65 65 6e 20 73 63 72 6f 6c 6c 65 72 20 74 4..."Interval.between.scroller.t
11b2e0 69 6d 65 72 73 2e 20 54 68 65 20 73 68 6f 72 74 65 72 2c 20 74 68 65 20 66 61 73 74 65 72 2e 22 imers..The.shorter,.the.faster."
11b300 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 0a 0a 0c 0a 3b 3b 3b 20 55 73 65 72 20 49 6e ...:type.'number)....;;;.User.In
11b320 74 65 72 66 61 63 65 73 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 terfaces..(defvar.emms-lyrics-di
11b340 73 70 6c 61 79 2d 70 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 77 69 6c 6c 20 64 69 splay-p.t..."If.non-nil,.will.di
11b360 70 6c 61 79 20 6c 79 72 69 63 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 play.lyrics.")..(defvar.emms-lyr
11b380 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 22 22 0a 20 20 22 43 75 72 72 65 ics-mode-line-string.""..."Curre
11b3a0 6e 74 20 6c 79 72 69 63 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 nt.lyric.")..(defvar.emms-lyrics
11b3c0 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 42 75 66 66 65 72 20 74 6f 20 73 68 6f 77 20 6c 79 -buffer.nil..."Buffer.to.show.ly
11b3e0 72 69 63 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 68 69 rics.")..(defvar.emms-lyrics-chi
11b400 6e 65 73 65 2d 75 72 6c 20 22 68 74 74 70 3a 2f 2f 6d 70 33 2e 62 61 69 64 75 2e 63 6f 6d 2f 6d nese-url."http://mp3.baidu.com/m
11b420 3f 66 3d 6d 73 26 72 6e 3d 31 30 26 74 6e 3d 62 61 69 64 75 6d 70 33 6c 79 72 69 63 26 63 74 3d ?f=ms&rn=10&tn=baidump3lyric&ct=
11b440 31 35 30 39 39 34 39 34 34 26 77 6f 72 64 3d 25 73 26 6c 6d 3d 2d 31 22 0a 20 20 22 55 52 4c 20 150994944&word=%s&lm=-1"..."URL.
11b460 75 73 65 64 20 74 6f 20 66 69 6e 64 20 43 68 69 6e 65 73 65 20 6c 79 72 69 63 73 2e 0a 53 68 6f used.to.find.Chinese.lyrics..Sho
11b480 75 6c 64 20 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 25 73 20 77 68 69 63 68 20 69 73 20 72 65 70 6c uld.contain.one.%s.which.is.repl
11b4a0 61 63 65 64 20 77 69 74 68 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 2e 22 29 0a 0a 28 64 65 66 76 aced.with.the.filename.")..(defv
11b4c0 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 61 74 69 6e 2d 75 72 6c 20 22 68 74 74 70 3a 2f ar.emms-lyrics-latin-url."http:/
11b4e0 2f 6c 79 72 69 63 73 2e 77 69 6b 69 61 2e 63 6f 6d 2f 25 73 25 73 22 0a 20 20 22 55 52 4c 20 75 /lyrics.wikia.com/%s%s"..."URL.u
11b500 73 65 64 20 74 6f 20 66 69 6e 64 20 4c 61 74 69 6e 20 6c 79 72 69 63 73 2e 0a 53 68 6f 75 6c 64 sed.to.find.Latin.lyrics..Should
11b520 20 63 6f 6e 74 61 69 6e 20 74 77 6f 20 25 73 2d 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 20 54 68 .contain.two.%s-expressions...Th
11b540 65 20 66 69 72 73 74 20 69 73 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 0a 74 68 65 20 61 72 74 e.first.is.replaced.with.the.art
11b560 69 73 74 20 61 6e 64 20 73 65 63 6f 6e 64 20 77 69 74 68 20 74 68 65 20 74 69 74 6c 65 2e 22 29 ist.and.second.with.the.title.")
11b580 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 ..;;;###autoload.(defun.emms-lyr
11b5a0 69 63 73 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 64 69 73 70 6c 61 79 69 ics-enable.()..."Enable.displayi
11b5c0 6e 67 20 65 6d 6d 73 20 6c 79 72 69 63 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 ng.emms.lyrics."...(interactive)
11b5e0 0a 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 20 31 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 65 ...(emms-lyrics.1)...(message."e
11b600 6d 6d 73 20 6c 79 72 69 63 73 20 65 6e 61 62 6c 65 64 2e 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 mms.lyrics.enabled."))..;;;###au
11b620 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 61 62 6c toload.(defun.emms-lyrics-disabl
11b640 65 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 65 6d 6d 73 20 e.()..."Disable.displaying.emms.
11b660 6c 79 72 69 63 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 lyrics."...(interactive)...(emms
11b680 2d 6c 79 72 69 63 73 20 2d 31 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 45 4d 4d 53 20 6c 79 72 -lyrics.-1)...(message."EMMS.lyr
11b6a0 69 63 73 20 64 69 73 61 62 6c 65 64 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a ics.disabled"))..;;;###autoload.
11b6c0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 20 28 29 0a 20 20 22 (defun.emms-lyrics-toggle.()..."
11b6e0 54 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 69 6e 67 20 65 6d 6d 73 20 6c 79 72 69 63 73 2e 22 0a Toggle.displaying.emms.lyrics.".
11b700 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 6c 79 72 69 63 ..(interactive)...(if.emms-lyric
11b720 73 2d 64 69 73 70 6c 61 79 2d 70 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 s-display-p.......(emms-lyrics-d
11b740 69 73 61 62 6c 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6e 61 62 6c 65 29 isable).....(emms-lyrics-enable)
11b760 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 2d 64 69 ))..(defun.emms-lyrics-toggle-di
11b780 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 splay-on-minibuffer.()..."Toggle
11b7a0 20 64 69 73 70 6c 61 79 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 62 75 66 65 72 2e 22 0a .display.lyrics.on.minibbufer.".
11b7c0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 6c 79 72 69 63 ..(interactive)...(if.emms-lyric
11b7e0 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 70 s-display-on-minibuffer.......(p
11b800 72 6f 67 6e 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d rogn..(setq.emms-lyrics-display-
11b820 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 20 6e 69 6c 29 0a 09 28 6d 65 73 73 61 67 65 20 22 44 69 on-minibuffer.nil)..(message."Di
11b840 73 61 62 6c 65 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 65 72 22 29 29 0a 20 20 20 sable.lyrics.on.minibufer"))....
11b860 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 .(setq.emms-lyrics-display-on-mi
11b880 6e 69 62 75 66 66 65 72 20 74 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 6e 61 62 6c 65 nibuffer.t).....(message."Enable
11b8a0 20 6c 79 72 69 63 73 20 6f 6e 20 6d 69 6e 69 62 75 66 65 72 22 29 29 29 0a 0a 28 64 65 66 75 6e .lyrics.on.minibufer")))..(defun
11b8c0 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 6f 67 67 6c 65 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d .emms-lyrics-toggle-display-on-m
11b8e0 6f 64 65 6c 69 6e 65 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 64 69 73 70 6c 61 79 20 6c 79 72 odeline.()..."Toggle.display.lyr
11b900 69 63 73 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 ics.on.mode.line."...(interactiv
11b920 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d e)...(if.emms-lyrics-display-on-
11b940 6d 6f 64 65 6c 69 6e 65 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 73 65 74 71 20 65 6d 6d modeline.......(progn..(setq.emm
11b960 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 20 6e 69 6c s-lyrics-display-on-modeline.nil
11b980 0a 09 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 ........emms-lyrics-mode-line-st
11b9a0 72 69 6e 67 20 22 22 29 0a 09 28 6d 65 73 73 61 67 65 20 22 44 69 73 61 62 6c 65 20 6c 79 72 69 ring."")..(message."Disable.lyri
11b9c0 63 73 20 6f 6e 20 6d 6f 64 65 20 6c 69 6e 65 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d cs.on.mode.line")).....(setq.emm
11b9e0 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 20 74 29 0a s-lyrics-display-on-modeline.t).
11ba00 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 45 6e 61 62 6c 65 20 6c 79 72 69 63 73 20 6f 6e 20 6d ....(message."Enable.lyrics.on.m
11ba20 6f 64 65 20 6c 69 6e 65 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 ode.line")))..(defun.emms-lyrics
11ba40 2d 74 6f 67 67 6c 65 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 54 6f 67 -toggle-display-buffer.()..."Tog
11ba60 67 6c 65 20 73 68 6f 77 69 6e 67 2f 68 69 64 69 6e 67 20 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d gle.showing/hiding.`emms-lyrics-
11ba80 62 75 66 66 65 72 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 buffer'."...(interactive)...(let
11baa0 20 28 28 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 65 6d 6d 73 2d 6c 79 72 .((w.(get-buffer-window.emms-lyr
11bac0 69 63 73 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 69 66 20 77 0a 20 20 20 20 20 20 20 20 ics-buffer))).....(if.w.........
11bae0 28 64 65 6c 65 74 65 2d 77 69 6e 64 6f 77 20 77 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 73 65 (delete-window.w).......(save-se
11bb00 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 lected-window.........(pop-to-bu
11bb20 66 66 65 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 ffer.emms-lyrics-buffer)........
11bb40 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 64 65 64 69 63 61 74 65 64 2d 70 20 77 20 74 29 29 29 29 .(set-window-dedicated-p.w.t))))
11bb60 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 20 28 61 72 67 29 0a 20 20 22 54 )..(defun.emms-lyrics.(arg)..."T
11bb80 75 72 6e 20 6f 6e 20 65 6d 6d 73 20 6c 79 72 69 63 73 20 64 69 73 70 6c 61 79 20 69 66 20 41 52 urn.on.emms.lyrics.display.if.AR
11bba0 47 20 69 73 20 70 6f 73 69 74 69 76 65 2c 20 6f 66 66 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 G.is.positive,.off.otherwise."..
11bbc0 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 61 6e 64 20 61 72 .(interactive."p")...(if.(and.ar
11bbe0 67 20 28 3e 20 61 72 67 20 30 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 g.(>.arg.0)).......(progn.......
11bc00 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 70 20 74 29 ..(setq.emms-lyrics-display-p.t)
11bc20 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d .........(add-hook.'emms-player-
11bc40 73 74 61 72 74 65 64 2d 68 6f 6f 6b 20 20 20 20 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 started-hook.....'emms-lyrics-st
11bc60 61 72 74 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 art).........(add-hook.'emms-pla
11bc80 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 20 20 20 20 20 27 65 6d 6d 73 2d 6c 79 72 69 63 yer-stopped-hook.....'emms-lyric
11bca0 73 2d 73 74 6f 70 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d s-stop).........(add-hook.'emms-
11bcc0 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 20 20 20 27 65 6d 6d 73 2d 6c 79 player-finished-hook....'emms-ly
11bce0 72 69 63 73 2d 73 74 6f 70 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d rics-stop).........(add-hook.'em
11bd00 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 27 65 6d 6d 73 ms-player-paused-hook......'emms
11bd20 2d 6c 79 72 69 63 73 2d 70 61 75 73 65 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b -lyrics-pause).........(add-hook
11bd40 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 65 64 2d 66 75 6e 63 74 69 6f 6e 73 20 27 .'emms-player-seeked-functions.'
11bd60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 65 6b 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 emms-lyrics-seek).........(add-h
11bd80 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 74 69 6d 65 2d 73 65 74 2d 66 75 6e 63 74 69 ook.'emms-player-time-set-functi
11bda0 6f 6e 73 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 79 6e 63 29 29 0a 20 20 20 20 28 65 6d 6d ons.'emms-lyrics-sync)).....(emm
11bdc0 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 s-lyrics-stop).....(setq.emms-ly
11bde0 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 70 20 6e 69 6c 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 rics-display-p.nil).....(emms-ly
11be00 72 69 63 73 2d 72 65 73 74 6f 72 65 2d 6d 6f 64 65 2d 6c 69 6e 65 29 0a 20 20 20 20 28 72 65 6d rics-restore-mode-line).....(rem
11be20 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f ove-hook.'emms-player-started-ho
11be40 6f 6b 20 20 20 20 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 29 0a 20 20 20 20 28 ok.....'emms-lyrics-start).....(
11be60 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 remove-hook.'emms-player-stopped
11be80 2d 68 6f 6f 6b 20 20 20 20 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 29 0a 20 20 20 -hook.....'emms-lyrics-stop)....
11bea0 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 .(remove-hook.'emms-player-finis
11bec0 68 65 64 2d 68 6f 6f 6b 20 20 20 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 29 0a 20 hed-hook....'emms-lyrics-stop)..
11bee0 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 ...(remove-hook.'emms-player-pau
11bf00 73 65 64 2d 68 6f 6f 6b 20 20 20 20 20 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 61 75 73 65 sed-hook......'emms-lyrics-pause
11bf20 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ).....(remove-hook.'emms-player-
11bf40 73 65 65 6b 65 64 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 seeked-functions.'emms-lyrics-se
11bf60 65 6b 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 ek).....(remove-hook.'emms-playe
11bf80 72 2d 74 69 6d 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d 6c 79 72 69 63 r-time-set-functions.'emms-lyric
11bfa0 73 2d 73 79 6e 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 76 69 s-sync)))..(defun.emms-lyrics-vi
11bfc0 73 69 74 2d 6c 79 72 69 63 20 28 29 0a 20 20 22 56 69 73 69 74 20 70 6c 61 79 69 6e 67 20 74 72 sit-lyric.()..."Visit.playing.tr
11bfe0 61 63 6b 27 73 20 6c 79 72 69 63 20 66 69 6c 65 2e 0a 49 66 20 77 65 20 63 61 6e 27 74 20 66 69 ack's.lyric.file..If.we.can't.fi
11c000 6e 64 20 69 74 20 66 72 6f 6d 20 6c 6f 63 61 6c 20 64 69 73 6b 2c 20 74 68 65 6e 20 73 65 61 72 nd.it.from.local.disk,.then.sear
11c020 63 68 20 69 74 20 66 72 6f 6d 20 69 6e 74 65 72 6e 65 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ch.it.from.internet."...(interac
11c040 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 tive)...(let*.((track.(emms-play
11c060 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 list-current-selected-track))...
11c080 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 .......(name.(emms-track-get.tra
11c0a0 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 72 63 20 28 66 75 6e 63 61 6c ck.'name))..........(lrc.(funcal
11c0c0 6c 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e 64 2d 6c 79 72 69 63 2d 66 75 6e 63 74 69 6f l.emms-lyrics-find-lyric-functio
11c0e0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 n........................(emms-r
11c100 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 eplace-regexp-in-string.........
11c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 2e 22 20 28 66 ................(concat."\\.".(f
11c140 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 6e 61 6d 65 29 20 22 5c 5c 27 22 29 0a ile-name-extension.name)."\\'").
11c160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2e 6c 72 63 22 0a 20 ........................".lrc"..
11c180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d .......................(file-nam
11c1a0 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 28 69 66 e-nondirectory.name))))).....(if
11c1c0 20 28 61 6e 64 20 6c 72 63 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 6c 72 63 29 20 28 6e .(and.lrc.(file-exists-p.lrc).(n
11c1e0 6f 74 20 28 73 74 72 69 6e 67 3d 20 6c 72 63 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 ot.(string=.lrc.""))).........(f
11c200 69 6e 64 2d 66 69 6c 65 20 6c 72 63 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 79 ind-file.lrc).......(message."Ly
11c220 72 69 63 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 6e 20 66 69 6c 65 2d ric.file.does.not.exist.on.file-
11c240 73 79 73 74 65 6d 2e 20 20 53 65 61 72 63 68 69 6e 67 20 6f 6e 6c 69 6e 65 2e 2e 2e 22 29 0a 20 system...Searching.online...")..
11c260 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 69 74 6c 65 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 .....(let*.((title.(or.(emms-tra
11c280 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 20 20 20 20 20 20 ck-get.track.'info-title).......
11c2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e ..................(file-name-san
11c2c0 73 2d 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-extension.....................
11c2e0 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 6e 61 6d .....(file-name-nondirectory.nam
11c300 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 74 69 73 74 20 28 77 68 65 6e e))))..............(artist.(when
11c320 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 69 74 .(emms-track-get.track.'info-tit
11c340 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 le)........................(emms
11c360 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 29 -track-get.track.'info-artist)))
11c380 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............(url..............
11c3a0 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 63 63 22 20 74 69 74 .(cond.((string-match."\\cc".tit
11c3c0 6c 65 29 20 3b 20 43 68 69 6e 65 73 65 20 6c 79 72 69 63 73 2e 0a 20 20 20 20 20 20 20 20 20 20 le).;.Chinese.lyrics............
11c3e0 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20 74 61 67 20 69 6e 66 6f 20 6d 69 67 ...........;;.Since.tag.info.mig
11c400 68 74 20 62 65 20 65 6e 63 6f 64 65 64 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 63 6f 64 69 ht.be.encoded.using.various.codi
11c420 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 79 73 74 65 ng......................;;.syste
11c440 6d 73 2c 20 77 65 27 64 20 62 65 74 74 65 72 20 66 61 6c 6c 20 62 61 63 6b 20 6f 6e 20 66 69 6c ms,.we'd.better.fall.back.on.fil
11c460 65 6e 61 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 ename.......................(for
11c480 6d 61 74 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 68 69 6e 65 73 65 2d 75 72 6c 0a 20 20 20 20 mat.emms-lyrics-chinese-url.....
11c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 75 .........................(emms-u
11c4c0 72 6c 2d 71 75 6f 74 65 2d 70 6c 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rl-quote-plus...................
11c4e0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e ............(encode-coding-strin
11c500 67 20 6e 61 6d 65 20 27 67 62 32 33 31 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 g.name.'gb2312))))..............
11c520 20 20 20 20 20 20 20 28 74 20 3b 20 45 6e 67 6c 69 73 68 20 6c 79 72 69 63 73 2e 67 0a 20 20 20 .......(t.;.English.lyrics.g....
11c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 65 6d 6d 73 2d 6c ..................(format.emms-l
11c560 79 72 69 63 73 2d 6c 61 74 69 6e 2d 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 yrics-latin-url.................
11c580 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 72 74 69 73 74 20 28 63 6f 6e 63 61 74 20 .............(if.artist.(concat.
11c5a0 28 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 2d 75 6e 64 65 72 73 63 6f 72 65 20 61 72 74 69 73 (emms-url-quote-underscore.artis
11c5c0 74 29 20 22 3a 22 29 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t).":")."").....................
11c5e0 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 2d 75 6e 64 65 72 73 63 .........(emms-url-quote-undersc
11c600 6f 72 65 20 74 69 74 6c 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f ore.title)))))).........(if.(fbo
11c620 75 6e 64 70 20 27 65 77 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 72 undp.'eww).............(progn.(r
11c640 65 71 75 69 72 65 20 27 65 77 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 equire.'eww)....................
11c660 28 6c 65 74 20 28 28 72 65 61 64 61 62 6c 65 2d 68 6f 6f 6b 20 28 77 68 65 6e 20 28 66 62 6f 75 (let.((readable-hook.(when.(fbou
11c680 6e 64 70 20 27 65 77 77 2d 72 65 61 64 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ndp.'eww-readable)..............
11c6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 .............................(ad
11c6c0 64 2d 68 6f 6f 6b 20 27 65 77 77 2d 61 66 74 65 72 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 23 27 d-hook.'eww-after-render-hook.#'
11c6e0 65 77 77 2d 72 65 61 64 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eww-readable)...................
11c700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 77 77 2d 72 65 ........................#'eww-re
11c720 61 64 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 adable)))......................(
11c740 65 77 77 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 eww.url)......................(w
11c760 68 65 6e 20 72 65 61 64 61 62 6c 65 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hen.readable-hook...............
11c780 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 77 77 2d 61 66 74 65 72 .........(remove-hook.'eww-after
11c7a0 2d 72 65 6e 64 65 72 2d 68 6f 6f 6b 20 72 65 61 64 61 62 6c 65 2d 68 6f 6f 6b 29 29 29 29 0a 20 -render-hook.readable-hook))))..
11c7c0 20 20 20 20 20 20 20 20 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 75 72 6c 29 29 0a 20 20 20 20 20 .........(browse-url.url))......
11c7e0 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 79 72 69 63 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 ...(message."Lyric.file.does.not
11c800 20 65 78 69 73 74 20 6f 6e 20 66 69 6c 65 2d 73 79 73 74 65 6d 2e 20 20 53 65 61 72 63 68 69 6e .exist.on.file-system...Searchin
11c820 67 20 6f 6e 6c 69 6e 65 2e 2e 2e 22 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 45 4d 4d 53 20 4c 79 g.online...")))))....;;;.EMMS.Ly
11c840 72 69 63 73 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 20 rics..(defvar.emms-lyrics-alist.
11c860 6e 69 6c 0a 20 20 22 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 20 5c 5c 3d 27 28 nil..."a.list.of.the.form:.\\='(
11c880 28 74 69 6d 65 30 20 2e 20 6c 79 72 69 63 30 29 20 28 74 69 6d 65 31 20 2e 20 6c 79 72 69 63 31 (time0...lyric0).(time1...lyric1
11c8a0 29 2e 2e 2e 29 29 2e 20 49 6e 0a 73 68 6f 72 74 2c 20 61 74 20 74 69 6d 65 2d 69 2c 20 64 69 73 )...))..In.short,.at.time-i,.dis
11c8c0 70 6c 61 79 20 6c 79 72 69 63 2d 69 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 play.lyric-i.")..(defvar.emms-ly
11c8e0 72 69 63 73 2d 74 69 6d 65 72 73 20 6e 69 6c 0a 20 20 22 74 69 6d 65 72 73 20 66 6f 72 20 64 69 rics-timers.nil..."timers.for.di
11c900 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d splaying.lyric.")..(defvar.emms-
11c920 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 20 6e 69 6c 0a 20 20 22 65 6d 6d 73 20 6c 79 lyrics-start-time.nil..."emms.ly
11c940 72 69 63 20 73 74 61 72 74 20 74 69 6d 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d ric.start.time.")..(defvar.emms-
11c960 6c 79 72 69 63 73 2d 70 61 75 73 65 2d 74 69 6d 65 20 6e 69 6c 0a 20 20 22 65 6d 6d 73 20 6c 79 lyrics-pause-time.nil..."emms.ly
11c980 72 69 63 20 70 61 75 73 65 20 74 69 6d 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d ric.pause.time.")..(defvar.emms-
11c9a0 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 6d 65 20 30 0a 20 20 22 48 6f 77 20 6c 6f 6e lyrics-elapsed-time.0..."How.lon
11c9c0 67 20 74 69 6d 65 20 68 61 73 20 65 6d 6d 73 20 6c 79 72 69 63 20 70 6c 61 79 65 64 2e 22 29 0a g.time.has.emms.lyric.played.").
11c9e0 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 .(defvar.emms-lyrics-scroll-time
11ca00 72 73 20 6e 69 6c 0a 20 20 22 4c 79 72 69 63 73 20 73 63 72 6f 6c 6c 65 72 20 74 69 6d 65 72 73 rs.nil..."Lyrics.scroller.timers
11ca20 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 72 65 61 64 2d 66 69 6c .")..(defun.emms-lyrics-read-fil
11ca40 65 20 28 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 61 74 63 68 75 70 29 0a 20 20 22 52 65 e.(file.&optional.catchup)..."Re
11ca60 61 64 20 61 20 6c 79 72 69 63 20 66 69 6c 65 28 4c 52 43 20 66 6f 72 6d 61 74 29 2e 0a 4f 70 74 ad.a.lyric.file(LRC.format)..Opt
11ca80 69 6f 6e 61 6c 20 43 41 54 43 48 55 50 20 69 73 20 66 6f 72 20 72 65 63 6f 67 6e 69 7a 69 6e 67 ional.CATCHUP.is.for.recognizing
11caa0 20 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 61 74 63 68 75 70 5c 5c 3d 27 2e 0a 46 49 4c 45 20 .`emms-lyrics-catchup\\='..FILE.
11cac0 73 68 6f 75 6c 64 20 65 6e 64 20 75 70 20 77 69 74 68 20 5c 22 2e 6c 72 63 5c 22 2c 20 69 74 73 should.end.up.with.\".lrc\",.its
11cae0 20 63 6f 6e 74 65 6e 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 6f 6e 65 20 6f 66 20 74 68 65 0a 66 .content.looks.like.one.of.the.f
11cb00 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 20 20 20 20 5b 31 3a 33 39 5d 49 20 6c 6f 76 65 20 79 6f 75 2c ollowing:......[1:39]I.love.you,
11cb20 20 45 6d 61 63 73 21 0a 20 20 20 20 5b 30 30 3a 33 39 5d 49 20 6c 6f 76 65 20 79 6f 75 2c 20 45 .Emacs!.....[00:39]I.love.you,.E
11cb40 6d 61 63 73 21 0a 20 20 20 20 5b 30 30 3a 33 39 2e 36 37 5d 49 20 6c 6f 76 65 20 79 6f 75 2c 20 macs!.....[00:39.67]I.love.you,.
11cb60 45 6d 61 63 73 21 0a 0a 46 49 4c 45 20 73 68 6f 75 6c 64 20 62 65 20 75 6e 64 65 72 20 74 68 65 Emacs!..FILE.should.be.under.the
11cb80 20 73 61 6d 65 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 74 68 65 20 6d 75 73 69 63 20 66 69 6c .same.directory.as.the.music.fil
11cba0 65 2c 20 6f 72 20 75 6e 64 65 72 0a 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 72 5c 5c 3d 27 e,.or.under.`emms-lyrics-dir\\='
11cbc0 2e 22 0a 20 20 28 6f 72 20 63 61 74 63 68 75 70 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c ."...(or.catchup.......(setq.fil
11cbe0 65 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e 64 2d 6c 79 72 69 e.(funcall.emms-lyrics-find-lyri
11cc00 63 2d 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 29 29 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 c-function.file)))...(when.(and.
11cc20 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 28 file.(file-exists-p.file)).....(
11cc40 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f with-temp-buffer.......(let.((co
11cc60 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 65 6d 6d 73 2d 6c 79 72 69 63 73 ding-system-for-read.emms-lyrics
11cc80 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 -coding-system)).........(emms-i
11cca0 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 6c 65 29 0a 20 20 20 20 20 20 nsert-file-contents.file).......
11ccc0 20 20 28 77 68 69 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 ..(while.(search-forward-regexp.
11cce0 22 5c 5c 5b 5b 30 2d 39 3a 2e 5d 2b 5c 5c 5d 2e 2a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 "\\[[0-9:.]+\\].*".nil.t).......
11cd00 20 20 20 20 28 6c 65 74 20 28 28 6c 79 72 69 63 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 2d 73 ....(let.((lyric-string.(match-s
11cd20 74 72 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 20 tring.0)).................(time.
11cd40 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 79 72 69 63 20 22 22 29 29 0a 20 0).................(lyric.""))..
11cd60 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 79 72 69 63 0a 20 20 20 20 20 20 20 20 20 ...........(setq.lyric..........
11cd80 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e .........(emms-replace-regexp-in
11cda0 2d 73 74 72 69 6e 67 20 22 2e 2a 5c 5c 5d 22 20 22 22 20 6c 79 72 69 63 2d 73 74 72 69 6e 67 29 -string.".*\\]"."".lyric-string)
11cdc0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 ).............(while.(string-mat
11cde0 63 68 20 22 5c 5c 5b 5b 30 2d 39 3a 2e 5d 2b 5c 5c 5d 22 20 6c 79 72 69 63 2d 73 74 72 69 6e 67 ch."\\[[0-9:.]+\\]".lyric-string
11ce00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 69 6d 65 2d 73 74 72 )...............(let*.((time-str
11ce20 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 20 6c 79 72 69 63 2d 73 74 72 69 6e 67 ing.(match-string.0.lyric-string
11ce40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 6d 69 2d 70 6f ))......................(semi-po
11ce60 73 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 3a 22 20 74 69 6d 65 2d 73 74 72 69 6e 67 29 s.(string-match.":".time-string)
11ce80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 69 6d 65 0a 20 20 )).................(setq.time...
11cea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 2a 20 28 73 74 72 69 6e ....................(+.(*.(strin
11cec0 67 2d 74 6f 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-to-number.....................
11cee0 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 74 69 6d 65 2d 73 74 72 69 6e 67 20 .........(substring.time-string.
11cf00 31 20 73 65 6d 69 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1.semi-pos))....................
11cf20 20 20 20 20 20 20 20 20 20 36 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........60)....................
11cf40 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 ......(string-to-number.........
11cf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 74 69 6d ..................(substring.tim
11cf80 65 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-string........................
11cfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 73 65 6d 69 2d 70 6f 73 29 0a 20 20 20 20 ..............(1+.semi-pos).....
11cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11cfe0 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 74 69 6d 65 2d 73 74 72 69 6e 67 29 29 29 29 29 29 0a 20 .(1-.(length.time-string))))))..
11d000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 79 72 69 63 2d 73 74 72 69 6e ...............(setq.lyric-strin
11d020 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 g.......................(substri
11d040 6e 67 20 6c 79 72 69 63 2d 73 74 72 69 6e 67 20 28 6c 65 6e 67 74 68 20 74 69 6d 65 2d 73 74 72 ng.lyric-string.(length.time-str
11d060 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d ing))).................(setq.emm
11d080 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-lyrics-alist..................
11d0a0 20 20 20 20 20 28 61 70 70 65 6e 64 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 20 60 .....(append.emms-lyrics-alist.`
11d0c0 28 28 2c 74 69 6d 65 20 2e 20 2c 6c 79 72 69 63 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ((,time...,lyric))))............
11d0e0 20 20 20 20 20 28 73 65 74 71 20 74 69 6d 65 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 .....(setq.time.0))))).........(
11d100 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 setq.emms-lyrics-alist..........
11d120 20 20 20 20 20 28 73 6f 72 74 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 20 28 6c 61 .....(sort.emms-lyrics-alist.(la
11d140 6d 62 64 61 20 28 61 20 62 29 20 28 3c 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 29 mbda.(a.b).(<.(car.a).(car.b))))
11d160 29 29 0a 20 20 20 20 20 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 )).......t)))..(defun.emms-lyric
11d180 73 2d 63 72 65 61 74 65 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 60 65 6d s-create-buffer.()..."Create.`em
11d1a0 6d 73 2d 6c 79 72 69 63 73 2d 62 75 66 66 65 72 5c 5c 3d 27 20 64 65 64 69 63 61 74 65 64 20 74 ms-lyrics-buffer\\='.dedicated.t
11d1c0 6f 20 6c 79 72 69 63 73 2e 20 22 0a 20 20 3b 3b 20 6c 65 61 64 69 6e 67 20 77 68 69 74 65 20 73 o.lyrics.."...;;.leading.white.s
11d1e0 70 61 63 65 20 69 6e 20 62 75 66 66 65 72 20 6e 61 6d 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 pace.in.buffer.name.to.hide.the.
11d200 62 75 66 66 65 72 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 62 75 66 66 65 buffer...(setq.emms-lyrics-buffe
11d220 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 20 2a 45 4d 4d 53 20 4c 79 72 r.(get-buffer-create.".*EMMS.Lyr
11d240 69 63 73 2a 22 29 29 0a 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 6c 79 72 69 63 ics*"))...(set-buffer.emms-lyric
11d260 73 2d 62 75 66 66 65 72 29 0a 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e s-buffer)...(setq.buffer-read-on
11d280 6c 79 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 2d 74 79 70 65 20 6e 69 6c 29 0a ly.nil.........cursor-type.nil).
11d2a0 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 ..(erase-buffer)...(mapc.(lambda
11d2c0 20 28 74 69 6d 65 2d 6c 79 72 69 63 29 20 28 69 6e 73 65 72 74 20 28 63 64 72 20 74 69 6d 65 2d .(time-lyric).(insert.(cdr.time-
11d2e0 6c 79 72 69 63 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 lyric)."\n")).........emms-lyric
11d300 73 2d 61 6c 69 73 74 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e s-alist)...(goto-char.(point-min
11d320 29 29 0a 20 20 28 65 6d 6d 73 2d 61 63 74 69 76 61 74 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 ))...(emms-activate-highlighting
11d340 2d 6d 6f 64 65 29 0a 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 -mode)...(setq.buffer-read-only.
11d360 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 20 28 29 t))..(defun.emms-lyrics-start.()
11d380 0a 20 20 22 53 74 61 72 74 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 72 79 69 63 73 2e 22 0a 20 20 ..."Start.displaying.lryics."...
11d3a0 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 20 28 63 75 (setq.emms-lyrics-start-time.(cu
11d3c0 72 72 65 6e 74 2d 74 69 6d 65 29 0a 09 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 61 75 73 65 2d 74 rrent-time)..emms-lyrics-pause-t
11d3e0 69 6d 65 20 6e 69 6c 0a 09 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 6d ime.nil..emms-lyrics-elapsed-tim
11d400 65 20 30 29 0a 20 20 28 77 68 65 6e 20 28 6c 65 74 20 28 28 66 69 6c 65 0a 09 20 20 20 20 20 20 e.0)...(when.(let.((file........
11d420 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 0a 09 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .(emms-track-get...(emms-playlis
11d440 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 0a 09 09 27 6e 61 6d t-current-selected-track)...'nam
11d460 65 29 29 29 0a 09 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 72 65 61 64 2d 66 69 6c 65 0a 09 e)))....(emms-lyrics-read-file..
11d480 20 20 20 28 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e ...(emms-replace-regexp-in-strin
11d4a0 67 0a 09 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 2e 22 20 28 66 69 6c 65 2d 6e 61 6d 65 2d g......(concat."\\.".(file-name-
11d4c0 65 78 74 65 6e 73 69 6f 6e 20 66 69 6c 65 29 20 22 5c 5c 27 22 29 0a 20 20 20 20 20 20 20 20 20 extension.file)."\\'")..........
11d4e0 20 20 20 22 2e 6c 72 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 ...".lrc".............(file-name
11d500 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e -nondirectory.file)))).....(when
11d520 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 .emms-lyrics-display-buffer.....
11d540 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 72 65 61 74 65 2d 62 75 66 66 65 72 29 29 0a 20 ..(emms-lyrics-create-buffer))..
11d560 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 74 2d 74 69 6d 65 72 29 29 29 0a 0a 28 64 ...(emms-lyrics-set-timer)))..(d
11d580 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 63 61 74 63 68 75 70 20 28 6c 72 63 29 0a 20 efun.emms-lyrics-catchup.(lrc)..
11d5a0 20 22 43 61 74 63 68 75 70 20 77 69 74 68 20 6c 61 74 65 72 20 64 6f 77 6e 6c 6f 61 64 65 64 20 ."Catchup.with.later.downloaded.
11d5c0 4c 52 43 20 66 69 6c 65 28 66 75 6c 6c 20 70 61 74 68 29 2e 0a 49 66 20 79 6f 75 20 77 72 69 74 LRC.file(full.path)..If.you.writ
11d5e0 65 20 73 6f 6d 65 20 6c 79 72 69 63 73 20 63 72 61 77 6c 65 72 2c 20 77 68 69 63 68 20 69 73 20 e.some.lyrics.crawler,.which.is.
11d600 72 75 6e 6e 69 6e 67 20 61 73 79 6e 63 68 72 6f 6e 69 63 61 6c 6c 79 2c 0a 74 68 65 6e 20 74 68 running.asynchronically,.then.th
11d620 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 6f 75 6c 64 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 63 is.function.would.be.useful.to.c
11d640 61 6c 6c 20 77 68 65 6e 20 74 68 65 20 63 72 61 77 6c 65 72 20 66 69 6e 69 73 68 65 73 20 69 74 all.when.the.crawler.finishes.it
11d660 73 0a 6a 6f 62 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 6c 64 2d 73 74 61 72 74 20 65 6d 6d 73 2d s.job."...(let.((old-start.emms-
11d680 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d lyrics-start-time)).....(setq.em
11d6a0 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 ms-lyrics-start-time.(current-ti
11d6c0 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 61 75 73 65 2d me)...........emms-lyrics-pause-
11d6e0 74 69 6d 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 time.nil...........emms-lyrics-e
11d700 6c 61 70 73 65 64 2d 74 69 6d 65 20 30 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d lapsed-time.0).....(emms-lyrics-
11d720 72 65 61 64 2d 66 69 6c 65 20 6c 72 63 20 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 read-file.lrc.t).....(emms-lyric
11d740 73 2d 73 65 74 2d 74 69 6d 65 72 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 s-set-timer).....(emms-lyrics-se
11d760 65 6b 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 28 74 69 6d 65 2d 73 69 6e 63 65 20 6f 6c 64 2d 73 ek.(float-time.(time-since.old-s
11d780 74 61 72 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 tart)))))..(defun.emms-lyrics-st
11d7a0 6f 70 20 28 29 0a 20 20 22 53 74 6f 70 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e op.()..."Stop.displaying.lyrics.
11d7c0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c "...(interactive)...(when.emms-l
11d7e0 79 72 69 63 73 2d 61 6c 69 73 74 0a 20 20 20 20 28 6d 61 70 63 20 23 27 65 6d 6d 73 2d 63 61 6e yrics-alist.....(mapc.#'emms-can
11d800 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 69 6d 65 72 73 29 0a 20 20 cel-timer.emms-lyrics-timers)...
11d820 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 ..(if.(or.(not.emms-player-pause
11d840 64 2d 70 29 0a 09 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 29 d-p)......emms-player-stopped-p)
11d860 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 20 6e 69 6c 0a 09 20 ..(setq.emms-lyrics-alist.nil...
11d880 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 69 6d 65 72 73 20 6e 69 6c 0a 09 20 20 20 .....emms-lyrics-timers.nil.....
11d8a0 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 ...emms-lyrics-mode-line-string.
11d8c0 22 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 61 75 73 65 ""))))..(defun.emms-lyrics-pause
11d8e0 20 28 29 0a 20 20 22 50 61 75 73 65 20 64 69 73 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 22 .()..."Pause.displaying.lyrics."
11d900 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 0a 20 20 20 20 ...(if.emms-player-paused-p.....
11d920 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 61 75 73 65 2d 74 69 6d 65 20 28 ..(setq.emms-lyrics-pause-time.(
11d940 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 79 current-time)).....(when.emms-ly
11d960 72 69 63 73 2d 70 61 75 73 65 2d 74 69 6d 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 rics-pause-time.......(setq.emms
11d980 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 6d 65 0a 09 20 20 20 20 28 2b 20 28 66 6c -lyrics-elapsed-time......(+.(fl
11d9a0 6f 61 74 2d 74 69 6d 65 0a 09 09 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 65 6d 6d 73 2d 6c oat-time...(time-subtract.emms-l
11d9c0 79 72 69 63 73 2d 70 61 75 73 65 2d 74 69 6d 65 0a 09 09 09 20 20 20 20 20 20 20 65 6d 6d 73 2d yrics-pause-time...........emms-
11d9e0 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 29 29 0a 09 20 20 20 20 20 20 20 65 6d 6d 73 lyrics-start-time)).........emms
11da00 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 28 73 65 74 -lyrics-elapsed-time))).....(set
11da20 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e q.emms-lyrics-start-time.(curren
11da40 74 2d 74 69 6d 65 29 29 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c t-time)))...(when.emms-lyrics-al
11da60 69 73 74 0a 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 ist.....(if.emms-player-paused-p
11da80 0a 09 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 ..(emms-lyrics-stop).......(emms
11daa0 2d 6c 79 72 69 63 73 2d 73 65 74 2d 74 69 6d 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d -lyrics-set-timer))))..(defun.em
11dac0 6d 73 2d 6c 79 72 69 63 73 2d 73 65 65 6b 20 28 73 65 63 29 0a 20 20 22 53 65 65 6b 20 66 6f 72 ms-lyrics-seek.(sec)..."Seek.for
11dae0 77 61 72 64 20 6f 72 20 62 61 63 6b 77 61 72 64 20 53 45 43 20 73 65 63 6f 6e 64 73 20 6c 79 72 ward.or.backward.SEC.seconds.lyr
11db00 69 63 73 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 ics."...(setq.emms-lyrics-elapse
11db20 64 2d 74 69 6d 65 0a 09 28 2b 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 d-time..(+.emms-lyrics-elapsed-t
11db40 69 6d 65 0a 09 20 20 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 28 74 69 6d 65 2d 73 69 6e 63 65 20 ime.....(float-time.(time-since.
11db60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 29 29 0a 09 20 20 20 73 65 63 emms-lyrics-start-time)).....sec
11db80 29 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 ))...(when.(<.emms-lyrics-elapse
11dba0 64 2d 74 69 6d 65 20 30 29 09 3b 20 62 61 63 6b 20 74 6f 20 73 74 61 72 74 20 70 6f 69 6e 74 0a d-time.0).;.back.to.start.point.
11dbc0 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 ....(setq.emms-lyrics-elapsed-ti
11dbe0 6d 65 20 30 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 me.0))...(setq.emms-lyrics-start
11dc00 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 28 77 68 65 6e 20 65 6d -time.(current-time))...(when.em
11dc20 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 0a 20 20 20 20 28 6c 65 74 20 28 28 70 61 75 73 65 ms-lyrics-alist.....(let.((pause
11dc40 64 2d 6f 72 69 67 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 29 29 0a 20 20 d-orig.emms-player-paused-p))...
11dc60 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 74 ....(setq.emms-player-paused-p.t
11dc80 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 6f 70 29 0a 20 20 20 20 20 ).......(emms-lyrics-stop)......
11dca0 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 70 61 75 73 .(setq.emms-player-paused-p.paus
11dcc0 65 64 2d 6f 72 69 67 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 74 2d 74 ed-orig)).....(emms-lyrics-set-t
11dce0 69 6d 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 79 6e 63 imer)))..(defun.emms-lyrics-sync
11dd00 20 28 73 65 63 29 0a 20 20 22 53 79 6e 63 68 72 6f 6e 69 7a 65 20 74 68 65 20 6c 79 72 69 63 20 .(sec)..."Synchronize.the.lyric.
11dd20 64 69 73 70 6c 61 79 20 61 74 20 53 45 43 20 73 65 63 6f 6e 64 73 2e 22 0a 20 20 28 73 65 74 71 display.at.SEC.seconds."...(setq
11dd40 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 .emms-lyrics-start-time.(current
11dd60 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 -time).........emms-lyrics-elaps
11dd80 65 64 2d 74 69 6d 65 20 30 29 0a 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 65 6b 20 73 ed-time.0)...(emms-lyrics-seek.s
11dda0 65 63 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 65 74 2d 74 69 6d ec))..(defun.emms-lyrics-set-tim
11ddc0 65 72 20 28 29 0a 20 20 22 53 65 74 20 74 69 6d 65 72 73 20 66 6f 72 20 64 69 73 70 6c 61 79 69 er.()..."Set.timers.for.displayi
11dde0 6e 67 20 6c 79 72 69 63 73 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d ng.lyrics."...(setq.emms-lyrics-
11de00 74 69 6d 65 72 73 20 27 28 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 79 72 69 63 73 2d 61 6c 69 73 timers.'())...(let.((lyrics-alis
11de20 74 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 6c 69 t.emms-lyrics-alist).........(li
11de40 6e 65 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 6c 79 72 69 63 73 2d 61 6c 69 73 74 0a 20 ne.0)).....(while.lyrics-alist..
11de60 20 20 20 20 20 28 6c 65 74 20 28 28 74 69 6d 65 20 28 2d 20 28 63 61 61 72 20 6c 79 72 69 63 73 .....(let.((time.(-.(caar.lyrics
11de80 2d 61 6c 69 73 74 29 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 6d 65 -alist).emms-lyrics-elapsed-time
11dea0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 79 72 69 63 20 28 63 64 61 72 20 6c 79 72 69 )).............(lyric.(cdar.lyri
11dec0 63 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d 74 69 6d cs-alist)).............(next-tim
11dee0 65 20 28 61 6e 64 20 28 63 64 72 20 6c 79 72 69 63 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 e.(and.(cdr.lyrics-alist).......
11df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 63 61 72 20 28 63 ......................(-.(car.(c
11df20 61 64 72 20 6c 79 72 69 63 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 adr.lyrics-alist))..............
11df40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c ..................emms-lyrics-el
11df60 61 70 73 65 64 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d apsed-time))).............(next-
11df80 6c 79 72 69 63 20 28 61 6e 64 20 28 63 64 72 20 6c 79 72 69 63 73 2d 61 6c 69 73 74 29 0a 20 20 lyric.(and.(cdr.lyrics-alist)...
11dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 ...........................(cdr.
11dfc0 28 63 61 64 72 20 6c 79 72 69 63 73 2d 61 6c 69 73 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 (cadr.lyrics-alist))))).........
11dfe0 28 73 65 74 71 20 6c 69 6e 65 20 28 31 2b 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 (setq.line.(1+.line)).........(w
11e000 68 65 6e 20 28 3e 20 74 69 6d 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 hen.(>.time.0)...........(setq.e
11e020 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 69 6d 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mms-lyrics-timers...............
11e040 20 20 28 61 70 70 65 6e 64 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 74 69 6d 65 72 73 0a 20 20 20 ..(append.emms-lyrics-timers....
11e060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 .....................(list......
11e080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 ....................(run-at-time
11e0a0 20 28 66 6f 72 6d 61 74 20 22 25 64 20 73 65 63 22 20 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 .(format."%d.sec".time).........
11e0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 ..............................ni
11e0e0 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l...............................
11e100 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 68 61 ........#'emms-lyrics-display-ha
11e120 6e 64 6c 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ndler...........................
11e140 20 20 20 20 20 20 20 20 20 20 20 20 6c 79 72 69 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............lyric...............
11e160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 2d 6c 79 72 ........................next-lyr
11e180 69 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ic..............................
11e1a0 20 20 20 20 20 20 20 20 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........line...................
11e1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6e 65 78 74 2d 74 69 ....................(and.next-ti
11e1e0 6d 65 20 28 2d 20 6e 65 78 74 2d 74 69 6d 65 20 74 69 6d 65 29 29 29 29 29 29 29 0a 20 20 20 20 me.(-.next-time.time))))))).....
11e200 20 20 20 20 28 73 65 74 71 20 6c 79 72 69 63 73 2d 61 6c 69 73 74 20 28 63 64 72 20 6c 79 72 69 ....(setq.lyrics-alist.(cdr.lyri
11e220 63 73 2d 61 6c 69 73 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 cs-alist))))))..(defun.emms-lyri
11e240 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 41 64 64 20 6c 79 72 69 63 20 74 6f 20 cs-mode-line.()..."Add.lyric.to.
11e260 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 28 6f 72 20 67 6c 6f 62 61 6c 2d 6d 6f 64 the.mode.line."...(or.global-mod
11e280 65 2d 73 74 72 69 6e 67 20 28 73 65 74 71 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e e-string.(setq.global-mode-strin
11e2a0 67 20 27 28 22 22 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 27 65 6d 6d g.'("")))...(unless.(member.'emm
11e2c0 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 0a 09 09 20 20 67 6c s-lyrics-mode-line-string.....gl
11e2e0 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 28 73 65 74 71 20 67 6c 6f 62 obal-mode-string).....(setq.glob
11e300 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a 09 20 20 28 61 70 70 65 6e 64 20 67 6c 6f 62 61 6c al-mode-string....(append.global
11e320 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a 09 09 20 20 27 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d -mode-string.....'(emms-lyrics-m
11e340 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ode-line-string)))))..(defun.emm
11e360 73 2d 6c 79 72 69 63 73 2d 72 65 73 74 6f 72 65 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 s-lyrics-restore-mode-line.()...
11e380 22 52 65 73 74 6f 72 65 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 2e 22 0a 20 20 28 73 65 74 71 "Restore.the.mode.line."...(setq
11e3a0 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a 09 28 72 65 6d 6f 76 65 20 27 65 6d .global-mode-string..(remove.'em
11e3c0 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 67 6c 6f 62 61 ms-lyrics-mode-line-string.globa
11e3e0 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 29 29 0a 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 l-mode-string))...(force-mode-li
11e400 6e 65 2d 75 70 64 61 74 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d ne-update))..(defun.emms-lyrics-
11e420 64 69 73 70 6c 61 79 2d 68 61 6e 64 6c 65 72 20 28 6c 79 72 69 63 20 6e 65 78 74 2d 6c 79 72 69 display-handler.(lyric.next-lyri
11e440 63 20 6c 69 6e 65 20 64 69 66 66 29 0a 20 20 22 44 49 46 46 20 69 73 20 74 68 65 20 74 69 6d 65 c.line.diff)..."DIFF.is.the.time
11e460 73 74 61 6d 70 20 64 69 66 66 65 72 65 6e 63 65 73 20 62 65 74 77 65 65 6e 20 63 75 72 72 65 6e stamp.differences.between.curren
11e480 74 20 4c 59 52 49 43 20 61 6e 64 0a 4e 45 58 54 2d 4c 59 52 49 43 3b 20 4c 49 4e 45 20 63 6f 72 t.LYRIC.and.NEXT-LYRIC;.LINE.cor
11e4a0 72 65 73 70 6f 6e 64 73 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 66 6f 72 20 4c 59 52 49 43 20 69 responds.line.number.for.LYRIC.i
11e4c0 6e 20 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 62 75 66 66 65 72 5c 5c 3d 27 2e 22 0a 20 20 28 65 n.`emms-lyrics-buffer\\='."...(e
11e4e0 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 20 28 66 6f 72 6d 61 74 20 65 6d 6d 73 2d mms-lyrics-display.(format.emms-
11e500 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 66 6f 72 6d 61 74 20 6c 79 72 69 63 29 20 6c 69 6e lyrics-display-format.lyric).lin
11e520 65 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 e)...(when.(and.emms-lyrics-disp
11e540 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f lay-on-modeline.emms-lyrics-scro
11e560 6c 6c 2d 70 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 20 6c 79 ll-p).....(emms-lyrics-scroll.ly
11e580 72 69 63 20 6e 65 78 74 2d 6c 79 72 69 63 20 64 69 66 66 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ric.next-lyric.diff)))..(defun.e
11e5a0 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 20 28 6c 79 72 69 63 20 6c 69 6e 65 29 0a mms-lyrics-display.(lyric.line).
11e5c0 20 20 22 44 69 73 70 6c 61 79 20 4c 59 52 49 43 20 6e 6f 77 2e 0a 53 65 65 20 60 65 6d 6d 73 2d .."Display.LYRIC.now..See.`emms-
11e5e0 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 5c 5c 3d 27 20 61 lyrics-display-on-modeline\\='.a
11e600 6e 64 0a 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e 69 62 nd.`emms-lyrics-display-on-minib
11e620 75 66 66 65 72 5c 5c 3d 27 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e 66 69 67 20 77 68 65 72 65 uffer\\='.on.how.to.config.where
11e640 20 74 6f 0a 64 69 73 70 6c 61 79 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 .to.display."...(when.emms-lyric
11e660 73 2d 61 6c 69 73 74 0a 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 s-alist.....(when.emms-lyrics-di
11e680 73 70 6c 61 79 2d 6f 6e 2d 6d 6f 64 65 6c 69 6e 65 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 79 splay-on-modeline.......(emms-ly
11e6a0 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 rics-mode-line).......(setq.emms
11e6c0 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 6c 79 72 69 63 29 0a -lyrics-mode-line-string.lyric).
11e6e0 20 20 20 20 20 20 3b 3b 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d ......;;.(setq.emms-lyrics-mode-
11e700 6c 69 6e 65 2d 73 74 72 69 6e 67 20 3b 20 6d 61 6b 65 20 69 74 20 66 69 74 20 73 63 72 6f 6c 6c line-string.;.make.it.fit.scroll
11e720 65 72 20 77 69 64 74 68 0a 20 20 20 20 20 20 3b 3b 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 er.width.......;;.......(concat.
11e740 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 0a 20 20 20 emms-lyrics-mode-line-string....
11e760 20 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 ...;;...............(make-string
11e780 0a 20 20 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 62 73 20 28 2d .......;;................(abs.(-
11e7a0 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 77 69 64 74 68 20 28 6c 65 6e 67 74 .emms-lyrics-scroll-width.(lengt
11e7c0 68 20 6c 79 72 69 63 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 h.lyric))).......;;.............
11e7e0 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 63 68 61 72 20 22 20 22 29 29 29 29 0a 20 20 20 20 20 ...(string-to-char."."))))......
11e800 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 0a 0a 20 20 20 20 .(force-mode-line-update))......
11e820 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 6f 6e 2d 6d 69 6e (when.emms-lyrics-display-on-min
11e840 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 69 6e 69 62 75 66 66 65 ibuffer.......(unless.(minibuffe
11e860 72 2d 77 69 6e 64 6f 77 2d 61 63 74 69 76 65 2d 70 20 28 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 r-window-active-p.(selected-wind
11e880 6f 77 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 6c 79 72 69 63 29 29 29 0a 0a ow)).........(message.lyric)))..
11e8a0 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 2d 62 75 ....(when.emms-lyrics-display-bu
11e8c0 66 66 65 72 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 ffer.......(with-current-buffer.
11e8e0 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e emms-lyrics-buffer.........(when
11e900 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e .line...........(goto-char.(poin
11e920 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 t-min))...........(forward-line.
11e940 28 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 6c 69 6e 65 2d (1-.line))...........(emms-line-
11e960 68 69 67 68 6c 69 67 68 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 highlight))))))..(defun.emms-lyr
11e980 69 63 73 2d 66 69 6e 64 2d 6c 79 72 69 63 20 28 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 ics-find-lyric.(file)..."Return.
11e9a0 66 75 6c 6c 20 70 61 74 68 20 6f 66 20 66 6f 75 6e 64 20 6c 72 63 20 46 49 4c 45 2c 20 6f 72 20 full.path.of.found.lrc.FILE,.or.
11e9c0 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 55 73 65 20 60 65 6d 6d 73 2d 73 6f 75 72 nil.if.not.found..Use.`emms-sour
11e9e0 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 75 6e 63 74 69 6f 6e 5c ce-file-directory-tree-function\
11ea00 5c 3d 27 20 74 6f 20 66 69 6e 64 20 6c 72 63 20 46 49 4c 45 20 75 6e 64 65 72 0a 63 75 72 72 65 \='.to.find.lrc.FILE.under.curre
11ea20 6e 74 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 nt.directory.and.`emms-lyrics-di
11ea40 72 5c 5c 3d 27 2e 0a 65 2e 67 2e 2c 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 66 69 6e 64 2d 6c r\\='..e.g.,.(emms-lyrics-find-l
11ea60 79 72 69 63 20 5c 22 61 62 63 2e 6c 72 63 5c 22 29 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 yric.\"abc.lrc\")"...(let*.((tra
11ea80 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 ck.(emms-playlist-current-select
11eaa0 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 79 72 69 63 2d 75 6e 64 65 72 ed-track))..........(lyric-under
11eac0 2d 63 75 72 72 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 69 6c -curr-dir...........(concat.(fil
11eae0 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 e-name-directory.(emms-track-get
11eb00 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .track.'name))..................
11eb20 20 66 69 6c 65 29 29 29 0a 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 65 71 20 28 65 6d 6d 73 2d .file))).....(or.(and.(eq.(emms-
11eb40 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 20 27 66 69 6c 65 29 0a 20 20 20 20 20 20 20 track-type.track).'file)........
11eb60 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 6c 79 72 69 63 2d 75 6e 64 65 72 ......(file-exists-p.lyric-under
11eb80 2d 63 75 72 72 2d 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 79 72 69 63 2d 75 6e -curr-dir)..............lyric-un
11eba0 64 65 72 2d 63 75 72 72 2d 64 69 72 29 0a 20 20 20 20 20 20 20 20 28 63 61 72 20 28 66 75 6e 63 der-curr-dir).........(car.(func
11ebc0 61 6c 6c 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 all.emms-source-file-directory-t
11ebe0 72 65 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-function....................
11ec00 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...emms-lyrics-dir..............
11ec20 20 20 20 20 20 20 20 20 20 66 69 6c 65 29 29 29 29 29 0a 0a 3b 3b 20 28 73 65 74 71 20 65 6d 6d .........file)))))..;;.(setq.emm
11ec40 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 77 69 64 74 68 20 32 30 29 0a 0a 28 64 65 66 75 s-lyrics-scroll-width.20)..(defu
11ec60 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 20 28 6c 79 72 69 63 20 6e 65 78 74 n.emms-lyrics-scroll.(lyric.next
11ec80 2d 6c 79 72 69 63 20 64 69 66 66 29 0a 20 20 22 53 63 72 6f 6c 6c 20 4c 59 52 49 43 20 74 6f 20 -lyric.diff)..."Scroll.LYRIC.to.
11eca0 6c 65 66 74 20 73 6d 6f 6f 74 68 6c 79 20 69 6e 20 44 49 46 46 20 73 65 63 6f 6e 64 73 2e 0a 44 left.smoothly.in.DIFF.seconds..D
11ecc0 49 46 46 20 69 73 20 74 68 65 20 74 69 6d 65 73 74 61 6d 70 20 64 69 66 66 65 72 65 6e 63 65 73 IFF.is.the.timestamp.differences
11ece0 20 62 65 74 77 65 65 6e 20 63 75 72 72 65 6e 74 20 4c 59 52 49 43 20 61 6e 64 0a 4e 45 58 54 2d .between.current.LYRIC.and.NEXT-
11ed00 4c 59 52 49 43 2e 22 0a 20 20 28 73 65 74 71 20 64 69 66 66 20 28 66 6c 6f 6f 72 20 64 69 66 66 LYRIC."...(setq.diff.(floor.diff
11ed20 29 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 ))...(setq.emms-lyrics-scroll-ti
11ed40 6d 65 72 73 20 27 28 29 29 0a 20 20 28 6c 65 74 20 28 28 73 63 72 6f 6c 6c 65 64 2d 6c 79 72 69 mers.'())...(let.((scrolled-lyri
11ed60 63 20 28 63 6f 6e 63 61 74 20 6c 79 72 69 63 20 22 20 22 20 6e 65 78 74 2d 6c 79 72 69 63 29 29 c.(concat.lyric.".".next-lyric))
11ed80 0a 20 20 20 20 20 20 20 20 28 74 69 6d 65 20 30 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 30 .........(time.0).........(pos.0
11eda0 29 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 28 77 68 69 )).....(catch.'return.......(whi
11edc0 6c 65 20 28 3c 20 74 69 6d 65 20 64 69 66 66 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 le.(<.time.diff).........(setq.e
11ede0 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 72 73 0a 20 20 20 20 20 20 20 mms-lyrics-scroll-timers........
11ee00 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 63 72 6f 6c .......(append.emms-lyrics-scrol
11ee20 6c 2d 74 69 6d 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 l-timers.......................(
11ee40 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e list........................(run
11ee60 2d 61 74 2d 74 69 6d 65 20 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -at-time.time...................
11ee80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 ..................nil...........
11eea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 ..........................#'emms
11eec0 2d 6c 79 72 69 63 73 2d 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -lyrics-display.................
11eee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 28 6c 65 6e ....................(if.(>=.(len
11ef00 67 74 68 20 6c 79 72 69 63 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gth.lyric).pos).................
11ef20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 ........................(substri
11ef40 6e 67 20 73 63 72 6f 6c 6c 65 64 2d 6c 79 72 69 63 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 ng.scrolled-lyric.pos)..........
11ef60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 .............................(th
11ef80 72 6f 77 20 27 72 65 74 75 72 6e 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 row.'return.t)).................
11efa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 ....................nil)))).....
11efc0 20 20 20 20 28 73 65 74 71 20 74 69 6d 65 20 28 2b 20 74 69 6d 65 20 65 6d 6d 73 2d 6c 79 72 69 ....(setq.time.(+.time.emms-lyri
11efe0 63 73 2d 73 63 72 6f 6c 6c 2d 74 69 6d 65 72 2d 69 6e 74 65 72 76 61 6c 29 29 0a 20 20 20 20 20 cs-scroll-timer-interval))......
11f000 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 31 2b 20 70 6f 73 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b ...(setq.pos.(1+.pos))))))....;;
11f020 3b 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 ;.emms-lyrics-mode..(defvar.emms
11f040 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d -lyrics-mode-map...(let.((map.(m
11f060 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ake-sparse-keymap))).....(define
11f080 2d 6b 65 79 20 6d 61 70 20 22 70 22 20 23 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 72 65 76 69 -key.map."p".#'emms-lyrics-previ
11f0a0 6f 75 73 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 6e ous-line).....(define-key.map."n
11f0c0 22 20 23 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 ".#'emms-lyrics-next-line).....(
11f0e0 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 69 22 20 23 27 65 6d 6d 73 2d 6c 79 72 69 63 73 define-key.map."i".#'emms-lyrics
11f100 2d 69 6e 73 65 72 74 2d 74 69 6d 65 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 -insert-time).....map)..."Keymap
11f120 20 66 6f 72 20 60 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 5c 5c 3d 27 2e 22 29 0a 0a 28 .for.`emms-lyrics-mode\\='.")..(
11f140 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 72 65 6d 2a 20 28 78 20 79 29 0a 20 20 22 defun.emms-lyrics-rem*.(x.y)..."
11f160 54 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 58 20 64 69 76 69 64 65 64 20 62 79 20 59 2c The.remainder.of.X.divided.by.Y,
11f180 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 73 69 67 6e 20 61 73 20 58 2e 22 0a 20 20 28 6c 65 .with.the.same.sign.as.X."...(le
11f1a0 74 2a 20 28 28 71 20 28 66 6c 6f 6f 72 20 78 20 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 t*.((q.(floor.x.y))..........(re
11f1c0 6d 20 28 2d 20 78 20 28 2a 20 79 20 71 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 72 65 6d m.(-.x.(*.y.q)))).....(if.(=.rem
11f1e0 20 30 29 0a 20 20 20 20 20 20 20 20 30 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 3e 3d 20 .0).........0.......(if.(eq.(>=.
11f200 78 20 30 29 20 28 3e 3d 20 79 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 72 65 6d 0a 20 20 20 x.0).(>=.y.0))...........rem....
11f220 20 20 20 20 20 28 2d 20 72 65 6d 20 79 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d .....(-.rem.y)))))..(defun.emms-
11f240 6c 79 72 69 63 73 2d 69 6e 73 65 72 74 2d 74 69 6d 65 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 lyrics-insert-time.()..."Insert.
11f260 6c 79 72 69 63 20 74 69 6d 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 3a 20 5b 30 31 3a 32 33 2e 32 lyric.time.in.the.form:.[01:23.2
11f280 31 5d 2c 20 74 68 65 6e 20 67 6f 74 6f 20 74 68 65 0a 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 1],.then.goto.the.beginning.of.n
11f2a0 65 78 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 ext.line."...(interactive)...(le
11f2c0 74 2a 20 28 28 74 6f 74 61 6c 20 28 2b 20 28 66 6c 6f 61 74 2d 74 69 6d 65 0a 09 09 20 20 20 20 t*.((total.(+.(float-time.......
11f2e0 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 0a 09 09 (time-subtract.(current-time)...
11f300 09 09 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 73 74 61 72 74 2d 74 69 6d 65 29 29 0a 09 09 .....emms-lyrics-start-time))...
11f320 20 20 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 65 6c 61 70 73 65 64 2d 74 69 6d 65 29 29 0a 09 20 ...emms-lyrics-elapsed-time))...
11f340 28 6d 69 6e 20 28 2f 20 28 2a 20 28 66 6c 6f 6f 72 20 28 2f 20 74 6f 74 61 6c 20 36 30 29 29 20 (min.(/.(*.(floor.(/.total.60)).
11f360 31 30 30 29 20 31 30 30 29 29 0a 09 20 28 73 65 63 20 28 2f 20 28 66 6c 6f 6f 72 20 28 2a 20 28 100).100))...(sec.(/.(floor.(*.(
11f380 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 72 65 6d 2a 20 74 6f 74 61 6c 20 36 30 29 20 31 30 30 29 29 emms-lyrics-rem*.total.60).100))
11f3a0 20 31 30 30 2e 30 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 72 65 70 6c .100.0))).....(insert.(emms-repl
11f3c0 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 09 20 20 20 20 20 22 20 22 20 22 ace-regexp-in-string......."."."
11f3e0 30 22 20 28 66 6f 72 6d 61 74 20 22 5b 25 32 64 3a 25 32 64 5d 22 20 6d 69 6e 20 73 65 63 29 29 0".(format."[%2d:%2d]".min.sec))
11f400 29 29 0a 20 20 28 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6e 65 78 74 2d 6c 69 6e 65 29 29 0a 0a 28 ))...(emms-lyrics-next-line))..(
11f420 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6e 65 78 74 2d 6c 69 6e 65 20 28 29 0a 20 defun.emms-lyrics-next-line.()..
11f440 20 22 47 6f 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 65 78 74 20 6c 69 6e ."Goto.the.beginning.of.next.lin
11f460 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 6f 72 77 61 72 64 2d 6c e."...(interactive)...(forward-l
11f480 69 6e 65 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 70 72 65 76 ine.1))..(defun.emms-lyrics-prev
11f4a0 69 6f 75 73 2d 6c 69 6e 65 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 ious-line.()..."Goto.the.beginni
11f4c0 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ng.of.previous.line."...(interac
11f4e0 74 69 76 65 29 0a 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 0a 28 64 65 66 tive)...(forward-line.-1))..(def
11f500 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 ine-derived-mode.emms-lyrics-mod
11f520 65 20 6e 69 6c 20 22 45 6d 6d 73 20 4c 79 72 69 63 22 0a 20 20 22 4d 61 6a 6f 72 20 6d 6f 64 65 e.nil."Emms.Lyric"..."Major.mode
11f540 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 6c 79 72 69 63 20 66 69 6c 65 73 2e 0a 5c 5c 7b 65 6d .for.creating.lyric.files..\\{em
11f560 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b ms-lyrics-mode-map}"...(run-hook
11f580 73 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6d 6f 64 65 2d 68 6f 6f 6b 29 29 0a 0a 28 70 72 6f s.'emms-lyrics-mode-hook))..(pro
11f5a0 76 69 64 65 20 27 65 6d 6d 73 2d 6c 79 72 69 63 73 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 6c 79 72 vide.'emms-lyrics)..;;;.emms-lyr
11f5c0 69 63 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ics.el.ends.here................
11f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 2e 65 6c 00 00 00 emms-24/emms-info-opusinfo.el...
11f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
11f680 30 30 30 36 30 37 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 36 35 00 20 30 00 00 00 0006075.00000000000.014765..0...
11f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
11f720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
11f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f800 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 2e 65 6c 20 2d 2d 2d 20 45 6d ;;;.emms-info-opusinfo.el.---.Em
11f820 6d 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 4f 67 67 20 4f 70 75 73 20 66 69 6c ms.information.from.Ogg.Opus.fil
11f840 65 73 2e 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a es..-*-.lexical-binding:.t;.-*-.
11f860 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 38 2d 32 30 32 31 20 46 72 65 65 .;;.Copyright.(C).2018-2021.Free
11f880 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 .Software.Foundation,.Inc...;;.A
11f8a0 75 74 68 6f 72 3a 20 50 69 65 72 72 65 20 4e 65 69 64 68 61 72 64 74 20 3c 6d 61 69 6c 40 61 6d uthor:.Pierre.Neidhardt.<mail@am
11f8c0 62 72 65 76 61 72 2e 78 79 7a 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 brevar.xyz>..;;.This.file.is.par
11f8e0 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 t.of.EMMS...;;.EMMS.is.free.soft
11f900 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e ware;.you.can.redistribute.it.an
11f920 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d d/or.modify.it.;;.under.the.term
11f940 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
11f960 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 nse.as.published.by.;;.the.Free.
11f980 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 Software.Foundation;.either.vers
11f9a0 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 ion.3.of.the.License,.or.;;.(at.
11f9c0 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a your.option).any.later.version..
11f9e0 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 .;;.EMMS.is.distributed.in.the.h
11fa00 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 ope.that.it.will.be.useful,.;;.b
11fa20 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 ut.WITHOUT.ANY.WARRANTY;.without
11fa40 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b .even.the.implied.warranty.of.;;
11fa60 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 .MERCHANTABILITY.or.FITNESS.FOR.
11fa80 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b A.PARTICULAR.PURPOSE...See.the.;
11faa0 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 ;.GNU.General.Public.License.for
11fac0 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 .more.details...;;.You.should.ha
11fae0 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 ve.received.a.copy.of.the.GNU.Ge
11fb00 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 neral.Public.License.;;.along.wi
11fb20 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 th.EMMS;.if.not,.write.to.the.Fr
11fb40 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c ee.Software.Foundation,.;;.Inc.,
11fb60 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f .51.Franklin.St,.Fifth.Floor,.Bo
11fb80 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 ston,.MA.02110-1301,.USA...;;;.C
11fba0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 ommentary:.;;..;;;.Code:..(requi
11fbc0 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 69 re.'emms-info)..(defgroup.emms-i
11fbe0 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 20 6e 69 6c 0a 20 20 22 41 6e 20 45 4d 4d 53 2d 69 6e 66 6f nfo-opusinfo.nil..."An.EMMS-info
11fc00 20 6d 65 74 68 6f 64 20 66 6f 72 20 67 65 74 74 69 6e 67 2c 20 75 73 69 6e 67 20 74 68 65 20 65 .method.for.getting,.using.the.e
11fc20 78 74 65 72 6e 61 6c 20 6f 70 75 73 69 6e 66 6f 0a 70 72 6f 67 72 61 6d 22 0a 20 20 3a 67 72 6f xternal.opusinfo.program"...:gro
11fc40 75 70 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d up.'emms-info)..(defcustom.emms-
11fc60 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 75 74 66 info-opusinfo-coding-system.'utf
11fc80 2d 38 0a 20 20 22 43 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 75 73 65 64 20 69 6e 20 74 68 65 20 -8..."Coding.system.used.in.the.
11fca0 6f 75 74 70 75 74 20 6f 66 20 6f 70 75 73 69 6e 66 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 63 6f output.of.opusinfo."...:type.'co
11fcc0 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 69 6e ding-system)..(defcustom.emms-in
11fce0 66 6f 2d 6f 70 75 73 69 6e 66 6f 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 20 22 6f 70 75 73 69 6e fo-opusinfo-program-name."opusin
11fd00 66 6f 22 0a 20 20 22 54 68 65 20 6e 61 6d 65 2f 70 61 74 68 20 6f 66 20 74 68 65 20 6f 70 75 73 fo"..."The.name/path.of.the.opus
11fd20 69 6e 66 6f 20 74 61 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 info.tag.program."...:type.'stri
11fd40 6e 67 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 20 28 ng)..(defun.emms-info-opusinfo.(
11fd60 74 72 61 63 6b 29 0a 20 20 22 41 64 64 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 track)..."Add.track.information.
11fd80 74 6f 20 54 52 41 43 4b 2e 0a 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 6c 20 65 6c 65 6d 65 to.TRACK..This.is.a.useful.eleme
11fda0 6e 74 20 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 nt.for.`emms-info-functions'."..
11fdc0 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 .(when.(and.(emms-track-file-p.t
11fde0 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 6d rack)..............(or.(string-m
11fe00 61 74 63 68 20 22 5c 5c 2e 5b 4f 6f 5d 5b 47 67 5d 5b 47 67 5d 5c 5c 27 22 20 28 65 6d 6d 73 2d atch."\\.[Oo][Gg][Gg]\\'".(emms-
11fe20 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 track-name.track))..............
11fe40 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 5b 4f 6f 5d 5b 50 70 5d 5b 55 ....(string-match."\\.[Oo][Pp][U
11fe60 75 5d 5b 53 73 5d 5c 5c 27 22 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 u][Ss]\\'".(emms-track-name.trac
11fe80 6b 29 29 29 29 0a 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 k))))......(with-temp-buffer....
11fea0 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 ...(call-process.emms-info-opusi
11fec0 6e 66 6f 2d 70 72 6f 67 72 61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nfo-program-name................
11fee0 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 .....nil.t.nil.(emms-track-name.
11ff00 74 72 61 63 6b 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 70 6c 61 79 20 74 69 6d 65 0a 20 20 20 20 track))........;;.play.time.....
11ff20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 ..(goto-char.(point-min)).......
11ff40 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 (when.(re-search-forward........
11ff60 20 20 20 20 20 20 22 50 6c 61 79 62 61 63 6b 20 6c 65 6e 67 74 68 3a 20 5c 5c 28 5b 30 2d 39 5d ......"Playback.length:.\\([0-9]
11ff80 2a 5c 5c 29 6d 3a 5c 5c 28 5b 30 2d 39 5d 2a 5c 5c 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 *\\)m:\\([0-9]*\\)".nil.t)......
11ffa0 20 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 75 74 65 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 ...(let*.((minutes.(string-to-nu
11ffc0 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 mber.(match-string.1))).........
11ffe0 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 .......(seconds.(string-to-numbe
120000 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 r.(match-string.2)))............
120020 20 20 20 20 28 70 74 69 6d 65 2d 74 6f 74 61 6c 20 28 2b 20 28 2a 20 6d 69 6e 75 74 65 73 20 36 ....(ptime-total.(+.(*.minutes.6
120040 30 29 20 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 74 69 0).seconds))................(pti
120060 6d 65 2d 6d 69 6e 20 6d 69 6e 75 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 me-min.minutes)................(
120080 70 74 69 6d 65 2d 73 65 63 20 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 ptime-sec.seconds))...........(e
1200a0 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e mms-track-set.track.'info-playin
1200c0 67 2d 74 69 6d 65 20 70 74 69 6d 65 2d 74 6f 74 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 g-time.ptime-total)...........(e
1200e0 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 69 6e mms-track-set.track.'info-playin
120100 67 2d 74 69 6d 65 2d 6d 69 6e 20 70 74 69 6d 65 2d 6d 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 g-time-min.ptime-min)...........
120120 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c 61 79 (emms-track-set.track.'info-play
120140 69 6e 67 2d 74 69 6d 65 2d 73 65 63 20 70 74 69 6d 65 2d 73 65 63 29 0a 20 20 20 20 20 20 20 20 ing-time-sec.ptime-sec).........
120160 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 66 69 ..(emms-track-set.track.'info-fi
120180 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 0a 0a 20 le.(emms-track-name.track))))...
1201a0 20 20 20 20 20 3b 3b 20 61 6c 6c 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 69 6e 66 6f .....;;.all.the.rest.of.the.info
1201c0 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 .available.......(goto-char.(poi
1201e0 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d nt-min)).......(when.(re-search-
120200 66 6f 72 77 61 72 64 20 22 5e 2e 2a 5c 5c 2e 5c 5c 2e 5c 5c 2e 24 22 20 28 70 6f 69 6e 74 2d 6d forward."^.*\\.\\.\\.$".(point-m
120220 61 78 29 20 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 7a 65 72 6f 70 20 28 66 6f ax).t).........(while.(zerop.(fo
120240 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 rward-line.1))...........(when.(
120260 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5c 74 5c 5c 28 2e 2a 3f 5c 5c 29 3d 5c 5c 28 2e 2a 5c 5c looking-at."^\t\\(.*?\\)=\\(.*\\
120280 29 24 22 29 20 3b 20 72 65 63 6f 67 6e 69 7a 65 20 74 68 65 20 66 69 72 73 74 20 27 3d 27 0a 20 )$").;.recognize.the.first.'='..
1202a0 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ...........(let.((a.(match-strin
1202c0 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 20 28 6d 61 74 63 g.1))...................(b.(matc
1202e0 68 2d 73 74 72 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 h-string.2)))...............(whe
120300 6e 20 28 61 6e 64 20 28 3c 20 30 20 28 6c 65 6e 67 74 68 20 61 29 29 0a 20 20 20 20 20 20 20 20 n.(and.(<.0.(length.a)).........
120320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 30 20 28 6c 65 6e 67 74 68 20 62 29 .................(<.0.(length.b)
120340 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 )).................(emms-track-s
120360 65 74 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.track........................
120380 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 28 64 6f 77 6e 63 61 73 65 20 28 63 6f 6e 63 .........(intern.(downcase.(conc
1203a0 61 74 20 22 69 6e 66 6f 2d 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 29 0a 20 at."info-".(match-string.1))))..
1203c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
1203e0 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 match-string.2))))))))))..(provi
120400 64 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 29 0a 0a 3b 3b 3b 20 65 6d 6d de.'emms-info-opusinfo)..;;;.emm
120420 73 2d 69 6e 66 6f 2d 6f 70 75 73 69 6e 66 6f 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 s-info-opusinfo.el.ends.here....
120440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1204a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1204c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1204e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1205a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1205c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1205e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2e 65 6c 00 00 00 00 00 00 00 00 emms-24/emms-show-all.el........
120620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
120680 30 30 30 37 36 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 32 31 00 20 30 00 00 00 0007660.00000000000.013721..0...
1206a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1206c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1206e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
120720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
120740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1207a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1207c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1207e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120800 3b 3b 3b 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2e 65 6c 20 2d 2d 2d 20 44 65 74 61 69 6c 65 ;;;.emms-show-all.el.---.Detaile
120820 64 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 45 6d 6d 73 2e 20 20 2d d.track.information.for.Emms...-
120840 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 *-.lexical-binding:.t;.-*-..;;.C
120860 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 36 2d 32 30 32 31 2c 20 32 30 32 35 20 20 46 72 opyright.(C).2016-2021,.2025..Fr
120880 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b ee.Software.Foundation,.Inc...;;
1208a0 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 .Author:.Yoni.Rabkin.<yrk@gnu.or
1208c0 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 g>..;;.This.file.is.part.of.EMMS
1208e0 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 ...;;.EMMS.is.free.software;.you
120900 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 .can.redistribute.it.and/or.modi
120920 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 fy.;;.it.under.the.terms.of.the.
120940 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 GNU.General.Public.License.as.pu
120960 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 blished.by.;;.the.Free.Software.
120980 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 Foundation;.either.version.3,.or
1209a0 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 .(at.your.option).;;.any.later.v
1209c0 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 ersion..;;.;;.EMMS.is.distribute
1209e0 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 d.in.the.hope.that.it.will.be.us
120a00 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 eful,.;;.but.WITHOUT.ANY.WARRANT
120a20 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 Y;.without.even.the.implied.warr
120a40 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 anty.of.;;.MERCHANTABILITY.or.FI
120a60 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 TNESS.FOR.A.PARTICULAR.PURPOSE..
120a80 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c .See.the.;;.GNU.General.Public.L
120aa0 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 icense.for.more.details..;;.;;.Y
120ac0 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f ou.should.have.received.a.copy.o
120ae0 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
120b00 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 .;;.along.with.EMMS;.if.not,.wri
120b20 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 te.to.the.Free.Software.Foundati
120b40 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 on,.;;.Inc.,.51.Franklin.St,.Fif
120b60 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c th.Floor,.Boston,.MA.02110-1301,
120b80 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 53 68 6f .USA...;;;.Commentary:.;;.;;.Sho
120ba0 77 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 66 6f 72 6d 61 74 ws.all.of.the.available.informat
120bc0 69 6f 6e 20 45 6d 6d 73 20 63 61 6e 20 70 72 6f 76 69 64 65 20 6f 6e 20 74 68 65 0a 3b 3b 20 63 ion.Emms.can.provide.on.the.;;.c
120be0 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 2e 20 42 61 73 65 64 20 6f 6e urrently.playing.track..Based.on
120c00 20 61 6e 20 69 64 65 61 20 73 75 67 67 65 73 74 65 64 20 6f 6e 20 74 68 65 0a 3b 3b 20 65 6d 6d .an.idea.suggested.on.the.;;.emm
120c20 73 2d 68 65 6c 70 20 6d 61 69 6c 69 6e 67 20 6c 69 73 74 20 62 79 20 49 76 61 6e 20 54 72 75 73 s-help.mailing.list.by.Ivan.Trus
120c40 6b 6f 76 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 kov...;;;.Code:..(require.'emms)
120c60 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 29 0a 0a 0a 28 64 .(require.'emms-tag-editor)...(d
120c80 65 66 76 61 72 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 efvar.emms-show-all-buffer-name.
120ca0 22 45 6d 6d 73 20 54 72 61 63 6b 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 22 0a 20 20 22 4e 61 6d 65 "Emms.Track.Information"..."Name
120cc0 20 6f 66 20 62 75 66 66 65 72 20 75 73 65 64 20 62 79 20 60 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c .of.buffer.used.by.`emms-show-al
120ce0 6c 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6b 69 6c l'.")..(defvar.emms-show-all-kil
120d00 6c 2d 62 75 66 66 65 72 2d 6f 6e 2d 71 75 69 74 2d 70 20 6e 69 6c 0a 20 20 22 49 66 20 74 2c 20 l-buffer-on-quit-p.nil..."If.t,.
120d20 6b 69 6c 6c 20 74 68 65 20 73 68 6f 77 2d 61 6c 6c 20 62 75 66 66 65 72 20 77 68 65 6e 20 71 75 kill.the.show-all.buffer.when.qu
120d40 69 74 74 69 6e 67 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c itting.")..(defvar.emms-show-all
120d60 2d 74 72 61 63 6b 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 44 65 63 6c 61 72 65 20 73 6f 20 61 -track-alist.nil..."Declare.so.a
120d80 73 20 74 6f 20 73 69 6c 65 6e 63 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 2e 22 29 0a 0a 28 64 s.to.silence.the.compiler.")..(d
120da0 65 66 76 61 72 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 efvar.emms-show-all-mode-map...(
120dc0 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 let.((map.(make-sparse-keymap)))
120de0 0a 20 20 20 20 28 73 65 74 2d 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 6d 61 70 20 74 65 78 74 .....(set-keymap-parent.map.text
120e00 2d 6d 6f 64 65 2d 6d 61 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 -mode-map).....(define-key.map.(
120e20 6b 62 64 20 22 71 22 29 20 23 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 2d 62 75 kbd."q").#'emms-show-all-mode-bu
120e40 72 79 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ry-buffer).....(define-key.map.(
120e60 6b 62 64 20 22 45 22 29 20 23 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 65 64 69 74 2d 74 72 kbd."E").#'emms-show-all-edit-tr
120e80 61 63 6b 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 65 6d 6d ack).....map)..."Keymap.for.`emm
120ea0 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 s-show-all-mode'.")..(define-der
120ec0 69 76 65 64 2d 6d 6f 64 65 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 20 74 65 78 ived-mode.emms-show-all-mode.tex
120ee0 74 2d 6d 6f 64 65 20 22 45 6d 6d 73 2d 53 68 6f 77 2d 41 6c 6c 22 0a 20 20 22 4d 61 6a 6f 72 20 t-mode."Emms-Show-All"..."Major.
120f00 6d 6f 64 65 20 66 6f 72 20 60 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 27 0a 20 20 5c 5c 7b 65 6d mode.for.`emms-show-all'...\\{em
120f20 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 2d 6d 61 70 7d 22 29 0a 0a 28 64 65 66 75 6e 20 ms-show-all-mode-map}")..(defun.
120f40 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 65 64 69 74 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 45 emms-show-all-edit-track.()..."E
120f60 64 69 74 20 74 68 65 20 74 72 61 63 6b 20 62 65 69 6e 67 20 73 68 6f 77 6e 2e 22 0a 20 20 28 69 dit.the.track.being.shown."...(i
120f80 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 65 6d 6d 73 2d nteractive)...(let.((track.emms-
120fa0 73 68 6f 77 2d 61 6c 6c 2d 74 72 61 63 6b 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 show-all-track-alist)).....(emms
120fc0 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 2d 62 75 72 79 2d 62 75 66 66 65 72 29 0a 20 20 20 20 -show-all-mode-bury-buffer).....
120fe0 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 74 72 61 63 6b 20 74 72 61 63 (emms-tag-editor-edit-track.trac
121000 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 2d k)))..(defun.emms-show-all-mode-
121020 62 75 72 79 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 42 75 72 79 2c 20 61 6e 64 20 6f 70 74 69 bury-buffer.()..."Bury,.and.opti
121040 6f 6e 61 6c 6c 79 20 6b 69 6c 6c 20 74 68 65 20 73 68 6f 77 20 62 75 66 66 65 72 2e 22 0a 20 20 onally.kill.the.show.buffer."...
121060 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 71 75 69 74 2d 72 65 73 74 6f 72 65 2d 77 69 (interactive)...(quit-restore-wi
121080 6e 64 6f 77 0a 20 20 20 28 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 0a 20 20 20 28 77 68 ndow....(selected-window)....(wh
1210a0 65 6e 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 2d 6f 6e 2d en.emms-show-all-kill-buffer-on-
1210c0 71 75 69 74 2d 70 20 27 6b 69 6c 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 6f quit-p.'kill)))..(defun.emms-sho
1210e0 77 2d 61 6c 6c 2d 73 65 74 75 70 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 50 72 65 70 61 72 65 w-all-setup-buffer.()..."Prepare
121100 20 74 68 65 20 64 69 73 70 6c 61 79 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 .the.display.buffer."...(let.((b
121120 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 73 68 uffer.(get-buffer-create.emms-sh
121140 6f 77 2d 61 6c 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d ow-all-buffer-name))).....(with-
121160 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 current-buffer.buffer.......(whe
121180 6e 20 28 6e 6f 74 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 70 20 27 65 6d 6d 73 2d 73 n.(not.(local-variable-p.'emms-s
1211a0 68 6f 77 2d 61 6c 6c 2d 74 72 61 63 6b 2d 61 6c 69 73 74 29 29 0a 09 28 6d 61 6b 65 2d 6c 6f 63 how-all-track-alist))..(make-loc
1211c0 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 74 72 61 63 6b al-variable.'emms-show-all-track
1211e0 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 -alist)).......(setq.buffer-read
121200 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c -only.t).......(when.(not.(equal
121220 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 29 .major-mode.'emms-show-all-mode)
121240 29 0a 09 28 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 28 )..(emms-show-all-mode)).......(
121260 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 09 28 65 72 let.((inhibit-read-only.t))..(er
121280 61 73 65 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 ase-buffer))).....buffer))..(def
1212a0 75 6e 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 66 6f 72 6d 61 74 20 28 74 72 61 63 6b 29 0a un.emms-show-all-format.(track).
1212c0 20 20 22 46 6f 72 6d 61 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 54 52 41 43 4b 2e .."Format.information.for.TRACK.
1212e0 22 0a 20 20 28 6c 65 74 20 28 28 73 20 22 22 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 "...(let.((s."")).....(dolist.(e
121300 20 28 6d 61 70 63 61 72 20 23 27 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 09 09 09 20 20 20 28 .(mapcar.#'(lambda.(tag).......(
121320 63 6f 6e 73 0a 09 09 09 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 28 63 61 72 20 74 61 cons........(format."%s".(car.ta
121340 67 29 29 0a 09 09 09 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 g))........(or.(emms-track-get.t
121360 72 61 63 6b 20 28 63 61 72 20 74 61 67 29 29 20 22 22 29 29 29 0a 09 09 20 20 20 20 20 20 20 65 rack.(car.tag))."")))..........e
121380 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 mms-tag-editor-tags)).......(set
1213a0 71 20 73 20 28 63 6f 6e 63 61 74 20 73 20 28 66 6f 72 6d 61 74 20 22 25 2d 31 37 73 3a 20 25 73 q.s.(concat.s.(format."%-17s:.%s
1213c0 5c 6e 22 20 28 63 61 72 20 65 29 20 28 63 64 72 20 65 29 29 29 29 29 0a 20 20 20 20 73 29 29 0a \n".(car.e).(cdr.e))))).....s)).
1213e0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 69 6e 73 65 72 74 20 28 74 72 .(defun.emms-show-all-insert.(tr
121400 61 63 6b 29 0a 20 20 22 49 6e 73 65 72 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 54 ack)..."Insert.information.for.T
121420 52 41 43 4b 20 69 6e 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 RACK.in.current.buffer."...(let.
121440 28 28 74 79 70 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 29 29 ((type.(emms-track-type.track)))
121460 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 27 66 69 6c 65 20 74 79 70 65 29 0a 09 20 20 20 .....(cond.((eq.'file.type).....
121480 28 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 66 6f 72 6d 61 74 20 74 72 (insert.(emms-show-all-format.tr
1214a0 61 63 6b 29 29 29 0a 09 20 20 28 28 65 71 20 27 75 72 6c 20 74 79 70 65 29 0a 09 20 20 20 28 69 ack)))....((eq.'url.type).....(i
1214c0 6e 73 65 72 74 0a 09 20 20 20 20 28 65 6d 6d 73 2d 66 6f 72 6d 61 74 2d 75 72 6c 2d 74 72 61 63 nsert......(emms-format-url-trac
1214e0 6b 2d 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 k-name.(emms-track-name.track)))
121500 29 0a 09 20 20 28 74 20 28 69 6e 73 65 72 74 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 6f 6c 2d )....(t.(insert.(concat.(symbol-
121520 6e 61 6d 65 20 74 79 70 65 29 0a 09 09 09 20 20 20 20 20 22 3a 20 22 20 28 65 6d 6d 73 2d 74 72 name.type).........":.".(emms-tr
121540 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ack-name.track)))))))..(defun.em
121560 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 29 0a 20 20 22 44 69 73 ms-show-all-track.(track)..."Dis
121580 70 6c 61 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 54 52 41 43 4b 2e 22 0a 20 20 28 play.information.for.TRACK."...(
1215a0 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 73 65 74 75 let.((buffer.(emms-show-all-setu
1215c0 70 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 p-buffer))).....(with-current-bu
1215e0 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 ffer.buffer.......(let.((inhibit
121600 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 73 68 6f 77 2d -read-only.t))..(setq.emms-show-
121620 61 6c 6c 2d 74 72 61 63 6b 2d 61 6c 69 73 74 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 09 28 65 all-track-alist.track)........(e
121640 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 69 6e 73 65 72 74 20 74 72 61 63 6b 29 29 0a 20 20 20 20 mms-show-all-insert.track)).....
121660 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ..(pop-to-buffer.(current-buffer
121680 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 20 28 29 0a 20 )))))..(defun.emms-show-all.()..
1216a0 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 74 72 61 63 ."Describe.the.current.EMMS.trac
1216c0 6b 20 69 6e 20 64 65 74 61 69 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 k.in.detail."...(interactive)...
1216e0 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 20 20 (if.emms-player-playing-p.......
121700 28 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 28 65 6d 6d (emms-show-all-track........(emm
121720 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 s-playlist-current-selected-trac
121740 6b 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 6e 6f 74 68 69 6e 67 20 70 6c 61 79 69 6e k)).....(message."nothing.playin
121760 67 20 72 69 67 68 74 20 6e 6f 77 22 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 g.right.now")))...(provide.'emms
121780 2d 73 68 6f 77 2d 61 6c 6c 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f -show-all)..;;;.emms-playlist-mo
1217a0 64 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 de.el.ends.here.................
1217c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1217e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 00 00 00 emms-24/emms-playlist-mode.el...
121820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
121880 30 30 36 30 31 33 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 35 32 00 20 30 00 00 00 0060135.00000000000.014752..0...
1218a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1218c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1218e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
121920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
121940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1219a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1219c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1219e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121a00 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 20 2d 2d 2d 20 50 6c ;;;.emms-playlist-mode.el.---.Pl
121a20 61 79 6c 69 73 74 20 6d 6f 64 65 20 66 6f 72 20 45 6d 6d 73 2e 20 20 2d 2a 2d 20 6c 65 78 69 63 aylist.mode.for.Emms...-*-.lexic
121a40 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 al-binding:.t;.-*-..;;.Copyright
121a60 20 28 43 29 20 32 30 30 35 2d 32 30 32 34 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f .(C).2005-2024..Free.Software.Fo
121a80 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 undation,.Inc...;;.Author:.Yoni.
121aa0 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 Rabkin.<yrk@gnu.org>..;;.This.fi
121ac0 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 le.is.part.of.EMMS...;;.EMMS.is.
121ae0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
121b00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 ute.it.and/or.modify.;;.it.under
121b20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
121b40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 blic.License.as.published.by.;;.
121b60 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 the.Free.Software.Foundation;.ei
121b80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.3,.or.(at.your.opti
121ba0 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).;;.any.later.version..;;.;;.
121bc0 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 EMMS.is.distributed.in.the.hope.
121be0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 that.it.will.be.useful,.;;.but.W
121c00 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 ITHOUT.ANY.WARRANTY;.without.eve
121c20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 n.the.implied.warranty.of.;;.MER
121c40 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 CHANTABILITY.or.FITNESS.FOR.A.PA
121c60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e RTICULAR.PURPOSE...See.the.;;.GN
121c80 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 U.General.Public.License.for.mor
121ca0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
121cc0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
121ce0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
121d00 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 .EMMS;.if.not,.write.to.the.Free
121d20 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 .Software.Foundation,.;;.Inc.,.5
121d40 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 1.Franklin.St,.Fifth.Floor,.Bost
121d60 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d on,.MA.02110-1301,.USA...;;;.Com
121d80 6d 65 6e 74 61 72 79 3a 0a 3b 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 61 20 6d 65 74 68 6f 64 mentary:.;;;.;;.This.is.a.method
121da0 20 6f 66 20 64 69 73 70 6c 61 79 69 6e 67 20 61 6e 64 20 6d 61 6e 69 70 75 6c 61 74 69 6e 67 20 .of.displaying.and.manipulating.
121dc0 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 45 6d 6d 73 0a 3b 3b 20 70 6c 61 79 6c 69 73 74 20 62 the.different.Emms.;;.playlist.b
121de0 75 66 66 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 45 6d 6d 73 20 64 65 76 65 6c 6f 70 65 72 27 73 20 6d uffers..;;.;;.Emms.developer's.m
121e00 6f 74 74 6f 3a 20 22 57 68 65 6e 20 66 6f 72 63 65 72 20 73 61 79 73 20 28 72 65 71 75 69 72 65 otto:."When.forcer.says.(require
121e20 20 27 6a 75 6d 70 29 20 77 65 20 73 61 79 0a 3b 3b 20 28 66 75 6e 63 61 6c 6c 20 23 27 6a 75 6d .'jump).we.say.;;.(funcall.#'jum
121e40 70 20 68 65 69 67 68 74 29 22 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d p.height)"..;;;.Code:...;;;.----
121e60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
121e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 56 61 72 69 61 62 6c --------------------.;;;.Variabl
121ea0 65 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d es.;;;.-------------------------
121ec0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
121ee0 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 (require.'emms).(condition-case.
121f00 6e 69 6c 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 6f 76 65 72 6c 61 79 29 0a 20 20 28 65 72 nil.....(require.'overlay)...(er
121f20 72 6f 72 20 6e 69 6c 29 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d ror.nil)).(require.'emms-source-
121f40 70 6c 61 79 6c 69 73 74 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 playlist)..(defvar.emms-playlist
121f60 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 -mode-hook.nil..."Emms.playlist.
121f80 6d 6f 64 65 20 68 6f 6f 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c mode.hook.")..(defvar.emms-playl
121fa0 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 20 6e 69 6c 0a 20 20 ist-mode-selected-overlay.nil...
121fc0 22 4c 61 73 74 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 20 20 55 73 65 20 66 6f 72 20 75 "Last.selected.track...Use.for.u
121fe0 70 64 61 74 69 6e 67 20 74 68 65 20 64 69 73 70 6c 61 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 pdating.the.display.")..(defvar.
122000 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 77 69 74 63 68 65 64 2d 62 75 66 66 emms-playlist-mode-switched-buff
122020 65 72 20 6e 69 6c 0a 20 20 22 4c 61 73 74 20 62 75 66 66 65 72 20 76 69 73 69 74 65 64 20 62 65 er.nil..."Last.buffer.visited.be
122040 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 fore.calling.`emms-playlist-mode
122060 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 -switch-buffer'.")..(defvar.emms
122080 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6f 70 75 70 2d 65 6e 61 62 6c 65 64 20 6e 69 6c -playlist-mode-popup-enabled.nil
1220a0 0a 20 20 22 54 72 75 65 20 77 68 65 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 77 61 73 20 63 ..."True.when.the.playlist.was.c
1220c0 61 6c 6c 65 64 20 61 73 20 61 20 70 6f 70 75 70 20 77 69 6e 64 6f 77 2e 22 29 0a 0a 28 64 65 66 alled.as.a.popup.window.")..(def
1220e0 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 77 68 6f 6c var.emms-playlist-mode-kill-whol
122100 65 2d 6c 69 6e 65 2d 70 20 74 0a 20 20 22 57 68 65 6e 20 74 72 75 65 20 6c 69 6e 65 20 6b 69 6c e-line-p.t..."When.true.line.kil
122120 6c 73 20 62 65 68 61 76 65 20 6c 69 6b 65 20 61 20 74 79 70 69 63 61 6c 20 6d 75 73 69 63 20 70 ls.behave.like.a.typical.music.p
122140 6c 61 79 65 72 2e 22 29 0a 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d layer.")..(make-variable-buffer-
122160 6c 6f 63 61 6c 0a 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 local..'emms-playlist-mode-selec
122180 74 65 64 2d 6f 76 65 72 6c 61 79 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 ted-overlay)..(defgroup.emms-pla
1221a0 79 6c 69 73 74 2d 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 2a 54 68 65 20 45 6d 61 63 73 20 4d 75 6c ylist-mode.nil..."*The.Emacs.Mul
1221c0 74 69 6d 65 64 69 61 20 53 79 73 74 65 6d 20 70 6c 61 79 6c 69 73 74 20 6d 6f 64 65 2e 22 0a 20 timedia.System.playlist.mode."..
1221e0 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 22 0a 20 .:prefix."emms-playlist-mode-"..
122200 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d .:group.'emms)..(defcustom.emms-
122220 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6f 70 65 6e 2d 70 6c 61 79 6c 69 73 74 73 20 6e 69 6c playlist-mode-open-playlists.nil
122240 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 74 6f 20 6f 70 65 6e 20 70 6c ..."Determine.whether.to.open.pl
122260 61 79 6c 69 73 74 73 20 69 6e 20 61 20 6e 65 77 20 45 4d 4d 53 20 62 75 66 66 65 72 20 6f 6e 20 aylists.in.a.new.EMMS.buffer.on.
122280 52 45 54 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 69 66 20 79 6f 75 20 68 61 76 65 20 RET..This.is.useful.if.you.have.
1222a0 61 20 6d 61 73 74 65 72 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 74 68 61 74 20 69 73 a.master.playlist.buffer.that.is
1222c0 0a 63 6f 6d 70 6f 73 65 64 20 6f 66 20 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 73 2e 22 0a 20 .composed.of.other.playlists."..
1222e0 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d .:type.'boolean)..(defcustom.emm
122300 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 20 32 35 0a s-playlist-mode-window-width.25.
122320 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 45 6d .."Determine.the.width.of.the.Em
122340 6d 73 20 70 6f 70 75 70 20 77 69 6e 64 6f 77 2e 0a 54 68 65 20 76 61 6c 75 65 20 73 68 6f 75 6c ms.popup.window..The.value.shoul
122360 64 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 d.a.positive.integer."...:type.'
122380 69 6e 74 65 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 integer)..(defcustom.emms-playli
1223a0 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 77 68 65 6e 2d 67 6f 20 6e 69 6c 0a 20 20 22 44 65 st-mode-center-when-go.nil..."De
1223c0 74 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 74 6f 20 63 65 6e 74 65 72 20 6f 6e 20 74 68 65 termine.whether.to.center.on.the
1223e0 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 0a 54 68 69 73 20 .currently.selected.track..This.
122400 69 73 20 74 72 75 65 20 66 6f 72 20 65 76 65 72 79 20 69 6e 76 6f 63 61 74 69 6f 6e 20 6f 66 20 is.true.for.every.invocation.of.
122420 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 27 2e 22 0a 20 20 3a 74 79 70 `emms-playlist-mode-go'."...:typ
122440 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d e.'boolean)...;;;.--------------
122460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
122480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 46 61 63 65 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d ----------.;;;.Faces.;;;.-------
1224a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1224c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 66 61 63 65 20 65 6d 6d 73 2d -----------------.(defface.emms-
1224e0 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 66 61 63 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 playlist-track-face...'((((class
122500 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 .color).(background.dark))......
122520 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 44 61 72 6b 53 65 61 47 72 65 65 6e 22 29 29 0a 20 20 (:foreground."DarkSeaGreen"))...
122540 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 ..(((class.color).(background.li
122560 67 68 74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 42 6c 75 65 22 29 29 ght))......(:foreground."Blue"))
122580 0a 20 20 20 20 28 28 28 74 79 70 65 20 74 74 79 29 20 28 63 6c 61 73 73 20 6d 6f 6e 6f 29 29 0a .....(((type.tty).(class.mono)).
1225a0 20 20 20 20 20 28 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 29 29 0a 20 20 20 20 28 74 20 .....(:inverse-video.t)).....(t.
1225c0 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 42 6c 75 65 22 29 29 29 0a 20 20 22 46 61 63 65 20 66 (:background."Blue")))..."Face.f
1225e0 6f 72 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 61 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 or.the.tracks.in.a.playlist.buff
122600 65 72 2e 22 29 0a 0a 28 64 65 66 66 61 63 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 er.")..(defface.emms-playlist-se
122620 6c 65 63 74 65 64 2d 66 61 63 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 lected-face...'((((class.color).
122640 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 (background.dark))......(:foregr
122660 6f 75 6e 64 20 22 53 74 65 65 6c 42 6c 75 65 33 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 ound."SteelBlue3")).....(((class
122680 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 .color).(background.light)).....
1226a0 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 62 6c 75 65 33 22 20 3a 66 6f 72 65 67 72 6f 75 6e .(:background."blue3".:foregroun
1226c0 64 20 22 77 68 69 74 65 22 29 29 0a 20 20 20 20 28 28 28 74 79 70 65 20 74 74 79 29 20 28 63 6c d."white")).....(((type.tty).(cl
1226e0 61 73 73 20 6d 6f 6e 6f 29 29 0a 20 20 20 20 20 28 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 ass.mono))......(:inverse-video.
122700 74 29 29 0a 20 20 20 20 28 74 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 62 6c 75 65 33 22 29 t)).....(t.(:background."blue3")
122720 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 68 65 20 ))..."Face.for.highlighting.the.
122740 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 22 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d selected.track.")...;;;.--------
122760 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
122780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 4b 65 79 73 0a 3b 3b 3b 20 2d 2d ----------------.;;;.Keys.;;;.--
1227a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1227c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 76 61 72 20 65 ----------------------.(defvar.e
1227e0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d mms-playlist-mode-map...(let.((m
122800 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 73 ap.(make-sparse-keymap))).....(s
122820 65 74 2d 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 6d 61 70 20 74 65 78 74 2d 6d 6f 64 65 2d 6d et-keymap-parent.map.text-mode-m
122840 61 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d ap).....(define-key.map.(kbd."C-
122860 78 20 43 2d 73 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 61 76 65 29 0a 20 20 x.C-s").#'emms-playlist-save)...
122880 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 79 22 29 20 23 27 ..(define-key.map.(kbd."C-y").#'
1228a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 79 61 6e 6b 29 0a 20 20 20 20 28 64 65 emms-playlist-mode-yank).....(de
1228c0 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 6b 22 29 20 23 27 65 6d 6d 73 2d fine-key.map.(kbd."C-k").#'emms-
1228e0 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 74 72 61 63 6b 29 0a 20 20 20 20 28 64 playlist-mode-kill-track).....(d
122900 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 77 22 29 20 23 27 65 6d 6d 73 efine-key.map.(kbd."C-w").#'emms
122920 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 -playlist-mode-kill).....(define
122940 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 5f 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 -key.map.(kbd."C-_").#'emms-play
122960 6c 69 73 74 2d 6d 6f 64 65 2d 75 6e 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 list-mode-undo).....(define-key.
122980 6d 61 70 20 28 6b 62 64 20 22 43 2d 2f 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d map.(kbd."C-/").#'emms-playlist-
1229a0 6d 6f 64 65 2d 75 6e 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 mode-undo).....(define-key.map.(
1229c0 6b 62 64 20 22 43 2d 78 20 75 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 kbd."C-x.u").#'emms-playlist-mod
1229e0 65 2d 75 6e 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 e-undo).....(define-key.map.(kbd
122a00 20 22 43 2d 6e 22 29 20 23 27 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ."C-n").#'next-line).....(define
122a20 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 70 22 29 20 23 27 70 72 65 76 69 6f 75 73 2d -key.map.(kbd."C-p").#'previous-
122a40 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 line).....(define-key.map.(kbd."
122a60 43 2d 6a 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 65 72 C-j").#'emms-playlist-mode-inser
122a80 74 2d 6e 65 77 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 t-newline).....(define-key.map.(
122aa0 6b 62 64 20 22 43 2d 69 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d kbd."C-i").#'emms-playlist-mode-
122ac0 73 68 69 66 74 2d 74 72 61 63 6b 2d 75 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 shift-track-up).....(define-key.
122ae0 6d 61 70 20 28 6b 62 64 20 22 43 2d 6f 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d map.(kbd."C-o").#'emms-playlist-
122b00 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 2d 64 6f 77 6e 29 0a 20 20 20 20 28 64 65 66 69 mode-shift-track-down).....(defi
122b20 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 79 22 29 20 23 27 65 6d 6d 73 2d 70 6c ne-key.map.(kbd."M-y").#'emms-pl
122b40 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 79 61 6e 6b 2d 70 6f 70 29 0a 20 20 20 20 28 64 65 66 69 6e aylist-mode-yank-pop).....(defin
122b60 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 3c 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 e-key.map.(kbd."M-<").#'emms-pla
122b80 79 6c 69 73 74 2d 6d 6f 64 65 2d 66 69 72 73 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 ylist-mode-first).....(define-ke
122ba0 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 3e 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 y.map.(kbd."M->").#'emms-playlis
122bc0 74 2d 6d 6f 64 65 2d 6c 61 73 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 t-mode-last).....(define-key.map
122be0 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 .(kbd."M-n").#'emms-playlist-mod
122c00 65 2d 6e 65 78 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 e-next).....(define-key.map.(kbd
122c20 20 22 4d 2d 70 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 72 65 ."M-p").#'emms-playlist-mode-pre
122c40 76 69 6f 75 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 vious).....(define-key.map.(kbd.
122c60 22 61 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 61 64 64 2d 63 6f "a").#'emms-playlist-mode-add-co
122c80 6e 74 65 6e 74 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 ntents).....(define-key.map.(kbd
122ca0 20 22 62 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 ."b").#'emms-playlist-set-playli
122cc0 73 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 st-buffer).....(define-key.map.(
122ce0 6b 62 64 20 22 44 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 kbd."D").#'emms-playlist-mode-ki
122d00 6c 6c 2d 74 72 61 63 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b ll-track).....(define-key.map.(k
122d20 62 64 20 22 6e 22 29 20 23 27 65 6d 6d 73 2d 6e 65 78 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 bd."n").#'emms-next).....(define
122d40 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 65 6d 6d 73 2d 70 72 65 76 69 6f -key.map.(kbd."p").#'emms-previo
122d60 75 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 50 us).....(define-key.map.(kbd."SP
122d80 43 22 29 20 23 27 73 63 72 6f 6c 6c 2d 75 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 C").#'scroll-up).....(define-key
122da0 20 6d 61 70 20 28 6b 62 64 20 22 3e 22 29 20 23 27 65 6d 6d 73 2d 73 65 65 6b 2d 66 6f 72 77 61 .map.(kbd.">").#'emms-seek-forwa
122dc0 72 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 22 rd).....(define-key.map.(kbd."<"
122de0 29 20 23 27 65 6d 6d 73 2d 73 65 65 6b 2d 62 61 63 6b 77 61 72 64 29 0a 20 20 20 20 28 64 65 66 ).#'emms-seek-backward).....(def
122e00 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 50 22 29 20 23 27 65 6d 6d 73 2d 70 61 75 ine-key.map.(kbd."P").#'emms-pau
122e20 73 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 22 se).....(define-key.map.(kbd."s"
122e40 29 20 23 27 65 6d 6d 73 2d 73 74 6f 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d ).#'emms-stop).....(define-key.m
122e60 61 70 20 28 6b 62 64 20 22 66 22 29 20 23 27 65 6d 6d 73 2d 73 68 6f 77 29 0a 20 20 20 20 28 64 ap.(kbd."f").#'emms-show).....(d
122e80 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 22 29 20 23 27 65 6d 6d 73 2d 70 efine-key.map.(kbd."c").#'emms-p
122ea0 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 29 0a 20 20 20 laylist-mode-center-current)....
122ec0 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 65 6d 6d .(define-key.map.(kbd."q").#'emm
122ee0 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 62 75 72 79 2d 62 75 66 66 65 72 29 0a 20 20 20 s-playlist-mode-bury-buffer)....
122f00 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4b 22 29 20 23 27 65 6d 6d .(define-key.map.(kbd."K").#'emm
122f20 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 29 0a 20 20 s-playlist-mode-current-kill)...
122f40 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3f 22 29 20 23 27 64 65 ..(define-key.map.(kbd."?").#'de
122f60 73 63 72 69 62 65 2d 6d 6f 64 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 scribe-mode).....(define-key.map
122f80 20 28 6b 62 64 20 22 72 22 29 20 23 27 65 6d 6d 73 2d 72 61 6e 64 6f 6d 29 0a 20 20 20 20 28 64 .(kbd."r").#'emms-random).....(d
122fa0 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 22 29 20 23 27 65 6d 6d 73 2d 70 efine-key.map.(kbd."C").#'emms-p
122fc0 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d laylist-clear).....(define-key.m
122fe0 61 70 20 28 6b 62 64 20 22 64 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 ap.(kbd."d").#'emms-playlist-mod
123000 65 2d 67 6f 74 6f 2d 64 69 72 65 64 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 28 64 65 66 69 e-goto-dired-at-point).....(defi
123020 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 6d 6f 75 73 65 2d 32 3e 22 29 20 23 27 65 ne-key.map.(kbd."<mouse-2>").#'e
123040 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d 63 75 72 72 65 6e 74 2d 74 mms-playlist-mode-play-current-t
123060 72 61 63 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 rack).....(define-key.map.(kbd."
123080 52 45 54 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d RET").#'emms-playlist-mode-play-
1230a0 73 6d 61 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 smart).....(define-key.map.(kbd.
1230c0 22 69 22 29 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 6c 61 79 6c 69 73 74 2d 69 6e "i").#'emms-playlist-playlist-in
1230e0 73 65 72 74 2d 74 72 61 63 6b 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 sert-track).....map)..."Keymap.f
123100 6f 72 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 or.`emms-playlist-mode'.")..(def
123120 6d 61 63 72 6f 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 6f 76 65 2d 77 72 macro.emms-playlist-mode-move-wr
123140 61 70 70 65 72 20 28 6e 61 6d 65 20 66 75 6e 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 66 75 6e apper.(name.fun)..."Create.a.fun
123160 63 74 69 6f 6e 20 4e 41 4d 45 20 77 68 69 63 68 20 69 73 20 61 6e 20 60 69 6e 74 65 72 61 63 74 ction.NAME.which.is.an.`interact
123180 69 76 65 27 20 76 65 72 73 69 6f 6e 20 6f 66 20 46 55 4e 2e 0a 0a 4e 41 4d 45 20 73 68 6f 75 6c ive'.version.of.FUN...NAME.shoul
1231a0 64 20 62 65 20 61 20 73 79 6d 62 6f 6c 2e 0a 46 55 4e 20 73 68 6f 75 6c 64 20 62 65 20 61 20 66 d.be.a.symbol..FUN.should.be.a.f
1231c0 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 60 28 64 65 66 75 6e 20 2c 6e 61 6d 65 20 28 29 0a 20 20 20 unction."...`(defun.,name.()....
1231e0 20 20 2c 28 66 6f 72 6d 61 74 20 22 49 6e 74 65 72 61 63 74 69 76 65 20 77 72 61 70 70 65 72 20 ..,(format."Interactive.wrapper.
123200 61 72 6f 75 6e 64 20 60 25 73 27 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 22 0a around.`%s'.for.playlist-mode.".
123220 09 20 20 20 20 20 20 66 75 6e 29 0a 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 .......fun)......(interactive)..
123240 20 20 20 20 28 2c 66 75 6e 29 29 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 ....(,fun)))..(emms-playlist-mod
123260 65 2d 6d 6f 76 65 2d 77 72 61 70 70 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 e-move-wrapper.emms-playlist-mod
123280 65 2d 66 69 72 73 74 0a 09 09 09 09 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 66 69 72 73 74 e-first......emms-playlist-first
1232a0 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 6f 76 65 2d 77 72 61 70 )..(emms-playlist-mode-move-wrap
1232c0 70 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 2d 6e 65 per.emms-playlist-mode-select-ne
1232e0 78 74 0a 09 09 09 09 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 0a 0a 28 65 6d xt......emms-playlist-next)..(em
123300 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 6f 76 65 2d 77 72 61 70 70 65 72 20 65 6d ms-playlist-mode-move-wrapper.em
123320 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 2d 70 72 65 76 69 6f 75 73 ms-playlist-mode-select-previous
123340 0a 09 09 09 09 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 29 0a 0a 28 ......emms-playlist-previous)..(
123360 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 62 75 72 79 2d 62 75 defun.emms-playlist-mode-bury-bu
123380 66 66 65 72 20 28 29 0a 20 20 22 57 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 60 62 75 72 79 2d ffer.()..."Wrapper.around.`bury-
1233a0 62 75 66 66 65 72 27 20 66 6f 72 20 70 6f 70 75 70 20 77 69 6e 64 6f 77 73 2e 22 0a 20 20 28 69 buffer'.for.popup.windows."...(i
1233c0 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d nteractive)...(if.emms-playlist-
1233e0 6d 6f 64 65 2d 70 6f 70 75 70 2d 65 6e 61 62 6c 65 64 0a 20 20 20 20 20 20 28 75 6e 77 69 6e 64 mode-popup-enabled.......(unwind
123400 2d 70 72 6f 74 65 63 74 0a 09 20 20 28 64 65 6c 65 74 65 2d 77 69 6e 64 6f 77 29 0a 09 28 73 65 -protect....(delete-window)..(se
123420 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6f 70 75 70 2d 65 6e 61 62 tq.emms-playlist-mode-popup-enab
123440 6c 65 64 20 6e 69 6c 29 29 0a 20 20 20 20 28 62 75 72 79 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 led.nil)).....(bury-buffer)))..(
123460 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 75 72 72 65 6e 74 defun.emms-playlist-mode-current
123480 2d 6b 69 6c 6c 20 28 29 0a 20 20 22 49 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 -kill.()..."If.the.current.buffe
1234a0 72 20 69 73 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2c 20 6b 69 r.is.an.EMMS.playlist.buffer,.ki
1234c0 6c 6c 20 69 74 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 6b 69 6c 6c 20 74 68 65 20 63 75 72 72 65 ll.it..Otherwise,.kill.the.curre
1234e0 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 nt.EMMS.playlist.buffer."...(int
123500 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 eractive)...(if.(and.emms-playli
123520 73 74 2d 62 75 66 66 65 72 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 st-buffer-p............(not.(eq.
123540 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 (current-buffer).emms-playlist-b
123560 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 uffer))).......(kill-buffer.(cur
123580 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 rent-buffer)).....(emms-playlist
1235a0 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c -current-kill)))..(defun.emms-pl
1235c0 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6c 61 73 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 64 aylist-mode-last.()..."Move.to.d
1235e0 69 72 65 63 74 6c 79 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 20 69 6e 20 irectly.after.the.last.track.in.
123600 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 the.current.buffer."...(interact
123620 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 ive)...(emms-playlist-ensure-pla
123640 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 6c 61 73 74 20 28 63 6f 6e ylist-buffer)...(let.((last.(con
123660 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dition-case.nil.................
123680 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(save-excursion...............
1236a0 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 ......(goto-char.(point-max))...
1236c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 ..................(point))......
1236e0 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(error...............
123700 20 20 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 69 66 20 6c 61 73 74 0a 20 20 20 20 20 20 20 20 ...nil)))).....(if.last.........
123720 28 67 6f 74 6f 2d 63 68 61 72 20 6c 61 73 74 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e (goto-char.last).......(error."N
123740 6f 20 6c 61 73 74 20 74 72 61 63 6b 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 o.last.track"))))..(defun.emms-p
123760 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e 74 20 28 29 0a 20 laylist-mode-center-current.()..
123780 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 73 65 ."Move.point.to.the.currently.se
1237a0 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 lected.track."...(interactive)..
1237c0 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f .(goto-char.(if.emms-playlist-mo
1237e0 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 de-selected-overlay.............
123800 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .....(overlay-start.emms-playlis
123820 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 29 0a 20 20 20 20 20 20 20 t-mode-selected-overlay)........
123840 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ........(point-min))))..(defun.e
123860 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d 63 75 72 72 65 6e 74 2d 74 mms-playlist-mode-play-current-t
123880 72 61 63 6b 20 28 29 0a 20 20 22 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 20 61 rack.()..."Start.playing.track.a
1238a0 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d t.point."...(interactive)...(emm
1238c0 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 s-playlist-set-playlist-buffer.(
1238e0 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 current-buffer))...(unless.(emms
123900 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 -playlist-track-at.(point)).....
123920 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c (emms-playlist-next))...(emms-pl
123940 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 28 77 68 65 6e 20 65 aylist-select.(point))...(when.e
123960 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 73 mms-player-playing-p.....(emms-s
123980 74 6f 70 29 29 0a 20 20 28 65 6d 6d 73 2d 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d top))...(emms-start))..(defun.em
1239a0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d 73 6d 61 72 74 20 28 29 0a 20 ms-playlist-mode-play-smart.()..
1239c0 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 62 65 73 74 20 6f 70 65 72 61 74 69 6f 6e 20 74 ."Determine.the.best.operation.t
1239e0 6f 20 74 61 6b 65 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 0a 49 66 o.take.on.the.current.track...If
123a00 20 6f 6e 20 61 20 70 6c 61 79 6c 69 73 74 2c 20 61 6e 64 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 .on.a.playlist,.and.`emms-playli
123a20 73 74 2d 6d 6f 64 65 2d 6f 70 65 6e 2d 70 6c 61 79 6c 69 73 74 73 27 20 69 73 0a 6e 6f 6e 2d 6e st-mode-open-playlists'.is.non-n
123a40 69 6c 2c 20 6c 6f 61 64 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 74 20 70 6f 69 6e 74 20 69 il,.load.the.playlist.at.point.i
123a60 6e 74 6f 20 61 20 6e 65 77 20 62 75 66 66 65 72 2e 0a 0a 4f 74 68 65 72 77 69 73 65 20 70 6c 61 nto.a.new.buffer...Otherwise.pla
123a80 79 20 74 68 65 20 74 72 61 63 6b 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 22 0a 20 20 28 69 6e 74 y.the.track.immediately."...(int
123aa0 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 eractive)...(save-excursion.....
123ac0 3b 3b 20 6d 6f 76 65 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 6c 69 6e 65 ;;.move.to.the.start.of.the.line
123ae0 2c 20 69 6e 20 63 61 73 65 20 74 68 65 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 74 68 65 20 5c 6e ,.in.case.the.point.is.on.the.\n
123b00 2c 0a 20 20 20 20 3b 3b 20 77 68 69 63 68 20 69 73 6e 27 74 20 70 72 6f 70 65 72 74 69 7a 65 64 ,.....;;.which.isn't.propertized
123b20 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 76 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e .....(emms-move-beginning-of-lin
123b40 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 e.nil).....(if.(not.emms-playlis
123b60 74 2d 6d 6f 64 65 2d 6f 70 65 6e 2d 70 6c 61 79 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 28 t-mode-open-playlists).........(
123b80 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d 63 75 72 72 65 6e 74 2d emms-playlist-mode-play-current-
123ba0 74 72 61 63 6b 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c track).......(unless.(emms-playl
123bc0 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 ist-track-at).........(emms-play
123be0 6c 69 73 74 2d 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 20 list-next)).......(let*.((track.
123c00 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 29 0a 20 20 20 20 20 20 (emms-playlist-track-at)).......
123c20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 .......(name.(emms-track-get.tra
123c40 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 65 ck.'name))..............(type.(e
123c60 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 29 29 0a 20 20 20 mms-track-get.track.'type)))....
123c80 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 65 71 20 74 79 70 65 20 27 70 6c 61 79 6c 69 73 74 29 .....(if.(or.(eq.type.'playlist)
123ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 74 79 70 65 20 27 .................(and.(eq.type.'
123cc0 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 file)......................(stri
123ce0 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 5c 5c 28 6d 33 75 5c 5c 7c 70 6c 73 5c 5c 29 5c 5c 27 22 ng-match."\\.\\(m3u\\|pls\\)\\'"
123d00 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c .name))).............(emms-playl
123d20 69 73 74 2d 6d 6f 64 65 2d 6c 6f 61 64 2d 70 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 ist-mode-load-playlist).........
123d40 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 6c 61 79 2d 63 75 72 72 65 ..(emms-playlist-mode-play-curre
123d60 6e 74 2d 74 72 61 63 6b 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 nt-track))))))..(defun.emms-play
123d80 6c 69 73 74 2d 6d 6f 64 65 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 77 list-mode-switch-buffer.()..."Sw
123da0 69 74 63 68 20 74 6f 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 itch.to.the.playlist.buffer.and.
123dc0 74 68 65 6e 20 73 77 69 74 63 68 20 62 61 63 6b 20 69 66 20 63 61 6c 6c 65 64 20 61 67 61 69 6e then.switch.back.if.called.again
123de0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 77 69 74 63 68 65 73 20 74 6f 20 74 68 65 ...This.function.switches.to.the
123e00 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e .current.Emms.playlist.buffer.an
123e20 64 0a 72 65 6d 65 6d 62 65 72 73 20 74 68 65 20 62 75 66 66 65 72 20 73 77 69 74 63 68 65 64 20 d.remembers.the.buffer.switched.
123e40 66 72 6f 6d 2e 20 57 68 65 6e 20 63 61 6c 6c 65 64 20 61 67 61 69 6e 20 74 68 65 0a 66 75 6e 63 from..When.called.again.the.func
123e60 74 69 6f 6e 20 73 77 69 74 63 68 65 73 20 62 61 63 6b 20 74 6f 20 74 68 65 20 72 65 6d 65 6d 62 tion.switches.back.to.the.rememb
123e80 65 72 65 64 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 ered.buffer."...(interactive)...
123ea0 28 69 66 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 09 20 20 65 6d 6d 73 (if.(eq.(current-buffer)....emms
123ec0 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 73 77 69 74 63 68 2d -playlist-buffer).......(switch-
123ee0 74 6f 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 77 69 to-buffer.emms-playlist-mode-swi
123f00 74 63 68 65 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 tched-buffer).....(setq.emms-pla
123f20 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 77 69 74 63 68 65 64 2d 62 75 66 66 65 72 20 28 63 75 72 72 ylist-mode-switched-buffer.(curr
123f40 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 ent-buffer)).....(switch-to-buff
123f60 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 er.emms-playlist-buffer)))..(def
123f80 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 65 72 74 2d 6e 65 77 un.emms-playlist-mode-insert-new
123fa0 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 61 20 6e 65 77 6c 69 6e 65 20 61 74 20 70 line.()..."Insert.a.newline.at.p
123fc0 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 77 oint."...(interactive)...(emms-w
123fe0 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 6e 65 77 6c ith-inhibit-read-only-t....(newl
124000 69 6e 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 ine)))..(defun.emms-playlist-mod
124020 65 2d 75 6e 64 6f 20 28 29 0a 20 20 22 57 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 60 75 6e 64 e-undo.()..."Wrapper.around.`und
124040 6f 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 77 69 74 o'."...(interactive)...(emms-wit
124060 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 75 6e 64 6f 29 29 h-inhibit-read-only-t....(undo))
124080 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 61 64 64 )..(defun.emms-playlist-mode-add
1240a0 2d 61 66 74 65 72 2d 63 75 72 72 65 6e 74 20 28 64 69 72 29 0a 20 20 22 49 6e 73 65 72 74 20 74 -after-current.(dir)..."Insert.t
1240c0 72 61 63 6b 73 20 66 72 6f 6d 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 44 49 52 20 61 66 racks.from.directory.tree.DIR.af
1240e0 74 65 72 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 ter.current.track."...(interacti
124100 76 65 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 ve.(list.................(emms-r
124120 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 41 64 64 20 64 69 72 65 63 74 6f 72 ead-directory-name."Add.director
124140 79 20 61 66 74 65 72 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 3a 20 22 0a 09 09 09 09 09 20 20 y.after.current.track:."........
124160 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 68 69 6e 74 (emms-source-file-directory-hint
124180 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
1241a0 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 ............emms-source-file-def
1241c0 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ault-directory..................
1241e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 .........................t)))...
124200 28 6c 65 74 20 28 28 70 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d (let.((p.(if.emms-playlist-mode-
124220 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 0a 09 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 selected-overlay.........(overla
124240 79 2d 73 74 61 72 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 y-start.emms-playlist-mode-selec
124260 74 65 64 2d 6f 76 65 72 6c 61 79 29 0a 09 20 20 20 20 20 28 65 72 72 6f 72 20 22 6e 6f 20 63 75 ted-overlay).......(error."no.cu
124280 72 72 65 6e 74 20 74 72 61 63 6b 22 29 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 rrent.track")))).....(goto-char.
1242a0 70 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 28 65 6d 6d p).....(forward-line.1).....(emm
1242c0 73 2d 69 6e 73 65 72 74 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 64 69 72 29 29 29 0a 0a s-insert-directory-tree.dir)))..
1242e0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 61 64 64 2d 63 6f (defun.emms-playlist-mode-add-co
124300 6e 74 65 6e 74 73 20 28 29 0a 20 20 22 41 64 64 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 70 6c ntents.()..."Add.files.in.the.pl
124320 61 79 6c 69 73 74 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 aylist.at.point.to.the.current.p
124340 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 77 65 20 61 72 65 20 69 6e 20 74 68 laylist.buffer...If.we.are.in.th
124360 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2c 20 6d 61 6b 65 20 61 20 6e 65 77 20 70 e.current.playlist,.make.a.new.p
124380 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 0a 73 65 74 20 69 74 20 61 73 20 63 75 72 laylist.buffer.and.set.it.as.cur
1243a0 72 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 rent."...(interactive)...(save-e
1243c0 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 76 65 2d 62 65 67 69 6e 6e 69 6e xcursion.....(emms-move-beginnin
1243e0 67 2d 6f 66 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 g-of-line.nil).....(unless.(emms
124400 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d -playlist-track-at).......(emms-
124420 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 playlist-next)).....(let*.((trac
124440 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 29 0a 20 20 20 20 k.(emms-playlist-track-at)).....
124460 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 .......(name.(emms-track-get.tra
124480 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 65 6d 6d ck.'name))............(type.(emm
1244a0 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 29 0a 20 20 20 20 20 20 s-track-get.track.'type)).......
1244c0 20 20 20 20 20 28 70 6c 61 79 6c 69 73 74 2d 70 20 28 6f 72 20 28 65 71 20 74 79 70 65 20 27 70 .....(playlist-p.(or.(eq.type.'p
1244e0 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 laylist)........................
124500 20 20 20 20 28 61 6e 64 20 28 65 71 20 74 79 70 65 20 27 66 69 6c 65 29 0a 20 20 20 20 20 20 20 ....(and.(eq.type.'file)........
124520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d .........................(save-m
124540 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch-data.......................
124560 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 5c 5c ............(string-match."\\.\\
124580 28 6d 33 75 5c 5c 7c 70 6c 73 5c 5c 29 5c 5c 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (m3u\\|pls\\)\\'"...............
1245a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1245c0 20 20 6e 61 6d 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ..name)))))).......(emms-playlis
1245e0 74 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 t-select.(point)).......(unless.
124600 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 (and.(buffer-live-p.emms-playlis
124620 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f t-buffer)....................(no
124640 74 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 65 6d 6d 73 2d 70 6c 61 79 t.(eq.(current-buffer).emms-play
124660 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d list-buffer))).........(setq.emm
124680 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-playlist-buffer...............
1246a0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 (emms-playlist-set-playlist-buff
1246c0 65 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 29 29 29 29 0a 20 20 20 20 20 20 er.(emms-playlist-new)))).......
1246e0 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 (with-current-emms-playlist.....
124700 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 ....(goto-char.(point-max)).....
124720 20 20 20 20 28 77 68 65 6e 20 70 6c 61 79 6c 69 73 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 ....(when.playlist-p...........(
124740 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 6f 72 63 65 2d 64 65 73 63 72 69 70 insert.(emms-track-force-descrip
124760 74 69 6f 6e 20 74 72 61 63 6b 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 tion.track)."\n")).........(let.
124780 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 6c ((beg.(point)))...........(if.pl
1247a0 61 79 6c 69 73 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 61 64 64 aylist-p...............(emms-add
1247c0 2d 70 6c 61 79 6c 69 73 74 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 -playlist.name).............(let
1247e0 20 28 28 66 75 6e 63 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 65 6d 6d 73 2d 61 64 .((func.(intern.(concat."emms-ad
124800 64 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 79 70 65 29 29 29 29 29 0a 20 20 20 20 20 d-".(symbol-name.type)))))......
124820 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 75 6e 63 29 0a 20 20 .........(if.(functionp.func)...
124840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20 6e 61 ................(funcall.func.na
124860 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 61 6c 6c 62 61 63 6b 0a me).................;;.fallback.
124880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 20 6e ................(emms-add-file.n
1248a0 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 6c 61 79 6c 69 73 74 ame))))...........(when.playlist
1248c0 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 -p.............(goto-char.(point
1248e0 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 70 72 6f 67 6e -max)).............(while.(progn
124900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c ......................(forward-l
124920 69 6e 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d ine.-1)......................(>=
124940 20 28 70 6f 69 6e 74 29 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e .(point).beg))...............(in
124960 73 65 72 74 20 22 20 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 sert."..")))...........(goto-cha
124980 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 r.(point-min))...........(messag
1249a0 65 20 22 41 64 64 65 64 20 25 73 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 79 70 65 29 29 e."Added.%s".(symbol-name.type))
1249c0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 )))))..(defun.emms-playlist-mode
1249e0 2d 67 6f 74 6f 2d 64 69 72 65 64 2d 61 74 2d 70 6f 69 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 -goto-dired-at-point.(&optional.
124a00 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 20 74 72 61 63 6b other-window)..."Visit.the.track
124a20 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 61 20 60 64 69 72 65 64 27 20 62 75 66 66 65 72 2e 0a 0a .at.point.in.a.`dired'.buffer...
124a40 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 2c 20 6f 70 65 6e 20 74 68 65 20 60 64 69 72 With.a.prefix.arg,.open.the.`dir
124a60 65 64 27 20 62 75 66 66 65 72 20 69 6e 20 4f 54 48 45 52 2d 57 49 4e 44 4f 57 2e 22 0a 20 20 28 ed'.buffer.in.OTHER-WINDOW."...(
124a80 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 interactive."P")...(let.((track.
124aa0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 29 29 0a 20 20 20 20 28 (emms-playlist-track-at))).....(
124ac0 69 66 20 74 72 61 63 6b 0a 09 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 if.track..(let.((name.(emms-trac
124ae0 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 09 20 20 20 20 20 20 28 74 79 70 65 k-get.track.'name))........(type
124b00 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 29 29 0a .(emms-track-get.track.'type))).
124b20 09 20 20 28 69 66 20 28 65 71 20 74 79 70 65 20 27 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 ...(if.(eq.type.'file)..........
124b40 20 20 20 20 20 28 64 69 72 65 64 2d 6a 75 6d 70 20 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 6e 61 .....(dired-jump.other-window.na
124b60 6d 65 29 0a 09 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 27 74 20 76 69 73 69 74 20 74 68 69 me)......(error."Can't.visit.thi
124b80 73 20 74 72 61 63 6b 20 74 79 70 65 20 69 6e 20 44 69 72 65 64 22 29 29 29 0a 20 20 20 20 20 20 s.track.type.in.Dired"))).......
124ba0 28 65 72 72 6f 72 20 22 4e 6f 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 22 29 29 29 29 0a 0a (error."No.track.at.point"))))..
124bc0 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .;;;.---------------------------
124be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b -----------------------------.;;
124c00 3b 20 4b 69 6c 6c 69 6e 67 20 61 6e 64 20 79 61 6e 6b 69 6e 67 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d ;.Killing.and.yanking.;;;.------
124c20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
124c40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 ------------------.(defun.emms-p
124c60 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 62 65 74 77 65 65 6e 2d 70 20 28 70 20 61 20 62 29 0a 20 laylist-mode-between-p.(p.a.b)..
124c80 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 20 69 73 20 61 20 70 6f 69 6e 74 20 62 65 74 77 65 ."Return.t.if.P.is.a.point.betwe
124ca0 65 6e 20 70 6f 69 6e 74 73 20 41 20 61 6e 64 20 42 2e 22 0a 20 20 28 61 6e 64 20 28 3c 3d 20 61 en.points.A.and.B."...(and.(<=.a
124cc0 20 70 29 0a 20 20 20 20 20 20 20 28 3c 3d 20 70 20 62 29 29 29 0a 0a 3b 3b 20 44 0a 28 64 65 66 .p)........(<=.p.b)))..;;.D.(def
124ce0 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 65 6e 74 69 72 un.emms-playlist-mode-kill-entir
124d00 65 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 4b 69 6c 6c 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e e-track.()..."Kill.track.at.poin
124d20 74 2c 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 t,.including.newline."...(intera
124d40 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6b 69 6c 6c 2d 77 68 6f 6c 65 2d 6c 69 6e 65 20 ctive)...(let.((kill-whole-line.
124d60 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c t)).....(emms-playlist-mode-kill
124d80 2d 74 72 61 63 6b 29 29 29 0a 0a 3b 3b 20 43 2d 6b 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c -track)))..;;.C-k.(defun.emms-pl
124da0 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 4b 69 6c aylist-mode-kill-track.()..."Kil
124dc0 6c 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 l.track.at.point."...(interactiv
124de0 65 29 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c e)...(emms-with-inhibit-read-onl
124e00 79 2d 74 0a 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 y-t....(let.((track.(emms-playli
124e20 73 74 2d 74 72 61 63 6b 2d 61 74 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 74 72 61 63 6b 0a st-track-at)))......(when.track.
124e40 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c .......(when.(and.emms-player-pl
124e60 61 79 69 6e 67 2d 70 0a 09 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 aying-p.....(emms-playlist-selec
124e80 74 65 64 2d 74 72 61 63 6b 2d 61 74 2d 70 29 29 0a 09 20 28 65 6d 6d 73 2d 73 74 6f 70 29 0a 09 ted-track-at-p))...(emms-stop)..
124ea0 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d .(delete-overlay.emms-playlist-m
124ec0 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 29 0a 09 20 28 73 65 74 71 20 65 6d ode-selected-overlay)...(setq.em
124ee0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 ms-playlist-mode-selected-overla
124f00 79 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 6b 69 6c 6c 2d 77 68 6f 6c 65 2d y.nil)))......(let.((kill-whole-
124f20 6c 69 6e 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 77 68 6f line.emms-playlist-mode-kill-who
124f40 6c 65 2d 6c 69 6e 65 2d 70 29 29 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c le-line-p))........(goto-char.(l
124f60 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 ine-beginning-position))........
124f80 28 6b 69 6c 6c 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 3b 3b 20 43 2d 77 0a 28 64 65 66 75 6e 20 65 (kill-line)))))..;;.C-w.(defun.e
124fa0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 20 28 29 0a 20 20 22 4b 69 6c mms-playlist-mode-kill.()..."Kil
124fc0 6c 20 66 72 6f 6d 20 6d 61 72 6b 20 74 6f 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 l.from.mark.to.point."...(intera
124fe0 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 ctive)...(emms-with-inhibit-read
125000 2d 6f 6e 6c 79 2d 74 0a 20 20 20 3b 3b 20 41 72 65 20 77 65 20 6b 69 6c 6c 69 6e 67 20 74 68 65 -only-t....;;.Are.we.killing.the
125020 20 70 6c 61 79 69 6e 67 2f 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 3f 0a 20 20 20 28 77 68 65 .playing/selected.track?....(whe
125040 6e 20 28 61 6e 64 20 28 6d 61 72 6b 65 72 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 n.(and.(markerp.emms-playlist-se
125060 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d lected-marker)...............(em
125080 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 62 65 74 77 65 65 6e 2d 70 0a 20 20 20 20 20 ms-playlist-mode-between-p......
1250a0 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d ..........(marker-position.emms-
1250c0 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 playlist-selected-marker).......
1250e0 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 .........(region-beginning).....
125100 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 28 ...........(region-end)))......(
125120 65 6d 6d 73 2d 73 74 6f 70 29 0a 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 emms-stop)......(delete-overlay.
125140 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 emms-playlist-mode-selected-over
125160 6c 61 79 29 0a 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f lay)......(setq.emms-playlist-mo
125180 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 20 6e 69 6c 29 29 0a 20 20 20 28 6b 69 de-selected-overlay.nil))....(ki
1251a0 6c 6c 2d 72 65 67 69 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 ll-region.(region-beginning)....
1251c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 29 0a 0a 28 64 .............(region-end))))..(d
1251e0 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 6f 72 72 65 63 74 2d efun.emms-playlist-mode-correct-
125200 70 72 65 76 69 6f 75 73 2d 79 61 6e 6b 20 28 29 0a 20 20 22 46 69 78 20 74 68 65 20 70 72 65 76 previous-yank.()..."Fix.the.prev
125220 69 6f 75 73 20 79 61 6e 6b 20 69 66 20 6e 65 65 64 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 ious.yank.if.needed."...(when.(a
125240 6e 64 20 28 3c 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 nd.(<.(line-beginning-position).
125260 28 70 6f 69 6e 74 29 29 0a 09 20 20 20 20 20 28 3c 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d (point)).......(<.(point).(line-
125280 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 6e 65 77 6c 69 6e 65 29 29 29 0a end-position))).....(newline))).
1252a0 0a 3b 3b 20 43 2d 79 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 .;;.C-y.(defun.emms-playlist-mod
1252c0 65 2d 79 61 6e 6b 20 28 29 0a 20 20 22 59 61 6e 6b 20 69 6e 74 6f 20 74 68 65 20 70 6c 61 79 6c e-yank.()..."Yank.into.the.playl
1252e0 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ist.buffer."...(interactive)...(
125300 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 emms-with-inhibit-read-only-t...
125320 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 .(goto-char.(line-beginning-posi
125340 74 69 6f 6e 29 29 0a 20 20 20 28 79 61 6e 6b 29 0a 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 tion))....(yank)....(emms-playli
125360 73 74 2d 6d 6f 64 65 2d 63 6f 72 72 65 63 74 2d 70 72 65 76 69 6f 75 73 2d 79 61 6e 6b 29 29 29 st-mode-correct-previous-yank)))
125380 0a 0a 3b 3b 20 4d 2d 79 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f ..;;.M-y.(defun.emms-playlist-mo
1253a0 64 65 2d 79 61 6e 6b 2d 70 6f 70 20 28 29 0a 20 20 22 43 79 63 6c 65 20 74 68 72 6f 75 67 68 20 de-yank-pop.()..."Cycle.through.
1253c0 74 68 65 20 6b 69 6c 6c 2d 72 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a the.kill-ring."...(interactive).
1253e0 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 ..(emms-with-inhibit-read-only-t
125400 0a 20 20 20 28 79 61 6e 6b 2d 70 6f 70 20 6e 69 6c 29 0a 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 ....(yank-pop.nil)....(emms-play
125420 6c 69 73 74 2d 6d 6f 64 65 2d 63 6f 72 72 65 63 74 2d 70 72 65 76 69 6f 75 73 2d 79 61 6e 6b 29 list-mode-correct-previous-yank)
125440 29 29 0a 0a 3b 3b 20 44 6f 6e 27 74 20 61 73 73 75 6d 65 20 74 68 61 74 20 74 68 65 20 66 69 72 ))..;;.Don't.assume.that.the.fir
125460 73 74 20 74 72 61 63 6b 20 69 73 20 61 74 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 62 75 st.track.is.at.the.top.of.the.bu
125480 66 66 65 72 20 28 74 68 65 0a 3b 3b 20 73 61 6d 65 20 67 6f 65 73 20 66 6f 72 20 74 68 65 20 60 ffer.(the.;;.same.goes.for.the.`
1254a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 74 72 61 63 6b 2d 62 65 6c 6f 77 2d 70 emms-playlist-mode-track-below-p
1254c0 27 2e 29 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 74 72 '.).(defun.emms-playlist-mode-tr
1254e0 61 63 6b 2d 61 62 6f 76 65 2d 70 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 74 68 ack-above-p.()..."Return.t.if.th
125500 65 72 65 20 69 73 20 61 20 74 72 61 63 6b 20 61 62 6f 76 65 20 74 68 69 73 20 6f 6e 65 20 69 6e ere.is.a.track.above.this.one.in
125520 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 70 72 65 76 69 6f 75 73 2d 70 72 6f 70 65 72 .the.buffer."...(previous-proper
125540 74 79 2d 63 68 61 6e 67 65 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 ty-change.(line-beginning-positi
125560 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 on)))..(defun.emms-playlist-mode
125580 2d 74 72 61 63 6b 2d 62 65 6c 6f 77 2d 70 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 -track-below-p.()..."Return.t.if
1255a0 20 74 68 65 72 65 20 69 73 20 61 20 74 72 61 63 6b 20 62 65 6c 6f 77 20 74 68 69 73 20 6f 6e 65 .there.is.a.track.below.this.one
1255c0 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6e 65 78 74 2d 70 72 6f 70 65 72 74 .in.the.buffer."...(next-propert
1255e0 79 2d 63 68 61 6e 67 65 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a y-change.(line-end-position)))..
125600 3b 3b 20 54 68 65 20 6e 65 65 64 20 74 6f 20 61 76 6f 69 64 20 6b 69 6c 6c 69 6e 67 20 61 20 70 ;;.The.need.to.avoid.killing.a.p
125620 6c 61 79 69 6e 67 20 74 72 61 63 6b 20 63 61 75 73 65 73 20 74 68 65 20 63 6f 64 65 20 74 6f 20 laying.track.causes.the.code.to.
125640 62 65 0a 3b 3b 20 77 72 69 74 74 65 6e 20 69 6e 20 61 20 62 69 74 20 6f 66 20 61 20 63 6f 6e 76 be.;;.written.in.a.bit.of.a.conv
125660 6f 6c 75 74 65 64 20 6d 61 6e 6e 65 72 2e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c oluted.manner..(defun.emms-playl
125680 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 20 28 6e 75 6d 29 0a 20 20 22 53 68 ist-mode-shift-track.(num)..."Sh
1256a0 69 66 74 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 62 79 20 6f 6e 65 20 6c 69 ift.the.track.at.point.by.one.li
1256c0 6e 65 2e 0a 0a 49 66 20 4e 55 4d 20 69 73 20 30 20 6f 72 20 61 20 70 6f 73 69 74 69 76 65 20 6e ne...If.NUM.is.0.or.a.positive.n
1256e0 75 6d 62 65 72 2c 20 73 68 69 66 74 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 umber,.shift.the.track.at.point.
125700 64 6f 77 6e 0a 6f 6e 65 20 6c 69 6e 65 2e 20 4f 74 68 65 72 77 69 73 65 20 73 68 69 66 74 20 74 down.one.line..Otherwise.shift.t
125720 68 65 20 74 72 61 63 6b 20 75 70 20 62 79 20 6f 6e 65 20 6c 69 6e 65 2e 22 0a 20 20 28 65 6d 6d he.track.up.by.one.line."...(emm
125740 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 s-playlist-ensure-playlist-buffe
125760 72 29 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 r)...(let.((track.(emms-playlist
125780 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a 09 28 64 69 72 20 28 69 66 20 28 3e -track-at.(point)))..(dir.(if.(>
1257a0 3d 20 6e 75 6d 20 30 29 20 31 20 2d 31 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 =.num.0).1.-1))).....(when.(not.
1257c0 74 72 61 63 6b 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 6e 6f 20 74 72 61 63 6b 20 61 74 track).......(error."no.track.at
1257e0 20 70 6f 69 6e 74 2e 22 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3c 20 6e 75 6d .point.")).....(when.(and.(<.num
125800 20 30 29 0a 09 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d .0).........(not.(emms-playlist-
125820 6d 6f 64 65 2d 74 72 61 63 6b 2d 61 62 6f 76 65 2d 70 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 mode-track-above-p))).......(err
125840 6f 72 20 22 61 6c 72 65 61 64 79 20 74 68 65 20 66 69 72 73 74 20 74 72 61 63 6b 22 29 29 0a 20 or."already.the.first.track"))..
125860 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3e 20 6e 75 6d 20 30 29 0a 09 20 20 20 20 20 20 20 ...(when.(and.(>.num.0).........
125880 28 6e 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 74 72 61 63 6b 2d 62 (not.(emms-playlist-mode-track-b
1258a0 65 6c 6f 77 2d 70 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 61 6c 72 65 61 64 79 20 elow-p))).......(error."already.
1258c0 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c the.last.track")).....(forward-l
1258e0 69 6e 65 20 64 69 72 29 0a 20 20 20 20 28 69 66 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ine.dir).....(if.(emms-playlist-
125900 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 2d 61 74 2d 70 29 0a 09 28 70 72 6f 67 6e 0a 09 20 20 selected-track-at-p)..(progn....
125920 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 20 (emms-playlist-mode-shift-track.
125940 28 69 66 20 28 3d 20 64 69 72 20 31 29 20 2d 31 20 31 29 29 0a 09 20 20 28 66 6f 72 77 61 72 64 (if.(=.dir.1).-1.1))....(forward
125960 2d 6c 69 6e 65 20 28 69 66 20 28 3d 20 64 69 72 20 31 29 20 31 20 2d 31 29 29 29 0a 20 20 20 20 -line.(if.(=.dir.1).1.-1))).....
125980 20 20 28 6c 65 74 20 28 28 73 68 69 66 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 ..(let.((shift.(emms-playlist-tr
1259a0 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ack-at.(point))))..(emms-playlis
1259c0 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 74 72 61 63 6b 29 0a 09 28 77 68 65 6e 20 28 6e 6f 74 20 65 t-mode-kill-track)..(when.(not.e
1259e0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 77 68 6f 6c 65 2d 6c 69 6e mms-playlist-mode-kill-whole-lin
125a00 65 2d 70 29 0a 09 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d e-p)....(emms-with-inhibit-read-
125a20 6f 6e 6c 79 2d 74 0a 09 20 20 20 28 6b 69 6c 6c 2d 6c 69 6e 65 29 29 29 0a 09 28 66 6f 72 77 61 only-t.....(kill-line)))..(forwa
125a40 72 64 2d 6c 69 6e 65 20 28 2a 20 64 69 72 20 2d 31 29 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c rd-line.(*.dir.-1))..(emms-playl
125a60 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 73 68 69 66 74 29 0a 09 28 77 ist-mode-insert-track.shift)..(w
125a80 68 65 6e 20 28 3d 20 64 69 72 20 2d 31 29 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 32 29 hen.(=.dir.-1).(forward-line.-2)
125aa0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 )))))..(defun.emms-playlist-mode
125ac0 2d 73 68 69 66 74 2d 74 72 61 63 6b 2d 64 6f 77 6e 20 28 29 0a 20 20 22 53 68 69 66 74 20 74 68 -shift-track-down.()..."Shift.th
125ae0 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 64 6f 77 6e 20 6f 6e 65 20 6c 69 6e 65 2e 22 e.track.at.point.down.one.line."
125b00 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ...(interactive)...(emms-playlis
125b20 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 20 30 29 29 0a 0a 28 64 65 66 75 6e 20 65 t-mode-shift-track.0))..(defun.e
125b40 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 2d 75 70 mms-playlist-mode-shift-track-up
125b60 20 28 29 0a 20 20 22 53 68 69 66 74 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 .()..."Shift.the.track.at.point.
125b80 75 70 20 6f 6e 65 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 up.one.line."...(interactive)...
125ba0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 68 69 66 74 2d 74 72 61 63 6b 20 (emms-playlist-mode-shift-track.
125bc0 2d 31 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -1))...;;;.---------------------
125be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
125c00 2d 2d 2d 0a 3b 3b 3b 20 4f 76 65 72 6c 61 79 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---.;;;.Overlay.;;;.------------
125c20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
125c40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ------------.(defun.emms-playlis
125c60 74 2d 6d 6f 64 65 2d 6f 76 65 72 6c 61 79 2d 73 65 6c 65 63 74 65 64 20 28 29 0a 20 20 22 50 6c t-mode-overlay-selected.()..."Pl
125c80 61 63 65 20 61 6e 20 6f 76 65 72 6c 61 79 20 6f 76 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 6c ace.an.overlay.over.the.currentl
125ca0 79 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d y.selected.track."...(when.emms-
125cc0 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 20 20 20 20 28 73 61 playlist-selected-marker.....(sa
125ce0 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6d ve-excursion.......(goto-char.em
125d00 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 0a 20 20 20 ms-playlist-selected-marker)....
125d20 20 20 20 28 6c 65 74 20 28 28 72 65 67 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 79 2d 72 65 67 ...(let.((reg.(emms-property-reg
125d40 69 6f 6e 20 28 70 6f 69 6e 74 29 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 ion.(point).'emms-track)))......
125d60 20 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 ...(if.emms-playlist-mode-select
125d80 65 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6f 76 65 ed-overlay.............(move-ove
125da0 72 6c 61 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 rlay.emms-playlist-mode-selected
125dc0 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -overlay........................
125de0 20 20 20 28 63 61 72 20 72 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(car.reg)....................
125e00 20 20 20 20 20 20 20 28 63 64 72 20 72 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .......(cdr.reg))...........(set
125e20 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 q.emms-playlist-mode-selected-ov
125e40 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6f 76 65 72 erlay.................(make-over
125e60 6c 61 79 20 28 63 61 72 20 72 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lay.(car.reg)...................
125e80 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 ............(cdr.reg)...........
125ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 29 29 0a ....................nil.t.nil)).
125ec0 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 65 6d 6d 73 2d 70 6c 61 79 ..........(overlay-put.emms-play
125ee0 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 list-mode-selected-overlay......
125f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 65 6d 6d 73 2d 70 6c ..................'face.'emms-pl
125f20 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 aylist-selected-face)...........
125f40 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d (overlay-put.emms-playlist-mode-
125f60 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 selected-overlay................
125f80 20 20 20 20 20 20 20 20 27 65 76 61 70 6f 72 61 74 65 20 74 29 29 29 29 29 29 0a 0a 0a 3b 3b 3b ........'evaporate.t))))))...;;;
125fa0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
125fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 53 61 -------------------------.;;;.Sa
125fe0 76 69 6e 67 2f 52 65 73 74 6f 72 69 6e 67 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ving/Restoring.;;;.-------------
126000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
126020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 -----------.(defun.emms-playlist
126040 2d 6d 6f 64 65 2d 6f 70 65 6e 2d 62 75 66 66 65 72 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 -mode-open-buffer.(filename)..."
126060 4f 70 65 6e 73 20 61 20 70 72 65 76 69 6f 75 73 6c 79 20 73 61 76 65 64 20 70 6c 61 79 6c 69 73 Opens.a.previously.saved.playlis
126080 74 20 62 75 66 66 65 72 2e 0a 0a 49 74 20 63 72 65 61 74 65 73 20 61 20 62 75 66 66 65 72 20 63 t.buffer...It.creates.a.buffer.c
1260a0 61 6c 6c 65 64 20 5c 22 66 69 6c 65 6e 61 6d 65 5c 22 2c 20 61 6e 64 20 72 65 73 74 6f 72 65 73 alled.\"filename\",.and.restores
1260c0 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 0a 6f 66 20 74 68 65 20 73 61 76 65 64 20 70 6c 61 79 6c .the.contents.of.the.saved.playl
1260e0 69 73 74 20 69 6e 73 69 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 66 46 69 ist.inside."...(interactive."fFi
126100 6c 65 3a 20 22 29 0a 20 20 28 6c 65 74 2a 20 28 28 73 29 0a 09 20 28 62 75 66 66 65 72 20 28 67 le:.")...(let*.((s)...(buffer.(g
126120 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 66 69 6c 65 6e 61 6d 65 29 29 0a 09 20 28 6e et-buffer-create.filename))...(n
126140 61 6d 65 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 29 29 0a 20 20 20 ame...(buffer-name.buffer)))....
126160 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 .(with-current-buffer.buffer....
126180 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 ...(emms-insert-file-contents.fi
1261a0 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 20 28 72 65 61 64 20 28 62 75 66 lename).......(setq.s.(read.(buf
1261c0 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 fer-string)))).....(kill-buffer.
1261e0 62 75 66 66 65 72 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 buffer).....(with-current-buffer
126200 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 .(emms-playlist-new.name).......
126220 28 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 (emms-with-inhibit-read-only-t..
126240 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 73 29 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 ......(insert.s)........(goto-ch
126260 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 61 6c ar.(point-min))........(emms-wal
126280 6b 2d 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 k-tracks..........(emms-playlist
1262a0 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 -update-track))).......(emms-pla
1262c0 79 6c 69 73 74 2d 66 69 72 73 74 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ylist-first).......(emms-playlis
1262e0 74 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 73 77 69 74 63 68 2d t-select.(point)).......(switch-
126300 74 6f 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a to-buffer.(current-buffer)))))..
126320 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6c 6f 61 64 2d 70 (defun.emms-playlist-mode-load-p
126340 6c 61 79 6c 69 73 74 20 28 29 0a 20 20 22 4c 6f 61 64 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 laylist.()..."Load.the.playlist.
126360 69 6e 74 6f 20 61 20 6e 65 77 20 45 4d 4d 53 20 62 75 66 66 65 72 2e 0a 54 68 69 73 20 70 72 65 into.a.new.EMMS.buffer..This.pre
126380 73 65 72 76 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 62 75 66 66 65 72 2e 22 serves.the.current.EMMS.buffer."
1263a0 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b ...(interactive)...(let*.((track
1263c0 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 29 0a 20 20 20 20 20 .(emms-playlist-track-at))......
1263e0 20 20 20 20 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 ....(name.(emms-track-get.track.
126400 27 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 'name))).....(emms-playlist-sele
126420 63 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 ct.(point)).....(run-hooks.'emms
126440 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 73 77 69 74 63 -player-stopped-hook).....(switc
126460 68 2d 74 6f 2d 62 75 66 66 65 72 0a 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d h-to-buffer......(emms-playlist-
126480 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 set-playlist-buffer.(emms-playli
1264a0 73 74 2d 6e 65 77 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 st-new))).....(emms-add-playlist
1264c0 20 6e 61 6d 65 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .name)))...;;;.-----------------
1264e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
126500 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 4c 6f 63 61 6c 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 3b 20 -------.;;;.Local.functions.;;;.
126520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
126540 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 ------------------------.(defun.
126560 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 emms-playlist-mode-insert-track.
126580 28 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 6e 65 77 6c 69 6e 65 29 0a 20 20 22 (track.&optional.no-newline)..."
1265a0 49 6e 73 65 72 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 54 52 41 43 4b 20 Insert.the.description.of.TRACK.
1265c0 61 74 20 70 6f 69 6e 74 2e 0a 57 68 65 6e 20 4e 4f 2d 4e 45 57 4c 49 4e 45 20 69 73 20 6e 6f 6e at.point..When.NO-NEWLINE.is.non
1265e0 2d 6e 69 6c 2c 20 64 6f 20 6e 6f 74 20 69 6e 73 65 72 74 20 61 20 6e 65 77 6c 69 6e 65 20 61 66 -nil,.do.not.insert.a.newline.af
126600 74 65 72 20 74 68 65 20 74 72 61 63 6b 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ter.the.track."...(emms-playlist
126620 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 65 6d 6d 73 -ensure-playlist-buffer)...(emms
126640 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 69 6e -with-inhibit-read-only-t....(in
126660 73 65 72 74 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 69 7a 65 20 28 65 6d 6d 73 2d 74 72 61 63 sert.(emms-propertize.(emms-trac
126680 6b 2d 66 6f 72 63 65 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b 29 0a 20 20 20 20 20 k-force-description.track)......
1266a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 .......................'emms-tra
1266c0 63 6b 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ck.track........................
1266e0 20 20 20 20 20 27 66 61 63 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d .....'face.'emms-playlist-track-
126700 66 61 63 65 29 29 0a 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f 2d 6e 65 77 6c 69 6e 65 0a 20 20 20 face))....(unless.no-newline....
126720 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ..(insert."\n"))))..(defun.emms-
126740 70 6c 61 79 6c 69 73 74 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 28 playlist-playlist-insert-track.(
126760 29 0a 20 20 22 49 6e 73 65 72 74 20 74 68 65 20 74 72 61 63 6b 20 69 6e 20 70 6c 61 79 6c 69 73 )..."Insert.the.track.in.playlis
126780 74 20 61 74 20 70 6f 69 6e 74 20 69 6e 74 6f 20 74 68 65 20 61 63 74 69 76 65 20 70 6c 61 79 6c t.at.point.into.the.active.playl
1267a0 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ist.buffer."...(interactive)...(
1267c0 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b let.((track.(emms-playlist-track
1267e0 2d 61 74 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c -at))).....(with-current-emms-pl
126800 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d aylist.......(goto-char.(point-m
126820 61 78 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 ax)).......(emms-playlist-insert
126840 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c -track.track))))..(defun.emms-pl
126860 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f aylist-mode-update-track-functio
126880 6e 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 20 74 72 61 63 6b 20 64 69 73 70 6c 61 79 n.()..."Update.the.track.display
1268a0 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 .at.point."...(emms-playlist-ens
1268c0 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 65 6d 6d 73 2d 77 69 74 ure-playlist-buffer)...(emms-wit
1268e0 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 6c 65 74 20 28 28 h-inhibit-read-only-t....(let.((
126900 74 72 61 63 6b 2d 72 65 67 69 6f 6e 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 79 2d 72 65 67 69 track-region.(emms-property-regi
126920 6f 6e 20 28 70 6f 69 6e 74 29 0a 09 09 09 09 09 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b on.(point)...........'emms-track
126940 29 29 0a 09 20 28 74 72 61 63 6b 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 ))...(track.(get-text-property.(
126960 70 6f 69 6e 74 29 0a 09 09 09 09 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 0a 09 20 28 73 point)........'emms-track))...(s
126980 65 6c 65 63 74 65 64 70 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 electedp.(emms-playlist-selected
1269a0 2d 74 72 61 63 6b 2d 61 74 2d 70 29 29 29 0a 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 -track-at-p)))......(save-excurs
1269c0 69 6f 6e 0a 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 63 61 72 20 74 ion........(delete-region.(car.t
1269e0 72 61 63 6b 2d 72 65 67 69 6f 6e 29 0a 09 09 20 20 20 20 20 20 28 63 64 72 20 74 72 61 63 6b 2d rack-region).........(cdr.track-
126a00 72 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 65 6c 65 63 74 65 64 70 0a region))........(when.selectedp.
126a20 09 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ..(delete-overlay.emms-playlist-
126a40 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c 61 79 29 0a 09 20 28 73 65 74 71 20 65 mode-selected-overlay)...(setq.e
126a60 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 65 6c 65 63 74 65 64 2d 6f 76 65 72 6c mms-playlist-mode-selected-overl
126a80 61 79 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d ay.nil))........(emms-playlist-m
126aa0 6f 64 65 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b 20 74 29 29 0a 20 20 20 20 20 ode-insert-track.track.t))......
126ac0 28 77 68 65 6e 20 73 65 6c 65 63 74 65 64 70 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 (when.selectedp........(emms-pla
126ae0 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 0a 0a 3b 3b 3b 20 ylist-select.(point))))))...;;;.
126b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
126b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 45 6e 74 ------------------------.;;;.Ent
126b40 72 79 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ry.;;;.-------------------------
126b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
126b80 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 20 28 29 0a (defun.emms-playlist-mode-go.().
126ba0 20 20 22 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6d 6d 73 2d 70 6c .."Switch.to.the.current.emms-pl
126bc0 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 75 73 65 20 65 6d 6d 73 2d 70 6c 61 79 6c aylist.buffer.and.use.emms-playl
126be0 69 73 74 2d 6d 6f 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 ist-mode."...(interactive)...(if
126c00 20 28 6f 72 20 28 6e 75 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 .(or.(null.emms-playlist-buffer)
126c20 0a 09 20 20 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 ....(not.(buffer-live-p.emms-pla
126c40 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f ylist-buffer))).......(error."No
126c60 20 63 75 72 72 65 6e 74 20 45 6d 6d 73 20 62 75 66 66 65 72 22 29 0a 20 20 20 20 28 73 77 69 74 .current.Emms.buffer").....(swit
126c80 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 ch-to-buffer.emms-playlist-buffe
126ca0 72 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 6d r).....(when.(and.(not.(member.m
126cc0 61 6a 6f 72 2d 6d 6f 64 65 20 27 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 20 65 ajor-mode.'(emms-playlist-mode.e
126ce0 6d 6d 73 2d 6d 61 72 6b 2d 6d 6f 64 65 29 29 29 0a 09 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c mms-mark-mode))).........emms-pl
126d00 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 aylist-buffer-p).......(emms-pla
126d20 79 6c 69 73 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 ylist-mode)).....(when.emms-play
126d40 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 77 68 65 6e 2d 67 6f 0a 20 20 20 20 20 20 28 list-mode-center-when-go.......(
126d60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 63 65 6e 74 65 72 2d 63 75 72 72 65 6e emms-playlist-mode-center-curren
126d80 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 20 28 29 0a 20 20 22 53 77 69 74 63 68 20 t))))..(defun.emms.()..."Switch.
126da0 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 to.the.current.emms-playlist.buf
126dc0 66 65 72 2c 20 75 73 65 0a 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 20 61 6e 64 20 fer,.use.emms-playlist-mode.and.
126de0 71 75 65 72 79 20 66 6f 72 20 61 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 74 6f 20 61 64 query.for.a.directory.tree.to.ad
126e00 64 20 74 6f 20 74 68 65 0a 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 d.to.the.playlist."...(interacti
126e20 76 65 29 0a 20 20 28 69 66 20 28 6f 72 20 28 6e 75 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ve)...(if.(or.(null.emms-playlis
126e40 74 2d 62 75 66 66 65 72 29 0a 09 20 20 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 t-buffer)....(not.(buffer-live-p
126e60 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 .emms-playlist-buffer))).......(
126e80 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 65 6d 6d 73 2d 61 64 64 2d 64 69 72 call-interactively.'emms-add-dir
126ea0 65 63 74 6f 72 79 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 ectory))...(emms-playlist-mode-g
126ec0 6f 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 o))..(defun.emms-playlist-mode-g
126ee0 6f 2d 70 6f 70 75 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 o-popup.(&optional.window-width)
126f00 0a 20 20 22 50 6f 70 75 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 ..."Popup.emms-playlist.buffer.a
126f20 73 20 61 20 73 69 64 65 20 77 69 6e 64 6f 77 2e 0a 0a 44 65 66 61 75 6c 74 20 76 61 6c 75 65 20 s.a.side.window...Default.value.
126f40 66 6f 72 20 57 49 4e 44 4f 57 2d 57 49 44 54 48 20 69 73 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 for.WINDOW-WIDTH.is.`emms-playli
126f60 73 74 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 27 2e 0a 57 49 4e 44 4f 57 2d 57 49 st-mode-window-width'..WINDOW-WI
126f80 44 54 48 20 73 68 6f 75 6c 64 20 62 65 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 DTH.should.be.a.positive.integer
126fa0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d ."...(interactive)...(setq.emms-
126fc0 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 0a 20 20 20 20 20 playlist-mode-window-width......
126fe0 20 20 20 28 72 6f 75 6e 64 20 28 6f 72 20 77 69 6e 64 6f 77 2d 77 69 64 74 68 20 65 6d 6d 73 2d ...(round.(or.window-width.emms-
127000 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 29 29 0a 20 20 playlist-mode-window-width)))...
127020 28 73 70 6c 69 74 2d 77 69 6e 64 6f 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 6c 79 20 28 2d 20 65 6d (split-window-horizontally.(-.em
127040 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 29 0a ms-playlist-mode-window-width)).
127060 20 20 28 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 31 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c ..(other-window.1)...(emms-playl
127080 69 73 74 2d 6d 6f 64 65 2d 67 6f 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 ist-mode-go)...(setq.emms-playli
1270a0 73 74 2d 6d 6f 64 65 2d 70 6f 70 75 70 2d 65 6e 61 62 6c 65 64 20 74 29 29 0a 0a 28 64 65 66 75 st-mode-popup-enabled.t))..(defu
1270c0 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6e 65 78 74 20 28 61 72 67 29 0a n.emms-playlist-mode-next.(arg).
1270e0 20 20 22 4e 61 76 69 67 61 74 65 20 62 65 74 77 65 65 6e 20 70 6c 61 79 6c 69 73 74 73 2e 22 0a .."Navigate.between.playlists.".
127100 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 6c 65 74 20 28 28 70 6c 61 ..(interactive."p")...(let.((pla
127120 79 6c 69 73 74 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6c 69 73 ylists.(emms-playlist-buffer-lis
127140 74 29 29 0a 20 20 20 20 20 20 20 20 62 75 66 73 20 69 64 78 29 0a 20 20 20 20 28 69 66 20 70 6c t)).........bufs.idx).....(if.pl
127160 61 79 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 6e 6f 74 20 69 6e 20 70 6c 61 aylists.........;;.if.not.in.pla
127180 79 6c 69 73 74 20 6d 6f 64 65 2c 20 73 77 69 74 63 68 20 74 6f 20 65 6d 6d 73 2d 70 6c 61 79 6c ylist.mode,.switch.to.emms-playl
1271a0 69 73 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 6d 65 6d ist-buffer.........(if.(not.(mem
1271c0 62 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 70 6c 61 79 6c 69 73 74 73 29 29 ber.(current-buffer).playlists))
1271e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 .............(switch-to-buffer.(
127200 69 66 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 20 20 20 if.(and.emms-playlist-buffer....
127220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
127240 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ....(buffer-live-p.emms-playlist
127260 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -buffer)).......................
127280 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 ............emms-playlist-buffer
1272a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1272c0 20 28 63 61 72 20 70 6c 61 79 6c 69 73 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 .(car.playlists)))...........(se
1272e0 74 71 20 62 75 66 73 20 28 6d 65 6d 62 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 tq.bufs.(member.(current-buffer)
127300 20 70 6c 61 79 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 64 78 .playlists))...........(setq.idx
127320 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 2d 20 28 6c 65 6e 67 74 68 20 70 .................(+.(-.(length.p
127340 6c 61 79 6c 69 73 74 73 29 20 28 6c 65 6e 67 74 68 20 62 75 66 73 29 29 0a 20 20 20 20 20 20 20 laylists).(length.bufs))........
127360 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 20 31 20 2d 31 29 29 ............(if.(>.arg.0).1.-1))
127380 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 6e )...........(switch-to-buffer.(n
1273a0 74 68 20 28 6d 6f 64 20 69 64 78 20 28 6c 65 6e 67 74 68 20 70 6c 61 79 6c 69 73 74 73 29 29 20 th.(mod.idx.(length.playlists)).
1273c0 70 6c 61 79 6c 69 73 74 73 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 playlists))).......(message."No.
1273e0 70 6c 61 79 6c 69 73 74 20 66 6f 75 6e 64 21 22 29 29 29 29 0a 28 64 65 66 75 6e 20 65 6d 6d 73 playlist.found!")))).(defun.emms
127400 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 70 72 65 76 69 6f 75 73 20 28 61 72 67 29 0a 20 20 -playlist-mode-previous.(arg)...
127420 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 (interactive."p")...(emms-playli
127440 73 74 2d 6d 6f 64 65 2d 6e 65 78 74 20 28 2d 20 61 72 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 st-mode-next.(-.arg)))..(defun.e
127460 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 73 74 61 72 74 75 70 20 28 29 0a 20 20 22 mms-playlist-mode-startup.()..."
127480 49 6e 73 74 69 67 61 74 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 20 6f 6e 20 Instigate.emms-playlist-mode.on.
1274a0 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3b 3b 20 77 68 65 6e 20 74 the.current.buffer."...;;.when.t
1274c0 68 65 72 65 20 69 73 20 6e 65 69 74 68 65 72 20 61 20 63 75 72 72 65 6e 74 20 65 6d 6d 73 20 74 here.is.neither.a.current.emms.t
1274e0 72 61 63 6b 20 6f 72 20 61 20 70 6c 61 79 69 6e 67 20 6f 6e 65 2e 2e 2e 0a 20 20 28 77 68 65 6e rack.or.a.playing.one......(when
127500 20 28 6e 6f 74 20 28 6f 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 .(not.(or.emms-playlist-selected
127520 2d 6d 61 72 6b 65 72 0a 09 09 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 -marker....emms-player-playing-p
127540 29 29 0a 20 20 20 20 3b 3b 20 2e 2e 2e 74 68 65 6e 20 73 74 6f 70 20 74 68 65 20 70 6c 61 79 65 )).....;;....then.stop.the.playe
127560 72 2e 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 6f 70 29 0a 20 20 20 20 3b 3b 20 77 68 79 20 73 65 r......(emms-stop).....;;.why.se
127580 6c 65 63 74 20 74 68 65 20 66 69 72 73 74 20 74 72 61 63 6b 3f 0a 20 20 20 20 28 77 68 65 6e 20 lect.the.first.track?.....(when.
1275a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 0a 20 20 20 20 20 20 28 65 6d emms-playlist-buffer-p.......(em
1275c0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 66 69 72 73 74 29 29 29 0a 20 20 3b 3b ms-playlist-select-first)))...;;
1275e0 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 20 61 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e .when.there.is.a.selected.track.
127600 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d ...(when.emms-playlist-selected-
127620 6d 61 72 6b 65 72 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6f marker.....(emms-playlist-mode-o
127640 76 65 72 6c 61 79 2d 73 65 6c 65 63 74 65 64 29 29 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d 69 verlay-selected))...(emms-with-i
127660 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 0a 20 20 20 28 61 64 64 2d 74 65 78 74 2d nhibit-read-only-t....(add-text-
127680 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 20 20 20 20 20 20 20 properties.(point-min)..........
1276a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 20 20 20 20 20 ...............(point-max)......
1276c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 66 61 63 65 20 65 6d 6d 73 2d 70 ...................'(face.emms-p
1276e0 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 66 61 63 65 29 29 29 0a 20 20 28 73 65 74 71 20 62 75 laylist-track-face)))...(setq.bu
127700 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 28 73 65 74 71 20 74 72 75 6e 63 61 ffer-read-only.t)...(setq.trunca
127720 74 65 2d 6c 69 6e 65 73 20 74 29 0a 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d te-lines.t)...(setq.buffer-undo-
127740 6c 69 73 74 20 6e 69 6c 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 list.nil))..;;;###autoload.(defu
127760 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 20 28 29 20 20 20 20 20 20 20 20 20 n.emms-playlist-mode.().........
127780 20 20 20 3b 46 49 58 4d 45 3a 20 55 73 65 20 60 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d ...;FIXME:.Use.`define-derived-m
1277a0 6f 64 65 27 2e 0a 20 20 22 41 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 45 6d 6d 73 20 70 ode'...."A.major.mode.for.Emms.p
1277c0 6c 61 79 6c 69 73 74 73 2e 0a 5c 5c 7b 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d laylists..\\{emms-playlist-mode-
1277e0 6d 61 70 7d 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 76 map}"...(interactive)...(let.((v
127800 61 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 29 29 0a 20 20 20 20 al.emms-playlist-buffer-p)).....
127820 28 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 29 0a 20 20 20 20 28 (kill-all-local-variables).....(
127840 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 76 61 6c 29 setq.emms-playlist-buffer-p.val)
127860 29 0a 0a 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 )....(use-local-map.emms-playlis
127880 74 2d 6d 6f 64 65 2d 6d 61 70 29 0a 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 t-mode-map)...(setq.major-mode.'
1278a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 0a 09 6d 6f 64 65 2d 6e 61 6d 65 20 22 45 emms-playlist-mode..mode-name."E
1278c0 4d 4d 53 22 29 0a 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 MMS")....(setq.emms-playlist-ins
1278e0 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 0a 09 23 27 65 6d 6d 73 2d 70 6c 61 79 6c ert-track-function..#'emms-playl
127900 69 73 74 2d 6d 6f 64 65 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 29 0a 20 20 28 73 65 74 71 20 65 ist-mode-insert-track)...(setq.e
127920 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 mms-playlist-update-track-functi
127940 6f 6e 0a 09 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 75 70 64 61 74 65 2d on..#'emms-playlist-mode-update-
127960 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d track-function)...(add-hook.'emm
127980 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 69 6f 6e 2d 63 68 61 6e 67 65 64 2d 68 6f 6f s-playlist-selection-changed-hoo
1279a0 6b 0a 09 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6f 76 65 72 k......#'emms-playlist-mode-over
1279c0 6c 61 79 2d 73 65 6c 65 63 74 65 64 29 0a 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d lay-selected)....(emms-playlist-
1279e0 6d 6f 64 65 2d 73 74 61 72 74 75 70 29 0a 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d mode-startup)....(run-hooks.'emm
127a00 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 68 6f 6f 6b 29 29 0a 0a 0a 28 70 72 6f 76 69 64 s-playlist-mode-hook))...(provid
127a20 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 0a 0a 3b 3b 3b 20 65 6d 6d e.'emms-playlist-mode)...;;;.emm
127a40 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 s-playlist-mode.el.ends.here....
127a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127c00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2e 65 emms-24/emms-idapi-musicbrainz.e
127c20 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l...............................
127c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
127c80 30 30 32 34 31 31 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 30 31 00 20 30 00 00 00 0024117.00000000000.015601..0...
127ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
127d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
127d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127e00 3b 3b 3b 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2e 65 6c 20 2d 2d ;;;.emms-idapi-musicbrainz.el.--
127e20 2d 20 45 4d 4d 53 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 41 50 49 20 73 75 70 70 6f 72 74 20 20 -.EMMS.MusicBrainz.API.support..
127e40 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 74 72 75 6e 63 61 74 65 -*-.lexical-binding:.t;.truncate
127e60 2d 6c 69 6e 65 73 3a 20 74 3b 20 2d 2a 2d 0a 3b 3b 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 -lines:.t;.-*-.;;..;;.Copyright.
127e80 28 43 29 20 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f (C).2024.Free.Software.Foundatio
127ea0 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 n,.Inc...;;.Author:.Yoni.Rabkin.
127ec0 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 <yrk@gnu.org>..;;.This.file.is.p
127ee0 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f art.of.EMMS...;;.EMMS.is.free.so
127f00 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 ftware;.you.can.redistribute.it.
127f20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 and/or.modify.it.;;.under.the.te
127f40 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 rms.of.the.GNU.General.Public.Li
127f60 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 cense.as.published.by.;;.the.Fre
127f80 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 e.Software.Foundation;.either.ve
127fa0 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 rsion.3,.or.(at.your.option).;;.
127fc0 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 any.later.version...;;.EMMS.is.d
127fe0 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 istributed.in.the.hope.that.it.w
128000 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e ill.be.useful,.but.WITHOUT.;;.AN
128020 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 Y.WARRANTY;.without.even.the.imp
128040 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 lied.warranty.of.MERCHANTABILITY
128060 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 .;;.or.FITNESS.FOR.A.PARTICULAR.
128080 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 PURPOSE...See.the.GNU.General.Pu
1280a0 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 blic.;;.License.for.more.details
1280c0 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 ...;;.You.should.have.received.a
1280e0 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 .copy.of.the.GNU.General.Public.
128100 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 License.;;.along.with.EMMS;.see.
128120 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 the.file.COPYING..If.not,.write.
128140 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 to.the.Free.;;.Software.Foundati
128160 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 on,.Inc.,.51.Franklin.Street,.Fi
128180 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 fth.Floor,.Boston,.;;.MA.02110-1
1281a0 33 30 31 2c 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 301,.USA....;;;.Commentary:.;;..
1281c0 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 6d 6d 2d 62 6f 64 69 65 73 29 0a 28 ;;;.Code:.(require.'mm-bodies).(
1281e0 72 65 71 75 69 72 65 20 27 75 72 6c 2d 76 61 72 73 29 0a 28 72 65 71 75 69 72 65 20 27 6a 73 6f require.'url-vars).(require.'jso
128200 6e 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d n).(require.'emms)...(defvar.emm
128220 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 75 72 6c 2d 74 69 6d 65 6f 75 74 2d s-idapi-musicbrainz-url-timeout-
128240 73 65 63 6f 6e 64 73 20 37 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 74 seconds.7..."Number.of.seconds.t
128260 6f 20 77 61 69 74 20 62 65 66 6f 72 65 20 61 6e 20 41 50 49 20 63 61 6c 6c 20 74 69 6d 65 73 20 o.wait.before.an.API.call.times.
128280 6f 75 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 out.")..(defvar.emms-idapi-music
1282a0 62 72 61 69 6e 7a 2d 75 72 6c 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 42 75 66 66 65 72 20 brainz-url-buffer.nil..."Buffer.
1282c0 74 6f 20 73 74 6f 72 65 20 60 75 72 6c 27 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 0a 28 64 65 66 to.store.`url'.response.")..(def
1282e0 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 65 73 70 6f var.emms-idapi-musicbrainz-respo
128300 6e 73 65 2d 6c 69 6d 69 74 20 31 30 30 0a 20 20 22 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 nse-limit.100..."Maximum.number.
128320 6f 66 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 61 73 6b 20 66 6f 72 2e 20 4d 61 78 69 6d 75 6d of.responses.to.ask.for..Maximum
128340 20 69 73 20 31 30 30 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 64 61 70 69 .is.100.")..(defconst.emms-idapi
128360 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 6f 6f 74 2d 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 6d -musicbrainz-root-url."https://m
128380 75 73 69 63 62 72 61 69 6e 7a 2e 6f 72 67 2f 77 73 2f 32 2f 22 0a 20 20 22 54 68 65 20 41 50 49 usicbrainz.org/ws/2/"..."The.API
1283a0 20 72 6f 6f 74 20 55 52 4c 20 66 6f 72 20 74 68 65 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 73 65 .root.URL.for.the.MusicBrainz.se
1283c0 72 76 69 63 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 71 75 65 rvice.")..(defvar.emms-idapi-que
1283e0 72 79 2d 6c 6f 63 61 6c 20 6e 69 6c 0a 20 20 22 43 72 6f 73 73 2d 63 61 6c 6c 20 73 74 6f 72 61 ry-local.nil..."Cross-call.stora
128400 67 65 20 66 6f 72 20 73 65 61 72 63 68 20 71 75 65 72 79 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 ge.for.search.query.").(make-var
128420 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 69 64 61 70 69 2d 71 iable-buffer-local.'emms-idapi-q
128440 75 65 72 79 2d 6c 6f 63 61 6c 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d uery-local)..(defvar.emms-idapi-
128460 6d 75 73 69 63 62 72 61 69 6e 7a 2d 64 65 62 75 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 musicbrainz-debug-buffer-name...
128480 22 20 2a 45 6d 6d 73 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 44 65 62 75 67 20 42 75 66 66 65 72 ".*Emms.MusicBrainz.Debug.Buffer
1284a0 2a 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 64 65 62 75 67 20 62 75 66 66 65 72 20 66 6f 72 20 4d *"..."Name.of.debug.buffer.for.M
1284c0 75 73 69 63 42 72 61 69 6e 7a 20 75 72 6c 20 72 65 73 70 6f 6e 73 65 73 2e 22 29 0a 0a 28 64 65 usicBrainz.url.responses.")..(de
1284e0 66 76 61 72 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 64 65 62 75 fvar.emms-idapi-musicbrainz-debu
128500 67 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 44 65 62 75 67 20 62 75 66 66 65 72 20 66 6f 72 g-buffer.nil..."Debug.buffer.for
128520 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 75 72 6c 20 72 65 73 70 6f 6e 73 65 73 2e 22 29 0a 0a 0a .MusicBrainz.url.responses.")...
128540 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a (defconst.emms-idapi-musicbrainz
128560 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 2d 6d 61 70 0a 20 20 27 28 28 69 6e 66 6f 2d 61 72 74 -search-string-map...'((info-art
128580 69 73 74 20 20 20 20 20 20 2e 20 22 61 72 74 69 73 74 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 ist........"artist").....(info-a
1285a0 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 22 61 72 74 69 73 74 22 29 0a 20 20 20 20 28 69 6e 66 6f lbumartist..."artist").....(info
1285c0 2d 74 69 74 6c 65 20 20 20 20 20 20 20 2e 20 22 72 65 63 6f 72 64 69 6e 67 22 29 0a 20 20 20 20 -title........."recording").....
1285e0 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 2e 20 22 72 65 6c 65 61 73 65 22 29 29 0a (info-album........."release")).
128600 20 20 22 4d 61 70 70 69 6e 67 20 62 65 74 77 65 65 6e 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 41 .."Mapping.between.MusicBrainz.A
128620 50 49 20 54 59 50 45 53 20 61 6e 64 20 45 6d 6d 73 20 66 69 65 6c 64 73 2e 22 29 0a 0a 0a 3b 3b PI.TYPES.and.Emms.fields.")...;;
128640 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.------------------------------
128660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
128680 2d 2d 2d 2d 0a 3b 3b 3b 20 52 65 73 70 6f 6e 73 65 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----.;;;.Response.;;;.----------
1286a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1286c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 ------------------------.(defun.
1286e0 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 64 65 63 6f 64 65 20 28 72 emms-idapi-musicbrainz-decode.(r
128700 65 73 70 6f 6e 73 65 29 0a 20 20 22 44 65 63 6f 64 65 20 74 68 65 20 73 74 72 69 6e 67 73 20 69 esponse)..."Decode.the.strings.i
128720 6e 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 6d 61 70 63 0a 20 20 20 28 6c 61 6d 62 64 61 20 n.response."...(mapc....(lambda.
128740 28 65 6c 74 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 28 63 64 72 20 65 (elt)......(when.(stringp.(cdr.e
128760 6c 74 29 29 0a 20 20 20 20 20 20 20 28 73 65 74 66 20 28 63 64 72 20 65 6c 74 29 20 28 6d 6d 2d lt))........(setf.(cdr.elt).(mm-
128780 64 65 63 6f 64 65 2d 73 74 72 69 6e 67 20 28 63 64 72 20 65 6c 74 29 20 27 75 74 66 2d 38 29 29 decode-string.(cdr.elt).'utf-8))
1287a0 29 29 0a 20 20 20 72 65 73 70 6f 6e 73 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 ))....response))..(defun.emms-id
1287c0 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 65 61 64 2d 61 72 74 69 73 74 20 28 61 72 74 api-musicbrainz-read-artist.(art
1287e0 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 74 72 61 63 6b 20 66 72 6f 6d 20 74 68 65 20 ist)..."Return.a.track.from.the.
128800 4d 75 73 69 63 42 72 61 69 6e 7a 20 41 52 54 49 53 54 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f MusicBrainz.ARTIST."...(when.(no
128820 74 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 64 20 61 72 74 69 73 74 29 29 0a 20 20 20 20 28 65 t.(alist-get.'id.artist)).....(e
128840 72 72 6f 72 20 22 63 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 66 72 6f 6d 3a 20 25 73 22 20 rror."could.not.parse.from:.%s".
128860 61 72 74 69 73 74 29 29 0a 20 20 60 28 2a 74 72 61 63 6b 2a 20 28 73 65 61 72 63 68 2d 62 61 63 artist))...`(*track*.(search-bac
128880 6b 65 6e 64 20 20 20 20 2e 20 6d 75 73 69 63 62 72 61 69 6e 7a 29 0a 20 20 20 20 20 20 20 20 20 kend......musicbrainz)..........
1288a0 20 20 20 28 74 79 70 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 69 64 61 70 69 2d 61 72 ...(type................idapi-ar
1288c0 74 69 73 74 29 0a 09 20 20 20 20 28 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 tist)......(name................
1288e0 6e 69 6c 29 0a 09 20 20 20 20 28 69 64 61 70 69 2d 61 72 74 69 73 74 2d 69 64 20 20 20 2e 20 2c nil)......(idapi-artist-id.....,
128900 28 6c 69 73 74 20 28 63 6f 6e 73 20 27 6d 75 73 69 63 62 72 61 69 6e 7a 20 28 61 6c 69 73 74 2d (list.(cons.'musicbrainz.(alist-
128920 67 65 74 20 27 69 64 20 61 72 74 69 73 74 29 29 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 61 72 get.'id.artist))))......(info-ar
128940 74 69 73 74 20 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 6e 61 6d 65 20 61 tist.........,(alist-get.'name.a
128960 72 74 69 73 74 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 64 65 72 20 20 20 20 20 20 20 rtist))......(info-gender.......
128980 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 67 65 6e 64 65 72 20 61 72 74 69 73 74 29 29 0a 09 ..,(alist-get.'gender.artist))..
1289a0 20 20 20 20 28 69 6e 66 6f 2d 74 79 70 65 20 20 20 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 ....(info-type...........,(alist
1289c0 2d 67 65 74 20 27 74 79 70 65 20 61 72 74 69 73 74 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 63 -get.'type.artist))......(info-c
1289e0 6f 75 6e 74 72 79 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 63 6f 75 6e 74 ountry........,(alist-get.'count
128a00 72 79 20 61 72 74 69 73 74 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 61 72 65 61 2d 74 79 70 65 ry.artist))......(info-area-type
128a20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 74 79 70 65 20 28 63 64 64 72 20 28 61 ......,(alist-get.'type.(cddr.(a
128a40 73 73 6f 63 20 27 61 72 65 61 20 61 72 74 69 73 74 29 29 29 29 0a 09 20 20 20 20 28 69 6e 66 6f ssoc.'area.artist))))......(info
128a60 2d 61 72 65 61 2d 63 6f 75 6e 74 72 79 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 6e 61 6d -area-country...,(alist-get.'nam
128a80 65 20 28 63 64 64 72 20 28 61 73 73 6f 63 20 27 61 72 65 61 20 61 72 74 69 73 74 29 29 29 29 0a e.(cddr.(assoc.'area.artist)))).
128aa0 09 20 20 20 20 28 69 6e 66 6f 2d 61 6c 69 61 73 65 73 20 20 20 20 20 20 2e 20 2c 28 6c 69 73 74 .....(info-aliases........,(list
128ac0 0a 09 09 09 09 20 20 20 28 73 65 71 2d 6d 61 70 0a 09 09 09 09 20 20 20 20 28 6c 61 6d 62 64 61 ........(seq-map.........(lambda
128ae0 20 28 65 6c 74 29 0a 09 09 09 09 20 20 20 20 20 20 28 6d 6d 2d 64 65 63 6f 64 65 2d 73 74 72 69 .(elt)...........(mm-decode-stri
128b00 6e 67 0a 09 09 09 09 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 73 6f 72 74 2d 6e ng............(alist-get.'sort-n
128b20 61 6d 65 20 65 6c 74 29 20 27 75 74 66 2d 38 29 29 0a 09 09 09 09 20 20 20 20 28 61 6c 69 73 74 ame.elt).'utf-8)).........(alist
128b40 2d 67 65 74 20 27 61 6c 69 61 73 65 73 20 61 72 74 69 73 74 29 29 29 29 0a 09 20 20 20 20 28 69 -get.'aliases.artist))))......(i
128b60 6e 66 6f 2d 74 61 67 73 20 20 20 20 20 20 20 20 20 2e 20 2c 28 6c 69 73 74 0a 09 09 09 09 20 20 nfo-tags...........,(list.......
128b80 20 28 73 65 71 2d 6d 61 70 0a 09 09 09 09 20 20 20 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 29 0a .(seq-map.........(lambda.(elt).
128ba0 09 09 09 09 20 20 20 20 20 20 28 6d 6d 2d 64 65 63 6f 64 65 2d 73 74 72 69 6e 67 0a 09 09 09 09 ..........(mm-decode-string.....
128bc0 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6e 61 6d 65 20 65 6c 74 29 20 27 75 74 .......(alist-get.'name.elt).'ut
128be0 66 2d 38 29 29 0a 09 09 09 09 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 74 61 67 73 20 61 f-8)).........(alist-get.'tags.a
128c00 72 74 69 73 74 29 29 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 74 69 6d 65 20 20 20 20 20 20 20 rtist))))......(info-time.......
128c20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 6c 69 66 65 2d 73 70 61 6e 20 61 72 74 69 73 ....,(alist-get.'life-span.artis
128c40 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 t))))..(defun.emms-idapi-musicbr
128c60 61 69 6e 7a 2d 72 65 61 64 2d 72 65 6c 65 61 73 65 20 28 72 65 6c 65 61 73 65 29 0a 20 20 22 52 ainz-read-release.(release)..."R
128c80 65 74 75 72 6e 20 61 20 74 72 61 63 6b 20 66 72 6f 6d 20 74 68 65 20 4d 75 73 69 63 42 72 61 69 eturn.a.track.from.the.MusicBrai
128ca0 6e 7a 20 52 45 4c 45 41 53 45 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 61 6c 69 73 74 nz.RELEASE."...(when.(not.(alist
128cc0 2d 67 65 74 20 27 69 64 20 72 65 6c 65 61 73 65 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 63 -get.'id.release)).....(error."c
128ce0 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 66 72 6f 6d 3a 20 25 73 22 20 72 65 6c 65 61 73 65 ould.not.parse.from:.%s".release
128d00 29 29 0a 20 20 60 28 2a 74 72 61 63 6b 2a 20 28 73 65 61 72 63 68 2d 62 61 63 6b 65 6e 64 20 2e ))...`(*track*.(search-backend..
128d20 20 6d 75 73 69 63 62 72 61 69 6e 7a 29 0a 09 20 20 20 20 28 74 79 70 65 20 20 20 20 20 20 20 20 .musicbrainz)......(type........
128d40 20 20 20 20 20 20 20 20 2e 20 69 64 61 70 69 2d 72 65 6c 65 61 73 65 29 0a 09 20 20 20 20 28 6e ..........idapi-release)......(n
128d60 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 6e 69 6c 29 0a 09 20 20 20 20 28 ame..................nil)......(
128d80 69 64 61 70 69 2d 72 65 6c 65 61 73 65 2d 69 64 20 20 20 20 2e 20 2c 28 6c 69 73 74 20 28 63 6f idapi-release-id......,(list.(co
128da0 6e 73 20 27 6d 75 73 69 63 62 72 61 69 6e 7a 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 64 20 72 ns.'musicbrainz.(alist-get.'id.r
128dc0 65 6c 65 61 73 65 29 29 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 elease))))......(info-artist....
128de0 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 6e 61 6d 65 20 28 65 6c 74 20 28 61 .......,(alist-get.'name.(elt.(a
128e00 6c 69 73 74 2d 67 65 74 20 27 61 72 74 69 73 74 2d 63 72 65 64 69 74 20 72 65 6c 65 61 73 65 29 list-get.'artist-credit.release)
128e20 20 30 29 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 20 20 20 .0)))......(info-album..........
128e40 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 74 69 74 6c 65 20 72 65 6c 65 61 73 65 29 29 0a 09 ..,(alist-get.'title.release))..
128e60 20 20 20 20 28 69 6e 66 6f 2d 73 74 61 74 75 73 20 20 20 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 ....(info-status...........,(ali
128e80 73 74 2d 67 65 74 20 27 73 74 61 74 75 73 20 72 65 6c 65 61 73 65 29 29 0a 09 20 20 20 20 28 69 st-get.'status.release))......(i
128ea0 6e 66 6f 2d 64 69 73 61 6d 62 69 67 75 61 74 69 6f 6e 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 nfo-disambiguation...,(alist-get
128ec0 20 27 64 69 73 61 6d 62 69 67 75 61 74 69 6f 6e 20 72 65 6c 65 61 73 65 29 29 0a 09 20 20 20 20 .'disambiguation.release))......
128ee0 28 69 6e 66 6f 2d 70 61 63 6b 61 67 69 6e 67 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 (info-packaging........,(alist-g
128f00 65 74 20 27 70 61 63 6b 61 67 69 6e 67 20 72 65 6c 65 61 73 65 29 29 0a 09 20 20 20 20 28 69 6e et.'packaging.release))......(in
128f20 66 6f 2d 64 61 74 65 20 20 20 20 20 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 fo-date.............,(alist-get.
128f40 27 64 61 74 65 20 72 65 6c 65 61 73 65 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 63 6f 75 6e 74 'date.release))......(info-count
128f60 72 79 20 20 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 63 6f 75 6e 74 72 79 ry..........,(alist-get.'country
128f80 20 72 65 6c 65 61 73 65 29 29 0a 09 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 2d 63 6f 75 6e .release))......(info-track-coun
128fa0 74 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 74 72 61 63 6b 2d 63 6f 75 6e 74 20 t......,(alist-get.'track-count.
128fc0 72 65 6c 65 61 73 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d release))))..(defun.emms-idapi-m
128fe0 75 73 69 63 62 72 61 69 6e 7a 2d 72 65 61 64 2d 72 65 63 6f 72 64 69 6e 67 20 28 72 65 63 6f 72 usicbrainz-read-recording.(recor
129000 64 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 74 72 61 63 6b 20 66 72 6f 6d 20 74 68 65 ding)..."Return.a.track.from.the
129020 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 52 45 43 4f 52 44 49 4e 47 2e 22 0a 20 20 28 77 68 65 6e .MusicBrainz.RECORDING."...(when
129040 20 28 6e 6f 74 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 64 20 72 65 63 6f 72 64 69 6e 67 29 29 .(not.(alist-get.'id.recording))
129060 0a 20 20 20 20 28 65 72 72 6f 72 20 22 63 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 66 72 6f .....(error."could.not.parse.fro
129080 6d 3a 20 25 73 22 20 72 65 63 6f 72 64 69 6e 67 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 65 6e 67 m:.%s".recording))...(let.((leng
1290a0 74 68 2d 6d 73 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6c 65 6e 67 74 68 20 72 65 63 th-ms.(or.(alist-get.'length.rec
1290c0 6f 72 64 69 6e 67 29 20 30 29 29 29 0a 20 20 20 20 60 28 2a 74 72 61 63 6b 2a 20 28 73 65 61 72 ording).0))).....`(*track*.(sear
1290e0 63 68 2d 62 61 63 6b 65 6e 64 20 2e 20 6d 75 73 69 63 62 72 61 69 6e 7a 29 0a 09 20 20 20 20 20 ch-backend...musicbrainz).......
129100 20 28 74 79 70 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 69 64 61 70 69 2d .(type....................idapi-
129120 72 65 63 6f 72 64 69 6e 67 29 0a 09 20 20 20 20 20 20 28 6e 61 6d 65 20 20 20 20 20 20 20 20 20 recording)........(name.........
129140 20 20 20 20 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 74 69 74 6c 65 20 72 65 ...........,(alist-get.'title.re
129160 63 6f 72 64 69 6e 67 29 29 0a 09 20 20 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 cording))........(info-playing-t
129180 69 6d 65 20 20 20 20 20 2e 20 2c 28 66 6c 6f 6f 72 20 28 2f 20 6c 65 6e 67 74 68 2d 6d 73 20 31 ime.......,(floor.(/.length-ms.1
1291a0 30 30 30 29 29 29 0a 09 20 20 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 000)))........(info-playing-time
1291c0 2d 6d 69 6e 20 2e 20 2c 28 66 6c 6f 6f 72 20 28 2f 20 28 2f 20 6c 65 6e 67 74 68 2d 6d 73 20 31 -min...,(floor.(/.(/.length-ms.1
1291e0 30 30 30 29 20 36 30 29 29 29 0a 09 20 20 20 20 20 20 28 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 000).60)))........(info-playing-
129200 74 69 6d 65 2d 73 65 63 20 2e 20 2c 28 25 20 28 66 6c 6f 6f 72 20 28 2f 20 6c 65 6e 67 74 68 2d time-sec...,(%.(floor.(/.length-
129220 6d 73 20 31 30 30 30 29 29 20 36 30 29 29 0a 09 20 20 20 20 20 20 28 69 6e 66 6f 2d 72 65 63 6f ms.1000)).60))........(info-reco
129240 72 64 69 6e 67 2d 69 64 20 20 20 20 20 2e 20 2c 28 61 6c 69 73 74 2d 67 65 74 20 27 69 64 20 72 rding-id.......,(alist-get.'id.r
129260 65 63 6f 72 64 69 6e 67 29 29 0a 09 20 20 20 20 20 20 28 69 64 61 70 69 2d 72 65 6c 65 61 73 65 ecording))........(idapi-release
129280 73 20 09 20 20 20 20 20 2e 20 2c 28 73 65 71 2d 6d 61 70 0a 09 09 09 09 09 20 28 6c 61 6d 62 64 s.........,(seq-map.......(lambd
1292a0 61 20 28 65 6c 74 29 0a 09 09 09 09 09 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 a.(elt).........(emms-idapi-musi
1292c0 63 62 72 61 69 6e 7a 2d 72 65 61 64 2d 72 65 6c 65 61 73 65 20 65 6c 74 29 29 0a 09 09 09 09 09 cbrainz-read-release.elt))......
1292e0 20 28 61 6c 69 73 74 2d 67 65 74 20 27 72 65 6c 65 61 73 65 73 20 72 65 63 6f 72 64 69 6e 67 29 .(alist-get.'releases.recording)
129300 29 29 0a 09 20 20 20 20 20 20 28 69 6e 66 6f 2d 6c 65 6e 67 74 68 2d 6d 73 20 20 20 20 20 20 20 ))........(info-length-ms.......
129320 20 2e 20 2c 6c 65 6e 67 74 68 2d 6d 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 ...,length-ms))))..(defun.emms-i
129340 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 70 72 6f 63 65 73 73 2d 74 79 70 65 2d 64 69 dapi-musicbrainz-process-type-di
129360 73 70 61 74 63 68 20 28 72 65 73 70 6f 6e 73 65 29 0a 20 20 22 43 61 6c 6c 20 74 68 65 20 61 70 spatch.(response)..."Call.the.ap
129380 70 72 6f 70 72 69 61 74 65 20 70 72 6f 63 65 73 73 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 66 6f propriate.processing.function.fo
1293a0 72 20 52 45 53 50 4f 4e 53 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 65 73 73 2d 66 20 r.RESPONSE."...(let.((process-f.
1293c0 28 63 6f 6e 64 20 28 28 61 6c 69 73 74 2d 67 65 74 20 27 61 72 74 69 73 74 73 20 72 65 73 70 6f (cond.((alist-get.'artists.respo
1293e0 6e 73 65 29 20 23 27 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 65 nse).#'emms-idapi-musicbrainz-re
129400 61 64 2d 61 72 74 69 73 74 29 0a 09 09 09 20 28 28 61 6c 69 73 74 2d 67 65 74 20 27 72 65 6c 65 ad-artist).....((alist-get.'rele
129420 61 73 65 73 20 72 65 73 70 6f 6e 73 65 29 20 23 27 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 ases.response).#'emms-idapi-musi
129440 63 62 72 61 69 6e 7a 2d 72 65 61 64 2d 72 65 6c 65 61 73 65 29 0a 09 09 09 20 28 28 61 6c 69 73 cbrainz-read-release).....((alis
129460 74 2d 67 65 74 20 27 72 65 63 6f 72 64 69 6e 67 73 20 72 65 73 70 6f 6e 73 65 29 20 23 27 65 6d t-get.'recordings.response).#'em
129480 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 65 61 64 2d 72 65 63 6f 72 64 ms-idapi-musicbrainz-read-record
1294a0 69 6e 67 29 0a 09 09 09 20 28 74 20 28 65 72 72 6f 72 20 22 75 6e 68 61 6e 64 6c 65 64 20 72 65 ing).....(t.(error."unhandled.re
1294c0 73 70 6f 6e 73 65 20 74 79 70 65 20 25 73 22 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 09 3b 3b sponse.type.%s".response))))..;;
1294e0 20 74 68 65 20 61 63 74 75 61 6c 20 69 74 65 6d 73 20 77 69 74 68 6f 75 74 20 68 65 61 64 65 72 .the.actual.items.without.header
129500 20 64 61 74 61 0a 09 28 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 20 28 6e 74 68 20 33 20 72 65 73 .data..(elements.(cdr.(nth.3.res
129520 70 6f 6e 73 65 29 29 29 0a 09 28 64 65 62 75 67 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 ponse)))..(debug-buffer.(get-buf
129540 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e fer-create.emms-idapi-musicbrain
129560 7a 2d 64 65 62 75 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 73 65 74 71 z-debug-buffer-name))).....(setq
129580 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 64 65 62 75 67 2d 62 75 .emms-idapi-musicbrainz-debug-bu
1295a0 66 66 65 72 20 64 65 62 75 67 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 ffer.debug-buffer).....(with-cur
1295c0 72 65 6e 74 2d 62 75 66 66 65 72 20 64 65 62 75 67 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 rent-buffer.debug-buffer.......(
1295e0 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 erase-buffer).......(insert.(for
129600 6d 61 74 20 22 25 73 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 mat."%s".response))).....(append
129620 20 28 61 6c 69 73 74 2d 67 65 74 20 27 71 75 65 72 79 20 72 65 73 70 6f 6e 73 65 29 0a 09 20 20 .(alist-get.'query.response)....
129640 20 20 28 6d 61 70 63 61 72 0a 09 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 65 29 0a 09 09 ..(mapcar.......#'(lambda.(e)...
129660 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 64 65 63 6f 64 65 0a .(emms-idapi-musicbrainz-decode.
129680 09 09 20 20 28 63 64 72 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 65 73 73 2d 66 20 65 29 29 29 ....(cdr.(funcall.process-f.e)))
1296a0 29 0a 09 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ).......elements))))..(defun.emm
1296c0 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 70 72 6f 63 65 73 73 2d 6a 73 6f 6e s-idapi-musicbrainz-process-json
1296e0 20 28 62 75 66 66 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 65 78 70 20 66 6f 72 .(buffer)..."Return.the.sexp.for
129700 6d 20 6f 66 20 74 68 65 20 6a 73 6f 6e 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 28 77 69 74 m.of.the.json.in.BUFFER."...(wit
129720 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 28 67 6f 74 h-current-buffer.buffer.....(got
129740 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 o-char.(point-min)).....(let.((h
129760 65 61 64 65 72 2d 6d 61 78 20 28 69 66 20 28 6e 6f 74 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f eader-max.(if.(not.(re-search-fo
129780 72 77 61 72 64 20 22 5c 6e 5c 6e 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 09 09 09 20 20 rward."\n\n".(point-max)))......
1297a0 28 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e 64 20 68 65 61 64 65 72 22 29 0a 09 09 09 (error."cannot.find.header")....
1297c0 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 (point)))).......(append........
1297e0 28 6a 73 6f 6e 2d 72 65 61 64 2d 66 72 6f 6d 2d 73 74 72 69 6e 67 0a 09 28 6d 6d 2d 64 65 63 6f (json-read-from-string..(mm-deco
129800 64 65 2d 73 74 72 69 6e 67 0a 09 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 68 65 de-string...(buffer-substring.he
129820 61 64 65 72 2d 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 09 20 27 75 74 66 2d 38 29 29 ader-max.(point-max))...'utf-8))
129840 0a 20 20 20 20 20 20 20 60 28 28 71 75 65 72 79 20 2e 20 2c 28 6c 69 73 74 20 65 6d 6d 73 2d 69 ........`((query...,(list.emms-i
129860 64 61 70 69 2d 71 75 65 72 79 2d 6c 6f 63 61 6c 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 dapi-query-local)))))))..(defun.
129880 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 70 72 6f 63 65 73 73 20 28 emms-idapi-musicbrainz-process.(
1298a0 62 75 66 66 65 72 29 0a 20 20 22 50 72 6f 63 65 73 73 20 72 65 73 70 6f 6e 73 65 20 73 74 6f 72 buffer)..."Process.response.stor
1298c0 65 64 20 69 6e 20 42 55 46 46 45 52 2e 20 52 65 74 75 72 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 ed.in.BUFFER..Return.BUFFER."...
1298e0 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 62 75 66 66 65 72 29 0a 09 20 20 20 20 28 6e 6f 74 (when.(or.(not.buffer)......(not
129900 20 28 62 75 66 66 65 72 70 20 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 .(bufferp.buffer))).....(error."
129920 63 61 6e 6e 6f 74 20 61 63 63 65 73 73 20 72 65 73 70 6f 6e 73 65 20 62 75 66 66 65 72 22 29 29 cannot.access.response.buffer"))
129940 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 ...(with-current-buffer.buffer..
129960 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 ...(goto-char.(point-min)).....(
129980 77 68 65 6e 20 28 6e 6f 74 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 48 54 when.(not.(re-search-forward."HT
1299a0 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 22 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f TP/1.1.200.OK".(line-end-positio
1299c0 6e 29 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 6e 6f 74 20 61 20 76 61 6c 69 64 n).t)).......(error."not.a.valid
1299e0 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 73 65 72 76 65 72 22 29 29 0a 20 20 .HTTP.response.from.server"))...
129a00 20 20 62 75 66 66 65 72 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..buffer))...;;;.---------------
129a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
129a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 43 61 6c 6c 0a 3b 3b 3b -------------------.;;;.Call.;;;
129a60 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
129a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
129aa0 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e ---.(defun.emms-idapi-musicbrain
129ac0 7a 2d 63 61 6c 6c 20 28 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 0a 20 20 22 4d 61 z-call.(search-term-alist)..."Ma
129ae0 6b 65 20 61 20 63 61 6c 6c 20 69 6e 74 6f 20 73 65 61 72 63 68 20 73 65 72 76 69 63 65 20 62 61 ke.a.call.into.search.service.ba
129b00 73 65 64 20 6f 6e 20 53 45 41 52 43 48 2d 54 45 52 4d 2d 41 4c 49 53 54 2e 22 0a 20 20 28 6c 65 sed.on.SEARCH-TERM-ALIST."...(le
129b20 74 20 28 62 75 66 66 65 72 0a 09 3b 3b 20 52 6f 62 65 72 74 20 4b 61 79 65 20 66 72 6f 6d 20 4d t.(buffer..;;.Robert.Kaye.from.M
129b40 75 73 69 63 42 72 61 69 6e 7a 20 73 61 69 64 20 6f 6e 20 74 68 65 20 32 31 73 74 20 6f 66 20 46 usicBrainz.said.on.the.21st.of.F
129b60 65 62 72 75 61 72 79 2c 0a 09 3b 3b 20 32 30 32 34 2c 20 74 68 61 74 20 74 68 69 73 20 66 6f 72 ebruary,..;;.2024,.that.this.for
129b80 6d 61 74 20 6f 66 20 75 73 65 72 20 61 67 65 6e 74 20 73 74 72 69 6e 67 20 69 73 20 67 6f 6f 64 mat.of.user.agent.string.is.good
129ba0 2e 0a 09 28 75 72 6c 2d 75 73 65 72 2d 61 67 65 6e 74 20 28 63 6f 6e 63 61 74 20 22 45 6d 61 63 ...(url-user-agent.(concat."Emac
129bc0 73 5f 45 6d 6d 73 2f 22 0a 09 09 09 09 65 6d 6d 73 2d 76 65 72 73 69 6f 6e 0a 09 09 09 09 22 20 s_Emms/".....emms-version.....".
129be0 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d (https://www.gnu.org/software/em
129c00 6d 73 2f 29 22 29 29 0a 09 28 75 72 6c 2d 73 74 72 69 6e 67 20 28 65 6d 6d 73 2d 69 64 61 70 69 ms/)"))..(url-string.(emms-idapi
129c20 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 6d 61 6b 65 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 0a -musicbrainz-make-search-string.
129c40 09 09 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 .......search-term-alist))).....
129c60 28 73 65 74 71 20 62 75 66 66 65 72 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 (setq.buffer.(url-retrieve-synch
129c80 72 6f 6e 6f 75 73 6c 79 0a 09 09 20 20 75 72 6c 2d 73 74 72 69 6e 67 0a 09 09 20 20 74 20 74 0a ronously.....url-string.....t.t.
129ca0 09 09 20 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 75 72 6c 2d 74 ....emms-idapi-musicbrainz-url-t
129cc0 69 6d 65 6f 75 74 2d 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 62 75 imeout-seconds)).....(if.(not.bu
129ce0 66 66 65 72 29 0a 09 28 65 72 72 6f 72 20 22 63 61 6c 6c 20 74 6f 20 6d 75 73 69 63 62 72 61 69 ffer)..(error."call.to.musicbrai
129d00 6e 7a 20 41 50 49 20 74 69 6d 65 6f 75 74 20 6f 72 20 72 65 74 75 72 6e 65 64 20 6e 6f 74 68 69 nz.API.timeout.or.returned.nothi
129d20 6e 67 22 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 ng").......(with-current-buffer.
129d40 62 75 66 66 65 72 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 69 64 61 70 69 2d 71 75 65 72 79 2d 6c buffer..(setq.emms-idapi-query-l
129d60 6f 63 61 6c 20 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 ocal.search-term-alist)).......(
129d80 73 65 74 71 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 75 72 6c 2d setq.emms-idapi-musicbrainz-url-
129da0 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 buffer.buffer))))..(defun.emms-i
129dc0 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 67 65 74 2d 73 65 61 72 63 68 2d 73 74 72 69 dapi-musicbrainz-get-search-stri
129de0 6e 67 20 28 66 69 65 6c 64 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 65 61 72 63 68 20 ng.(field)..."Return.the.search.
129e00 73 74 72 69 6e 67 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 46 49 45 4c 44 2e 22 0a 20 string.associated.with.FIELD."..
129e20 20 28 6c 65 74 20 28 28 73 74 72 69 6e 67 20 28 61 6c 69 73 74 2d 67 65 74 20 66 69 65 6c 64 20 .(let.((string.(alist-get.field.
129e40 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 73 65 61 72 63 68 2d 73 74 emms-idapi-musicbrainz-search-st
129e60 72 69 6e 67 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 73 74 72 69 6e ring-map))).....(when.(not.strin
129e80 67 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 6e 6f 20 61 73 73 6f 63 69 61 74 65 64 20 73 g).......(error."no.associated.s
129ea0 74 72 69 6e 67 20 66 6f 72 20 5c 22 25 73 5c 22 20 66 69 65 6c 64 22 20 66 69 65 6c 64 29 29 0a tring.for.\"%s\".field".field)).
129ec0 20 20 20 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d ....string))..(defun.emms-idapi-
129ee0 6d 75 73 69 63 62 72 61 69 6e 7a 2d 6d 61 6b 65 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 20 28 musicbrainz-make-search-string.(
129f00 74 65 72 6d 2d 61 6c 69 73 74 29 0a 20 20 28 6c 65 74 20 28 28 61 72 74 69 73 74 20 20 28 6f 72 term-alist)...(let.((artist..(or
129f20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 20 74 65 72 6d 2d 61 6c .(alist-get.'info-artist.term-al
129f40 69 73 74 29 0a 09 09 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 ist)........(alist-get.'info-alb
129f60 75 6d 61 72 74 69 73 74 20 74 65 72 6d 2d 61 6c 69 73 74 29 29 29 0a 09 28 72 65 6c 65 61 73 65 umartist.term-alist)))..(release
129f80 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 74 65 72 6d 2d 61 6c .(alist-get.'info-album..term-al
129fa0 69 73 74 29 29 0a 09 28 74 69 74 6c 65 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 69 6e 66 6f ist))..(title...(alist-get.'info
129fc0 2d 74 69 74 6c 65 20 20 74 65 72 6d 2d 61 6c 69 73 74 29 29 0a 09 3b 3b 20 28 72 65 69 64 20 20 -title..term-alist))..;;.(reid..
129fe0 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 72 65 69 64 20 20 20 20 20 20 20 20 74 65 72 6d 2d 61 ..(alist-get.'reid........term-a
12a000 6c 69 73 74 29 29 0a 09 3b 3b 20 28 61 72 69 64 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 list))..;;.(arid....(alist-get.'
12a020 61 72 69 64 20 20 20 20 20 20 20 20 74 65 72 6d 2d 61 6c 69 73 74 29 29 0a 09 29 0a 20 20 20 20 arid........term-alist))..).....
12a040 28 63 6f 6e 63 61 74 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 (concat.emms-idapi-musicbrainz-r
12a060 6f 6f 74 2d 75 72 6c 0a 0a 09 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 74 69 74 6c 65 0a oot-url.......(cond.((and.title.
12a080 09 09 09 61 72 74 69 73 74 29 0a 09 09 20 20 20 28 66 6f 72 6d 61 74 20 22 72 65 63 6f 72 64 69 ...artist)......(format."recordi
12a0a0 6e 67 2f 3f 71 75 65 72 79 3d 72 65 63 6f 72 64 69 6e 67 3a 25 73 25 73 61 72 74 69 73 74 3a 25 ng/?query=recording:%s%sartist:%
12a0c0 73 22 0a 09 09 09 20 20 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 s".......(url-encode-url.(concat
12a0e0 20 22 5c 22 22 20 74 69 74 6c 65 20 22 5c 22 22 29 29 0a 09 09 09 20 20 20 28 75 72 6c 2d 65 6e ."\"".title."\"")).......(url-en
12a100 63 6f 64 65 2d 75 72 6c 20 22 20 41 4e 44 20 22 29 0a 09 09 09 20 20 20 28 75 72 6c 2d 65 6e 63 code-url.".AND.").......(url-enc
12a120 6f 64 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 22 5c 22 22 20 61 72 74 69 73 74 20 22 5c 22 22 ode-url.(concat."\"".artist."\""
12a140 29 29 29 29 0a 0a 09 09 20 20 28 28 61 6e 64 20 61 72 74 69 73 74 0a 09 09 09 28 6e 6f 74 20 72 ))))......((and.artist....(not.r
12a160 65 6c 65 61 73 65 29 0a 09 09 09 28 6e 6f 74 20 74 69 74 6c 65 29 29 0a 09 09 20 20 20 28 66 6f elease)....(not.title))......(fo
12a180 72 6d 61 74 20 22 61 72 74 69 73 74 2f 3f 71 75 65 72 79 3d 25 73 22 20 28 75 72 6c 2d 65 6e 63 rmat."artist/?query=%s".(url-enc
12a1a0 6f 64 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 22 5c 22 22 20 61 72 74 69 73 74 20 22 5c 22 22 ode-url.(concat."\"".artist."\""
12a1c0 29 29 29 29 0a 0a 09 09 20 20 3b 3b 20 57 69 6c 6c 20 6f 6e 6c 79 20 77 6f 72 6b 20 69 66 20 74 ))))......;;.Will.only.work.if.t
12a1e0 68 65 20 62 72 6f 77 73 65 72 20 73 75 70 70 6c 69 65 73 20 61 20 6d 65 61 6e 69 6e 67 66 75 6c he.browser.supplies.a.meaningful
12a200 20 6d 75 73 69 63 62 72 61 69 6e 7a 20 41 52 49 44 0a 09 09 20 20 3b 3b 0a 09 09 20 20 3b 3b 20 .musicbrainz.ARID.....;;.....;;.
12a220 28 72 65 6c 65 61 73 65 0a 09 09 20 20 3b 3b 20 20 28 66 6f 72 6d 61 74 20 22 72 65 6c 65 61 73 (release.....;;..(format."releas
12a240 65 2f 3f 71 75 65 72 79 3d 72 65 6c 65 61 73 65 3a 25 73 25 73 25 73 22 0a 09 09 20 20 3b 3b 20 e/?query=release:%s%s%s".....;;.
12a260 09 20 20 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 22 5c 22 22 ....(url-encode-url.(concat."\""
12a280 20 72 65 6c 65 61 73 65 20 22 5c 22 22 29 29 0a 09 09 20 20 3b 3b 20 09 20 20 20 28 69 66 20 61 .release."\"")).....;;.....(if.a
12a2a0 72 74 69 73 74 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 22 20 rtist.(url-encode-url.(concat.".
12a2c0 41 4e 44 20 61 72 74 69 73 74 3a 5c 22 22 20 61 72 74 69 73 74 20 22 5c 22 22 29 29 20 22 22 29 AND.artist:\"".artist."\""))."")
12a2e0 0a 09 09 20 20 3b 3b 20 09 20 20 20 28 69 66 20 61 72 69 64 20 28 63 6f 6e 63 61 74 20 28 75 72 .....;;.....(if.arid.(concat.(ur
12a300 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 22 20 41 4e 44 20 22 29 20 22 61 72 69 64 3a 22 20 61 72 l-encode-url.".AND.")."arid:".ar
12a320 69 64 29 20 22 22 29 29 29 0a 0a 09 09 20 20 28 74 20 28 65 72 72 6f 72 20 22 75 6e 68 61 6e 64 id)."")))......(t.(error."unhand
12a340 6c 65 64 20 66 69 65 6c 64 20 25 73 22 20 74 65 72 6d 2d 61 6c 69 73 74 29 29 29 0a 09 20 20 20 led.field.%s".term-alist))).....
12a360 20 28 66 6f 72 6d 61 74 20 22 26 6c 69 6d 69 74 3d 25 64 26 66 6d 74 3d 6a 73 6f 6e 22 20 65 6d .(format."&limit=%d&fmt=json".em
12a380 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 72 65 73 70 6f 6e 73 65 2d 6c 69 ms-idapi-musicbrainz-response-li
12a3a0 6d 69 74 29 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d mit))))...;;;.------------------
12a3c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12a3e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 49 6e 74 65 72 66 61 63 65 0a 3b ----------------.;;;.Interface.;
12a400 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;.-----------------------------
12a420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12a440 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 -----.(defun.emms-idapi-musicbra
12a460 69 6e 7a 2d 73 65 61 72 63 68 20 28 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 0a 20 inz-search.(search-term-alist)..
12a480 20 22 49 44 41 50 49 20 69 6e 74 65 72 66 61 63 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 73 ."IDAPI.interface.function.for.s
12a4a0 65 61 72 63 68 69 6e 67 20 4d 75 73 69 63 42 72 61 69 6e 7a 20 73 65 72 76 69 63 65 2e 0a 0a 41 earching.MusicBrainz.service...A
12a4c0 52 49 44 20 6c 69 6d 69 74 73 20 74 68 65 20 73 65 61 72 63 68 20 74 6f 20 61 20 4d 75 73 69 63 RID.limits.the.search.to.a.Music
12a4e0 42 72 61 69 6e 7a 20 61 72 74 69 73 74 20 69 64 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 Brainz.artist.id."...(when.(not.
12a500 28 6c 69 73 74 70 20 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 28 (listp.search-term-alist)).....(
12a520 65 72 72 6f 72 20 22 25 73 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 22 20 73 65 61 72 63 68 2d error."%s.is.not.a.list".search-
12a540 74 65 72 6d 2d 61 6c 69 73 74 29 29 0a 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 term-alist))...(emms-idapi-music
12a560 62 72 61 69 6e 7a 2d 70 72 6f 63 65 73 73 2d 74 79 70 65 2d 64 69 73 70 61 74 63 68 0a 20 20 20 brainz-process-type-dispatch....
12a580 28 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a 2d 70 72 6f 63 65 73 73 2d (emms-idapi-musicbrainz-process-
12a5a0 6a 73 6f 6e 0a 20 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e 7a json.....(emms-idapi-musicbrainz
12a5c0 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 28 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 -process......(emms-idapi-musicb
12a5e0 72 61 69 6e 7a 2d 63 61 6c 6c 20 73 65 61 72 63 68 2d 74 65 72 6d 2d 61 6c 69 73 74 29 29 29 29 rainz-call.search-term-alist))))
12a600 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 )...(provide.'emms-idapi-musicbr
12a620 61 69 6e 7a 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 64 61 70 69 2d 6d 75 73 69 63 62 72 61 69 6e ainz)..;;;.emms-idapi-musicbrain
12a640 7a 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 z.el.ends.here..................
12a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms.el.................
12a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
12a880 30 31 36 34 32 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 31 37 30 00 20 30 00 00 00 0164201.00000000000.012170..0...
12a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
12a920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
12a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12aa00 3b 3b 3b 20 65 6d 6d 73 2e 65 6c 20 2d 2d 2d 20 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d ;;;.emms.el.---.The.Emacs.Multim
12aa20 65 64 69 61 20 53 79 73 74 65 6d 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 edia.System..-*-.lexical-binding
12aa40 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 33 2d :.t;.-*-..;;.Copyright.(C).2003-
12aa60 32 30 32 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 2025..Free.Software.Foundation,.
12aa80 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 Inc...;;.Author:.Jorgen.Sch..fer
12aaa0 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 78 2e 63 78 3e 2c 20 74 68 65 20 45 6d 6d 73 20 64 65 .<forcer@forcix.cx>,.the.Emms.de
12aac0 76 65 6c 6f 70 65 72 73 20 28 73 65 65 20 41 55 54 48 4f 52 53 20 66 69 6c 65 29 0a 3b 3b 20 4d velopers.(see.AUTHORS.file).;;.M
12aae0 61 69 6e 74 61 69 6e 65 72 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e aintainer:.Yoni.Rabkin.<yrk@gnu.
12ab00 6f 72 67 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 32 34 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a org>.;;.Version:.24.;;.Keywords:
12ab20 20 65 6d 6d 73 2c 20 6d 70 33 2c 20 6f 67 67 2c 20 66 6c 61 63 2c 20 6d 75 73 69 63 2c 20 6d 70 .emms,.mp3,.ogg,.flac,.music,.mp
12ab40 65 67 2c 20 76 69 64 65 6f 2c 20 6d 75 6c 74 69 6d 65 64 69 61 0a 3b 3b 20 50 61 63 6b 61 67 65 eg,.video,.multimedia.;;.Package
12ab60 2d 54 79 70 65 3a 20 6d 75 6c 74 69 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 -Type:.multi.;;.Package-Requires
12ab80 3a 20 28 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29 20 28 6e 61 64 76 69 63 65 20 22 30 2e 33 22 :.((cl-lib."0.5").(nadvice."0.3"
12aba0 29 20 28 73 65 71 29 29 0a 3b 3b 20 75 72 6c 3a 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 ).(seq)).;;.url:.https://www.gnu
12abc0 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d 6d 73 2f 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c .org/software/emms/..;;.This.fil
12abe0 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 e.is.part.of.EMMS...;;.EMMS.is.f
12ac00 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 ree.software;.you.can.redistribu
12ac20 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 te.it.and/or.modify.it.;;.under.
12ac40 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 the.terms.of.the.GNU.General.Pub
12ac60 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 lic.License.as.published.by.;;.t
12ac80 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 he.Free.Software.Foundation;.eit
12aca0 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f her.version.3,.or.(at.your.optio
12acc0 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d n).;;.any.later.version...;;.EMM
12ace0 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 S.is.distributed.in.the.hope.tha
12ad00 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 t.it.will.be.useful,.but.WITHOUT
12ad20 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 .;;.ANY.WARRANTY;.without.even.t
12ad40 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 he.implied.warranty.of.MERCHANTA
12ad60 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 BILITY.;;.or.FITNESS.FOR.A.PARTI
12ad80 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 CULAR.PURPOSE...See.the.GNU.Gene
12ada0 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 ral.Public.;;.License.for.more.d
12adc0 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 etails...;;.You.should.have.rece
12ade0 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
12ae00 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 ublic.License.;;.along.with.this
12ae20 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f .program...If.not,.see.<https://
12ae40 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d www.gnu.org/licenses/>...;;;.Com
12ae60 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 76 65 72 79 20 63 6f mentary:..;;.This.is.the.very.co
12ae80 72 65 20 6f 66 20 45 4d 4d 53 2e 20 20 49 74 20 70 72 6f 76 69 64 65 73 20 77 61 79 73 20 74 6f re.of.EMMS...It.provides.ways.to
12aea0 20 70 6c 61 79 20 61 20 74 72 61 63 6b 0a 3b 3b 20 75 73 69 6e 67 20 60 65 6d 6d 73 2d 73 74 61 .play.a.track.;;.using.`emms-sta
12aec0 72 74 27 2c 20 74 6f 20 67 6f 20 74 68 72 6f 75 67 68 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 rt',.to.go.through.the.playlist.
12aee0 75 73 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 0a 3b 3b 20 60 65 6d 6d 73 2d 6e 65 78 74 using.the.commands.;;.`emms-next
12af00 27 20 61 6e 64 20 60 65 6d 6d 73 2d 70 72 65 76 69 6f 75 73 27 2c 20 74 6f 20 73 74 6f 70 20 74 '.and.`emms-previous',.to.stop.t
12af20 68 65 20 70 6c 61 79 62 61 63 6b 20 75 73 69 6e 67 0a 3b 3b 20 60 65 6d 6d 73 2d 73 74 6f 70 27 he.playback.using.;;.`emms-stop'
12af40 2c 20 61 6e 64 20 74 6f 20 73 65 65 20 77 68 61 74 27 73 20 63 75 72 72 65 6e 74 6c 79 20 70 6c ,.and.to.see.what's.currently.pl
12af60 61 79 69 6e 67 20 75 73 69 6e 67 20 60 65 6d 6d 73 2d 73 68 6f 77 27 2e 0a 0a 3b 3b 20 42 75 74 aying.using.`emms-show'...;;.But
12af80 20 69 6e 20 69 74 73 65 6c 66 2c 20 74 68 69 73 20 63 6f 72 65 20 69 73 20 75 73 65 6c 65 73 73 .in.itself,.this.core.is.useless
12afa0 2c 20 62 65 63 61 75 73 65 20 69 74 20 64 6f 65 73 6e 27 74 20 6b 6e 6f 77 20 68 6f 77 20 74 6f ,.because.it.doesn't.know.how.to
12afc0 0a 3b 3b 20 70 6c 61 79 20 61 6e 79 20 74 72 61 63 6b 73 20 2d 2d 2d 20 79 6f 75 20 6e 65 65 64 .;;.play.any.tracks.---.you.need
12afe0 20 70 6c 61 79 65 72 73 20 66 6f 72 20 74 68 69 73 2e 20 20 49 6e 20 66 61 63 74 2c 20 69 74 20 .players.for.this...In.fact,.it.
12b000 64 6f 65 73 6e 27 74 0a 3b 3b 20 65 76 65 6e 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 66 69 6e 64 doesn't.;;.even.know.how.to.find
12b020 20 61 6e 79 20 74 72 61 63 6b 73 20 74 6f 20 63 6f 6e 73 69 64 65 72 20 70 6c 61 79 69 6e 67 20 .any.tracks.to.consider.playing.
12b040 2d 2d 2d 20 66 6f 72 20 74 68 69 73 2c 0a 3b 3b 20 79 6f 75 20 6e 65 65 64 20 73 6f 75 72 63 65 ---.for.this,.;;.you.need.source
12b060 73 2e 0a 0a 3b 3b 20 41 20 73 61 6d 70 6c 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 s...;;.A.sample.configuration.is
12b080 20 6f 66 66 65 72 65 64 20 69 6e 20 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 2c 20 61 6e 64 20 74 .offered.in.emms-setup.el,.and.t
12b0a0 68 65 0a 3b 3b 20 46 72 69 65 6e 64 6c 79 20 4d 61 6e 75 61 6c 20 69 6e 20 74 68 65 20 64 6f 63 he.;;.Friendly.Manual.in.the.doc
12b0c0 2f 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 62 6f 74 68 20 64 65 74 61 69 6c 65 64 2c 20 61 6e /.directory.is.both.detailed,.an
12b0e0 64 20 6b 65 70 74 20 75 70 0a 3b 3b 20 74 6f 20 64 61 74 65 2e 0a 0a 0a 3b 3b 3b 20 43 6f 64 65 d.kept.up.;;.to.date....;;;.Code
12b100 3a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 6f 6d 70 61 74 29 0a 28 72 65 71 75 69 72 :.(require.'emms-compat).(requir
12b120 65 20 27 73 65 71 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 76 65 72 73 69 6f 6e 20 22 32 e.'seq)..(defvar.emms-version."2
12b140 34 22 0a 20 20 22 45 4d 4d 53 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 2e 22 29 0a 0a 3b 3b 4"..."EMMS.version.string.")..;;
12b160 3b 20 55 73 65 72 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 0a 28 64 65 66 67 72 6f 75 70 20 65 ;.User.Customization.(defgroup.e
12b180 6d 6d 73 20 6e 69 6c 0a 20 20 22 2a 54 68 65 20 45 6d 61 63 73 20 4d 75 6c 74 69 6d 65 64 69 61 mms.nil..."*The.Emacs.Multimedia
12b1a0 20 53 79 73 74 65 6d 2e 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 22 0a 20 20 3a 67 .System."...:prefix."emms-"...:g
12b1c0 72 6f 75 70 20 27 6d 75 6c 74 69 6d 65 64 69 61 0a 20 20 3a 67 72 6f 75 70 20 27 61 70 70 6c 69 roup.'multimedia...:group.'appli
12b1e0 63 61 74 69 6f 6e 73 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 20 cations)..(defgroup.emms-player.
12b200 6e 69 6c 0a 20 20 22 2a 54 72 61 63 6b 20 70 6c 61 79 65 72 73 20 66 6f 72 20 45 4d 4d 53 2e 22 nil..."*Track.players.for.EMMS."
12b220 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 22 0a 20 20 3a 67 72 6f ...:prefix."emms-player-"...:gro
12b240 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 73 6f 75 72 63 65 up.'emms)..(defgroup.emms-source
12b260 20 6e 69 6c 0a 20 20 22 2a 54 72 61 63 6b 20 73 6f 75 72 63 65 73 20 66 6f 72 20 45 4d 4d 53 2e .nil..."*Track.sources.for.EMMS.
12b280 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 22 0a 20 20 3a 67 72 "...:prefix."emms-source-"...:gr
12b2a0 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 oup.'emms)..(defcustom.emms-play
12b2c0 65 72 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 2a 4c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 20 er-list.nil..."*List.of.players.
12b2e0 74 68 61 74 20 45 4d 4d 53 20 63 61 6e 20 75 73 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d that.EMMS.can.use."...:group.'em
12b300 6d 73 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 28 73 79 6d 62 6f 6c 20 3a 74 61 67 ms...:type.'(repeat.(symbol.:tag
12b320 20 22 50 6c 61 79 65 72 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 68 ."Player")))..(defcustom.emms-sh
12b340 6f 77 2d 66 6f 72 6d 61 74 20 22 43 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 3a 20 25 73 ow-format."Currently.playing:.%s
12b360 22 0a 20 20 22 2a 54 68 65 20 66 6f 72 6d 61 74 20 74 6f 20 75 73 65 20 66 6f 72 20 60 65 6d 6d "..."*The.format.to.use.for.`emm
12b380 73 2d 73 68 6f 77 27 2e 0a 41 6e 79 20 5c 22 25 73 5c 22 20 69 73 20 72 65 70 6c 61 63 65 64 20 s-show'..Any.\"%s\".is.replaced.
12b3a0 62 79 20 77 68 61 74 20 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2d by.what.`emms-track-description-
12b3c0 66 75 6e 63 74 69 6f 6e 27 20 72 65 74 75 72 6e 73 0a 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e function'.returns.for.the.curren
12b3e0 74 6c 79 20 70 6c 61 79 69 6e 67 20 74 72 61 63 6b 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d tly.playing.track."...:group.'em
12b400 6d 73 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 ms...:type.'string)..(defcustom.
12b420 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 6e 69 6c 0a 20 20 22 2a 4e 6f 6e emms-repeat-playlist.nil..."*Non
12b440 2d 6e 69 6c 20 69 66 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 73 68 6f 75 6c 64 -nil.if.the.EMMS.playlist.should
12b460 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 70 65 61 74 2e 0a 49 66 20 6e 69 6c 2c 20 70 .automatically.repeat..If.nil,.p
12b480 6c 61 79 62 61 63 6b 20 77 69 6c 6c 20 73 74 6f 70 20 77 68 65 6e 20 74 68 65 20 6c 61 73 74 20 layback.will.stop.when.the.last.
12b4a0 74 72 61 63 6b 20 66 69 6e 69 73 68 65 73 20 70 6c 61 79 69 6e 67 2e 0a 49 66 20 6e 6f 6e 2d 6e track.finishes.playing..If.non-n
12b4c0 69 6c 2c 20 45 4d 4d 53 20 77 69 6c 6c 20 77 72 61 70 20 62 61 63 6b 20 74 6f 20 74 68 65 20 66 il,.EMMS.will.wrap.back.to.the.f
12b4e0 69 72 73 74 20 74 72 61 63 6b 20 77 68 65 6e 20 74 68 61 74 20 68 61 70 70 65 6e 73 2e 22 0a 20 irst.track.when.that.happens."..
12b500 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a .:group.'emms...:type.'boolean).
12b520 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e .(defcustom.emms-player-next-fun
12b540 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 6e 65 78 74 2d 6e 6f 65 72 72 6f 72 0a 20 20 22 2a 41 20 66 ction.'emms-next-noerror..."*A.f
12b560 75 6e 63 74 69 6f 6e 20 72 75 6e 20 77 68 65 6e 20 45 4d 4d 53 20 74 68 69 6e 6b 73 20 74 68 65 unction.run.when.EMMS.thinks.the
12b580 20 6e 65 78 74 20 73 6f 6e 67 20 73 68 6f 75 6c 64 20 62 65 20 70 6c 61 79 65 64 2e 22 0a 20 20 .next.song.should.be.played."...
12b5a0 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 :group.'emms...:type.'function..
12b5c0 20 3a 6f 70 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 6e 65 78 74 2d 6e 6f 65 72 72 6f 72 0a 09 20 .:options.'(emms-next-noerror...
12b5e0 20 20 20 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d ....emms-random))..(defcustom.em
12b600 6d 73 2d 72 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 20 6e 69 6c 0a 20 20 22 2a 4e 6f 6e 2d 6e ms-random-playlist.nil..."*Non-n
12b620 69 6c 20 6d 65 61 6e 73 20 74 68 61 74 20 74 72 61 63 6b 73 20 61 72 65 20 70 6c 61 79 65 64 20 il.means.that.tracks.are.played.
12b640 72 61 6e 64 6f 6d 6c 79 2e 20 49 66 20 6e 69 6c 2c 20 74 72 61 63 6b 73 0a 61 72 65 20 70 6c 61 randomly..If.nil,.tracks.are.pla
12b660 79 65 64 20 73 65 71 75 65 6e 74 69 61 6c 6c 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d yed.sequentially."...:group.'emm
12b680 73 0a 20 20 3a 73 65 74 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 0a s...:set.(lambda.(symbol.value).
12b6a0 20 20 20 20 20 20 20 20 20 28 73 65 74 20 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 20 20 .........(set.symbol.value).....
12b6c0 20 20 20 20 20 28 69 66 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .....(if.value..............(set
12b6e0 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d q.emms-player-next-function.#'em
12b700 6d 73 2d 72 61 6e 64 6f 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 ms-random)............(setq.emms
12b720 2d 70 6c 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 6e 65 78 -player-next-function.#'emms-nex
12b740 74 2d 6e 6f 65 72 72 6f 72 29 29 29 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a t-noerror)))...:type.'boolean)..
12b760 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 (defvar-local.emms-repeat-track.
12b780 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 2c 20 70 6c 61 79 62 61 63 6b 20 77 69 6c 6c 20 72 65 nil..."Non-nil,.playback.will.re
12b7a0 70 65 61 74 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 20 20 49 66 20 6e 69 6c 2c 20 45 4d 4d peat.current.track...If.nil,.EMM
12b7c0 53 20 77 69 6c 6c 20 70 6c 61 79 0a 74 72 61 63 6b 20 62 79 20 74 72 61 63 6b 20 6e 6f 72 6d 61 S.will.play.track.by.track.norma
12b7e0 6c 6c 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 65 6d 6d 73 2d 73 69 6e 67 6c lly.")..(defvar-local.emms-singl
12b800 65 2d 74 72 61 63 6b 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 2c 20 70 6c 61 79 20 74 68 65 e-track.nil..."Non-nil,.play.the
12b820 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 61 6e 64 20 74 68 65 6e 20 73 74 6f 70 2e 22 29 0a .current.track.and.then.stop.").
12b840 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 .(defcustom.emms-completing-read
12b860 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 28 69 66 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 27 69 64 -function...(if.(and.(boundp.'id
12b880 6f 2d 6d 6f 64 65 29 0a 09 20 20 20 69 64 6f 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 27 69 64 6f o-mode).....ido-mode).......'ido
12b8a0 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 27 63 6f 6d 70 6c 65 74 69 6e 67 -completing-read.....'completing
12b8c0 2d 72 65 61 64 29 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 -read)..."Function.to.call.when.
12b8e0 70 72 6f 6d 70 74 69 6e 67 20 75 73 65 72 20 74 6f 20 63 68 6f 6f 73 65 20 62 65 74 77 65 65 6e prompting.user.to.choose.between
12b900 20 61 20 6c 69 73 74 20 6f 66 20 6f 70 74 69 6f 6e 73 2e 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 .a.list.of.options..This.should.
12b920 74 61 6b 65 20 74 68 65 20 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 60 63 6f 6d 70 take.the.same.arguments.as.`comp
12b940 6c 65 74 69 6e 67 2d 72 65 61 64 27 2e 20 20 53 6f 6d 65 0a 70 6f 73 73 69 62 6c 65 20 76 61 6c leting-read'...Some.possible.val
12b960 75 65 73 20 61 72 65 20 60 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 27 20 61 6e 64 20 60 69 ues.are.`completing-read'.and.`i
12b980 64 6f 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 27 2e 0a 4e 6f 74 65 20 74 68 61 74 20 79 do-completing-read'..Note.that.y
12b9a0 6f 75 20 6d 75 73 74 20 73 65 74 20 60 69 64 6f 2d 6d 6f 64 65 27 20 69 66 20 75 73 69 6e 67 0a ou.must.set.`ido-mode'.if.using.
12b9c0 60 69 64 6f 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 27 2e 22 0a 20 20 3a 67 72 6f 75 70 `ido-completing-read'."...:group
12b9e0 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 .'emms...:type.'function)..(defc
12ba00 75 73 74 6f 6d 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2d 66 75 6e ustom.emms-track-description-fun
12ba20 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 69 6d 70 6c 65 2d 64 65 73 63 72 69 70 ction.'emms-track-simple-descrip
12ba40 74 69 6f 6e 0a 20 20 22 2a 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 64 65 73 63 72 69 62 69 6e 67 tion..."*Function.for.describing
12ba60 20 61 6e 20 45 4d 4d 53 20 74 72 61 63 6b 20 69 6e 20 61 20 75 73 65 72 2d 66 72 69 65 6e 64 6c .an.EMMS.track.in.a.user-friendl
12ba80 79 20 77 61 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 y.way."...:group.'emms...:type.'
12baa0 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 function)..(defcustom.emms-playe
12bac0 72 2d 64 65 6c 61 79 20 30 0a 20 20 22 54 68 65 20 64 65 6c 61 79 20 74 6f 20 70 61 75 73 65 20 r-delay.0..."The.delay.to.pause.
12bae0 61 66 74 65 72 20 61 20 70 6c 61 79 65 72 20 66 69 6e 69 73 68 65 64 2e 0a 54 68 69 73 20 69 73 after.a.player.finished..This.is
12bb00 20 61 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f .a.floating-point.number.of.seco
12bb20 6e 64 73 2e 20 20 54 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 0a 66 6f 72 20 73 6f 6d 65 nds...This.is.necessary.for.some
12bb40 20 70 6c 61 74 66 6f 72 6d 73 20 77 68 65 72 65 20 69 74 20 74 61 6b 65 73 20 61 20 62 69 74 20 .platforms.where.it.takes.a.bit.
12bb60 74 6f 20 66 72 65 65 20 74 68 65 20 61 75 64 69 6f 20 64 65 76 69 63 65 0a 61 66 74 65 72 20 61 to.free.the.audio.device.after.a
12bb80 20 70 6c 61 79 65 72 20 68 61 73 20 66 69 6e 69 73 68 65 64 2e 20 20 49 66 20 45 4d 4d 53 20 69 .player.has.finished...If.EMMS.i
12bba0 73 20 73 6b 69 70 70 69 6e 67 20 73 6f 6e 67 73 2c 20 69 6e 63 72 65 61 73 65 0a 74 68 69 73 20 s.skipping.songs,.increase.this.
12bbc0 6e 75 6d 62 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 0a 20 20 3a 67 72 6f 75 number."...:type.'number...:grou
12bbe0 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 p.'emms)..(defcustom.emms-playli
12bc00 73 74 2d 73 68 75 66 66 6c 65 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 st-shuffle-function.'emms-playli
12bc20 73 74 2d 73 69 6d 70 6c 65 2d 73 68 75 66 66 6c 65 0a 20 20 22 2a 54 68 65 20 66 75 6e 63 74 69 st-simple-shuffle..."*The.functi
12bc40 6f 6e 20 74 6f 20 75 73 65 20 66 6f 72 20 73 68 75 66 66 6c 69 6e 67 20 74 68 65 20 70 6c 61 79 on.to.use.for.shuffling.the.play
12bc60 6c 69 73 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 list."...:type.'function...:grou
12bc80 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 p.'emms)..(defcustom.emms-playli
12bca0 73 74 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d st-sort-function.'emms-playlist-
12bcc0 73 69 6d 70 6c 65 2d 73 6f 72 74 0a 20 20 22 2a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 simple-sort..."*The.function.to.
12bce0 75 73 65 20 66 6f 72 20 73 6f 72 74 69 6e 67 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 use.for.sorting.the.playlist."..
12bd00 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 .:type.'function...:group.'emms)
12bd20 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 69 71 2d ..(defcustom.emms-playlist-uniq-
12bd40 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 75 function.'emms-playlist-simple-u
12bd60 6e 69 71 0a 20 20 22 2a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 75 73 65 20 66 6f 72 20 niq..."*The.function.to.use.for.
12bd80 72 65 6d 6f 76 69 6e 67 20 64 75 70 6c 69 63 61 74 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 removing.duplicate.tracks.in.the
12bda0 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 .playlist."...:type.'function...
12bdc0 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 :group.'emms)..(defcustom.emms-s
12bde0 6f 72 74 2d 6c 65 73 73 70 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 73 6f 72 74 2d 74 72 ort-lessp-function.'emms-sort-tr
12be00 61 63 6b 2d 6e 61 6d 65 2d 6c 65 73 73 2d 70 0a 20 20 22 2a 46 75 6e 63 74 69 6f 6e 20 66 6f 72 ack-name-less-p..."*Function.for
12be20 20 63 6f 6d 70 61 72 69 6e 67 20 74 77 6f 20 45 4d 4d 53 20 74 72 61 63 6b 73 2e 0a 54 68 65 20 .comparing.two.EMMS.tracks..The.
12be40 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 function.should.return.non-nil.i
12be60 66 20 61 6e 64 20 6f 6e 6c 79 20 69 66 20 74 68 65 20 66 69 72 73 74 20 74 72 61 63 6b 0a 73 6f f.and.only.if.the.first.track.so
12be80 72 74 73 20 62 65 66 6f 72 65 20 74 68 65 20 73 65 63 6f 6e 64 20 28 73 65 65 20 60 73 6f 72 74 rts.before.the.second.(see.`sort
12bea0 27 29 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 75 6e ')."...:group.'emms...:type.'fun
12bec0 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ction)..(defcustom.emms-playlist
12bee0 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 20 2a 45 4d 4d 53 20 50 6c 61 79 6c 69 73 74 2a 22 0a -buffer-name.".*EMMS.Playlist*".
12bf00 20 20 22 2a 54 68 65 20 64 65 66 61 75 6c 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 45 4d 4d 53 .."*The.default.name.of.the.EMMS
12bf20 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 .playlist.buffer."...:type.'stri
12bf40 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 ng...:group.'emms)..(defcustom.e
12bf60 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 mms-playlist-default-major-mode.
12bf80 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 0a 20 20 22 2a 54 68 65 20 64 65 66 61 'emms-playlist-mode..."*The.defa
12bfa0 75 6c 74 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 ult.major.mode.for.EMMS.playlist
12bfc0 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 65 ."...:type.'function...:group.'e
12bfe0 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 mms)..(defcustom.emms-playlist-i
12c000 6e 73 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 6c nsert-track-function.'emms-playl
12c020 69 73 74 2d 73 69 6d 70 6c 65 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 22 2a 41 20 66 75 ist-simple-insert-track..."*A.fu
12c040 6e 63 74 69 6f 6e 20 74 6f 20 69 6e 73 65 72 74 20 61 20 74 72 61 63 6b 20 69 6e 74 6f 20 74 68 nction.to.insert.a.track.into.th
12c060 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d e.playlist.buffer."...:group.'em
12c080 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 28 6d 61 6b 65 2d 76 61 72 69 ms...:type.'function).(make-vari
12c0a0 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 able-buffer-local.'emms-playlist
12c0c0 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 -insert-track-function)..(defcus
12c0e0 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 2d 66 tom.emms-playlist-update-track-f
12c100 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 75 70 unction.'emms-playlist-simple-up
12c120 64 61 74 65 2d 74 72 61 63 6b 0a 20 20 22 2a 41 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 75 70 64 date-track..."*A.function.to.upd
12c140 61 74 65 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 0a 54 68 69 73 20 69 73 20 ate.the.track.at.point..This.is.
12c160 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f called.when.the.track.informatio
12c180 6e 20 63 68 61 6e 67 65 64 2e 20 20 54 68 69 73 20 61 6c 73 6f 0a 73 68 6f 75 6c 64 6e 27 74 20 n.changed...This.also.shouldn't.
12c1a0 61 73 73 75 6d 65 20 74 68 61 74 20 74 68 65 20 74 72 61 63 6b 20 68 61 73 20 62 65 65 6e 20 69 assume.that.the.track.has.been.i
12c1c0 6e 73 65 72 74 65 64 20 62 65 66 6f 72 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a nserted.before."...:group.'emms.
12c1e0 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c ..:type.'function).(make-variabl
12c200 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e e-buffer-local.'emms-playlist-in
12c220 73 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d sert-track-function)..(defcustom
12c240 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 6c 65 74 65 2d 74 72 61 63 6b 2d 66 75 6e 63 .emms-playlist-delete-track-func
12c260 74 69 6f 6e 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 64 65 6c 65 74 tion.'emms-playlist-simple-delet
12c280 65 2d 74 72 61 63 6b 0a 20 20 22 2a 41 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 64 65 6c 65 74 65 e-track..."*A.function.to.delete
12c2a0 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 70 6c 61 79 6c .the.track.at.point.in.the.playl
12c2c0 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 ist.buffer."...:group.'emms...:t
12c2e0 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 ype.'function).(make-variable-bu
12c300 66 66 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 6c 65 74 65 ffer-local.'emms-playlist-delete
12c320 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d -track-function)..(defcustom.emm
12c340 73 2d 6f 6b 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 64 65 66 61 75 6c s-ok-track-function.'emms-defaul
12c360 74 2d 6f 6b 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 22 2a 46 75 6e 63 74 69 6f 6e t-ok-track-function..."*Function
12c380 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 20 77 65 20 73 68 6f 75 6c 64 6e 27 74 20 73 6b .returns.true.if.we.shouldn't.sk
12c3a0 69 70 20 74 68 69 73 20 74 72 61 63 6b 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 ip.this.track."...:group.'emms..
12c3c0 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d .:type.'function)..(defcustom.em
12c3e0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 65 64 2d 68 6f 6f 6b ms-playlist-source-inserted-hook
12c400 20 6e 69 6c 0a 20 20 22 2a 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 20 73 6f 75 72 63 65 20 .nil..."*Hook.run.when.a.source.
12c420 67 6f 74 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a got.inserted.into.the.playlist..
12c440 54 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 61 72 72 6f 77 65 64 20 74 6f 20 74 68 65 20 6e 65 The.buffer.is.narrowed.to.the.ne
12c460 77 20 74 72 61 63 6b 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 w.tracks."...:type.'hook...:grou
12c480 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 p.'emms)..(defcustom.emms-playli
12c4a0 73 74 2d 73 65 6c 65 63 74 69 6f 6e 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 st-selection-changed-hook.nil...
12c4c0 22 2a 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 61 6e 6f 74 68 65 72 20 74 72 61 63 6b 20 69 "*Hook.run.after.another.track.i
12c4e0 73 20 73 65 6c 65 63 74 65 64 20 69 6e 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 2e s.selected.in.the.EMMS.playlist.
12c500 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a "...:group.'emms...:type.'hook).
12c520 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 65 .(defcustom.emms-playlist-cleare
12c540 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 2a 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 74 68 d-hook.nil..."*Hook.run.after.th
12c560 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 69 73 20 63 6c 65 61 72 e.current.EMMS.playlist.is.clear
12c580 65 64 2e 0a 54 68 69 73 20 68 61 70 70 65 6e 73 20 62 6f 74 68 20 77 68 65 6e 20 74 68 65 20 70 ed..This.happens.both.when.the.p
12c5a0 6c 61 79 6c 69 73 74 20 69 73 20 63 6c 65 61 72 65 64 20 61 6e 64 20 77 68 65 6e 20 61 20 6e 65 laylist.is.cleared.and.when.a.ne
12c5c0 77 0a 62 75 66 66 65 72 20 69 73 20 63 72 65 61 74 65 64 20 66 6f 72 20 69 74 2e 22 0a 20 20 3a w.buffer.is.created.for.it."...:
12c5e0 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 group.'emms...:type.'hook)..(def
12c600 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 66 75 6e custom.emms-track-initialize-fun
12c620 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 2a 4c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 ctions.nil..."*List.of.functions
12c640 20 74 6f 20 63 61 6c 6c 20 66 6f 72 20 65 61 63 68 20 6e 65 77 20 45 4d 4d 53 20 74 72 61 63 6b .to.call.for.each.new.EMMS.track
12c660 2e 0a 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 ..This.can.be.used.to.initialize
12c680 20 74 72 61 63 6b 73 20 77 69 74 68 20 76 61 72 69 6f 75 73 20 69 6e 66 6f 2e 22 0a 20 20 3a 67 .tracks.with.various.info."...:g
12c6a0 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 roup.'emms...:type.'hook)..(defc
12c6c0 75 73 74 6f 6d 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e 66 6f 2d 66 69 6c 74 65 72 73 20 6e 69 ustom.emms-track-info-filters.ni
12c6e0 6c 0a 20 20 22 2a 4c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 20 l..."*List.of.functions.to.call.
12c700 77 68 65 6e 20 61 20 74 72 61 63 6b 20 63 68 61 6e 67 65 73 20 64 61 74 61 2c 20 62 65 66 6f 72 when.a.track.changes.data,.befor
12c720 65 20 75 70 64 61 74 69 6e 67 0a 74 68 65 20 64 69 73 70 6c 61 79 2e 0a 54 68 65 73 65 20 66 75 e.updating.the.display..These.fu
12c740 6e 63 74 69 6f 6e 73 20 61 72 65 20 70 61 73 73 65 64 20 74 68 65 20 74 72 61 63 6b 20 61 73 20 nctions.are.passed.the.track.as.
12c760 61 6e 20 61 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a an.argument."...:group.'emms...:
12c780 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 74 72 61 type.'hook)..(defcustom.emms-tra
12c7a0 63 6b 2d 75 70 64 61 74 65 64 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 2a 4c 69 73 ck-updated-functions.nil..."*Lis
12c7c0 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 61 20 74 72 t.of.functions.to.call.when.a.tr
12c7e0 61 63 6b 20 63 68 61 6e 67 65 73 20 64 61 74 61 2c 20 61 66 74 65 72 20 75 70 64 61 74 69 6e 67 ack.changes.data,.after.updating
12c800 0a 74 68 65 20 64 69 73 70 6c 61 79 2e 0a 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 .the.display..These.functions.ar
12c820 65 20 70 61 73 73 65 64 20 74 68 65 20 74 72 61 63 6b 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e e.passed.the.track.as.an.argumen
12c840 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b t."...:group.'emms...:type.'hook
12c860 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 )..(defcustom.emms-player-starte
12c880 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 2a 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 d-hook.nil..."*Hook.run.when.an.
12c8a0 45 4d 4d 53 20 70 6c 61 79 65 72 20 73 74 61 72 74 73 20 70 6c 61 79 69 6e 67 2e 22 0a 20 20 3a EMMS.player.starts.playing."...:
12c8c0 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 6f 70 74 group.'emms...:type.'hook...:opt
12c8e0 69 6f 6e 73 20 27 28 65 6d 6d 73 2d 73 68 6f 77 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 ions.'(emms-show))..(defcustom.e
12c900 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 2a mms-player-stopped-hook.nil..."*
12c920 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 65 72 20 69 73 20 Hook.run.when.an.EMMS.player.is.
12c940 73 74 6f 70 70 65 64 20 62 79 20 74 68 65 20 75 73 65 72 2e 0a 53 65 65 20 60 65 6d 6d 73 2d 70 stopped.by.the.user..See.`emms-p
12c960 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 layer-finished-hook'."...:group.
12c980 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 'emms...:type.'hook)..(defcustom
12c9a0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 .emms-player-finished-hook.nil..
12c9c0 20 22 2a 48 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 65 72 20 ."*Hook.run.when.an.EMMS.player.
12c9e0 66 69 6e 69 73 68 65 73 20 70 6c 61 79 69 6e 67 20 61 20 74 72 61 63 6b 2e 0a 50 6c 65 61 73 65 finishes.playing.a.track..Please
12ca00 20 70 61 79 20 61 74 74 65 6e 74 69 6f 6e 20 74 6f 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 .pay.attention.to.the.difference
12ca20 73 20 62 65 74 77 65 65 6e 0a 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d s.between.`emms-player-finished-
12ca40 68 6f 6f 6b 27 20 61 6e 64 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 hook'.and.`emms-player-stopped-h
12ca60 6f 6f 6b 27 2e 20 20 54 68 65 0a 66 6f 72 6d 65 72 20 69 73 20 63 61 6c 6c 65 64 20 6f 6e 6c 79 ook'...The.former.is.called.only
12ca80 20 77 68 65 6e 20 74 68 65 20 70 6c 61 79 65 72 20 61 63 74 75 61 6c 6c 79 20 66 69 6e 69 73 68 .when.the.player.actually.finish
12caa0 65 73 20 70 6c 61 79 69 6e 67 20 61 0a 74 72 61 63 6b 3b 20 74 68 65 20 6c 61 74 74 65 72 2c 20 es.playing.a.track;.the.latter,.
12cac0 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 20 70 6c 61 79 65 72 20 69 73 20 73 74 6f 70 70 65 64 0a only.when.the.player.is.stopped.
12cae0 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 interactively."...:group.'emms..
12cb00 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 .:type.'hook)..(defcustom.emms-p
12cb20 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 2a 48 6f 6f 6b 20 72 layer-paused-hook.nil..."*Hook.r
12cb40 75 6e 20 77 68 65 6e 20 61 20 70 6c 61 79 65 72 20 69 73 20 70 61 75 73 65 64 20 6f 72 20 72 65 un.when.a.player.is.paused.or.re
12cb60 73 75 6d 65 64 2e 0a 55 73 65 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 sumed..Use.`emms-player-paused-p
12cb80 27 20 74 6f 20 66 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 2e 22 0a 20 20 '.to.find.the.current.state."...
12cba0 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 :group.'emms...:type.'hook)..(de
12cbc0 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 65 65 6b 2d 73 65 63 6f 6e 64 73 20 31 30 0a 20 20 22 fcustom.emms-seek-seconds.10..."
12cbe0 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 74 6f 20 73 65 65 6b 20 66 6f The.number.of.seconds.to.seek.fo
12cc00 72 77 61 72 64 20 6f 72 20 62 61 63 6b 77 61 72 64 20 77 68 65 6e 20 73 65 65 6b 69 6e 67 2e 22 rward.or.backward.when.seeking."
12cc20 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 ...:group.'emms...:type.'number)
12cc40 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 65 64 2d ..(defcustom.emms-player-seeked-
12cc60 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 2a 46 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c functions.nil..."*Functions.call
12cc80 65 64 20 77 68 65 6e 20 61 20 70 6c 61 79 65 72 20 69 73 20 73 65 65 6b 69 6e 67 2e 0a 54 68 65 ed.when.a.player.is.seeking..The
12cca0 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 73 69 6e .functions.are.called.with.a.sin
12ccc0 67 6c 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 0a 73 65 63 6f gle.argument,.the.amount.of.seco
12cce0 6e 64 73 20 74 68 65 20 70 6c 61 79 65 72 20 64 69 64 20 73 65 65 6b 2e 22 0a 20 20 3a 67 72 6f nds.the.player.did.seek."...:gro
12cd00 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 up.'emms...:type.'hook)..(defcus
12cd20 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 74 69 6d 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f tom.emms-player-time-set-functio
12cd40 6e 73 20 6e 69 6c 0a 20 20 22 2a 46 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 77 68 65 6e ns.nil..."*Functions.called.when
12cd60 20 61 20 70 6c 61 79 65 72 20 69 73 20 73 65 74 74 69 6e 67 20 74 68 65 20 65 6c 61 70 73 65 64 .a.player.is.setting.the.elapsed
12cd80 20 74 69 6d 65 20 6f 66 20 61 20 74 72 61 63 6b 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 .time.of.a.track..The.functions.
12cda0 61 72 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d 65 6e are.called.with.a.single.argumen
12cdc0 74 2c 20 74 68 65 20 74 69 6d 65 20 65 6c 61 70 73 65 64 0a 73 69 6e 63 65 20 74 68 65 20 62 65 t,.the.time.elapsed.since.the.be
12cde0 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 ginning.of.the.current.track."..
12ce00 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 .:group.'emms...:type.'hook)..(d
12ce20 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 63 61 63 68 65 2d 67 65 74 2d 66 75 6e 63 74 69 6f 6e efcustom.emms-cache-get-function
12ce40 20 6e 69 6c 0a 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 72 69 65 76 65 20 61 .nil..."A.function.to.retrieve.a
12ce60 20 74 72 61 63 6b 20 65 6e 74 72 79 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 2e 0a 54 68 69 .track.entry.from.the.cache..Thi
12ce80 73 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 s.is.called.with.two.arguments,.
12cea0 74 68 65 20 74 79 70 65 20 61 6e 64 20 74 68 65 20 6e 61 6d 65 2e 22 0a 20 20 3a 67 72 6f 75 70 the.type.and.the.name."...:group
12cec0 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 .'emms...:type.'function)..(defc
12cee0 75 73 74 6f 6d 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 ustom.emms-cache-set-function.ni
12cf00 6c 0a 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 61 64 64 2f 73 65 74 20 61 20 74 72 61 l..."A.function.to.add/set.a.tra
12cf20 63 6b 20 65 6e 74 72 79 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 2e 0a 54 68 69 73 20 69 73 ck.entry.from.the.cache..This.is
12cf40 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 .called.with.three.arguments:.th
12cf60 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 74 72 61 63 6b 2c 20 74 68 65 0a 6e 61 6d 65 20 6f 66 e.type.of.the.track,.the.name.of
12cf80 20 74 68 65 20 74 72 61 63 6b 2c 20 61 6e 64 20 74 68 65 20 74 72 61 63 6b 20 69 74 73 65 6c 66 .the.track,.and.the.track.itself
12cfa0 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 ."...:group.'emms...:type.'funct
12cfc0 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 ion)..(defcustom.emms-cache-modi
12cfe0 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 fied-function.nil..."A.function.
12d000 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 74 72 61 63 6b 20 69 73 20 6d 6f 64 to.be.called.when.a.track.is.mod
12d020 69 66 69 65 64 2e 0a 54 68 65 20 6d 6f 64 69 66 69 65 64 20 74 72 61 63 6b 20 69 73 20 70 61 73 ified..The.modified.track.is.pas
12d040 73 65 64 20 61 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 69 73 20 66 75 6e 63 sed.as.the.argument.to.this.func
12d060 74 69 6f 6e 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 tion."...:group.'emms...:type.'f
12d080 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 64 69 72 65 63 74 unction)..(defcustom.emms-direct
12d0a0 6f 72 79 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 65 6d 6d 73 22 20 75 73 65 ory.(expand-file-name."emms".use
12d0c0 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 2a 44 69 72 65 63 74 6f 72 79 r-emacs-directory)..."*Directory
12d0e0 20 76 61 72 69 61 62 6c 65 20 66 72 6f 6d 20 77 68 69 63 68 20 61 6c 6c 20 6f 74 68 65 72 20 65 .variable.from.which.all.other.e
12d100 6d 6d 73 20 66 69 6c 65 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 64 65 72 69 76 65 64 2e 22 mms.file.variables.are.derived."
12d120 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 ...:group.'emms...:type.'string)
12d140 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 ..(defvar.emms-player-playing-p.
12d160 6e 69 6c 0a 20 20 22 54 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 45 4d 4d nil..."The.currently.playing.EMM
12d180 53 20 70 6c 61 79 65 72 2c 20 6f 72 20 6e 69 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d S.player,.or.nil.")..(defvar.emm
12d1a0 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 s-player-paused-p.nil..."Whether
12d1c0 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 69 73 20 70 61 75 73 65 64 20 6f 72 .the.current.player.is.paused.or
12d1e0 20 6e 6f 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 6f 6c 64 .not.")..(defvar.emms-source-old
12d200 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 61 63 74 69 76 65 20 62 75 66 66 65 72 -buffer.nil..."The.active.buffer
12d220 20 62 65 66 6f 72 65 20 61 20 73 6f 75 72 63 65 20 77 61 73 20 69 6e 76 6f 6b 65 64 2e 0a 54 68 .before.a.source.was.invoked..Th
12d240 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 66 20 74 68 65 20 73 6f 75 72 63 65 20 64 65 70 is.can.be.used.if.the.source.dep
12d260 65 6e 64 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 6e 6f 74 0a 62 ends.on.the.current.buffer.not.b
12d280 65 69 6e 67 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 eing.the.playlist.buffer.")..(de
12d2a0 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 fvar.emms-playlist-buffer.nil...
12d2c0 22 54 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2c 20 69 66 "The.current.playlist.buffer,.if
12d2e0 20 61 6e 79 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 70 72 .any.")..(defvar.emms-players-pr
12d300 65 66 65 72 65 6e 63 65 2d 66 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 64 65 66 61 75 6c eference-f.#'emms-players-defaul
12d320 74 2d 70 72 65 66 65 72 65 6e 63 65 2d 66 0a 20 20 22 44 65 66 61 75 6c 74 20 66 75 6e 63 74 69 t-preference-f..."Default.functi
12d340 6f 6e 20 66 6f 72 20 70 6c 61 79 65 72 20 70 72 65 66 65 72 65 6e 63 65 2e 22 29 0a 0a 0a 3b 3b on.for.player.preference.")...;;
12d360 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.------------------------------
12d380 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12d3a0 2d 2d 2d 2d 0a 3b 3b 3b 20 6d 61 63 72 6f 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----.;;;.macros.;;;.------------
12d3c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12d3e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 54 68 65 73 65 ----------------------.;;;.These
12d400 20 6e 65 65 64 20 74 6f 20 62 65 20 61 74 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 66 69 .need.to.be.at.the.top.of.the.fi
12d420 6c 65 20 73 6f 20 74 68 61 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 77 6f 72 6b 73 2e 0a 28 64 le.so.that.compilation.works..(d
12d440 65 66 6d 61 63 72 6f 20 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 efmacro.with-current-emms-playli
12d460 73 74 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 52 75 6e 20 42 4f 44 59 20 77 69 74 68 st.(&rest.body)..."Run.BODY.with
12d480 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 62 65 69 6e 67 20 74 68 65 20 63 75 .the.current.buffer.being.the.cu
12d4a0 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 54 68 69 73 20 61 6c 73 6f rrent.playlist.buffer..This.also
12d4c0 20 64 69 73 61 62 6c 65 73 20 61 6e 79 20 72 65 61 64 2d 6f 6e 6c 69 6e 65 73 73 20 6f 66 20 74 .disables.any.read-onliness.of.t
12d4e0 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 60 28 70 72 6f 67 6e 0a 20 20 he.current.buffer."...`(progn...
12d500 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ...(when.(or.(not.emms-playlist-
12d520 62 75 66 66 65 72 29 0a 09 20 20 20 20 20 20 20 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 buffer).........(not.(buffer-liv
12d540 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 e-p.emms-playlist-buffer))).....
12d560 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 63 6c 65 61 72 29 ...(emms-playlist-current-clear)
12d580 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 6f 6c 64 2d 62 75 )......(let.((emms-source-old-bu
12d5a0 66 66 65 72 20 28 6f 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 6f 6c 64 2d 62 75 66 66 65 72 0a ffer.(or.emms-source-old-buffer.
12d5c0 09 09 09 09 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 0a 20 ...........(current-buffer))))..
12d5e0 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d ......(with-current-buffer.emms-
12d600 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 09 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 playlist-buffer...(let.((inhibit
12d620 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 09 20 20 20 2c 40 62 6f 64 79 29 29 29 29 29 0a 28 -read-only.t)).....,@body))))).(
12d640 70 75 74 20 27 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 put.'with-current-emms-playlist.
12d660 27 6c 69 73 70 2d 69 6e 64 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 20 30 29 0a 28 70 75 74 20 27 77 'lisp-indent-function.0).(put.'w
12d680 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 20 27 65 64 65 62 75 ith-current-emms-playlist.'edebu
12d6a0 67 2d 66 6f 72 6d 2d 73 70 65 63 20 27 28 62 6f 64 79 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 g-form-spec.'(body))..(defmacro.
12d6c0 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 2d 74 20 28 26 emms-with-inhibit-read-only-t.(&
12d6e0 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 53 69 6d 70 6c 65 20 77 72 61 70 70 65 72 20 61 72 6f rest.body)..."Simple.wrapper.aro
12d700 75 6e 64 20 60 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 27 2e 22 0a 20 20 60 28 6c 65 und.`inhibit-read-only'."...`(le
12d720 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 2c t.((inhibit-read-only.t))......,
12d740 40 62 6f 64 79 29 29 0a 28 70 75 74 20 27 65 6d 6d 73 2d 77 69 74 68 2d 69 6e 68 69 62 69 74 2d @body)).(put.'emms-with-inhibit-
12d760 72 65 61 64 2d 6f 6e 6c 79 2d 74 20 27 65 64 65 62 75 67 2d 66 6f 72 6d 2d 73 70 65 63 20 27 28 read-only-t.'edebug-form-spec.'(
12d780 62 6f 64 79 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 77 69 74 68 2d 77 69 64 65 body))..(defmacro.emms-with-wide
12d7a0 6e 65 64 2d 62 75 66 66 65 72 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 60 28 73 61 76 65 ned-buffer.(&rest.body)...`(save
12d7c0 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 2c -restriction......(widen)......,
12d7e0 40 62 6f 64 79 29 29 0a 28 70 75 74 20 27 65 6d 6d 73 2d 77 69 74 68 2d 77 69 64 65 6e 65 64 2d @body)).(put.'emms-with-widened-
12d800 62 75 66 66 65 72 20 27 65 64 65 62 75 67 2d 66 6f 72 6d 2d 73 70 65 63 20 27 28 62 6f 64 79 29 buffer.'edebug-form-spec.'(body)
12d820 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 20 28 26 )..(defmacro.emms-walk-tracks.(&
12d840 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 78 65 63 75 74 65 20 42 4f 44 59 20 66 6f 72 20 65 rest.body)..."Execute.BODY.for.e
12d860 61 63 68 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c ach.track.in.the.current.buffer,
12d880 20 73 74 61 72 74 69 6e 67 20 61 74 20 70 6f 69 6e 74 2e 0a 50 6f 69 6e 74 20 77 69 6c 6c 20 62 .starting.at.point..Point.will.b
12d8a0 65 20 70 6c 61 63 65 64 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 e.placed.at.the.beginning.of.the
12d8c0 20 74 72 61 63 6b 20 62 65 66 6f 72 65 0a 65 78 65 63 75 74 69 6e 67 20 42 4f 44 59 2e 0a 0a 50 .track.before.executing.BODY...P
12d8e0 6f 69 6e 74 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 72 65 73 74 6f 72 65 64 20 61 66 74 65 72 77 oint.will.not.be.restored.afterw
12d900 61 72 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 6f 6e 65 70 20 28 6d 61 6b 65 2d 73 79 6d 62 6f ard."...(let.((donep.(make-symbo
12d920 6c 20 22 64 6f 6e 65 70 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 64 6f 6e 65 70 20 l."donep"))).....`(let.((,donep.
12d940 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 73 6b 69 70 20 74 6f 20 66 69 72 73 74 20 74 72 nil))........;;.skip.to.first.tr
12d960 61 63 6b 20 69 66 20 6e 6f 74 20 6f 6e 20 6f 6e 65 0a 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 ack.if.not.on.one........(unless
12d980 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 .(emms-playlist-track-at.(point)
12d9a0 29 0a 09 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 20 20 20 20 20 28 65 )...(condition-case.nil.......(e
12d9c0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 0a 09 20 20 20 28 65 72 72 6f 72 0a 09 20 mms-playlist-next).....(error...
12d9e0 20 20 20 28 73 65 74 71 20 2c 64 6f 6e 65 70 20 74 29 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 ...(setq.,donep.t))))........;;.
12da00 77 61 6c 6b 20 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 2c walk.tracks........(while.(not.,
12da20 64 6f 6e 65 70 29 0a 09 20 2c 40 62 6f 64 79 0a 09 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 donep)...,@body...(condition-cas
12da40 65 20 6e 69 6c 0a 09 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 e.nil.......(emms-playlist-next)
12da60 0a 09 20 20 20 28 65 72 72 6f 72 0a 09 20 20 20 20 28 73 65 74 71 20 2c 64 6f 6e 65 70 20 74 29 .....(error......(setq.,donep.t)
12da80 29 29 29 29 29 29 0a 28 70 75 74 20 27 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 20 27 6c )))))).(put.'emms-walk-tracks.'l
12daa0 69 73 70 2d 69 6e 64 65 6e 74 2d 66 75 6e 63 74 69 6f 6e 20 30 29 0a 28 70 75 74 20 27 65 6d 6d isp-indent-function.0).(put.'emm
12dac0 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 20 27 65 64 65 62 75 67 2d 66 6f 72 6d 2d 73 70 65 63 20 s-walk-tracks.'edebug-form-spec.
12dae0 27 28 62 6f 64 79 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 62 61 '(body))..(defvar.emms-player-ba
12db00 73 65 2d 66 6f 72 6d 61 74 2d 6c 69 73 74 0a 20 20 27 28 22 6f 67 67 22 20 22 6d 70 33 22 20 22 se-format-list...'("ogg"."mp3"."
12db20 77 61 76 22 20 22 6d 70 67 22 20 22 6d 70 65 67 22 20 22 77 6d 76 22 20 22 77 6d 61 22 0a 20 20 wav"."mpg"."mpeg"."wmv"."wma"...
12db40 20 20 22 6d 6f 76 22 20 22 61 76 69 22 20 22 64 69 76 78 22 20 22 6f 67 6d 22 20 22 6f 67 76 22 .."mov"."avi"."divx"."ogm"."ogv"
12db60 20 22 61 73 66 22 20 22 6d 6b 76 22 0a 20 20 20 20 22 72 6d 22 20 22 72 6d 76 62 22 20 22 6d 70 ."asf"."mkv"....."rm"."rmvb"."mp
12db80 34 22 20 22 66 6c 61 63 22 20 22 76 6f 62 22 20 22 6d 34 61 22 20 22 61 70 65 22 0a 20 20 20 20 4"."flac"."vob"."m4a"."ape".....
12dba0 22 66 6c 76 22 20 22 77 65 62 6d 22 20 22 61 69 66 22 20 22 6f 70 75 73 22 20 22 73 70 63 22 29 "flv"."webm"."aif"."opus"."spc")
12dbc0 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 6f 6e 20 66 6f 72 6d 61 74 73 20 77 68 69 ..."A.list.of.common.formats.whi
12dbe0 63 68 20 70 6c 61 79 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 63 61 6e 20 75 73 65 2e 22 29 ch.player.definitions.can.use.")
12dc00 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...;;;.-------------------------
12dc20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12dc40 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 55 73 65 72 20 49 6e 74 65 72 66 61 63 65 0a 3b 3b 3b ---------.;;;.User.Interface.;;;
12dc60 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
12dc80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12dca0 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 61 72 74 20 28 29 0a 20 20 22 53 74 61 72 ---.(defun.emms-start.()..."Star
12dcc0 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 69 6e 20 74 t.playing.the.current.track.in.t
12dce0 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 he.EMMS.playlist."...(interactiv
12dd00 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 e)...(unless.emms-player-playing
12dd20 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 20 28 65 6d 6d 73 2d -p.....(emms-player-start.(emms-
12dd40 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 playlist-current-selected-track)
12dd60 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 6f 70 20 28 29 0a 20 20 22 53 74 6f 70 )))..(defun.emms-stop.()..."Stop
12dd80 20 61 6e 79 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 62 61 63 6b 2e 22 0a 20 20 28 .any.current.EMMS.playback."...(
12dda0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 interactive)...(when.emms-player
12ddc0 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 -playing-p.....(emms-player-stop
12dde0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6e 65 78 74 20 28 29 0a 20 20 22 53 74 61 72 )))..(defun.emms-next.()..."Star
12de00 74 20 70 6c 61 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 t.playing.the.next.track.in.the.
12de20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 69 73 20 6d 69 67 68 74 20 62 65 68 61 76 65 EMMS.playlist..This.might.behave
12de40 20 66 75 6e 6e 79 20 69 66 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 60 65 6d 6d 73 2d 70 6c 61 79 .funny.if.called.from.`emms-play
12de60 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 6f 6e 27 2c 0a 73 6f 20 75 73 65 20 60 65 6d 6d 73 2d er-next-function',.so.use.`emms-
12de80 6e 65 78 74 2d 6e 6f 65 72 72 6f 72 27 20 69 6e 20 74 68 61 74 20 63 61 73 65 2e 22 0a 20 20 28 next-noerror'.in.that.case."...(
12dea0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 interactive)...(when.emms-player
12dec0 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 6f 70 29 29 0a 20 20 28 65 -playing-p.....(emms-stop))...(e
12dee0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d 6e 65 78 74 mms-playlist-current-select-next
12df00 29 0a 20 20 28 65 6d 6d 73 2d 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6e )...(emms-start))..(defun.emms-n
12df20 65 78 74 2d 6e 6f 65 72 72 6f 72 20 28 29 0a 20 20 22 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 ext-noerror.()..."Start.playing.
12df40 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c the.next.track.in.the.EMMS.playl
12df60 69 73 74 2e 0a 55 6e 6c 69 6b 65 20 60 65 6d 6d 73 2d 6e 65 78 74 27 2c 20 74 68 69 73 20 66 75 ist..Unlike.`emms-next',.this.fu
12df80 6e 63 74 69 6f 6e 20 64 6f 65 73 6e 27 74 20 73 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 77 nction.doesn't.signal.an.error.w
12dfa0 68 65 6e 20 63 61 6c 6c 65 64 0a 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 6c 61 hen.called.at.the.end.of.the.pla
12dfc0 79 6c 69 73 74 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 ylist..This.function.should.only
12dfe0 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 6e 6f 20 70 6c 61 79 65 72 20 69 73 20 70 6c 61 .be.called.when.no.player.is.pla
12e000 79 69 6e 67 2e 0a 54 68 69 73 20 69 73 20 61 20 67 6f 6f 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f ying..This.is.a.good.function.to
12e020 20 70 75 74 20 69 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 .put.in.`emms-player-next-functi
12e040 6f 6e 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d on'."...(interactive)...(when.em
12e060 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 65 72 72 6f 72 20 22 ms-player-playing-p.....(error."
12e080 41 20 74 72 61 63 6b 20 69 73 20 61 6c 72 65 61 64 79 20 62 65 69 6e 67 20 70 6c 61 79 65 64 22 A.track.is.already.being.played"
12e0a0 29 29 0a 20 20 28 63 6f 6e 64 20 28 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 0a 09 20 ))...(cond.(emms-repeat-track...
12e0c0 28 65 6d 6d 73 2d 73 74 61 72 74 29 29 0a 09 28 65 6d 6d 73 2d 73 69 6e 67 6c 65 2d 74 72 61 63 (emms-start))..(emms-single-trac
12e0e0 6b 09 09 3b 20 62 75 66 66 65 72 20 6c 6f 63 61 6c 0a 09 20 28 65 6d 6d 73 2d 73 74 6f 70 29 29 k..;.buffer.local...(emms-stop))
12e100 0a 09 3b 3b 20 61 74 74 65 6d 70 74 20 74 6f 20 70 6c 61 79 20 74 68 65 20 6e 65 78 74 20 74 72 ..;;.attempt.to.play.the.next.tr
12e120 61 63 6b 20 62 75 74 20 69 67 6e 6f 72 65 20 65 72 72 6f 72 73 0a 09 28 28 63 6f 6e 64 69 74 69 ack.but.ignore.errors..((conditi
12e140 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 20 20 on-case.nil.......(progn........
12e160 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d 6e .(emms-playlist-current-select-n
12e180 65 78 74 29 0a 09 20 20 20 20 20 20 20 74 29 0a 09 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 ext).........t).....(error.nil))
12e1a0 0a 09 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 6f 6b 2d 74 72 61 63 6b 2d 66 75 ...(if.(funcall.emms-ok-track-fu
12e1c0 6e 63 74 69 6f 6e 0a 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 nction.........(emms-playlist-cu
12e1e0 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 09 20 20 20 20 20 28 65 6d rrent-selected-track)).......(em
12e200 6d 73 2d 73 74 61 72 74 29 0a 09 20 20 20 28 65 6d 6d 73 2d 6e 65 78 74 2d 6e 6f 65 72 72 6f 72 ms-start).....(emms-next-noerror
12e220 29 29 29 0a 09 28 74 0a 09 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 6e 65 78 74 20 74 72 61 63 )))..(t...(message."No.next.trac
12e240 6b 20 69 6e 20 70 6c 61 79 6c 69 73 74 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d k.in.playlist"))))..(defun.emms-
12e260 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 74 68 65 previous.()..."Start.playing.the
12e280 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 .previous.track.in.the.EMMS.play
12e2a0 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 list."...(interactive)...(when.e
12e2c0 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 73 mms-player-playing-p.....(emms-s
12e2e0 74 6f 70 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 top))...(emms-playlist-current-s
12e300 65 6c 65 63 74 2d 70 72 65 76 69 6f 75 73 29 0a 20 20 28 65 6d 6d 73 2d 73 74 61 72 74 29 29 0a elect-previous)...(emms-start)).
12e320 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 20 28 29 0a 20 20 22 4a 75 6d 70 20 74 .(defun.emms-random.()..."Jump.t
12e340 6f 20 61 20 72 61 6e 64 6f 6d 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 o.a.random.track."...(interactiv
12e360 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 e)...(when.emms-player-playing-p
12e380 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 6f 70 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 .....(emms-stop))...(emms-playli
12e3a0 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d 72 61 6e 64 6f 6d 29 0a 20 20 28 65 6d 6d st-current-select-random)...(emm
12e3c0 73 2d 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 61 75 73 65 20 28 29 0a s-start))..(defun.emms-pause.().
12e3e0 20 20 22 50 61 75 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 2e 0a 49 66 20 .."Pause.the.current.player..If.
12e400 70 6c 61 79 65 72 20 68 61 73 6e 27 74 20 73 74 61 72 74 65 64 2c 20 74 68 65 6e 20 73 74 61 72 player.hasn't.started,.then.star
12e420 74 20 69 74 20 6e 6f 77 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 t.it.now."...(interactive)...(if
12e440 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 20 20 28 65 6d .emms-player-playing-p.......(em
12e460 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 61 72 74 ms-player-pause).....(emms-start
12e480 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 65 6b 20 28 64 75 72 61 74 69 6f 6e 29 )))..(defun.emms-seek.(duration)
12e4a0 0a 20 20 22 53 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 62 79 20 44 ..."Seek.the.current.player.by.D
12e4c0 55 52 41 54 49 4f 4e 20 66 72 6f 6d 20 69 74 73 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f URATION.from.its.current.positio
12e4e0 6e 2e 0a 44 55 52 41 54 49 4f 4e 20 63 61 6e 20 62 65 3a 0a 0a 2d 20 41 20 73 69 6e 67 6c 65 20 n..DURATION.can.be:..-.A.single.
12e500 6e 75 6d 62 65 72 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 69 73 20 69 6e 74 65 number,.in.which.case.it.is.inte
12e520 72 70 72 65 74 65 64 20 61 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 2d 20 41 20 73 74 72 69 6e 67 20 rpreted.as.seconds...-.A.string.
12e540 6f 66 20 66 6f 72 6d 20 5b 2d 5d 5b 48 48 3a 5d 4d 4d 3a 53 53 2e 6d 2c 20 77 68 65 72 65 20 48 of.form.[-][HH:]MM:SS.m,.where.H
12e560 48 20 69 73 20 68 6f 75 72 73 2c 20 4d 4d 20 69 73 0a 20 20 6d 69 6e 75 74 65 73 2c 20 61 6e 64 H.is.hours,.MM.is...minutes,.and
12e580 20 53 53 20 69 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 49 6e 20 62 6f 74 68 20 66 6f 72 6d 73 20 73 .SS.is.seconds...In.both.forms.s
12e5a0 65 63 6f 6e 64 73 20 63 61 6e 20 62 65 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e econds.can.be.a.floating.point.n
12e5c0 75 6d 62 65 72 2e 20 20 41 20 6e 65 67 61 74 69 76 65 0a 76 61 6c 75 65 20 73 65 65 6b 73 20 62 umber...A.negative.value.seeks.b
12e5e0 61 63 6b 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 73 44 75 72 61 ackwards."...(interactive."sDura
12e600 74 69 6f 6e 20 74 6f 20 73 65 65 6b 3a 20 22 29 0a 20 20 28 65 6d 6d 73 2d 65 6e 73 75 72 65 2d tion.to.seek:.")...(emms-ensure-
12e620 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 player-playing-p)...(emms-player
12e640 2d 73 65 65 6b 20 28 65 6d 6d 73 2d 74 69 6d 65 73 70 65 63 2d 74 6f 2d 73 65 63 73 20 64 75 72 -seek.(emms-timespec-to-secs.dur
12e660 61 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 65 6b 2d 74 6f 20 28 74 ation)))..(defun.emms-seek-to.(t
12e680 69 6d 65 73 74 61 6d 70 29 0a 20 20 22 53 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c imestamp)..."Seek.the.current.pl
12e6a0 61 79 65 72 20 74 6f 20 54 49 4d 45 53 54 41 4d 50 2e 0a 54 49 4d 45 53 54 41 4d 50 20 63 61 6e ayer.to.TIMESTAMP..TIMESTAMP.can
12e6c0 20 62 65 3a 0a 0a 2d 20 41 20 73 69 6e 67 6c 65 20 6e 75 6d 62 65 72 2c 20 69 6e 20 77 68 69 63 .be:..-.A.single.number,.in.whic
12e6e0 68 20 63 61 73 65 20 69 74 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 73 65 63 6f h.case.it.is.interpreted.as.seco
12e700 6e 64 73 2e 0a 0a 2d 20 41 20 73 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 20 5b 48 48 3a 5d 4d 4d nds...-.A.string.of.form.[HH:]MM
12e720 3a 53 53 2e 6d 2c 20 77 68 65 72 65 20 48 48 20 69 73 20 68 6f 75 72 73 2c 20 4d 4d 20 69 73 0a :SS.m,.where.HH.is.hours,.MM.is.
12e740 20 20 6d 69 6e 75 74 65 73 2c 20 61 6e 64 20 53 53 20 69 73 20 73 65 63 6f 6e 64 73 2e 0a 0a 49 ..minutes,.and.SS.is.seconds...I
12e760 6e 20 62 6f 74 68 20 66 6f 72 6d 73 20 73 65 63 6f 6e 64 73 20 63 61 6e 20 62 65 20 61 20 66 6c n.both.forms.seconds.can.be.a.fl
12e780 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 oating.point.number."...(interac
12e7a0 74 69 76 65 20 22 73 54 69 6d 65 73 74 61 6d 70 20 74 6f 20 73 65 65 6b 20 74 6f 3a 20 22 29 0a tive."sTimestamp.to.seek.to:.").
12e7c0 20 20 28 65 6d 6d 73 2d 65 6e 73 75 72 65 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 29 ..(emms-ensure-player-playing-p)
12e7e0 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 2d 74 6f 20 28 6d 61 78 20 30 20 28 ...(emms-player-seek-to.(max.0.(
12e800 65 6d 6d 73 2d 74 69 6d 65 73 70 65 63 2d 74 6f 2d 73 65 63 73 20 74 69 6d 65 73 74 61 6d 70 29 emms-timespec-to-secs.timestamp)
12e820 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 69 6d 65 73 70 65 63 2d 74 6f 2d 73 65 63 )))..(defun.emms-timespec-to-sec
12e840 73 20 28 74 69 6d 65 73 70 65 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 54 49 4d 45 53 50 45 43 s.(timespec)..."Convert.TIMESPEC
12e860 20 74 6f 20 73 65 63 6f 6e 64 73 2e 0a 0a 49 66 20 54 49 4d 45 53 50 45 43 20 69 73 20 6e 75 6d .to.seconds...If.TIMESPEC.is.num
12e880 62 65 72 2c 20 75 73 65 20 69 74 20 76 65 72 62 61 74 69 6d 2e 20 20 49 66 20 54 49 4d 45 53 50 ber,.use.it.verbatim...If.TIMESP
12e8a0 45 43 20 69 73 20 73 74 72 69 6e 67 2c 0a 75 73 65 20 60 65 6d 6d 73 2d 74 69 6d 65 73 74 72 2d EC.is.string,.use.`emms-timestr-
12e8c0 74 6f 2d 73 65 63 73 27 20 66 6f 72 20 63 6f 6e 76 65 72 73 69 6f 6e 2e 20 20 4f 74 68 65 72 77 to-secs'.for.conversion...Otherw
12e8e0 69 73 65 20 72 65 74 75 72 6e 0a 7a 65 72 6f 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75 6d 62 ise.return.zero."...(cond.((numb
12e900 65 72 70 20 74 69 6d 65 73 70 65 63 29 20 74 69 6d 65 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 erp.timespec).timespec).........
12e920 28 28 73 74 72 69 6e 67 70 20 74 69 6d 65 73 70 65 63 29 20 28 65 6d 6d 73 2d 74 69 6d 65 73 74 ((stringp.timespec).(emms-timest
12e940 72 2d 74 6f 2d 73 65 63 73 20 74 69 6d 65 73 70 65 63 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 r-to-secs.timespec)).........(t.
12e960 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 69 6d 65 73 74 72 2d 74 6f 2d 73 65 63 0)))..(defun.emms-timestr-to-sec
12e980 73 20 28 74 69 6d 65 73 70 65 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 54 49 4d 45 53 50 45 43 s.(timespec)..."Convert.TIMESPEC
12e9a0 20 74 6f 20 73 65 63 6f 6e 64 73 2e 0a 0a 54 49 4d 45 53 50 45 43 20 69 73 20 61 73 73 75 6d 65 .to.seconds...TIMESPEC.is.assume
12e9c0 64 20 74 6f 20 62 65 20 61 20 73 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 20 5b 2d 5d 5b 5b 48 48 d.to.be.a.string.of.form.[-][[HH
12e9e0 3a 5d 4d 4d 3a 5d 53 53 2c 20 77 68 65 72 65 0a 48 48 20 69 73 20 68 6f 75 72 73 2c 20 4d 4d 20 :]MM:]SS,.where.HH.is.hours,.MM.
12ea00 69 73 20 6d 69 6e 75 74 65 73 20 61 6e 64 20 53 53 20 69 73 20 73 65 63 6f 6e 64 73 2e 20 20 45 is.minutes.and.SS.is.seconds...E
12ea20 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 0a 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 6e 75 6d 62 ach.element.is.converted.to.numb
12ea40 65 72 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 27 er.by.calling.`string-to-number'
12ea60 2e 20 20 4d 69 73 73 69 6e 67 20 6f 72 0a 69 6e 76 61 6c 69 64 20 65 6c 65 6d 65 6e 74 73 20 61 ...Missing.or.invalid.elements.a
12ea80 72 65 20 74 72 65 61 74 65 64 20 61 73 20 7a 65 72 6f 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 re.treated.as.zeros."...(let.((t
12eaa0 6f 6b 65 6e 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 74 69 6d 65 73 70 65 63 20 22 3a 22 okens.(split-string.timespec.":"
12eac0 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 74 6f 6b 65 6e 73 29 20 31 ))).....(if.(=.(length.tokens).1
12eae0 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 65 63 6f 6e 64 73 20 6f 6e 6c 79 0a 20 20 20 20 20 20 ).........;;.seconds.only.......
12eb00 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 63 61 72 20 74 6f 6b 65 6e 73 29 ..(string-to-number.(car.tokens)
12eb20 29 0a 20 20 20 20 20 20 3b 3b 20 48 48 3a 4d 4d 3a 53 53 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 ).......;;.HH:MM:SS.......(let*.
12eb40 28 28 73 69 67 6e 20 28 69 66 20 28 3c 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 ((sign.(if.(<.(string-to-number.
12eb60 28 63 61 72 20 74 6f 6b 65 6e 73 29 29 20 30 29 20 2d 31 20 31 29 29 0a 20 20 20 20 20 20 20 20 (car.tokens)).0).-1.1)).........
12eb80 20 20 20 20 20 28 72 65 76 74 6f 6b 65 6e 73 20 28 72 65 76 65 72 73 65 20 74 6f 6b 65 6e 73 29 .....(revtokens.(reverse.tokens)
12eba0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 73 20 28 61 62 73 20 28 73 74 )..............(seconds.(abs.(st
12ebc0 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6f 72 20 28 70 6f 70 20 72 65 76 74 6f 6b 65 6e ring-to-number.(or.(pop.revtoken
12ebe0 73 29 20 22 30 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 75 74 65 73 s)."0"))))..............(minutes
12ec00 20 28 61 62 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6f 72 20 28 70 6f 70 .(abs.(string-to-number.(or.(pop
12ec20 20 72 65 76 74 6f 6b 65 6e 73 29 20 22 30 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .revtokens)."0")))).............
12ec40 20 28 68 6f 75 72 73 20 28 61 62 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 .(hours.(abs.(string-to-number.(
12ec60 6f 72 20 28 70 6f 70 20 72 65 76 74 6f 6b 65 6e 73 29 20 22 30 22 29 29 29 29 29 0a 20 20 20 20 or.(pop.revtokens)."0"))))).....
12ec80 20 20 20 20 28 2a 20 73 69 67 6e 20 28 2b 20 28 2a 20 36 30 20 36 30 20 68 6f 75 72 73 29 20 28 ....(*.sign.(+.(*.60.60.hours).(
12eca0 2a 20 36 30 20 6d 69 6e 75 74 65 73 29 20 73 65 63 6f 6e 64 73 29 29 29 29 29 29 0a 0a 28 64 65 *.60.minutes).seconds))))))..(de
12ecc0 66 75 6e 20 65 6d 6d 73 2d 73 65 65 6b 2d 66 6f 72 77 61 72 64 20 28 29 0a 20 20 22 53 65 65 6b fun.emms-seek-forward.()..."Seek
12ece0 20 74 65 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 77 61 72 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 .ten.seconds.forward."...(intera
12ed00 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 ctive)...(when.emms-player-playi
12ed20 6e 67 2d 70 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 20 65 6d 6d 73 2d ng-p.....(emms-player-seek.emms-
12ed40 73 65 65 6b 2d 73 65 63 6f 6e 64 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 65 65 seek-seconds)))..(defun.emms-see
12ed60 6b 2d 62 61 63 6b 77 61 72 64 20 28 29 0a 20 20 22 53 65 65 6b 20 74 65 6e 20 73 65 63 6f 6e 64 k-backward.()..."Seek.ten.second
12ed80 73 20 62 61 63 6b 77 61 72 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 s.backward."...(interactive)...(
12eda0 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 when.emms-player-playing-p.....(
12edc0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 20 28 2d 20 65 6d 6d 73 2d 73 65 65 6b 2d 73 65 emms-player-seek.(-.emms-seek-se
12ede0 63 6f 6e 64 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 6f 77 20 28 26 6f 70 conds))))..(defun.emms-show.(&op
12ee00 74 69 6f 6e 61 6c 20 69 6e 73 65 72 74 70 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 tional.insertp)..."Describe.the.
12ee20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 current.EMMS.track.in.the.minibu
12ee40 66 66 65 72 2e 0a 49 66 20 49 4e 53 45 52 54 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 ffer..If.INSERTP.is.non-nil,.ins
12ee60 65 72 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 63 75 72 ert.the.description.into.the.cur
12ee80 72 65 6e 74 20 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 rent.buffer.instead..This.functi
12eea0 6f 6e 20 75 73 65 73 20 60 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d 61 74 27 20 74 6f 20 66 6f on.uses.`emms-show-format'.to.fo
12eec0 72 6d 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 rmat.the.current.track."...(inte
12eee0 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 73 74 72 69 6e 67 20 28 69 66 ractive."P")...(let.((string.(if
12ef00 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 09 09 20 20 20 20 28 66 6f .emms-player-playing-p.......(fo
12ef20 72 6d 61 74 20 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d 61 74 0a 09 09 09 20 20 20 20 28 65 6d rmat.emms-show-format........(em
12ef40 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 0a 09 09 09 20 20 20 20 20 28 65 6d ms-track-description.........(em
12ef60 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 ms-playlist-current-selected-tra
12ef80 63 6b 29 29 29 0a 09 09 20 20 22 4e 6f 74 68 69 6e 67 20 70 6c 61 79 69 6e 67 20 72 69 67 68 74 ck)))....."Nothing.playing.right
12efa0 20 6e 6f 77 22 29 29 29 0a 20 20 20 20 28 69 66 20 69 6e 73 65 72 74 70 0a 09 28 69 6e 73 65 72 .now"))).....(if.insertp..(inser
12efc0 74 20 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 73 74 t.string).......(message."%s".st
12efe0 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 75 66 66 6c 65 20 28 29 ring))))..(defun.emms-shuffle.()
12f000 0a 20 20 22 53 68 75 66 66 6c 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 ..."Shuffle.the.current.playlist
12f020 2e 0a 54 68 69 73 20 75 73 65 73 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 68 75 66 66 ..This.uses.`emms-playlist-shuff
12f040 6c 65 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 le-function'."...(interactive)..
12f060 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 .(with-current-emms-playlist....
12f080 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 .(save-excursion.......(funcall.
12f0a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 68 75 66 66 6c 65 2d 66 75 6e 63 74 69 6f 6e 29 29 emms-playlist-shuffle-function))
12f0c0 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 72 74 20 28 29 0a 20 20 22 53 6f 72 74 20 ))..(defun.emms-sort.()..."Sort.
12f0e0 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 69 73 20 75 73 65 73 20 the.current.playlist..This.uses.
12f100 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a `emms-playlist-sort-function'.".
12f120 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d ..(interactive)...(with-current-
12f140 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f emms-playlist.....(save-excursio
12f160 6e 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 n.......(funcall.emms-playlist-s
12f180 6f 72 74 2d 66 75 6e 63 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 6e ort-function))))..(defun.emms-un
12f1a0 69 71 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 64 75 70 6c 69 63 61 74 65 73 20 66 72 6f 6d 20 iq.()..."Remove.duplicates.from.
12f1c0 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 69 73 20 75 73 65 73 20 the.current.playlist..This.uses.
12f1e0 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 6e 69 71 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a `emms-playlist-uniq-function'.".
12f200 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d ..(interactive)...(with-current-
12f220 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f emms-playlist.....(save-excursio
12f240 6e 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 n.......(funcall.emms-playlist-u
12f260 6e 69 71 2d 66 75 6e 63 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 6f niq-function))))..(defun.emms-to
12f280 67 67 6c 65 2d 73 69 6e 67 6c 65 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 69 ggle-single-track.()..."Toggle.i
12f2a0 66 20 45 6d 6d 73 20 70 6c 61 79 73 20 61 20 73 69 6e 67 6c 65 20 74 72 61 63 6b 20 61 6e 64 20 f.Emms.plays.a.single.track.and.
12f2c0 73 74 6f 70 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d stops."...(interactive)...(with-
12f2e0 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 63 6f 6e 64 20 current-emms-playlist.....(cond.
12f300 28 65 6d 6d 73 2d 73 69 6e 67 6c 65 2d 74 72 61 63 6b 0a 09 20 20 20 28 73 65 74 71 20 65 6d 6d (emms-single-track.....(setq.emm
12f320 73 2d 73 69 6e 67 6c 65 2d 74 72 61 63 6b 20 6e 69 6c 29 0a 09 20 20 20 28 6d 65 73 73 61 67 65 s-single-track.nil).....(message
12f340 20 22 73 69 6e 67 6c 65 20 74 72 61 63 6b 20 6d 6f 64 65 20 64 69 73 61 62 6c 65 64 20 66 6f 72 ."single.track.mode.disabled.for
12f360 20 25 73 22 0a 09 09 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 09 20 20 28 74 .%s".......(buffer-name)))....(t
12f380 20 28 73 65 74 71 20 65 6d 6d 73 2d 73 69 6e 67 6c 65 2d 74 72 61 63 6b 20 74 29 0a 09 20 20 20 .(setq.emms-single-track.t).....
12f3a0 20 20 28 6d 65 73 73 61 67 65 20 22 73 69 6e 67 6c 65 20 74 72 61 63 6b 20 6d 6f 64 65 20 65 6e ..(message."single.track.mode.en
12f3c0 61 62 6c 65 64 20 66 6f 72 20 25 73 22 0a 09 09 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 abled.for.%s".........(buffer-na
12f3e0 6d 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 61 6e me))))))..(defun.emms-toggle-ran
12f400 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 77 68 65 74 68 65 dom-playlist.()..."Toggle.whethe
12f420 72 20 65 6d 6d 73 20 70 6c 61 79 73 20 74 68 65 20 74 72 61 63 6b 73 20 72 61 6e 64 6f 6d 6c 79 r.emms.plays.the.tracks.randomly
12f440 20 6f 72 20 73 65 71 75 65 6e 74 69 61 6c 6c 79 2e 0a 53 65 65 20 60 65 6d 6d 73 2d 72 61 6e 64 .or.sequentially..See.`emms-rand
12f460 6f 6d 2d 70 6c 61 79 6c 69 73 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 om-playlist'."...(interactive)..
12f480 20 28 63 75 73 74 6f 6d 69 7a 65 2d 73 65 74 2d 76 61 72 69 61 62 6c 65 20 27 65 6d 6d 73 2d 72 .(customize-set-variable.'emms-r
12f4a0 61 6e 64 6f 6d 2d 70 6c 61 79 6c 69 73 74 20 28 6e 6f 74 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d andom-playlist.(not.emms-random-
12f4c0 70 6c 61 79 6c 69 73 74 29 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d 70 6c 61 playlist))...(if.emms-random-pla
12f4e0 79 6c 69 73 74 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 20 ylist.......(message."Will.play.
12f500 74 68 65 20 74 72 61 63 6b 73 20 72 61 6e 64 6f 6d 6c 79 2e 22 29 0a 20 20 20 20 28 6d 65 73 73 the.tracks.randomly.").....(mess
12f520 61 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 20 74 68 65 20 74 72 61 63 6b 73 20 73 65 71 75 65 6e age."Will.play.the.tracks.sequen
12f540 74 69 61 6c 6c 79 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d tially.")))..(defun.emms-toggle-
12f560 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 77 68 65 repeat-playlist.()..."Toggle.whe
12f580 74 68 65 72 20 65 6d 6d 73 20 72 65 70 65 61 74 73 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 ther.emms.repeats.the.playlist.a
12f5a0 66 74 65 72 20 69 74 20 69 73 20 64 6f 6e 65 2e 0a 53 65 65 20 60 65 6d 6d 73 2d 72 65 70 65 61 fter.it.is.done..See.`emms-repea
12f5c0 74 2d 70 6c 61 79 6c 69 73 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 t-playlist'."...(interactive)...
12f5e0 28 73 65 74 71 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 28 6e 6f 74 20 (setq.emms-repeat-playlist.(not.
12f600 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 29 29 0a 20 20 28 69 66 20 65 6d 6d emms-repeat-playlist))...(if.emm
12f620 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 s-repeat-playlist.......(message
12f640 20 22 57 69 6c 6c 20 72 65 70 65 61 74 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 61 66 74 65 72 ."Will.repeat.the.playlist.after
12f660 20 69 74 20 69 73 20 64 6f 6e 65 2e 22 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c .it.is.done.").....(message."Wil
12f680 6c 20 73 74 6f 70 20 61 66 74 65 72 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 69 73 20 6f 76 65 l.stop.after.the.playlist.is.ove
12f6a0 72 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 6f 67 67 6c 65 2d 72 65 70 65 61 r.")))..(defun.emms-toggle-repea
12f6c0 74 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 77 68 65 74 68 65 72 20 65 6d 6d t-track.()..."Toggle.whether.emm
12f6e0 73 20 72 65 70 65 61 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 53 65 65 s.repeats.the.current.track..See
12f700 20 60 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 .`emms-repeat-track'."...(intera
12f720 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b ctive)...(setq.emms-repeat-track
12f740 20 28 6e 6f 74 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 29 29 0a 20 20 28 69 66 20 .(not.emms-repeat-track))...(if.
12f760 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 emms-repeat-track.......(message
12f780 20 22 57 69 6c 6c 20 72 65 70 65 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e ."Will.repeat.the.current.track.
12f7a0 22 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c 6c 20 61 64 76 61 6e 63 65 20 74 6f ").....(message."Will.advance.to
12f7c0 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 61 66 74 65 72 20 74 68 69 73 20 6f 6e 65 2e 22 .the.next.track.after.this.one."
12f7e0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 72 74 2d 74 72 61 63 6b 2d 6e 61 6d 65 )))..(defun.emms-sort-track-name
12f800 2d 6c 65 73 73 2d 70 20 28 61 20 62 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 -less-p.(a.b)..."Return.non-nil.
12f820 69 66 20 74 68 65 20 74 72 61 63 6b 20 6e 61 6d 65 20 6f 66 20 41 20 73 6f 72 74 73 20 62 65 66 if.the.track.name.of.A.sorts.bef
12f840 6f 72 65 20 42 2e 22 0a 20 20 28 73 74 72 69 6e 67 3c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e ore.B."...(string<.(emms-track-n
12f860 61 6d 65 20 61 29 0a 09 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 62 29 29 29 ame.a).....(emms-track-name.b)))
12f880 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 65 6e 73 75 72 65 2d 70 6c 61 79 65 72 2d 70 6c 61 79 ..(defun.emms-ensure-player-play
12f8a0 69 6e 67 2d 70 20 28 29 0a 20 20 22 52 61 69 73 65 20 61 6e 20 65 72 72 6f 72 20 69 66 20 6e 6f ing-p.()..."Raise.an.error.if.no
12f8c0 20 70 6c 61 79 65 72 20 69 73 20 70 6c 61 79 69 6e 67 20 72 69 67 68 74 20 6e 6f 77 2e 22 0a 20 .player.is.playing.right.now."..
12f8e0 20 28 77 68 65 6e 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d .(when.(not.emms-player-playing-
12f900 70 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 45 4d 4d 53 20 70 6c 61 79 65 72 20 70 6c p).....(error."No.EMMS.player.pl
12f920 61 79 69 6e 67 20 72 69 67 68 74 20 6e 6f 77 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 aying.right.now")))..(defun.emms
12f940 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 -completing-read.(&rest.args)...
12f960 22 52 65 61 64 20 61 20 73 74 72 69 6e 67 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 "Read.a.string.in.the.minibuffer
12f980 2c 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 53 65 74 20 60 65 6d 6d 73 2d 63 6f 6d ,.with.completion..Set.`emms-com
12f9a0 70 6c 65 74 69 6e 67 2d 72 65 61 64 27 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 pleting-read'.to.determine.which
12f9c0 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 75 73 65 2e 0a 0a 53 65 65 20 60 63 6f 6d 70 6c 65 74 69 .function.to.use...See.`completi
12f9e0 6e 67 2d 72 65 61 64 27 20 66 6f 72 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 41 52 ng-read'.for.a.description.of.AR
12fa00 47 53 2e 22 0a 20 20 28 61 70 70 6c 79 20 65 6d 6d 73 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 GS."...(apply.emms-completing-re
12fa20 61 64 2d 66 75 6e 63 74 69 6f 6e 20 61 72 67 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d ad-function.args))..(defun.emms-
12fa40 64 69 73 70 6c 61 79 2d 6d 6f 64 65 73 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 20 display-modes.()..."Display.the.
12fa60 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 20 6d 6f 64 65 73 2e 22 0a 20 20 28 69 6e 74 current.EMMS.play.modes."...(int
12fa80 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 eractive)...(with-current-emms-p
12faa0 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 6d 65 73 73 61 67 65 0a 20 20 20 20 20 22 72 65 70 65 61 laylist.....(message......"repea
12fac0 74 20 70 6c 61 79 6c 69 73 74 3a 20 25 73 2c 20 72 65 70 65 61 74 20 74 72 61 63 6b 3a 20 25 73 t.playlist:.%s,.repeat.track:.%s
12fae0 2c 20 72 61 6e 64 6f 6d 3a 20 25 73 2c 20 73 69 6e 67 6c 65 20 25 73 22 0a 20 20 20 20 20 28 69 ,.random:.%s,.single.%s"......(i
12fb00 66 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 22 79 65 73 22 20 22 6e 6f f.emms-repeat-playlist."yes"."no
12fb20 22 29 0a 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 22 79 ")......(if.emms-repeat-track."y
12fb40 65 73 22 20 22 6e 6f 22 29 0a 20 20 20 20 20 28 69 66 20 65 6d 6d 73 2d 72 61 6e 64 6f 6d 2d 70 es"."no")......(if.emms-random-p
12fb60 6c 61 79 6c 69 73 74 20 22 79 65 73 22 20 22 6e 6f 22 29 0a 20 20 20 20 20 28 69 66 20 65 6d 6d laylist."yes"."no")......(if.emm
12fb80 73 2d 73 69 6e 67 6c 65 2d 74 72 61 63 6b 20 22 79 65 73 22 20 22 6e 6f 22 29 29 29 29 0a 0a 0a s-single-track."yes"."no"))))...
12fba0 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;;.----------------------------
12fbc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12fbe0 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 3b ------.;;;.Utility.functions.;;;
12fc00 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
12fc20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12fc40 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 ---.(defun.emms-insert-file-cont
12fc60 65 6e 74 73 20 28 66 69 6c 65 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 76 69 73 69 74 29 0a ents.(filename.&optional.visit).
12fc80 20 20 22 49 6e 73 65 72 74 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 66 69 6c 65 20 46 .."Insert.the.contents.of.file.F
12fca0 49 4c 45 4e 41 4d 45 20 61 66 74 65 72 20 70 6f 69 6e 74 2e 0a 44 6f 20 63 68 61 72 61 63 74 65 ILENAME.after.point..Do.characte
12fcc0 72 20 63 6f 64 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 61 6e 64 20 65 6e 64 2d 6f 66 2d 6c 69 6e r.code.conversion.and.end-of-lin
12fce0 65 20 63 6f 6e 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6e 6f 6e 65 0a 6f 66 20 74 68 65 20 6f 74 e.conversion,.but.none.of.the.ot
12fd00 68 65 72 20 75 6e 6e 65 63 65 73 73 61 72 79 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 66 6f 72 6d her.unnecessary.things.like.form
12fd20 61 74 20 64 65 63 6f 64 69 6e 67 20 6f 72 0a 60 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 27 2e at.decoding.or.`find-file-hook'.
12fd40 0a 0a 49 66 20 56 49 53 49 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 62 75 66 66 65 ..If.VISIT.is.non-nil,.the.buffe
12fd60 72 27 73 20 76 69 73 69 74 65 64 20 66 69 6c 65 6e 61 6d 65 0a 61 6e 64 20 6c 61 73 74 20 73 61 r's.visited.filename.and.last.sa
12fd80 76 65 20 66 69 6c 65 20 6d 6f 64 74 69 6d 65 20 61 72 65 20 73 65 74 2c 20 61 6e 64 20 69 74 20 ve.file.modtime.are.set,.and.it.
12fda0 69 73 20 6d 61 72 6b 65 64 20 75 6e 6d 6f 64 69 66 69 65 64 2e 0a 49 66 20 76 69 73 69 74 69 6e is.marked.unmodified..If.visitin
12fdc0 67 20 61 6e 64 20 74 68 65 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 76 g.and.the.file.does.not.exist,.v
12fde0 69 73 69 74 69 6e 67 20 69 73 20 63 6f 6d 70 6c 65 74 65 64 0a 62 65 66 6f 72 65 20 74 68 65 20 isiting.is.completed.before.the.
12fe00 65 72 72 6f 72 20 69 73 20 73 69 67 6e 61 6c 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 6f 72 error.is.signaled."...(let.((for
12fe20 6d 61 74 2d 61 6c 69 73 74 20 6e 69 6c 29 0a 09 28 61 66 74 65 72 2d 69 6e 73 65 72 74 2d 66 69 mat-alist.nil)..(after-insert-fi
12fe40 6c 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 29 0a 09 28 69 6e 68 69 62 69 74 2d 66 69 6c 65 le-functions.nil)..(inhibit-file
12fe60 2d 6e 61 6d 65 2d 68 61 6e 64 6c 65 72 73 0a 09 20 28 61 70 70 65 6e 64 20 27 28 6a 6b 61 2d 63 -name-handlers...(append.'(jka-c
12fe80 6f 6d 70 72 2d 68 61 6e 64 6c 65 72 20 69 6d 61 67 65 2d 66 69 6c 65 2d 68 61 6e 64 6c 65 72 20 ompr-handler.image-file-handler.
12fea0 65 70 61 2d 66 69 6c 65 2d 68 61 6e 64 6c 65 72 29 0a 09 09 20 69 6e 68 69 62 69 74 2d 66 69 6c epa-file-handler)....inhibit-fil
12fec0 65 2d 6e 61 6d 65 2d 68 61 6e 64 6c 65 72 73 29 29 0a 09 28 69 6e 68 69 62 69 74 2d 66 69 6c 65 e-name-handlers))..(inhibit-file
12fee0 2d 6e 61 6d 65 2d 6f 70 65 72 61 74 69 6f 6e 20 27 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e -name-operation.'insert-file-con
12ff00 74 65 6e 74 73 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 tents)).....(insert-file-content
12ff20 73 20 66 69 6c 65 6e 61 6d 65 20 76 69 73 69 74 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d s.filename.visit)))...;;;.------
12ff40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12ff60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b ----------------------------.;;;
12ff80 20 44 69 63 74 69 6f 6e 61 72 69 65 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .Dictionaries.;;;.--------------
12ffa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12ffc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 54 68 69 73 20 69 73 20 --------------------.;;.This.is.
12ffe0 61 20 73 69 6d 70 6c 65 20 68 65 6c 70 65 72 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2c 20 a.simple.helper.data.structure,.
130000 75 73 65 64 20 62 79 20 62 6f 74 68 20 70 6c 61 79 65 72 73 0a 3b 3b 20 61 6e 64 20 74 72 61 63 used.by.both.players.;;.and.trac
130020 6b 73 2e 0a 28 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 20 28 6e ks..(defsubst.emms-dictionary.(n
130040 61 6d 65 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 6e 65 77 20 64 69 63 74 69 6f 6e 61 72 79 20 ame)..."Create.a.new.dictionary.
130060 6f 66 20 74 79 70 65 20 4e 41 4d 45 2e 22 0a 20 20 28 6c 69 73 74 20 6e 61 6d 65 29 29 0a 0a 28 of.type.NAME."...(list.name))..(
130080 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 74 79 70 65 20 28 64 defsubst.emms-dictionary-type.(d
1300a0 69 63 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 64 ict)..."Return.the.type.of.the.d
1300c0 69 63 74 69 6f 6e 61 72 79 20 44 49 43 54 2e 22 0a 20 20 28 63 61 72 20 64 69 63 74 29 29 0a 0a ictionary.DICT."...(car.dict))..
1300e0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 67 65 74 20 28 64 69 63 74 (defun.emms-dictionary-get.(dict
130100 20 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 66 61 75 6c 74 29 0a 20 20 22 52 65 74 75 .name.&optional.default)..."Retu
130120 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 4e 41 4d 45 20 69 6e 20 44 49 43 54 2e 22 0a 20 rn.the.value.of.NAME.in.DICT."..
130140 20 28 6c 65 74 20 28 28 69 74 65 6d 20 28 61 73 73 71 20 6e 61 6d 65 20 28 63 64 72 20 64 69 63 .(let.((item.(assq.name.(cdr.dic
130160 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 69 74 65 6d 0a 09 28 63 64 72 20 69 74 65 6d 29 0a 20 t)))).....(if.item..(cdr.item)..
130180 20 20 20 20 20 64 65 66 61 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 64 69 63 .....default)))..(defun.emms-dic
1301a0 74 69 6f 6e 61 72 79 2d 73 65 74 20 28 64 69 63 74 20 6e 61 6d 65 20 76 61 6c 75 65 29 0a 20 20 tionary-set.(dict.name.value)...
1301c0 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 4e 41 4d 45 20 69 6e 20 44 49 43 54 20 74 "Set.the.value.of.NAME.in.DICT.t
1301e0 6f 20 56 41 4c 55 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 74 65 6d 20 28 61 73 73 71 20 6e 61 o.VALUE."...(let.((item.(assq.na
130200 6d 65 20 28 63 64 72 20 64 69 63 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 69 74 65 6d 0a 09 28 me.(cdr.dict)))).....(if.item..(
130220 73 65 74 63 64 72 20 69 74 65 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 28 73 65 74 63 64 72 setcdr.item.value).......(setcdr
130240 20 64 69 63 74 20 28 61 70 70 65 6e 64 20 28 63 64 72 20 64 69 63 74 29 0a 09 09 09 20 20 20 28 .dict.(append.(cdr.dict).......(
130260 6c 69 73 74 20 28 63 6f 6e 73 20 6e 61 6d 65 20 76 61 6c 75 65 29 29 29 29 29 29 0a 20 20 64 69 list.(cons.name.value))))))...di
130280 63 74 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ct)...;;;.----------------------
1302a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1302c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 54 72 61 63 6b 73 0a 3b 3b 3b 20 2d 2d 2d 2d ------------.;;;.Tracks.;;;.----
1302e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
130300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b ------------------------------.;
130320 3b 20 54 68 69 73 20 69 73 20 61 20 73 69 6d 70 6c 65 20 64 61 74 61 74 79 70 65 20 74 6f 20 73 ;.This.is.a.simple.datatype.to.s
130340 74 6f 72 65 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 3b 3b 20 45 61 63 68 20 tore.track.information..;;.Each.
130360 74 72 61 63 6b 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 74 79 70 65 20 28 61 20 73 79 6d 62 track.consists.of.a.type.(a.symb
130380 6f 6c 29 20 61 6e 64 20 61 20 6e 61 6d 65 20 28 61 20 73 74 72 69 6e 67 29 2e 0a 3b 3b 20 49 6e ol).and.a.name.(a.string)..;;.In
1303a0 20 61 64 64 69 74 69 6f 6e 2c 20 65 61 63 68 20 74 72 61 63 6b 20 68 61 73 20 61 6e 20 61 73 73 .addition,.each.track.has.an.ass
1303c0 6f 63 69 61 74 65 64 20 64 69 63 74 69 6f 6e 61 72 79 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f ociated.dictionary.of.informatio
1303e0 6e 2e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 20 28 74 79 70 65 20 6e 61 6d 65 29 n..(defun.emms-track.(type.name)
130400 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 45 4d 4d 53 20 74 72 61 63 6b 20 77 69 74 68 20 74 79 ..."Create.an.EMMS.track.with.ty
130420 70 65 20 54 59 50 45 20 61 6e 64 20 6e 61 6d 65 20 4e 41 4d 45 2e 22 0a 20 20 28 6c 65 74 20 28 pe.TYPE.and.name.NAME."...(let.(
130440 28 74 72 61 63 6b 20 28 77 68 65 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 67 65 74 2d 66 75 6e 63 (track.(when.emms-cache-get-func
130460 74 69 6f 6e 0a 09 09 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 2d 67 65 74 2d tion....(funcall.emms-cache-get-
130480 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e function.type.name)))).....(when
1304a0 20 28 6e 6f 74 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 20 28 .(not.track).......(setq.track.(
1304c0 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 20 27 2a 74 72 61 63 6b 2a 29 29 0a 20 20 20 20 20 emms-dictionary.'*track*))......
1304e0 20 3b 3b 20 50 72 65 76 65 6e 74 20 74 68 65 20 63 61 63 68 65 20 66 72 6f 6d 20 62 65 69 6e 67 .;;.Prevent.the.cache.from.being
130500 20 63 61 6c 6c 65 64 20 66 6f 72 20 74 68 65 73 65 20 74 77 6f 20 73 65 74 73 0a 20 20 20 20 20 .called.for.these.two.sets......
130520 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 65 64 2d 66 75 6e 63 .(let.((emms-cache-modified-func
130540 74 69 6f 6e 20 6e 69 6c 29 29 0a 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 tion.nil))..(emms-track-set.trac
130560 6b 20 27 74 79 70 65 20 74 79 70 65 29 0a 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 k.'type.type)..(emms-track-set.t
130580 72 61 63 6b 20 27 6e 61 6d 65 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 65 6d rack.'name.name)).......(when.em
1305a0 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 0a 09 28 66 75 6e 63 61 6c 6c 20 ms-cache-set-function..(funcall.
1305c0 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 20 6e 61 6d emms-cache-set-function.type.nam
1305e0 65 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 3b 3b 20 72 75 6e 20 61 6e 79 20 68 6f 6f 6b 73 20 e.track))).....;;.run.any.hooks.
130600 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 61 20 63 61 63 68 65 20 68 69 74 2c 20 61 73 20 74 68 regardless.of.a.cache.hit,.as.th
130620 65 20 65 6e 74 72 79 20 6d 61 79 20 62 65 0a 20 20 20 20 3b 3b 20 6f 6c 64 0a 20 20 20 20 28 72 e.entry.may.be.....;;.old.....(r
130640 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e un-hook-with-args.'emms-track-in
130660 69 74 69 61 6c 69 7a 65 2d 66 75 6e 63 74 69 6f 6e 73 20 74 72 61 63 6b 29 0a 20 20 20 20 74 72 itialize-functions.track).....tr
130680 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 70 20 28 6f 62 6a 29 ack))..(defun.emms-track-p.(obj)
1306a0 0a 20 20 22 54 72 75 65 20 69 66 20 4f 42 4a 20 69 73 20 61 6e 20 65 6d 6d 73 20 74 72 61 63 6b ..."True.if.OBJ.is.an.emms.track
1306c0 2e 22 0a 20 20 28 61 6e 64 20 28 6c 69 73 74 70 20 6f 62 6a 29 0a 20 20 20 20 20 20 20 28 65 71 ."...(and.(listp.obj)........(eq
1306e0 20 28 63 61 72 20 6f 62 6a 29 20 27 2a 74 72 61 63 6b 2a 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 .(car.obj).'*track*)))..(defun.e
130700 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e mms-track-type.(track)..."Return
130720 20 74 68 65 20 74 79 70 65 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 65 6d 6d 73 2d 74 72 61 .the.type.of.TRACK."...(emms-tra
130740 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ck-get.track.'type))..(defun.emm
130760 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 28 74 72 61 63 6b 29 0a 20 20 22 54 72 75 65 20 69 s-track-file-p.(track)..."True.i
130780 66 20 54 52 41 43 4b 20 69 73 20 61 20 66 69 6c 65 20 74 79 70 65 22 0a 20 20 28 65 71 20 27 66 f.TRACK.is.a.file.type"...(eq.'f
1307a0 69 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 29 29 0a 0a 28 ile.(emms-track-type.track)))..(
1307c0 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 28 74 72 61 63 6b 29 0a 20 20 defun.emms-track-name.(track)...
1307e0 22 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 54 52 41 43 4b 2e 22 0a 20 20 28 65 "Return.the.name.of.TRACK."...(e
130800 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 0a 28 64 65 mms-track-get.track.'name))..(de
130820 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 28 74 72 61 63 6b 20 6e 61 6d 65 20 26 fun.emms-track-get.(track.name.&
130840 6f 70 74 69 6f 6e 61 6c 20 64 65 66 61 75 6c 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 optional.default)..."Return.the.
130860 76 61 6c 75 65 20 6f 66 20 4e 41 4d 45 20 66 6f 72 20 54 52 41 43 4b 2e 0a 49 66 20 74 68 65 72 value.of.NAME.for.TRACK..If.ther
130880 65 20 69 73 20 6e 6f 20 76 61 6c 75 65 2c 20 72 65 74 75 72 6e 20 44 45 46 41 55 4c 54 20 28 6f e.is.no.value,.return.DEFAULT.(o
1308a0 72 20 6e 69 6c 2c 20 69 66 20 6e 6f 74 20 67 69 76 65 6e 29 2e 22 0a 20 20 28 65 6d 6d 73 2d 64 r.nil,.if.not.given)."...(emms-d
1308c0 69 63 74 69 6f 6e 61 72 79 2d 67 65 74 20 74 72 61 63 6b 20 6e 61 6d 65 20 64 65 66 61 75 6c 74 ictionary-get.track.name.default
1308e0 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 28 74 72 61 63 6b ))..(defun.emms-track-set.(track
130900 20 6e 61 6d 65 20 76 61 6c 75 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 .name.value)..."Set.the.value.of
130920 20 4e 41 4d 45 20 66 6f 72 20 54 52 41 43 4b 20 74 6f 20 56 41 4c 55 45 2e 22 0a 20 20 28 65 6d .NAME.for.TRACK.to.VALUE."...(em
130940 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 73 65 74 20 74 72 61 63 6b 20 6e 61 6d 65 20 76 61 6c ms-dictionary-set.track.name.val
130960 75 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 65 64 2d ue)...(when.emms-cache-modified-
130980 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 function.....(funcall.emms-cache
1309a0 2d 6d 6f 64 69 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 -modified-function.track)))..(de
1309c0 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 74 72 61 63 fun.emms-track-description.(trac
1309e0 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 54 52 k)..."Return.a.description.of.TR
130a00 41 43 4b 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 74 68 65 20 67 6c 6f 62 ACK..This.function.uses.the.glob
130a20 61 6c 20 76 61 6c 75 65 20 66 6f 72 0a 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 al.value.for.`emms-track-descrip
130a40 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 6e 79 74 tion-function',.rather.than.anyt
130a60 68 69 6e 67 20 74 68 65 0a 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 6d 69 67 68 74 20 68 61 76 65 hing.the.current.mode.might.have
130a80 20 73 65 74 2e 0a 0a 55 73 65 20 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 6f 72 63 65 2d 64 65 73 .set...Use.`emms-track-force-des
130aa0 63 72 69 70 74 69 6f 6e 27 20 69 6e 73 74 65 61 64 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 6f cription'.instead.if.you.need.to
130ac0 20 69 6e 73 65 72 74 0a 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 61 20 70 6c 61 .insert.a.description.into.a.pla
130ae0 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 64 65 66 61 75 ylist.buffer."...(funcall.(defau
130b00 6c 74 2d 76 61 6c 75 65 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e lt-value.'emms-track-description
130b20 2d 66 75 6e 63 74 69 6f 6e 29 20 74 72 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d -function).track))..(defun.emms-
130b40 74 72 61 63 6b 2d 75 70 64 61 74 65 64 20 28 74 72 61 63 6b 29 0a 20 20 22 49 6e 66 6f 72 6d 61 track-updated.(track)..."Informa
130b60 74 69 6f 6e 20 69 6e 20 54 52 41 43 4b 20 67 6f 74 20 75 70 64 61 74 65 64 2e 22 0a 20 20 28 72 tion.in.TRACK.got.updated."...(r
130b80 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 69 6e un-hook-with-args.'emms-track-in
130ba0 66 6f 2d 66 69 6c 74 65 72 73 20 74 72 61 63 6b 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 fo-filters.track)...(emms-playli
130bc0 73 74 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 64 20 74 72 61 63 6b 29 0a 20 20 28 72 75 6e 2d 68 st-track-updated.track)...(run-h
130be0 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 ook-with-args.'emms-track-update
130c00 64 2d 66 75 6e 63 74 69 6f 6e 73 20 74 72 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 d-functions.track))..(defun.emms
130c20 2d 74 72 61 63 6b 2d 73 69 6d 70 6c 65 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 74 72 61 63 6b -track-simple-description.(track
130c40 29 0a 20 20 22 53 69 6d 70 6c 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 67 69 76 65 20 61 20 75 )..."Simple.function.to.give.a.u
130c60 73 65 72 2d 72 65 61 64 61 62 6c 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 61 20 74 72 ser-readable.description.of.a.tr
130c80 61 63 6b 2e 0a 49 66 20 69 74 27 73 20 61 20 66 69 6c 65 20 74 72 61 63 6b 2c 20 6a 75 73 74 20 ack..If.it's.a.file.track,.just.
130ca0 72 65 74 75 72 6e 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 2e 20 20 4f 74 68 65 72 77 69 73 65 return.the.file.name...Otherwise
130cc0 2c 0a 72 65 74 75 72 6e 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 74 68 65 20 6e 61 6d 65 20 77 ,.return.the.type.and.the.name.w
130ce0 69 74 68 20 61 20 63 6f 6c 6f 6e 20 69 6e 20 62 65 74 77 65 65 6e 2e 0a 48 65 78 2d 65 6e 63 6f ith.a.colon.in.between..Hex-enco
130d00 64 65 64 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 55 52 4c 73 20 61 72 65 20 72 65 70 6c 61 ded.characters.in.URLs.are.repla
130d20 63 65 64 20 62 79 20 74 68 65 20 64 65 63 6f 64 65 64 0a 63 68 61 72 61 63 74 65 72 2e 22 0a 20 ced.by.the.decoded.character."..
130d40 20 28 6c 65 74 20 28 28 74 79 70 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 .(let.((type.(emms-track-type.tr
130d60 61 63 6b 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 27 66 69 6c 65 20 74 79 70 65 ack))).....(cond.((eq.'file.type
130d80 29 0a 09 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 09 ).....(emms-track-name.track))..
130da0 20 20 28 28 65 71 20 27 75 72 6c 20 74 79 70 65 29 0a 09 20 20 20 28 65 6d 6d 73 2d 66 6f 72 6d ..((eq.'url.type).....(emms-form
130dc0 61 74 2d 75 72 6c 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 at-url-track-name.(emms-track-na
130de0 6d 65 20 74 72 61 63 6b 29 29 29 0a 09 20 20 28 74 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 6f me.track)))....(t.(concat.(symbo
130e00 6c 2d 6e 61 6d 65 20 74 79 70 65 29 0a 09 09 20 20 20 20 20 22 3a 20 22 20 28 65 6d 6d 73 2d 74 l-name.type)........":.".(emms-t
130e20 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d rack-name.track))))))..(defun.em
130e40 6d 73 2d 66 6f 72 6d 61 74 2d 75 72 6c 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 28 6e 61 6d 65 29 0a ms-format-url-track-name.(name).
130e60 20 20 22 46 6f 72 6d 61 74 20 55 52 4c 20 74 72 61 63 6b 20 6e 61 6d 65 20 66 6f 72 20 62 65 74 .."Format.URL.track.name.for.bet
130e80 74 65 72 20 72 65 61 64 61 62 69 6c 69 74 79 2e 22 0a 20 20 28 75 72 6c 2d 75 6e 68 65 78 2d 73 ter.readability."...(url-unhex-s
130ea0 74 72 69 6e 67 20 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 72 61 63 6b 2d tring.name))..(defun.emms-track-
130ec0 66 6f 72 63 65 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 74 72 61 63 6b 29 0a 20 20 22 41 6c 77 force-description.(track)..."Alw
130ee0 61 79 73 20 72 65 74 75 72 6e 20 74 65 78 74 20 74 68 61 74 20 64 65 73 63 72 69 62 65 73 20 54 ays.return.text.that.describes.T
130f00 52 41 43 4b 2e 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e RACK..This.is.used.when.insertin
130f20 67 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 61 20 62 75 66 66 65 72 2e 0a 0a g.a.description.into.a.buffer...
130f40 54 68 65 20 72 65 61 73 6f 6e 20 66 6f 72 20 74 68 69 73 20 69 73 20 74 68 61 74 20 69 66 20 6e The.reason.for.this.is.that.if.n
130f60 6f 20 74 65 78 74 20 77 61 73 20 72 65 74 75 72 6e 65 64 20 28 69 2e 65 2e 20 74 68 65 0a 75 73 o.text.was.returned.(i.e..the.us
130f80 65 72 20 64 65 66 69 6e 65 64 20 61 20 74 72 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 er.defined.a.track.function.that
130fa0 20 72 65 74 75 72 6e 65 64 20 6e 69 6c 20 6f 72 20 74 68 65 20 65 6d 70 74 79 0a 73 74 72 69 6e .returned.nil.or.the.empty.strin
130fc0 67 29 2c 20 61 20 63 6f 6e 66 75 73 69 6e 67 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 77 6f g),.a.confusing.error.message.wo
130fe0 75 6c 64 20 72 65 73 75 6c 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 73 63 20 28 66 75 6e 63 uld.result."...(let.((desc.(func
131000 61 6c 6c 20 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 2d 66 75 6e 63 74 all.emms-track-description-funct
131020 69 6f 6e 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e ion.track))).....(if.(and.(strin
131040 67 70 20 64 65 73 63 29 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 64 65 73 63 20 22 22 29 29 gp.desc).(not.(string=.desc.""))
131060 29 0a 09 64 65 73 63 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 69 6d 70 6c 65 )..desc.......(emms-track-simple
131080 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 -description.track))))..(defun.e
1310a0 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 2d 79 65 61 72 20 28 74 72 61 63 6b 29 0a 20 20 22 47 65 mms-track-get-year.(track)..."Ge
1310c0 74 20 79 65 61 72 20 6f 66 20 54 52 41 43 4b 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 0a 54 68 65 t.year.of.TRACK.for.display..The
1310e0 72 65 20 69 73 20 74 68 65 20 73 65 70 61 72 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 68 65 re.is.the.separation.between.the
131100 20 5c 5c 3d 27 72 65 6c 65 61 73 65 20 64 61 74 65 5c 5c 3d 27 20 61 6e 64 20 74 68 65 0a 5c 5c .\\='release.date\\='.and.the.\\
131120 3d 27 6f 72 69 67 69 6e 61 6c 20 64 61 74 65 5c 5c 3d 27 2e 20 20 54 68 69 73 20 64 69 66 66 65 ='original.date\\='...This.diffe
131140 72 65 6e 63 65 20 6d 61 74 74 65 72 73 20 65 2e 67 2e 20 66 6f 72 0a 72 65 2d 72 65 6c 65 61 73 rence.matters.e.g..for.re-releas
131160 65 73 20 28 61 6e 6e 69 76 65 72 73 61 72 69 65 73 20 61 6e 64 20 73 75 63 68 29 20 77 68 65 72 es.(anniversaries.and.such).wher
131180 65 20 74 68 65 20 72 65 6c 65 61 73 65 20 64 61 74 65 20 69 73 0a 6d 6f 72 65 20 72 65 63 65 6e e.the.release.date.is.more.recen
1311a0 74 20 74 68 61 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 72 65 6c 65 61 73 65 20 64 61 74 65 t.than.the.original.release.date
1311c0 2e 20 20 49 6e 20 73 75 63 68 20 63 61 73 65 73 20 74 68 65 0a 75 73 65 72 20 70 72 6f 62 61 62 ...In.such.cases.the.user.probab
1311e0 6c 79 20 77 61 6e 74 73 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 72 65 6c 65 61 73 65 20 64 61 ly.wants.the.original.release.da
131200 74 65 20 73 6f 20 74 68 69 73 20 69 73 20 77 68 61 74 20 77 65 0a 73 68 6f 77 2e 22 0a 20 20 28 te.so.this.is.what.we.show."...(
131220 6f 72 0a 20 20 20 28 65 6d 6d 73 2d 66 6f 72 6d 61 74 2d 64 61 74 65 2d 74 6f 2d 79 65 61 72 20 or....(emms-format-date-to-year.
131240 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 64 61 74 65 (emms-track-get.track.'info-date
131260 29 29 0a 20 20 20 28 65 6d 6d 73 2d 66 6f 72 6d 61 74 2d 64 61 74 65 2d 74 6f 2d 79 65 61 72 20 ))....(emms-format-date-to-year.
131280 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6f 72 69 67 (emms-track-get.track.'info-orig
1312a0 69 6e 61 6c 64 61 74 65 29 29 0a 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 inaldate))....(emms-track-get.tr
1312c0 61 63 6b 20 27 69 6e 66 6f 2d 79 65 61 72 29 0a 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 ack.'info-year)....(emms-track-g
1312e0 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6f 72 69 67 69 6e 61 6c 79 65 61 72 29 29 29 0a 0a et.track.'info-originalyear)))..
131300 28 64 65 66 75 6e 20 65 6d 6d 73 2d 66 6f 72 6d 61 74 2d 64 61 74 65 2d 74 6f 2d 79 65 61 72 20 (defun.emms-format-date-to-year.
131320 28 64 61 74 65 29 0a 20 20 22 54 72 79 20 74 6f 20 65 78 74 72 61 63 74 20 79 65 61 72 20 70 61 (date)..."Try.to.extract.year.pa
131340 72 74 20 66 72 6f 6d 20 44 41 54 45 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 74 68 65 20 rt.from.DATE..Return.nil.if.the.
131360 79 65 61 72 20 63 61 6e 6e 6f 74 20 62 65 20 65 78 74 72 61 63 74 65 64 2e 22 0a 20 20 28 77 68 year.cannot.be.extracted."...(wh
131380 65 6e 20 64 61 74 65 0a 20 20 20 20 28 6c 65 74 20 28 28 79 65 61 72 20 28 6e 74 68 20 35 20 28 en.date.....(let.((year.(nth.5.(
1313a0 70 61 72 73 65 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 64 61 74 65 29 29 29 29 0a 20 20 20 20 20 parse-time-string.date))))......
1313c0 20 28 69 66 20 79 65 61 72 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 79 65 61 72 .(if.year.(number-to-string.year
1313e0 29 0a 09 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 5b 20 5c 74 5d 2a 5c )..(when.(string-match."^[.\t]*\
131400 5c 28 5b 30 2d 39 5d 5c 5c 7b 34 5c 5c 7d 5c 5c 29 22 20 64 61 74 65 29 0a 09 20 20 28 6d 61 74 \([0-9]\\{4\\}\\)".date)....(mat
131420 63 68 2d 73 74 72 69 6e 67 20 31 20 64 61 74 65 29 29 29 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d ch-string.1.date))))))...;;;.---
131440 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
131460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
131480 3b 3b 3b 20 54 68 65 20 50 6c 61 79 6c 69 73 74 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;;.The.Playlist.;;;.-----------
1314a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1314c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 50 6c 61 79 6c -----------------------.;;.Playl
1314e0 69 73 74 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 62 75 66 66 65 72 73 2e 20 20 54 68 65 ists.are.stored.in.buffers...The
131500 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 69 73 0a 3b 3b 20 72 .current.playlist.buffer.is.;;.r
131520 65 6d 65 6d 62 65 72 65 64 20 69 6e 20 74 68 65 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 27 emembered.in.the.`emms-playlist'
131540 20 76 61 72 69 61 62 6c 65 2e 20 20 54 68 65 20 62 75 66 66 65 72 20 63 6f 6e 73 69 73 74 73 20 .variable...The.buffer.consists.
131560 6f 66 0a 3b 3b 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 64 61 74 61 2e 20 20 53 74 72 69 6e 67 73 of.;;.any.kind.of.data...Strings
131580 20 6f 66 20 74 65 78 74 20 77 69 74 68 20 61 20 60 65 6d 6d 73 2d 74 72 61 63 6b 27 20 70 72 6f .of.text.with.a.`emms-track'.pro
1315a0 70 65 72 74 79 20 61 72 65 0a 3b 3b 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 62 perty.are.;;.the.tracks.in.the.b
1315c0 75 66 66 65 72 2e 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 uffer..(defvar.emms-playlist-buf
1315e0 66 65 72 73 20 6e 69 6c 0a 20 20 22 54 68 65 20 6c 69 73 74 20 6f 66 20 45 4d 4d 53 20 70 6c 61 fers.nil..."The.list.of.EMMS.pla
131600 79 6c 69 73 74 20 62 75 66 66 65 72 73 2e 0a 59 6f 75 20 73 68 6f 75 6c 64 20 75 73 65 20 74 68 ylist.buffers..You.should.use.th
131620 65 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6c 69 73 74 27 20 66 75 e.`emms-playlist-buffer-list'.fu
131640 6e 63 74 69 6f 6e 20 74 6f 0a 72 65 74 72 69 65 76 65 20 61 20 63 75 72 72 65 6e 74 20 6c 69 73 nction.to.retrieve.a.current.lis
131660 74 20 6f 66 20 45 4d 4d 53 20 62 75 66 66 65 72 73 2e 20 20 4e 65 76 65 72 20 75 73 65 20 74 68 t.of.EMMS.buffers...Never.use.th
131680 69 73 20 76 61 72 69 61 62 6c 65 0a 66 6f 72 20 74 68 61 74 20 70 75 72 70 6f 73 65 2e 22 29 0a is.variable.for.that.purpose.").
1316a0 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d .(defvar.emms-playlist-selected-
1316c0 6d 61 72 6b 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 72 6b 65 72 20 66 6f 72 20 74 68 65 marker.nil..."The.marker.for.the
1316e0 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 20 74 72 61 63 6b 2e 22 29 0a 28 6d 61 .currently.selected.track.").(ma
131700 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 70 ke-variable-buffer-local.'emms-p
131720 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 0a 0a 28 64 65 66 76 61 laylist-selected-marker)..(defva
131740 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 6e 69 6c 0a 20 20 22 r.emms-playlist-buffer-p.nil..."
131760 4e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 Non-nil.if.the.current.buffer.is
131780 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 .an.EMMS.playlist.").(make-varia
1317a0 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ble-buffer-local.'emms-playlist-
1317c0 62 75 66 66 65 72 2d 70 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 71 75 65 75 65 2d 6c 6f buffer-p)..(defvar.emms-queue-lo
1317e0 63 6b 20 6e 69 6c 0a 20 20 22 54 68 65 20 70 6c 61 79 6c 69 73 74 20 6e 61 6d 65 20 74 68 65 20 ck.nil..."The.playlist.name.the.
131800 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 69 73 20 6c 6f 63 6b 65 64 20 active.playlist.queue.is.locked.
131820 74 6f 2c 20 69 66 20 61 6e 79 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c to,.if.any.")..(defun.emms-playl
131840 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 ist-ensure-playlist-buffer.()...
131860 22 54 68 72 6f 77 20 61 6e 20 65 72 72 6f 72 20 69 66 20 77 65 27 72 65 20 6e 6f 74 20 69 6e 20 "Throw.an.error.if.we're.not.in.
131880 61 20 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 a.playlist-buffer."...(when.(not
1318a0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 29 0a 20 20 20 20 28 65 72 .emms-playlist-buffer-p).....(er
1318c0 72 6f 72 20 22 4e 6f 74 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 ror."Not.an.EMMS.playlist.buffer
1318e0 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 6f 63 6b 2d 71 75 65 75 65 20 28 29 0a ")))..(defun.emms-lock-queue.().
131900 20 20 22 4c 6f 63 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 6c 61 79 6c .."Lock.the.current.active.playl
131920 69 73 74 20 71 75 65 75 65 20 74 6f 20 69 74 27 73 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 69 73 ist.queue.to.it's.playlist..This
131940 20 61 6c 6c 6f 77 73 20 66 6f 72 20 75 6e 69 6e 74 65 72 72 75 70 74 65 64 20 70 6c 61 79 6c 69 .allows.for.uninterrupted.playli
131960 73 74 20 70 6c 61 79 62 61 63 6b 20 77 68 69 6c 65 20 62 72 6f 77 73 69 6e 67 20 6f 74 68 65 72 st.playback.while.browsing.other
131980 20 70 6c 61 79 6c 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 .playlists."...(interactive)...(
1319a0 73 65 74 71 20 65 6d 6d 73 2d 71 75 65 75 65 2d 6c 6f 63 6b 20 28 62 75 66 66 65 72 2d 6e 61 6d setq.emms-queue-lock.(buffer-nam
1319c0 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 0a 20 20 28 6d 65 73 73 e.emms-playlist-buffer))...(mess
1319e0 61 67 65 20 28 63 6f 6e 63 61 74 20 22 41 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 age.(concat."Active.playlist.que
131a00 75 65 20 69 73 20 6c 6f 63 6b 65 64 20 74 6f 20 22 20 65 6d 6d 73 2d 71 75 65 75 65 2d 6c 6f 63 ue.is.locked.to.".emms-queue-loc
131a20 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 6e 6c 6f 63 6b 2d 71 75 65 75 65 20 28 k)))..(defun.emms-unlock-queue.(
131a40 29 0a 20 20 22 55 6e 6c 6f 63 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 76 65 20 70 )..."Unlock.the.current.active.p
131a60 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 66 72 6f 6d 20 69 74 73 20 70 6c 61 79 6c 69 73 74 2e laylist.queue.from.its.playlist.
131a80 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 71 "...(interactive)...(setq.emms-q
131aa0 75 65 75 65 2d 6c 6f 63 6b 20 6e 69 6c 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 41 63 74 69 76 ueue-lock.nil)...(message."Activ
131ac0 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 69 73 20 75 6e 6c 6f 63 6b 65 64 2e 22 29 29 e.playlist.queue.is.unlocked."))
131ae0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 74 2d 70 6c 61 79 6c ..(defun.emms-playlist-set-playl
131b00 69 73 74 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 66 65 72 29 0a 20 20 ist-buffer.(&optional.buffer)...
131b20 22 53 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 "Set.the.current.playlist.buffer
131b40 20 69 66 20 74 68 65 20 71 75 65 75 65 20 69 73 20 6e 6f 74 20 6c 6f 63 6b 65 64 20 74 6f 20 69 .if.the.queue.is.not.locked.to.i
131b60 74 27 73 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 t's.playlist."...(interactive...
131b80 20 28 69 66 20 28 6e 6f 74 20 65 6d 6d 73 2d 71 75 65 75 65 2d 6c 6f 63 6b 29 0a 20 20 20 20 20 .(if.(not.emms-queue-lock)......
131ba0 20 20 28 6c 69 73 74 20 28 6c 65 74 2a 20 28 28 62 75 66 2d 6c 69 73 74 20 28 6d 61 70 63 61 72 ..(list.(let*.((buf-list.(mapcar
131bc0 20 23 27 28 6c 61 6d 62 64 61 20 28 62 75 66 29 0a 09 09 09 09 20 20 20 20 20 20 20 20 20 20 28 .#'(lambda.(buf)...............(
131be0 6c 69 73 74 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 29 0a 09 09 09 09 20 20 20 list.(buffer-name.buf)))........
131c00 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 ...(emms-playlist-buffer-list)))
131c20 0a 09 09 20 20 20 20 28 73 6f 72 74 65 64 2d 62 75 66 2d 6c 69 73 74 20 28 73 6f 72 74 20 62 75 .......(sorted-buf-list.(sort.bu
131c40 66 2d 6c 69 73 74 0a 09 09 09 09 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 f-list................#'(lambda.
131c60 28 6c 62 75 66 20 72 62 75 66 29 0a 09 09 09 09 09 20 20 20 20 20 20 20 28 3c 20 28 6c 65 6e 67 (lbuf.rbuf).............(<.(leng
131c80 74 68 20 28 63 61 72 20 6c 62 75 66 29 29 0a 09 09 09 09 09 20 20 20 20 20 20 20 20 20 20 28 6c th.(car.lbuf))................(l
131ca0 65 6e 67 74 68 20 28 63 61 72 20 72 62 75 66 29 29 29 29 29 29 0a 09 09 20 20 20 20 28 64 65 66 ength.(car.rbuf)))))).......(def
131cc0 61 75 6c 74 20 28 6f 72 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 ault.(or.(and.emms-playlist-buff
131ce0 65 72 2d 70 0a 09 09 09 09 20 20 20 20 20 20 3b 3b 20 64 65 66 61 75 6c 74 20 74 6f 20 63 75 72 er-p...........;;.default.to.cur
131d00 72 65 6e 74 20 62 75 66 66 65 72 0a 09 09 09 09 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 rent.buffer...........(buffer-na
131d20 6d 65 29 29 0a 09 09 09 20 20 20 20 20 20 20 20 20 3b 3b 20 70 69 63 6b 20 73 68 6f 72 74 65 73 me)).............;;.pick.shortes
131d40 74 20 62 75 66 66 65 72 20 6e 61 6d 65 2c 20 73 69 6e 63 65 20 69 74 20 69 73 0a 09 09 09 20 20 t.buffer.name,.since.it.is......
131d60 20 20 20 20 20 20 20 3b 3b 20 6c 69 6b 65 6c 79 20 74 6f 20 62 65 20 61 20 73 68 61 72 65 64 20 .......;;.likely.to.be.a.shared.
131d80 70 72 65 66 69 78 0a 09 09 09 20 20 20 20 20 20 20 20 20 28 63 61 72 20 73 6f 72 74 65 64 2d 62 prefix.............(car.sorted-b
131da0 75 66 2d 6c 69 73 74 29 29 29 29 0a 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 63 6f 6d 70 6c 65 uf-list)))).........(emms-comple
131dc0 74 69 6e 67 2d 72 65 61 64 20 22 50 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 74 6f 20 6d 61 ting-read."Playlist.buffer.to.ma
131de0 6b 65 20 63 75 72 72 65 6e 74 3a 20 22 0a 09 09 09 09 20 20 20 20 20 73 6f 72 74 65 64 2d 62 75 ke.current:."..........sorted-bu
131e00 66 2d 6c 69 73 74 20 6e 69 6c 20 74 20 64 65 66 61 75 6c 74 29 29 29 29 29 0a 20 20 28 69 66 20 f-list.nil.t.default)))))...(if.
131e20 28 6e 6f 74 20 65 6d 6d 73 2d 71 75 65 75 65 2d 6c 6f 63 6b 29 0a 20 20 20 20 20 20 28 6c 65 74 (not.emms-queue-lock).......(let
131e40 20 28 28 62 75 66 20 28 69 66 20 62 75 66 66 65 72 0a 09 09 20 20 20 20 20 28 67 65 74 2d 62 75 .((buf.(if.buffer........(get-bu
131e60 66 66 65 72 20 62 75 66 66 65 72 29 0a 09 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e ffer.buffer).............(curren
131e80 74 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 t-buffer)))).........(with-curre
131ea0 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c nt-buffer.buf...........(emms-pl
131ec0 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 0a aylist-ensure-playlist-buffer)).
131ee0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 ........(setq.emms-playlist-buff
131f00 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 61 6c 6c 65 64 2d 69 6e er.buf).........(when.(called-in
131f20 74 65 72 61 63 74 69 76 65 6c 79 2d 70 20 27 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 teractively-p.'interactive).....
131f40 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 65 74 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 ......(message."Set.current.EMMS
131f60 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 20 20 20 20 20 20 62 75 66 29 .playlist.buffer")).........buf)
131f80 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 54 68 65 20 61 63 74 69 76 .....(message.(concat."The.activ
131fa0 65 20 70 6c 61 79 6c 69 73 74 20 71 75 65 75 65 20 69 73 20 6c 6f 63 6b 65 64 20 74 6f 20 22 20 e.playlist.queue.is.locked.to.".
131fc0 65 6d 6d 73 2d 71 75 65 75 65 2d 6c 6f 63 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 emms-queue-lock))))..(defun.emms
131fe0 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 61 6d 65 29 0a 20 -playlist-new.(&optional.name)..
132000 20 22 43 72 65 61 74 65 20 61 20 6e 65 77 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a ."Create.a.new.playlist.buffer..
132020 54 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 61 6d 65 64 20 4e 41 4d 45 2c 20 62 75 74 20 6d 61 The.buffer.is.named.NAME,.but.ma
132040 64 65 20 75 6e 69 71 75 65 2e 20 20 4e 41 4d 45 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 60 65 6d de.unique...NAME.defaults.to.`em
132060 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 27 2e 20 20 49 66 20 63 61 ms-playlist-buffer-name'...If.ca
132080 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 20 74 68 65 20 6e 65 77 0a 62 75 66 66 lled.interactively,.the.new.buff
1320a0 65 72 20 69 73 20 61 6c 73 6f 20 73 65 6c 65 63 74 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 er.is.also.selected."...(interac
1320c0 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 tive)...(let.((buf.(generate-new
1320e0 2d 62 75 66 66 65 72 20 28 6f 72 20 6e 61 6d 65 0a 09 09 09 09 20 20 20 20 20 20 65 6d 6d 73 2d -buffer.(or.name...........emms-
132100 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 77 69 playlist-buffer-name)))).....(wi
132120 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 77 68 65 th-current-buffer.buf.......(whe
132140 6e 20 28 6e 6f 74 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 65 6d 6d 73 2d 70 6c 61 79 6c n.(not.(eq.major-mode.emms-playl
132160 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 0a 09 28 66 75 6e 63 61 ist-default-major-mode))..(funca
132180 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d ll.emms-playlist-default-major-m
1321a0 6f 64 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ode)).......(setq.emms-playlist-
1321c0 62 75 66 66 65 72 2d 70 20 74 29 29 0a 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 buffer-p.t)).....(add-to-list.'e
1321e0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 20 62 75 66 29 0a 20 20 20 20 28 77 mms-playlist-buffers.buf).....(w
132200 68 65 6e 20 28 63 61 6c 6c 65 64 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2d 70 20 27 69 6e 74 hen.(called-interactively-p.'int
132220 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 eractive).......(switch-to-buffe
132240 72 20 62 75 66 29 29 0a 20 20 20 20 62 75 66 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 r.buf)).....buf))..(defun.emms-p
132260 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e laylist-buffer-list.()..."Return
132280 20 61 20 6c 69 73 74 20 6f 66 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 73 .a.list.of.EMMS.playlist.buffers
1322a0 2e 0a 54 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 69 73 20 67 75 61 72 61 6e 74 65 65 ..The.first.element.is.guarantee
1322c0 64 20 74 6f 20 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 d.to.be.the.current.EMMS.playlis
1322e0 74 0a 62 75 66 66 65 72 2c 20 69 66 20 69 74 20 65 78 69 73 74 73 2c 20 6f 74 68 65 72 77 69 73 t.buffer,.if.it.exists,.otherwis
132300 65 20 74 68 65 20 73 6c 6f 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 0a e.the.slot.will.be.used.for.the.
132320 6f 74 68 65 72 20 45 4d 4d 53 20 62 75 66 66 65 72 73 2e 20 20 54 68 65 20 6c 69 73 74 20 77 69 other.EMMS.buffers...The.list.wi
132340 6c 6c 20 62 65 20 69 6e 20 6e 65 77 65 73 74 2d 66 69 72 73 74 20 6f 72 64 65 72 2e 22 0a 20 20 ll.be.in.newest-first.order."...
132360 3b 3b 20 70 72 75 6e 65 20 64 65 61 64 20 62 75 66 66 65 72 73 0a 20 20 28 73 65 74 71 20 65 6d ;;.prune.dead.buffers...(setq.em
132380 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 20 28 65 6d 6d 73 2d 64 65 6c 65 74 65 ms-playlist-buffers.(emms-delete
1323a0 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 62 75 66 29 0a 09 09 09 09 09 09 28 6e 6f 74 20 28 62 75 -if.(lambda.(buf).......(not.(bu
1323c0 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 29 29 0a 09 09 09 09 09 20 20 20 20 20 20 65 6d ffer-live-p.buf)))............em
1323e0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 29 0a 20 20 3b 3b 20 61 64 64 20 6e ms-playlist-buffers))...;;.add.n
132400 65 77 20 62 75 66 66 65 72 73 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 62 75 66 29 ew.buffers...(mapc.(lambda.(buf)
132420 0a 09 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 0a 09 20 ....(when.(buffer-live-p.buf)...
132440 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 09 20 20 20 ...(with-current-buffer.buf.....
132460 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 ...(when.(and.emms-playlist-buff
132480 65 72 2d 70 0a 09 09 09 20 28 6e 6f 74 20 28 6d 65 6d 71 20 62 75 66 20 65 6d 6d 73 2d 70 6c 61 er-p.....(not.(memq.buf.emms-pla
1324a0 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 29 29 0a 09 09 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c ylist-buffers)))...(setq.emms-pl
1324c0 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 0a 09 09 20 20 20 20 20 20 28 63 6f 6e 73 20 62 75 66 aylist-buffers.........(cons.buf
1324e0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 29 29 29 29 29 0a 09 28 62 .emms-playlist-buffers))))))..(b
132500 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 3b 3b 20 66 6f 72 63 65 20 63 75 72 72 65 6e 74 20 uffer-list))...;;.force.current.
132520 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 74 6f 20 68 65 61 64 20 70 6f 73 69 74 69 6f 6e playlist.buffer.to.head.position
132540 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d ...(when.(and.(buffer-live-p.emm
132560 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 09 20 20 20 20 20 28 6e 6f 74 20 28 65 s-playlist-buffer).......(not.(e
132580 71 20 28 63 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 20 65 6d q.(car.emms-playlist-buffers).em
1325a0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 ms-playlist-buffer))).....(setq.
1325c0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 20 28 63 6f 6e 73 20 65 6d 6d 73 emms-playlist-buffers.(cons.emms
1325e0 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 09 09 09 09 20 20 20 20 20 20 28 64 65 6c 65 -playlist-buffer...........(dele
132600 74 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 09 09 09 09 09 20 20 20 te.emms-playlist-buffer.........
132620 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 29 29 29 0a 20 20 65 ...emms-playlist-buffers))))...e
132640 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 0a 0a 28 64 65 66 75 6e 20 65 6d mms-playlist-buffers)..(defun.em
132660 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 28 29 0a 20 20 22 4b ms-playlist-current-kill.()..."K
132680 69 6c 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 ill.the.current.EMMS.playlist.bu
1326a0 66 66 65 72 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6f 6e 65 2e ffer.and.switch.to.the.next.one.
1326c0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 "...(interactive)...(when.(buffe
1326e0 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 r-live-p.emms-playlist-buffer)..
132700 20 20 20 28 6c 65 74 20 28 28 6e 65 77 20 28 63 61 64 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 ...(let.((new.(cadr.(emms-playli
132720 73 74 2d 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 6e 65 77 st-buffer-list)))).......(if.new
132740 0a 09 20 20 28 6c 65 74 20 28 28 6f 6c 64 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 ....(let.((old.emms-playlist-buf
132760 66 65 72 29 29 0a 09 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 fer))......(setq.emms-playlist-b
132780 75 66 66 65 72 20 6e 65 77 0a 09 09 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 uffer.new.....emms-playlist-buff
1327a0 65 72 73 20 28 63 64 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 73 29 29 ers.(cdr.emms-playlist-buffers))
1327c0 0a 09 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 6f 6c 64 29 0a 09 20 20 20 20 28 73 77 ......(kill-buffer.old)......(sw
1327e0 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 itch-to-buffer.emms-playlist-buf
132800 66 65 72 29 29 0a 09 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 fer))..(with-current-buffer.emms
132820 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 09 20 20 28 62 75 72 79 2d 62 75 66 66 65 72 -playlist-buffer....(bury-buffer
132840 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 ))))))..(defun.emms-playlist-cur
132860 72 65 6e 74 2d 63 6c 65 61 72 20 28 29 0a 20 20 22 43 6c 65 61 72 20 74 68 65 20 63 75 72 72 65 rent-clear.()..."Clear.the.curre
132880 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 49 66 20 6e 6f 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c nt.playlist..If.no.current.playl
1328a0 69 73 74 20 65 78 69 73 74 73 2c 20 61 20 6e 65 77 20 6f 6e 65 20 69 73 20 67 65 6e 65 72 61 74 ist.exists,.a.new.one.is.generat
1328c0 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 6f 72 20 28 ed."...(interactive)...(if.(or.(
1328e0 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 09 20 20 28 6e 6f not.emms-playlist-buffer)....(no
132900 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 t.(buffer-live-p.emms-playlist-b
132920 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 uffer))).......(setq.emms-playli
132940 73 74 2d 62 75 66 66 65 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 29 29 0a 20 st-buffer.(emms-playlist-new))..
132960 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 70 6c 61 ...(with-current-buffer.emms-pla
132980 79 6c 69 73 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ylist-buffer.......(emms-playlis
1329a0 74 2d 63 6c 65 61 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 t-clear))))..(defun.emms-playlis
1329c0 74 2d 63 6c 65 61 72 20 28 29 0a 20 20 22 43 6c 65 61 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 t-clear.()..."Clear.the.current.
1329e0 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 buffer."...(interactive)...(emms
132a00 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 -playlist-ensure-playlist-buffer
132a20 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 )...(let.((inhibit-read-only.t))
132a40 0a 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 .....(widen).....(delete-region.
132a60 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 (point-min)......(point-max)))..
132a80 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 .(run-hooks.'emms-playlist-clear
132aa0 65 64 2d 68 6f 6f 6b 29 29 0a 0a 3b 3b 3b 20 50 6f 69 6e 74 20 6d 6f 76 65 6d 65 6e 74 20 77 69 ed-hook))..;;;.Point.movement.wi
132ac0 74 68 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 0a 28 64 65 66 75 6e thin.the.playlist.buffer..(defun
132ae0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 26 6f 70 74 69 6f 6e .emms-playlist-track-at.(&option
132b00 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 50 al.pos)..."Return.the.track.at.P
132b20 4f 53 20 28 70 6f 69 6e 74 20 69 66 20 6e 6f 74 20 67 69 76 65 6e 29 2c 20 6f 72 20 6e 69 6c 20 OS.(point.if.not.given),.or.nil.
132b40 69 66 20 6e 6f 6e 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 if.none."...(emms-playlist-ensur
132b60 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 65 6d 6d 73 2d 77 69 74 68 2d e-playlist-buffer)...(emms-with-
132b80 77 69 64 65 6e 65 64 2d 62 75 66 66 65 72 0a 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 widened-buffer....(get-text-prop
132ba0 65 72 74 79 20 28 6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 09 09 20 20 20 20 20 20 27 65 erty.(or.pos.(point)).........'e
132bc0 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 mms-track)))..(defun.emms-playli
132be0 73 74 2d 6e 65 78 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 74 st-next.()..."Move.to.the.next.t
132c00 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 rack.in.the.current.buffer."...(
132c20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 emms-playlist-ensure-playlist-bu
132c40 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 6e 65 78 74 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 ffer)...(let.((next.(next-single
132c60 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 0a 09 09 09 09 09 20 20 -property-change.(point)........
132c80 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6e .'emms-track))).....(when.(not.n
132ca0 65 78 74 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 74 72 61 63 6b ext).......(error."No.next.track
132cc0 22 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ")).....(when.(not.(emms-playlis
132ce0 74 2d 74 72 61 63 6b 2d 61 74 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 t-track-at.next)).......(setq.ne
132d00 78 74 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 xt.(next-single-property-change.
132d20 6e 65 78 74 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6f next.'emms-track))).....(when.(o
132d40 72 20 28 6e 6f 74 20 6e 65 78 74 29 0a 09 20 20 20 20 20 20 28 3d 20 6e 65 78 74 20 28 70 6f 69 r.(not.next)........(=.next.(poi
132d60 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 nt-max))).......(error."No.next.
132d80 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6e 65 78 74 29 29 29 0a track")).....(goto-char.next))).
132da0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 20 28 .(defun.emms-playlist-previous.(
132dc0 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 )..."Move.to.the.previous.track.
132de0 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d in.the.current.buffer."...(emms-
132e00 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 playlist-ensure-playlist-buffer)
132e20 0a 20 20 28 6c 65 74 20 28 28 70 72 65 76 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d ...(let.((prev.(previous-single-
132e40 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 0a 09 09 09 09 09 20 20 20 property-change.(point).........
132e60 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f ....'emms-track))).....(when.(no
132e80 74 20 70 72 65 76 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 70 72 65 76 69 6f 75 t.prev).......(error."No.previou
132ea0 73 20 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 67 65 74 2d 74 s.track")).....(when.(not.(get-t
132ec0 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 72 65 76 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 0a ext-property.prev.'emms-track)).
132ee0 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 20 28 6f 72 20 28 70 72 65 76 69 6f 75 73 2d 73 ......(setq.prev.(or.(previous-s
132f00 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 70 72 65 76 20 27 65 6d 6d 73 ingle-property-change.prev.'emms
132f20 2d 74 72 61 63 6b 29 0a 09 09 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 -track)........(point-min))))...
132f40 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 70 72 65 76 29 0a 09 20 20 20 20 20 20 28 6e ..(when.(or.(not.prev)........(n
132f60 6f 74 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 72 65 76 20 27 65 6d 6d 73 ot.(get-text-property.prev.'emms
132f80 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 70 72 65 76 69 -track))).......(error."No.previ
132fa0 6f 75 73 20 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 72 65 76 ous.track")).....(goto-char.prev
132fc0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 66 69 72 73 74 20 )))..(defun.emms-playlist-first.
132fe0 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 74 72 61 63 6b 20 69 6e ()..."Move.to.the.first.track.in
133000 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c .the.current.buffer."...(emms-pl
133020 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 aylist-ensure-playlist-buffer)..
133040 20 28 6c 65 74 20 28 28 66 69 72 73 74 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 .(let.((first.(condition-case.ni
133060 6c 0a 09 09 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 09 09 20 20 20 20 20 28 67 l......(save-excursion........(g
133080 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 09 20 20 20 20 20 28 77 68 oto-char.(point-min))........(wh
1330a0 65 6e 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 en.(not.(emms-playlist-track-at.
1330c0 28 70 6f 69 6e 74 29 29 29 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 (point)))..........(emms-playlis
1330e0 74 2d 6e 65 78 74 29 29 0a 09 09 20 20 20 20 20 28 70 6f 69 6e 74 29 29 0a 09 09 20 28 65 72 72 t-next))........(point))....(err
133100 6f 72 0a 09 09 20 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 69 66 20 66 69 72 73 74 0a 09 28 67 or.....nil)))).....(if.first..(g
133120 6f 74 6f 2d 63 68 61 72 20 66 69 72 73 74 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f oto-char.first).......(error."No
133140 20 66 69 72 73 74 20 74 72 61 63 6b 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 .first.track"))))..(defun.emms-p
133160 6c 61 79 6c 69 73 74 2d 6c 61 73 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 6c laylist-last.()..."Move.to.the.l
133180 61 73 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e ast.track.in.the.current.buffer.
1331a0 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 "...(emms-playlist-ensure-playli
1331c0 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 6c 61 73 74 20 28 63 6f 6e 64 69 74 st-buffer)...(let.((last.(condit
1331e0 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 09 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e ion-case.nil.....(save-excursion
133200 0a 09 09 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 09 .......(goto-char.(point-max))..
133220 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 29 0a 09 09 .....(emms-playlist-previous)...
133240 20 20 20 20 28 70 6f 69 6e 74 29 29 0a 09 09 28 65 72 72 6f 72 0a 09 09 20 6e 69 6c 29 29 29 29 ....(point))...(error....nil))))
133260 0a 20 20 20 20 28 69 66 20 6c 61 73 74 0a 09 28 67 6f 74 6f 2d 63 68 61 72 20 6c 61 73 74 29 0a .....(if.last..(goto-char.last).
133280 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6c 61 73 74 20 74 72 61 63 6b 22 29 29 29 29 ......(error."No.last.track"))))
1332a0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 6c 65 74 65 2d 74 72 ..(defun.emms-playlist-delete-tr
1332c0 61 63 6b 20 28 29 0a 20 20 22 44 65 6c 65 74 65 20 74 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f ack.()..."Delete.the.track.at.po
1332e0 69 6e 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c int."...(emms-playlist-ensure-pl
133300 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 aylist-buffer)...(funcall.emms-p
133320 6c 61 79 6c 69 73 74 2d 64 65 6c 65 74 65 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 29 0a laylist-delete-track-function)).
133340 0a 3b 3b 3b 20 54 72 61 63 6b 20 73 65 6c 65 63 74 69 6f 6e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 .;;;.Track.selection.(defun.emms
133360 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 52 -playlist-selected-track.()..."R
133380 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 20 74 72 61 eturn.the.currently.selected.tra
1333a0 63 6b 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 ck."...(emms-playlist-ensure-pla
1333c0 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c ylist-buffer)...(when.emms-playl
1333e0 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c ist-selected-marker.....(emms-pl
133400 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 aylist-track-at.emms-playlist-se
133420 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c lected-marker)))..(defun.emms-pl
133440 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 20 28 29 aylist-current-selected-track.()
133460 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 ..."Return.the.currently.selecte
133480 64 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e d.track.in.the.current.playlist.
1334a0 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a "...(with-current-emms-playlist.
1334c0 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 ....(emms-playlist-selected-trac
1334e0 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 k)))..(defun.emms-playlist-selec
133500 74 65 64 2d 74 72 61 63 6b 2d 61 74 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 29 ted-track-at-p.(&optional.point)
133520 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 50 4f 49 4e 54 20 28 64 65 66 ..."Return.non-nil.if.POINT.(def
133540 61 75 6c 74 69 6e 67 20 74 6f 20 70 6f 69 6e 74 29 20 69 73 20 6f 6e 20 74 68 65 20 73 65 6c 65 aulting.to.point).is.on.the.sele
133560 63 74 65 64 20 74 72 61 63 6b 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 cted.track."...(when.emms-playli
133580 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 20 20 20 20 28 6f 72 20 28 3d 20 65 6d st-selected-marker.....(or.(=.em
1335a0 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 20 20 20 ms-playlist-selected-marker.....
1335c0 28 6f 72 20 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 29 0a 09 28 6c 65 74 20 28 28 70 20 28 70 (or.point.(point)))..(let.((p.(p
1335e0 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 revious-single-property-change.(
133600 6f 72 20 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 0a 09 09 09 09 09 09 20 20 27 65 6d 6d 73 2d or.point.(point)).........'emms-
133620 74 72 61 63 6b 29 29 29 0a 09 20 20 28 77 68 65 6e 20 70 0a 09 20 20 20 20 28 3d 20 65 6d 6d 73 track)))....(when.p......(=.emms
133640 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 20 20 20 20 20 -playlist-selected-marker.......
133660 20 20 70 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d ..p))))))..(defun.emms-playlist-
133680 73 65 6c 65 63 74 20 28 70 6f 73 29 0a 20 20 22 53 65 6c 65 63 74 20 74 68 65 20 74 72 61 63 6b select.(pos)..."Select.the.track
1336a0 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 .at.POS."...(emms-playlist-ensur
1336c0 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 e-playlist-buffer)...(when.(not.
1336e0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 70 6f 73 29 29 0a 20 20 (emms-playlist-track-at.pos))...
133700 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 74 72 61 63 6b 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 25 ..(error."No.track.at.position.%
133720 73 22 20 70 6f 73 29 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 6c s".pos))...(when.(not.emms-playl
133740 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 65 ist-selected-marker).....(setq.e
133760 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 20 28 6d 61 mms-playlist-selected-marker.(ma
133780 6b 65 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 2d 69 6e 73 65 72 ke-marker)))...(set-marker-inser
1337a0 74 69 6f 6e 2d 74 79 70 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 tion-type.emms-playlist-selected
1337c0 2d 6d 61 72 6b 65 72 20 74 29 0a 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 65 6d 6d 73 2d 70 6c -marker.t)...(set-marker.emms-pl
1337e0 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 20 70 6f 73 29 0a 20 20 28 72 aylist-selected-marker.pos)...(r
133800 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 69 6f un-hooks.'emms-playlist-selectio
133820 6e 2d 63 68 61 6e 67 65 64 2d 68 6f 6f 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c n-changed-hook))..(defun.emms-pl
133840 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 6e 65 78 74 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 aylist-select-next.()..."Select.
133860 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 the.next.track.in.the.current.bu
133880 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 ffer."...(emms-playlist-ensure-p
1338a0 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f laylist-buffer)...(save-excursio
1338c0 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 20 28 61 6e 64 20 65 6d 6d 73 2d 70 n.....(goto-char.(if.(and.emms-p
1338e0 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 09 28 6d 61 72 6b laylist-selected-marker....(mark
133900 65 72 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 er-position.emms-playlist-select
133920 65 64 2d 6d 61 72 6b 65 72 29 29 0a 09 09 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 ed-marker))......emms-playlist-s
133940 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a elected-marker....(point-min))).
133960 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 28 70 72 6f 67 6e 0a ....(condition-case.nil..(progn.
133980 09 20 20 28 69 66 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 0a 09 20 20 20 ...(if.emms-repeat-playlist.....
1339a0 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 09 20 20 28 65 6d 6d 73 ...(condition-case.nil.....(emms
1339c0 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 0a 09 09 28 65 72 72 6f 72 0a 09 09 20 28 65 6d 6d -playlist-next)...(error....(emm
1339e0 73 2d 70 6c 61 79 6c 69 73 74 2d 66 69 72 73 74 29 29 29 0a 09 20 20 20 20 28 65 6d 6d 73 2d 70 s-playlist-first)))......(emms-p
133a00 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 29 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 laylist-next))....(emms-playlist
133a20 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 -select.(point))).......(error..
133a40 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 70 ......(error."No.next.track.in.p
133a60 6c 61 79 6c 69 73 74 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c laylist")))))..(defun.emms-playl
133a80 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d 6e 65 78 74 20 28 29 0a 20 20 22 53 65 ist-current-select-next.()..."Se
133aa0 6c 65 63 74 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 lect.the.next.track.in.the.curre
133ac0 6e 74 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d nt.playlist."...(with-current-em
133ae0 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 ms-playlist.....(emms-playlist-s
133b00 65 6c 65 63 74 2d 6e 65 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c elect-next)))..(defun.emms-playl
133b20 69 73 74 2d 73 65 6c 65 63 74 2d 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 53 65 6c 65 63 74 ist-select-previous.()..."Select
133b40 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 .the.previous.track.in.the.curre
133b60 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 nt.buffer."...(emms-playlist-ens
133b80 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 73 61 76 65 2d 65 78 63 ure-playlist-buffer)...(save-exc
133ba0 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 20 28 61 6e 64 20 65 ursion.....(goto-char.(if.(and.e
133bc0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 09 mms-playlist-selected-marker....
133be0 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 (marker-position.emms-playlist-s
133c00 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 29 0a 09 09 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c elected-marker))......emms-playl
133c20 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 20 28 70 6f 69 6e 74 2d 6d 61 ist-selected-marker....(point-ma
133c40 78 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 28 70 x))).....(condition-case.nil..(p
133c60 72 6f 67 6e 0a 09 20 20 28 69 66 20 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 rogn....(if.emms-repeat-playlist
133c80 0a 09 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 09 20 20 ........(condition-case.nil.....
133ca0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 29 0a 09 09 28 65 72 72 6f (emms-playlist-previous)...(erro
133cc0 72 0a 09 09 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 61 73 74 29 29 29 0a 09 20 20 20 r....(emms-playlist-last))).....
133ce0 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 29 29 0a 09 20 20 28 65 .(emms-playlist-previous))....(e
133d00 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 mms-playlist-select.(point)))...
133d20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 70 72 65 ....(error........(error."No.pre
133d40 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 70 6c 61 79 6c 69 73 74 22 29 29 29 29 29 0a 0a 28 vious.track.in.playlist")))))..(
133d60 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 defun.emms-playlist-current-sele
133d80 63 74 2d 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 74 68 65 20 70 72 65 ct-previous.()..."Select.the.pre
133da0 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c vious.track.in.the.current.playl
133dc0 69 73 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c ist."...(with-current-emms-playl
133de0 69 73 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 70 72 ist.....(emms-playlist-select-pr
133e00 65 76 69 6f 75 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d evious)))..(defun.emms-playlist-
133e20 73 65 6c 65 63 74 2d 72 61 6e 64 6f 6d 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 72 61 6e select-random.()..."Select.a.ran
133e40 64 6f 6d 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e dom.track.in.the.current.buffer.
133e60 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 "...(emms-playlist-ensure-playli
133e80 73 74 2d 62 75 66 66 65 72 29 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 54 68 69 73 20 69 73 20 72 st-buffer)...;;.FIXME:.This.is.r
133ea0 61 74 68 65 72 20 69 6e 65 66 66 69 63 69 65 6e 74 2e 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 ather.inefficient....(save-excur
133ec0 73 69 6f 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 2d 69 6e 64 69 63 65 73 20 6e 69 sion.....(let.((track-indices.ni
133ee0 6c 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 l)).......(goto-char.(point-min)
133f00 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 0a 09 28 73 65 74 71 ).......(emms-walk-tracks..(setq
133f20 20 74 72 61 63 6b 2d 69 6e 64 69 63 65 73 20 28 63 6f 6e 73 20 28 70 6f 69 6e 74 29 0a 09 09 09 .track-indices.(cons.(point)....
133f40 09 20 20 74 72 61 63 6b 2d 69 6e 64 69 63 65 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 ...track-indices))).......(setq.
133f60 74 72 61 63 6b 2d 69 6e 64 69 63 65 73 20 28 76 63 6f 6e 63 61 74 20 74 72 61 63 6b 2d 69 6e 64 track-indices.(vconcat.track-ind
133f80 69 63 65 73 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 ices)).......(emms-playlist-sele
133fa0 63 74 20 28 61 72 65 66 20 74 72 61 63 6b 2d 69 6e 64 69 63 65 73 0a 09 09 09 09 20 20 28 72 61 ct.(aref.track-indices.......(ra
133fc0 6e 64 6f 6d 20 28 6c 65 6e 67 74 68 20 74 72 61 63 6b 2d 69 6e 64 69 63 65 73 29 29 29 29 29 29 ndom.(length.track-indices))))))
133fe0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d )..(defun.emms-playlist-current-
134000 73 65 6c 65 63 74 2d 72 61 6e 64 6f 6d 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 72 61 6e select-random.()..."Select.a.ran
134020 64 6f 6d 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 dom.track.in.the.current.playlis
134040 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 t."...(with-current-emms-playlis
134060 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 72 61 6e 64 t.....(emms-playlist-select-rand
134080 6f 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 om)))..(defun.emms-playlist-sele
1340a0 63 74 2d 66 69 72 73 74 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 74 68 65 20 66 69 72 73 74 20 ct-first.()..."Select.the.first.
1340c0 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 track.in.the.current.buffer."...
1340e0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 (emms-playlist-ensure-playlist-b
134100 75 66 66 65 72 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 65 6d uffer)...(save-excursion.....(em
134120 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 66 69 72 73 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 ms-playlist-first).....(emms-pla
134140 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ylist-select.(point))))..(defun.
134160 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d 66 69 72 emms-playlist-current-select-fir
134180 73 74 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 74 68 65 20 66 69 72 73 74 20 74 72 61 63 6b 20 st.()..."Select.the.first.track.
1341a0 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 77 69 74 in.the.current.playlist."...(wit
1341c0 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 65 6d 6d h-current-emms-playlist.....(emm
1341e0 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 66 69 72 73 74 29 29 29 0a 0a 28 64 65 66 s-playlist-select-first)))..(def
134200 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 2d 6c 61 73 74 20 28 29 0a un.emms-playlist-select-last.().
134220 20 20 22 53 65 6c 65 63 74 20 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 .."Select.the.last.track.in.the.
134240 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 current.buffer."...(emms-playlis
134260 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 73 61 76 t-ensure-playlist-buffer)...(sav
134280 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c e-excursion.....(emms-playlist-l
1342a0 61 73 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 28 ast).....(emms-playlist-select.(
1342c0 70 6f 69 6e 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d point))))..(defun.emms-playlist-
1342e0 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d 6c 61 73 74 20 28 29 0a 20 20 22 53 65 6c 65 63 74 current-select-last.()..."Select
134300 20 74 68 65 20 6c 61 73 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 .the.last.track.in.the.current.p
134320 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 laylist."...(with-current-emms-p
134340 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 laylist.....(emms-playlist-selec
134360 74 2d 6c 61 73 74 29 29 29 0a 0a 3b 3b 3b 20 50 6c 61 79 6c 69 73 74 20 6d 61 6e 69 70 75 6c 61 t-last)))..;;;.Playlist.manipula
134380 74 69 6f 6e 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 tion.(defun.emms-playlist-insert
1343a0 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 29 0a 20 20 22 49 6e 73 65 72 74 20 54 52 41 43 4b 20 61 -track.(track)..."Insert.TRACK.a
1343c0 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 t.the.current.position.into.the.
1343e0 70 6c 61 79 6c 69 73 74 2e 0a 54 68 69 73 20 75 73 65 73 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 playlist..This.uses.`emms-playli
134400 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 65 st-insert-track-function'."...(e
134420 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 mms-playlist-ensure-playlist-buf
134440 66 65 72 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e fer)...(funcall.emms-playlist-in
134460 73 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 0a 0a 28 64 65 sert-track-function.track))..(de
134480 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 20 28 fun.emms-playlist-update-track.(
1344a0 29 0a 20 20 22 55 70 64 61 74 65 20 54 52 41 43 4b 20 61 74 20 70 6f 69 6e 74 2e 0a 54 68 69 73 )..."Update.TRACK.at.point..This
1344c0 20 75 73 65 73 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 .uses.`emms-playlist-update-trac
1344e0 6b 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 k-function'."...(emms-playlist-e
134500 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 66 75 6e 63 61 6c nsure-playlist-buffer)...(funcal
134520 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 2d 66 75 6e l.emms-playlist-update-track-fun
134540 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e ction))..(defun.emms-playlist-in
134560 73 65 72 74 2d 73 6f 75 72 63 65 20 28 73 6f 75 72 63 65 20 26 72 65 73 74 20 61 72 67 73 29 0a sert-source.(source.&rest.args).
134580 20 20 22 49 6e 73 65 72 74 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 53 4f 55 52 43 45 2c 20 73 75 .."Insert.tracks.from.SOURCE,.su
1345a0 70 70 6c 79 69 6e 67 20 41 52 47 53 20 61 73 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 28 65 pplying.ARGS.as.arguments."...(e
1345c0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 mms-playlist-ensure-playlist-buf
1345e0 66 65 72 29 0a 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 28 6e 61 fer)...(save-restriction.....(na
134600 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 0a 09 09 20 20 20 20 20 20 28 rrow-to-region.(point).........(
134620 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 73 6f 75 72 63 65 20 61 72 67 73 29 0a point)).....(apply.source.args).
134640 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f ....(run-hooks.'emms-playlist-so
134660 75 72 63 65 2d 69 6e 73 65 72 74 65 64 2d 68 6f 6f 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d urce-inserted-hook)))..(defun.em
134680 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 69 6e 73 65 72 74 2d 73 6f 75 72 63 ms-playlist-current-insert-sourc
1346a0 65 20 28 73 6f 75 72 63 65 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 49 6e 73 65 72 74 20 e.(source.&rest.args)..."Insert.
1346c0 74 72 61 63 6b 73 20 66 72 6f 6d 20 53 4f 55 52 43 45 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e tracks.from.SOURCE.in.the.curren
1346e0 74 20 70 6c 61 79 6c 69 73 74 2e 0a 54 68 69 73 20 69 73 20 73 75 70 70 6c 79 69 6e 67 20 41 52 t.playlist..This.is.supplying.AR
134700 47 53 20 61 73 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 73 6f 75 72 63 65 2e 22 0a GS.as.arguments.to.the.source.".
134720 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 ..(with-current-emms-playlist...
134740 20 20 28 61 70 70 6c 79 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d ..(apply.#'emms-playlist-insert-
134760 73 6f 75 72 63 65 20 73 6f 75 72 63 65 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d source.source.args)))..(defun.em
134780 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 62 65 ms-playlist-tracks-in-region.(be
1347a0 67 20 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 74 72 61 63 6b 73 20 62 65 74 77 g.end)..."Return.all.tracks.betw
1347c0 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 een.BEG.and.END."...(emms-playli
1347e0 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 st-ensure-playlist-buffer)...(le
134800 74 20 28 28 74 72 61 63 6b 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 t.((tracks.nil)).....(save-restr
134820 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 62 iction.......(narrow-to-region.b
134840 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d eg.end).......(goto-char.(point-
134860 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 0a 09 28 min)).......(emms-walk-tracks..(
134880 73 65 74 71 20 74 72 61 63 6b 73 20 28 63 6f 6e 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 setq.tracks.(cons.(emms-playlist
1348a0 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 0a 09 09 09 20 20 20 74 72 61 63 6b 73 29 -track-at.(point)).......tracks)
1348c0 29 29 29 0a 20 20 20 20 74 72 61 63 6b 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c ))).....tracks))..(defun.emms-pl
1348e0 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 64 20 28 74 72 61 63 6b 29 0a 20 20 22 aylist-track-updated.(track)..."
134900 55 70 64 61 74 65 20 54 52 41 43 4b 20 69 6e 20 61 6c 6c 20 70 6c 61 79 6c 69 73 74 20 62 75 66 Update.TRACK.in.all.playlist.buf
134920 66 65 72 73 2e 22 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 62 75 66 29 0a 09 20 20 fers."...(mapc.(lambda.(buf)....
134940 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 09 20 20 20 20 28 77 (with-current-buffer.buf......(w
134960 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 0a 09 20 20 20 20 hen.emms-playlist-buffer-p......
134980 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 09 09 28 6c 65 74 20 28 28 70 6f 73 20 28 ..(save-excursion...(let.((pos.(
1349a0 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 6e 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 text-property-any.(point-min).(p
1349c0 6f 69 6e 74 2d 6d 61 78 29 0a 09 09 09 09 09 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b oint-max)............'emms-track
1349e0 20 74 72 61 63 6b 29 29 29 0a 09 09 20 20 28 77 68 69 6c 65 20 70 6f 73 0a 09 09 20 20 20 20 28 .track))).....(while.pos.......(
134a00 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 09 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c goto-char.pos).......(emms-playl
134a20 69 73 74 2d 75 70 64 61 74 65 2d 74 72 61 63 6b 29 0a 09 09 20 20 20 20 28 73 65 74 71 20 70 6f ist-update-track).......(setq.po
134a40 73 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 6e 79 0a 09 09 09 20 20 20 20 20 20 20 28 s.(text-property-any...........(
134a60 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 next-single-property-change.(poi
134a80 6e 74 29 0a 09 09 09 09 09 09 09 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 0a 09 09 09 20 nt)............'emms-track).....
134aa0 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 09 09 09 20 20 20 20 20 20 20 27 65 6d 6d ......(point-max)...........'emm
134ac0 73 2d 74 72 61 63 6b 0a 09 09 09 20 20 20 20 20 20 20 74 72 61 63 6b 29 29 29 29 29 29 29 29 0a s-track...........track)))))))).
134ae0 09 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 74 29 0a 0a 3b 3b 3b 20 53 69 6d 70 6c 65 .(buffer-list))...t)..;;;.Simple
134b00 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 .playlist.buffer.(defun.emms-pla
134b20 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 28 74 72 61 63 6b ylist-simple-insert-track.(track
134b40 29 0a 20 20 22 49 6e 73 65 72 74 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 54 )..."Insert.the.description.of.T
134b60 52 41 43 4b 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 RACK.at.point."...(emms-playlist
134b80 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 -ensure-playlist-buffer)...(let.
134ba0 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 28 69 6e 73 ((inhibit-read-only.t)).....(ins
134bc0 65 72 74 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 69 7a 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b ert.(emms-propertize.(emms-track
134be0 2d 66 6f 72 63 65 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b 29 0a 09 09 09 20 20 20 -force-description.track).......
134c00 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 0a 09 20 20 20 20 22 5c 6e 22 29 29 ..'emms-track.track)......"\n"))
134c20 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 75 )..(defun.emms-playlist-simple-u
134c40 70 64 61 74 65 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 20 74 72 61 pdate-track.()..."Update.the.tra
134c60 63 6b 20 61 74 20 70 6f 69 6e 74 2e 0a 53 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 64 6f 20 61 ck.at.point..Since.we.don't.do.a
134c80 6e 79 74 68 69 6e 67 20 73 70 65 63 69 61 6c 20 77 69 74 68 20 74 68 65 20 74 72 61 63 6b 20 61 nything.special.with.the.track.a
134ca0 6e 79 77 61 79 2c 20 6a 75 73 74 0a 69 67 6e 6f 72 65 20 74 68 69 73 2e 22 0a 20 20 6e 69 6c 29 nyway,.just.ignore.this."...nil)
134cc0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 64 65 ..(defun.emms-playlist-simple-de
134ce0 6c 65 74 65 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 44 65 6c 65 74 65 20 74 68 65 20 74 72 61 63 lete-track.()..."Delete.the.trac
134d00 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e k.at.point."...(emms-playlist-en
134d20 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 77 68 65 6e 20 28 6e sure-playlist-buffer)...(when.(n
134d40 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e ot.(emms-playlist-track-at.(poin
134d60 74 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 74 72 61 63 6b 20 61 74 20 70 6f 69 t))).....(error."No.track.at.poi
134d80 6e 74 22 29 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 nt"))...(let.((inhibit-read-only
134da0 20 74 29 0a 09 28 72 65 67 69 6f 6e 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 79 2d 72 65 67 69 .t)..(region.(emms-property-regi
134dc0 6f 6e 20 28 70 6f 69 6e 74 29 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 64 on.(point).'emms-track))).....(d
134de0 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 63 61 72 20 72 65 67 69 6f 6e 29 0a 09 09 20 20 20 28 elete-region.(car.region)......(
134e00 63 64 72 20 72 65 67 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 cdr.region))))..(defun.emms-play
134e20 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 73 68 75 66 66 6c 65 20 28 29 0a 20 20 22 53 68 75 66 66 6c list-simple-shuffle.()..."Shuffl
134e40 65 20 74 68 65 20 77 68 6f 6c 65 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 e.the.whole.playlist.buffer."...
134e60 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 (emms-playlist-ensure-playlist-b
134e80 75 66 66 65 72 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c uffer)...(let.((inhibit-read-onl
134ea0 79 20 74 29 0a 09 28 63 75 72 72 65 6e 74 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 69 64 65 6e 29 y.t)..(current.nil)).....(widen)
134ec0 0a 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 .....(when.emms-player-playing-p
134ee0 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c .......(setq.current.(emms-playl
134f00 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f ist-selected-track)).......(goto
134f20 2d 63 68 61 72 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 -char.emms-playlist-selected-mar
134f40 6b 65 72 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 6c 65 74 65 ker).......(emms-playlist-delete
134f60 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 73 20 28 76 63 6f -track)).....(let*.((tracks.(vco
134f80 6e 63 61 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 ncat.(emms-playlist-tracks-in-re
134fa0 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 09 09 09 20 20 20 20 28 70 6f 69 gion.(point-min)............(poi
134fc0 6e 74 2d 6d 61 78 29 29 29 29 0a 09 20 20 20 28 6c 65 6e 20 28 6c 65 6e 67 74 68 20 74 72 61 63 nt-max)))).....(len.(length.trac
134fe0 6b 73 29 29 0a 09 20 20 20 28 69 20 30 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 ks)).....(i.0)).......(delete-re
135000 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d gion.(point-min)........(point-m
135020 61 78 29 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 ax)).......(run-hooks.'emms-play
135040 6c 69 73 74 2d 63 6c 65 61 72 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 list-cleared-hook).......(emms-s
135060 68 75 66 66 6c 65 2d 76 65 63 74 6f 72 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 28 77 68 65 huffle-vector.tracks).......(whe
135080 6e 20 63 75 72 72 65 6e 74 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 n.current..(emms-playlist-insert
1350a0 2d 74 72 61 63 6b 20 63 75 72 72 65 6e 74 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c -track.current)).......(while.(<
1350c0 20 69 20 6c 65 6e 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 .i.len)..(emms-playlist-insert-t
1350e0 72 61 63 6b 20 28 61 72 65 66 20 74 72 61 63 6b 73 20 69 29 29 0a 09 28 73 65 74 71 20 69 20 28 rack.(aref.tracks.i))..(setq.i.(
135100 31 2b 20 69 29 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 1+.i)))).....(emms-playlist-sele
135120 63 74 2d 66 69 72 73 74 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d ct-first).....(goto-char.(point-
135140 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 max))))..(defun.emms-playlist-si
135160 6d 70 6c 65 2d 73 6f 72 74 20 28 29 0a 20 20 22 53 6f 72 74 20 74 68 65 20 77 68 6f 6c 65 20 70 mple-sort.()..."Sort.the.whole.p
135180 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 laylist.buffer."...(emms-playlis
1351a0 74 2d 65 6e 73 75 72 65 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 77 69 64 t-ensure-playlist-buffer)...(wid
1351c0 65 6e 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 en)...(let.((inhibit-read-only.t
1351e0 29 0a 09 28 63 75 72 72 65 6e 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 )..(current.(emms-playlist-selec
135200 74 65 64 2d 74 72 61 63 6b 29 29 0a 09 28 74 72 61 63 6b 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c ted-track))..(tracks.(emms-playl
135220 69 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ist-tracks-in-region.(point-min)
135240 0a 09 09 09 09 09 09 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 .......(point-max)))).....(delet
135260 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 20 20 20 28 70 6f 69 6e 74 e-region.(point-min)......(point
135280 2d 6d 61 78 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 -max)).....(run-hooks.'emms-play
1352a0 6c 69 73 74 2d 63 6c 65 61 72 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 6d 61 70 63 20 23 27 65 list-cleared-hook).....(mapc.#'e
1352c0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 09 20 20 28 73 6f mms-playlist-insert-track....(so
1352e0 72 74 20 74 72 61 63 6b 73 20 65 6d 6d 73 2d 73 6f 72 74 2d 6c 65 73 73 70 2d 66 75 6e 63 74 69 rt.tracks.emms-sort-lessp-functi
135300 6f 6e 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 74 65 78 74 2d 70 72 6f 70 65 72 on)).....(let.((pos.(text-proper
135320 74 79 2d 61 6e 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 20 20 28 70 6f 69 6e 74 2d ty-any.(point-min).......(point-
135340 6d 61 78 29 0a 09 09 09 09 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 20 63 75 72 72 65 6e 74 29 29 max).......'emms-track.current))
135360 29 0a 20 20 20 20 20 20 28 69 66 20 70 6f 73 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ).......(if.pos....(emms-playlis
135380 74 2d 73 65 6c 65 63 74 20 70 6f 73 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 66 69 t-select.pos)..(emms-playlist-fi
1353a0 72 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 75 6e 69 71 2d 6c 69 73 74 20 rst)))))..(defun.emms-uniq-list.
1353c0 28 6c 69 73 74 20 73 74 72 69 6e 67 69 66 79 29 0a 20 20 22 43 6f 6d 70 61 72 65 20 73 74 72 69 (list.stringify)..."Compare.stri
1353e0 6e 67 66 69 65 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 6c 69 73 74 2c 20 61 6e 64 20 72 65 6d 6f ngfied.element.of.list,.and.remo
135400 76 65 20 64 75 70 6c 69 63 61 74 65 20 65 6c 65 6d 65 6e 74 73 2e 22 0a 20 20 3b 3b 20 54 68 69 ve.duplicate.elements."...;;.Thi
135420 73 20 75 73 65 73 20 61 20 66 61 73 74 20 61 70 70 65 6e 64 20 6c 69 73 74 2c 20 6b 65 65 70 69 s.uses.a.fast.append.list,.keepi
135440 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6c 61 73 74 20 63 6f 6e 73 0a 20 20 ng.a.pointer.to.the.last.cons...
135460 3b 3b 20 63 65 6c 6c 20 6f 66 20 74 68 65 20 6c 69 73 74 20 28 54 41 49 4c 29 2e 20 20 49 74 20 ;;.cell.of.the.list.(TAIL)...It.
135480 6d 69 67 68 74 20 62 65 20 77 6f 72 74 68 77 68 69 6c 65 20 74 6f 20 70 72 6f 76 69 64 65 20 61 might.be.worthwhile.to.provide.a
1354a0 6e 0a 20 20 3b 3b 20 61 62 73 74 72 61 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 20 65 76 65 6e n...;;.abstraction.for.this.even
1354c0 74 75 61 6c 6c 79 2e 0a 20 20 28 6c 65 74 2a 20 28 28 68 61 73 68 20 28 6d 61 6b 65 2d 68 61 73 tually....(let*.((hash.(make-has
1354e0 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 0a 09 20 28 72 65 73 75 6c 74 h-table.:test.'equal))...(result
135500 20 28 63 6f 6e 73 20 6e 69 6c 20 6e 69 6c 29 29 0a 09 20 28 74 61 69 6c 20 72 65 73 75 6c 74 29 .(cons.nil.nil))...(tail.result)
135520 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 65 6e 74 20 6c 69 73 74 29 0a 20 20 20 ).....(dolist.(element.list)....
135540 20 20 20 28 6c 65 74 20 28 28 73 74 72 20 28 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 69 66 79 ...(let.((str.(funcall.stringify
135560 20 65 6c 65 6d 65 6e 74 29 29 29 0a 09 28 77 68 65 6e 20 28 6e 6f 74 20 28 67 65 74 68 61 73 68 .element)))..(when.(not.(gethash
135580 20 73 74 72 20 68 61 73 68 29 29 0a 09 20 20 28 73 65 74 63 64 72 20 74 61 69 6c 20 28 63 6f 6e .str.hash))....(setcdr.tail.(con
1355a0 73 20 65 6c 65 6d 65 6e 74 20 6e 69 6c 29 29 0a 09 20 20 28 73 65 74 71 20 74 61 69 6c 20 28 63 s.element.nil))....(setq.tail.(c
1355c0 64 72 20 74 61 69 6c 29 29 29 0a 09 28 70 75 74 68 61 73 68 20 73 74 72 20 74 20 68 61 73 68 29 dr.tail)))..(puthash.str.t.hash)
1355e0 29 29 0a 20 20 20 20 28 63 64 72 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d )).....(cdr.result)))..(defun.em
135600 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 69 6d 70 6c 65 2d 75 6e 69 71 20 28 29 0a 20 20 22 52 65 ms-playlist-simple-uniq.()..."Re
135620 6d 6f 76 65 20 64 75 70 6c 69 63 61 74 65 20 74 72 61 63 6b 73 2e 22 0a 20 20 3b 3b 20 54 4f 44 move.duplicate.tracks."...;;.TOD
135640 4f 3a 20 54 68 69 73 20 73 65 65 6d 73 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 20 64 65 73 74 O:.This.seems.unnecessarily.dest
135660 72 75 63 74 69 76 65 2e 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 ructive....(emms-playlist-ensure
135680 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 28 77 69 64 65 6e 29 0a 20 20 28 6c -playlist-buffer)...(widen)...(l
1356a0 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 09 28 63 75 72 72 et.((inhibit-read-only.t)..(curr
1356c0 65 6e 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 ent.(emms-playlist-selected-trac
1356e0 6b 29 29 0a 09 28 74 72 61 63 6b 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 k))..(tracks.(emms-playlist-trac
135700 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 09 09 28 ks-in-region.(point-min).......(
135720 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e point-max)))).....(delete-region
135740 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 72 .(point-min).(point-max)).....(r
135760 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 65 64 2d un-hooks.'emms-playlist-cleared-
135780 68 6f 6f 6b 29 0a 20 20 20 20 28 6d 61 70 63 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d hook).....(mapc.#'emms-playlist-
1357a0 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 09 20 20 28 6e 72 65 76 65 72 73 65 0a 09 20 20 20 28 65 insert-track....(nreverse.....(e
1357c0 6d 6d 73 2d 75 6e 69 71 2d 6c 69 73 74 20 74 72 61 63 6b 73 20 27 65 6d 6d 73 2d 74 72 61 63 6b mms-uniq-list.tracks.'emms-track
1357e0 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 74 65 78 74 2d 70 72 -name))).....(let.((pos.(text-pr
135800 6f 70 65 72 74 79 2d 61 6e 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 20 20 28 70 6f operty-any.(point-min).......(po
135820 69 6e 74 2d 6d 61 78 29 0a 09 09 09 09 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 20 63 75 72 72 65 int-max).......'emms-track.curre
135840 6e 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 70 6f 73 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 nt))).......(if.pos....(emms-pla
135860 79 6c 69 73 74 2d 73 65 6c 65 63 74 20 70 6f 73 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ylist-select.pos)..(emms-playlis
135880 74 2d 66 69 72 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 64 65 66 61 75 6c t-first)))))..(defun.emms-defaul
1358a0 74 2d 6f 6b 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 28 74 72 61 63 6b 29 0a 20 20 22 41 t-ok-track-function.(track)..."A
1358c0 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 4f 4b 73 20 61 6c 6c 20 74 72 61 63 6b 73 20 66 .function.which.OKs.all.tracks.f
1358e0 6f 72 20 70 6c 61 79 69 6e 67 20 62 79 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 69 67 6e 6f 72 or.playing.by.default."...(ignor
135900 65 20 74 72 61 63 6b 29 20 3b 3b 20 65 78 70 6c 69 63 69 74 20 69 67 6e 6f 72 65 0a 20 20 74 29 e.track).;;.explicit.ignore...t)
135920 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 6e 67 74 68 20 28 29 ..(defun.emms-playlist-length.()
135940 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 20 74 6f 74 61 6c 20 70 6c 61 79 69 6e 67 20 74 69 ..."Display.the.total.playing.ti
135960 6d 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 me.of.the.current.playlist."...(
135980 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 61 63 63 20 30 29 29 0a 20 20 interactive)...(let.((acc.0))...
1359a0 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 ..(with-current-emms-playlist...
1359c0 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
1359e0 20 20 28 65 6d 6d 73 2d 77 61 6c 6b 2d 74 72 61 63 6b 73 0a 09 28 73 65 74 71 20 61 63 63 20 28 ..(emms-walk-tracks..(setq.acc.(
135a00 2b 20 61 63 63 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 28 65 6d 6d 73 2d 70 6c 61 79 +.acc.(emms-track-get.(emms-play
135a20 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 28 70 6f 69 6e 74 29 29 20 27 69 6e 66 6f 2d 70 6c 61 list-track-at.(point)).'info-pla
135a40 79 69 6e 67 2d 74 69 6d 65 29 29 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6d 69 6e 75 74 65 ying-time))))).....(let.((minute
135a60 73 20 28 2f 20 61 63 63 20 36 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 73 s.(/.acc.60))...........(seconds
135a80 20 28 25 20 61 63 63 20 36 30 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 69 66 .(%.acc.60))).......(message.(if
135aa0 20 28 3e 3d 20 6d 69 6e 75 74 65 73 20 36 30 29 0a 09 09 20 20 20 28 66 6f 72 6d 61 74 20 22 25 .(>=.minutes.60)......(format."%
135ac0 64 3a 25 30 32 64 3a 25 30 32 64 22 20 28 2f 20 6d 69 6e 75 74 65 73 20 36 30 29 20 28 25 20 6d d:%02d:%02d".(/.minutes.60).(%.m
135ae0 69 6e 75 74 65 73 20 36 30 29 20 73 65 63 6f 6e 64 73 29 0a 09 09 20 28 66 6f 72 6d 61 74 20 22 inutes.60).seconds)....(format."
135b00 25 30 32 64 3a 25 30 32 64 22 20 6d 69 6e 75 74 65 73 20 73 65 63 6f 6e 64 73 29 29 29 29 29 29 %02d:%02d".minutes.seconds))))))
135b20 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 6f 74 61 6c ..(defalias.'emms-playlist-total
135b40 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 6e -playing-time.'emms-playlist-len
135b60 67 74 68 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d gth)...;;;.---------------------
135b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
135ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f -------------.;;;.Helper.functio
135bc0 6e 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ns.;;;.-------------------------
135be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
135c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 72 6f 70 65 72 74 79 2d 72 ---------.(defun.emms-property-r
135c20 65 67 69 6f 6e 20 28 70 6f 73 20 70 72 6f 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 61 69 egion.(pos.prop)..."Return.a.pai
135c40 72 20 6f 66 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 74 68 r.of.the.beginning.and.end.of.th
135c60 65 20 70 72 6f 70 65 72 74 79 20 50 52 4f 50 20 61 74 20 50 4f 53 2e 0a 49 66 20 50 4f 53 20 64 e.property.PROP.at.POS..If.POS.d
135c80 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 50 52 4f 50 2c 20 74 72 79 20 74 6f 20 66 69 6e oes.not.contain.PROP,.try.to.fin
135ca0 64 20 50 52 4f 50 20 6a 75 73 74 20 62 65 66 6f 72 65 20 50 4f 53 2e 22 0a 20 20 28 6c 65 74 20 d.PROP.just.before.POS."...(let.
135cc0 28 62 65 67 69 6e 20 65 6e 64 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 20 70 6f 73 20 (begin.end).....(if.(and.(>.pos.
135ce0 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f (point-min)).......(get-text-pro
135d00 70 65 72 74 79 20 28 31 2d 20 70 6f 73 29 20 70 72 6f 70 29 29 0a 09 28 73 65 74 71 20 62 65 67 perty.(1-.pos).prop))..(setq.beg
135d20 69 6e 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 in.(previous-single-property-cha
135d40 6e 67 65 20 28 31 2d 20 70 6f 73 29 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 67 nge.(1-.pos).prop)).......(if.(g
135d60 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 70 72 6f 70 29 0a 09 20 20 28 73 et-text-property.pos.prop)....(s
135d80 65 74 71 20 62 65 67 69 6e 20 70 6f 73 29 0a 09 28 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 66 etq.begin.pos)..(error."Cannot.f
135da0 69 6e 64 20 74 68 65 20 25 73 20 70 72 6f 70 65 72 74 79 20 61 74 20 74 68 65 20 67 69 76 65 6e ind.the.%s.property.at.the.given
135dc0 20 70 6f 73 69 74 69 6f 6e 22 20 70 72 6f 70 29 29 29 0a 20 20 20 20 28 69 66 20 28 67 65 74 2d .position".prop))).....(if.(get-
135de0 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 70 72 6f 70 29 0a 09 28 73 65 74 71 20 65 text-property.pos.prop)..(setq.e
135e00 6e 64 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 nd.(next-single-property-change.
135e20 70 6f 73 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 20 70 6f 73 pos.prop)).......(if.(and.(>.pos
135e40 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d .(point-min)).........(get-text-
135e60 70 72 6f 70 65 72 74 79 20 28 31 2d 20 70 6f 73 29 20 70 72 6f 70 29 29 0a 09 20 20 28 73 65 74 property.(1-.pos).prop))....(set
135e80 71 20 65 6e 64 20 70 6f 73 29 0a 09 28 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 q.end.pos)..(error."Cannot.find.
135ea0 74 68 65 20 25 73 20 70 72 6f 70 65 72 74 79 20 61 74 20 74 68 65 20 67 69 76 65 6e 20 70 6f 73 the.%s.property.at.the.given.pos
135ec0 69 74 69 6f 6e 22 20 70 72 6f 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 6f 72 20 62 65 67 ition".prop))).....(cons.(or.beg
135ee0 69 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 09 20 20 28 6f 72 20 65 6e 64 20 28 70 6f 69 6e in.(point-min))....(or.end.(poin
135f00 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 68 75 66 66 6c 65 2d t-max)))))..(defun.emms-shuffle-
135f20 76 65 63 74 6f 72 20 28 76 65 63 74 6f 72 29 0a 20 20 22 53 68 75 66 66 6c 65 20 56 45 43 54 4f vector.(vector)..."Shuffle.VECTO
135f40 52 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 28 2d 20 28 6c 65 6e 67 74 68 20 76 65 63 74 6f 72 R."...(let.((i.(-.(length.vector
135f60 29 20 31 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 3d 20 69 20 30 29 0a 20 20 20 20 20 ).1))).....(while.(>=.i.0)......
135f80 20 28 6c 65 74 2a 20 28 28 72 20 28 72 61 6e 64 6f 6d 20 28 31 2b 20 69 29 29 29 0a 09 20 20 20 .(let*.((r.(random.(1+.i))).....
135fa0 20 20 28 6f 6c 64 20 28 61 72 65 66 20 76 65 63 74 6f 72 20 72 29 29 29 0a 09 28 61 73 65 74 20 ..(old.(aref.vector.r)))..(aset.
135fc0 76 65 63 74 6f 72 20 72 20 28 61 72 65 66 20 76 65 63 74 6f 72 20 69 29 29 0a 09 28 61 73 65 74 vector.r.(aref.vector.i))..(aset
135fe0 20 76 65 63 74 6f 72 20 69 20 6f 6c 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 2d .vector.i.old)).......(setq.i.(-
136000 20 69 20 31 29 29 29 29 0a 20 20 76 65 63 74 6f 72 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d .i.1))))...vector)..(defun.emms-
136020 6c 65 2d 74 6f 2d 69 6e 74 20 28 76 65 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 62 79 74 65 73 le-to-int.(vec)..."Convert.bytes
136040 20 69 6e 20 56 45 43 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 2e 0a 42 79 74 65 73 20 61 72 65 .in.VEC.to.an.integer..Bytes.are
136060 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 69 6e 20 6c 69 74 74 6c 65 2d 65 6e 64 69 61 6e 20 .assumed.to.be.in.little-endian.
136080 6f 72 64 65 72 2c 20 74 68 61 74 20 69 73 2c 20 74 68 65 0a 6c 65 61 73 74 20 73 69 67 6e 69 66 order,.that.is,.the.least.signif
1360a0 69 63 61 6e 74 20 62 79 74 65 20 66 69 72 73 74 2e 0a 0a 49 66 20 56 45 43 20 69 73 20 6e 69 6c icant.byte.first...If.VEC.is.nil
1360c0 2c 20 72 65 74 75 72 6e 20 7a 65 72 6f 2e 22 0a 20 20 28 61 70 70 6c 79 20 27 2b 20 28 73 65 71 ,.return.zero."...(apply.'+.(seq
1360e0 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 20 69 64 78 29 0a 20 -map-indexed.(lambda.(elt.idx)..
136100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a ..............................(*
136120 20 28 65 78 70 74 20 32 20 28 2a 20 38 20 69 64 78 29 29 20 65 6c 74 29 29 0a 20 20 20 20 20 20 .(expt.2.(*.8.idx)).elt)).......
136140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 65 63 29 29 29 0a 0a 28 .......................vec)))..(
136160 64 65 66 75 6e 20 65 6d 6d 73 2d 62 65 2d 74 6f 2d 69 6e 74 20 28 76 65 63 29 0a 20 20 22 43 6f defun.emms-be-to-int.(vec)..."Co
136180 6e 76 65 72 74 20 62 79 74 65 73 20 69 6e 20 56 45 43 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 nvert.bytes.in.VEC.to.an.integer
1361a0 2e 0a 42 79 74 65 73 20 61 72 65 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 69 6e 20 62 69 67 ..Bytes.are.assumed.to.be.in.big
1361c0 2d 65 6e 64 69 61 6e 20 6f 72 64 65 72 2c 20 74 68 61 74 20 69 73 2c 20 74 68 65 20 6d 6f 73 74 -endian.order,.that.is,.the.most
1361e0 0a 73 69 67 6e 69 66 69 63 61 6e 74 20 62 79 74 65 20 66 69 72 73 74 2e 0a 0a 49 66 20 56 45 43 .significant.byte.first...If.VEC
136200 20 69 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e 20 7a 65 72 6f 2e 22 0a 20 20 28 65 6d 6d 73 2d 6c .is.nil,.return.zero."...(emms-l
136220 65 2d 74 6f 2d 69 6e 74 20 28 72 65 76 65 72 73 65 20 76 65 63 29 29 29 0a 0a 28 64 65 66 75 6e e-to-int.(reverse.vec)))..(defun
136240 20 65 6d 6d 73 2d 66 72 6f 6d 2d 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 28 6e 75 6d 20 .emms-from-twos-complement.(num.
136260 62 69 74 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 69 6e 74 65 67 65 72 20 4e 55 4d 20 66 72 6f bits)..."Convert.integer.NUM.fro
136280 6d 20 74 77 6f 27 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 69 74 68 20 42 49 54 53 20 62 69 74 m.two's.complement.with.BITS.bit
1362a0 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 69 67 6e 6d 61 73 6b 20 28 61 73 68 20 31 20 28 31 2d s."...(let.((signmask.(ash.1.(1-
1362c0 20 62 69 74 73 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 28 6c 6f 67 61 6e 64 20 6e 75 6d .bits)))).....(if.(=.(logand.num
1362e0 20 73 69 67 6e 6d 61 73 6b 29 20 73 69 67 6e 6d 61 73 6b 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 .signmask).signmask).........;;.
136300 6e 65 67 61 74 69 76 65 0a 20 20 20 20 20 20 20 20 28 2a 20 2d 31 20 28 31 2b 20 28 6c 6f 67 61 negative.........(*.-1.(1+.(loga
136320 6e 64 20 28 6c 6f 67 6e 6f 74 20 6e 75 6d 29 20 28 31 2d 20 73 69 67 6e 6d 61 73 6b 29 29 29 29 nd.(lognot.num).(1-.signmask))))
136340 0a 20 20 20 20 20 20 3b 3b 20 70 6f 73 69 74 69 76 65 0a 20 20 20 20 20 20 6e 75 6d 29 29 29 0a .......;;.positive.......num))).
136360 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 65 78 74 72 61 63 74 2d 62 69 74 73 20 28 69 6e 74 20 66 .(defun.emms-extract-bits.(int.f
136380 72 6f 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 74 6f 29 0a 20 20 22 45 78 74 72 61 63 74 20 63 6f 6e rom.&optional.to)..."Extract.con
1363a0 73 65 71 75 65 6e 74 20 73 65 74 20 62 69 74 73 20 46 52 4f 4d 5b 2e 2e 54 4f 5d 20 66 72 6f 6d sequent.set.bits.FROM[..TO].from
1363c0 20 49 4e 54 2e 0a 54 68 65 20 66 69 72 73 74 20 28 6c 65 61 73 74 20 73 69 67 6e 69 66 69 63 61 .INT..The.first.(least.significa
1363e0 6e 74 2c 20 72 69 67 68 74 6d 6f 73 74 29 20 62 69 74 20 69 73 20 7a 65 72 6f 2e 20 20 52 65 74 nt,.rightmost).bit.is.zero...Ret
136400 75 72 6e 20 74 68 65 0a 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 6f 66 20 62 69 74 73 20 61 73 urn.the.integer.value.of.bits.as
136420 20 69 66 20 74 68 65 79 20 77 6f 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 73 68 69 66 74 65 64 .if.they.would.have.been.shifted
136440 20 74 6f 20 72 69 67 68 74 0a 62 79 20 46 52 4f 4d 20 70 6f 73 69 74 69 6f 6e 73 2e 22 0a 20 20 .to.right.by.FROM.positions."...
136460 28 75 6e 6c 65 73 73 20 74 6f 20 28 73 65 74 71 20 74 6f 20 66 72 6f 6d 29 29 0a 20 20 28 6c 65 (unless.to.(setq.to.from))...(le
136480 74 20 28 28 6e 75 6d 2d 62 69 74 73 20 28 31 2b 20 28 2d 20 74 6f 20 66 72 6f 6d 29 29 29 0a 20 t.((num-bits.(1+.(-.to.from)))..
1364a0 20 20 20 20 20 20 20 28 6d 61 73 6b 20 28 31 2d 20 28 65 78 70 74 20 32 20 28 31 2b 20 74 6f 29 .......(mask.(1-.(expt.2.(1+.to)
1364c0 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 20 6e 75 6d 2d 62 69 74 73 20 30 29 20 28 61 )))).....(when.(>.num-bits.0).(a
1364e0 73 68 20 28 6c 6f 67 61 6e 64 20 69 6e 74 20 6d 61 73 6b 29 20 28 2d 20 66 72 6f 6d 29 29 29 29 sh.(logand.int.mask).(-.from))))
136500 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 65 71 75 61 6c 2d 6c 69 73 74 73 20 28 78 20 79 29 )..(defun.emms-equal-lists.(x.y)
136520 0a 20 20 22 43 6f 6d 70 61 72 65 20 74 77 6f 20 6c 69 73 74 73 20 58 20 61 6e 64 20 59 20 66 6f ..."Compare.two.lists.X.and.Y.fo
136540 72 20 65 71 75 61 6c 69 74 79 2e 0a 4c 69 73 74 20 65 6c 65 6d 65 6e 74 73 20 63 61 6e 20 62 65 r.equality..List.elements.can.be
136560 20 69 6e 20 61 6e 79 20 6f 72 64 65 72 2c 20 61 6e 64 20 59 20 63 61 6e 20 68 61 76 65 20 6d 6f .in.any.order,.and.Y.can.have.mo
136580 72 65 20 65 6c 65 6d 65 6e 74 73 0a 74 68 61 6e 20 58 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 73 re.elements.than.X...This.is.a.s
1365a0 70 65 63 69 61 6c 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 65 73 74 73 pecial.helper.function.for.tests
1365c0 2e 20 20 49 74 20 69 73 20 6e 6f 74 20 6d 65 61 6e 74 20 66 6f 72 0a 67 65 6e 65 72 61 6c 20 75 ...It.is.not.meant.for.general.u
1365e0 73 65 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 28 6e 6f 74 20 28 70 72 6f 70 65 72 2d se."...(cond.((and.(not.(proper-
136600 6c 69 73 74 2d 70 20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 list-p.x))...............(not.(p
136620 72 6f 70 65 72 2d 6c 69 73 74 2d 70 20 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 71 75 61 roper-list-p.y)))..........(equa
136640 6c 20 78 20 79 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 70 72 6f 70 65 72 2d 6c 69 l.x.y)).........((and.(proper-li
136660 73 74 2d 70 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 2d 6c 69 st-p.x)...............(proper-li
136680 73 74 2d 70 20 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 65 76 65 72 79 2d 70 20 28 st-p.y))..........(seq-every-p.(
1366a0 6c 61 6d 62 64 61 20 28 65 6c 74 2d 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(elt-x)..................
1366c0 20 20 20 20 20 20 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 2d 79 29 .......(seq-find.(lambda.(elt-y)
1366e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
136700 20 20 20 20 20 28 65 6d 6d 73 2d 65 71 75 61 6c 2d 6c 69 73 74 73 20 65 6c 74 2d 78 20 65 6c 74 .....(emms-equal-lists.elt-x.elt
136720 2d 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -y))............................
136740 20 20 20 20 20 20 20 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......y))......................
136760 20 78 29 29 29 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .x))))..;;;.--------------------
136780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1367a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 53 6f 75 72 63 65 73 0a 3b 3b 3b 20 2d --------------.;;;.Sources.;;;.-
1367c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1367e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
136800 2d 0a 3b 3b 20 41 20 73 6f 75 72 63 65 20 69 73 20 6a 75 73 74 20 61 20 66 75 6e 63 74 69 6f 6e -.;;.A.source.is.just.a.function
136820 20 77 68 69 63 68 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 61 20 70 6c 61 79 6c 69 73 74 20 62 .which.is.called.in.a.playlist.b
136840 75 66 66 65 72 2e 0a 3b 3b 20 49 74 20 73 68 6f 75 6c 64 20 75 73 65 20 60 65 6d 6d 73 2d 70 6c uffer..;;.It.should.use.`emms-pl
136860 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 27 20 74 6f 20 69 6e 73 65 72 74 20 74 aylist-insert-track'.to.insert.t
136880 68 65 20 74 72 61 63 6b 73 20 69 74 0a 3b 3b 20 6b 6e 6f 77 73 20 61 62 6f 75 74 2e 0a 3b 3b 0a he.tracks.it.;;.knows.about..;;.
1368a0 3b 3b 20 54 68 65 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 6d 61 63 72 6f 20 ;;.The.define-emms-source.macro.
1368c0 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 20 65 6d 6d 73 2d 70 also.defines.functions.;;.emms-p
1368e0 6c 61 79 2d 53 4f 55 52 43 45 20 61 6e 64 20 65 6d 6d 73 2d 61 64 64 2d 53 4f 55 52 43 45 2e 20 lay-SOURCE.and.emms-add-SOURCE..
136900 20 54 68 65 20 66 6f 72 6d 65 72 20 77 69 6c 6c 20 72 65 70 6c 61 63 65 20 74 68 65 0a 3b 3b 20 .The.former.will.replace.the.;;.
136920 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2c 20 77 68 69 6c 65 20 74 68 65 20 6c 61 74 74 current.playlist,.while.the.latt
136940 65 72 20 77 69 6c 6c 20 61 64 64 20 74 6f 20 74 68 65 20 65 6e 64 2e 0a 28 64 65 66 6d 61 63 72 er.will.add.to.the.end..(defmacr
136960 6f 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 28 6e 61 6d 65 20 61 72 67 6c 69 o.define-emms-source.(name.argli
136980 73 74 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 44 65 66 69 6e 65 20 61 20 6e 65 77 20 45 st.&rest.body)..."Define.a.new.E
1369a0 4d 4d 53 20 73 6f 75 72 63 65 20 63 61 6c 6c 65 64 20 4e 41 4d 45 2e 0a 54 68 69 73 20 6d 61 63 MMS.source.called.NAME..This.mac
1369c0 72 6f 20 64 65 66 69 6e 65 73 20 74 68 72 65 65 20 66 75 6e 63 74 69 6f 6e 73 3a 20 60 65 6d 6d ro.defines.three.functions:.`emm
1369e0 73 2d 73 6f 75 72 63 65 2d 4e 41 4d 45 27 2c 0a 60 65 6d 6d 73 2d 70 6c 61 79 2d 4e 41 4d 45 27 s-source-NAME',.`emms-play-NAME'
136a00 20 61 6e 64 20 60 65 6d 6d 73 2d 61 64 64 2d 4e 41 4d 45 27 2e 20 20 42 4f 44 59 20 73 68 6f 75 .and.`emms-add-NAME'...BODY.shou
136a20 6c 64 20 75 73 65 0a 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 ld.use.`emms-playlist-insert-tra
136a40 63 6b 27 20 74 6f 20 69 6e 73 65 72 74 20 61 6c 6c 20 74 72 61 63 6b 73 20 74 6f 20 62 65 20 70 ck'.to.insert.all.tracks.to.be.p
136a60 6c 61 79 65 64 2c 0a 77 68 69 63 68 20 69 73 20 65 78 61 63 74 6c 79 20 77 68 61 74 20 60 65 6d layed,.which.is.exactly.what.`em
136a80 6d 73 2d 73 6f 75 72 63 65 2d 4e 41 4d 45 27 20 77 69 6c 6c 20 64 6f 2e 20 20 54 68 65 20 6f 74 ms-source-NAME'.will.do...The.ot
136aa0 68 65 72 20 74 77 6f 0a 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 73 69 6d 70 6c 65 her.two.functions.will.be.simple
136ac0 20 77 72 61 70 70 65 72 73 20 61 72 6f 75 6e 64 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 4e 41 .wrappers.around.`emms-source-NA
136ae0 4d 45 27 3b 20 61 6e 79 0a 60 69 6e 74 65 72 61 63 74 69 76 65 27 20 66 6f 72 6d 20 74 68 61 74 ME';.any.`interactive'.form.that
136b00 20 79 6f 75 20 73 70 65 63 69 66 79 20 69 6e 20 42 4f 44 59 20 77 69 6c 6c 20 65 6e 64 20 75 70 .you.specify.in.BODY.will.end.up
136b20 20 69 6e 20 74 68 65 73 65 2e 0a 53 65 65 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e .in.these..See.emms-source-file.
136b40 65 6c 20 66 6f 72 20 73 6f 6d 65 20 65 78 61 6d 70 6c 65 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 el.for.some.examples."...(declar
136b60 65 0a 20 20 20 28 64 65 62 75 67 20 28 26 64 65 66 69 6e 65 20 5b 26 6e 61 6d 65 20 22 65 6d 6d e....(debug.(&define.[&name."emm
136b80 73 2d 22 20 73 79 6d 62 6f 6c 70 20 3b 20 6e 61 6d 65 20 61 6c 6c 20 67 65 6e 65 72 61 74 65 64 s-".symbolp.;.name.all.generated
136ba0 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .functions......................
136bc0 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 20 70 72 65 66 69 78 20 6e 61 6d 65 29 0a 20 20 20 .....(lambda.(_.prefix.name)....
136be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e .........................(mapcon
136c00 63 61 74 20 28 6c 61 6d 62 64 61 20 28 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 cat.(lambda.(type)..............
136c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ............................(con
136c40 63 61 74 20 70 72 65 66 69 78 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cat.prefix.type.................
136c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
136c80 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(symbol-name.name)))...........
136ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 22 .............................'("
136cc0 61 64 64 2d 22 20 22 69 6e 73 65 72 74 2d 22 20 22 70 6c 61 79 2d 22 20 22 73 6f 75 72 63 65 2d add-"."insert-"."play-"."source-
136ce0 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ")..............................
136d00 20 20 20 20 20 20 20 20 20 20 22 20 22 29 29 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........."."))]................
136d20 20 20 20 20 6c 61 6d 62 64 61 2d 6c 69 73 74 20 5b 26 6f 70 74 69 6f 6e 61 6c 20 73 74 72 69 6e ....lambda-list.[&optional.strin
136d40 67 70 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 26 6f 70 74 69 6f 6e 61 gp]....................[&optiona
136d60 6c 20 28 22 69 6e 74 65 72 61 63 74 69 76 65 22 20 69 6e 74 65 72 61 63 74 69 76 65 29 5d 20 64 l.("interactive".interactive)].d
136d80 65 66 2d 62 6f 64 79 29 29 0a 20 20 20 28 64 6f 63 2d 73 74 72 69 6e 67 20 33 29 20 28 69 6e 64 ef-body))....(doc-string.3).(ind
136da0 65 6e 74 20 64 65 66 75 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 73 6f 75 72 63 65 2d 6e 61 6d 65 ent.defun))...(let.((source-name
136dc0 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 25 73 .(intern.(format."emms-source-%s
136de0 22 20 6e 61 6d 65 29 29 29 0a 09 28 73 6f 75 72 63 65 2d 70 6c 61 79 20 28 69 6e 74 65 72 6e 20 ".name)))..(source-play.(intern.
136e00 28 66 6f 72 6d 61 74 20 22 65 6d 6d 73 2d 70 6c 61 79 2d 25 73 22 20 6e 61 6d 65 29 29 29 0a 09 (format."emms-play-%s".name)))..
136e20 28 73 6f 75 72 63 65 2d 61 64 64 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 65 6d 6d (source-add.(intern.(format."emm
136e40 73 2d 61 64 64 2d 25 73 22 20 6e 61 6d 65 29 29 29 0a 09 28 73 6f 75 72 63 65 2d 69 6e 73 65 72 s-add-%s".name)))..(source-inser
136e60 74 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 25 t.(intern.(format."emms-insert-%
136e80 73 22 20 6e 61 6d 65 29 29 29 0a 09 28 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 2d 63 75 72 72 65 s".name)))..(source-insert-curre
136ea0 6e 74 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 65 6d 6d 73 2d 69 6e 73 65 72 74 2d nt.(intern.(format."emms-insert-
136ec0 63 75 72 72 65 6e 74 2d 25 73 22 20 6e 61 6d 65 29 29 29 0a 09 28 64 6f 63 73 74 72 69 6e 67 20 current-%s".name)))..(docstring.
136ee0 22 41 20 73 6f 75 72 63 65 20 6f 66 20 74 72 61 63 6b 73 20 66 6f 72 20 45 4d 4d 53 2e 22 29 0a "A.source.of.tracks.for.EMMS.").
136f00 09 28 69 6e 74 65 72 61 63 74 69 76 65 20 6e 69 6c 29 0a 09 28 63 61 6c 6c 2d 61 72 67 73 20 28 .(interactive.nil)..(call-args.(
136f20 64 65 6c 65 74 65 20 27 26 72 65 73 74 0a 09 09 09 20 20 20 28 64 65 6c 65 74 65 20 27 26 6f 70 delete.'&rest.......(delete.'&op
136f40 74 69 6f 6e 61 6c 0a 09 09 09 09 20 20 20 61 72 67 6c 69 73 74 29 29 29 29 0a 20 20 20 20 28 77 tional........arglist)))).....(w
136f60 68 65 6e 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 28 hen.(stringp.(car.body)).......(
136f80 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 20 28 63 61 72 20 62 6f 64 79 29 0a 09 20 20 20 20 62 setq.docstring.(car.body)......b
136fa0 6f 64 79 20 28 63 64 72 20 62 6f 64 79 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 ody.(cdr.body))).....(when.(eq.'
136fc0 69 6e 74 65 72 61 63 74 69 76 65 20 28 63 61 61 72 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 28 interactive.(caar.body)).......(
136fe0 73 65 74 71 20 69 6e 74 65 72 61 63 74 69 76 65 20 28 63 61 72 20 62 6f 64 79 29 0a 09 20 20 20 setq.interactive.(car.body).....
137000 20 62 6f 64 79 20 28 63 64 72 20 62 6f 64 79 29 29 29 0a 20 20 20 20 60 28 70 72 6f 67 6e 0a 20 .body.(cdr.body))).....`(progn..
137020 20 20 20 20 20 20 28 64 65 66 75 6e 20 2c 73 6f 75 72 63 65 2d 6e 61 6d 65 20 2c 61 72 67 6c 69 ......(defun.,source-name.,argli
137040 73 74 0a 09 20 2c 64 6f 63 73 74 72 69 6e 67 0a 09 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 st...,docstring...,@body).......
137060 20 28 64 65 66 75 6e 20 2c 73 6f 75 72 63 65 2d 70 6c 61 79 20 2c 61 72 67 6c 69 73 74 0a 09 20 .(defun.,source-play.,arglist...
137080 2c 64 6f 63 73 74 72 69 6e 67 0a 09 20 2c 69 6e 74 65 72 61 63 74 69 76 65 0a 09 20 28 69 66 20 ,docstring...,interactive...(if.
1370a0 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 09 20 20 20 20 20 28 6c 65 74 20 28 28 current-prefix-arg.......(let.((
1370c0 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 6e 69 6c 29 29 0a 09 20 20 20 20 20 20 current-prefix-arg.nil))........
1370e0 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 61 64 64 20 27 2c 73 6f 75 72 63 65 2d 6e 61 6d 65 20 .(emms-source-add.',source-name.
137100 2c 40 63 61 6c 6c 2d 61 72 67 73 29 29 0a 09 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 ,@call-args)).....(emms-source-p
137120 6c 61 79 20 27 2c 73 6f 75 72 63 65 2d 6e 61 6d 65 20 2c 40 63 61 6c 6c 2d 61 72 67 73 29 29 29 lay.',source-name.,@call-args)))
137140 0a 20 20 20 20 20 20 20 28 64 65 66 75 6e 20 2c 73 6f 75 72 63 65 2d 61 64 64 20 2c 61 72 67 6c ........(defun.,source-add.,argl
137160 69 73 74 0a 09 20 2c 64 6f 63 73 74 72 69 6e 67 0a 09 20 2c 69 6e 74 65 72 61 63 74 69 76 65 0a ist...,docstring...,interactive.
137180 09 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 09 20 20 20 20 20 28 ..(if.current-prefix-arg.......(
1371a0 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 6e 69 6c 29 29 0a 09 let.((current-prefix-arg.nil))..
1371c0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 20 27 2c 73 6f 75 72 63 .......(emms-source-play.',sourc
1371e0 65 2d 6e 61 6d 65 20 2c 40 63 61 6c 6c 2d 61 72 67 73 29 29 0a 09 20 20 20 28 65 6d 6d 73 2d 73 e-name.,@call-args)).....(emms-s
137200 6f 75 72 63 65 2d 61 64 64 20 27 2c 73 6f 75 72 63 65 2d 6e 61 6d 65 20 2c 40 63 61 6c 6c 2d 61 ource-add.',source-name.,@call-a
137220 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 28 64 65 66 75 6e 20 2c 73 6f 75 72 63 65 2d 69 6e 73 rgs)))........(defun.,source-ins
137240 65 72 74 20 2c 61 72 67 6c 69 73 74 0a 09 20 2c 64 6f 63 73 74 72 69 6e 67 0a 09 20 2c 69 6e 74 ert.,arglist...,docstring...,int
137260 65 72 61 63 74 69 76 65 0a 09 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 20 27 eractive...(emms-source-insert.'
137280 2c 73 6f 75 72 63 65 2d 6e 61 6d 65 20 2c 40 63 61 6c 6c 2d 61 72 67 73 29 29 0a 20 20 20 20 20 ,source-name.,@call-args))......
1372a0 20 20 28 64 65 66 75 6e 20 2c 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 2d 63 75 72 72 65 6e 74 20 ..(defun.,source-insert-current.
1372c0 2c 61 72 67 6c 69 73 74 0a 09 20 2c 64 6f 63 73 74 72 69 6e 67 0a 09 20 2c 69 6e 74 65 72 61 63 ,arglist...,docstring...,interac
1372e0 74 69 76 65 0a 09 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 2d 63 75 72 72 65 tive...(emms-source-insert-curre
137300 6e 74 20 27 2c 73 6f 75 72 63 65 2d 6e 61 6d 65 20 2c 40 63 61 6c 6c 2d 61 72 67 73 29 29 29 29 nt.',source-name.,@call-args))))
137320 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 20 28 73 6f 75 72 )..(defun.emms-source-play.(sour
137340 63 65 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 50 6c 61 79 20 74 68 65 20 74 72 61 63 6b ce.&rest.args)..."Play.the.track
137360 73 20 6f 66 20 53 4f 55 52 43 45 2c 20 61 66 74 65 72 20 66 69 72 73 74 20 63 6c 65 61 72 69 6e s.of.SOURCE,.after.first.clearin
137380 67 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 65 6d 6d 73 2d 73 74 g.the.EMMS.playlist."...(emms-st
1373a0 6f 70 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 63 6c 65 op)...(emms-playlist-current-cle
1373c0 61 72 29 0a 20 20 28 61 70 70 6c 79 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 ar)...(apply.#'emms-playlist-cur
1373e0 72 65 6e 74 2d 69 6e 73 65 72 74 2d 73 6f 75 72 63 65 20 73 6f 75 72 63 65 20 61 72 67 73 29 0a rent-insert-source.source.args).
137400 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 2d ..(emms-playlist-current-select-
137420 66 69 72 73 74 29 0a 20 20 28 65 6d 6d 73 2d 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 first)...(emms-start))..(defun.e
137440 6d 6d 73 2d 73 6f 75 72 63 65 2d 61 64 64 20 28 73 6f 75 72 63 65 20 26 72 65 73 74 20 61 72 67 mms-source-add.(source.&rest.arg
137460 73 29 0a 20 20 22 41 64 64 20 74 68 65 20 74 72 61 63 6b 73 20 6f 66 20 53 4f 55 52 43 45 20 61 s)..."Add.the.tracks.of.SOURCE.a
137480 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 70 6c t.the.current.position.in.the.pl
1374a0 61 79 6c 69 73 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c aylist."...(with-current-emms-pl
1374c0 61 79 6c 69 73 74 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 aylist.....(save-excursion......
1374e0 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 .(goto-char.(point-max)).......(
137500 61 70 70 6c 79 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 69 6e apply.#'emms-playlist-current-in
137520 73 65 72 74 2d 73 6f 75 72 63 65 20 73 6f 75 72 63 65 20 61 72 67 73 29 29 0a 20 20 20 20 28 77 sert-source.source.args)).....(w
137540 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 hen.(or.(not.emms-playlist-selec
137560 74 65 64 2d 6d 61 72 6b 65 72 29 0a 09 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 61 72 6b 65 72 2d ted-marker)........(not.(marker-
137580 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d position.emms-playlist-selected-
1375a0 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 marker))).......(emms-playlist-s
1375c0 65 6c 65 63 74 2d 66 69 72 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 elect-first))))..(defun.emms-sou
1375e0 72 63 65 2d 69 6e 73 65 72 74 20 28 73 6f 75 72 63 65 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 rce-insert.(source.&rest.args)..
137600 20 22 49 6e 73 65 72 74 20 74 68 65 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 53 4f 55 52 43 45 20 ."Insert.the.tracks.from.SOURCE.
137620 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 69 74 68 2d in.the.current.buffer."...(with-
137640 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 61 70 70 6c 79 current-emms-playlist.....(apply
137660 20 23 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 73 6f 75 72 63 65 20 73 .#'emms-playlist-insert-source.s
137680 6f 75 72 63 65 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 ource.args)))..(defun.emms-sourc
1376a0 65 2d 69 6e 73 65 72 74 2d 63 75 72 72 65 6e 74 20 28 73 6f 75 72 63 65 20 26 72 65 73 74 20 61 e-insert-current.(source.&rest.a
1376c0 72 67 73 29 0a 20 20 22 49 6e 73 65 72 74 20 66 72 6f 6d 20 53 4f 55 52 43 45 20 69 6e 74 6f 20 rgs)..."Insert.from.SOURCE.into.
1376e0 62 75 66 66 65 72 20 61 74 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 20 28 77 69 74 buffer.at.current.track."...(wit
137700 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 69 66 20 h-current-emms-playlist.....(if.
137720 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b (not.emms-playlist-selected-mark
137740 65 72 29 0a 09 28 65 72 72 6f 72 20 22 6e 6f 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 er)..(error."no.current.playlist
137760 20 74 72 61 63 6b 22 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6d 6d 73 2d 70 .track").......(goto-char.emms-p
137780 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 28 laylist-selected-marker).......(
1377a0 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 65 6d 6d 73 forward-line)).....(apply.#'emms
1377c0 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 73 6f 75 72 63 65 20 73 6f 75 72 63 65 20 61 -playlist-insert-source.source.a
1377e0 72 67 73 29 29 29 0a 0a 3b 3b 3b 20 55 73 65 72 2d 64 65 66 69 6e 65 64 20 70 6c 61 79 6c 69 73 rgs)))..;;;.User-defined.playlis
137800 74 73 0a 3b 3b 3b 20 46 49 58 4d 45 3a 20 53 68 75 66 66 6c 65 20 69 73 20 62 6f 67 75 73 20 68 ts.;;;.FIXME:.Shuffle.is.bogus.h
137820 65 72 65 21 20 28 62 65 63 61 75 73 65 20 6f 66 20 6e 61 72 72 6f 77 69 6e 67 29 0a 28 64 65 66 ere!.(because.of.narrowing).(def
137840 6d 61 63 72 6f 20 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 63 6f 6d 62 69 6e 65 64 2d 73 6f 75 72 63 macro.define-emms-combined-sourc
137860 65 20 28 6e 61 6d 65 20 73 68 75 66 66 6c 65 70 20 73 6f 75 72 63 65 73 29 0a 20 20 22 44 65 66 e.(name.shufflep.sources)..."Def
137880 69 6e 65 20 61 20 60 65 6d 6d 73 2d 70 6c 61 79 2d 58 27 20 61 6e 64 20 60 65 6d 6d 73 2d 61 64 ine.a.`emms-play-X'.and.`emms-ad
1378a0 64 2d 58 27 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 53 4f 55 52 43 45 53 2e 22 0a 20 20 60 28 d-X'.function.for.SOURCES."...`(
1378c0 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 2c 6e 61 6d 65 20 28 29 0a 20 20 20 20 define-emms-source.,name.().....
1378e0 20 22 41 6e 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 74 72 61 63 6b 6c 69 73 74 ."An.EMMS.source.for.a.tracklist
137900 2e 22 0a 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 28 6d 61 70 63 ."......(interactive)......(mapc
137920 20 28 6c 61 6d 62 64 61 20 28 73 6f 75 72 63 65 29 0a 09 20 20 20 20 20 28 61 70 70 6c 79 20 28 .(lambda.(source).......(apply.(
137940 63 61 72 20 73 6f 75 72 63 65 29 0a 09 09 20 20 20 20 28 63 64 72 20 73 6f 75 72 63 65 29 29 29 car.source).......(cdr.source)))
137960 0a 09 20 20 20 2c 73 6f 75 72 63 65 73 29 0a 20 20 20 20 20 2c 28 77 68 65 6e 20 73 68 75 66 66 .....,sources)......,(when.shuff
137980 6c 65 70 0a 09 27 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 09 20 20 20 28 77 69 64 lep..'(save-restriction.....(wid
1379a0 65 6e 29 0a 09 20 20 20 28 65 6d 6d 73 2d 73 68 75 66 66 6c 65 29 29 29 29 29 0a 0a 0a 3b 3b 3b en).....(emms-shuffle)))))...;;;
1379c0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
1379e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
137a00 2d 2d 2d 0a 3b 3b 3b 20 50 6c 61 79 65 72 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---.;;;.Players.;;;.------------
137a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
137a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 20 41 20 70 6c 61 79 ----------------------.;;.A.play
137a60 65 72 20 69 73 20 61 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 63 72 65 61 74 65 64 20 62 er.is.a.data.structure.created.b
137a80 79 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 27 2e 0a 3b 3b 20 53 65 65 20 74 68 65 20 64 6f 63 73 y.`emms-player'..;;.See.the.docs
137aa0 74 72 69 6e 67 20 6f 66 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 tring.of.that.function.for.more.
137ac0 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 information..(defvar.emms-player
137ae0 2d 73 74 6f 70 70 65 64 2d 70 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 -stopped-p.nil..."Non-nil.if.the
137b00 20 6c 61 73 74 20 45 4d 4d 53 20 70 6c 61 79 65 72 20 77 61 73 20 73 74 6f 70 70 65 64 20 62 79 .last.EMMS.player.was.stopped.by
137b20 20 74 68 65 20 75 73 65 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 .the.user.")..(defun.emms-player
137b40 20 28 73 74 61 72 74 20 73 74 6f 70 20 70 6c 61 79 61 62 6c 65 70 29 0a 20 20 22 43 72 65 61 74 .(start.stop.playablep)..."Creat
137b60 65 20 61 20 6e 65 77 20 45 4d 4d 53 20 70 6c 61 79 65 72 2e 0a 54 68 65 20 73 74 61 72 74 20 66 e.a.new.EMMS.player..The.start.f
137b80 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 53 54 41 52 54 2c 20 61 6e 64 20 74 68 65 20 73 unction.will.be.START,.and.the.s
137ba0 74 6f 70 20 66 75 6e 63 74 69 6f 6e 20 53 54 4f 50 2e 0a 50 4c 41 59 41 42 4c 45 50 20 73 68 6f top.function.STOP..PLAYABLEP.sho
137bc0 75 6c 64 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 74 72 61 63 6b 73 20 74 68 uld.return.non-nil.for.tracks.th
137be0 61 74 20 74 68 69 73 20 70 6c 61 79 65 72 20 63 61 6e 0a 70 6c 61 79 2e 0a 0a 57 68 65 6e 20 74 at.this.player.can.play...When.t
137c00 72 79 69 6e 67 20 74 6f 20 70 6c 61 79 20 61 20 74 72 61 63 6b 2c 20 45 4d 4d 53 20 77 61 6c 6b rying.to.play.a.track,.EMMS.walk
137c20 73 20 74 68 72 6f 75 67 68 0a 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 27 2e 20 20 46 s.through.`emms-player-list'...F
137c40 6f 72 20 65 61 63 68 20 70 6c 61 79 65 72 2c 20 69 74 20 63 61 6c 6c 73 20 74 68 65 20 50 4c 41 or.each.player,.it.calls.the.PLA
137c60 59 41 42 4c 45 50 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 65 20 70 6c 61 79 65 72 20 63 6f 72 YABLEP.function...The.player.cor
137c80 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 50 4c 41 59 41 42 4c 45 responding.to.the.first.PLAYABLE
137ca0 50 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 P.function.that.returns.non-nil.
137cc0 69 73 20 75 73 65 64 20 74 6f 20 70 6c 61 79 20 74 68 65 20 74 72 61 63 6b 2e 20 20 54 6f 0a 61 is.used.to.play.the.track...To.a
137ce0 63 74 75 61 6c 6c 79 20 70 6c 61 79 20 74 68 65 20 74 72 61 63 6b 2c 20 45 4d 4d 53 20 63 61 6c ctually.play.the.track,.EMMS.cal
137d00 6c 73 20 74 68 65 20 53 54 41 52 54 20 66 75 6e 63 74 69 6f 6e 2c 20 70 61 73 73 69 6e 67 0a 74 ls.the.START.function,.passing.t
137d20 68 65 20 63 68 6f 73 65 6e 20 74 72 61 63 6b 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 2e 0a he.chosen.track.as.a.parameter..
137d40 0a 49 66 20 74 68 65 20 75 73 65 72 20 74 65 6c 6c 73 20 45 4d 4d 53 20 74 6f 20 73 74 6f 70 20 .If.the.user.tells.EMMS.to.stop.
137d60 70 6c 61 79 69 6e 67 2c 20 74 68 65 20 53 54 4f 50 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 63 61 playing,.the.STOP.function.is.ca
137d80 6c 6c 65 64 2e 20 20 4f 6e 63 65 20 74 68 65 20 70 6c 61 79 65 72 20 68 61 73 20 66 69 6e 69 73 lled...Once.the.player.has.finis
137da0 68 65 64 20 70 6c 61 79 69 6e 67 2c 20 69 74 20 73 68 6f 75 6c 64 20 63 61 6c 6c 0a 60 65 6d 6d hed.playing,.it.should.call.`emm
137dc0 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 27 20 74 6f 20 6c 65 74 20 45 4d 4d 53 20 6b 6e s-player-stopped'.to.let.EMMS.kn
137de0 6f 77 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 ow."...(let.((p.(emms-dictionary
137e00 20 27 2a 70 6c 61 79 65 72 2a 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 .'*player*))).....(emms-player-s
137e20 65 74 20 70 20 27 73 74 61 72 74 20 73 74 61 72 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 et.p.'start.start).....(emms-pla
137e40 79 65 72 2d 73 65 74 20 70 20 27 73 74 6f 70 20 73 74 6f 70 29 0a 20 20 20 20 28 65 6d 6d 73 2d yer-set.p.'stop.stop).....(emms-
137e60 70 6c 61 79 65 72 2d 73 65 74 20 70 20 27 70 6c 61 79 61 62 6c 65 70 20 70 6c 61 79 61 62 6c 65 player-set.p.'playablep.playable
137e80 70 29 0a 20 20 20 20 70 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 p).....p))..(defun.emms-player-g
137ea0 65 74 20 28 70 6c 61 79 65 72 20 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 65 78 69 73 et.(player.name.&optional.inexis
137ec0 74 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 65 6e 74 tent)..."Return.the.value.of.ent
137ee0 72 79 20 4e 41 4d 45 20 69 6e 20 50 4c 41 59 45 52 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 20 28 ry.NAME.in.PLAYER."...(let.((p.(
137f00 69 66 20 28 73 79 6d 62 6f 6c 70 20 70 6c 61 79 65 72 29 0a 09 20 20 20 20 20 20 20 28 73 79 6d if.(symbolp.player).........(sym
137f20 62 6f 6c 2d 76 61 6c 75 65 20 70 6c 61 79 65 72 29 0a 09 20 20 20 20 20 70 6c 61 79 65 72 29 29 bol-value.player).......player))
137f40 29 0a 20 20 20 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 67 65 74 20 70 20 6e 61 6d ).....(emms-dictionary-get.p.nam
137f60 65 20 69 6e 65 78 69 73 74 65 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 e.inexistent)))..(defun.emms-pla
137f80 79 65 72 2d 73 65 74 20 28 70 6c 61 79 65 72 20 6e 61 6d 65 20 76 61 6c 75 65 29 0a 20 20 22 53 yer-set.(player.name.value)..."S
137fa0 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 65 6e 74 72 79 20 4e 41 4d 45 20 69 6e 20 50 4c et.the.value.of.entry.NAME.in.PL
137fc0 41 59 45 52 20 74 6f 20 56 41 4c 55 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 20 28 69 66 20 28 AYER.to.VALUE."...(let.((p.(if.(
137fe0 73 79 6d 62 6f 6c 70 20 70 6c 61 79 65 72 29 0a 09 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d symbolp.player).........(symbol-
138000 76 61 6c 75 65 20 70 6c 61 79 65 72 29 0a 09 20 20 20 20 20 70 6c 61 79 65 72 29 29 29 0a 20 20 value.player).......player)))...
138020 20 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 2d 73 65 74 20 70 20 6e 61 6d 65 20 76 61 ..(emms-dictionary-set.p.name.va
138040 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 6f 72 20 28 lue)))..(defun.emms-player-for.(
138060 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 65 72 20 track)..."Return.an.EMMS.player.
138080 63 61 70 61 62 6c 65 20 6f 66 20 70 6c 61 79 69 6e 67 20 54 52 41 43 4b 2e 0a 54 68 69 73 20 77 capable.of.playing.TRACK..This.w
1380a0 69 6c 6c 20 62 65 20 74 68 65 20 66 69 72 73 74 20 70 6c 61 79 65 72 20 77 68 6f 73 65 20 50 4c ill.be.the.first.player.whose.PL
1380c0 41 59 41 42 4c 45 50 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 0a 6e 6f 6e 2d 6e 69 6c AYABLEP.function.returns.non-nil
1380e0 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 20 73 75 63 68 20 70 6c 61 79 65 72 20 65 78 69 73 74 ,.or.nil.if.no.such.player.exist
138100 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 69 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 s."...(let.((lis.emms-player-lis
138120 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6c 69 73 0a 09 09 28 6e 6f 74 20 28 t)).....(while.(and.lis...(not.(
138140 66 75 6e 63 61 6c 6c 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 28 63 61 72 20 6c 69 funcall.(emms-player-get.(car.li
138160 73 29 20 27 70 6c 61 79 61 62 6c 65 70 29 0a 09 09 09 20 20 20 20 20 20 74 72 61 63 6b 29 29 29 s).'playablep)..........track)))
138180 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 73 20 28 63 64 72 20 6c 69 73 29 29 29 0a 20 20 20 .......(setq.lis.(cdr.lis)))....
1381a0 20 28 69 66 20 6c 69 73 0a 09 28 63 61 72 20 6c 69 73 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 .(if.lis..(car.lis).......nil)))
1381c0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 64 65 66 61 75 6c 74 2d 70 72 ..(defun.emms-players-default-pr
1381e0 65 66 65 72 65 6e 63 65 2d 66 20 28 74 72 61 63 6b 20 70 6c 61 79 65 72 73 29 0a 20 20 22 44 65 eference-f.(track.players)..."De
138200 66 61 75 6c 74 20 70 72 65 66 65 72 65 6e 63 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 52 65 74 75 fault.preference.function...Retu
138220 72 6e 73 20 74 68 65 20 66 69 72 73 74 20 70 6c 61 79 65 72 2e 22 0a 20 20 28 69 67 6e 6f 72 65 rns.the.first.player."...(ignore
138240 20 74 72 61 63 6b 29 0a 20 20 28 63 61 72 20 70 6c 61 79 65 72 73 29 29 0a 0a 28 64 65 66 75 6e .track)...(car.players))..(defun
138260 20 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 70 72 65 66 65 72 65 6e 63 65 20 28 74 72 61 63 6b 20 .emms-players-preference.(track.
138280 70 6c 61 79 65 72 73 29 0a 20 20 22 43 61 6c 6c 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 70 players)..."Call.`emms-players-p
1382a0 72 65 66 65 72 65 6e 63 65 2d 66 27 20 77 69 74 68 20 54 52 41 43 4b 20 61 6e 64 20 50 4c 41 59 reference-f'.with.TRACK.and.PLAY
1382c0 45 52 53 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 73 ERS...The.function.`emms-players
1382e0 2d 70 72 65 66 65 72 65 6e 63 65 2d 66 27 20 6d 75 73 74 20 61 63 63 65 70 74 20 61 6e 20 45 6d -preference-f'.must.accept.an.Em
138300 6d 73 0a 74 72 61 63 6b 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 70 6c 61 79 65 72 73 2e 20 ms.track.and.a.list.of.players..
138320 49 74 20 63 61 6e 20 62 65 20 61 73 73 75 6d 65 64 20 74 68 61 74 20 61 6c 6c 20 6f 66 20 74 68 It.can.be.assumed.that.all.of.th
138340 65 0a 70 6c 61 79 65 72 73 20 69 6e 20 50 4c 41 59 45 52 53 20 63 61 6e 20 70 6c 61 79 20 54 52 e.players.in.PLAYERS.can.play.TR
138360 41 43 4b 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 72 65 74 75 72 6e 20 6f ACK...The.function.must.return.o
138380 6e 65 20 6f 66 20 74 68 65 20 70 6c 61 79 65 72 73 20 66 72 6f 6d 20 50 4c 41 59 45 52 53 2e 22 ne.of.the.players.from.PLAYERS."
1383a0 0a 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 70 72 65 66 65 72 65 ...(funcall.emms-players-prefere
1383c0 6e 63 65 2d 66 20 74 72 61 63 6b 20 70 6c 61 79 65 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d nce-f.track.players))..(defun.em
1383e0 6d 73 2d 70 6c 61 79 65 72 73 2d 66 6f 72 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e ms-players-for.(track)..."Return
138400 20 61 20 70 6c 61 79 65 72 20 66 6f 72 20 54 52 41 43 4b 2e 0a 0a 49 66 20 74 68 65 20 74 72 61 .a.player.for.TRACK...If.the.tra
138420 63 6b 20 63 61 6e 20 62 65 20 70 6c 61 79 65 64 20 62 79 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e ck.can.be.played.by.more.than.on
138440 65 20 70 6c 61 79 65 72 2c 20 63 61 6c 6c 0a 60 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 70 72 65 e.player,.call.`emms-players-pre
138460 66 65 72 65 6e 63 65 27 20 74 6f 20 63 68 6f 6f 73 65 20 61 20 70 6c 61 79 65 72 2e 22 0a 20 20 ference'.to.choose.a.player."...
138480 28 6c 65 74 20 28 70 6c 61 79 65 72 73 29 0a 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 23 27 (let.(players).....(mapc......#'
1384a0 28 6c 61 6d 62 64 61 20 28 70 6c 61 79 65 72 29 0a 09 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c (lambda.(player)...(when.(funcal
1384c0 6c 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 70 6c 61 79 65 72 20 27 70 6c 61 79 61 l.(emms-player-get.player.'playa
1384e0 62 6c 65 70 29 20 74 72 61 63 6b 29 0a 09 20 20 20 28 70 75 73 68 20 70 6c 61 79 65 72 20 70 6c blep).track).....(push.player.pl
138500 61 79 65 72 73 29 29 29 0a 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 0a ayers)))......emms-player-list).
138520 20 20 20 20 28 73 65 74 71 20 70 6c 61 79 65 72 73 20 28 6e 72 65 76 65 72 73 65 20 70 6c 61 79 ....(setq.players.(nreverse.play
138540 65 72 73 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 31 20 28 6c 65 6e 67 74 68 20 70 6c 61 79 65 ers)).....(if.(<.1.(length.playe
138560 72 73 29 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 65 72 73 2d 70 72 65 66 65 72 65 6e 63 65 20 74 rs))..(emms-players-preference.t
138580 72 61 63 6b 20 70 6c 61 79 65 72 73 29 0a 20 20 20 20 20 20 28 63 61 72 20 70 6c 61 79 65 72 73 rack.players).......(car.players
1385a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 20 28 ))))..(defun.emms-player-start.(
1385c0 74 72 61 63 6b 29 0a 20 20 22 53 74 61 72 74 20 70 6c 61 79 69 6e 67 20 54 52 41 43 4b 2e 22 0a track)..."Start.playing.TRACK.".
1385e0 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 ..(if.emms-player-playing-p.....
138600 20 20 28 65 72 72 6f 72 20 22 41 20 70 6c 61 79 65 72 20 69 73 20 61 6c 72 65 61 64 79 20 70 6c ..(error."A.player.is.already.pl
138620 61 79 69 6e 67 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6c 61 79 65 72 20 28 65 6d 6d 73 2d aying").....(let.((player.(emms-
138640 70 6c 61 79 65 72 73 2d 66 6f 72 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e players-for.track))).......(when
138660 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 29 0a 09 28 65 72 72 6f 72 20 .(not.emms-player-list)..(error.
138680 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 20 65 6d 70 74 79 22 29 29 0a 20 20 20 20 20 "emms-player-list.empty"))......
1386a0 20 28 69 66 20 28 6e 6f 74 20 70 6c 61 79 65 72 29 0a 09 20 20 28 65 72 72 6f 72 20 22 44 6f 6e .(if.(not.player)....(error."Don
1386c0 27 74 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 70 6c 61 79 20 74 72 61 63 6b 3a 20 25 53 22 20 74 't.know.how.to.play.track:.%S".t
1386e0 72 61 63 6b 29 0a 09 3b 3b 20 43 68 61 6e 67 65 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f rack)..;;.Change.default-directo
138700 72 79 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 61 63 63 69 64 65 6e 74 61 6c 6c 79 20 62 6c 6f 63 ry.so.we.don't.accidentally.bloc
138720 6b 20 61 6e 79 0a 09 3b 3b 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 20 63 75 72 72 65 6e k.any..;;.directories.the.curren
138740 74 20 62 75 66 66 65 72 20 77 61 73 20 76 69 73 69 74 69 6e 67 2e 0a 09 28 6c 65 74 20 28 28 64 t.buffer.was.visiting...(let.((d
138760 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 22 2f 22 29 29 0a 09 20 20 28 66 75 6e 63 61 efault-directory."/"))....(funca
138780 6c 6c 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 70 6c 61 79 65 72 20 27 73 74 61 72 ll.(emms-player-get.player.'star
1387a0 74 29 0a 09 09 20 20 20 74 72 61 63 6b 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 t)......track))))))..(defun.emms
1387c0 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 20 28 70 6c 61 79 65 72 29 0a 20 20 22 44 65 63 6c -player-started.(player)..."Decl
1387e0 61 72 65 20 74 68 61 74 20 74 68 65 20 67 69 76 65 6e 20 45 4d 4d 53 20 50 4c 41 59 45 52 20 68 are.that.the.given.EMMS.PLAYER.h
138800 61 73 20 73 74 61 72 74 65 64 2e 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 as.started..This.should.only.be.
138820 64 6f 6e 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 69 74 73 65 6c done.by.the.current.player.itsel
138840 66 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d f."...(setq.emms-player-playing-
138860 70 20 70 6c 61 79 65 72 0a 09 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 20 p.player..emms-player-paused-p..
138880 6e 69 6c 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 nil)...(run-hooks.'emms-player-s
1388a0 74 61 72 74 65 64 2d 68 6f 6f 6b 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 tarted-hook))..(defun.emms-playe
1388c0 72 2d 73 74 6f 70 20 28 29 0a 20 20 22 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d r-stop.()..."Stop.the.current.EM
1388e0 4d 53 20 70 6c 61 79 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d MS.player."...(when.emms-player-
138900 70 6c 61 79 69 6e 67 2d 70 0a 20 20 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 70 6c 61 79 65 72 playing-p.....(let.((emms-player
138920 2d 73 74 6f 70 70 65 64 2d 70 20 74 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 65 -stopped-p.t)).......(funcall.(e
138940 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 mms-player-get.emms-player-playi
138960 6e 67 2d 70 20 27 73 74 6f 70 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 ng-p.'stop))).....(setq.emms-pla
138980 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d yer-playing-p.nil)))..(defun.emm
1389a0 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 20 28 29 0a 20 20 22 44 65 63 6c 61 72 65 20 74 s-player-stopped.()..."Declare.t
1389c0 68 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 65 72 20 69 73 20 66 hat.the.current.EMMS.player.is.f
1389e0 69 6e 69 73 68 65 64 2e 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 64 6f 6e inished..This.should.only.be.don
138a00 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 69 74 73 65 6c 66 2e 22 e.by.the.current.player.itself."
138a20 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 6e ...(setq.emms-player-playing-p.n
138a40 69 6c 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 0a il)...(if.emms-player-stopped-p.
138a60 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 ......(run-hooks.'emms-player-st
138a80 6f 70 70 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 73 6c 65 65 70 2d 66 6f 72 20 65 6d 6d 73 2d opped-hook).....(sleep-for.emms-
138aa0 70 6c 61 79 65 72 2d 64 65 6c 61 79 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d player-delay).....(run-hooks.'em
138ac0 6d 73 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 3b 3b 20 ms-player-finished-hook).....;;.
138ae0 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 74 switch.to.the.current.playlist.t
138b00 6f 20 70 69 63 6b 20 75 70 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 0a 20 20 20 20 3b 3b 20 62 o.pick.up.the.values.of.....;;.b
138b20 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 28 77 69 74 68 2d uffer-local.variables.....(with-
138b40 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 20 20 28 66 75 6e current-emms-playlist.......(fun
138b60 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6e 65 78 74 2d 66 75 6e 63 74 69 6f 6e 29 29 call.emms-player-next-function))
138b80 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 20 28 29 0a ))..(defun.emms-player-pause.().
138ba0 20 20 22 50 61 75 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 65 72 .."Pause.the.current.EMMS.player
138bc0 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ."...(cond....((not.emms-player-
138be0 70 6c 61 79 69 6e 67 2d 70 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 27 74 20 70 61 75 playing-p).....(error."Can't.pau
138c00 73 65 20 70 6c 61 79 65 72 2c 20 6e 6f 74 68 69 6e 67 20 69 73 20 70 6c 61 79 69 6e 67 22 29 29 se.player,.nothing.is.playing"))
138c20 0a 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 0a 20 20 20 20 28 6c ....(emms-player-paused-p.....(l
138c40 65 74 20 28 28 72 65 73 75 6d 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 65 6d 6d et.((resume.(emms-player-get.emm
138c60 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 27 72 65 73 75 6d 65 29 29 0a 09 20 20 s-player-playing-p.'resume))....
138c80 28 70 61 75 73 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 65 6d 6d 73 2d 70 6c 61 (pause.(emms-player-get.emms-pla
138ca0 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 27 70 61 75 73 65 29 29 29 0a 20 20 20 20 20 20 28 63 yer-playing-p.'pause))).......(c
138cc0 6f 6e 64 0a 20 20 20 20 20 20 20 28 72 65 73 75 6d 65 0a 09 28 66 75 6e 63 61 6c 6c 20 72 65 73 ond........(resume..(funcall.res
138ce0 75 6d 65 29 29 0a 20 20 20 20 20 20 20 28 70 61 75 73 65 0a 09 28 66 75 6e 63 61 6c 6c 20 70 61 ume))........(pause..(funcall.pa
138d00 75 73 65 29 29 0a 20 20 20 20 20 20 20 28 74 0a 09 28 65 72 72 6f 72 20 22 50 6c 61 79 65 72 20 use))........(t..(error."Player.
138d20 64 6f 65 73 20 6e 6f 74 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 70 61 75 73 65 22 29 29 29 29 0a does.not.know.how.to.pause")))).
138d40 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 6e ....(setq.emms-player-paused-p.n
138d60 69 6c 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d il).....(run-hooks.'emms-player-
138d80 70 61 75 73 65 64 2d 68 6f 6f 6b 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28 28 70 paused-hook))....(t.....(let.((p
138da0 61 75 73 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 ause.(emms-player-get.emms-playe
138dc0 72 2d 70 6c 61 79 69 6e 67 2d 70 20 27 70 61 75 73 65 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 r-playing-p.'pause))).......(if.
138de0 70 61 75 73 65 0a 09 20 20 28 66 75 6e 63 61 6c 6c 20 70 61 75 73 65 29 0a 09 28 65 72 72 6f 72 pause....(funcall.pause)..(error
138e00 20 22 50 6c 61 79 65 72 20 64 6f 65 73 20 6e 6f 74 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 70 61 ."Player.does.not.know.how.to.pa
138e20 75 73 65 22 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 use"))).....(setq.emms-player-pa
138e40 75 73 65 64 2d 70 20 74 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 65 6d 6d 73 2d 70 used-p.t).....(run-hooks.'emms-p
138e60 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 68 6f 6f 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d layer-paused-hook))))..(defun.em
138e80 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 20 28 73 65 63 6f 6e 64 73 29 0a 20 20 22 53 65 65 6b ms-player-seek.(seconds)..."Seek
138ea0 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 72 20 62 79 20 53 45 43 4f 4e 44 53 20 73 .the.current.player.by.SECONDS.s
138ec0 65 63 6f 6e 64 73 2e 0a 54 68 69 73 20 63 61 6e 20 62 65 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 econds..This.can.be.a.floating.p
138ee0 6f 69 6e 74 20 6e 75 6d 62 65 72 20 66 6f 72 20 66 72 61 63 74 69 6f 6e 73 20 6f 66 20 61 20 73 oint.number.for.fractions.of.a.s
138f00 65 63 6f 6e 64 2c 20 6f 72 0a 6e 65 67 61 74 69 76 65 20 74 6f 20 73 65 65 6b 20 62 61 63 6b 77 econd,.or.negative.to.seek.backw
138f20 61 72 64 73 2e 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c ards."...(if.(not.emms-player-pl
138f40 61 79 69 6e 67 2d 70 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 27 74 20 73 65 65 aying-p).......(error."Can't.see
138f60 6b 20 70 6c 61 79 65 72 2c 20 6e 6f 74 68 69 6e 67 20 70 6c 61 79 69 6e 67 20 72 69 67 68 74 20 k.player,.nothing.playing.right.
138f80 6e 6f 77 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 65 65 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 now").....(let.((seek.(emms-play
138fa0 65 72 2d 67 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 27 73 65 er-get.emms-player-playing-p.'se
138fc0 65 6b 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 73 65 65 6b 29 0a 09 20 20 28 65 ek))).......(if.(not.seek)....(e
138fe0 72 72 6f 72 20 22 50 6c 61 79 65 72 20 64 6f 65 73 20 6e 6f 74 20 6b 6e 6f 77 20 68 6f 77 20 74 rror."Player.does.not.know.how.t
139000 6f 20 73 65 65 6b 22 29 0a 09 28 66 75 6e 63 61 6c 6c 20 73 65 65 6b 20 73 65 63 6f 6e 64 73 29 o.seek")..(funcall.seek.seconds)
139020 0a 09 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 70 6c 61 79 ..(run-hook-with-args.'emms-play
139040 65 72 2d 73 65 65 6b 65 64 2d 66 75 6e 63 74 69 6f 6e 73 20 73 65 63 6f 6e 64 73 29 29 29 29 29 er-seeked-functions.seconds)))))
139060 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 65 6b 2d 74 6f 20 28 73 65 ..(defun.emms-player-seek-to.(se
139080 63 6f 6e 64 73 29 0a 20 20 22 53 65 65 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 65 conds)..."Seek.the.current.playe
1390a0 72 20 74 6f 20 53 45 43 4f 4e 44 53 20 73 65 63 6f 6e 64 73 2e 0a 54 68 69 73 20 63 61 6e 20 62 r.to.SECONDS.seconds..This.can.b
1390c0 65 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 66 6f 72 20 66 72 e.a.floating.point.number.for.fr
1390e0 61 63 74 69 6f 6e 73 20 6f 66 20 61 20 73 65 63 6f 6e 64 2c 20 6f 72 0a 6e 65 67 61 74 69 76 65 actions.of.a.second,.or.negative
139100 20 74 6f 20 73 65 65 6b 20 62 61 63 6b 77 61 72 64 73 2e 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 .to.seek.backwards."...(if.(not.
139120 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 29 0a 20 20 20 20 20 20 28 65 72 emms-player-playing-p).......(er
139140 72 6f 72 20 22 43 61 6e 27 74 20 73 65 65 6b 2d 74 6f 20 70 6c 61 79 65 72 2c 20 6e 6f 74 68 69 ror."Can't.seek-to.player,.nothi
139160 6e 67 20 70 6c 61 79 69 6e 67 20 72 69 67 68 74 20 6e 6f 77 22 29 0a 20 20 20 20 28 6c 65 74 20 ng.playing.right.now").....(let.
139180 28 28 73 65 65 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 65 6d 6d 73 2d 70 6c 61 ((seek.(emms-player-get.emms-pla
1391a0 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 27 73 65 65 6b 2d 74 6f 29 29 29 0a 20 20 20 20 20 20 yer-playing-p.'seek-to))).......
1391c0 28 69 66 20 28 6e 6f 74 20 73 65 65 6b 29 0a 09 20 20 28 65 72 72 6f 72 20 22 50 6c 61 79 65 72 (if.(not.seek)....(error."Player
1391e0 20 64 6f 65 73 20 6e 6f 74 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 73 65 65 6b 2d 74 6f 22 29 0a .does.not.know.how.to.seek-to").
139200 09 28 66 75 6e 63 61 6c 6c 20 73 65 65 6b 20 73 65 63 6f 6e 64 73 29 0a 09 28 72 75 6e 2d 68 6f .(funcall.seek.seconds)..(run-ho
139220 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 74 69 6d 65 2d 73 ok-with-args.'emms-player-time-s
139240 65 74 2d 66 75 6e 63 74 69 6f 6e 73 20 73 65 63 6f 6e 64 73 29 29 29 29 29 0a 0a 28 70 72 6f 76 et-functions.seconds)))))..(prov
139260 69 64 65 20 27 65 6d 6d 73 29 0a 3b 3b 3b 20 65 6d 6d 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 ide.'emms).;;;.emms.el.ends.here
139280 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1392a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1392c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1392e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1393a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1393c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1393e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2e 65 6c 00 00 00 00 00 00 00 00 00 emms-24/emms-history.el.........
139420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
139480 30 30 31 31 33 32 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 30 00 20 30 00 00 00 0011320.00000000000.013660..0...
1394a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1394c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1394e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
139520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
139540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1395a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1395c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1395e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139600 3b 3b 3b 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2e 65 6c 20 2d 2d 20 73 61 76 65 20 61 6c 6c 20 ;;;.emms-history.el.--.save.all.
139620 70 6c 61 79 6c 69 73 74 73 20 77 68 65 6e 20 65 78 69 74 69 6e 67 20 65 6d 61 63 73 20 20 2d 2a playlists.when.exiting.emacs..-*
139640 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f -.lexical-binding:.t;.-*-..;;.Co
139660 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 pyright.(C).2006-2021..Free.Soft
139680 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 ware.Foundation,.Inc..;;.;;.Auth
1396a0 6f 72 3a 20 59 65 20 57 65 6e 62 69 6e 20 3c 77 65 6e 62 69 6e 79 65 40 31 36 33 2e 63 6f 6d 3e or:.Ye.Wenbin.<wenbinye@163.com>
1396c0 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a ..;;.This.file.is.part.of.EMMS..
1396e0 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 .;;.This.program.is.free.softwar
139700 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f e;.you.can.redistribute.it.and/o
139720 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f r.modify.;;.it.under.the.terms.o
139740 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
139760 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 .as.published.by.;;.the.Free.Sof
139780 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e tware.Foundation;.either.version
1397a0 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c .3,.or.(at.your.option).;;.any.l
1397c0 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d ater.version..;;.;;.This.program
1397e0 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 .is.distributed.in.the.hope.that
139800 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f .it.will.be.useful,.;;.but.WITHO
139820 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 UT.ANY.WARRANTY;.without.even.th
139840 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e e.implied.warranty.of.;;.MERCHAN
139860 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 TABILITY.or.FITNESS.FOR.A.PARTIC
139880 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 ULAR.PURPOSE...See.the.;;.GNU.Ge
1398a0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 neral.Public.License.for.more.de
1398c0 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 tails..;;.;;.You.should.have.rec
1398e0 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 eived.a.copy.of.the.GNU.General.
139900 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 Public.License.;;.along.with.thi
139920 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 s.program;.if.not,.write.to.the.
139940 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 Free.Software.;;.Foundation,.Inc
139960 2e 2c 20 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 64 67 65 2c 20 4d 41 20 30 .,.675.Mass.Ave,.Cambridge,.MA.0
139980 32 31 33 39 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 2139,.USA...;;;.Commentary:..;;.
1399a0 53 61 76 65 73 20 61 6c 6c 20 70 6c 61 79 6c 69 73 74 73 20 77 68 65 6e 20 79 6f 75 20 63 6c 6f Saves.all.playlists.when.you.clo
1399c0 73 65 20 65 6d 61 63 73 2e 20 20 57 68 65 6e 20 79 6f 75 20 73 74 61 72 74 20 69 74 20 75 70 20 se.emacs...When.you.start.it.up.
1399e0 61 67 61 69 6e 20 75 73 65 0a 3b 3b 20 4d 2d 78 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f again.use.;;.M-x.emms-history-lo
139a00 61 64 20 74 6f 20 72 65 73 74 6f 72 65 20 61 6c 6c 20 73 61 76 65 64 20 70 6c 61 79 6c 69 73 74 ad.to.restore.all.saved.playlist
139a20 73 2e 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 69 74 20 70 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 s...;;.To.use.it.put.the.followi
139a40 6e 67 20 69 6e 74 6f 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 73 3a 0a 3b 3b 0a 3b 3b 20 20 20 28 ng.into.your.~/.emacs:.;;.;;...(
139a60 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 29 0a 3b 3b 0a 3b 3b 20 49 66 20 require.'emms-history).;;.;;.If.
139a80 61 6c 6c 20 70 6c 61 79 6c 69 73 74 73 20 73 68 6f 75 6c 64 20 62 65 20 72 65 73 74 6f 72 65 64 all.playlists.should.be.restored
139aa0 20 6f 6e 20 73 74 61 72 74 75 70 20 61 64 64 20 74 68 69 73 2c 20 74 6f 6f 3a 0a 3b 3b 0a 3b 3b .on.startup.add.this,.too:.;;.;;
139ac0 20 20 20 28 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 6c 6f 61 64 29 0a 0a 3b 3b 3b 20 43 6f 64 65 ...(emms-history-load)..;;;.Code
139ae0 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d :..(require.'emms)..(defgroup.em
139b00 6d 73 2d 68 69 73 74 6f 72 79 20 6e 69 6c 0a 20 20 22 53 61 76 69 6e 67 20 61 6e 64 20 72 65 73 ms-history.nil..."Saving.and.res
139b20 74 6f 72 69 6e 67 20 61 6c 6c 20 70 6c 61 79 6c 69 73 74 73 20 77 68 65 6e 20 63 6c 6f 73 69 6e toring.all.playlists.when.closin
139b40 67 2f 72 65 73 74 61 72 74 69 6e 67 0a 45 6d 61 63 73 2e 22 0a 20 20 3a 70 72 65 66 69 78 20 22 g/restarting.Emacs."...:prefix."
139b60 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a emms-history-"...:group.'emms)..
139b80 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 20 28 63 6f (defcustom.emms-history-file.(co
139ba0 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d ncat.(file-name-as-directory.emm
139bc0 73 2d 64 69 72 65 63 74 6f 72 79 29 20 22 68 69 73 74 6f 72 79 22 29 0a 20 20 22 54 68 65 20 66 s-directory)."history")..."The.f
139be0 69 6c 65 20 74 6f 20 73 61 76 65 20 70 6c 61 79 6c 69 73 74 73 20 69 6e 2e 22 0a 20 20 3a 74 79 ile.to.save.playlists.in."...:ty
139c00 70 65 20 20 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 68 pe...'string)..(defcustom.emms-h
139c20 69 73 74 6f 72 79 2d 73 74 61 72 74 2d 70 6c 61 79 69 6e 67 20 6e 69 6c 0a 20 20 22 49 66 20 6e istory-start-playing.nil..."If.n
139c40 6f 6e 2d 6e 69 6c 20 65 6d 6d 73 20 73 74 61 72 74 73 20 70 6c 61 79 69 6e 67 20 74 68 65 20 63 on-nil.emms.starts.playing.the.c
139c60 75 72 72 65 6e 74 20 74 72 61 63 6b 20 61 66 74 65 72 0a 60 65 6d 6d 73 2d 68 69 73 74 6f 72 79 urrent.track.after.`emms-history
139c80 2d 6c 6f 61 64 27 20 77 61 73 20 69 6e 76 6f 6b 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 20 20 27 -load'.was.invoked."...:type...'
139ca0 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 68 69 73 74 6f 72 boolean)..(defcustom.emms-histor
139cc0 79 2d 66 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 75 74 66 2d 38 0a 20 20 22 43 y-file-coding-system.'utf-8..."C
139ce0 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 75 73 65 64 20 66 6f 72 20 73 61 76 69 6e 67 20 60 65 6d oding.system.used.for.saving.`em
139d00 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 63 6f 64 69 ms-history-file'."...:type.'codi
139d20 6e 67 2d 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d ng-system)..(defun.emms-history-
139d40 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 20 61 6c 6c 20 70 6c 61 79 6c 69 73 74 73 20 74 68 save.()..."Save.all.playlists.th
139d60 61 74 20 61 72 65 20 6f 70 65 6e 20 69 6e 20 74 68 69 73 20 45 6d 61 63 73 20 73 65 73 73 69 6f at.are.open.in.this.Emacs.sessio
139d80 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 n."...(interactive)...(when.(str
139da0 69 6e 67 70 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 29 0a 20 20 20 20 28 6c 65 74 ingp.emms-history-file).....(let
139dc0 20 28 28 6f 6c 64 62 75 66 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a .((oldbuf.emms-playlist-buffer).
139de0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 69 6e 74 20 77 69 74 68 20 6e 6f 20 6c 69 6d 69 74 ..........;;.print.with.no.limit
139e00 0a 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 2d 6c 65 6e 67 74 68 20 70 72 69 6e 74 2d 6c 65 ...........print-length.print-le
139e20 76 65 6c 0a 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 vel...........emms-playlist-buff
139e40 65 72 20 70 6c 61 79 6c 69 73 74 73 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 er.playlists).......(save-excurs
139e60 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 20 28 65 6d 6d 73 2d 70 ion.........(dolist.(buf.(emms-p
139e80 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 laylist-buffer-list))...........
139ea0 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e (set-buffer.buf)...........(when
139ec0 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 30 29 20 3b 20 6d 61 6b 65 20 73 75 72 65 .(>.(buffer-size).0).;.make.sure
139ee0 20 74 68 65 72 65 20 69 73 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 0a 20 20 .there.is.track.in.the.buffer...
139f00 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 ..........(setq.emms-playlist-bu
139f20 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 61 79 6c ffer.buf...................playl
139f40 69 73 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 ists...................(cons....
139f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 62 75 66 66 65 72 2d 6e 61 ................(list.(buffer-na
139f80 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 me)..........................(or
139fa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 ...........................(and.
139fc0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 20 20 emms-playlist-selected-marker...
139fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 .............................(ma
13a000 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 rker-position.emms-playlist-sele
13a020 63 74 65 64 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cted-marker))...................
13a040 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ........(point-min))............
13a060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a ..............(save-restriction.
13a080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 ...........................(wide
13a0a0 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e n)............................(n
13a0c0 72 65 76 65 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 reverse.........................
13a0e0 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 ....(emms-playlist-tracks-in-reg
13a100 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.(point-min).................
13a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13a140 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 ............(point-max))))).....
13a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 61 79 6c 69 73 74 73 29 29 29 29 0a 20 20 20 ...............playlists))))....
13a180 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 .....(with-temp-buffer..........
13a1a0 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 3b 3b 3b .(insert............(concat.";;;
13a1c0 20 65 6d 6d 73 20 68 69 73 74 6f 72 79 20 2d 2a 2d 20 6d 6f 64 65 3a 20 65 6d 61 63 73 2d 6c 69 .emms.history.-*-.mode:.emacs-li
13a1e0 73 70 3b 20 63 6f 64 69 6e 67 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sp;.coding:."...................
13a200 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 2d .(symbol-name.emms-history-file-
13a220 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 coding-system)..................
13a240 20 20 22 3b 20 2d 2a 2d 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 ..";.-*-\n"))...........(insert.
13a260 22 28 5c 6e 3b 3b 20 61 63 74 69 76 65 20 70 6c 61 79 6c 69 73 74 5c 6e 22 29 0a 20 20 20 20 20 "(\n;;.active.playlist\n")......
13a280 20 20 20 20 20 28 70 72 69 6e 31 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 6f 6c 64 62 75 66 29 .....(prin1.(buffer-name.oldbuf)
13a2a0 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e .(current-buffer))...........(in
13a2c0 73 65 72 74 20 22 5c 6e 3b 3b 20 70 6c 61 79 6c 69 73 74 73 3a 20 28 28 42 55 46 46 45 52 5f 4e sert."\n;;.playlists:.((BUFFER_N
13a2e0 41 4d 45 20 53 45 4c 45 43 54 5f 50 4f 53 49 54 49 4f 4e 20 54 52 41 43 4b 53 29 20 2e 2e 2e 29 AME.SELECT_POSITION.TRACKS)....)
13a300 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 20 70 6c 61 79 6c 69 73 74 73 20 \n")...........(prin1.playlists.
13a320 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 (current-buffer))...........(ins
13a340 65 72 74 20 22 5c 6e 3b 3b 20 70 6c 61 79 20 6d 65 74 68 6f 64 5c 6e 22 29 0a 20 20 20 20 20 20 ert."\n;;.play.method\n").......
13a360 20 20 20 20 28 70 72 69 6e 31 20 60 28 28 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 20 ....(prin1.`((emms-repeat-track.
13a380 2e 20 2c 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 ..,emms-repeat-track)...........
13a3a0 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 20 2e .........(emms-repeat-playlist..
13a3c0 20 2c 65 6d 6d 73 2d 72 65 70 65 61 74 2d 70 6c 61 79 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 .,emms-repeat-playlist))........
13a3e0 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 ..........(current-buffer)).....
13a400 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 ......(insert."\n)")...........(
13a420 77 72 69 74 65 2d 66 69 6c 65 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 29 29 29 29 write-file.emms-history-file))))
13a440 29 29 0a 0a 28 75 6e 6c 65 73 73 20 6e 6f 6e 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 28 61 64 ))..(unless.noninteractive...(ad
13a460 64 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 68 69 d-hook.'kill-emacs-hook.'emms-hi
13a480 73 74 6f 72 79 2d 73 61 76 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 68 69 73 74 6f 72 story-save))..(defun.emms-histor
13a4a0 79 2d 6c 6f 61 64 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 61 6c 6c 20 70 6c 61 79 6c 69 73 y-load.()..."Restore.all.playlis
13a4c0 74 73 20 69 6e 20 60 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 27 2e 22 0a 20 20 28 69 ts.in.`emms-history-file'."...(i
13a4e0 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 nteractive)...(when.(and.(string
13a500 70 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 p.emms-history-file)............
13a520 20 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 66 69 ..(file-exists-p.emms-history-fi
13a540 6c 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 68 69 73 74 6f 72 79 20 62 75 66 29 0a 20 20 20 20 le)).....(let.(history.buf).....
13a560 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 65 6d 6d ..(with-temp-buffer.........(emm
13a580 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 65 6d 6d 73 2d 68 69 73 74 s-insert-file-contents.emms-hist
13a5a0 6f 72 79 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 69 73 74 6f 72 79 20 ory-file).........(setq.history.
13a5c0 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 (read.(current-buffer)))........
13a5e0 20 28 64 6f 6c 69 73 74 20 28 70 6c 61 79 6c 69 73 74 20 28 63 61 64 72 20 68 69 73 74 6f 72 79 .(dolist.(playlist.(cadr.history
13a600 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 ))...........(with-current-buffe
13a620 72 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 77 20 28 63 61 72 20 70 6c 61 79 6c 69 r.(emms-playlist-new.(car.playli
13a640 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 st)).............(setq.emms-play
13a660 6c 69 73 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 list-buffer.(current-buffer))...
13a680 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 63 61 72 20 70 6c 61 79 ..........(if.(string=.(car.play
13a6a0 6c 69 73 74 29 20 28 63 61 72 20 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 list).(car.history))............
13a6c0 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 .....(setq.buf.(current-buffer))
13a6e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 ).............(mapc.'emms-playli
13a700 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st-insert-track.................
13a720 20 20 28 6e 74 68 20 32 20 70 6c 61 79 6c 69 73 74 29 29 0a 09 20 20 20 20 28 72 75 6e 2d 68 6f ..(nth.2.playlist))......(run-ho
13a740 6f 6b 73 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 75 72 63 65 2d 69 6e 73 65 72 74 oks.'emms-playlist-source-insert
13a760 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 ed-hook).............(ignore-err
13a780 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ors...............(emms-playlist
13a7a0 2d 73 65 6c 65 63 74 20 28 63 61 64 72 20 70 6c 61 79 6c 69 73 74 29 29 29 29 29 0a 20 20 20 20 -select.(cadr.playlist))))).....
13a7c0 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 62 ....(setq.emms-playlist-buffer.b
13a7e0 75 66 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6d 65 74 68 6f 64 20 28 6e 74 68 uf).........(dolist.(method.(nth
13a800 20 32 20 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 20 28 63 61 72 .2.history))...........(set.(car
13a820 20 6d 65 74 68 6f 64 29 20 28 63 64 72 20 6d 65 74 68 6f 64 29 29 29 0a 20 20 20 20 20 20 20 20 .method).(cdr.method))).........
13a840 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 (ignore-errors...........(when.e
13a860 6d 6d 73 2d 68 69 73 74 6f 72 79 2d 73 74 61 72 74 2d 70 6c 61 79 69 6e 67 0a 20 20 20 20 20 20 mms-history-start-playing.......
13a880 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 74 61 72 74 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 ......(emms-start)))))))..(provi
13a8a0 64 65 20 27 65 6d 6d 73 2d 68 69 73 74 6f 72 79 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 68 69 73 74 6f de.'emms-history).;;;.emms-histo
13a8c0 72 79 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ry.el.ends.here.................
13a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13aa00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2e 65 6c 00 00 00 00 00 00 00 emms-24/emms-mode-line.el.......
13aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13aa60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13aa80 30 30 31 33 30 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 30 33 36 00 20 30 00 00 00 0013045.00000000000.014036..0...
13aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ab00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13ab20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ac00 3b 3b 3b 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2e 65 6c 20 2d 2d 2d 20 4d 6f 64 65 2d 4c ;;;.emms-mode-line.el.---.Mode-L
13ac20 69 6e 65 20 61 6e 64 20 74 69 74 6c 65 62 61 72 20 69 6e 66 6f 73 20 66 6f 72 20 65 6d 6d 73 20 ine.and.titlebar.infos.for.emms.
13ac40 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b .-*-.lexical-binding:.t;.-*-..;;
13ac60 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 34 2d 32 30 32 35 20 20 46 72 65 65 20 53 .Copyright.(C).2004-2025..Free.S
13ac80 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 oftware.Foundation,.Inc...;;.Aut
13aca0 68 6f 72 3a 20 4d 61 72 69 6f 20 44 6f 6d 67 c3 b6 72 67 65 6e 20 3c 6b 61 6e 61 6c 64 72 61 63 hor:.Mario.Domg..rgen.<kanaldrac
13acc0 68 65 40 67 6d 78 2e 64 65 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6d 75 6c 74 69 6d 65 64 he@gmx.de>.;;.Keywords:.multimed
13ace0 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 ia..;;.This.file.is.part.of.EMMS
13ad00 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 ...;;.EMMS.is.free.software;.you
13ad20 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 .can.redistribute.it.and/or.modi
13ad40 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 fy.;;.it.under.the.terms.of.the.
13ad60 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 GNU.General.Public.License.as.pu
13ad80 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 blished.by.;;.the.Free.Software.
13ada0 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 Foundation;.either.version.3,.or
13adc0 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 .(at.your.option).;;.any.later.v
13ade0 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 ersion...;;.EMMS.is.distributed.
13ae00 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 in.the.hope.that.it.will.be.usef
13ae20 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b ul,.;;.but.WITHOUT.ANY.WARRANTY;
13ae40 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e .without.even.the.implied.warran
13ae60 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e ty.of.;;.MERCHANTABILITY.or.FITN
13ae80 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 ESS.FOR.A.PARTICULAR.PURPOSE...S
13aea0 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 ee.the.;;.GNU.General.Public.Lic
13aec0 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 ense.for.more.details...;;.You.s
13aee0 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 hould.have.received.a.copy.of.th
13af00 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
13af20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f along.with.EMMS;.see.the.file.CO
13af40 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 PYING...If.not,.write.to.the.;;.
13af60 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 Free.Software.Foundation,.Inc.,.
13af80 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 51.Franklin.St,.Fifth.Floor,.;;.
13afa0 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b Boston,.MA.02110-1301,.USA...;;;
13afc0 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 54 6f 20 61 63 74 69 76 61 74 65 20 70 .Commentary:.;;.;;.To.activate.p
13afe0 75 74 20 73 69 6d 70 6c 79 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 20 69 6e 20 ut.simply.the.following.line.in.
13b000 79 6f 75 72 20 45 6d 61 63 73 3a 0a 3b 3b 0a 3b 3b 20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d your.Emacs:.;;.;;...(require.'em
13b020 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 29 0a 3b 3b 20 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 ms-mode-line).;;...(emms-mode-li
13b040 6e 65 20 31 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 ne.1)..;;;.Code:..(require.'emms
13b060 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 20 6e 69 6c 0a )..(defgroup.emms-mode-line.nil.
13b080 20 20 22 53 68 6f 77 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 6d 6f 64 65 2d 6c .."Showing.information.on.mode-l
13b0a0 69 6e 65 20 61 6e 64 20 74 69 74 6c 65 62 61 72 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d ine.and.titlebar"...:prefix."emm
13b0c0 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 s-mode-line-"...:group.'emms)..(
13b0e0 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 2d 6c 69 defcustom.emms-mode-line-mode-li
13b100 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 70 6c 61 ne-function.#'emms-mode-line-pla
13b120 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 73 68 ylist-current..."Function.for.sh
13b140 6f 77 69 6e 67 20 69 6e 66 6f 73 20 69 6e 20 6d 6f 64 65 2d 6c 69 6e 65 20 6f 72 20 6e 69 6c 20 owing.infos.in.mode-line.or.nil.
13b160 69 66 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f if.don't.want.to."...:type.'(cho
13b180 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 73 68 6f 77 20 69 6e 66 6f ice.(const.:tag."Don't.show.info
13b1a0 20 6f 6e 20 6d 6f 64 65 2d 6c 69 6e 65 22 20 6e 69 6c 29 20 66 75 6e 63 74 69 6f 6e 29 29 0a 0a .on.mode-line".nil).function))..
13b1c0 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 74 69 74 6c 65 62 (defcustom.emms-mode-line-titleb
13b1e0 61 72 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 ar-function.nil..."Function.for.
13b200 73 68 6f 77 69 6e 67 20 69 6e 66 6f 73 20 69 6e 20 74 69 74 6c 65 62 61 72 20 6f 72 20 6e 69 6c showing.infos.in.titlebar.or.nil
13b220 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 .if.you.don't.want.to."...:type.
13b240 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 73 68 6f 77 '(choice.(const.:tag."Don't.show
13b260 20 69 6e 66 6f 20 6f 6e 20 74 69 74 6c 65 62 61 72 22 20 6e 69 6c 29 20 66 75 6e 63 74 69 6f 6e .info.on.titlebar".nil).function
13b280 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 6f ))..(defcustom.emms-mode-line-fo
13b2a0 72 6d 61 74 20 22 20 5b 20 25 73 20 5d 20 22 0a 20 20 22 53 74 72 69 6e 67 20 75 73 65 64 20 66 rmat.".[.%s.]."..."String.used.f
13b2c0 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 20 or.displaying.the.current.track.
13b2e0 69 6e 20 6d 6f 64 65 2d 6c 69 6e 65 20 61 6e 64 20 74 69 74 6c 65 62 61 72 2e 22 0a 20 20 3a 74 in.mode-line.and.titlebar."...:t
13b300 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 0a 0a 28 64 65 ype.'string...:group.'emms)..(de
13b320 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6c 65 6e 67 74 68 2d 6c 69 fcustom.emms-mode-line-length-li
13b340 6d 69 74 20 37 30 0a 20 20 22 4d 61 78 69 6d 75 6d 20 6c 65 6e 67 74 68 20 62 65 66 6f 72 65 20 mit.70..."Maximum.length.before.
13b360 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 74 72 75 6e 63 61 74 65 64 2e 22 track.information.is.truncated."
13b380 0a 20 20 3a 74 79 70 65 20 27 6e 61 74 6e 75 6d 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 29 ...:type.'natnum...:group.'emms)
13b3a0 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 70 6c 61 79 6c 69 73 ...(defun.emms-mode-line-playlis
13b3c0 74 2d 63 75 72 72 65 6e 74 20 28 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 63 75 72 72 65 t-current.()..."Format.the.curre
13b3e0 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 73 6f 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 ntly.playing.song."...(let.((tra
13b400 63 6b 2d 64 65 73 63 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f 6e 0a ck-desc.(emms-track-description.
13b420 09 09 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 .......(emms-playlist-current-se
13b440 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 65 6d 6d lected-track)))).....(format.emm
13b460 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 09 20 20 20 20 28 69 66 20 28 3c 20 28 s-mode-line-format......(if.(<.(
13b480 73 74 72 69 6e 67 2d 77 69 64 74 68 20 74 72 61 63 6b 2d 64 65 73 63 29 20 65 6d 6d 73 2d 6d 6f string-width.track-desc).emms-mo
13b4a0 64 65 2d 6c 69 6e 65 2d 6c 65 6e 67 74 68 2d 6c 69 6d 69 74 29 0a 09 09 74 72 61 63 6b 2d 64 65 de-line-length-limit)...track-de
13b4c0 73 63 0a 09 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 sc........(truncate-string-to-wi
13b4e0 64 74 68 20 74 72 61 63 6b 2d 64 65 73 63 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6c 65 dth.track-desc.emms-mode-line-le
13b500 6e 67 74 68 2d 6c 69 6d 69 74 20 30 20 6e 69 6c 20 74 29 29 29 29 29 0a 0a 0a 28 64 65 66 69 6e ngth-limit.0.nil.t)))))...(defin
13b520 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 65 6d 6d 73 2d e-obsolete-variable-alias.'emms-
13b540 6d 6f 64 65 2d 6c 69 6e 65 2d 61 63 74 69 76 65 2d 70 0a 20 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d mode-line-active-p...'emms-mode-
13b560 6c 69 6e 65 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 29 0a 28 64 65 66 76 61 72 20 65 6d line-mode."Apr.2021").(defvar.em
13b580 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 22 22 29 0a 0a 28 64 65 66 76 61 72 ms-mode-line-string."")..(defvar
13b5a0 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 6e 69 74 69 61 6c 2d 74 69 74 6c 65 62 61 72 .emms-mode-line-initial-titlebar
13b5c0 20 66 72 61 6d 65 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d .frame-title-format)..(defun.emm
13b5e0 73 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 61 72 67 29 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 s-mode-line.(arg)...(declare.(ob
13b600 73 6f 6c 65 74 65 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 22 41 70 72 20 solete.emms-mode-line-mode."Apr.
13b620 32 30 32 31 22 29 29 0a 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 28 2021"))...(emms-mode-line-mode.(
13b640 69 66 20 28 61 6e 64 20 61 72 67 20 28 3e 20 61 72 67 20 30 29 29 20 31 20 2d 31 29 29 29 0a 0a if.(and.arg.(>.arg.0)).1.-1)))..
13b660 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 ;;;###autoload.(define-minor-mod
13b680 65 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 0a 20 20 22 54 75 72 6e 20 6f 6e e.emms-mode-line-mode..."Turn.on
13b6a0 20 60 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 27 20 69 66 20 41 52 47 20 69 73 20 70 6f 73 69 .`emms-mode-line'.if.ARG.is.posi
13b6c0 74 69 76 65 2c 20 6f 66 66 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 3a 67 6c 6f 62 61 6c 20 tive,.off.otherwise."...:global.
13b6e0 74 0a 20 20 28 6f 72 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 20 28 73 65 74 71 t...(or.global-mode-string.(setq
13b700 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 20 27 28 22 22 29 29 29 0a 20 20 28 69 .global-mode-string.'("")))...(i
13b720 66 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 70 72 6f f.emms-mode-line-mode.......(pro
13b740 67 6e 0a 20 20 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 64 61 gn....(add-hook.'emms-track-upda
13b760 74 65 64 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 ted-functions.#'emms-mode-line-a
13b780 6c 74 65 72 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 lter)..(add-hook.'emms-player-fi
13b7a0 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 62 6c 61 nished-hook.#'emms-mode-line-bla
13b7c0 6e 6b 29 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 nk)..(add-hook.'emms-player-stop
13b7e0 70 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 62 6c 61 6e 6b 29 ped-hook.#'emms-mode-line-blank)
13b800 0a 09 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 ..(add-hook.'emms-player-started
13b820 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 29 0a 09 28 -hook.#'emms-mode-line-alter)..(
13b840 77 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 2d 6c 69 when.(and.emms-mode-line-mode-li
13b860 6e 65 2d 66 75 6e 63 74 69 6f 6e 0a 09 09 20 20 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 27 65 ne-function......(not.(member.'e
13b880 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 mms-mode-line-string.global-mode
13b8a0 2d 73 74 72 69 6e 67 29 29 29 0a 09 20 20 28 73 65 74 71 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d -string)))....(setq.global-mode-
13b8c0 73 74 72 69 6e 67 0a 09 09 28 61 70 70 65 6e 64 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 string...(append.global-mode-str
13b8e0 69 6e 67 0a 09 09 09 27 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 29 29 ing....'(emms-mode-line-string))
13b900 29 29 0a 09 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d 70 20 ))..(when.emms-player-playing-p.
13b920 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 29 29 29 0a 20 20 20 20 28 72 65 (emms-mode-line-alter))).....(re
13b940 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 64 2d 66 75 move-hook.'emms-track-updated-fu
13b960 6e 63 74 69 6f 6e 73 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 29 0a nctions.#'emms-mode-line-alter).
13b980 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 69 ....(remove-hook.'emms-player-fi
13b9a0 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 62 6c 61 nished-hook.#'emms-mode-line-bla
13b9c0 6e 6b 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 nk).....(remove-hook.'emms-playe
13b9e0 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d r-stopped-hook.#'emms-mode-line-
13ba00 62 6c 61 6e 6b 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c blank).....(remove-hook.'emms-pl
13ba20 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 20 23 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 ayer-started-hook.#'emms-mode-li
13ba40 6e 65 2d 61 6c 74 65 72 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 72 65 ne-alter).....(emms-mode-line-re
13ba60 73 74 6f 72 65 2d 74 69 74 6c 65 62 61 72 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c store-titlebar).....(emms-mode-l
13ba80 69 6e 65 2d 72 65 73 74 6f 72 65 2d 6d 6f 64 65 2d 6c 69 6e 65 29 29 29 0a 0a 3b 3b 3b 23 23 23 ine-restore-mode-line)))..;;;###
13baa0 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 65 autoload.(defun.emms-mode-line-e
13bac0 6e 61 62 6c 65 20 28 29 0a 20 20 22 54 75 72 6e 20 6f 6e 20 60 65 6d 6d 73 2d 6d 6f 64 65 2d 6c nable.()..."Turn.on.`emms-mode-l
13bae0 69 6e 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f 6c 65 74 65 20 65 6d 6d 73 ine'."...(declare.(obsolete.emms
13bb00 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 22 41 70 72 20 32 30 32 31 22 29 29 0a 20 20 28 -mode-line-mode."Apr.2021"))...(
13bb20 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d interactive)...(emms-mode-line-m
13bb40 6f 64 65 20 31 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 ode.1))..;;;###autoload.(defun.e
13bb60 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 64 69 73 61 62 6c 65 20 28 29 0a 20 20 22 54 75 72 6e mms-mode-line-disable.()..."Turn
13bb80 20 6f 66 66 20 60 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 .off.`emms-mode-line'."...(inter
13bba0 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 2d active)...(emms-mode-line-mode.-
13bbc0 31 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 1))..;;;###autoload.(defun.emms-
13bbe0 6d 6f 64 65 2d 6c 69 6e 65 2d 74 6f 67 67 6c 65 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 60 65 mode-line-toggle.()..."Toggle.`e
13bc00 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 mms-mode-line'."...(declare.(obs
13bc20 6f 6c 65 74 65 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 22 41 70 72 20 32 olete.emms-mode-line-mode."Apr.2
13bc40 30 32 31 22 29 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 021"))...(interactive)...(emms-m
13bc60 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 20 27 74 6f 67 67 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 ode-line-mode.'toggle))..(defun.
13bc80 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 emms-mode-line-alter.(&optional.
13bca0 74 72 61 63 6b 29 0a 20 20 22 41 6c 74 65 72 20 6d 6f 64 65 2d 6c 69 6e 65 2f 74 69 74 6c 65 62 track)..."Alter.mode-line/titleb
13bcc0 61 72 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 20 54 52 41 43 4b 20 69 73 20 75 73 65 64 20 74 6f 20 62 ar...Optional.TRACK.is.used.to.b
13bce0 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 0a 60 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 e.compatible.with.`emms-track-up
13bd00 64 61 74 65 64 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 20 49 74 27 73 20 73 69 6d 70 6c 79 20 69 67 dated-functions'..It's.simply.ig
13bd20 6e 6f 72 65 64 20 63 75 72 72 65 6e 74 6c 79 2e 22 0a 20 20 28 69 67 6e 6f 72 65 20 74 72 61 63 nored.currently."...(ignore.trac
13bd40 6b 29 0a 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 2d 6d 6f 64 65 2d k)...(emms-mode-line-alter-mode-
13bd60 6c 69 6e 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 2d 74 69 line)...(emms-mode-line-alter-ti
13bd80 74 6c 65 62 61 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d tlebar))..(defun.emms-mode-line-
13bda0 61 6c 74 65 72 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 alter-mode-line.()..."Update.the
13bdc0 20 6d 6f 64 65 2d 6c 69 6e 65 20 77 69 74 68 20 73 6f 6e 67 20 69 6e 66 6f 2e 22 0a 20 20 28 77 .mode-line.with.song.info."...(w
13bde0 68 65 6e 20 28 61 6e 64 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 2d 6c 69 6e hen.(and.emms-mode-line-mode-lin
13be00 65 2d 66 75 6e 63 74 69 6f 6e 0a 09 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 e-function.......emms-player-pla
13be20 79 69 6e 67 2d 70 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 ying-p).....(setq.emms-mode-line
13be40 2d 73 74 72 69 6e 67 0a 09 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 -string....(funcall.emms-mode-li
13be60 6e 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 28 66 6f 72 ne-mode-line-function)).....(for
13be80 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ce-mode-line-update)))..(defun.e
13bea0 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 61 6c 74 65 72 2d 74 69 74 6c 65 62 61 72 20 28 29 0a mms-mode-line-alter-titlebar.().
13bec0 20 20 22 55 70 64 61 74 65 20 74 68 65 20 74 69 74 6c 65 62 61 72 20 77 69 74 68 20 73 6f 6e 67 .."Update.the.titlebar.with.song
13bee0 20 69 6e 66 6f 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 74 .info."...(when.emms-mode-line-t
13bf00 69 74 6c 65 62 61 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 28 73 65 74 71 20 66 72 61 6d 65 itlebar-function.....(setq.frame
13bf20 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 0a 09 20 20 28 6c 69 73 74 20 22 22 20 65 6d 6d 73 2d 6d -title-format....(list."".emms-m
13bf40 6f 64 65 2d 6c 69 6e 65 2d 69 6e 69 74 69 61 6c 2d 74 69 74 6c 65 62 61 72 20 28 66 75 6e 63 61 ode-line-initial-titlebar.(funca
13bf60 6c 6c 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 74 69 74 6c 65 62 61 72 2d 66 75 6e 63 74 ll.emms-mode-line-titlebar-funct
13bf80 69 6f 6e 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 ion)))))...(defun.emms-mode-line
13bfa0 2d 62 6c 61 6e 6b 20 28 29 0a 20 20 22 42 6c 61 6e 6b 20 6d 6f 64 65 2d 6c 69 6e 65 20 61 6e 64 -blank.()..."Blank.mode-line.and
13bfc0 20 74 69 74 6c 65 62 61 72 20 62 75 74 20 6e 6f 74 20 71 75 69 74 20 60 65 6d 6d 73 2d 6d 6f 64 .titlebar.but.not.quit.`emms-mod
13bfe0 65 2d 6c 69 6e 65 27 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 e-line'."...(setq.emms-mode-line
13c000 2d 73 74 72 69 6e 67 20 6e 69 6c 29 0a 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d -string.nil)...(force-mode-line-
13c020 75 70 64 61 74 65 29 0a 20 20 28 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 72 65 73 74 6f 72 update)...(emms-mode-line-restor
13c040 65 2d 74 69 74 6c 65 62 61 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c e-titlebar))..(defun.emms-mode-l
13c060 69 6e 65 2d 72 65 73 74 6f 72 65 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 52 65 73 74 ine-restore-mode-line.()..."Rest
13c080 6f 72 65 20 74 68 65 20 6d 6f 64 65 2d 6c 69 6e 65 2e 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 ore.the.mode-line."...(when.emms
13c0a0 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 -mode-line-mode-line-function...
13c0c0 20 20 28 73 65 74 71 20 67 6c 6f 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 0a 09 20 20 28 72 ..(setq.global-mode-string....(r
13c0e0 65 6d 6f 76 65 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 73 74 72 69 6e 67 20 67 6c 6f emove.'emms-mode-line-string.glo
13c100 62 61 6c 2d 6d 6f 64 65 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 28 66 6f 72 63 65 2d 6d 6f 64 bal-mode-string)).....(force-mod
13c120 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6d 6f e-line-update)))..(defun.emms-mo
13c140 64 65 2d 6c 69 6e 65 2d 72 65 73 74 6f 72 65 2d 74 69 74 6c 65 62 61 72 20 28 29 0a 20 20 22 52 de-line-restore-titlebar.()..."R
13c160 65 73 74 6f 72 65 20 74 68 65 20 6d 6f 64 65 2d 6c 69 6e 65 2e 22 0a 20 20 28 77 68 65 6e 20 65 estore.the.mode-line."...(when.e
13c180 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 74 69 74 6c 65 62 61 72 2d 66 75 6e 63 74 69 6f 6e 0a mms-mode-line-titlebar-function.
13c1a0 20 20 20 20 28 73 65 74 71 20 66 72 61 6d 65 2d 74 69 74 6c 65 2d 66 6f 72 6d 61 74 0a 09 20 20 ....(setq.frame-title-format....
13c1c0 28 6c 69 73 74 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 69 6e 69 74 69 61 6c 2d 74 69 74 (list.emms-mode-line-initial-tit
13c1e0 6c 65 62 61 72 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6d 6f 64 65 2d 6c lebar))))..(provide.'emms-mode-l
13c200 69 6e 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2e 65 6c 20 65 6e 64 73 20 ine).;;;.emms-mode-line.el.ends.
13c220 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 here............................
13c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 00 00 00 00 00 emms-24/emms-source-file.el.....
13c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13c480 30 30 32 37 31 35 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 30 37 00 20 30 00 00 00 0027153.00000000000.014407..0...
13c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13c520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c600 3b 3b 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 20 2d 2d 2d 20 45 4d 4d 53 ;;;.emms-source-file.el.---.EMMS
13c620 20 73 6f 75 72 63 65 73 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 65 73 79 73 74 65 6d 2e 20 20 2d .sources.from.the.filesystem...-
13c640 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 *-.lexical-binding:.t;.-*-..;;.C
13c660 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 opyright.(C).2003-2021..Free.Sof
13c680 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f tware.Foundation,.Inc...;;.Autho
13c6a0 72 3a 20 4a 6f 72 67 65 6e 20 53 63 68 c3 a4 66 65 72 20 3c 66 6f 72 63 65 72 40 66 6f 72 63 69 r:.Jorgen.Sch..fer.<forcer@forci
13c6c0 78 2e 63 78 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6d 70 33 2c 20 6d 70 x.cx>.;;.Keywords:.emms,.mp3,.mp
13c6e0 65 67 2c 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 eg,.multimedia..;;.This.file.is.
13c700 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 part.of.EMMS...;;.EMMS.is.free.s
13c720 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
13c740 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 .and/or.modify.;;.it.under.the.t
13c760 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
13c780 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 icense.as.published.by.;;.the.Fr
13c7a0 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 ee.Software.Foundation;.either.v
13c7c0 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b ersion.3,.or.(at.your.option).;;
13c7e0 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 .any.later.version..;;.;;.EMMS.i
13c800 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 s.distributed.in.the.hope.that.i
13c820 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 t.will.be.useful,.;;.but.WITHOUT
13c840 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 .ANY.WARRANTY;.without.even.the.
13c860 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 implied.warranty.of.;;.MERCHANTA
13c880 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c BILITY.or.FITNESS.FOR.A.PARTICUL
13c8a0 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 AR.PURPOSE...See.the.;;.GNU.Gene
13c8c0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 ral.Public.License.for.more.deta
13c8e0 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 ils..;;.;;.You.should.have.recei
13c900 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 ved.a.copy.of.the.GNU.General.Pu
13c920 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b blic.License.;;.along.with.EMMS;
13c940 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 .see.the.file.COPYING...If.not,.
13c960 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f write.to.the.;;.Free.Software.Fo
13c980 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 undation,.Inc.,.51.Franklin.St,.
13c9a0 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 Fifth.Floor,.;;.Boston,.MA.02110
13c9c0 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b -1301,.USA...;;;.Commentary:..;;
13c9e0 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61 20 74 72 61 63 6b 20 73 6f 75 72 .This.file.contains.a.track.sour
13ca00 63 65 20 66 6f 72 20 45 4d 4d 53 20 74 68 61 74 20 69 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 ce.for.EMMS.that.is.based.on.the
13ca20 0a 3b 3b 20 66 69 6c 65 20 73 79 73 74 65 6d 2e 20 59 6f 75 20 63 61 6e 20 72 65 74 72 69 65 76 .;;.file.system..You.can.retriev
13ca40 65 20 73 69 6e 67 6c 65 20 66 69 6c 65 73 20 6f 72 20 77 68 6f 6c 65 20 64 69 72 65 63 74 6f 72 e.single.files.or.whole.director
13ca60 69 65 73 2e 0a 3b 3b 20 41 6c 73 6f 2c 20 74 68 69 73 20 66 69 6c 65 20 6f 66 66 65 72 73 20 74 ies..;;.Also,.this.file.offers.t
13ca80 68 65 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 70 6c 61 79 20 66 72 6f 6d 20 74 68 65 73 65 20 73 he.commands.to.play.from.these.s
13caa0 6f 75 72 63 65 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 56 65 72 73 69 6f 6e 20 63 ources...;;;.Code:..;;.Version.c
13cac0 6f 6e 74 72 6f 6c 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d ontrol.(defvar.emms-source-file-
13cae0 76 65 72 73 69 6f 6e 20 22 30 2e 32 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 33 30 20 24 22 0a version."0.2.$Revision:.1.30.$".
13cb00 20 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c 20 76 65 72 73 69 6f 6e 20 73 .."emms-source-file.el.version.s
13cb20 74 72 69 6e 67 22 29 0a 3b 3b 20 24 49 64 3a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 tring").;;.$Id:.emms-source-file
13cb40 2e 65 6c 2c 76 20 31 2e 33 30 20 32 30 30 35 2f 30 38 2f 31 31 20 30 36 3a 31 36 3a 31 35 20 79 .el,v.1.30.2005/08/11.06:16:15.y
13cb60 6f 6e 69 72 61 62 6b 69 6e 20 45 78 70 20 24 0a 0a 3b 3b 3b 20 55 73 65 72 20 43 75 73 74 6f 6d onirabkin.Exp.$..;;;.User.Custom
13cb80 69 7a 61 74 69 6f 6e 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 ization..(require.'emms).(requir
13cba0 65 20 27 64 69 72 65 64 29 0a 28 72 65 71 75 69 72 65 20 27 6c 6f 63 61 74 65 29 0a 28 65 76 61 e.'dired).(require.'locate).(eva
13cbc0 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 l-when-compile...(condition-case
13cbe0 20 6e 69 6c 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 6c 6f 63 61 74 65 29 0a 20 20 20 .nil.......(require.'locate)....
13cc00 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 0a 28 72 65 71 75 69 72 65 20 27 64 69 72 65 64 29 0a .(error.nil))).(require.'dired).
13cc20 28 72 65 71 75 69 72 65 20 27 74 68 69 6e 67 61 74 70 74 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 (require.'thingatpt)..(defgroup.
13cc40 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 2a 53 6f 75 72 63 65 73 emms-source-file.nil..."*Sources
13cc60 20 66 6f 72 20 45 4d 4d 53 20 74 68 61 74 20 75 73 65 20 74 68 65 20 66 69 6c 65 20 73 79 73 74 .for.EMMS.that.use.the.file.syst
13cc80 65 6d 2e 22 0a 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 em."...:prefix."emms-source-file
13cca0 2d 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 29 0a 0a 28 64 65 66 63 -"...:group.'emms-source)..(defc
13ccc0 75 73 74 6f 6d 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 ustom.emms-source-file-default-d
13cce0 69 72 65 63 74 6f 72 79 20 6e 69 6c 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 64 69 72 65 irectory.nil..."The.default.dire
13cd00 63 74 6f 72 79 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 22 0a ctory.to.look.for.media.files.".
13cd20 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f ..:type.'(choice.(const.:tag."No
13cd40 6e 65 22 20 6e 69 6c 29 20 66 69 6c 65 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 ne".nil).file))..(defcustom.emms
13cd60 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 67 6e 75 2d 66 69 6e 64 20 22 66 69 6e 64 22 0a 20 20 22 -source-file-gnu-find."find"..."
13cd80 54 68 65 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 20 66 6f 72 20 47 4e 55 20 66 69 6e 64 2e 22 0a The.program.name.for.GNU.find.".
13cda0 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d ..:type.'string)..(defcustom.emm
13cdc0 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 75 6e s-source-file-directory-tree-fun
13cde0 63 74 69 6f 6e 0a 20 20 28 69 66 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 65 6d 6d ction...(if.(executable-find.emm
13ce00 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 67 6e 75 2d 66 69 6e 64 29 0a 20 20 20 20 20 20 27 65 s-source-file-gnu-find).......'e
13ce20 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 mms-source-file-directory-tree-f
13ce40 69 6e 64 0a 20 20 20 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 ind.....'emms-source-file-direct
13ce60 6f 72 79 2d 74 72 65 65 2d 69 6e 74 65 72 6e 61 6c 29 0a 20 20 22 2a 41 20 66 75 6e 63 74 69 6f ory-tree-internal)..."*A.functio
13ce80 6e 20 74 6f 20 63 61 6c 6c 20 74 68 61 74 20 73 65 61 72 63 68 65 73 20 69 6e 20 61 20 67 69 76 n.to.call.that.searches.in.a.giv
13cea0 65 6e 20 64 69 72 65 63 74 6f 72 79 20 61 6c 6c 20 66 69 6c 65 73 0a 74 68 61 74 20 6d 61 74 63 en.directory.all.files.that.matc
13cec0 68 20 61 20 67 69 76 65 6e 20 72 65 67 65 78 2e 20 44 49 52 20 61 6e 64 20 52 45 47 45 58 20 61 h.a.given.regex..DIR.and.REGEX.a
13cee0 72 65 20 74 68 65 20 6f 6e 6c 79 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 0a 74 6f 20 re.the.only.arguments.passed.to.
13cf00 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 59 6f 75 20 68 61 76 65 20 74 77 6f 20 62 75 69 6c this.function..You.have.two.buil
13cf20 64 2d 69 6e 20 6f 70 74 69 6f 6e 73 3a 0a 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d d-in.options:.`emms-source-file-
13cf40 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 69 6e 74 65 72 6e 61 6c 27 20 77 69 6c 6c 20 77 6f directory-tree-internal'.will.wo
13cf60 72 6b 20 61 6c 77 61 79 73 2c 20 62 75 74 20 6d 69 67 68 74 0a 62 65 20 73 6c 6f 77 2e 0a 60 65 rk.always,.but.might.be.slow..`e
13cf80 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 mms-source-file-directory-tree-f
13cfa0 69 6e 64 27 20 77 69 6c 6c 20 77 6f 72 6b 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 68 61 76 65 20 ind'.will.work.only.if.you.have.
13cfc0 47 4e 55 0a 66 69 6e 64 2c 20 62 75 74 20 69 74 27 73 20 66 61 73 74 65 72 2e 22 0a 20 20 3a 74 GNU.find,.but.it's.faster."...:t
13cfe0 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 6f 70 74 69 6f 6e 73 20 27 28 65 6d 6d 73 2d ype.'function...:options.'(emms-
13d000 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 69 6e 74 65 72 source-file-directory-tree-inter
13d020 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c nal..............emms-source-fil
13d040 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 69 6e 64 29 29 0a 0a 28 64 65 66 63 75 73 e-directory-tree-find))..(defcus
13d060 74 6f 6d 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 65 2d 72 65 67 tom.emms-source-file-exclude-reg
13d080 65 78 70 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 60 5c 5c 28 23 2e 2a 23 5c 5c 7c 2e 2a 2c 76 exp...(concat."\\`\\(#.*#\\|.*,v
13d0a0 5c 5c 7c 2e 2a 7e 5c 5c 7c 5c 5c 2e 5c 5c 2e 3f 5c 5c 7c 5c 5c 2e 23 2e 2a 5c 5c 7c 2c 2e 2a 5c \\|.*~\\|\\.\\.?\\|\\.#.*\\|,.*\
13d0c0 5c 29 5c 5c 27 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 22 2f 5c 5c 28 43 56 53 5c 5c 7c 52 \)\\'\\|"..........."/\\(CVS\\|R
13d0e0 43 53 5c 5c 7c 5c 5c 2e 61 72 63 68 2d 69 64 73 5c 5c 7c 7b 61 72 63 68 7d 5c 5c 7c 2c 2e 2a 5c CS\\|\\.arch-ids\\|{arch}\\|,.*\
13d100 5c 7c 5c 5c 2e 73 76 6e 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 22 5f 64 61 72 63 73 5c 5c \|\\.svn\\|"..........."_darcs\\
13d120 29 5c 5c 28 2f 5c 5c 7c 5c 5c 27 5c 5c 29 22 29 0a 20 20 22 41 20 72 65 67 65 78 70 20 6d 61 74 )\\(/\\|\\'\\)")..."A.regexp.mat
13d140 63 68 69 6e 67 20 66 69 6c 65 73 20 74 6f 20 62 65 20 69 67 6e 6f 72 65 64 20 77 68 65 6e 20 61 ching.files.to.be.ignored.when.a
13d160 64 64 69 6e 67 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 0a 59 6f 75 20 73 68 6f 75 6c 64 20 73 dding.directories...You.should.s
13d180 65 74 20 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 74 6f 20 6e 69 6c 20 62 65 66 6f 72 et.case-fold-search.to.nil.befor
13d1a0 65 20 75 73 69 6e 67 20 74 68 69 73 20 72 65 67 65 78 70 0a 69 6e 20 63 6f 64 65 2e 22 0a 20 20 e.using.this.regexp.in.code."...
13d1c0 3a 74 79 70 65 20 27 72 65 67 65 78 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d :type.'regexp)..(defcustom.emms-
13d1e0 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 68 69 6e 74 2d 70 20 74 0a 20 source-file-directory-hint-p.t..
13d200 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 67 75 65 73 73 20 74 68 65 20 64 69 72 65 63 74 ."When.non-nil,.guess.the.direct
13d220 6f 72 79 20 62 61 73 65 64 20 6f 6e 20 61 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2e 22 0a ory.based.on.a.track.at.point.".
13d240 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 3b 3b 20 54 68 65 20 60 72 65 61 64 2d ..:type.'boolean)..;;.The.`read-
13d260 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 27 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 directory-name'.function.is.not.
13d280 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 45 6d 61 63 73 20 32 31 2e 0a 28 64 65 66 61 6c 69 61 73 available.in.Emacs.21..(defalias
13d2a0 20 27 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 0a 20 20 28 69 66 .'emms-read-directory-name...(if
13d2c0 20 28 66 62 6f 75 6e 64 70 20 27 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 29 0a .(fboundp.'read-directory-name).
13d2e0 20 20 20 20 20 20 23 27 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 0a 20 20 20 20 ......#'read-directory-name.....
13d300 23 27 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d #'read-file-name))..(defun.emms-
13d320 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 68 69 6e 74 20 28 29 0a 20 20 source-file-directory-hint.()...
13d340 28 69 66 20 28 61 6e 64 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 (if.(and.emms-source-file-direct
13d360 6f 72 79 2d 68 69 6e 74 2d 70 0a 09 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 ory-hint-p.....emms-playlist-buf
13d380 66 65 72 2d 70 0a 09 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 fer-p.....(emms-playlist-track-a
13d3a0 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 t)).......(let.((name.(emms-trac
13d3c0 6b 2d 67 65 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 20 27 k-get.(emms-playlist-track-at).'
13d3e0 6e 61 6d 65 29 29 0a 09 20 20 20 20 28 74 79 70 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 name))......(type.(emms-track-ge
13d400 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 29 20 27 74 79 70 65 t.(emms-playlist-track-at).'type
13d420 29 29 29 0a 09 28 77 68 65 6e 20 28 65 71 20 74 79 70 65 20 27 66 69 6c 65 29 0a 09 20 20 28 66 )))..(when.(eq.type.'file)....(f
13d440 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 65 ile-name-directory.name))).....e
13d460 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 mms-source-file-default-director
13d480 79 29 29 0a 0a 0a 3b 3b 3b 20 53 6f 75 72 63 65 73 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 y))...;;;.Sources..;;;###autoloa
13d4a0 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6c 65 20 22 65 6d 6d d.(autoload.'emms-play-file."emm
13d4c0 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f s-source-file".nil.t).;;;###auto
13d4e0 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 66 69 6c 65 20 22 65 load.(autoload.'emms-add-file."e
13d500 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d mms-source-file".nil.t).(define-
13d520 65 6d 6d 73 2d 73 6f 75 72 63 65 20 66 69 6c 65 20 28 66 69 6c 65 29 0a 20 20 22 41 6e 20 45 4d emms-source.file.(file)..."An.EM
13d540 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 2d 20 65 69 MS.source.for.a.single.file.-.ei
13d560 74 68 65 72 20 46 49 4c 45 2c 20 6f 72 20 71 75 65 72 69 65 64 20 66 72 6f 6d 20 74 68 65 0a 75 ther.FILE,.or.queried.from.the.u
13d580 73 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 64 ser."...(interactive.(list.(read
13d5a0 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 50 6c 61 79 20 66 69 6c 65 3a 20 22 0a 09 09 09 09 20 20 20 -file-name."Play.file:."........
13d5c0 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 68 69 ..(emms-source-file-directory-hi
13d5e0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt).............................
13d600 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c .........emms-source-file-defaul
13d620 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-directory.....................
13d640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 69 66 20 28 66 69 6c .................t)))...(if.(fil
13d660 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d e-directory-p.file).......(emms-
13d680 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 0a 20 20 20 20 28 65 6d 6d 73 source-directory.file).....(emms
13d6a0 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 28 65 6d 6d -playlist-insert-track......(emm
13d6c0 73 2d 74 72 61 63 6b 20 27 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 s-track.'file.(expand-file-name.
13d6e0 66 69 6c 65 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c file)))))..;;;###autoload.(autol
13d700 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 20 22 65 6d 6d 73 2d 73 oad.'emms-play-directory."emms-s
13d720 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 ource-file".nil.t).;;;###autoloa
13d740 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 d.(autoload.'emms-add-directory.
13d760 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e "emms-source-file".nil.t).(defin
13d780 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 29 0a 20 20 e-emms-source.directory.(dir)...
13d7a0 22 41 6e 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 66 6f 72 20 61 20 77 68 6f 6c 65 20 64 69 72 65 "An.EMMS.source.for.a.whole.dire
13d7c0 63 74 6f 72 79 20 74 72 65 65 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 71 75 65 72 ctory.tree.-.either.DIR,.or.quer
13d7e0 69 65 64 0a 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 ied.from.the.user."...(interacti
13d800 76 65 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 ve.(list.................(emms-r
13d820 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 50 6c 61 79 20 64 69 72 65 63 74 6f ead-directory-name."Play.directo
13d840 72 79 3a 20 22 0a 09 09 09 09 09 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 ry:."........(emms-source-file-d
13d860 69 72 65 63 74 6f 72 79 2d 68 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 irectory-hint)..................
13d880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f .........................emms-so
13d8a0 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 urce-file-default-directory.....
13d8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13d8e0 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 ......t)))...(mapc.(lambda.(file
13d900 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6c 65 74 20 28 28 63 )...........(unless.(or.(let.((c
13d920 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 ase-fold-search.nil))...........
13d940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 65 6d 6d 73 ..............(string-match.emms
13d960 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 65 2d 72 65 67 65 78 70 20 66 69 6c 65 -source-file-exclude-regexp.file
13d980 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 64 )).......................(file-d
13d9a0 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 irectory-p.file)).............(e
13d9c0 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 mms-playlist-insert-track.......
13d9e0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 66 69 6c 65 20 28 65 78 70 61 6e 64 .......(emms-track.'file.(expand
13da00 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 -file-name.file))))).........(di
13da20 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 72 20 74 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 rectory-files.dir.t.(emms-source
13da40 2d 66 69 6c 65 2d 72 65 67 65 78 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 -file-regex))))..;;;###autoload.
13da60 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 63 74 6f 72 79 2d 74 (autoload.'emms-play-directory-t
13da80 72 65 65 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 3b 3b ree."emms-source-file".nil.t).;;
13daa0 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 ;###autoload.(autoload.'emms-add
13dac0 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c -directory-tree."emms-source-fil
13dae0 65 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 64 69 e".nil.t).(define-emms-source.di
13db00 72 65 63 74 6f 72 79 2d 74 72 65 65 20 28 64 69 72 29 0a 20 20 22 41 6e 20 45 4d 4d 53 20 73 6f rectory-tree.(dir)..."An.EMMS.so
13db20 75 72 63 65 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 urce.for.multiple.directory.tree
13db40 73 20 2d 20 65 69 74 68 65 72 20 44 49 52 2c 20 6f 72 20 74 68 65 0a 76 61 6c 75 65 20 6f 66 20 s.-.either.DIR,.or.the.value.of.
13db60 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 `emms-source-file-default-direct
13db80 6f 72 79 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 0a 20 20 20 20 ory'."...(interactive.(list.....
13dba0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 ............(emms-read-directory
13dbc0 2d 6e 61 6d 65 20 22 50 6c 61 79 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 3a 20 22 0a 09 09 -name."Play.directory.tree:."...
13dbe0 09 09 09 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 .....(emms-source-file-directory
13dc00 2d 68 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -hint)..........................
13dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c .................emms-source-fil
13dc40 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-default-directory.............
13dc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 ..............................t)
13dc80 29 29 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 ))...(let.((files.(emms-source-f
13dca0 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d ile-directory-tree.(expand-file-
13dcc0 6e 61 6d 65 20 64 69 72 29 0a 09 09 09 09 09 09 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c name.dir).......(emms-source-fil
13dce0 65 2d 72 65 67 65 78 29 29 29 0a 09 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 e-regex)))..(case-fold-search.ni
13dd00 6c 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 65 6e 73 75 72 65 2d 70 6c l)).....(emms-playlist-ensure-pl
13dd20 61 79 6c 69 73 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 aylist-buffer).....(mapc.(lambda
13dd40 20 28 66 69 6c 65 29 0a 09 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 6d 61 74 .(file)......(unless.(string-mat
13dd60 63 68 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 65 2d 72 65 67 65 ch.emms-source-file-exclude-rege
13dd80 78 70 20 66 69 6c 65 29 0a 09 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c xp.file)........(funcall.emms-pl
13dda0 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 20 0a 09 09 aylist-insert-track-function....
13ddc0 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 66 69 6c 65 20 66 69 6c 65 29 29 29 .......(emms-track.'file.file)))
13dde0 29 0a 09 20 20 66 69 6c 65 73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 )....files)))..;;;###autoload.(a
13de00 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 66 69 6e 64 20 22 65 6d 6d 73 2d 73 6f utoload.'emms-play-find."emms-so
13de20 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 urce-file".nil.t).;;;###autoload
13de40 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 66 69 6e 64 20 22 65 6d 6d 73 2d .(autoload.'emms-add-find."emms-
13de60 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 source-file".nil.t).(define-emms
13de80 2d 73 6f 75 72 63 65 20 66 69 6e 64 20 28 64 69 72 20 72 65 67 65 78 29 0a 20 20 22 41 6e 20 45 -source.find.(dir.regex)..."An.E
13dea0 4d 4d 53 20 73 6f 75 72 63 65 20 74 68 61 74 20 77 69 6c 6c 20 66 69 6e 64 20 66 69 6c 65 73 20 MMS.source.that.will.find.files.
13dec0 69 6e 20 44 49 52 20 6f 72 0a 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 in.DIR.or.`emms-source-file-defa
13dee0 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 27 20 74 68 61 74 20 6d 61 74 63 68 20 52 45 47 45 58 2e ult-directory'.that.match.REGEX.
13df00 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 "...(interactive.(list..........
13df20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 .......(emms-read-directory-name
13df40 20 22 46 69 6e 64 20 69 6e 20 64 69 72 65 63 74 6f 72 79 3a 20 22 0a 20 20 20 20 20 20 20 20 20 ."Find.in.directory:."..........
13df60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13df80 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 .emms-source-file-default-direct
13dfa0 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ory.............................
13dfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 ..............emms-source-file-d
13dfe0 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efault-directory................
13e000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 ...........................t)...
13e020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 ..............(read-from-minibuf
13e040 66 65 72 20 22 46 69 6e 64 20 66 69 6c 65 73 20 6d 61 74 63 68 69 6e 67 3a 20 22 29 29 29 0a 20 fer."Find.files.matching:.")))..
13e060 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 .(mapc.(lambda.(file)...........
13e080 28 75 6e 6c 65 73 73 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 (unless.(let.((case-fold-search.
13e0a0 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e nil)).....................(strin
13e0c0 67 2d 6d 61 74 63 68 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 65 g-match.emms-source-file-exclude
13e0e0 2d 72 65 67 65 78 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 -regexp.file)).............(emms
13e100 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 -playlist-insert-track..........
13e120 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 66 69 6c 65 20 66 69 6c 65 29 29 29 29 0a 20 ....(emms-track.'file.file))))..
13e140 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f .......(emms-source-file-directo
13e160 72 79 2d 74 72 65 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 29 20 72 ry-tree.(expand-file-name.dir).r
13e180 65 67 65 78 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 egex)))..;;;###autoload.(autoloa
13e1a0 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 64 69 72 65 64 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d d.'emms-play-dired."emms-source-
13e1c0 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 file".nil.t).;;;###autoload.(aut
13e1e0 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 64 69 72 65 64 20 22 65 6d 6d 73 2d 73 6f 75 72 oload.'emms-add-dired."emms-sour
13e200 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 ce-file".nil.t).(define-emms-sou
13e220 72 63 65 20 64 69 72 65 64 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 6d 61 72 6b 65 rce.dired.()..."Return.all.marke
13e240 64 20 66 69 6c 65 73 20 6f 66 20 61 20 64 69 72 65 64 20 62 75 66 66 65 72 22 0a 20 20 28 69 6e d.files.of.a.dired.buffer"...(in
13e260 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 teractive)...(mapc.(lambda.(file
13e280 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d )...........(if.(file-directory-
13e2a0 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 p.file)...............(emms-sour
13e2c0 63 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 ce-directory-tree.file).........
13e2e0 20 20 20 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 20 66 69 6c 65 29 29 29 0a 20 20 ....(emms-source-file.file)))...
13e300 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d ......(with-current-buffer.emms-
13e320 73 6f 75 72 63 65 2d 6f 6c 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 72 source-old-buffer...........(dir
13e340 65 64 2d 67 65 74 2d 6d 61 72 6b 65 64 2d 66 69 6c 65 73 29 29 29 29 0a 0a 0a 3b 3b 3b 20 48 65 ed-get-marked-files))))...;;;.He
13e360 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 lper.functions..;;;###autoload.(
13e380 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 defun.emms-source-file-directory
13e3a0 2d 74 72 65 65 20 28 64 69 72 20 72 65 67 65 78 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 -tree.(dir.regex)..."Return.a.li
13e3c0 73 74 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 75 6e 64 65 72 20 44 49 52 20 74 68 61 74 20 6d st.of.all.files.under.DIR.that.m
13e3e0 61 74 63 68 20 52 45 47 45 58 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 60 atch.REGEX..This.function.uses.`
13e400 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d emms-source-file-directory-tree-
13e420 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 6d 65 73 73 61 67 65 20 22 42 75 69 6c 64 69 6e 67 function'."...(message."Building
13e440 20 70 6c 61 79 6c 69 73 74 2e 2e 2e 22 29 0a 20 20 28 6c 65 74 20 28 28 70 6c 20 28 73 6f 72 74 .playlist...")...(let.((pl.(sort
13e460 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 .(funcall.emms-source-file-direc
13e480 74 6f 72 79 2d 74 72 65 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tory-tree-function..............
13e4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............dir...............
13e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .............regex).............
13e4e0 20 20 20 20 20 20 23 27 73 74 72 69 6e 67 3c 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 ......#'string<))).....(message.
13e500 22 42 75 69 6c 64 69 6e 67 20 70 6c 61 79 6c 69 73 74 2e 2e 2e 64 6f 6e 65 22 29 0a 20 20 20 20 "Building.playlist...done").....
13e520 70 6c 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 pl))..(defun.emms-source-file-di
13e540 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 69 6e 74 65 72 6e 61 6c 20 28 64 69 72 20 72 65 67 65 78 rectory-tree-internal.(dir.regex
13e560 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 )..."Return.a.list.of.all.files.
13e580 75 6e 64 65 72 20 44 49 52 20 74 68 61 74 20 6d 61 74 63 68 20 52 45 47 45 58 2e 0a 54 68 69 73 under.DIR.that.match.REGEX..This
13e5a0 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 6f 6e 6c 79 20 65 6d 61 63 73 20 66 75 6e 63 74 69 .function.uses.only.emacs.functi
13e5c0 6f 6e 73 2c 20 73 6f 20 69 74 20 6d 69 67 68 74 20 62 65 20 61 20 62 69 74 20 73 6c 6f 77 2e 22 ons,.so.it.might.be.a.bit.slow."
13e5e0 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 ...(let.((files.'()).........(di
13e600 72 73 20 28 6c 69 73 74 20 64 69 72 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 64 69 72 73 0a rs.(list.dir))).....(while.dirs.
13e620 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 66 69 6c 65 2d 64 69 72 65 63 74 ......(cond........((file-direct
13e640 6f 72 79 2d 70 20 28 63 61 72 20 64 69 72 73 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6f ory-p.(car.dirs)).........(if.(o
13e660 72 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2f 5c 5c 2e 5c 5c 2e 3f 24 22 20 28 63 61 72 r.(string-match."/\\.\\.?$".(car
13e680 20 64 69 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 .dirs)).................(let.((s
13e6a0 79 6d 6c 69 6e 6b 20 28 66 69 6c 65 2d 73 79 6d 6c 69 6e 6b 2d 70 20 28 63 61 72 20 64 69 72 73 ymlink.(file-symlink-p.(car.dirs
13e6c0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 73 79 6d 6c ))))...................(and.syml
13e6e0 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 ink........................(stri
13e700 6e 67 2d 65 71 75 61 6c 20 64 69 72 20 28 73 75 62 73 74 72 69 6e 67 20 73 79 6d 6c 69 6e 6b 20 ng-equal.dir.(substring.symlink.
13e720 30 20 28 73 74 72 69 6e 67 2d 77 69 64 74 68 20 64 69 72 29 29 29 29 29 29 0a 20 20 20 20 20 20 0.(string-width.dir)))))).......
13e740 20 20 20 20 20 20 28 73 65 74 71 20 64 69 72 73 20 28 63 64 72 20 64 69 72 73 29 29 0a 20 20 20 ......(setq.dirs.(cdr.dirs))....
13e760 20 20 20 20 20 20 20 28 73 65 74 71 20 64 69 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(setq.dirs...............
13e780 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 ..(condition-case.nil...........
13e7a0 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 63 64 72 20 64 69 72 73 29 0a 20 20 20 ..........(append.(cdr.dirs)....
13e7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 .........................(direct
13e7e0 6f 72 79 2d 66 69 6c 65 73 20 28 63 61 72 20 64 69 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 ory-files.(car.dirs)............
13e800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13e820 20 20 74 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 ..t.nil.t))...................(e
13e840 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 64 69 72 rror....................(cdr.dir
13e860 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 s))))))........((string-match.re
13e880 67 65 78 20 28 63 61 72 20 64 69 72 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 gex.(car.dirs)).........(setq.fi
13e8a0 6c 65 73 20 28 63 6f 6e 73 20 28 63 61 72 20 64 69 72 73 29 20 66 69 6c 65 73 29 0a 20 20 20 20 les.(cons.(car.dirs).files).....
13e8c0 20 20 20 20 20 20 20 20 20 20 64 69 72 73 20 28 63 64 72 20 64 69 72 73 29 29 29 0a 20 20 20 20 ..........dirs.(cdr.dirs))).....
13e8e0 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 69 72 73 20 28 63 64 72 20 64 69 ...(t.........(setq.dirs.(cdr.di
13e900 72 73 29 29 29 29 29 0a 20 20 20 20 66 69 6c 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 rs))))).....files))..(defun.emms
13e920 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d 66 69 6e 64 -source-file-directory-tree-find
13e940 20 28 64 69 72 20 72 65 67 65 78 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 .(dir.regex)..."Return.a.list.of
13e960 20 61 6c 6c 20 66 69 6c 65 73 20 75 6e 64 65 72 20 44 49 52 20 74 68 61 74 20 6d 61 74 63 68 20 .all.files.under.DIR.that.match.
13e980 52 45 47 45 58 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 74 68 65 20 65 78 REGEX..This.function.uses.the.ex
13e9a0 74 65 72 6e 61 6c 20 66 69 6e 64 20 75 74 69 6c 69 74 79 2e 20 54 68 65 20 6e 61 6d 65 20 66 6f ternal.find.utility..The.name.fo
13e9c0 72 20 47 4e 55 20 66 69 6e 64 0a 6d 61 79 20 62 65 20 73 75 70 70 6c 69 65 64 20 75 73 69 6e 67 r.GNU.find.may.be.supplied.using
13e9e0 20 60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 67 6e 75 2d 66 69 6e 64 27 2e 22 0a 20 .`emms-source-file-gnu-find'."..
13ea00 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f .(with-temp-buffer.....(call-pro
13ea20 63 65 73 73 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 67 6e 75 2d 66 69 6e 64 0a 20 cess.emms-source-file-gnu-find..
13ea40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 0a 09 09 20 20 22 .................nil.t.nil....."
13ea60 2d 4c 22 20 3b 20 66 6f 6c 6c 6f 77 20 73 79 6d 6c 69 6e 6b 73 0a 20 20 20 20 20 20 20 20 20 20 -L".;.follow.symlinks...........
13ea80 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 29 0a 20 ........(expand-file-name.dir)..
13eaa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 74 79 70 65 22 20 22 66 22 0a 20 20 20 ................."-type"."f"....
13eac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 69 72 65 67 65 78 22 20 28 63 6f 6e 63 61 74 ..............."-iregex".(concat
13eae0 20 22 2e 2a 5c 5c 28 22 20 72 65 67 65 78 20 22 5c 5c 29 2e 2a 22 29 29 0a 20 20 20 20 28 64 65 .".*\\(".regex."\\).*")).....(de
13eb00 6c 65 74 65 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e lete."".............(split-strin
13eb20 67 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a g.(buffer-substring.(point-min).
13eb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13eb60 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 ............(point-max))........
13eb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 ..................."\n"))))..(de
13eba0 66 6d 61 63 72 6f 20 65 6d 6d 73 2d 77 69 74 68 2d 65 78 63 6c 75 64 65 64 2d 64 69 72 65 63 74 fmacro.emms-with-excluded-direct
13ebc0 6f 72 69 65 73 20 28 64 69 72 65 63 74 6f 72 79 2d 6c 69 73 74 20 26 72 65 73 74 20 62 6f 64 79 ories.(directory-list.&rest.body
13ebe0 29 0a 20 20 22 52 75 6e 20 42 4f 44 59 20 77 68 69 6c 65 20 65 78 63 6c 75 64 69 6e 67 20 44 49 )..."Run.BODY.while.excluding.DI
13ec00 52 45 43 54 4f 52 59 2d 4c 49 53 54 2e 22 0a 20 20 60 28 6c 65 74 20 28 28 65 6d 6d 73 2d 73 6f RECTORY-LIST."...`(let.((emms-so
13ec20 75 72 63 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 65 2d 72 65 67 65 78 70 0a 09 20 20 28 63 6f 6e urce-file-exclude-regexp....(con
13ec40 63 61 74 20 28 6f 72 20 2c 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 65 78 63 6c 75 64 cat.(or.,emms-source-file-exclud
13ec60 65 2d 72 65 67 65 78 70 20 22 22 29 0a 09 09 20 20 22 5c 5c 7c 5c 5c 28 22 0a 09 09 20 20 28 6f e-regexp."")....."\\|\\(".....(o
13ec80 72 20 28 72 65 67 65 78 70 2d 6f 70 74 20 2c 64 69 72 65 63 74 6f 72 79 2d 6c 69 73 74 29 20 22 r.(regexp-opt.,directory-list)."
13eca0 22 29 0a 09 09 20 20 22 5c 5c 29 22 29 29 29 0a 20 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 3b ")....."\\)")))......,@body))..;
13ecc0 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 6f 75 72 63 65 ;;###autoload.(defun.emms-source
13ece0 2d 66 69 6c 65 2d 72 65 67 65 78 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 -file-regex.()..."Return.a.regex
13ed00 70 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 65 76 65 72 79 74 68 69 6e 67 20 61 6e 79 20 70 6c p.that.matches.everything.any.pl
13ed20 61 79 65 72 20 28 74 68 61 74 20 73 75 70 70 6f 72 74 73 0a 66 69 6c 65 73 29 20 63 61 6e 20 70 ayer.(that.supports.files).can.p
13ed40 6c 61 79 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 70 6c 61 79 lay."...(mapconcat.(lambda.(play
13ed60 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 70 6c 61 er)................(or.(emms-pla
13ed80 79 65 72 2d 67 65 74 20 70 6c 61 79 65 72 20 27 72 65 67 65 78 29 0a 20 20 20 20 20 20 20 20 20 yer-get.player.'regex)..........
13eda0 20 20 20 20 20 20 20 20 20 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 ..........""))..............emms
13edc0 2d 70 6c 61 79 65 72 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 7c 22 29 -player-list.............."\\|")
13ede0 29 0a 0a 3b 3b 20 65 6d 6d 73 2d 6c 6f 63 61 74 65 20 73 68 6f 75 6c 64 20 62 65 20 70 61 72 74 )..;;.emms-locate.should.be.part
13ee00 20 6f 66 20 61 20 6f 6e 63 65 20 74 6f 20 62 65 20 65 6d 6d 73 2d 64 69 72 65 64 2c 20 77 69 74 .of.a.once.to.be.emms-dired,.wit
13ee20 68 20 6d 61 79 62 65 0a 3b 3b 20 66 69 6c 65 20 72 65 6e 61 6d 65 20 61 66 74 65 72 20 74 61 67 h.maybe.;;.file.rename.after.tag
13ee40 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 73 6f 20 6f 6e 2c 20 62 75 74 20 74 69 6c 6c 20 74 .functions.and.so.on,.but.till.t
13ee60 68 65 6e 20 69 20 70 61 72 6b 20 69 74 0a 3b 3b 20 68 65 72 65 2e 2e 2e 20 3a 29 0a 0a 3b 3b 3b hen.i.park.it.;;.here....:)..;;;
13ee80 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 6f 63 61 74 65 20 28 ###autoload.(defun.emms-locate.(
13eea0 72 65 67 65 78 70 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 20 52 45 47 45 58 50 20 61 6e 64 regexp)..."Search.for.REGEXP.and
13eec0 20 64 69 73 70 6c 61 79 20 74 68 65 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 6c 6f 63 61 74 65 .display.the.results.in.a.locate
13eee0 20 62 75 66 66 65 72 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 73 52 65 67 65 78 70 .buffer"...(interactive."sRegexp
13ef00 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 3a 20 22 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 6c .to.search.for:.")...(require.'l
13ef20 6f 63 61 74 65 29 0a 20 20 28 73 61 76 65 2d 77 69 6e 64 6f 77 2d 65 78 63 75 72 73 69 6f 6e 0a ocate)...(save-window-excursion.
13ef40 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 ....(set-buffer.(get-buffer-crea
13ef60 74 65 20 22 2a 45 4d 4d 53 20 46 69 6e 64 2a 22 29 29 0a 20 20 20 20 28 6c 6f 63 61 74 65 2d 6d te."*EMMS.Find*")).....(locate-m
13ef80 6f 64 65 29 0a 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 6d 61 70 ode).....(erase-buffer).....(map
13efa0 63 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 29 20 28 69 6e 73 65 72 74 20 28 63 64 72 20 28 61 73 c.(lambda.(elt).(insert.(cdr.(as
13efc0 73 6f 63 20 27 6e 61 6d 65 20 65 6c 74 29 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 soc.'name.elt))."\n"))..........
13efe0 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6e 64 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 .(emms-source-find.emms-source-f
13f000 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 72 65 67 65 78 70 29 29 0a 20 ile-default-directory.regexp))..
13f020 20 20 20 28 6c 6f 63 61 74 65 2d 64 6f 2d 73 65 74 75 70 20 72 65 67 65 78 70 29 29 0a 20 20 28 ...(locate-do-setup.regexp))...(
13f040 61 6e 64 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 62 75 66 66 65 72 2d 6e and.(not.(string-equal.(buffer-n
13f060 61 6d 65 29 20 22 2a 45 4d 4d 53 20 46 69 6e 64 2a 22 29 29 0a 20 20 20 20 20 20 20 28 73 77 69 ame)."*EMMS.Find*"))........(swi
13f080 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 22 2a 45 4d 4d tch-to-buffer-other-window."*EMM
13f0a0 53 20 46 69 6e 64 2a 22 29 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 64 69 72 65 64 2d 6d S.Find*"))...(run-hooks.'dired-m
13f0c0 6f 64 65 2d 68 6f 6f 6b 29 0a 20 20 28 64 69 72 65 64 2d 6e 65 78 74 2d 6c 69 6e 65 20 32 29 29 ode-hook)...(dired-next-line.2))
13f0e0 0a 0a 3b 3b 20 53 74 72 69 63 74 6c 79 20 73 70 65 61 6b 69 6e 67 2c 20 74 68 69 73 20 64 6f 65 ..;;.Strictly.speaking,.this.doe
13f100 73 20 6e 6f 74 20 62 65 6c 6f 6e 67 20 69 6e 20 74 68 69 73 20 66 69 6c 65 20 28 55 52 4c 73 20 s.not.belong.in.this.file.(URLs.
13f120 61 72 65 20 6e 6f 74 0a 3b 3b 20 72 65 61 6c 20 66 69 6c 65 73 29 2c 20 62 75 74 20 69 74 27 73 are.not.;;.real.files),.but.it's
13f140 20 63 6c 6f 73 65 20 65 6e 6f 75 67 68 20 3a 2d 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 .close.enough.:-)..;;;###autoloa
13f160 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 75 72 6c 20 22 65 6d 6d 73 d.(autoload.'emms-play-url."emms
13f180 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c -source-file".nil.t).;;;###autol
13f1a0 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 64 64 2d 75 72 6c 20 22 65 6d 6d oad.(autoload.'emms-add-url."emm
13f1c0 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d s-source-file".nil.t).(define-em
13f1e0 6d 73 2d 73 6f 75 72 63 65 20 75 72 6c 20 28 75 72 6c 29 0a 20 20 22 41 6e 20 45 4d 4d 53 20 73 ms-source.url.(url)..."An.EMMS.s
13f200 6f 75 72 63 65 20 66 6f 72 20 61 6e 20 55 52 4c 20 2d 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 ource.for.an.URL.-.for.example,.
13f220 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 for.streaming."...(interactive.(
13f240 6c 69 73 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 22 50 6c 61 79 20 55 52 4c 3a 20 22 20 28 list.(read-string."Play.URL:.".(
13f260 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 2d 75 72 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a thing-at-point-url-at-point)))).
13f280 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 28 65 ..(emms-playlist-insert-track.(e
13f2a0 6d 6d 73 2d 74 72 61 63 6b 20 27 75 72 6c 20 75 72 6c 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 mms-track.'url.url)))..;;;###aut
13f2c0 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 70 6c 61 79 2d 73 74 72 65 61 oload.(autoload.'emms-play-strea
13f2e0 6d 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 20 6e 69 6c 20 74 29 0a mlist."emms-source-file".nil.t).
13f300 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 65 6d 6d 73 2d 61 ;;;###autoload.(autoload.'emms-a
13f320 64 64 2d 73 74 72 65 61 6d 6c 69 73 74 20 22 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 dd-streamlist."emms-source-file"
13f340 20 6e 69 6c 20 74 29 0a 28 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 20 73 74 72 65 .nil.t).(define-emms-source.stre
13f360 61 6d 6c 69 73 74 20 28 73 74 72 65 61 6d 6c 69 73 74 29 0a 20 20 22 41 6e 20 45 4d 4d 53 20 73 amlist.(streamlist)..."An.EMMS.s
13f380 6f 75 72 63 65 20 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 70 6c 61 79 6c 69 73 74 73 20 28 75 ource.for.streaming.playlists.(u
13f3a0 73 75 61 6c 6c 79 20 55 52 4c 73 20 65 6e 64 69 6e 67 20 69 6e 20 2e 70 6c 73 29 2e 22 0a 20 20 sually.URLs.ending.in..pls)."...
13f3c0 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 73 50 6c 61 79 20 73 74 72 65 61 6d 6c 69 73 74 20 55 (interactive."sPlay.streamlist.U
13f3e0 52 4c 3a 20 22 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 RL:.")...(emms-playlist-insert-t
13f400 72 61 63 6b 20 28 65 6d 6d 73 2d 74 72 61 63 6b 20 27 73 74 72 65 61 6d 6c 69 73 74 20 73 74 72 rack.(emms-track.'streamlist.str
13f420 65 61 6d 6c 69 73 74 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 73 6f 75 72 eamlist)))...(provide.'emms-sour
13f440 63 65 2d 66 69 6c 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2e 65 6c ce-file).;;;.emms-source-file.el
13f460 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ends.here......................
13f480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 61 75 74 6f 2e 69 6e 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-auto.in............
13f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13f680 30 30 30 30 37 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 34 34 00 20 30 00 00 00 0000770.00000000000.013144..0...
13f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13f720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f800 3b 3b 3b 20 2d 2a 2d 65 6d 61 63 73 2d 6c 69 73 70 2d 2a 2d 0a 0a 28 64 65 66 76 61 72 20 67 65 ;;;.-*-emacs-lisp-*-..(defvar.ge
13f820 6e 65 72 61 74 65 64 2d 61 75 74 6f 6c 6f 61 64 2d 66 69 6c 65 29 0a 28 64 65 66 76 61 72 20 63 nerated-autoload-file).(defvar.c
13f840 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 61 72 67 73 2d 6c 65 66 74 29 0a 28 64 65 66 75 6e 20 65 6d ommand-line-args-left).(defun.em
13f860 6d 73 2d 67 65 6e 65 72 61 74 65 2d 61 75 74 6f 6c 6f 61 64 73 20 28 29 0a 20 20 28 69 6e 74 65 ms-generate-autoloads.()...(inte
13f880 72 61 63 74 69 76 65 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 61 75 74 6f 6c 6f 61 64 29 0a 20 ractive)...(require.'autoload)..
13f8a0 20 28 73 65 74 71 20 67 65 6e 65 72 61 74 65 64 2d 61 75 74 6f 6c 6f 61 64 2d 66 69 6c 65 20 28 .(setq.generated-autoload-file.(
13f8c0 63 61 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 61 72 67 73 2d 6c 65 66 74 29 29 0a 20 20 28 car.command-line-args-left))...(
13f8e0 73 65 74 71 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 61 72 67 73 2d 6c 65 66 74 20 28 63 64 72 setq.command-line-args-left.(cdr
13f900 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 61 72 67 73 2d 6c 65 66 74 29 29 0a 20 20 28 62 61 74 .command-line-args-left))...(bat
13f920 63 68 2d 75 70 64 61 74 65 2d 61 75 74 6f 6c 6f 61 64 73 29 29 0a 0a 28 61 64 64 2d 74 6f 2d 6c ch-update-autoloads))..(add-to-l
13f940 69 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e ist.'load-path.(directory-file-n
13f960 61 6d 65 0a 09 09 09 20 28 6f 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 ame.....(or.(file-name-directory
13f980 20 6c 6f 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 09 09 09 20 20 20 20 20 28 63 61 72 20 6c 6f .load-file-name).........(car.lo
13f9a0 61 64 2d 70 61 74 68 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 61 75 74 6f ad-path))))..(provide.'emms-auto
13f9c0 29 0a 3b 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 61 75 74 6f 6c 6f 61 64 73 20 66 6f 6c 6c 6f 77 ).;;;.Generated.autoloads.follow
13f9e0 20 28 6d 61 64 65 20 62 79 20 61 75 74 6f 6c 6f 61 64 2e 65 6c 29 2e 0a 00 00 00 00 00 00 00 00 .(made.by.autoload.el)..........
13fa00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2e 65 emms-24/emms-librefm-scrobbler.e
13fa20 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l...............................
13fa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fa60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13fa80 30 30 32 37 31 35 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 37 31 00 20 30 00 00 00 0027157.00000000000.015571..0...
13faa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fb00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13fb20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fc00 3b 3b 3b 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2e 65 6c 20 2d 2d ;;;.emms-librefm-scrobbler.el.--
13fc20 2d 20 4c 69 62 72 65 2e 46 4d 20 53 63 72 6f 62 62 69 6e 67 20 41 50 49 20 20 2d 2a 2d 20 6c 65 -.Libre.FM.Scrobbing.API..-*-.le
13fc40 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 xical-binding:.t;.-*-..;;.Copyri
13fc60 67 68 74 20 28 43 29 20 32 30 31 34 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e ght.(C).2014..Free.Software.Foun
13fc80 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f 6e 69 20 52 61 dation,.Inc...;;.Author:.Yoni.Ra
13fca0 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a bkin.<yrk@gnu.org>..;;.Keywords:
13fcc0 20 65 6d 6d 73 2c 20 6c 69 62 72 65 2e 66 6d 2c 20 47 4e 55 20 46 4d 0a 0a 3b 3b 20 45 4d 4d 53 .emms,.libre.fm,.GNU.FM..;;.EMMS
13fce0 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 .is.free.software;.you.can.redis
13fd00 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 tribute.it.and/or.modify.it.;;.u
13fd20 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 nder.the.terms.of.the.GNU.Genera
13fd40 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 l.Public.License.as.published.by
13fd60 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e .;;.the.Free.Software.Foundation
13fd80 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 ;.either.version.3,.or.(at.your.
13fda0 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b option).;;.any.later.version..;;
13fdc0 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 .;;.EMMS.is.distributed.in.the.h
13fde0 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 ope.that.it.will.be.useful,.but.
13fe00 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 WITHOUT.;;.ANY.WARRANTY;.without
13fe20 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 .even.the.implied.warranty.of.ME
13fe40 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 RCHANTABILITY.;;.or.FITNESS.FOR.
13fe60 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 A.PARTICULAR.PURPOSE...See.the.G
13fe80 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 NU.General.Public.;;.License.for
13fea0 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 .more.details..;;.;;.You.should.
13fec0 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 have.received.a.copy.of.the.GNU.
13fee0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 General.Public.License.;;.along.
13ff00 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e with.EMMS;.see.the.file.COPYING.
13ff20 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 ..If.not,.write.to.the.Free.;;.S
13ff40 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 oftware.Foundation,.Inc.,.51.Fra
13ff60 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f nklin.Street,.Fifth.Floor,.Bosto
13ff80 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 n,.;;.MA.02110-1301,.USA...;;;.C
13ffa0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 6c 69 62 72 65 2e 66 6d 20 79 ommentary:..;;.To.use.libre.fm.y
13ffc0 6f 75 20 6e 65 65 64 20 74 6f 20 61 64 64 20 75 73 65 72 6e 61 6d 65 20 61 6e 64 20 70 61 73 73 ou.need.to.add.username.and.pass
13ffe0 77 6f 72 64 20 74 6f 0a 3b 3b 20 7e 2f 2e 61 75 74 68 69 6e 66 6f 2e 67 70 67 20 6f 72 20 61 6e word.to.;;.~/.authinfo.gpg.or.an
140000 20 65 71 75 69 76 61 6c 65 6e 74 20 66 69 6c 65 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 61 .equivalent.file.understood.by.a
140020 75 74 68 2d 73 6f 75 72 63 65 2e 0a 3b 3b 20 54 6f 20 65 6e 61 62 6c 65 20 73 63 72 6f 62 62 6c uth-source..;;.To.enable.scrobbl
140040 69 6e 67 20 63 61 6c 6c 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 ing.call.(emms-librefm-scrobbler
140060 2d 65 6e 61 62 6c 65 29 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 -enable)...;;;.Code:..(require.'
140080 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 28 72 65 71 75 69 72 65 20 27 61 75 74 emms-playing-time).(require.'aut
1400a0 68 2d 73 6f 75 72 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 75 72 6c 2d 76 61 72 73 29 0a 0a 0a h-source).(require.'url-vars)...
1400c0 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 (defvar.emms-librefm-scrobbler-h
1400e0 61 6e 64 73 68 61 6b 65 2d 75 72 6c 0a 20 20 22 74 75 72 74 6c 65 2e 6c 69 62 72 65 2e 66 6d 22 andshake-url..."turtle.libre.fm"
140100 0a 20 20 22 45 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6c 69 65 6e 74 20 68 61 6e 64 73 68 61 6b ..."Endpoint.for.client.handshak
140120 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 e.")..(defvar.emms-librefm-scrob
140140 62 6c 65 72 2d 6d 65 74 68 6f 64 0a 20 20 22 68 74 74 70 73 22 0a 20 20 22 54 72 61 6e 73 66 65 bler-method..."https"..."Transfe
140160 72 20 6d 65 74 68 6f 64 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 r.method.")..(defvar.emms-libref
140180 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 75 73 65 72 6e 61 6d 65 20 6e 69 6c 0a 20 20 22 4c 69 62 72 m-scrobbler-username.nil..."Libr
1401a0 65 2e 66 6d 20 75 73 65 72 6e 61 6d 65 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 70 72 e.fm.username...Note.that.the.pr
1401c0 65 66 65 72 72 65 64 20 77 61 79 20 6f 66 20 61 75 74 68 65 6e 74 69 63 61 74 69 6e 67 20 69 73 eferred.way.of.authenticating.is
1401e0 20 75 73 69 6e 67 20 61 75 74 68 69 6e 66 6f 0a 61 6e 64 20 6f 6e 6c 79 20 73 65 74 74 69 6e 67 .using.authinfo.and.only.setting
140200 20 60 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 68 61 .`emms-librefm-scrobbler-handsha
140220 6b 65 2d 75 72 6c 27 2e 20 20 53 65 65 20 74 68 65 0a 6d 61 6e 75 61 6c 20 66 6f 72 20 64 65 74 ke-url'...See.the.manual.for.det
140240 61 69 6c 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 ails.")..(defvar.emms-librefm-sc
140260 72 6f 62 62 6c 65 72 2d 70 61 73 73 77 6f 72 64 20 6e 69 6c 0a 20 20 22 4c 69 62 72 65 2e 66 6d robbler-password.nil..."Libre.fm
140280 20 75 73 65 72 20 70 61 73 73 77 6f 72 64 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 70 .user.password...Note.that.the.p
1402a0 72 65 66 65 72 72 65 64 20 77 61 79 20 6f 66 20 61 75 74 68 65 6e 74 69 63 61 74 69 6e 67 20 69 referred.way.of.authenticating.i
1402c0 73 20 75 73 69 6e 67 20 61 75 74 68 69 6e 66 6f 2e 0a 53 65 65 20 61 6c 73 6f 20 60 65 6d 6d 73 s.using.authinfo..See.also.`emms
1402e0 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 75 73 65 72 6e 61 6d 65 27 2e 22 29 0a -librefm-scrobbler-username'.").
140300 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d .(defvar.emms-librefm-scrobbler-
140320 64 65 62 75 67 0a 20 20 22 22 0a 20 20 22 44 65 62 75 67 67 69 6e 67 20 76 61 72 69 61 62 6c 65 debug...""..."Debugging.variable
140340 20 74 6f 20 73 74 6f 72 65 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 .to.store.communication.")..(def
140360 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 65 73 73 69 var.emms-librefm-scrobbler-sessi
140380 6f 6e 2d 69 64 0a 20 20 6e 69 6c 0a 20 20 22 53 65 73 73 69 6f 6e 20 49 44 20 66 6f 72 20 4c 69 on-id...nil..."Session.ID.for.Li
1403a0 62 72 65 2e 66 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d bre.fm.")..(defvar.emms-librefm-
1403c0 73 63 72 6f 62 62 6c 65 72 2d 6e 6f 77 2d 70 6c 61 79 69 6e 67 2d 75 72 6c 0a 20 20 22 22 0a 20 scrobbler-now-playing-url...""..
1403e0 20 22 55 52 4c 20 66 6f 72 20 67 65 74 74 69 6e 67 20 74 68 65 20 74 72 61 63 6b 20 70 6c 61 79 ."URL.for.getting.the.track.play
140400 69 6e 67 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 ing.")..(defvar.emms-librefm-scr
140420 6f 62 62 6c 65 72 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 0a 20 20 22 22 0a 20 20 22 55 52 obbler-submission-url...""..."UR
140440 4c 20 66 6f 72 20 73 75 62 6d 69 73 73 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d L.for.submissions.")..(defvar.em
140460 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 74 72 61 63 6b 2d 70 6c 61 79 2d ms-librefm-scrobbler-track-play-
140480 73 74 61 72 74 2d 74 69 6d 65 73 74 61 6d 70 0a 20 20 6e 69 6c 0a 20 20 22 54 69 6d 65 20 77 68 start-timestamp...nil..."Time.wh
1404a0 65 6e 20 61 20 74 72 61 63 6b 20 73 74 61 72 74 65 64 20 70 6c 61 79 69 6e 67 2e 22 29 0a 0a 28 en.a.track.started.playing.")..(
1404c0 64 65 66 76 61 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 defvar.emms-librefm-scrobbler-di
1404e0 73 70 6c 61 79 2d 73 75 62 6d 69 73 73 69 6f 6e 73 0a 20 20 74 0a 20 20 22 57 68 65 74 68 65 72 splay-submissions...t..."Whether
140500 20 74 6f 20 64 69 73 70 6c 61 79 20 61 20 75 73 65 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 65 76 .to.display.a.user.message.on.ev
140520 65 72 79 20 73 75 62 6d 69 73 73 69 6f 6e 2e 22 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d ery.submission.")...;;;.--------
140540 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
140560 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 61 --------------------------.;;;.a
140580 75 74 68 65 6e 74 69 63 61 74 65 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d uthenticate.;;;.----------------
1405a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1405c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c ------------------.(defun.emms-l
1405e0 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 67 65 74 2d 61 75 74 68 2d 64 65 74 61 69 ibrefm-scrobbler--get-auth-detai
140600 6c 20 28 74 6f 6b 65 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 54 4f 4b 45 4e 20 66 72 6f 6d 20 61 l.(token)..."Return.TOKEN.from.a
140620 75 74 68 2d 73 6f 75 72 63 65 2e 0a 54 4f 4b 45 4e 20 69 73 20 3a 75 73 65 72 20 6f 66 20 3a 73 uth-source..TOKEN.is.:user.of.:s
140640 65 63 72 65 74 2e 22 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 4d 61 79 62 65 20 77 65 20 73 68 6f 75 ecret."...;;.TODO:.Maybe.we.shou
140660 6c 64 20 65 6e 61 62 6c 65 20 3a 63 72 65 61 74 65 20 74 20 68 65 72 65 2e 20 20 42 75 74 20 69 ld.enable.:create.t.here...But.i
140680 74 20 63 6f 75 6c 64 20 62 65 0a 20 20 3b 3b 20 6b 69 6e 64 20 6f 66 20 61 6e 6e 6f 79 69 6e 67 t.could.be...;;.kind.of.annoying
1406a0 20 61 73 20 69 74 20 6d 61 6b 65 73 20 61 20 70 6f 70 2d 75 70 20 77 68 65 6e 20 6e 6f 20 6e 61 .as.it.makes.a.pop-up.when.no.na
1406c0 6d 65 20 69 73 20 70 72 65 73 65 6e 74 2e 0a 20 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 28 me.is.present....(plist-get....(
1406e0 63 61 72 20 28 61 75 74 68 2d 73 6f 75 72 63 65 2d 73 65 61 72 63 68 20 3a 68 6f 73 74 20 28 6c car.(auth-source-search.:host.(l
140700 69 73 74 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 ist.emms-librefm-scrobbler-hands
140720 68 61 6b 65 2d 75 72 6c 20 22 6c 69 62 72 65 2e 66 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 hake-url."libre.fm")............
140740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 72 20 28 75 6e 6c 65 73 73 20 28 .................:user.(unless.(
140760 65 71 75 61 6c 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 75 73 65 equal.emms-librefm-scrobbler-use
140780 72 6e 61 6d 65 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rname."").......................
1407a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 ..............emms-librefm-scrob
1407c0 62 6c 65 72 2d 75 73 65 72 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bler-username)..................
1407e0 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 20 31 20 3a 72 65 71 75 69 72 65 20 27 28 3a 75 73 ...........:max.1.:require.'(:us
140800 65 72 20 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 74 6f 6b 65 6e 29 29 0a 0a 28 64 65 66 75 6e er.:secret)))....token))..(defun
140820 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 75 73 65 72 6e 61 6d .emms-librefm-scrobbler--usernam
140840 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 75 73 65 72 6e 61 6d 65 20 66 6f 72 20 6c 69 62 72 e.()..."Return.username.for.libr
140860 65 2e 66 6d 2e 22 0a 20 20 28 6f 72 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 e.fm."...(or.(emms-librefm-scrob
140880 62 6c 65 72 2d 2d 67 65 74 2d 61 75 74 68 2d 64 65 74 61 69 6c 20 3a 75 73 65 72 29 0a 20 20 20 bler--get-auth-detail.:user)....
1408a0 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 75 73 65 72 6e 61 ...emms-librefm-scrobbler-userna
1408c0 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 me))..(defun.emms-librefm-scrobb
1408e0 6c 65 72 2d 2d 70 61 73 73 77 6f 72 64 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 70 61 73 73 77 ler--password.()..."Return.passw
140900 6f 72 64 20 66 6f 72 20 6c 69 62 72 65 2e 66 6d 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 ord.for.libre.fm."...(let.((toke
140920 6e 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 67 65 74 2d 61 n.(emms-librefm-scrobbler--get-a
140940 75 74 68 2d 64 65 74 61 69 6c 20 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 uth-detail.:secret))).....(cond.
140960 28 28 66 75 6e 63 74 69 6f 6e 70 20 74 6f 6b 65 6e 29 20 28 66 75 6e 63 61 6c 6c 20 74 6f 6b 65 ((functionp.token).(funcall.toke
140980 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 63 68 61 72 61 63 74 65 72 70 20 74 6f 6b 65 6e n))...........((characterp.token
1409a0 29 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 65 6d 6d 73 2d 6c 69 62 72 65 ).token)...........(t.emms-libre
1409c0 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 70 61 73 73 77 6f 72 64 29 29 29 29 0a 0a 3b 3b 3b 20 2d fm-scrobbler-password))))..;;;.-
1409e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
140a00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
140a20 2d 0a 3b 3b 3b 20 68 61 6e 64 73 68 61 6b 65 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -.;;;.handshake.;;;.------------
140a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
140a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 ----------------------..(defun.e
140a80 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 68 61 6b 65 2d mms-librefm-scrobbler-handshake-
140aa0 73 74 72 69 6e 67 20 28 75 72 6c 20 75 73 65 72 6e 61 6d 65 20 70 61 73 73 77 6f 72 64 29 0a 20 string.(url.username.password)..
140ac0 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6c 69 65 6e 74 20 68 61 6e 64 73 68 61 6b 65 20 73 74 ."Return.the.client.handshake.st
140ae0 72 69 6e 67 2e 22 0a 20 20 28 77 68 65 6e 20 28 3d 20 30 20 28 6c 65 6e 67 74 68 20 75 72 6c 29 ring."...(when.(=.0.(length.url)
140b00 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 62 61 64 20 75 72 6c 22 29 29 0a 20 20 28 77 68 65 6e ).....(error."bad.url"))...(when
140b20 20 28 3d 20 30 20 28 6c 65 6e 67 74 68 20 75 73 65 72 6e 61 6d 65 29 29 0a 20 20 20 20 28 65 72 .(=.0.(length.username)).....(er
140b40 72 6f 72 20 22 62 61 64 20 75 73 65 72 6e 61 6d 65 22 29 29 0a 20 20 28 77 68 65 6e 20 28 3d 20 ror."bad.username"))...(when.(=.
140b60 30 20 28 6c 65 6e 67 74 68 20 70 61 73 73 77 6f 72 64 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 0.(length.password)).....(error.
140b80 22 62 61 64 20 70 61 73 73 77 6f 72 64 22 29 29 0a 20 20 28 6c 65 74 20 28 28 74 69 6d 65 73 74 "bad.password"))...(let.((timest
140ba0 61 6d 70 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 22 25 73 22 29 29 29 0a amp.(format-time-string."%s"))).
140bc0 20 20 20 20 28 63 6f 6e 63 61 74 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c ....(concat.emms-librefm-scrobbl
140be0 65 72 2d 6d 65 74 68 6f 64 0a 09 20 20 20 20 22 3a 2f 2f 22 0a 09 20 20 20 20 75 72 6c 20 22 2f er-method......"://"......url."/
140c00 3f 22 0a 09 20 20 20 20 22 68 73 3d 74 72 75 65 22 20 22 26 22 0a 09 20 20 20 20 22 70 3d 31 2e ?"......"hs=true"."&"......"p=1.
140c20 32 22 20 20 20 22 26 22 0a 09 20 20 20 20 22 63 3d 65 6d 6d 22 20 20 20 22 26 22 0a 09 20 20 20 2"..."&"......"c=emm"..."&".....
140c40 20 22 76 3d 31 2e 30 22 20 20 20 22 26 22 0a 09 20 20 20 20 22 75 3d 22 20 28 75 72 6c 2d 65 6e ."v=1.0"..."&"......"u=".(url-en
140c60 63 6f 64 65 2d 75 72 6c 20 75 73 65 72 6e 61 6d 65 29 20 22 26 22 0a 09 20 20 20 20 22 74 3d 22 code-url.username)."&"......"t="
140c80 20 74 69 6d 65 73 74 61 6d 70 20 22 26 22 0a 09 20 20 20 20 22 61 3d 22 20 28 6d 64 35 20 28 63 .timestamp."&"......"a=".(md5.(c
140ca0 6f 6e 63 61 74 20 28 6d 64 35 20 70 61 73 73 77 6f 72 64 29 20 74 69 6d 65 73 74 61 6d 70 29 29 oncat.(md5.password).timestamp))
140cc0 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c )))..(defun.emms-librefm-scrobbl
140ce0 65 72 2d 68 61 6e 64 73 68 61 6b 65 2d 63 61 6c 6c 20 28 75 72 6c 20 75 73 65 72 6e 61 6d 65 20 er-handshake-call.(url.username.
140d00 70 61 73 73 77 6f 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 63 6c 69 65 6e 74 20 68 61 6e 64 password)..."Perform.client.hand
140d20 73 68 61 6b 65 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 72 65 73 70 6f 6e 73 65 20 69 6e 20 61 shake.and.return.a.response.in.a
140d40 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d .buffer."...(let.((url-request-m
140d60 65 74 68 6f 64 20 22 50 4f 53 54 22 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 20 75 72 6c 2d 72 ethod."POST")).....(ignore.url-r
140d80 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e equest-method).....(let.((respon
140da0 73 65 0a 09 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 se.....(url-retrieve-synchronous
140dc0 6c 79 0a 09 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d ly......(emms-librefm-scrobbler-
140de0 68 61 6e 64 73 68 61 6b 65 2d 73 74 72 69 6e 67 0a 09 20 20 20 20 20 75 72 6c 20 75 73 65 72 6e handshake-string.......url.usern
140e00 61 6d 65 20 70 61 73 73 77 6f 72 64 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d ame.password)))).......(setq.emm
140e20 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 64 65 62 75 67 0a 09 20 20 20 20 28 s-librefm-scrobbler-debug......(
140e40 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 73 70 6f 6e 73 65 0a 09 20 20 with-current-buffer.response....
140e60 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 ....(buffer-substring-no-propert
140e80 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 09 09 09 09 09 20 20 20 20 20 20 28 70 6f 69 6e ies.(point-min)............(poin
140ea0 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 28 64 65 t-max)))).......response)))..(de
140ec0 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 6c fun.emms-librefm-scrobbler-handl
140ee0 65 2d 68 61 6e 64 73 68 61 6b 65 2d 72 65 73 70 6f 6e 73 65 20 28 72 65 73 62 75 66 29 0a 20 20 e-handshake-response.(resbuf)...
140f00 22 48 61 6e 64 6c 65 20 74 68 65 20 63 6c 69 65 6e 74 20 68 61 6e 64 73 68 61 6b 65 20 73 65 72 "Handle.the.client.handshake.ser
140f20 76 65 72 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 62 75 66 ver.response."...(when.(not.(buf
140f40 66 65 72 70 20 72 65 73 62 75 66 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 72 65 73 70 6f 6e ferp.resbuf)).....(error."respon
140f60 73 65 20 6e 6f 74 20 61 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 se.not.a.buffer"))...(with-curre
140f80 6e 74 2d 62 75 66 66 65 72 20 72 65 73 62 75 66 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 nt-buffer.resbuf.....(goto-char.
140fa0 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 72 65 2d (point-min)).....(when.(not.(re-
140fc0 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 2e 2a 32 30 30 20 4f 4b 24 22 20 28 6c 69 6e search-forward."^.*200.OK$".(lin
140fe0 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 e-end-position).t)).......(error
141000 20 22 62 61 64 20 48 54 54 50 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 ."bad.HTTP.server.response"))...
141020 20 20 3b 3b 20 67 6f 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 46 4d 20 72 ..;;.go.to.the.start.of.the.FM.r
141040 65 73 70 6f 6e 73 65 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 72 65 2d 73 65 61 72 63 esponse.....(when.(not.(re-searc
141060 68 2d 66 6f 72 77 61 72 64 20 22 5c 6e 5c 6e 22 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 29 h-forward."\n\n".(point-max).t))
141080 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 62 61 64 20 46 4d 20 73 65 72 76 65 72 20 72 65 73 .......(error."bad.FM.server.res
1410a0 70 6f 6e 73 65 22 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 74 75 73 20 28 62 75 66 66 ponse")).....(let.((status.(buff
1410c0 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 er-substring.(line-beginning-pos
1410e0 69 74 69 6f 6e 29 0a 09 09 09 09 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f ition).........(line-end-positio
141100 6e 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 n)))).......(when.(not.(string=.
141120 73 74 61 74 75 73 20 22 4f 4b 22 29 29 0a 09 28 65 72 72 6f 72 20 22 46 4d 20 73 65 72 76 65 72 status."OK"))..(error."FM.server
141140 20 72 65 74 75 72 6e 65 64 3a 20 25 73 22 20 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 28 6c .returned:.%s".status)).......(l
141160 65 74 20 28 73 65 73 73 69 6f 6e 2d 69 64 0a 09 20 20 20 20 6e 6f 77 2d 70 6c 61 79 69 6e 67 2d et.(session-id......now-playing-
141180 75 72 6c 0a 09 20 20 20 20 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 29 0a 09 28 66 6f 72 77 61 url......submission-url)..(forwa
1411a0 72 64 2d 6c 69 6e 65 20 31 29 0a 09 28 73 65 74 71 20 73 65 73 73 69 6f 6e 2d 69 64 20 28 62 75 rd-line.1)..(setq.session-id.(bu
1411c0 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 ffer-substring.(line-beginning-p
1411e0 6f 73 69 74 69 6f 6e 29 0a 09 09 09 09 09 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 osition).........(line-end-posit
141200 69 6f 6e 29 29 29 0a 09 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 09 28 73 65 74 71 20 ion)))..(forward-line.1)..(setq.
141220 6e 6f 77 2d 70 6c 61 79 69 6e 67 2d 75 72 6c 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e now-playing-url.(buffer-substrin
141240 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 09 09 09 09 g.(line-beginning-position).....
141260 09 09 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 09 28 66 6f 72 77 61 72 ..(line-end-position)))..(forwar
141280 64 2d 6c 69 6e 65 20 31 29 0a 09 28 73 65 74 71 20 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 20 d-line.1)..(setq.submission-url.
1412a0 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e (buffer-substring.(line-beginnin
1412c0 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 09 09 09 09 09 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e g-position).............(line-en
1412e0 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 09 28 77 68 65 6e 20 28 6f 72 20 28 3d 20 30 20 28 6c d-position)))..(when.(or.(=.0.(l
141300 65 6e 67 74 68 20 73 65 73 73 69 6f 6e 2d 69 64 29 29 0a 09 09 20 20 28 3d 20 30 20 28 6c 65 6e ength.session-id)).....(=.0.(len
141320 67 74 68 20 6e 6f 77 2d 70 6c 61 79 69 6e 67 2d 75 72 6c 29 29 0a 09 09 20 20 28 3d 20 30 20 28 gth.now-playing-url)).....(=.0.(
141340 6c 65 6e 67 74 68 20 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 29 29 29 0a 09 20 20 28 65 72 72 length.submission-url)))....(err
141360 6f 72 20 22 63 6f 75 6c 64 6e 27 74 20 70 61 72 73 65 20 46 4d 20 73 65 72 76 65 72 20 72 65 73 or."couldn't.parse.FM.server.res
141380 70 6f 6e 73 65 22 29 29 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 ponse"))..(setq.emms-librefm-scr
1413a0 6f 62 62 6c 65 72 2d 73 65 73 73 69 6f 6e 2d 69 64 20 20 20 20 20 20 73 65 73 73 69 6f 6e 2d 69 obbler-session-id......session-i
1413c0 64 0a 09 20 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d d........emms-librefm-scrobbler-
1413e0 6e 6f 77 2d 70 6c 61 79 69 6e 67 2d 75 72 6c 20 6e 6f 77 2d 70 6c 61 79 69 6e 67 2d 75 72 6c 0a now-playing-url.now-playing-url.
141400 09 20 20 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 75 .......emms-librefm-scrobbler-su
141420 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 20 20 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 6c 29 0a 09 28 bmission-url..submission-url)..(
141440 6d 65 73 73 61 67 65 20 22 68 61 6e 64 73 68 61 6b 65 20 73 75 63 63 65 73 73 66 75 6c 22 29 29 message."handshake.successful"))
141460 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c )))..(defun.emms-librefm-scrobbl
141480 65 72 2d 68 61 6e 64 73 68 61 6b 65 20 28 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 63 6c 69 65 6e er-handshake.()..."Perform.clien
1414a0 74 20 68 61 6e 64 73 68 61 6b 65 20 63 61 6c 6c 20 61 6e 64 20 68 61 6e 64 6c 65 20 72 65 73 70 t.handshake.call.and.handle.resp
1414c0 6f 6e 73 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 onse."...(emms-librefm-scrobbler
1414e0 2d 68 61 6e 64 6c 65 2d 68 61 6e 64 73 68 61 6b 65 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 28 65 -handle-handshake-response....(e
141500 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 68 61 6b 65 2d mms-librefm-scrobbler-handshake-
141520 63 61 6c 6c 0a 20 20 20 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d call.....emms-librefm-scrobbler-
141540 68 61 6e 64 73 68 61 6b 65 2d 75 72 6c 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d handshake-url.....(emms-librefm-
141560 73 63 72 6f 62 62 6c 65 72 2d 2d 75 73 65 72 6e 61 6d 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c scrobbler--username).....(emms-l
141580 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 2d 70 61 73 73 77 6f 72 64 29 29 29 29 0a 0a ibrefm-scrobbler--password))))..
1415a0 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .;;;.---------------------------
1415c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1415e0 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 73 75 62 6d 69 73 73 69 6f 6e 0a 3b 3b 3b 20 2d 2d 2d 2d 2d -------.;;;.submission.;;;.-----
141600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
141620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 -----------------------------..(
141640 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b defun.emms-librefm-scrobbler-mak
141660 65 2d 71 75 65 72 79 20 28 74 72 61 63 6b 20 72 61 74 69 6e 67 29 0a 20 20 22 46 6f 72 6d 61 74 e-query.(track.rating)..."Format
141680 20 74 68 65 20 75 72 6c 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 73 63 72 6f 62 62 6c 69 .the.url.parameters.for.scrobbli
1416a0 6e 67 2e 22 0a 20 20 28 73 65 74 71 20 72 61 74 69 6e 67 0a 09 28 63 6f 6e 64 20 28 28 65 71 75 ng."...(setq.rating..(cond.((equ
1416c0 61 6c 20 27 6c 6f 76 65 20 72 61 74 69 6e 67 29 20 22 4c 22 29 0a 09 20 20 20 20 20 20 28 28 65 al.'love.rating)."L")........((e
1416e0 71 75 61 6c 20 27 62 61 6e 20 72 61 74 69 6e 67 29 20 20 22 42 22 29 0a 09 20 20 20 20 20 20 28 qual.'ban.rating).."B")........(
141700 28 65 71 75 61 6c 20 27 73 6b 69 70 20 72 61 74 69 6e 67 29 20 22 53 22 29 0a 09 20 20 20 20 20 (equal.'skip.rating)."S").......
141720 20 28 74 20 22 22 29 29 29 0a 20 20 28 6c 65 74 20 28 28 61 72 74 69 73 74 20 28 65 6d 6d 73 2d .(t."")))...(let.((artist.(emms-
141740 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 29 0a 09 track-get.track.'info-artist))..
141760 28 74 69 74 6c 65 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 (title..(emms-track-get.track.'i
141780 6e 66 6f 2d 74 69 74 6c 65 29 29 0a 09 28 61 6c 62 75 6d 20 20 28 6f 72 20 28 65 6d 6d 73 2d 74 nfo-title))..(album..(or.(emms-t
1417a0 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 20 22 22 29 29 rack-get.track.'info-album).""))
1417c0 0a 09 28 74 72 61 63 6b 2d 6e 75 6d 62 65 72 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 ..(track-number.(emms-track-get.
1417e0 74 72 61 63 6b 20 27 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 29 29 0a 09 28 6d 75 73 69 track.'info-tracknumber))..(musi
141800 63 62 72 61 69 6e 7a 2d 69 64 20 22 22 29 0a 09 28 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 28 6e cbrainz-id."")..(track-length.(n
141820 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 0a 09 09 20 20 20 20 20 20 20 28 6f 72 20 28 65 6d umber-to-string..........(or.(em
141840 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 0a 09 09 09 09 09 20 20 20 27 69 6e 66 6f ms-track-get.track.........'info
141860 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 09 09 09 20 20 20 30 29 29 29 29 0a 20 20 20 20 28 -playing-time).......0)))).....(
141880 69 66 20 28 61 6e 64 20 61 72 74 69 73 74 20 74 69 74 6c 65 29 0a 09 28 63 6f 6e 63 61 74 0a 09 if.(and.artist.title)..(concat..
1418a0 20 22 73 3d 22 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 65 73 ."s=".emms-librefm-scrobbler-ses
1418c0 73 69 6f 6e 2d 69 64 0a 09 20 22 26 61 5b 30 5d 3d 22 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 sion-id..."&a[0]=".(url-encode-u
1418e0 72 6c 20 61 72 74 69 73 74 29 0a 09 20 22 26 74 5b 30 5d 3d 22 20 28 75 72 6c 2d 65 6e 63 6f 64 rl.artist)..."&t[0]=".(url-encod
141900 65 2d 75 72 6c 20 74 69 74 6c 65 29 0a 09 20 22 26 69 5b 30 5d 3d 22 20 28 75 72 6c 2d 65 6e 63 e-url.title)..."&i[0]=".(url-enc
141920 6f 64 65 2d 75 72 6c 0a 09 09 20 20 20 28 6f 72 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 ode-url......(or.emms-librefm-sc
141940 72 6f 62 62 6c 65 72 2d 74 72 61 63 6b 2d 70 6c 61 79 2d 73 74 61 72 74 2d 74 69 6d 65 73 74 61 robbler-track-play-start-timesta
141960 6d 70 0a 09 09 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 mp..........(format-time-string.
141980 22 25 73 22 29 29 29 0a 09 20 22 26 6f 5b 30 5d 3d 22 20 22 50 22 0a 09 20 22 26 72 5b 30 5d 3d "%s")))..."&o[0]="."P"..."&r[0]=
1419a0 22 20 28 75 72 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 72 61 74 69 6e 67 29 0a 09 20 22 26 6c 5b ".(url-encode-url.rating)..."&l[
1419c0 30 5d 3d 22 20 74 72 61 63 6b 2d 6c 65 6e 67 74 68 0a 09 20 22 26 62 5b 30 5d 3d 22 20 28 75 72 0]=".track-length..."&b[0]=".(ur
1419e0 6c 2d 65 6e 63 6f 64 65 2d 75 72 6c 20 61 6c 62 75 6d 29 0a 09 20 22 26 6e 5b 30 5d 3d 22 20 74 l-encode-url.album)..."&n[0]=".t
141a00 72 61 63 6b 2d 6e 75 6d 62 65 72 0a 09 20 22 26 6d 5b 30 5d 3d 22 20 6d 75 73 69 63 62 72 61 69 rack-number..."&m[0]=".musicbrai
141a20 6e 7a 2d 69 64 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 72 61 63 6b 20 74 69 74 6c 65 nz-id).......(error."Track.title
141a40 20 61 6e 64 20 61 72 74 69 73 74 20 6d 75 73 74 20 62 65 20 6b 6e 6f 77 6e 2e 22 29 29 29 29 0a .and.artist.must.be.known.")))).
141a60 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..;;;.--------------------------
141a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
141aa0 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 73 75 62 6d 69 73 --------.;;;.asynchronous.submis
141ac0 73 69 6f 6e 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d sion.;;;.-----------------------
141ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
141b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d -----------..(defun.emms-librefm
141b20 2d 73 63 72 6f 62 62 6c 65 72 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 73 74 61 74 75 73 20 28 -scrobbler-get-response-status.(
141b40 29 0a 20 20 22 43 68 65 63 6b 20 74 68 65 20 48 54 54 50 20 68 65 61 64 65 72 20 61 6e 64 20 72 )..."Check.the.HTTP.header.and.r
141b60 65 74 75 72 6e 20 74 68 65 20 62 6f 64 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 6b 32 30 30 20 eturn.the.body."...(let.((ok200.
141b80 22 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 22 29 29 0a 20 20 20 20 28 69 66 20 28 3c 20 28 "HTTP/1.1.200.OK")).....(if.(<.(
141ba0 70 6f 69 6e 74 2d 6d 61 78 29 20 31 29 0a 09 28 65 72 72 6f 72 20 22 4e 6f 20 72 65 73 70 6f 6e point-max).1)..(error."No.respon
141bc0 73 65 20 66 72 6f 6d 20 73 75 62 6d 69 73 73 69 6f 6e 20 73 65 72 76 65 72 22 29 29 0a 20 20 20 se.from.submission.server"))....
141be0 20 28 69 66 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 6f 6b 32 30 30 20 28 62 75 66 66 65 72 .(if.(not.(string=.ok200.(buffer
141c00 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d -substring-no-properties.(point-
141c20 6d 69 6e 29 20 31 36 29 29 29 0a 09 28 65 72 72 6f 72 20 22 73 75 62 6d 69 73 73 69 6f 6e 20 73 min).16)))..(error."submission.s
141c40 65 72 76 65 72 20 6e 6f 74 20 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 22 29 erver.not.responding.correctly")
141c60 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ).....(goto-char.(point-min))...
141c80 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 ..(re-search-forward."\n\n")....
141ca0 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 .(buffer-substring-no-properties
141cc0 0a 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 ......(line-beginning-position).
141ce0 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 (line-end-position))))..(defun.e
141d00 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 61 73 79 6e 63 mms-librefm-scrobbler-make-async
141d20 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 20 28 74 72 61 63 6b 20 72 61 74 69 6e 67 29 0a -submission-call.(track.rating).
141d40 20 20 22 4d 61 6b 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 73 75 62 6d 69 73 73 69 6f 6e 20 .."Make.asynchronous.submission.
141d60 63 61 6c 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 6c 61 72 62 20 28 65 6d 6d 73 2d 6c 69 62 72 call."...(let.((flarb.(emms-libr
141d80 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 71 75 65 72 79 20 74 72 61 63 6b 20 72 efm-scrobbler-make-query.track.r
141da0 61 74 69 6e 67 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 75 72 6c 2d 72 65 71 75 65 73 74 ating))).....(let*.((url-request
141dc0 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 0a 09 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 -method."POST").....(url-request
141de0 2d 64 61 74 61 20 66 6c 61 72 62 29 0a 09 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 -data.flarb).....(url-request-ex
141e00 74 72 61 2d 68 65 61 64 65 72 73 0a 09 20 20 20 20 60 28 28 22 43 6f 6e 74 65 6e 74 2d 74 79 70 tra-headers......`(("Content-typ
141e20 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c e"..."application/x-www-form-url
141e40 65 6e 63 6f 64 65 64 22 29 29 29 29 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 75 72 6c 2d 72 encoded")))).......(ignore.url-r
141e60 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 09 20 20 20 20 20 20 75 72 6c 2d equest-extra-headers........url-
141e80 72 65 71 75 65 73 74 2d 64 61 74 61 0a 09 20 20 20 20 20 20 75 72 6c 2d 72 65 71 75 65 73 74 2d request-data........url-request-
141ea0 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 20 65 6d 6d 73 method).......(url-retrieve.emms
141ec0 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 75 72 -librefm-scrobbler-submission-ur
141ee0 6c 0a 09 09 20 20 20 20 23 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 l.......#'emms-librefm-scrobbler
141f00 2d 61 73 79 6e 63 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 62 61 63 6b 0a 09 09 20 20 20 -async-submission-callback......
141f20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 74 72 61 63 6b 20 72 61 74 69 6e 67 29 29 29 29 29 29 0a .(list.(cons.track.rating)))))).
141f40 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 61 .(defun.emms-librefm-scrobbler-a
141f60 73 79 6e 63 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 62 61 63 6b 20 28 73 74 61 74 75 73 sync-submission-callback.(status
141f80 20 26 6f 70 74 69 6f 6e 61 6c 20 63 62 61 72 67 73 29 0a 20 20 22 50 61 73 73 20 72 65 73 70 6f .&optional.cbargs)..."Pass.respo
141fa0 6e 73 65 20 6f 66 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 73 75 62 6d 69 73 73 69 6f 6e 20 63 nse.of.asynchronous.submission.c
141fc0 61 6c 6c 20 74 6f 20 68 61 6e 64 6c 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e all.to.handler."...(let.((respon
141fe0 73 65 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 67 65 74 2d 72 se.(emms-librefm-scrobbler-get-r
142000 65 73 70 6f 6e 73 65 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 20 73 74 esponse-status))).....(ignore.st
142020 61 74 75 73 29 0a 20 20 20 20 3b 3b 20 46 72 6f 6d 20 74 68 65 20 41 50 49 20 64 6f 63 73 3a 20 atus).....;;.From.the.API.docs:.
142040 54 68 69 73 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 65 0a 20 20 20 20 3b 3b 20 73 This.indicates.that.the.....;;.s
142060 75 62 6d 69 73 73 69 6f 6e 20 72 65 71 75 65 73 74 20 77 61 73 20 61 63 63 65 70 74 65 64 20 66 ubmission.request.was.accepted.f
142080 6f 72 20 70 72 6f 63 65 73 73 69 6e 67 2e 20 49 74 0a 20 20 20 20 3b 3b 20 64 6f 65 73 20 6e 6f or.processing..It.....;;.does.no
1420a0 74 20 6d 65 61 6e 20 74 68 61 74 20 74 68 65 20 73 75 62 6d 69 73 73 69 6f 6e 20 77 61 73 20 76 t.mean.that.the.submission.was.v
1420c0 61 6c 69 64 2c 20 62 75 74 0a 20 20 20 20 3b 3b 20 6f 6e 6c 79 20 74 68 61 74 20 74 68 65 20 61 alid,.but.....;;.only.that.the.a
1420e0 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 74 68 uthentication.and.the.form.of.th
142100 65 0a 20 20 20 20 3b 3b 20 73 75 62 6d 69 73 73 69 6f 6e 20 77 61 73 20 76 61 6c 69 64 61 74 65 e.....;;.submission.was.validate
142120 64 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 63 61 72 20 63 62 61 72 67 73 29 d......(let.((track.(car.cbargs)
142140 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 72 65 73 70 6f 6e 73 )).......(cond.((string=.respons
142160 65 20 22 4f 4b 22 29 0a 09 20 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d e."OK").......(when.emms-librefm
142180 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 73 70 6c 61 79 2d 73 75 62 6d 69 73 73 69 6f 6e 73 0a 09 -scrobbler-display-submissions..
1421a0 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 69 62 72 65 2e 66 6d 3a 20 53 75 62 6d 69 .......(message."Libre.fm:.Submi
1421c0 74 74 65 64 20 25 73 22 0a 09 09 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 tted.%s"....(emms-track-get.trac
1421e0 6b 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 29 29 29 0a 09 20 20 20 20 28 28 73 74 72 69 6e 67 3d k.'info-title))))......((string=
142200 20 72 65 73 70 6f 6e 73 65 20 22 42 41 44 53 45 53 53 49 4f 4e 22 29 0a 09 20 20 20 20 20 28 65 .response."BADSESSION").......(e
142220 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 68 61 6e 64 73 68 61 6b 65 29 mms-librefm-scrobbler-handshake)
142240 0a 09 20 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 6d .......(emms-librefm-scrobbler-m
142260 61 6b 65 2d 61 73 79 6e 63 2d 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 20 28 63 61 72 20 63 ake-async-submission-call.(car.c
142280 62 61 72 67 73 29 20 28 63 64 72 20 63 62 61 72 67 73 29 29 29 0a 09 20 20 20 20 28 74 0a 09 20 bargs).(cdr.cbargs)))......(t...
1422a0 20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 68 61 6e 64 6c 65 64 20 73 75 62 6d 69 73 73 69 6f 6e ....(error."unhandled.submission
1422c0 20 66 61 69 6c 75 72 65 22 29 29 29 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .failure"))))))...;;;.----------
1422e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
142300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 68 6f 6f ------------------------.;;;.hoo
142320 6b 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ks.;;;.-------------------------
142340 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
142360 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 ---------..(defun.emms-librefm-s
142380 63 72 6f 62 62 6c 65 72 2d 73 74 61 72 74 2d 68 6f 6f 6b 20 28 29 0a 20 20 28 73 65 74 71 20 65 crobbler-start-hook.()...(setq.e
1423a0 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 74 72 61 63 6b 2d 70 6c 61 79 mms-librefm-scrobbler-track-play
1423c0 2d 73 74 61 72 74 2d 74 69 6d 65 73 74 61 6d 70 0a 09 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 -start-timestamp..(format-time-s
1423e0 74 72 69 6e 67 20 22 25 73 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 tring."%s")))..(defun.emms-libre
142400 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 20 28 29 0a 20 20 22 53 75 62 fm-scrobbler-stop-hook.()..."Sub
142420 6d 69 74 20 74 68 65 20 74 72 61 63 6b 20 74 6f 20 6c 69 62 72 65 2e 66 6d 20 69 66 20 69 74 20 mit.the.track.to.libre.fm.if.it.
142440 68 61 73 20 62 65 65 6e 20 70 6c 61 79 65 64 20 66 6f 72 20 32 34 30 0a 73 65 63 6f 6e 64 73 20 has.been.played.for.240.seconds.
142460 6f 72 20 68 61 6c 66 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 74 72 61 63 6b 2e or.half.the.length.of.the.track.
142480 22 0a 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 "...(let.((current-track.(emms-p
1424a0 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 laylist-current-selected-track))
1424c0 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 28 65 6d 6d 73 2d ).....(let.((track-length.(emms-
1424e0 74 72 61 63 6b 2d 67 65 74 20 63 75 72 72 65 6e 74 2d 74 72 61 63 6b 20 27 69 6e 66 6f 2d 70 6c track-get.current-track.'info-pl
142500 61 79 69 6e 67 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 74 aying-time))).......(when.(and.t
142520 72 61 63 6b 2d 6c 65 6e 67 74 68 0a 09 09 20 3b 3b 20 6f 6e 6c 79 20 73 75 62 6d 69 74 20 66 69 rack-length....;;.only.submit.fi
142540 6c 65 73 0a 09 09 20 28 65 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 63 75 72 72 les....(eq.(emms-track-type.curr
142560 65 6e 74 2d 74 72 61 63 6b 29 20 27 66 69 6c 65 29 29 0a 09 28 77 68 65 6e 20 28 61 6e 64 0a 09 ent-track).'file))..(when.(and..
142580 20 20 20 20 20 20 20 3b 3b 20 74 72 61 63 6b 20 6d 75 73 74 20 62 65 20 6c 6f 6e 67 65 72 20 74 .......;;.track.must.be.longer.t
1425a0 68 61 6e 20 33 30 20 73 65 63 73 0a 09 20 20 20 20 20 20 20 28 3e 20 74 72 61 63 6b 2d 6c 65 6e han.30.secs.........(>.track-len
1425c0 67 74 68 20 33 30 29 0a 09 20 20 20 20 20 20 20 3b 3b 20 74 72 61 63 6b 20 6d 75 73 74 20 62 65 gth.30).........;;.track.must.be
1425e0 20 70 6c 61 79 65 64 20 66 6f 72 20 6d 6f 72 65 20 74 68 61 6e 20 32 34 30 20 73 65 63 73 20 6f .played.for.more.than.240.secs.o
142600 72 0a 09 20 20 20 20 20 20 20 3b 3b 20 20 20 68 61 6c 66 20 74 68 65 20 74 72 61 63 6b 73 20 6c r.........;;...half.the.tracks.l
142620 65 6e 67 74 68 2c 20 77 68 69 63 68 65 76 65 72 20 63 6f 6d 65 73 20 66 69 72 73 74 2e 0a 09 20 ength,.whichever.comes.first....
142640 20 20 20 20 20 20 28 3e 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 28 6d 69 6e 20 ......(>.emms-playing-time.(min.
142660 32 34 30 20 28 2f 20 74 72 61 63 6b 2d 6c 65 6e 67 74 68 20 32 29 29 29 29 0a 09 20 20 28 65 6d 240.(/.track-length.2))))....(em
142680 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 6d 61 6b 65 2d 61 73 79 6e 63 2d ms-librefm-scrobbler-make-async-
1426a0 73 75 62 6d 69 73 73 69 6f 6e 2d 63 61 6c 6c 0a 09 20 20 20 63 75 72 72 65 6e 74 2d 74 72 61 63 submission-call.....current-trac
1426c0 6b 20 6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d k.nil))))))..(defun.emms-librefm
1426e0 2d 73 63 72 6f 62 62 6c 65 72 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 74 -scrobbler-enable.()..."Enable.t
142700 68 65 20 73 63 72 6f 62 62 6c 65 72 20 61 6e 64 20 73 75 62 6d 69 74 20 70 6c 61 79 65 64 20 74 he.scrobbler.and.submit.played.t
142720 72 61 63 6b 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 racks."...(interactive)...(when.
142740 28 6e 6f 74 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 65 73 73 (not.emms-librefm-scrobbler-sess
142760 69 6f 6e 2d 69 64 29 0a 20 20 20 20 28 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 ion-id).....(emms-librefm-scrobb
142780 6c 65 72 2d 68 61 6e 64 73 68 61 6b 65 29 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d ler-handshake))...(add-hook.'emm
1427a0 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 2d 68 6f 6f 6b 0a 09 20 20 20 20 27 65 6d 6d 73 s-player-started-hook......'emms
1427c0 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 61 72 74 2d 68 6f 6f 6b 20 74 29 -librefm-scrobbler-start-hook.t)
1427e0 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 ...(add-hook.'emms-player-stoppe
142800 64 2d 68 6f 6f 6b 0a 09 20 20 20 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 d-hook......'emms-librefm-scrobb
142820 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6d 6d 73 ler-stop-hook)...(add-hook.'emms
142840 2d 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 0a 09 20 20 20 20 27 65 6d 6d 73 -player-finished-hook......'emms
142860 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 29 29 0a 0a -librefm-scrobbler-stop-hook))..
142880 28 64 65 66 75 6e 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 64 69 (defun.emms-librefm-scrobbler-di
1428a0 73 61 62 6c 65 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 74 68 65 20 73 63 72 6f 62 62 6c 65 sable.()..."Disable.the.scrobble
1428c0 72 20 61 6e 64 20 64 6f 6e 27 74 20 73 75 62 6d 69 74 20 70 6c 61 79 65 64 20 74 72 61 63 6b 73 r.and.don't.submit.played.tracks
1428e0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d ."...(interactive)...(setq.emms-
142900 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 65 73 73 69 6f 6e 2d 69 64 20 6e 69 6c librefm-scrobbler-session-id.nil
142920 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 )...(remove-hook.'emms-player-st
142940 61 72 74 65 64 2d 68 6f 6f 6b 0a 09 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d arted-hook.........'emms-librefm
142960 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 61 72 74 2d 68 6f 6f 6b 29 0a 20 20 28 72 65 6d 6f 76 65 -scrobbler-start-hook)...(remove
142980 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 68 6f 6f 6b 0a -hook.'emms-player-stopped-hook.
1429a0 09 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d ........'emms-librefm-scrobbler-
1429c0 73 74 6f 70 2d 68 6f 6f 6b 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d stop-hook)...(remove-hook.'emms-
1429e0 70 6c 61 79 65 72 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 0a 09 20 20 20 20 20 20 20 27 65 6d player-finished-hook.........'em
142a00 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 72 2d 73 74 6f 70 2d 68 6f 6f 6b 29 29 ms-librefm-scrobbler-stop-hook))
142a20 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 ...(provide.'emms-librefm-scrobb
142a40 6c 65 72 29 0a 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 6c 69 62 72 65 66 6d 2d 73 63 72 6f 62 62 6c 65 ler)...;;;.emms-librefm-scrobble
142a60 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r.el.ends.here..................
142a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142c00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 63 75 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-cue.el.............
142c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
142c80 30 30 31 35 31 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 33 36 00 20 30 00 00 00 0015112.00000000000.012736..0...
142ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
142d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
142d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142e00 3b 3b 3b 20 65 6d 6d 73 2d 63 75 65 2e 65 6c 20 2d 2d 2d 20 52 65 63 6f 67 6e 69 7a 65 20 63 75 ;;;.emms-cue.el.---.Recognize.cu
142e20 65 20 73 68 65 65 74 20 66 69 6c 65 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e e.sheet.file..-*-.lexical-bindin
142e40 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 39 g:.t;.-*-..;;.Copyright.(C).2009
142e60 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a .Free.Software.Foundation,.Inc..
142e80 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 57 69 6c 6c 69 61 6d 20 58 75 20 3c 77 69 6c 6c 69 61 6d 2e .;;.Author:.William.Xu.<william.
142ea0 78 77 6c 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 xwl@gmail.com>..;;.This.file.is.
142ec0 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 part.of.EMMS...;;.EMMS.is.free.s
142ee0 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
142f00 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 .and/or.;;.modify.it.under.the.t
142f20 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
142f40 69 63 65 6e 73 65 0a 3b 3b 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 icense.;;.as.published.by.the.Fr
142f60 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 ee.Software.Foundation;.either.v
142f80 65 72 73 69 6f 6e 20 33 0a 3b 3b 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 ersion.3.;;.of.the.License,.or.(
142fa0 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f at.your.option).any.later.versio
142fc0 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 n...;;.EMMS.is.distributed.in.th
142fe0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b e.hope.that.it.will.be.useful,.;
143000 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ;.but.WITHOUT.ANY.WARRANTY;.with
143020 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
143040 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 .;;.MERCHANTABILITY.or.FITNESS.F
143060 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
143080 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 e.;;.GNU.General.Public.License.
1430a0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 for.more.details...;;.You.should
1430c0 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 .have.received.a.copy.of.the.GNU
1430e0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 .General.Public.License.;;.along
143100 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 .with.EMMS;.if.not,.write.to.the
143120 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e .Free.Software.Foundation,.;;.In
143140 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c c.,.51.Franklin.St,.Fifth.Floor,
143160 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b .Boston,.MA.02110-1301,.USA...;;
143180 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 42 79 20 70 61 72 73 69 6e 67 20 63 75 65 ;.Commentary:..;;.By.parsing.cue
1431a0 20 66 69 6c 65 2c 20 77 65 20 77 69 6c 6c 20 62 65 20 61 62 6c 65 20 74 6f 20 6a 75 6d 70 20 74 .file,.we.will.be.able.to.jump.t
1431c0 6f 20 61 72 62 69 74 61 72 79 20 74 72 61 63 6b 20 6f 72 0a 3b 3b 20 70 6c 61 79 20 6e 65 78 74 o.arbitary.track.or.;;.play.next
1431e0 2f 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 66 72 6f 6d 20 61 20 73 69 6e 67 6c 65 20 2e 61 /previous.track.from.a.single..a
143200 70 65 20 6f 72 20 2e 66 6c 61 63 20 66 69 6c 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 pe.or..flac.file...;;;.Code:..(r
143220 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 28 72 65 71 75 equire.'emms-playing-time).(requ
143240 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 75 65 ire.'emms-info)..(defun.emms-cue
143260 2d 6e 65 78 74 20 28 29 0a 20 20 22 50 6c 61 79 20 6e 65 78 74 20 74 72 61 63 6b 20 66 72 6f 6d -next.()..."Play.next.track.from
143280 20 2e 63 75 65 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ..cue.file."...(interactive)...(
1432a0 6c 65 74 20 28 28 63 75 65 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 63 75 65 2d 6e 65 78 74 2d 74 let.((cue-track.(emms-cue-next-t
1432c0 72 61 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 63 64 72 20 63 75 65 2d 74 72 61 63 6b 29 0a rack))).....(if.(cdr.cue-track).
1432e0 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 ........(progn...........(emms-s
143300 65 65 6b 2d 74 6f 20 28 63 64 72 20 63 75 65 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 eek-to.(cdr.cue-track)).........
143320 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 3a 20 25 73 22 20 28 63 61 72 20 ..(message."Will.play:.%s".(car.
143340 63 75 65 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 cue-track))).......(message."Not
143360 68 69 6e 67 20 74 6f 20 73 65 65 6b 20 6f 72 20 6d 69 73 73 69 6e 67 20 2e 63 75 65 20 66 69 6c hing.to.seek.or.missing..cue.fil
143380 65 3f 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 75 65 2d 70 72 65 76 69 6f 75 e?"))))..(defun.emms-cue-previou
1433a0 73 20 28 29 0a 20 20 22 50 6c 61 79 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 66 72 6f 6d s.()..."Play.previous.track.from
1433c0 20 2e 63 75 65 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ..cue.file."...(interactive)...(
1433e0 6c 65 74 20 28 28 63 75 65 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 63 75 65 2d 70 72 65 76 69 6f let.((cue-track.(emms-cue-previo
143400 75 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 63 64 72 20 63 75 65 2d 74 72 61 us-track))).....(if.(cdr.cue-tra
143420 63 6b 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d ck).........(progn...........(em
143440 6d 73 2d 73 65 65 6b 2d 74 6f 20 28 63 64 72 20 63 75 65 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 ms-seek-to.(cdr.cue-track)).....
143460 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 57 69 6c 6c 20 70 6c 61 79 3a 20 25 73 22 20 28 ......(message."Will.play:.%s".(
143480 63 61 72 20 63 75 65 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 car.cue-track))).......(message.
1434a0 22 4e 6f 74 68 69 6e 67 20 74 6f 20 73 65 65 6b 20 6f 72 20 6d 69 73 73 69 6e 67 20 2e 63 75 65 "Nothing.to.seek.or.missing..cue
1434c0 20 66 69 6c 65 3f 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 75 65 2d 6a 75 6d .file?"))))..(defun.emms-cue-jum
1434e0 70 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 74 72 61 63 6b 20 66 72 6f 6d 20 2e 63 75 65 p.()..."Select.a.track.from..cue
143500 20 66 69 6c 65 20 74 6f 20 70 6c 61 79 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 22 .file.to.play.using.completion."
143520 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 75 65 2d 74 72 ...(interactive)...(let.((cue-tr
143540 61 63 6b 20 28 65 6d 6d 73 2d 63 75 65 2d 73 65 6c 65 63 74 2d 74 72 61 63 6b 29 29 29 0a 20 20 ack.(emms-cue-select-track)))...
143560 20 20 28 69 66 20 28 63 64 72 20 63 75 65 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 70 ..(if.(cdr.cue-track).........(p
143580 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 73 65 65 6b 2d 74 6f 20 28 63 64 rogn...........(emms-seek-to.(cd
1435a0 72 20 63 75 65 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 r.cue-track))...........(message
1435c0 20 22 57 69 6c 6c 20 70 6c 61 79 3a 20 25 73 22 20 28 63 61 72 20 63 75 65 2d 74 72 61 63 6b 29 ."Will.play:.%s".(car.cue-track)
1435e0 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 68 69 6e 67 20 74 6f 20 73 65 )).......(message."Nothing.to.se
143600 65 6b 20 6f 72 20 6d 69 73 73 69 6e 67 20 2e 63 75 65 20 66 69 6c 65 3f 22 29 29 29 29 0a 0a 28 ek.or.missing..cue.file?"))))..(
143620 64 65 66 75 6e 20 65 6d 6d 73 2d 63 75 65 2d 6e 65 78 74 2d 74 72 61 63 6b 20 28 26 6f 70 74 69 defun.emms-cue-next-track.(&opti
143640 6f 6e 61 6c 20 70 72 65 76 69 6f 75 73 2d 70 29 0a 20 20 22 47 65 74 20 74 69 74 6c 65 20 61 6e onal.previous-p)..."Get.title.an
143660 64 20 6f 66 66 73 65 74 20 6f 66 20 6e 65 78 74 20 74 72 61 63 6b 20 66 72 6f 6d 20 2e 63 75 65 d.offset.of.next.track.from..cue
143680 20 66 69 6c 65 2e 0a 0a 57 68 65 6e 20 50 52 45 56 49 4f 55 53 2d 50 20 69 73 20 74 2c 20 67 65 .file...When.PREVIOUS-P.is.t,.ge
1436a0 74 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 20 69 6e 66 6f 20 69 6e 73 74 65 61 64 2e 22 0a t.previous.track.info.instead.".
1436c0 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 ..(let*.((track.(emms-playlist-c
1436e0 75 72 72 65 6e 74 2d 73 65 6c 65 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 urrent-selected-track)).........
143700 20 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 .(name.(emms-track-get.track.'na
143720 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 75 65 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 me))..........(cue.(concat.(file
143740 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 6e 61 6d 65 29 22 2e 63 75 65 22 -name-sans-extension.name)".cue"
143760 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 63 75 65 ))).....(when.(file-exists-p.cue
143780 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 ).......(with-temp-buffer.......
1437a0 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 63 75 65 ..(emms-insert-file-contents.cue
1437c0 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 ).........(save-excursion.......
1437e0 20 20 20 20 28 69 66 20 70 72 65 76 69 6f 75 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(if.previous-p..............
143800 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 .(goto-char.(point-max))........
143820 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 .....(goto-char.(point-min)))...
143840 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 66 66 73 65 74 20 6e 69 6c 29 0a 20 20 20 20 20 ........(let.((offset.nil)......
143860 20 20 20 20 20 20 20 20 20 20 20 28 74 69 74 6c 65 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 ...........(title."")...........
143880 20 20 20 20 20 20 3b 3b 20 57 65 20 73 68 6f 75 6c 64 20 73 65 61 72 63 68 20 6f 6e 65 20 6d 6f ......;;.We.should.search.one.mo
1438a0 72 65 20 74 72 61 63 6b 20 66 61 72 20 77 68 65 6e 20 67 65 74 74 69 6e 67 20 70 72 65 76 69 6f re.track.far.when.getting.previo
1438c0 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 72 61 63 6b 2e 0a 20 20 20 us.................;;.track.....
1438e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 6e 65 2d 6d 6f 72 65 2d 74 72 61 63 6b 20 70 72 65 .............(one-more-track.pre
143900 76 69 6f 75 73 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e vious-p)).............(while.(an
143920 64 20 28 6e 6f 74 20 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.(not.offset)..................
143940 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(funcall.................
143960 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 65 76 69 6f 75 73 2d 70 20 27 73 65 61 72 63 68 ..........(if.previous-p.'search
143980 2d 62 61 63 6b 77 61 72 64 2d 72 65 67 65 78 70 20 27 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 -backward-regexp.'search-forward
1439a0 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -regexp)........................
1439c0 20 20 22 49 4e 44 45 58 20 30 31 20 5c 5c 28 5b 30 2d 39 5d 5b 30 2d 39 5d 5c 5c 29 3a 5c 5c 28 .."INDEX.01.\\([0-9][0-9]\\):\\(
1439e0 5b 30 2d 39 5d 5b 30 2d 39 5d 5c 5c 29 3a 5c 5c 28 5b 30 2d 39 5d 5b 30 2d 39 5d 5c 5c 29 22 20 [0-9][0-9]\\):\\([0-9][0-9]\\)".
143a00 6e 69 6c 20 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 nil.t.1))...............(let*.((
143a20 6d 69 6e 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 min.(string-to-number.(match-str
143a40 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 ing-no-properties.1)))..........
143a60 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 63 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 ............(sec.(string-to-numb
143a80 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 32 er.(match-string-no-properties.2
143aa0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 73 65 63 20 28 )))......................(msec.(
143ac0 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e string-to-number.(match-string-n
143ae0 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o-properties.3)))...............
143b00 20 20 20 20 20 20 20 28 74 6f 74 61 6c 2d 73 65 63 20 28 2b 20 28 2a 20 6d 69 6e 20 36 30 29 20 .......(total-sec.(+.(*.min.60).
143b20 73 65 63 20 28 2f 20 6d 73 65 63 20 31 30 30 2e 30 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 sec.(/.msec.100.0))))...........
143b40 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 28 69 66 20 70 72 65 76 69 6f 75 ......(when.(funcall.(if.previou
143b60 73 2d 70 20 27 3e 20 27 3c 29 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 74 6f 74 s-p.'>.'<).emms-playing-time.tot
143b80 61 6c 2d 73 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e al-sec)...................(if.(n
143ba0 6f 74 20 6f 6e 65 2d 6d 6f 72 65 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ot.one-more-track)..............
143bc0 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(progn.................
143be0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 74 6f 74 61 6c 2d 73 65 63 29 0a ........(setq.offset.total-sec).
143c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 ........................(when.(s
143c20 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 2d 72 65 67 65 78 70 20 22 54 49 54 4c 45 20 5c 22 5c earch-backward-regexp."TITLE.\"\
143c40 5c 28 2e 2a 5c 5c 29 5c 22 22 20 6e 69 6c 20 74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 \(.*\\)\"".nil.t.1).............
143c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 69 74 6c 65 20 28 6d 61 74 63 68 ..............(setq.title.(match
143c80 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 29 0a 20 20 20 20 -string-no-properties.1)))).....
143ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 6e 65 2d 6d 6f 72 65 2d 74 ................(setq.one-more-t
143cc0 72 61 63 6b 20 6e 69 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 rack.nil))))).............(cons.
143ce0 74 69 74 6c 65 20 6f 66 66 73 65 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 title.offset)))))))..(defun.emms
143d00 2d 63 75 65 2d 70 72 65 76 69 6f 75 73 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 53 65 65 20 60 65 -cue-previous-track.()..."See.`e
143d20 6d 6d 73 2d 63 75 65 2d 6e 65 78 74 2d 74 72 61 63 6b 27 2e 22 0a 20 20 28 65 6d 6d 73 2d 63 75 mms-cue-next-track'."...(emms-cu
143d40 65 2d 6e 65 78 74 2d 74 72 61 63 6b 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 75 e-next-track.t))..(defun.emms-cu
143d60 65 2d 73 65 6c 65 63 74 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 e-select-track.()..."Get.a.list.
143d80 6f 66 20 74 69 74 6c 65 20 61 6e 64 20 6f 66 66 73 65 74 20 6f 66 20 74 72 61 63 6b 73 20 66 72 of.title.and.offset.of.tracks.fr
143da0 6f 6d 20 2e 63 75 65 20 66 69 6c 65 20 61 6e 64 20 63 61 6c 6c 0a 63 6f 6d 70 6c 65 74 69 6e 67 om..cue.file.and.call.completing
143dc0 2d 72 65 61 64 20 74 6f 20 73 65 6c 65 63 74 20 6f 6e 65 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 -read.to.select.one"...(let*.((t
143de0 72 61 63 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 75 72 72 65 6e 74 2d 73 65 6c 65 rack.(emms-playlist-current-sele
143e00 63 74 65 64 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 65 6d 6d cted-track))..........(name.(emm
143e20 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 s-track-get.track.'name)).......
143e40 20 20 20 28 63 75 65 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d ...(cue.(concat.(file-name-sans-
143e60 65 78 74 65 6e 73 69 6f 6e 20 6e 61 6d 65 29 22 2e 63 75 65 22 29 29 0a 20 20 20 20 20 20 20 20 extension.name)".cue")).........
143e80 20 28 74 72 61 63 6b 73 2d 66 6f 75 6e 64 20 27 28 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 .(tracks-found.'())).....(when.(
143ea0 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 63 75 65 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 file-exists-p.cue).......(with-t
143ec0 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d emp-buffer.........(emms-insert-
143ee0 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 63 75 65 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 file-contents.cue).........(save
143f00 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 -excursion...........(goto-char.
143f20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 20 20 20 20 20 20 3b 20 73 65 61 72 63 68 20 62 61 63 6b (point-max)).......;.search.back
143f40 77 61 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 61 72 63 68 2d 62 wards...........(while.(search-b
143f60 61 63 6b 77 61 72 64 2d 72 65 67 65 78 70 20 22 49 4e 44 45 58 20 30 31 20 5c 5c 28 5b 30 2d 39 ackward-regexp."INDEX.01.\\([0-9
143f80 5d 5b 30 2d 39 5d 5c 5c 29 3a 5c 5c 28 5b 30 2d 39 5d 5b 30 2d 39 5d 5c 5c 29 3a 5c 5c 28 5b 30 ][0-9]\\):\\([0-9][0-9]\\):\\([0
143fa0 2d 39 5d 5b 30 2d 39 5d 5c 5c 29 22 20 6e 69 6c 20 74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 -9][0-9]\\)".nil.t.1)...........
143fc0 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 ..(let*.((min.(string-to-number.
143fe0 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 (match-string-no-properties.1)))
144000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 63 20 28 73 74 72 69 6e 67 ....................(sec.(string
144020 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 -to-number.(match-string-no-prop
144040 65 72 74 69 65 73 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 erties.2)))....................(
144060 6d 73 65 63 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 msec.(string-to-number.(match-st
144080 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 33 29 29 29 0a 20 20 20 20 20 20 20 20 ring-no-properties.3))).........
1440a0 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 74 61 6c 2d 73 65 63 20 28 2b 20 28 2a 20 6d 69 6e 20 ...........(total-sec.(+.(*.min.
1440c0 36 30 29 20 73 65 63 20 28 2f 20 6d 73 65 63 20 31 30 30 2e 30 29 29 29 0a 20 20 20 20 20 20 20 60).sec.(/.msec.100.0)))........
1440e0 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 74 6c 65 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 ............(title."")).........
144100 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 2d 72 65 67 ......(when.(search-backward-reg
144120 65 78 70 20 22 54 49 54 4c 45 20 5c 22 5c 5c 28 2e 2a 5c 5c 29 5c 22 22 20 6e 69 6c 20 74 20 31 exp."TITLE.\"\\(.*\\)\"".nil.t.1
144140 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 69 74 6c 65 20 28 6d ).................(setq.title.(m
144160 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 0a 20 atch-string-no-properties.1)))..
144180 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 74 69 74 6c 65 20 74 .............(push.(cons.title.t
1441a0 6f 74 61 6c 2d 73 65 63 29 20 74 72 61 63 6b 73 2d 66 6f 75 6e 64 29 29 29 29 29 0a 20 20 20 20 otal-sec).tracks-found))))).....
1441c0 20 20 28 6c 65 74 2a 20 28 28 74 72 61 63 6b 73 2d 63 6f 6d 70 6c 65 74 65 2d 74 61 62 6c 65 20 ..(let*.((tracks-complete-table.
1441e0 28 6c 61 6d 62 64 61 20 28 73 74 72 69 6e 67 20 70 72 65 64 20 61 63 74 69 6f 6e 29 0a 20 20 20 (lambda.(string.pred.action)....
144200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
144220 20 20 20 28 69 66 20 28 65 71 20 61 63 74 69 6f 6e 20 27 6d 65 74 61 64 61 74 61 29 0a 20 20 20 ...(if.(eq.action.'metadata)....
144240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
144260 20 20 20 20 20 20 20 60 28 6d 65 74 61 64 61 74 61 20 28 64 69 73 70 6c 61 79 2d 73 6f 72 74 2d .......`(metadata.(display-sort-
144280 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 23 27 69 64 65 6e 74 69 74 79 29 29 20 3b 20 64 6f 6e 27 74 function...,#'identity)).;.don't
1442a0 20 73 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .sort...........................
1442c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 65 2d 77 69 74 68 2d 61 63 74 ..............(complete-with-act
1442e0 69 6f 6e 20 61 63 74 69 6f 6e 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 74 72 61 63 6b 73 2d ion.action.(mapcar.#'car.tracks-
144300 66 6f 75 6e 64 29 20 73 74 72 69 6e 67 20 70 72 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 found).string.pred))))..........
144320 20 20 20 20 28 73 65 6c 65 63 74 69 6f 6e 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 ....(selection.(completing-read.
144340 22 53 65 6c 65 63 74 20 61 20 74 72 61 63 6b 20 74 6f 20 70 6c 61 79 3a 20 22 20 74 72 61 63 6b "Select.a.track.to.play:.".track
144360 73 2d 63 6f 6d 70 6c 65 74 65 2d 74 61 62 6c 65 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 s-complete-table.nil.t))).......
144380 20 20 28 61 73 73 6f 63 20 73 65 6c 65 63 74 69 6f 6e 20 74 72 61 63 6b 73 2d 66 6f 75 6e 64 29 ..(assoc.selection.tracks-found)
1443a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 63 75 65 69 6e 66 6f 20 28 ))))..(defun.emms-info-cueinfo.(
1443c0 74 72 61 63 6b 29 0a 20 20 22 41 64 64 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 track)..."Add.track.information.
1443e0 74 6f 20 54 52 41 43 4b 2e 0a 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 6c 20 65 6c 65 6d 65 to.TRACK..This.is.a.useful.eleme
144400 6e 74 20 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 nt.for.`emms-info-functions'."..
144420 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 .(when.(and.(emms-track-file-p.t
144440 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 rack)..............(string-match
144460 20 22 5c 5c 2e 5c 5c 28 61 70 65 5c 5c 7c 66 6c 61 63 5c 5c 29 5c 5c 27 22 20 28 65 6d 6d 73 2d ."\\.\\(ape\\|flac\\)\\'".(emms-
144480 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 63 track-name.track))).....(let.((c
1444a0 75 65 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e ue.(concat.(file-name-sans-exten
1444c0 73 69 6f 6e 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 sion.(emms-track-name.track))...
1444e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2e 63 75 65 22 29 29 29 0a 20 .....................".cue")))..
144500 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 63 75 65 29 0a 20 .....(when.(file-exists-p.cue)..
144520 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 .......(with-temp-buffer........
144540 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 63 75 ...(emms-insert-file-contents.cu
144560 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 e)...........(save-excursion....
144580 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 69 29 0a 20 20 20 20 20 .........(mapc.(lambda.(i)......
1445a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 ...............(goto-char.(point
1445c0 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e -min)).....................(when
1445e0 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 74 29 29 0a 20 20 20 .(let.((case-fold-search.t))....
144600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 .........................(search
144620 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -forward-regexp.................
144640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 61 72 20 69 29 20 22 20 ..............(concat.(car.i).".
144660 5c 5c 28 2e 2a 5c 5c 29 22 29 20 6e 69 6c 20 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 \\(.*\\)").nil.t.1))............
144680 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b ...........(emms-track-set.track
1446a0 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1446c0 20 20 20 20 20 20 20 20 28 63 64 72 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(cdr.i).................
1446e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 ......................(replace-r
144700 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 egexp-in-string.................
144720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 60 5c 22 5c 5c 7c ......................."\\`\"\\|
144740 5c 22 5c 5c 27 22 20 22 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 29 29 0a 20 \"\\'"."".(match-string.1)))))..
144760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 22 70 65 72 66 6f 72 6d 65 72 22 20 .................'(("performer".
144780 2e 20 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..info-artist)..................
1447a0 20 20 20 28 22 74 69 74 6c 65 22 20 2e 20 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 20 20 20 20 20 20 ...("title"...info-album).......
1447c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 69 74 6c 65 22 20 2e 20 69 6e 66 6f 2d 74 69 ..............("title"...info-ti
1447e0 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 72 65 6d 20 64 tle).....................("rem.d
144800 61 74 65 22 20 2e 20 69 6e 66 6f 2d 79 65 61 72 29 29 29 29 29 29 29 29 29 0a 0a 0a 28 70 72 6f ate"...info-year)))))))))...(pro
144820 76 69 64 65 20 27 65 6d 6d 73 2d 63 75 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 63 75 65 2e 65 6c 20 vide.'emms-cue).;;;.emms-cue.el.
144840 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ends.here.......................
144860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1448a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1448c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1448e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1449a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1449c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1449e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 00 00 00 00 00 00 00 00 00 emms-24/emms-streams.el.........
144a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
144a80 30 30 31 37 31 35 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 35 33 00 20 30 00 00 00 0017157.00000000000.013653..0...
144aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
144b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
144b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144c00 3b 3b 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 20 2d 2d 20 41 20 63 6f 6c 6c 65 63 74 69 ;;.emms-streams.el.--.A.collecti
144c20 6f 6e 20 6f 66 20 6f 6e 6c 69 6e 65 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 20 2d 2a on.of.online.streaming.audio..-*
144c40 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f -.lexical-binding:.t;.-*-..;;.Co
144c60 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 39 2c 20 32 30 32 32 20 20 46 72 65 65 20 53 6f 66 pyright.(C).2019,.2022..Free.Sof
144c80 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f tware.Foundation,.Inc...;;.Autho
144ca0 72 73 3a 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b rs:.Yoni.Rabkin.<yrk@gnu.org>..;
144cc0 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b ;.This.file.is.part.of.EMMS...;;
144ce0 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 .EMMS.is.free.software;.you.can.
144d00 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 redistribute.it.and/or.modify.it
144d20 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 .;;.under.the.terms.of.the.GNU.G
144d40 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 eneral.Public.License.as.publish
144d60 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 ed.by.;;.the.Free.Software.Found
144d80 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c ation;.either.version.3.of.the.L
144da0 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 icense,.or.;;.(at.your.option).a
144dc0 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 ny.later.version...;;.EMMS.is.di
144de0 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 stributed.in.the.hope.that.it.wi
144e00 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 ll.be.useful,.but.WITHOUT.;;.ANY
144e20 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c .WARRANTY;.without.even.the.impl
144e40 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a ied.warranty.of.MERCHANTABILITY.
144e60 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 ;;.or.FITNESS.FOR.A.PARTICULAR.P
144e80 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 URPOSE...See.the.GNU.General.Pub
144ea0 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e lic.;;.License.for.more.details.
144ec0 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ..;;.You.should.have.received.a.
144ee0 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c copy.of.the.GNU.General.Public.L
144f00 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f icense.;;.along.with.EMMS;.if.no
144f20 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f t,.write.to.the.Free.Software.Fo
144f40 75 6e 64 61 74 69 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 undation,.;;.Inc.,.51.Franklin.S
144f60 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 t,.Fifth.Floor,.Boston,.MA.02110
144f80 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b -1301,.USA...;;;.Commentary:..;;
144fa0 20 32 30 31 39 2d 31 31 2d 30 35 20 2d 20 54 68 69 73 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 65 .2019-11-05.-.This.is.a.complete
144fc0 20 72 65 2d 77 72 69 74 65 20 6f 66 20 74 68 65 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c .re-write.of.the.emms-streams.el
144fe0 2c 0a 3b 3b 20 75 73 69 6e 67 20 61 20 64 69 66 66 65 72 65 6e 74 20 61 70 70 72 6f 61 63 68 2e ,.;;.using.a.different.approach.
145000 0a 0a 3b 3b 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 ..;;.This.includes.the.built-in.
145020 6c 69 73 74 20 6f 66 20 73 74 72 65 61 6d 73 20 77 68 69 63 68 20 63 6f 6d 65 20 77 69 74 68 20 list.of.streams.which.come.with.
145040 45 6d 6d 73 20 62 79 0a 3b 3b 20 64 65 66 61 75 6c 74 2e 20 45 6d 6d 73 20 68 61 73 20 6e 6f 20 Emms.by.;;.default..Emms.has.no.
145060 61 66 66 69 6c 69 61 74 69 6f 6e 20 6f 66 20 61 6e 79 20 6b 69 6e 64 20 77 69 74 68 20 74 68 65 affiliation.of.any.kind.with.the
145080 20 73 74 72 65 61 6d 69 6e 67 0a 3b 3b 20 61 75 64 69 6f 20 73 74 61 74 69 6f 6e 73 20 6c 69 73 .streaming.;;.audio.stations.lis
1450a0 74 65 64 20 62 65 6c 6f 77 2c 20 6e 6f 72 20 69 73 20 74 68 69 73 20 61 6e 20 65 6e 64 6f 72 73 ted.below,.nor.is.this.an.endors
1450c0 65 6d 65 6e 74 20 6f 66 20 74 68 65 73 65 0a 3b 3b 20 73 74 61 74 69 6f 6e 73 2e 20 49 6e 73 74 ement.of.these.;;.stations..Inst
1450e0 65 61 64 2c 20 74 68 69 73 20 69 73 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 73 74 61 ead,.this.is.a.collection.of.sta
145100 74 69 6f 6e 73 20 73 75 62 6d 69 74 74 65 64 20 74 6f 0a 3b 3b 20 74 68 65 20 70 72 6f 6a 65 63 tions.submitted.to.;;.the.projec
145120 74 20 6f 76 65 72 20 74 68 65 20 79 65 61 72 73 20 62 79 20 70 65 6f 70 6c 65 20 77 68 6f 20 65 t.over.the.years.by.people.who.e
145140 6e 6a 6f 79 20 45 6d 6d 73 2e 20 57 65 20 68 6f 70 65 20 79 6f 75 0a 3b 3b 20 77 69 6c 6c 20 65 njoy.Emms..We.hope.you.;;.will.e
145160 6e 6a 6f 79 20 74 68 65 6d 20 74 6f 6f 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 njoy.them.too...;;;.Code:..(requ
145180 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 ire.'emms).(require.'emms-source
1451a0 2d 70 6c 61 79 6c 69 73 74 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 -playlist).(require.'emms-playli
1451c0 73 74 2d 6d 6f 64 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 61 63 68 65 29 0a 0a st-mode).(require.'emms-cache)..
1451e0 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .;;;.---------------------------
145200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
145220 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 64 65 66 69 6e 69 74 69 6f 6e 73 0a 3b 3b 3b 20 2d 2d 2d 2d -------.;;;.definitions.;;;.----
145240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
145260 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a ------------------------------..
145280 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 66 66 65 72 2d 6e 61 6d 65 (defvar.emms-streams-buffer-name
1452a0 20 22 45 6d 6d 73 20 53 74 72 65 61 6d 73 22 0a 20 20 22 4e 61 6d 65 20 66 6f 72 20 63 72 65 61 ."Emms.Streams"..."Name.for.crea
1452c0 74 69 6e 67 20 61 20 73 74 72 65 61 6d 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 ting.a.streams.buffer.")..(defva
1452e0 72 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 69 6c 74 2d 69 6e 2d 64 69 73 63 6c 61 69 6d r.emms-streams-built-in-disclaim
145300 65 72 0a 20 20 22 3b 3b 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 62 75 69 6c 74 er...";;.This.includes.the.built
145320 2d 69 6e 20 6c 69 73 74 20 6f 66 20 73 74 72 65 61 6d 73 20 77 68 69 63 68 20 63 6f 6d 65 20 77 -in.list.of.streams.which.come.w
145340 69 74 68 20 45 6d 6d 73 20 62 79 0a 3b 3b 20 64 65 66 61 75 6c 74 2e 20 45 6d 6d 73 20 68 61 73 ith.Emms.by.;;.default..Emms.has
145360 20 6e 6f 20 61 66 66 69 6c 69 61 74 69 6f 6e 20 6f 66 20 61 6e 79 20 6b 69 6e 64 20 77 69 74 68 .no.affiliation.of.any.kind.with
145380 20 74 68 65 20 73 74 72 65 61 6d 69 6e 67 0a 3b 3b 20 61 75 64 69 6f 20 73 74 61 74 69 6f 6e 73 .the.streaming.;;.audio.stations
1453a0 20 6c 69 73 74 65 64 20 62 65 6c 6f 77 2c 20 6e 6f 72 20 69 73 20 74 68 69 73 20 61 6e 20 65 6e .listed.below,.nor.is.this.an.en
1453c0 64 6f 72 73 65 6d 65 6e 74 20 6f 66 20 74 68 65 73 65 0a 3b 3b 20 73 74 61 74 69 6f 6e 73 2e 20 dorsement.of.these.;;.stations..
1453e0 49 6e 73 74 65 61 64 2c 20 74 68 69 73 20 69 73 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 Instead,.this.is.a.collection.of
145400 20 73 74 61 74 69 6f 6e 73 20 73 75 62 6d 69 74 74 65 64 20 74 6f 0a 3b 3b 20 74 68 65 20 70 72 .stations.submitted.to.;;.the.pr
145420 6f 6a 65 63 74 20 6f 76 65 72 20 74 68 65 20 79 65 61 72 73 20 62 79 20 70 65 6f 70 6c 65 20 77 oject.over.the.years.by.people.w
145440 68 6f 20 65 6e 6a 6f 79 20 45 6d 6d 73 2e 20 57 65 20 68 6f 70 65 20 79 6f 75 0a 3b 3b 20 77 69 ho.enjoy.Emms..We.hope.you.;;.wi
145460 6c 6c 20 65 6e 6a 6f 79 20 74 68 65 6d 20 74 6f 6f 2e 22 0a 20 20 22 45 78 70 6c 61 69 6e 69 6e ll.enjoy.them.too."..."Explainin
145480 67 20 74 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 62 65 74 77 65 65 6e 20 45 6d 6d 73 20 g.the.relationship.between.Emms.
1454a0 61 6e 64 20 74 68 65 73 65 20 73 74 72 65 61 6d 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d and.these.streams.")..(defvar.em
1454c0 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 69 6c 74 2d 69 6e 2d 6c 69 73 74 0a 20 20 27 28 28 2a 74 ms-streams-built-in-list...'((*t
1454e0 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 rack*.(type...streamlist).......
145500 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 62 (name..."http://www.somafm.com/b
145520 65 61 74 62 6c 65 6e 64 65 72 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 eatblender.pls").......(metadata
145540 20 22 53 6f 6d 61 46 4d 3a 20 42 65 61 74 62 6c 65 6e 64 65 72 22 20 22 68 74 74 70 3a 2f 2f 77 ."SomaFM:.Beatblender"."http://w
145560 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 62 65 61 74 62 6c 65 6e 64 65 72 2e 70 6c 73 22 20 31 ww.somafm.com/beatblender.pls".1
145580 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 .streamlist)).....(*track*.(type
1455a0 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 ...streamlist).......(name..."ht
1455c0 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 73 65 63 72 65 74 61 67 65 6e 74 2e tp://www.somafm.com/secretagent.
1455e0 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 53 6f 6d 61 46 4d 3a 20 53 pls").......(metadata."SomaFM:.S
145600 65 63 72 65 74 20 41 67 65 6e 74 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e ecret.Agent"."http://www.somafm.
145620 63 6f 6d 2f 73 65 63 72 65 74 61 67 65 6e 74 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c 69 73 com/secretagent.pls".1.streamlis
145640 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c t)).....(*track*.(type...streaml
145660 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 ist).......(name..."http://www.s
145680 6f 6d 61 66 6d 2e 63 6f 6d 2f 67 72 6f 6f 76 65 73 61 6c 61 64 2e 70 6c 73 22 29 0a 09 20 20 20 omafm.com/groovesalad.pls").....
1456a0 20 20 28 6d 65 74 61 64 61 74 61 20 22 53 6f 6d 61 46 4d 3a 20 47 72 6f 6f 76 65 20 53 61 6c 61 ..(metadata."SomaFM:.Groove.Sala
1456c0 64 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 67 72 6f 6f 76 65 d"."http://www.somafm.com/groove
1456e0 73 61 6c 61 64 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a salad.pls".1.streamlist)).....(*
145700 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 track*.(type...streamlist)......
145720 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f .(name..."http://www.somafm.com/
145740 64 72 6f 6e 65 7a 6f 6e 65 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 dronezone.pls").......(metadata.
145760 22 53 6f 6d 61 46 4d 3a 20 44 72 6f 6e 65 20 5a 6f 6e 65 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 "SomaFM:.Drone.Zone"."http://www
145780 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 64 72 6f 6e 65 7a 6f 6e 65 2e 70 6c 73 22 20 31 20 73 74 72 .somafm.com/dronezone.pls".1.str
1457a0 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 eamlist)).....(*track*.(type...s
1457c0 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f treamlist).......(name..."http:/
1457e0 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 74 68 65 74 72 69 70 2e 70 6c 73 22 29 0a 09 20 /www.somafm.com/thetrip.pls")...
145800 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 53 6f 6d 61 46 4d 3a 20 54 68 65 20 54 72 69 70 22 ....(metadata."SomaFM:.The.Trip"
145820 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 74 68 65 74 72 69 70 2e ."http://www.somafm.com/thetrip.
145840 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a pls".1.streamlist)).....(*track*
145860 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 .(type...streamlist).......(name
145880 20 2e 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 6d 61 66 6d 2e 63 6f 6d 2f 69 6e 64 69 65 70 ..."http://www.somafm.com/indiep
1458a0 6f 70 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 53 6f 6d 61 46 4d op.pls").......(metadata."SomaFM
1458c0 3a 20 49 6e 64 69 65 20 50 6f 70 20 52 6f 63 6b 73 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 :.Indie.Pop.Rocks"."http://www.s
1458e0 6f 6d 61 66 6d 2e 63 6f 6d 2f 69 6e 64 69 65 70 6f 70 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d omafm.com/indiepop.pls".1.stream
145900 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 75 72 6c 29 list)).....(*track*.(type...url)
145920 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 6c 69 73 74 65 6e 2e 72 61 64 69 6f 6e 6f 6d .(name..."http://listen.radionom
145940 79 2e 63 6f 6d 3a 38 30 2f 2d 50 48 49 4c 4f 53 4f 4d 41 54 49 4b 41 50 52 4f 47 52 45 53 53 49 y.com:80/-PHILOSOMATIKAPROGRESSI
145960 56 45 2d 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 50 20 48 20 49 20 4c 20 4f VE-").......(metadata."P.H.I.L.O
145980 20 53 20 4f 20 4d 20 41 20 54 20 49 20 4b 20 41 20 2d 20 50 72 6f 67 72 65 73 73 69 76 65 20 50 .S.O.M.A.T.I.K.A.-.Progressive.P
1459a0 73 79 74 72 61 6e 63 65 22 20 22 68 74 74 70 3a 2f 2f 6c 69 73 74 65 6e 2e 72 61 64 69 6f 6e 6f sytrance"."http://listen.radiono
1459c0 6d 79 2e 63 6f 6d 3a 38 30 2f 2d 50 48 49 4c 4f 53 4f 4d 41 54 49 4b 41 50 52 4f 47 52 45 53 53 my.com:80/-PHILOSOMATIKAPROGRESS
1459e0 49 56 45 2d 22 20 31 20 75 72 6c 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 IVE-".1.url)).....(*track*.(type
145a00 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 ...streamlist).......(name..."ht
145a20 74 70 3a 2f 2f 77 77 77 2e 62 61 73 73 64 72 69 76 65 2e 63 6f 6d 2f 42 61 73 73 44 72 69 76 65 tp://www.bassdrive.com/BassDrive
145a40 2e 6d 33 75 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 44 72 75 6d 20 61 6e 64 .m3u").......(metadata."Drum.and
145a60 20 42 61 73 73 20 52 61 64 69 6f 2c 20 42 61 73 73 44 72 69 76 65 22 20 22 68 74 74 70 3a 2f 2f .Bass.Radio,.BassDrive"."http://
145a80 77 77 77 2e 62 61 73 73 64 72 69 76 65 2e 63 6f 6d 2f 42 61 73 73 44 72 69 76 65 2e 6d 33 75 22 www.bassdrive.com/BassDrive.m3u"
145aa0 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 .1.streamlist)).....(*track*.(ty
145ac0 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 pe...streamlist).......(name..."
145ae0 68 74 74 70 3a 2f 2f 77 77 77 2e 69 62 69 62 6c 69 6f 2e 6f 72 67 2f 77 63 70 65 2f 77 63 70 65 http://www.ibiblio.org/wcpe/wcpe
145b00 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 57 43 50 45 2c 20 43 6c .pls").......(metadata."WCPE,.Cl
145b20 61 73 73 69 63 61 6c 20 4d 75 73 69 63 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 62 69 62 6c assical.Music"."http://www.ibibl
145b40 69 6f 2e 6f 72 67 2f 77 63 70 65 2f 77 63 70 65 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c 69 io.org/wcpe/wcpe.pls".1.streamli
145b60 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d st)).....(*track*.(type...stream
145b80 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 73 74 72 65 list).......(name..."http://stre
145ba0 61 6d 2e 6e 75 74 65 2e 6e 65 74 2f 6b 6f 68 69 6e 61 2f 73 74 72 65 61 6d 2e 6f 67 67 2e 6d 33 am.nute.net/kohina/stream.ogg.m3
145bc0 75 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 4b 6f 68 69 6e 61 20 2d 20 4f 6c u").......(metadata."Kohina.-.Ol
145be0 64 20 73 63 68 6f 6f 6c 20 67 61 6d 65 20 61 6e 64 20 64 65 6d 6f 20 6d 75 73 69 63 22 20 22 68 d.school.game.and.demo.music"."h
145c00 74 74 70 3a 2f 2f 73 74 72 65 61 6d 2e 6e 75 74 65 2e 6e 65 74 2f 6b 6f 68 69 6e 61 2f 73 74 72 ttp://stream.nute.net/kohina/str
145c20 65 61 6d 2e 6f 67 67 2e 6d 33 75 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 eam.ogg.m3u".1.streamlist)).....
145c40 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 (*track*.(type...streamlist)....
145c60 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 70 72 69 76 61 74 2e 69 73 2d 62 79 2e ...(name..."http://privat.is-by.
145c80 75 73 3a 38 30 30 30 2f 6e 65 63 74 61 31 39 32 2e 6d 70 33 2e 6d 33 75 22 29 0a 09 20 20 20 20 us:8000/necta192.mp3.m3u")......
145ca0 20 28 6d 65 74 61 64 61 74 61 20 22 4e 65 63 74 61 72 69 6e 65 2c 20 44 65 6d 6f 73 63 65 6e 65 .(metadata."Nectarine,.Demoscene
145cc0 20 52 61 64 69 6f 2c 20 44 45 20 43 6f 6e 74 69 6e 75 75 6d 27 73 20 72 65 6c 61 79 20 31 39 32 .Radio,.DE.Continuum's.relay.192
145ce0 20 6d 70 33 22 20 22 68 74 74 70 3a 2f 2f 70 72 69 76 61 74 2e 69 73 2d 62 79 2e 75 73 3a 38 30 .mp3"."http://privat.is-by.us:80
145d00 30 30 2f 6e 65 63 74 61 31 39 32 2e 6d 70 33 2e 6d 33 75 22 20 31 20 73 74 72 65 61 6d 6c 69 73 00/necta192.mp3.m3u".1.streamlis
145d20 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c t)).....(*track*.(type...streaml
145d40 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 6e 65 63 74 61 ist).......(name..."http://necta
145d60 72 69 6e 65 2e 66 72 6f 6d 2d 64 65 2e 63 6f 6d 2f 6e 65 63 74 61 31 39 32 2e 6d 33 75 22 29 0a rine.from-de.com/necta192.m3u").
145d80 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 4e 65 63 74 61 72 69 6e 65 2c 20 44 65 6d 6f ......(metadata."Nectarine,.Demo
145da0 73 63 65 6e 65 20 52 61 64 69 6f 2c 20 44 45 20 73 74 72 65 61 6d 20 28 48 69 67 68 20 42 69 74 scene.Radio,.DE.stream.(High.Bit
145dc0 72 61 74 65 29 22 20 22 68 74 74 70 3a 2f 2f 6e 65 63 74 61 72 69 6e 65 2e 66 72 6f 6d 2d 64 65 rate)"."http://nectarine.from-de
145de0 2e 63 6f 6d 2f 6e 65 63 74 61 31 39 32 2e 6d 33 75 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 .com/necta192.m3u".1.streamlist)
145e00 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 ).....(*track*.(type...streamlis
145e20 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 66 6d t).......(name..."http://www.wfm
145e40 75 2e 6f 72 67 2f 77 66 6d 75 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 u.org/wfmu.pls").......(metadata
145e60 20 22 57 46 4d 55 2c 20 46 72 65 65 66 6f 72 6d 20 72 61 64 69 6f 22 20 22 68 74 74 70 3a 2f 2f ."WFMU,.Freeform.radio"."http://
145e80 77 77 77 2e 77 66 6d 75 2e 6f 72 67 2f 77 66 6d 75 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c www.wfmu.org/wfmu.pls".1.streaml
145ea0 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 ist)).....(*track*.(type...strea
145ec0 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 77 66 6d mlist).......(name..."http://wfm
145ee0 75 2e 6f 72 67 2f 77 66 6d 75 5f 72 6f 63 6b 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 u.org/wfmu_rock.pls").......(met
145f00 61 64 61 74 61 20 22 57 46 4d 55 2c 20 52 6f 63 6b 27 6e 27 53 6f 75 6c 20 49 63 68 69 62 61 6e adata."WFMU,.Rock'n'Soul.Ichiban
145f20 21 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 66 6d 75 2e 6f 72 67 2f 77 66 6d 75 2e 70 6c 73 !"."http://www.wfmu.org/wfmu.pls
145f40 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 ".1.streamlist)).....(*track*.(t
145f60 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 ype...streamlist).......(name...
145f80 22 68 74 74 70 3a 2f 2f 77 66 6d 75 2e 6f 72 67 2f 77 66 6d 75 5f 64 72 75 6d 6d 65 72 2e 70 6c "http://wfmu.org/wfmu_drummer.pl
145fa0 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 57 46 4d 55 2c 20 47 69 76 65 20 s").......(metadata."WFMU,.Give.
145fc0 74 68 65 20 44 72 75 6d 6d 65 72 20 52 61 64 69 6f 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 the.Drummer.Radio"."http://www.w
145fe0 66 6d 75 2e 6f 72 67 2f 77 66 6d 75 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 fmu.org/wfmu.pls".1.streamlist))
146000 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 .....(*track*.(type...streamlist
146020 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 77 66 6d 75 2e 6f 72 67 ).......(name..."http://wfmu.org
146040 2f 77 66 6d 75 5f 73 68 65 65 6e 61 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 /wfmu_sheena.pls").......(metada
146060 74 61 20 22 57 46 4d 55 2c 20 53 68 65 65 6e 61 27 73 20 4a 75 6e 67 6c 65 20 52 6f 6f 6d 22 20 ta."WFMU,.Sheena's.Jungle.Room".
146080 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 66 6d 75 2e 6f 72 67 2f 77 66 6d 75 2e 70 6c 73 22 20 31 "http://www.wfmu.org/wfmu.pls".1
1460a0 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 .streamlist)).....(*track*.(type
1460c0 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 ...streamlist).......(name..."ht
1460e0 74 70 3a 2f 2f 6e 79 63 30 31 2e 65 67 69 68 6f 73 74 69 6e 67 2e 63 6f 6d 3a 36 32 33 32 2f 6c tp://nyc01.egihosting.com:6232/l
146100 69 73 74 65 6e 2e 70 6c 73 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 61 20 22 57 42 43 isten.pls").......(metadata."WBC
146120 52 2d 4c 50 20 2d 20 42 65 72 6b 73 68 69 72 65 20 43 6f 6d 6d 75 6e 69 74 79 20 52 61 64 69 6f R-LP.-.Berkshire.Community.Radio
146140 22 20 22 68 74 74 70 3a 2f 2f 6e 79 63 30 31 2e 65 67 69 68 6f 73 74 69 6e 67 2e 63 6f 6d 3a 36 "."http://nyc01.egihosting.com:6
146160 32 33 32 2f 6c 69 73 74 65 6e 2e 70 6c 73 22 20 31 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 232/listen.pls".1.streamlist))..
146180 20 20 20 28 2a 74 72 61 63 6b 2a 20 28 74 79 70 65 20 2e 20 73 74 72 65 61 6d 6c 69 73 74 29 0a ...(*track*.(type...streamlist).
1461a0 09 20 20 20 20 20 28 6e 61 6d 65 20 2e 20 22 68 74 74 70 3a 2f 2f 31 39 39 2e 32 34 34 2e 38 35 ......(name..."http://199.244.85
1461c0 2e 31 32 35 3a 38 30 30 30 2f 77 78 68 71 31 22 29 0a 09 20 20 20 20 20 28 6d 65 74 61 64 61 74 .125:8000/wxhq1").......(metadat
1461e0 61 20 22 57 58 48 51 2d 4c 50 20 2d 20 4e 65 77 70 6f 72 74 20 52 61 64 69 6f 22 20 22 68 74 74 a."WXHQ-LP.-.Newport.Radio"."htt
146200 70 3a 2f 2f 31 39 39 2e 32 34 34 2e 38 35 2e 31 32 35 3a 38 30 30 30 2f 77 78 68 71 31 22 20 31 p://199.244.85.125:8000/wxhq1".1
146220 20 73 74 72 65 61 6d 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 .streamlist))))..(defcustom.emms
146240 2d 73 74 72 65 61 6d 73 2d 66 69 6c 65 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 -streams-file.(concat.(file-name
146260 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 09 09 -as-directory.emms-directory)...
146280 09 09 20 20 20 20 20 22 73 74 72 65 61 6d 73 2e 65 6d 6d 73 22 29 0a 20 20 22 41 20 66 69 6c 65 ......."streams.emms")..."A.file
1462a0 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 73 74 72 65 .used.to.store.the.built-in.stre
1462c0 61 6d 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 69 ams."...:group.'emms...:type.'fi
1462e0 6c 65 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d le)...;;;.----------------------
146300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
146320 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ------------.;;;.private.functio
146340 6e 73 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ns.;;;.-------------------------
146360 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
146380 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 69 ---------..(defun.emms-streams-i
1463a0 6e 73 74 61 6c 6c 2d 66 69 6c 65 20 28 66 69 6c 65 29 0a 20 20 22 49 6e 73 74 61 6c 6c 20 46 49 nstall-file.(file)..."Install.FI
1463c0 4c 45 2c 20 63 6f 6e 74 61 69 6e 69 6e 67 20 73 74 72 65 61 6d 73 2e 22 0a 20 20 28 77 68 65 6e LE,.containing.streams."...(when
1463e0 20 28 6e 6f 74 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 66 69 6c 65 2d 6e 61 .(not.(file-directory-p.(file-na
146400 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 66 69 6c 65 29 29 me-directory.emms-streams-file))
146420 29 0a 20 20 20 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 ).....(make-directory.(file-name
146440 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 66 69 6c 65 29 29 29 0a -directory.emms-streams-file))).
146460 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 ..(if.(or.(not.(file-exists-p.fi
146480 6c 65 29 29 0a 09 20 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 le))....(and.(file-exists-p.file
1464a0 29 0a 09 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 6f 76 65 ).........(y-or-n-p.(format."ove
1464c0 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 25 73 3f 22 20 66 69 6c 65 29 29 29 29 0a 20 20 rwrite.existing.%s?".file))))...
1464e0 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 6d 65 73 73 61 67 65 20 22 77 72 69 74 69 6e 67 20 25 73 ....(progn..(message."writing.%s
146500 22 20 66 69 6c 65 29 0a 09 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 09 20 20 28 69 ".file)..(with-temp-buffer....(i
146520 6e 73 65 72 74 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2d 6e 61 74 69 76 nsert.emms-source-playlist-nativ
146540 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 29 0a 09 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 e-header-line)....(insert.(forma
146560 74 20 22 5c 6e 25 73 5c 6e 5c 6e 22 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 69 6c 74 2d t."\n%s\n\n".emms-streams-built-
146580 69 6e 2d 64 69 73 63 6c 61 69 6d 65 72 29 29 0a 09 20 20 28 69 6e 73 65 72 74 0a 09 20 20 20 28 in-disclaimer))....(insert.....(
1465a0 63 6f 6e 63 61 74 20 22 28 22 0a 09 09 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 09 09 20 20 20 concat."("......(mapconcat......
1465c0 20 23 27 28 6c 61 6d 62 64 61 20 28 65 29 0a 09 09 09 28 66 6f 72 6d 61 74 20 22 25 53 22 20 65 .#'(lambda.(e)....(format."%S".e
1465e0 29 29 0a 09 09 20 20 20 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 69 6c 74 2d 69 6e 2d 6c )).......emms-streams-built-in-l
146600 69 73 74 20 22 5c 6e 22 29 0a 09 09 20 20 20 22 29 22 29 29 0a 09 20 20 28 77 72 69 74 65 2d 72 ist."\n")......")"))....(write-r
146620 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 66 69 egion.(point-min).(point-max).fi
146640 6c 65 29 29 0a 09 28 6d 65 73 73 61 67 65 20 22 77 72 69 74 69 6e 67 20 25 73 2e 2e 2e 20 64 6f le))..(message."writing.%s....do
146660 6e 65 22 20 66 69 6c 65 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 61 62 6f 72 74 69 6e ne".file)).....(message."abortin
146680 67 22 29 29 29 0a 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d g")))...;;;.--------------------
1466a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1466c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 69 6e 74 65 72 66 61 63 65 0a 3b 3b 3b --------------.;;;.interface.;;;
1466e0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
146700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
146720 2d 2d 2d 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 69 6e 73 74 61 6c 6c ---..(defun.emms-streams-install
146740 20 28 29 0a 20 20 22 49 6e 73 74 61 6c 6c 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 73 74 72 65 .()..."Install.the.built-in.stre
146760 61 6d 73 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d ams.file."...(interactive)...(em
146780 6d 73 2d 73 74 72 65 61 6d 73 2d 69 6e 73 74 61 6c 6c 2d 66 69 6c 65 20 65 6d 6d 73 2d 73 74 72 ms-streams-install-file.emms-str
1467a0 65 61 6d 73 2d 66 69 6c 65 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 eams-file))..;;;###autoload.(def
1467c0 75 6e 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 6f 72 20 un.emms-streams.()..."Create.or.
1467e0 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 73 74 72 65 61 6d 69 6e 67 switch.to.the.built-in.streaming
146800 20 61 75 64 69 6f 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 .audio.playlist."...(interactive
146820 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 66 69 6c 65 2d 65 78 69 73 74 73 )...(when.(and.(not.(file-exists
146840 2d 70 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 66 69 6c 65 29 29 0a 09 20 20 20 20 20 28 79 2d -p.emms-streams-file)).......(y-
146860 6f 72 2d 6e 2d 70 20 22 45 6d 6d 73 27 20 62 75 69 6c 74 2d 69 6e 20 73 74 72 65 61 6d 73 20 66 or-n-p."Emms'.built-in.streams.f
146880 69 6c 65 20 68 61 73 6e 27 74 20 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 79 65 74 2e 20 49 ile.hasn't.been.installed.yet..I
1468a0 6e 73 74 61 6c 6c 20 69 74 20 6e 6f 77 3f 22 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 73 74 72 65 nstall.it.now?")).....(emms-stre
1468c0 61 6d 73 2d 69 6e 73 74 61 6c 6c 29 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 67 65 74 2d ams-install))...(let.((buf.(get-
1468e0 62 75 66 66 65 72 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 buffer.emms-streams-buffer-name)
146900 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 62 75 66 29 0a 20 20 20 20 20 20 28 77 69 )).....(when.(not.buf).......(wi
146920 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 th-current-buffer.(get-buffer-cr
146940 65 61 74 65 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 09 eate.emms-streams-buffer-name)..
146960 28 73 65 74 71 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 09 28 65 6d (setq.buf.(current-buffer))..(em
146980 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c ms-playlist-mode)..(setq.emms-pl
1469a0 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 74 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 aylist-buffer-p.t)..(emms-playli
1469c0 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d st-set-playlist-buffer.(current-
1469e0 62 75 66 66 65 72 29 29 0a 09 28 65 6d 6d 73 2d 61 64 64 2d 6e 61 74 69 76 65 2d 70 6c 61 79 6c buffer))..(emms-add-native-playl
146a00 69 73 74 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 73 77 ist.emms-streams-file))).....(sw
146a20 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 itch-to-buffer.buf)))...(provide
146a40 20 27 65 6d 6d 73 2d 73 74 72 65 61 6d 73 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 73 74 72 65 61 6d .'emms-streams)..;;;.emms-stream
146a60 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 s.el.ends.here..................
146a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c00 65 6d 6d 73 2d 32 34 2f 4e 45 57 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/NEWS....................
146c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
146c80 30 30 33 34 34 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 34 31 30 00 20 30 00 00 00 0034470.00000000000.011410..0...
146ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
146d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
146d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146e00 4e 65 77 20 69 6e 20 32 34 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c New.in.24......*.emms-volume-pul
146e20 73 65 2e 65 6c 3a 20 61 76 6f 69 64 20 65 78 74 72 61 20 6d 69 6e 69 2d 62 75 66 66 65 72 20 6d se.el:.avoid.extra.mini-buffer.m
146e40 65 73 73 61 67 65 73 20 6f 6e 20 76 6f 6c 75 6d 65 20 63 68 61 6e 67 65 2e 0a 20 20 20 20 2a 20 essages.on.volume.change......*.
146e60 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2e 65 6c 3a 20 43 68 65 63 6b 20 74 emms-source-playlist.el:.Check.t
146e80 68 61 74 20 60 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 27 20 69 73 hat.`emms-cache-set-function'.is
146ea0 20 62 6f 75 6e 64 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2e 65 6c .bound......*.emms-tag-editor.el
146ec0 3a 20 72 65 70 6c 61 63 65 20 73 74 72 69 6e 67 73 20 69 6e 20 66 69 6c 65 6e 61 6d 65 20 77 68 :.replace.strings.in.filename.wh
146ee0 65 6e 20 72 65 6e 61 6d 69 6e 67 2e 0a 0a 0a 4e 65 77 20 69 6e 20 32 33 0a 0a 20 20 20 20 2a 20 en.renaming....New.in.23......*.
146f00 65 6d 6d 73 2d 72 61 64 69 6f 2d 62 72 6f 77 73 65 72 2e 65 6c 3a 20 61 6e 20 45 4d 4d 53 20 63 emms-radio-browser.el:.an.EMMS.c
146f20 6c 69 65 6e 74 20 66 6f 72 20 72 61 64 69 6f 2d 62 72 6f 77 65 72 20 41 50 49 2e 0a 20 20 20 20 lient.for.radio-brower.API......
146f40 2a 20 65 6d 6d 73 2e 65 6c 3a 20 61 64 64 20 60 69 6e 73 65 72 74 2d 63 75 72 72 65 6e 74 27 20 *.emms.el:.add.`insert-current'.
146f60 74 6f 20 60 64 65 66 69 6e 65 2d 65 6d 6d 73 2d 73 6f 75 72 63 65 27 20 6d 61 63 72 6f 2e 0a 20 to.`define-emms-source'.macro...
146f80 20 20 20 2a 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c 3a 20 66 69 6c 74 65 72 20 61 6e 64 ...*.emms-filters.el:.filter.and
146fa0 20 73 65 61 72 63 68 20 74 68 65 20 6d 65 74 61 64 61 74 61 20 63 61 63 68 65 2e 0a 20 20 20 20 .search.the.metadata.cache......
146fc0 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 3a 20 66 69 6c 74 65 72 20 61 6e 64 20 73 65 *.emms-browser.el:.filter.and.se
146fe0 61 72 63 68 20 75 73 69 6e 67 20 65 6d 6d 73 2d 66 69 6c 74 65 72 73 2e 65 6c 2e 0a 0a 20 20 20 arch.using.emms-filters.el......
147000 20 53 70 65 63 69 61 6c 20 74 68 61 6e 6b 20 79 6f 75 20 74 6f 20 46 72 61 6e 20 42 75 72 73 74 .Special.thank.you.to.Fran.Burst
147020 61 6c 6c 20 61 6e 64 20 45 72 69 63 61 20 4c 69 6e 61 20 51 69 0a 0a 0a 4e 65 77 20 69 6e 20 32 all.and.Erica.Lina.Qi...New.in.2
147040 32 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 76 2e 65 6c 3a 20 72 61 69 2......*.emms-volume-mpv.el:.rai
147060 73 65 20 6f 72 20 6c 6f 77 65 72 20 74 68 65 20 76 6f 6c 75 6d 65 20 6f 66 20 6d 70 76 20 28 6e se.or.lower.the.volume.of.mpv.(n
147080 65 77 20 66 69 6c 65 29 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e ew.file)......*.emms-player-mpd.
1470a0 65 6c 3a 20 4d 61 74 63 68 20 48 54 54 50 53 20 55 52 4c 73 20 69 6e 20 4d 50 44 20 70 6c 61 79 el:.Match.HTTPS.URLs.in.MPD.play
1470c0 65 72 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2e 65 6c 3a 20 55 73 65 er......*.emms-mode-line.el:.Use
1470e0 20 63 68 61 72 61 63 74 65 72 20 77 69 64 74 68 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 .character.width.to.display.the.
147100 74 72 61 63 6b 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 69 6e track.description......*.emms-in
147120 66 6f 2d 65 78 69 66 74 6f 6f 6c 2e 65 6c 3a 20 65 6e 73 75 72 65 20 6e 75 6d 65 72 69 63 20 61 fo-exiftool.el:.ensure.numeric.a
147140 6c 62 75 6d 20 74 69 74 6c 65 73 20 61 6e 64 20 69 6e 66 6f 20 61 72 65 20 73 74 72 69 6e 67 73 lbum.titles.and.info.are.strings
147160 2e 0a 20 20 20 20 2a 20 45 78 61 6e 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f ......*.Exanded.documentation.fo
147180 72 20 70 6c 61 79 6c 69 73 74 20 6c 6f 63 6b 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 0a 4e 65 77 r.playlist.lock.functions....New
1471a0 20 69 6e 20 32 31 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2e 65 6c 3a 20 6e 65 77 20 66 75 6e 63 74 .in.21......*.emms.el:.new.funct
1471c0 69 6f 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 65 6e 67 74 68 27 20 61 6e 64 20 60 ion.`emms-playlist-length'.and.`
1471e0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 6f 74 61 6c 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 emms-playlist-total-playing-time
147200 27 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2e 65 6c 3a 20 60 65 6d 6d 73 2d 72 65 70 65 61 74 2d 74 '......*.emms.el:.`emms-repeat-t
147220 72 61 63 6b 27 20 69 73 20 6e 6f 77 20 62 75 66 66 65 72 20 6c 6f 63 61 6c 2e 0a 20 20 20 20 2a rack'.is.now.buffer.local......*
147240 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2d 6c 72 63 6c 69 62 2e 65 6c 20 4e 65 77 20 6d 6f 64 75 6c .emms-lyrics-lrclib.el.New.modul
147260 65 20 66 6f 72 20 66 65 74 63 68 69 6e 67 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 6c 79 72 69 e.for.fetching.synchronized.lyri
147280 63 73 20 66 72 6f 6d 20 4c 52 43 4c 49 42 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 cs.from.LRCLIB......*.emms-brows
1472a0 65 72 2e 65 6c 3a 20 55 73 65 20 70 72 65 2d 64 65 66 69 6e 65 64 20 63 6f 6e 76 65 72 74 20 77 er.el:.Use.pre-defined.convert.w
1472c0 68 65 6e 20 63 61 63 68 69 6e 67 20 74 68 75 6d 62 6e 61 69 6c 73 2e 0a 20 20 20 20 2a 20 65 6d hen.caching.thumbnails......*.em
1472e0 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 6d 70 33 2e 65 6c 3a 20 46 69 78 20 70 6f 73 73 69 ms-info-native-mp3.el:.Fix.possi
147300 62 6c 65 20 74 79 70 65 20 65 72 72 6f 72 20 69 6e 20 4d 50 33 20 64 75 72 61 74 69 6f 6e 20 64 ble.type.error.in.MP3.duration.d
147320 65 63 6f 64 69 6e 67 2e 0a 20 20 20 20 2a 20 41 64 64 20 61 6c 62 75 6d 20 61 72 74 69 73 74 20 ecoding......*.Add.album.artist.
147340 74 6f 20 6d 65 74 61 66 6c 61 63 2c 20 74 61 67 20 65 64 69 74 6f 72 2c 20 70 6c 61 79 6c 69 73 to.metaflac,.tag.editor,.playlis
147360 74 20 73 6f 72 74 20 61 6e 64 20 6c 69 6d 69 74 2e 0a 20 20 20 20 2a 20 41 64 64 20 61 63 74 69 t.sort.and.limit......*.Add.acti
147380 76 65 20 70 6c 61 79 6c 69 73 74 20 6c 6f 63 6b 2c 20 62 72 6f 77 73 65 20 61 6e 64 20 73 65 6e ve.playlist.lock,.browse.and.sen
1473a0 64 20 73 6f 6e 67 73 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 6c 61 79 6c 69 73 74 73 2e 0a 0a 0a d.songs.from.other.playlists....
1473c0 4e 65 77 20 69 6e 20 32 30 2e 32 0a 0a 20 20 20 20 2a 20 46 69 78 20 60 65 6d 6d 73 2d 73 69 6e New.in.20.2......*.Fix.`emms-sin
1473e0 67 6c 65 2d 74 72 61 63 6b 27 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 6d 70 76 2e gle-track'.not.working.with.mpv.
147400 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2e 65 6c 3a 20 46 69 78 .....*.emms-source-beets.el:.Fix
147420 20 66 69 6c 74 65 72 20 6e 6f 74 20 63 6c 65 61 72 65 64 20 6f 76 65 72 20 6d 75 6c 74 69 70 6c .filter.not.cleared.over.multipl
147440 65 20 63 61 6c 6c 73 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 3a 20 66 e.calls.....*.emms-player-mpd:.f
147460 69 78 65 64 20 61 6c 62 75 6d 61 72 74 69 73 74 20 6e 6f 74 20 62 65 69 6e 67 20 72 65 63 6f 72 ixed.albumartist.not.being.recor
147480 64 65 64 20 66 72 6f 6d 20 6d 70 64 2e 0a 20 20 20 20 2a 20 52 65 6d 6f 76 65 20 72 65 66 65 72 ded.from.mpd......*.Remove.refer
1474a0 65 6e 63 65 73 20 69 6e 20 63 6f 64 65 20 74 6f 20 64 65 66 75 6e 63 74 20 73 65 72 76 69 63 65 ences.in.code.to.defunct.service
1474c0 73 2e 0a 0a 0a 4e 65 77 20 69 6e 20 32 30 2e 31 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 69 6e 66 s....New.in.20.1......*.emms-inf
1474e0 6f 2e 65 6c 3a 20 61 64 64 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 69 6e 69 74 2d 64 6f 6e 65 2d 68 o.el:.add.`emms-info-init-done-h
147500 6f 6f 6b 27 2e 0a 0a 0a 4e 65 77 20 69 6e 20 32 30 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 76 6f ook'....New.in.20......*.emms-vo
147520 6c 75 6d 65 2d 70 75 6c 73 65 2e 65 6c 3a 20 44 65 61 6c 20 77 69 74 68 20 70 61 63 74 6c 20 62 lume-pulse.el:.Deal.with.pactl.b
147540 65 69 6e 67 20 74 72 61 6e 73 6c 61 74 65 64 20 63 6f 72 72 65 63 74 6c 79 2e 0a 20 20 20 20 2a eing.translated.correctly......*
147560 20 62 65 65 74 73 3a 20 41 64 64 20 60 73 6f 72 74 27 20 61 72 67 75 6d 65 6e 74 20 63 6f 6e 74 .beets:.Add.`sort'.argument.cont
147580 72 6f 6c 6c 69 6e 67 20 73 6f 72 74 69 6e 67 20 6f 66 20 61 64 64 65 64 20 74 72 61 63 6b 73 2e rolling.sorting.of.added.tracks.
1475a0 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 6c 69 73 74 65 6e 62 72 61 69 6e 7a 2d 73 63 72 6f 62 62 6c .....*.emms-listenbrainz-scrobbl
1475c0 65 72 2e 65 6c 3a 20 6e 65 77 20 66 65 61 74 75 72 65 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 63 er.el:.new.feature......*.emms-c
1475e0 75 65 2e 65 6c 3a 20 55 73 65 20 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 74 6f 20 6a 75 ue.el:.Use.completing-read.to.ju
147600 6d 70 20 74 6f 20 74 72 61 63 6b 73 20 69 6e 20 63 75 65 20 66 69 6c 65 2e 0a 20 20 20 20 2a 20 mp.to.tracks.in.cue.file......*.
147620 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 2e 65 6c 3a 20 60 2e 2e 2d 73 6f 72 74 2d emms-playlist-sort.el:.`..-sort-
147640 73 68 75 66 66 6c 65 27 20 61 6e 64 20 60 2e 2e 2d 73 6f 72 74 2d 62 79 2d 72 61 6e 64 6f 6d 27 shuffle'.and.`..-sort-by-random'
147660 20 61 6c 69 61 73 65 73 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 39 0a 0a 20 20 20 20 2a 20 65 6d 6d .aliases....New.in.19......*.emm
147680 73 2d 73 6f 75 72 63 65 2d 62 65 65 74 73 2e 65 6c 3a 20 45 4d 4d 53 20 73 6f 75 72 63 65 20 75 s-source-beets.el:.EMMS.source.u
1476a0 74 69 6c 69 7a 69 6e 67 20 61 20 62 65 65 74 73 20 6c 69 62 72 61 72 79 20 64 61 74 61 62 61 73 tilizing.a.beets.library.databas
1476c0 65 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2e 65 6c 3a 20 73 e......*.emms-playing-time.el:.s
1476e0 68 6f 77 20 68 6f 75 72 73 20 69 6e 20 70 6c 61 79 69 6e 67 20 74 69 6d 65 2e 0a 20 20 20 20 2a how.hours.in.playing.time......*
147700 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 3a 20 46 61 63 74 6f 72 20 63 68 65 63 .emms-player-mpd.el:.Factor.chec
147720 6b 20 66 6f 72 20 72 65 6d 6f 74 65 20 66 69 6c 65 73 20 69 6e 74 6f 20 61 20 66 75 6e 63 74 69 k.for.remote.files.into.a.functi
147740 6f 6e 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 3a 20 4f 6e on......*.emms-player-mpd.el:.On
147760 6c 79 20 70 6c 61 79 20 75 73 69 6e 67 20 4d 50 44 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 ly.play.using.MPD.if.the.file.is
147780 20 69 6e 20 74 68 65 20 72 69 67 68 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 20 20 20 20 2a 20 65 .in.the.right.directory......*.e
1477a0 6d 6d 73 2d 69 6e 66 6f 2e 65 6c 3a 20 42 65 74 74 65 72 20 64 65 66 61 75 6c 74 20 64 69 73 70 mms-info.el:.Better.default.disp
1477c0 6c 61 79 20 6f 66 20 74 72 61 63 6b 73 20 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 2c 20 61 72 74 lay.of.tracks.with.composer,.art
1477e0 69 73 74 2c 20 74 69 74 6c 65 2c 20 61 6e 64 20 61 6c 62 75 6d 20 66 69 65 6c 64 73 2e 0a 20 20 ist,.title,.and.album.fields....
147800 20 20 2a 20 65 6d 6d 73 2d 6d 6f 64 65 2d 6c 69 6e 65 2e 65 6c 3a 20 74 72 75 6e 63 61 74 65 20 ..*.emms-mode-line.el:.truncate.
147820 6f 76 65 72 6c 79 20 6c 6f 6e 67 20 64 65 73 63 72 69 70 74 69 6f 6e 73 2e 0a 20 20 20 20 2a 20 overly.long.descriptions......*.
147840 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 0a 0a 0a 4e 65 77 20 69 6e 20 Documentation.updates....New.in.
147860 31 38 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 3a 20 72 65 18......*.emms-player-mpv.el:.re
147880 6d 6f 76 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2d 69 70 63 2d 63 6f 6e 6e 2d 65 6d move.emms-player-mpv-ipc-conn-em
1478a0 61 63 73 2d 32 36 2e 31 2d 77 6f 72 6b 61 72 6f 75 6e 64 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d acs-26.1-workaround......*.emms-
1478c0 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 3a 20 72 65 6d 6f 76 65 20 6c 6f 6e 67 2d 64 65 70 72 65 player-mpv.el:.remove.long-depre
1478e0 63 61 74 65 64 20 2d 2d 69 6e 70 75 74 2d 66 69 6c 65 3d 66 69 66 6f 20 73 75 70 70 6f 72 74 2e cated.--input-file=fifo.support.
147900 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 3a 20 73 68 .....*.emms-playlist-mode.el:.sh
147920 69 66 74 20 61 20 74 72 61 63 6b 20 75 70 20 6f 72 20 64 6f 77 6e 20 62 79 20 61 20 6c 69 6e 65 ift.a.track.up.or.down.by.a.line
147940 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 2e 65 6c 3a 20 ......*.emms-playlist-limit.el:.
147960 61 64 64 20 6c 69 6d 69 74 69 6e 67 20 74 6f 20 6e 6f 74 65 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 add.limiting.to.note....New.in.1
147980 37 0a 0a 20 20 20 20 2a 20 41 75 74 6f 6d 61 74 69 63 20 64 65 74 65 63 74 69 6f 6e 20 6f 66 20 7......*.Automatic.detection.of.
1479a0 65 78 69 73 74 69 6e 67 20 70 6c 61 79 65 72 73 20 76 69 61 20 60 65 6d 6d 73 2d 73 65 74 75 70 existing.players.via.`emms-setup
1479c0 2d 64 69 73 63 6f 76 65 72 27 2e 0a 20 20 20 20 2a 20 41 75 74 6f 64 65 74 65 63 74 20 47 4e 55 -discover'......*.Autodetect.GNU
1479e0 20 66 69 6e 64 2e 0a 20 20 20 20 2a 20 4e 61 74 69 76 65 20 64 65 63 6f 64 69 6e 67 20 6f 66 20 .find......*.Native.decoding.of.
147a00 70 6c 61 79 69 6e 67 20 74 69 6d 65 20 66 6f 72 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 playing.time.for.`emms-info-nati
147a20 76 65 27 2e 0a 20 20 20 20 2a 20 41 64 64 20 69 6e 66 6f 20 73 75 70 70 6f 72 74 20 66 6f 72 20 ve'......*.Add.info.support.for.
147a40 53 4e 45 53 20 53 50 43 20 66 69 6c 65 73 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 36 0a 0a 20 20 20 SNES.SPC.files....New.in.16.....
147a60 20 2a 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6f 67 67 69 6e 66 6f 3a 20 41 76 6f 69 64 20 77 72 69 74 .*.emms-info-ogginfo:.Avoid.writ
147a80 69 6e 67 20 6f 67 67 69 6e 66 6f 20 74 61 67 73 20 6f 76 65 72 20 31 6b 2e 0a 20 20 20 20 2a 20 ing.ogginfo.tags.over.1k......*.
147aa0 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 3a 20 55 70 64 61 74 65 64 20 55 52 4c 73 2c 20 61 emms-streams.el:.Updated.URLs,.a
147ac0 76 6f 69 64 20 65 61 72 6c 79 20 6c 6f 61 64 69 6e 67 20 65 72 72 6f 72 73 2e 0a 20 20 20 20 2a void.early.loading.errors......*
147ae0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 3a 20 55 73 65 20 6e 61 74 69 76 65 20 .emms-player-mpd.el:.Use.native.
147b00 72 65 6c 61 74 69 76 65 20 73 65 65 6b 69 6e 67 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 relative.seeking......*.emms-pla
147b20 79 65 72 2d 6d 70 64 2e 65 6c 3a 20 46 69 78 20 63 6f 6e 73 75 6d 65 20 61 6e 64 20 72 61 6e 64 yer-mpd.el:.Fix.consume.and.rand
147b40 6f 6d 20 6d 6f 64 65 73 20 69 6e 20 4d 50 44 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 35 0a 0a 20 20 om.modes.in.MPD....New.in.15....
147b60 20 20 2a 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 2e 65 6c 3a 20 61 64 64 ..*.emms-source-playlist.el:.add
147b80 20 6e 61 74 69 76 65 20 70 6c 61 79 6c 69 73 74 20 74 6f 20 63 61 63 68 65 2e 0a 20 20 20 20 2a .native.playlist.to.cache......*
147ba0 20 65 6d 6d 73 2d 6d 70 72 69 73 2e 65 6c 3a 20 61 64 64 20 73 68 75 66 66 6c 65 20 61 6e 64 20 .emms-mpris.el:.add.shuffle.and.
147bc0 6c 6f 6f 70 73 74 61 74 75 73 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 6d 70 72 69 73 2e 65 6c 3a loopstatus......*.emms-mpris.el:
147be0 20 66 69 78 20 61 72 74 55 72 6c 20 6d 65 74 61 74 61 64 61 74 61 20 69 73 73 75 65 73 2e 0a 20 .fix.artUrl.metatadata.issues...
147c00 20 20 20 2a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2e 65 6c 2c 20 65 6d 6d 73 2d ...*.emms-volume-pulse.el,.emms-
147c20 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 2c 20 65 6d 6d 73 2e 65 6c 3a 20 75 6e 69 66 69 volume-amixer.el,.emms.el:.unifi
147c40 65 64 20 60 67 65 74 27 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 6d ed.`get'.interface......*.emms-m
147c60 61 72 6b 2e 65 6c 3a 20 66 69 78 20 62 75 67 20 77 68 65 6e 20 73 65 74 74 69 6e 67 20 60 65 6d ark.el:.fix.bug.when.setting.`em
147c80 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 64 65 66 61 75 6c 74 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 27 2e ms-playlist-default-major-mode'.
147ca0 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 3a 20 44 6f .....*.emms-playlist-mode.el:.Do
147cc0 20 6e 6f 74 20 72 75 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 27 20 61 74 .not.run.`emms-playlist-mode'.at
147ce0 20 74 68 65 20 77 72 6f 6e 67 20 74 69 6d 65 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 62 72 6f 77 .the.wrong.time......*.emms-brow
147d00 73 65 72 2e 65 6c 3a 20 46 69 78 20 62 75 67 20 69 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d ser.el:.Fix.bug.in.emms-browser-
147d20 66 6f 72 6d 61 74 2d 73 70 65 63 2e 0a 20 20 20 20 2a 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e format-spec......*.Documentation
147d40 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 75 70 64 61 74 65 73 2e 0a 0a 0a 4e 65 77 .improvements.and.updates....New
147d60 20 69 6e 20 31 34 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2e 65 6c 3a 20 46 69 78 20 65 6d 6d 73 2d .in.14......*.emms.el:.Fix.emms-
147d80 73 65 65 6b 2d 2a 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 6e 75 seek-*.functions.to.work.with.nu
147da0 6d 62 65 72 20 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 6d 70 72 69 73 mber.arguments......*.emms-mpris
147dc0 2e 65 6c 3a 20 46 69 78 20 53 65 65 6b 20 61 6e 64 20 53 65 74 50 6f 73 69 74 69 6f 6e 20 6d 65 .el:.Fix.Seek.and.SetPosition.me
147de0 74 68 6f 64 73 2c 20 69 6d 70 6c 65 6d 65 6e 74 20 50 72 6f 70 65 72 74 69 65 73 2e 47 65 74 41 thods,.implement.Properties.GetA
147e00 6c 6c 20 6d 65 74 68 6f 64 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 33 0a 0a 20 20 20 20 2a 20 65 6d ll.method....New.in.13......*.em
147e20 6d 73 2d 6d 70 72 69 73 2e 65 6c 3a 20 70 72 6f 76 69 64 65 73 20 61 20 64 62 75 73 20 69 6e 74 ms-mpris.el:.provides.a.dbus.int
147e40 65 72 66 61 63 65 20 74 6f 20 45 4d 4d 53 2e 0a 20 20 20 20 2a 20 71 75 69 63 6b 73 74 61 72 74 erface.to.EMMS......*.quickstart
147e60 20 73 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 6d 61 6e 75 61 6c 20 68 61 73 20 62 65 65 6e 20 .section.in.the.manual.has.been.
147e80 69 6d 70 72 6f 76 65 64 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 32 0a 0a 20 20 20 20 2a 20 65 6d 6d improved....New.in.12......*.emm
147ea0 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 2e 65 6c 3a 20 54 72 79 20 74 6f 20 66 69 6e 64 20 74 s-volume-pulse.el:.Try.to.find.t
147ec0 68 65 20 64 65 66 61 75 6c 74 20 73 69 6e 6b 2e 0a 20 20 20 20 2a 20 60 65 6d 6d 73 2d 73 65 74 he.default.sink......*.`emms-set
147ee0 75 70 2d 64 69 73 63 6f 76 65 72 2d 70 6c 61 79 65 72 73 27 20 61 75 74 6f 6d 61 74 69 63 20 70 up-discover-players'.automatic.p
147f00 6c 61 79 65 72 20 64 69 73 63 6f 76 65 72 79 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2e 65 6c 3a 20 layer.discovery......*.emms.el:.
147f20 72 65 76 65 72 73 65 20 74 68 65 20 6f 72 64 65 72 20 70 6c 61 79 65 72 73 20 61 72 65 20 63 6f reverse.the.order.players.are.co
147f40 6c 6c 65 63 74 65 64 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 3a 20 llected......*.emms-browser.el:.
147f60 74 61 62 20 6e 6f 77 20 74 6f 67 67 6c 65 73 20 73 75 62 69 74 65 6d 73 2e 0a 20 20 20 20 2a 20 tab.now.toggles.subitems......*.
147f80 65 6d 6d 73 2e 65 6c 3a 20 61 63 63 65 70 74 20 74 69 6d 65 73 74 61 6d 70 73 20 69 6e 20 65 6d emms.el:.accept.timestamps.in.em
147fa0 6d 73 2d 73 65 65 6b 2a 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f ms-seek*......*.emms-playlist-mo
147fc0 64 65 2e 65 6c 3a 20 50 72 65 66 65 72 20 75 73 69 6e 67 20 64 69 72 65 64 2d 6a 75 6d 70 2e 0a de.el:.Prefer.using.dired-jump..
147fe0 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 65 6c 20 28 65 6d 6d ....*.emms-playlist-mode.el.(emm
148000 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 67 6f 74 6f 2d 64 69 72 65 64 2d 61 74 2d 70 6f s-playlist-mode-goto-dired-at-po
148020 69 6e 74 29 3a 20 55 73 65 0a 20 20 20 20 20 20 64 69 72 65 64 2d 6a 75 6d 70 2c 20 6f 70 74 69 int):.Use.......dired-jump,.opti
148040 6f 6e 61 6c 6c 79 20 6f 70 65 6e 69 6e 67 20 74 68 65 20 64 69 72 65 64 20 62 75 66 66 65 72 20 onally.opening.the.dired.buffer.
148060 69 6e 20 6f 74 68 65 72 2d 77 69 6e 64 6f 77 2e 0a 0a 0a 4e 65 77 20 69 6e 20 31 31 0a 0a 20 20 in.other-window....New.in.11....
148080 20 20 2a 20 42 75 67 20 66 69 78 3a 20 65 6d 6d 73 2d 69 6e 66 6f 2d 65 78 69 66 74 6f 6f 6c 2e ..*.Bug.fix:.emms-info-exiftool.
1480a0 65 6c 20 6e 6f 77 20 68 61 6e 64 6c 65 73 20 6e 75 6d 65 72 69 63 20 73 6f 6e 67 20 74 69 74 6c el.now.handles.numeric.song.titl
1480c0 65 73 20 67 72 61 63 65 66 75 6c 6c 79 2e 0a 20 20 20 20 2a 20 43 61 63 68 65 20 69 73 20 6e 6f es.gracefully......*.Cache.is.no
1480e0 77 20 73 61 76 65 64 20 61 66 74 65 72 20 74 61 67 20 65 64 69 74 69 6e 67 2e 0a 20 20 20 20 2a w.saved.after.tag.editing......*
148100 20 4d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 69 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 .Minor.bug.fixes.in.emms-tag-edi
148120 74 6f 72 2e 65 6c 20 61 6e 64 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 2e 0a 0a 0a 4e 65 tor.el.and.emms-streams.el....Ne
148140 77 20 69 6e 20 31 30 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 w.in.10......*.emms-player-mpv.e
148160 6c 3a 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 69 6d 70 72 6f 76 6d 65 6e 74 73 20 28 64 65 l:.bug.fixes.and.improvments.(de
148180 74 61 69 6c 73 20 69 6e 20 56 43 20 68 69 73 74 6f 72 79 29 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 tails.in.VC.history)......*.emms
1481a0 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 3a 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 69 6d -player-mpd.el:.bug.fixes.and.im
1481c0 70 72 6f 76 6d 65 6e 74 73 20 28 64 65 74 61 69 6c 73 20 69 6e 20 56 43 20 68 69 73 74 6f 72 79 provments.(details.in.VC.history
1481e0 29 2e 0a 0a 0a 4e 65 77 20 69 6e 20 39 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 )....New.in.9......*.emms-player
148200 2d 6d 70 64 2e 65 6c 3a 20 70 6c 61 79 69 6e 67 20 6f 72 64 65 72 20 66 69 78 2e 0a 0a 0a 4e 65 -mpd.el:.playing.order.fix....Ne
148220 77 20 69 6e 20 38 0a 0a 20 20 20 20 2a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c w.in.8......*.emms-player-mpv.el
148240 3a 20 67 72 61 63 65 66 75 6c 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 6e 6f 20 69 63 79 2d 74 69 :.graceful.handling.of.no.icy-ti
148260 74 6c 65 2e 0a 20 20 20 20 2a 20 50 72 75 6e 65 20 64 65 66 75 63 74 20 73 74 72 65 61 6d 73 20 tle......*.Prune.defuct.streams.
148280 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 2e 0a 20 20 20 20 2a 20 4e 6f 74 69 66 79 20 69 66 20 60 from.the.list......*.Notify.if.`
1482a0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 27 20 69 73 20 65 6d 70 74 79 2e 0a 0a 0a 4e 65 emms-player-list'.is.empty....Ne
1482c0 77 20 69 6e 20 37 2e 38 0a 0a 20 20 20 20 2a 20 46 69 78 20 74 6f 20 4c 69 62 72 65 2e 46 4d 20 w.in.7.8......*.Fix.to.Libre.FM.
1482e0 73 63 72 6f 62 62 69 6e 67 2e 0a 20 20 20 20 2a 20 4d 75 6c 74 69 70 6c 65 20 69 6d 70 72 6f 76 scrobbing......*.Multiple.improv
148300 65 6d 65 6e 74 73 20 74 6f 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 2e 0a 0a 0a ements.to.emms-player-mpv.el....
148320 4e 65 77 20 69 6e 20 37 2e 37 0a 0a 20 20 20 20 2a 20 41 64 64 20 73 6e 64 69 6f 63 74 6c 20 73 New.in.7.7......*.Add.sndioctl.s
148340 75 70 70 6f 72 74 2e 0a 20 20 20 20 2a 20 55 73 65 20 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 upport......*.Use.thing-at-point
148360 20 66 6f 72 20 55 52 4c 73 2e 0a 20 20 20 20 2a 20 41 64 64 20 70 6c 61 79 65 72 2d 70 72 65 66 .for.URLs......*.Add.player-pref
148380 65 72 65 6e 63 65 20 69 6e 74 65 72 66 61 63 65 2e 0a 0a 0a 4e 65 77 20 69 6e 20 37 2e 36 0a 0a erence.interface....New.in.7.6..
1483a0 20 20 20 20 2a 20 43 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 77 65 20 77 72 69 74 65 20 74 68 ....*.Change.the.way.we.write.th
1483c0 65 20 4e 45 57 53 20 66 69 6c 65 3a 20 22 4e 65 77 20 69 6e 2e 2e 2e 22 20 69 6e 73 74 65 61 64 e.NEWS.file:."New.in...".instead
1483e0 20 6f 66 20 22 4e 65 77 73 20 73 69 6e 63 65 2e 2e 2e 22 2e 0a 20 20 20 20 2a 20 65 6d 6d 73 2d .of."News.since..."......*.emms-
148400 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 3a 20 46 69 78 20 63 75 73 74 6f 6d 69 7a 65 2e 0a 20 20 player-mpv.el:.Fix.customize....
148420 20 20 2a 20 44 6f 63 75 6d 65 6e 74 20 68 6f 77 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ..*.Document.how.`emms-player-mp
148440 76 2d 75 70 64 61 74 65 2d 6d 65 74 61 64 61 74 61 27 20 77 6f 72 6b 73 2e 0a 20 20 20 20 2a 20 v-update-metadata'.works......*.
148460 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 3a 20 66 69 78 20 63 61 63 68 69 6e 67 20 62 65 68 emms-player-mpd:.fix.caching.beh
148480 61 76 69 6f 72 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 37 2e 34 0a avior....News.since.version.7.4.
1484a0 0a 20 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 3a 20 66 69 78 20 72 65 63 ...-.emms-player-mpv.el:.fix.rec
1484c0 6f 6e 6e 65 63 74 2d 70 6c 61 79 62 61 63 6b 2d 72 65 73 74 61 72 74 20 69 73 73 75 65 2e 0a 0a onnect-playback-restart.issue...
1484e0 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 37 2e 33 0a 0a 20 20 2d 20 65 6d 6d .News.since.version.7.3....-.emm
148500 73 2d 70 6c 61 79 65 72 2d 6d 70 76 2e 65 6c 3a 20 65 78 70 6c 69 63 69 74 6c 79 20 75 6e 70 61 s-player-mpv.el:.explicitly.unpa
148520 75 73 65 20 61 66 74 65 72 20 73 77 69 74 63 68 69 6e 67 20 74 6f 20 61 20 6e 65 77 20 74 72 61 use.after.switching.to.a.new.tra
148540 63 6b 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 37 2e 32 0a 0a 20 20 ck....News.since.version.7.2....
148560 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 61 75 64 69 6f 74 6f 6f 6c 73 -.Add.support.for.the.audiotools
148580 20 74 72 61 63 6b 74 61 67 20 65 78 65 63 75 74 61 62 6c 65 2e 0a 20 20 2d 20 45 72 72 6f 72 73 .tracktag.executable....-.Errors
1485a0 20 72 65 61 64 69 6e 67 20 74 72 61 63 6b 20 6d 65 74 61 64 61 74 61 20 6e 6f 20 6c 6f 6e 67 65 .reading.track.metadata.no.longe
1485c0 72 20 73 74 61 6c 6c 73 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a r.stalls.building.the.playlist..
1485e0 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 37 2e 31 0a 0a 20 20 2d 20 4d 61 ..News.since.version.7.1....-.Ma
148600 6b 65 20 69 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 66 6f 72 63 65 2d 75 70 64 61 74 65 20 45 ke.it.possible.to.force-update.E
148620 6d 6d 73 20 63 61 63 68 65 2e 0a 20 20 2d 20 4d 79 72 69 61 64 20 62 75 67 20 66 69 78 65 73 20 mms.cache....-.Myriad.bug.fixes.
148640 61 6e 64 20 63 6f 64 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 0a 20 20 2d 20 4d 6f 76 65 20 and.code.improvements....-.Move.
148660 6a 61 63 6b 2e 65 6c 20 69 6e 74 6f 20 74 68 65 20 45 6d 6d 73 20 6e 61 6d 65 73 70 61 63 65 2e jack.el.into.the.Emms.namespace.
148680 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 37 2e 30 0a 0a 20 20 2d 20 41 ...News.since.version.7.0....-.A
1486a0 64 64 20 61 75 74 68 69 6e 66 6f 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6c 69 62 72 65 2e 66 6d dd.authinfo.support.for.libre.fm
1486c0 20 73 74 72 65 61 6d 69 6e 67 2e 0a 20 20 2d 20 41 6c 6c 6f 77 20 65 61 73 69 6c 79 20 64 69 73 .streaming....-.Allow.easily.dis
1486e0 61 62 6c 69 6e 67 20 74 68 65 20 69 63 6f 6e 20 69 6e 20 74 68 65 20 6d 6f 64 65 6c 69 6e 65 2e abling.the.icon.in.the.modeline.
148700 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 36 2e 33 0a 0a 20 20 2d 20 4e ...News.since.version.6.3....-.N
148720 61 74 69 76 65 20 72 65 61 64 69 6e 67 20 6f 66 20 66 69 6c 65 20 6d 65 74 61 64 61 74 61 20 76 ative.reading.of.file.metadata.v
148740 69 61 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2e 0a 20 20 2d 20 65 6d 6d 73 2d 74 61 ia.emms-info-native....-.emms-ta
148760 67 2d 65 64 69 74 6f 72 3a 20 61 64 64 20 70 69 70 65 20 63 61 70 61 62 69 6c 69 74 79 2e 0a 20 g-editor:.add.pipe.capability...
148780 20 2d 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6c 65 78 69 63 61 6c 20 73 63 .-.Compatibility.with.lexical.sc
1487a0 6f 70 69 6e 67 2e 0a 20 20 2d 20 49 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 66 oping....-.Improvements.to.the.f
1487c0 69 6e 65 20 6d 61 6e 75 61 6c 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e ine.manual....News.since.version
1487e0 20 36 2e 32 0a 0a 20 20 2d 20 55 70 64 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a .6.2....-.Updated.documentation.
148800 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 35 2e 34 0a 0a 20 20 2d 20 45 6d ..News.since.version.5.4....-.Em
148820 6d 73 20 69 73 20 6e 6f 77 20 61 76 61 69 6c 61 62 6c 65 20 76 69 61 20 74 68 65 20 47 4e 55 20 ms.is.now.available.via.the.GNU.
148840 45 4c 50 41 20 72 65 70 6f 73 69 74 6f 72 79 2e 0a 20 20 2d 20 4e 65 77 20 69 6e 66 6f 20 6d 65 ELPA.repository....-.New.info.me
148860 74 68 6f 64 3a 20 74 69 6e 79 74 61 67 2e 0a 20 20 2d 20 4e 65 77 20 69 6e 66 6f 20 6d 65 74 68 thod:.tinytag....-.New.info.meth
148880 6f 64 3a 20 65 78 69 66 74 6f 6f 6c 2e 0a 20 20 2d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c od:.exiftool....-.emms-volume.el
1488a0 3a 20 46 69 78 20 6d 69 73 73 69 6e 67 20 71 75 6f 74 65 20 69 6e 20 65 6d 6d 73 2d 76 6f 6c 75 :.Fix.missing.quote.in.emms-volu
1488c0 6d 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 2d 20 6e 61 6d 65 73 70 61 63 me-change-function....-.namespac
1488e0 65 20 63 6c 65 61 6e 75 70 20 28 65 6d 6d 73 2d 6c 61 74 65 72 2d 64 6f 2e 65 6c 29 2e 0a 0a 0a e.cleanup.(emms-later-do.el)....
148900 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 35 2e 33 0a 0a 20 20 2d 20 55 70 64 61 News.since.version.5.3....-.Upda
148920 74 65 64 20 57 65 62 73 69 74 65 20 6c 61 75 6e 63 68 65 64 2e 0a 20 20 2d 20 4e 65 77 20 61 6e ted.Website.launched....-.New.an
148940 64 20 73 69 6d 70 6c 69 66 69 65 64 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 20 69 6d 70 d.simplified.emms-streams.el.imp
148960 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 2d 20 4e 65 77 20 73 74 72 65 61 6d 69 6e 67 20 72 lementation....-.New.streaming.r
148980 61 64 69 6f 20 73 74 61 74 69 6f 6e 73 2e 0a 20 20 2d 20 55 73 65 20 74 72 61 63 6b 2d 61 74 2d adio.stations....-.Use.track-at-
1489a0 70 6f 69 6e 74 20 61 73 20 61 20 68 69 6e 74 20 66 6f 72 20 67 75 65 73 73 69 6e 67 20 65 6d 6d point.as.a.hint.for.guessing.emm
1489c0 73 2d 61 64 64 20 64 69 72 65 63 74 6f 72 79 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 70 72 s-add.directory....-.Bug.fix:.pr
1489e0 65 76 65 6e 74 20 73 6b 69 70 70 69 6e 67 20 74 72 61 63 6b 20 77 68 65 6e 20 73 77 69 74 63 68 event.skipping.track.when.switch
148a00 69 6e 67 20 74 68 65 6d 20 64 75 72 69 6e 67 20 6d 70 76 20 70 6c 61 79 62 61 63 6b 2e 0a 20 20 ing.them.during.mpv.playback....
148a20 2d 20 4d 69 78 65 72 63 74 6c 20 6e 6f 77 20 61 76 61 69 6c 61 62 65 20 69 6e 20 63 75 73 74 6f -.Mixerctl.now.availabe.in.custo
148a40 6d 20 69 6e 74 65 72 66 61 63 65 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f m.interface....News.since.versio
148a60 6e 20 35 2e 32 0a 0a 20 20 2d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2e n.5.2....-.emms-volume-mixerctl.
148a80 65 6c 3a 20 6d 69 78 65 72 63 74 6c 20 76 6f 6c 75 6d 65 20 63 6f 6e 74 72 6f 6c 2e 0a 20 20 2d el:.mixerctl.volume.control....-
148aa0 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 61 76 65 3a 20 69 6d 70 72 6f 76 65 20 62 65 68 .emms-playlist-save:.improve.beh
148ac0 61 76 69 6f 72 2e 0a 20 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 3a 20 61 64 avior....-.emms-playing-time:.ad
148ae0 64 20 61 20 63 6f 75 6e 74 2d 64 6f 77 6e 20 74 69 6d 65 72 20 64 69 73 70 6c 61 79 20 73 74 79 d.a.count-down.timer.display.sty
148b00 6c 65 2e 0a 20 20 2d 20 54 72 79 20 74 6f 20 61 75 74 6f 2d 64 65 74 65 63 74 20 74 68 65 20 61 le....-.Try.to.auto-detect.the.a
148b20 70 70 72 6f 70 72 69 61 74 65 20 76 6f 6c 75 6d 65 20 63 6f 6e 74 72 6f 6c 2e 0a 0a 0a 4e 65 77 ppropriate.volume.control....New
148b40 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 35 2e 31 0a 0a 20 20 2d 20 65 6d 6d 73 2d 62 72 s.since.version.5.1....-.emms-br
148b60 6f 77 73 65 72 2e 65 6c 3a 20 66 61 73 74 65 72 20 74 68 75 6d 62 6e 61 69 6c 20 63 61 63 68 65 owser.el:.faster.thumbnail.cache
148b80 20 6c 6f 6f 6b 75 70 73 2e 0a 20 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c .lookups....-.emms-player-mpd.el
148ba0 3a 20 50 61 72 73 65 20 64 69 73 63 20 6e 75 6d 62 65 72 20 66 6f 72 20 6d 70 64 20 74 72 61 63 :.Parse.disc.number.for.mpd.trac
148bc0 6b 73 2e 0a 20 20 2d 20 4d 61 6b 65 20 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 62 65 68 61 ks....-.Make.thing-at-point.beha
148be0 76 69 6f 72 20 6d 6f 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 2e 0a 20 20 2d 20 52 65 6d 6f 76 65 vior.more.consistent....-.Remove
148c00 20 72 65 64 75 6e 64 61 6e 74 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 63 6f 64 65 2e 0a 20 20 .redundant.functions.in.code....
148c20 2d 20 41 6c 6c 6f 77 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 6d 6f 64 65 2d 6c 69 6e 65 20 69 -.Allow.changing.the.mode-line.i
148c40 63 6f 6e 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 6f con....-.Bug.fix:.emms-player-mo
148c60 64 65 2c 20 6d 6f 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 de,.more.consistent.behavior....
148c80 2d 20 42 75 67 20 66 69 78 3a 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2c 20 44 6f 6e 27 74 20 72 -.Bug.fix:.emms-browser,.Don't.r
148ca0 65 6c 79 20 6f 6e 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 72 22 29 2e 0a 0a 0a 4e 65 77 73 ely.on.(interactive."r")....News
148cc0 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 35 2e 30 0a 0a 20 20 2d 20 41 64 64 20 60 65 6d 6d .since.version.5.0....-.Add.`emm
148ce0 73 2d 74 6f 67 67 6c 65 2d 73 69 6e 67 6c 65 2d 74 72 61 63 6b 27 2e 0a 20 20 2d 20 46 69 78 20 s-toggle-single-track'....-.Fix.
148d00 74 68 65 20 77 61 79 20 65 6d 6d 73 2d 73 63 6f 72 65 20 73 6b 69 70 73 20 74 72 61 63 6b 73 2e the.way.emms-score.skips.tracks.
148d20 0a 20 20 2d 20 53 61 66 65 72 20 6b 65 79 2d 62 69 6e 64 69 6e 67 20 66 6f 72 20 69 6e 74 65 72 ...-.Safer.key-binding.for.inter
148d40 61 63 74 69 76 65 6c 79 20 6b 69 6c 6c 69 6e 67 20 74 68 65 20 70 6c 61 79 6c 69 73 74 20 62 75 actively.killing.the.playlist.bu
148d60 66 66 65 72 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c ffer....-.Bug.fix:.emms-show-all
148d80 20 71 75 69 74 20 6e 6f 77 20 62 65 68 61 76 65 73 20 77 65 6c 6c 2e 0a 20 20 2d 20 42 75 67 20 .quit.now.behaves.well....-.Bug.
148da0 66 69 78 3a 20 4d 65 74 61 6c 70 6c 61 79 6c 69 73 74 20 66 6f 63 75 73 20 77 6f 75 6c 64 20 65 fix:.Metalplaylist.focus.would.e
148dc0 72 72 6f 72 20 77 69 74 68 6f 75 74 20 61 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 20 rror.without.a.current.buffer...
148de0 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 6f 72 74 20 73 6f 72 74 73 20 74 68 65 20 .-.emms-playlist-sort.sorts.the.
148e00 76 69 73 69 62 6c 65 20 70 6c 61 79 6c 69 73 74 2e 0a 20 20 2d 20 52 65 77 72 69 74 65 20 65 6d visible.playlist....-.Rewrite.em
148e20 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6c 69 6d 69 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e ms-playlist-limit.implementation
148e40 2e 20 4e 6f 77 20 6f 70 65 72 61 74 65 73 20 6f 6e 20 74 68 65 0a 20 20 20 20 63 75 72 72 65 6e ..Now.operates.on.the.....curren
148e60 74 20 62 75 66 66 65 72 20 72 61 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 63 75 72 72 65 6e 74 t.buffer.rather.than.the.current
148e80 20 70 6c 61 79 6c 69 73 74 2e 20 41 64 64 0a 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 .playlist..Add.....emms-playlist
148ea0 2d 6c 69 6d 69 74 2d 74 6f 2d 64 65 73 63 72 69 70 74 69 6f 6e 2e 0a 20 20 2d 20 52 65 77 72 69 -limit-to-description....-.Rewri
148ec0 74 65 20 6d 70 76 20 62 61 63 6b 65 6e 64 20 74 6f 20 75 73 65 20 6c 6f 6e 67 2d 72 75 6e 6e 69 te.mpv.backend.to.use.long-runni
148ee0 6e 67 20 6d 70 76 20 69 6e 73 74 61 6e 63 65 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 0a 20 20 20 20 ng.mpv.instances.controlled.....
148f00 6f 76 65 72 20 6a 73 6f 6e 2d 72 70 63 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 6e 65 77 65 72 over.json-rpc.protocol.for.newer
148f20 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 .versions....News.since.version.
148f40 34 2e 34 0a 0a 20 20 2d 20 41 64 64 20 4f 72 67 2d 73 74 79 6c 65 20 22 54 41 42 22 20 62 69 6e 4.4....-.Add.Org-style."TAB".bin
148f60 64 69 6e 67 20 74 6f 20 63 79 63 6c 65 20 74 68 72 6f 75 67 68 20 74 68 65 20 64 69 66 66 65 72 ding.to.cycle.through.the.differ
148f80 65 6e 74 20 6c 65 76 65 6c 73 20 6f 66 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 20 20 2d 20 42 69 ent.levels.of.expansions....-.Bi
148fa0 6e 64 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 6d 6f 76 65 2d 75 70 2d 6c 65 76 65 6c 20 74 6f nd.emms-browser-move-up-level.to
148fc0 20 22 5e 22 2e 0a 20 20 2d 20 4d 61 6b 65 20 22 52 45 54 22 20 28 65 6d 6d 73 2d 61 64 64 2d 74 ."^"....-.Make."RET".(emms-add-t
148fe0 72 61 63 6b 73 29 20 61 64 64 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 72 65 67 69 6f 6e 20 racks).add.all.tracks.in.region.
149000 6f 72 20 77 69 74 68 20 6e 75 6d 65 72 69 63 20 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 74 68 61 or.with.numeric.argument.....tha
149020 74 20 6d 61 6e 79 20 74 72 61 63 6b 73 2e 0a 20 20 2d 20 53 75 70 65 72 73 65 64 65 20 65 6d 6d t.many.tracks....-.Supersede.emm
149040 73 2d 62 72 6f 77 73 65 72 2d 64 65 6c 65 74 65 2d 66 69 6c 65 73 20 77 69 74 68 20 65 6d 6d 73 s-browser-delete-files.with.emms
149060 2d 62 72 6f 77 73 65 72 2d 72 65 6d 6f 76 65 2d 74 72 61 63 6b 73 20 74 6f 0a 20 20 20 20 72 65 -browser-remove-tracks.to.....re
149080 6d 6f 76 65 20 74 72 61 63 6b 73 20 66 72 6f 6d 20 62 72 6f 77 73 65 72 20 77 69 74 68 6f 75 74 move.tracks.from.browser.without
1490a0 20 64 65 6c 65 74 69 6e 67 20 66 69 6c 65 73 2e 20 20 55 73 65 20 70 72 65 66 69 78 20 61 72 67 .deleting.files...Use.prefix.arg
1490c0 75 6d 65 6e 74 20 74 6f 0a 20 20 20 20 67 65 74 20 74 68 65 20 6f 6c 64 20 62 65 68 61 76 69 6f ument.to.....get.the.old.behavio
1490e0 75 72 2e 20 20 52 65 67 69 6f 6e 73 20 61 6e 64 20 6e 75 6d 65 72 69 63 20 61 72 67 75 6d 65 6e ur...Regions.and.numeric.argumen
149100 74 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 2e 0a 20 20 2d 20 41 64 64 20 65 6d 6d 73 2d 63 61 t.are.supported....-.Add.emms-ca
149120 63 68 65 2d 72 65 73 65 74 2e 0a 20 20 2d 20 55 73 65 20 74 68 65 20 22 61 6c 62 75 6d 20 61 72 che-reset....-.Use.the."album.ar
149140 74 69 73 74 22 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 22 61 72 74 69 73 74 22 20 62 72 tist".instead.of.the."artist".br
149160 6f 77 73 65 72 20 6e 6f 64 65 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 20 20 2d 20 42 75 67 20 66 owser.node.by.default....-.Bug.f
149180 69 78 3a 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 70 75 6c 73 65 20 6d 75 6c 74 69 2d 64 69 67 69 ix:.emms-volume-pulse.multi-digi
1491a0 74 20 76 6f 6c 75 6d 65 20 6e 75 6d 62 65 72 73 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 65 t.volume.numbers....-.Bug.fix:.e
1491c0 6d 6d 73 2d 73 6d 61 72 74 2d 62 72 6f 77 73 65 20 22 63 61 73 63 61 64 69 6e 67 22 20 66 72 6f mms-smart-browse."cascading".fro
1491e0 6d 20 61 20 62 72 6f 77 73 65 72 20 73 65 61 72 63 68 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a m.a.browser.search....-.Bug.fix:
149200 20 66 69 78 20 66 61 6c 6c 62 61 63 6b 20 74 68 75 6d 62 6e 61 69 6c 20 66 69 6c 74 65 72 2e 0a .fix.fallback.thumbnail.filter..
149220 20 20 2d 20 41 64 64 20 6d 70 76 20 62 61 63 6b 65 6e 64 20 73 75 70 70 6f 72 74 2e 0a 20 20 2d ..-.Add.mpv.backend.support....-
149240 20 53 70 65 65 64 20 75 70 20 69 6e 66 6f 20 70 72 6f 63 65 73 73 69 6e 67 2e 0a 20 20 2d 20 41 .Speed.up.info.processing....-.A
149260 64 64 20 4f 70 75 73 20 69 6e 66 6f 20 73 75 70 70 6f 72 74 20 76 69 61 20 65 6d 6d 73 2d 69 6e dd.Opus.info.support.via.emms-in
149280 66 6f 2d 6f 70 75 73 69 6e 66 6f 2e 65 6c 2e 0a 20 20 2d 20 43 6f 64 65 20 6d 6f 64 65 72 6e 69 fo-opusinfo.el....-.Code.moderni
1492a0 7a 61 74 69 6f 6e 73 20 74 68 61 6e 6b 73 20 74 6f 20 50 69 65 72 72 65 20 4e 65 69 64 68 61 72 zations.thanks.to.Pierre.Neidhar
1492c0 64 74 2e 0a 20 20 2d 20 54 61 67 67 69 6e 67 20 6d 70 33 20 66 69 6c 65 73 20 76 32 2e 78 20 66 dt....-.Tagging.mp3.files.v2.x.f
1492e0 69 6c 65 73 20 6e 6f 77 20 77 6f 72 6b 73 20 76 69 61 20 6d 69 64 33 76 32 2e 0a 20 20 2d 20 41 iles.now.works.via.mid3v2....-.A
149300 64 64 20 64 79 6e 61 6d 69 63 20 74 68 75 6d 62 6e 61 69 6c 20 63 61 63 68 69 6e 67 2e 0a 20 20 dd.dynamic.thumbnail.caching....
149320 2d 20 49 6d 70 72 6f 76 65 20 65 6d 6d 73 2d 6d 65 74 61 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 -.Improve.emms-metaplaylist-mode
149340 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 34 2e 33 3a 0a 0a 20 20 2d ....News.since.version.4.3:....-
149360 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 3a 20 63 61 72 64 20 69 64 20 .emms-volume-amixer.el:.card.id.
149380 63 61 6e 20 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 73 can.be.customized...-.Bug.fix:.s
1493a0 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 6c 69 73 74 69 6e 67 2e 0a 20 20 2d 20 et-playlist-buffer.listing....-.
1493c0 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 74 72 65 65 2d emms-source-file-directory-tree-
1493e0 66 69 6e 64 20 6e 6f 77 20 66 6f 6c 6c 6f 77 73 20 73 79 6d 6c 69 6e 6b 73 2e 0a 20 20 2d 20 50 find.now.follows.symlinks....-.P
149400 6c 61 79 6c 69 73 74 73 20 63 61 6e 20 6e 6f 77 20 62 65 20 73 6f 72 74 65 64 20 62 79 20 6d 74 laylists.can.now.be.sorted.by.mt
149420 69 6d 65 2e 0a 20 20 2d 20 4d 6f 76 65 20 74 6f 20 63 6c 2d 6c 69 62 2e 0a 20 20 2d 20 49 6d 70 ime....-.Move.to.cl-lib....-.Imp
149440 72 6f 76 65 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 66 rove.emms-volume....-.Bug.fix:.f
149460 69 78 20 6d 70 67 33 32 31 20 61 75 74 6f 70 6c 61 79 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 ix.mpg321.autoplay....News.since
149480 20 76 65 72 73 69 6f 6e 20 34 2e 32 3a 0a 0a 20 20 2d 20 4c 69 6d 69 74 20 6e 65 74 77 6f 72 6b .version.4.2:....-.Limit.network
1494a0 20 6c 6f 6f 6b 75 70 73 20 69 6e 20 42 72 6f 77 73 65 72 20 6d 6f 64 65 2e 0a 20 20 2d 20 4e 65 .lookups.in.Browser.mode....-.Ne
1494c0 77 20 28 43 2b 2b 29 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 62 72 69 6e w.(C++).emms-print-metadata.brin
1494e0 67 73 20 6d 6f 72 65 20 54 61 67 4c 69 62 20 66 65 61 74 75 72 65 73 2e 0a 20 20 2d 20 43 6f 6d gs.more.TagLib.features....-.Com
149500 70 69 6c 61 74 69 6f 6e 20 77 61 72 6e 69 6e 67 73 20 67 6f 6e 65 20 28 65 78 63 6c 2e 20 63 6c pilation.warnings.gone.(excl..cl
149520 29 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 65 6d 6d 73 2d 6c 79 72 69 63 73 20 66 72 65 65 )....-.Bug.fix:.emms-lyrics.free
149540 20 76 61 72 69 61 62 6c 65 20 66 69 78 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 .variable.fix....News.since.vers
149560 69 6f 6e 20 34 2e 31 3a 0a 0a 20 20 2d 20 52 65 6d 6f 76 65 64 20 64 65 66 75 6e 63 74 20 73 74 ion.4.1:....-.Removed.defunct.st
149580 72 65 61 6d 73 2e 0a 20 20 2d 20 56 61 72 69 6f 75 73 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 reams....-.Various.emms-tag-edit
1495a0 6f 72 20 62 75 67 20 66 69 78 65 73 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 49 6e 66 6f 20 or.bug.fixes....-.Bug.fix:.Info.
1495c0 66 69 6c 65 20 6e 6f 77 20 69 6e 73 74 61 6c 6c 73 20 77 69 74 68 20 63 6f 72 72 65 63 74 20 73 file.now.installs.with.correct.s
1495e0 75 66 66 69 78 2e 0a 20 20 2d 20 42 75 67 20 66 69 78 3a 20 60 6d 61 6b 65 20 69 6e 73 74 61 6c uffix....-.Bug.fix:.`make.instal
149600 6c 27 20 6e 6f 77 20 69 6e 73 74 61 6c 6c 73 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 l'.now.installs.emms-print-metad
149620 61 74 61 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 34 2e 30 3a 0a 0a ata....News.since.version.4.0:..
149640 20 20 2d 20 43 68 61 6e 67 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20 ..-.Change.the.default.behavior.
149660 6f 66 20 43 2d 6b 20 69 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2e 0a 20 20 of.C-k.in.emms-playlist-mode....
149680 2d 20 43 6f 76 65 72 73 20 63 61 6e 20 68 61 76 65 20 73 65 76 65 72 61 6c 20 65 78 74 65 6e 73 -.Covers.can.have.several.extens
1496a0 69 6f 6e 73 2e 20 20 53 65 65 0a 20 20 20 20 60 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2d 63 6f 76 ions...See.....`emms-browser-cov
1496c0 65 72 73 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 27 2e 0a 20 20 2d 20 4c 69 62 72 65 2e ers-file-extensions'....-.Libre.
1496e0 66 6d 20 6c 6f 67 69 6e 20 64 65 74 61 69 6c 73 20 63 61 6e 2c 20 61 6e 64 20 73 68 6f 75 6c 64 fm.login.details.can,.and.should
149700 2c 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 75 74 68 69 6e 66 6f 20 6e 6f 77 2e 0a 20 20 2d ,.be.stored.in.authinfo.now....-
149720 20 50 6f 73 73 69 62 6c 65 20 74 6f 20 73 65 74 20 76 6f 6c 75 6d 65 20 76 69 61 20 50 75 6c 73 .Possible.to.set.volume.via.Puls
149740 65 41 75 64 69 6f 20 70 61 63 74 6c 20 76 69 61 0a 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 eAudio.pactl.via.....emms-volume
149760 2d 70 75 6c 73 65 2e 65 6c 2e 0a 20 20 2d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 2e 65 6c 20 6e 6f -pulse.el....-.emms-lyrics.el.no
149780 77 20 75 73 65 73 20 65 77 77 20 69 66 20 70 72 65 73 65 6e 74 2e 20 20 41 6c 73 6f 20 45 4d 4d w.uses.eww.if.present...Also.EMM
1497a0 53 20 74 72 69 65 73 20 74 6f 20 66 65 74 63 68 0a 20 20 20 20 6e 6f 6e 2d 43 68 69 6e 65 73 65 S.tries.to.fetch.....non-Chinese
1497c0 20 6c 79 72 69 63 73 20 66 72 6f 6d 20 6c 79 72 69 63 77 69 6b 69 2e 6f 72 67 2e 0a 20 20 2d 20 .lyrics.from.lyricwiki.org....-.
1497e0 41 64 64 20 48 54 54 50 53 20 73 75 70 70 6f 72 74 20 77 68 65 72 65 20 70 6f 73 73 69 62 6c 65 Add.HTTPS.support.where.possible
149800 2e 0a 20 20 2d 20 53 6f 72 74 20 75 73 69 6e 67 20 6c 6f 63 61 6c 65 20 6c 61 6e 67 75 61 67 65 ....-.Sort.using.locale.language
149820 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 0a 20 20 .in.the.browser,.if.possible....
149840 2d 20 65 6d 6d 73 2d 73 65 74 75 70 2e 65 6c 20 68 61 73 20 62 65 65 6e 20 73 69 6d 70 6c 69 66 -.emms-setup.el.has.been.simplif
149860 69 65 64 2e 0a 20 20 2d 20 54 68 65 20 45 6d 6d 73 20 6d 61 6e 75 61 6c 20 68 61 73 20 62 65 65 ied....-.The.Emms.manual.has.bee
149880 6e 20 72 65 76 69 73 65 64 20 74 6f 20 68 65 6c 70 20 6e 65 77 20 75 73 65 72 73 2e 0a 20 20 2d n.revised.to.help.new.users....-
1498a0 20 4e 65 77 20 66 65 61 74 75 72 65 3a 20 4d 2d 78 20 65 6d 6d 73 2d 73 68 6f 77 2d 61 6c 6c 2e .New.feature:.M-x.emms-show-all.
1498c0 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 33 2e 30 3a 0a 0a 20 20 2d 20 ...News.since.version.3.0:....-.
1498e0 41 64 64 20 47 4e 55 20 46 4d 20 73 75 70 70 6f 72 74 2e 0a 20 20 2d 20 41 64 64 65 64 20 6d 70 Add.GNU.FM.support....-.Added.mp
149900 34 2c 20 6d 34 61 20 74 6f 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 68 61 6e 64 6c 65 64 4,.m4a.to.the.extensions.handled
149920 20 62 79 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6c 69 62 74 61 67 2e 0a 20 20 2d 20 50 6c 61 79 20 74 .by.emms-info-libtag....-.Play.t
149940 72 61 63 6b 73 20 72 61 6e 64 6f 6d 6c 79 2e 0a 20 20 2d 20 45 78 74 65 6e 64 20 4d 50 44 20 70 racks.randomly....-.Extend.MPD.p
149960 6c 61 79 65 72 20 73 75 70 70 6f 72 74 2e 0a 20 20 2d 20 41 64 64 20 70 61 75 73 65 2d 72 65 73 layer.support....-.Add.pause-res
149980 75 6d 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6c 79 72 69 63 73 20 64 69 73 70 6c 61 79 2e 0a ume.support.for.lyrics.display..
1499a0 20 20 2d 20 4e 65 77 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 65 6d 6d 73 2d 70 ..-.New.implementation.of.emms-p
1499c0 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 0a 20 20 2d 20 53 75 70 70 6f 72 74 20 62 6f 74 68 20 rint-metadata....-.Support.both.
1499e0 58 45 6d 61 63 73 20 61 6e 64 20 45 6d 61 63 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 70 6c XEmacs.and.Emacs.to.highlight.pl
149a00 61 79 69 6e 67 20 6c 79 72 69 63 73 2e 0a 20 20 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f aying.lyrics....-.Add.support.fo
149a20 72 20 64 69 73 63 2d 6e 75 6d 62 65 72 20 73 6f 72 74 69 6e 67 20 6f 66 20 46 4c 41 43 20 66 69 r.disc-number.sorting.of.FLAC.fi
149a40 6c 65 73 2e 0a 20 20 2d 20 4e 65 77 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 61 6c 6c 6f 77 20 63 les....-.New.function.to.allow.c
149a60 75 73 74 6f 6d 20 62 72 6f 77 73 65 72 20 74 72 61 63 6b 2d 66 6f 72 6d 61 74 73 20 74 6f 20 64 ustom.browser.track-formats.to.d
149a80 69 73 70 6c 61 79 0a 20 20 20 20 74 72 61 63 6b 20 64 75 72 61 74 69 6f 6e 2e 0a 20 20 2d 20 44 isplay.....track.duration....-.D
149aa0 72 6f 70 20 73 75 70 70 6f 72 74 20 66 6f 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 73 74 72 rop.support.for.emms-player-gstr
149ac0 65 61 6d 65 72 2c 20 4c 61 73 74 2e 66 6d 2e 0a 20 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d eamer,.Last.fm....-.emms-player-
149ae0 6d 70 6c 61 79 65 72 3a 20 52 65 6d 6f 76 65 20 63 6f 64 65 20 66 6f 72 20 6c 6f 61 64 69 6e 67 mplayer:.Remove.code.for.loading
149b00 20 6d 6f 76 69 65 20 73 75 62 74 69 74 6c 65 73 0a 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61 6c .movie.subtitles.....automatical
149b20 6c 79 20 62 79 20 65 6d 6d 73 2c 20 73 69 6e 63 65 20 6d 70 6c 61 79 65 72 20 68 61 73 20 61 6e ly.by.emms,.since.mplayer.has.an
149b40 20 6f 70 74 69 6f 6e 0a 20 20 20 20 28 60 73 75 62 2d 66 75 7a 7a 69 6e 65 73 73 27 29 20 63 6f .option.....(`sub-fuzziness').co
149b60 6e 74 72 6f 6c 6c 69 6e 67 20 74 68 61 74 2e 0a 20 20 2d 20 53 75 70 70 6f 72 74 20 64 69 73 70 ntrolling.that....-.Support.disp
149b80 6c 61 79 69 6e 67 20 6c 79 72 69 63 73 20 69 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 62 75 66 laying.lyrics.in.a.dedicated.buf
149ba0 66 65 72 2c 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 70 6c 61 79 69 6e 67 20 6c 79 72 69 63 2e fer,.to.highlight.playing.lyric.
149bc0 0a 20 20 2d 20 46 69 78 20 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 20 6f 6e 20 43 79 67 77 69 6e 2e ...-.Fix.make.install.on.Cygwin.
149be0 0a 20 20 2d 20 43 6f 6d 70 69 6c 61 74 69 6f 6e 20 65 72 72 6f 72 73 20 63 6c 65 61 6e 75 70 2e ...-.Compilation.errors.cleanup.
149c00 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e 31 3a 0a 0a 20 20 2d 20 ...News.since.version.2.1:....-.
149c20 53 61 76 69 6e 67 20 62 6f 6f 6b 6d 61 72 6b 73 20 69 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 74 Saving.bookmarks.in.individual.t
149c40 72 61 63 6b 73 20 69 73 20 6e 6f 77 20 73 75 70 70 6f 72 74 65 64 2e 0a 20 20 2d 20 53 75 70 70 racks.is.now.supported....-.Supp
149c60 6f 72 74 20 64 65 6c 65 74 69 6e 67 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 ort.deleting.files.from.the.cach
149c80 65 2e 0a 20 20 2d 20 41 64 64 20 6d 6d 73 3a 2f 2f 20 55 52 4c 20 73 75 70 70 6f 72 74 20 66 6f e....-.Add.mms://.URL.support.fo
149ca0 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 2e 0a 20 20 2d 20 49 6d 70 6c 65 r.emms-player-mplayer....-.Imple
149cc0 6d 65 6e 74 20 70 61 75 73 65 2c 20 72 65 73 75 6d 65 2c 20 61 6e 64 20 73 65 65 6b 20 73 75 70 ment.pause,.resume,.and.seek.sup
149ce0 70 6f 72 74 20 66 6f 72 0a 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 61 6c 73 61 70 6c 61 port.for.....emms-player-alsapla
149d00 79 65 72 2e 0a 20 20 2d 20 41 20 6e 65 77 20 70 6c 61 79 65 72 20 63 61 6c 6c 65 64 20 65 6d 6d yer....-.A.new.player.called.emm
149d20 73 2d 70 6c 61 79 65 72 2d 74 69 6d 69 64 69 74 79 20 68 61 73 20 62 65 65 6e 20 69 6d 70 6c 65 s-player-timidity.has.been.imple
149d40 6d 65 6e 74 65 64 0a 20 20 20 20 77 68 69 63 68 20 69 73 20 63 61 70 61 62 6c 65 20 6f 66 20 70 mented.....which.is.capable.of.p
149d60 6c 61 79 69 6e 67 20 6d 69 64 69 20 66 69 6c 65 73 2e 0a 20 20 2d 20 41 20 6e 65 77 20 70 6c 61 laying.midi.files....-.A.new.pla
149d80 79 65 72 20 63 61 6c 6c 65 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 66 6c 75 69 64 73 79 6e 74 yer.called.emms-player-fluidsynt
149da0 68 20 69 73 20 61 6c 73 6f 20 63 61 70 61 62 6c 65 20 6f 66 0a 20 20 20 20 70 6c 61 79 69 6e 67 h.is.also.capable.of.....playing
149dc0 20 6d 69 64 69 20 66 69 6c 65 73 2e 0a 20 20 2d 20 41 20 6e 65 77 20 70 6c 61 79 65 72 20 63 61 .midi.files....-.A.new.player.ca
149de0 6c 6c 65 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 78 69 6e 65 20 28 69 6e 20 65 6d 6d 73 2d 70 lled.emms-player-xine.(in.emms-p
149e00 6c 61 79 65 72 2d 78 69 6e 65 2e 65 6c 29 20 69 73 0a 20 20 20 20 63 61 70 61 62 6c 65 20 6f 66 layer-xine.el).is.....capable.of
149e20 20 75 73 69 6e 67 20 58 69 6e 65 20 74 6f 20 70 6c 61 79 20 74 72 61 63 6b 73 2e 0a 20 20 2d 20 .using.Xine.to.play.tracks....-.
149e40 48 69 74 74 69 6e 67 20 22 3c 22 20 6f 72 20 22 3e 22 20 69 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c Hitting."<".or.">".in.emms-playl
149e60 69 73 74 2d 6d 6f 64 65 20 63 61 75 73 65 73 20 73 65 65 6b 69 6e 67 20 62 61 63 6b 77 61 72 64 ist-mode.causes.seeking.backward
149e80 0a 20 20 20 20 61 6e 64 20 66 6f 72 77 61 72 64 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a .....and.forward,.respectively..
149ea0 20 20 2d 20 4e 65 77 20 66 69 6c 65 20 6a 61 63 6b 2e 65 6c 20 61 6c 6c 6f 77 73 20 6a 61 63 6b ..-.New.file.jack.el.allows.jack
149ec0 64 20 74 6f 20 62 65 20 73 74 61 72 74 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 65 6d 61 63 d.to.be.started.from.within.emac
149ee0 73 2c 20 61 6e 64 0a 20 20 20 20 70 65 72 6d 69 74 73 20 63 6c 69 65 6e 74 73 20 74 6f 20 62 65 s,.and.....permits.clients.to.be
149f00 20 63 6f 6e 6e 65 63 74 65 64 20 6f 72 20 64 69 73 63 6f 6e 6e 65 63 74 65 64 2e 0a 20 20 2d 20 .connected.or.disconnected....-.
149f20 4e 65 77 20 66 69 6c 65 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2e 65 6c 20 69 73 20 63 New.file.emms-tag-editor.el.is.c
149f40 61 70 61 62 6c 65 20 6f 66 20 65 64 69 74 69 6e 67 20 74 72 61 63 6b 0a 20 20 20 20 69 6e 66 6f apable.of.editing.track.....info
149f60 72 6d 61 74 69 6f 6e 20 69 6e 20 73 6f 6e 67 73 2e 0a 20 20 2d 20 4e 65 77 20 66 69 6c 65 20 65 rmation.in.songs....-.New.file.e
149f80 6d 6d 73 2d 6d 61 72 6b 2e 65 6c 20 61 6c 6c 6f 77 73 20 74 72 61 63 6b 73 20 69 6e 20 61 20 70 mms-mark.el.allows.tracks.in.a.p
149fa0 6c 61 79 6c 69 73 74 20 74 6f 20 62 65 20 6d 61 72 6b 65 64 20 61 6e 64 0a 20 20 20 20 6f 70 65 laylist.to.be.marked.and.....ope
149fc0 72 61 74 65 64 20 6f 6e 2c 20 6d 75 63 68 20 6c 69 6b 65 20 64 69 72 65 64 20 6d 6f 64 65 2e 0a rated.on,.much.like.dired.mode..
149fe0 20 20 2d 20 4e 65 77 20 66 69 6c 65 20 65 6d 6d 73 2d 6c 61 73 74 66 6d 2e 65 6c 20 69 6d 70 6c ..-.New.file.emms-lastfm.el.impl
14a000 65 6d 65 6e 74 73 20 73 75 62 6d 69 74 74 69 6e 67 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 ements.submitting.track.informat
14a020 69 6f 6e 20 74 6f 0a 20 20 20 20 4c 61 73 74 2e 66 6d 20 61 6e 64 20 70 6c 61 79 69 6e 67 20 4c ion.to.....Last.fm.and.playing.L
14a040 61 73 74 2e 66 6d 20 72 61 64 69 6f 20 73 74 72 65 61 6d 73 2e 20 20 53 75 70 70 6f 72 74 20 66 ast.fm.radio.streams...Support.f
14a060 6f 72 20 70 6c 61 79 69 6e 67 0a 20 20 20 20 74 68 65 73 65 20 73 74 72 65 61 6d 73 20 68 61 73 or.playing.....these.streams.has
14a080 20 62 65 65 6e 20 61 64 64 65 64 20 74 6f 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 6c 2e 0a .been.added.to.emms-streams.el..
14a0a0 20 20 2d 20 4e 65 77 20 66 69 6c 65 20 65 6d 6d 73 2d 69 31 38 6e 2e 65 6c 20 61 64 64 73 20 73 ..-.New.file.emms-i18n.el.adds.s
14a0c0 75 70 70 6f 72 74 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 63 6f 64 69 6e 67 20 73 79 73 74 65 upport.for.handling.coding.syste
14a0e0 6d 73 0a 20 20 20 20 70 72 6f 70 65 72 6c 79 20 69 6e 20 70 72 6f 63 65 73 73 20 69 6e 70 75 74 ms.....properly.in.process.input
14a100 2f 6f 75 74 70 75 74 2e 20 20 54 68 69 73 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 /output...This.is.currently.only
14a120 20 75 73 65 64 20 62 79 0a 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 2e 65 .used.by.....emms-info-mp3info.e
14a140 6c 2e 0a 20 20 2d 20 4e 65 77 20 66 69 6c 65 20 65 6d 6d 73 2d 68 69 73 74 6f 72 79 2e 65 6c 20 l....-.New.file.emms-history.el.
14a160 63 61 75 73 65 73 20 70 6c 61 79 6c 69 73 74 73 20 74 6f 20 62 65 20 73 61 76 65 64 0a 20 20 20 causes.playlists.to.be.saved....
14a180 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 20 65 78 69 74 69 6e 67 20 45 6d 61 63 .automatically.when.exiting.Emac
14a1a0 73 2e 0a 20 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 3a 0a 20 20 20 20 2d 20 55 73 s....-.emms-player-mpd:.....-.Us
14a1c0 69 6e 67 20 74 68 65 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 20 74 6f 20 69 6e 73 65 72 74 20 61 ing.the.emms-browser.to.insert.a
14a1e0 6e 64 20 70 6c 61 79 20 74 72 61 63 6b 73 20 6e 6f 77 20 77 6f 72 6b 73 0a 20 20 20 20 20 20 70 nd.play.tracks.now.works.......p
14a200 72 6f 70 65 72 6c 79 20 77 69 74 68 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 0a 20 20 roperly.with.emms-player-mpd....
14a220 20 20 2d 20 44 69 73 70 6c 61 79 20 74 68 65 20 63 6f 72 72 65 63 74 20 65 72 72 6f 72 20 6d 65 ..-.Display.the.correct.error.me
14a240 73 73 61 67 65 20 69 66 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 20 77 68 69 6c 65 0a 20 ssage.if.an.error.occurs.while..
14a260 20 20 20 20 20 74 72 79 69 6e 67 20 74 6f 20 70 6c 61 79 20 61 20 73 74 72 65 61 6d 2e 0a 20 20 .....trying.to.play.a.stream....
14a280 20 20 2d 20 48 61 6e 64 6c 65 20 61 6e 79 20 65 6e 63 6f 64 69 6e 67 20 65 72 72 6f 72 73 20 74 ..-.Handle.any.encoding.errors.t
14a2a0 68 61 74 20 6f 63 63 75 72 20 64 75 72 69 6e 67 20 70 6c 61 79 62 61 63 6b 2e 0a 20 20 20 20 2d hat.occur.during.playback......-
14a2c0 20 49 6e 74 65 67 72 61 74 65 20 77 69 74 68 20 65 6d 6d 73 2d 6c 61 73 74 66 6d 2e 65 6c 20 69 .Integrate.with.emms-lastfm.el.i
14a2e0 6e 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 68 6f 77 27 2c 20 69 66 0a 20 20 20 n.`emms-player-mpd-show',.if....
14a300 20 20 20 65 6d 6d 73 2d 6c 61 73 74 66 6d 20 69 73 20 6c 6f 61 64 65 64 20 61 6e 64 20 61 63 74 ...emms-lastfm.is.loaded.and.act
14a320 69 76 65 2e 0a 20 20 2d 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 73 75 70 70 6f ive....-.emms-playing-time.suppo
14a340 72 74 73 20 64 69 66 66 65 72 65 6e 74 20 64 69 73 70 6c 61 79 20 73 74 79 6c 65 73 20 6e 6f 77 rts.different.display.styles.now
14a360 2e 0a 20 20 2d 20 65 6d 6d 73 2d 6c 79 72 69 63 73 3a 20 4e 6f 77 20 73 75 70 70 6f 72 74 20 6c ....-.emms-lyrics:.Now.support.l
14a380 79 72 69 63 73 20 61 75 74 6f 2d 73 63 72 6f 6c 6c 69 6e 67 2e 0a 20 20 2d 20 65 6d 6d 73 2d 70 yrics.auto-scrolling....-.emms-p
14a3a0 6c 61 79 65 72 2d 6d 70 6c 61 79 65 72 3a 20 43 61 70 61 62 6c 65 20 6f 66 20 6c 6f 61 64 69 6e layer-mplayer:.Capable.of.loadin
14a3c0 67 20 6d 6f 76 69 65 20 73 75 62 74 69 74 6c 65 73 0a 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61 g.movie.subtitles.....automatica
14a3e0 6c 6c 79 20 6e 6f 77 2e 0a 0a 0a 4e 65 77 73 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 2e lly.now....News.since.version.2.
14a400 30 3a 0a 0a 20 20 2d 20 41 20 6e 65 77 20 70 6c 61 79 65 72 20 74 68 61 74 20 75 73 65 73 20 6d 0:....-.A.new.player.that.uses.m
14a420 70 67 33 32 31 27 73 20 72 65 6d 6f 74 65 20 6d 6f 64 65 20 69 73 20 6e 6f 77 20 61 76 61 69 6c pg321's.remote.mode.is.now.avail
14a440 61 62 6c 65 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 67 33 32 31 2d 72 65 6d able.....(emms-player-mpg321-rem
14a460 6f 74 65 29 2d 2d 74 68 69 73 20 61 6c 6c 6f 77 73 20 73 65 65 6b 69 6e 67 20 61 6e 64 20 63 6f ote)--this.allows.seeking.and.co
14a480 70 65 73 20 77 69 74 68 0a 20 20 20 20 65 72 72 6f 72 73 20 69 6e 20 66 69 6c 65 73 2e 0a 20 20 pes.with.....errors.in.files....
14a4a0 2d 20 41 20 6d 65 74 61 64 61 74 61 20 62 72 6f 77 73 65 72 20 68 61 73 20 62 65 65 6e 20 61 64 -.A.metadata.browser.has.been.ad
14a4c0 64 65 64 20 69 6e 20 65 6d 6d 73 2d 62 72 6f 77 73 65 72 2e 65 6c 2e 0a 20 20 2d 20 52 65 63 6f ded.in.emms-browser.el....-.Reco
14a4e0 72 64 69 6e 67 20 6f 66 20 74 68 65 20 74 69 6d 65 20 61 20 74 72 61 63 6b 20 77 61 73 20 6c 61 rding.of.the.time.a.track.was.la
14a500 73 74 20 70 6c 61 79 65 64 20 69 73 20 6e 6f 77 20 73 75 70 70 6f 72 74 65 64 2e 0a 20 20 2d 20 st.played.is.now.supported....-.
14a520 65 6d 6d 73 2d 70 6c 61 79 2d 2a 20 61 6e 64 20 65 6d 6d 73 2d 61 64 64 2d 2a 20 66 75 6e 63 74 emms-play-*.and.emms-add-*.funct
14a540 69 6f 6e 73 20 6e 6f 77 20 74 6f 67 67 6c 65 20 74 68 65 69 72 20 70 6c 61 79 2f 61 64 64 0a 20 ions.now.toggle.their.play/add..
14a560 20 20 20 62 65 68 61 76 69 6f 72 20 77 68 65 6e 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 ...behavior.when.a.prefix.argume
14a580 6e 74 20 69 73 20 73 75 70 70 6c 69 65 64 2e 0a 20 20 2d 20 45 4d 4d 53 20 6e 6f 77 20 63 61 63 nt.is.supplied....-.EMMS.now.cac
14a5a0 68 65 73 20 74 72 61 63 6b 73 2c 20 77 68 69 63 68 20 73 70 65 65 64 73 20 75 70 20 6c 6f 61 64 hes.tracks,.which.speeds.up.load
14a5c0 69 6e 67 20 6f 66 20 6c 61 72 67 65 0a 20 20 20 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 77 69 74 ing.of.large.....collections.wit
14a5e0 68 20 69 6e 66 6f 20 74 61 67 73 20 63 6f 6e 73 69 64 65 72 61 62 6c 79 2e 0a 20 20 2d 20 45 4d h.info.tags.considerably....-.EM
14a600 4d 53 20 6e 6f 77 20 6b 6e 6f 77 73 20 68 6f 77 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 76 MS.now.knows.how.to.change.the.v
14a620 6f 6c 75 6d 65 20 28 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 29 2e 0a 20 20 2d 20 57 68 65 6e olume.(emms-volume.el)....-.When
14a640 20 70 6c 61 79 69 6e 67 20 61 20 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 65 6d 6d 73 2d 70 6c .playing.a.playlist.from.emms-pl
14a660 61 79 6c 69 73 74 2d 6d 6f 64 65 2c 20 45 4d 4d 53 20 6e 6f 77 0a 20 20 20 20 6f 70 74 69 6f 6e aylist-mode,.EMMS.now.....option
14a680 61 6c 6c 79 20 6f 70 65 6e 73 20 61 20 6e 65 77 20 62 75 66 66 65 72 20 66 6f 72 20 74 68 69 73 ally.opens.a.new.buffer.for.this
14a6a0 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 55 73 65 72 2d 76 69 73 69 62 6c 65 20 62 75 67 20 66 69 78 .playlist...User-visible.bug.fix
14a6c0 65 73 3a 0a 0a 20 20 2d 20 54 68 65 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 20 es:....-.The.emms-playlist-mode.
14a6e0 69 73 20 6e 6f 77 20 6d 75 63 68 20 66 61 73 74 65 72 2e 0a 20 20 2d 20 4d 50 33 73 20 77 69 74 is.now.much.faster....-.MP3s.wit
14a700 68 20 65 72 72 6f 72 73 20 61 72 65 20 6e 6f 77 20 70 6c 61 79 61 62 6c 65 20 77 68 65 6e 20 75 h.errors.are.now.playable.when.u
14a720 73 69 6e 67 20 74 68 65 20 72 65 6d 6f 74 65 20 70 6c 61 79 65 72 2e 0a 00 00 00 00 00 00 00 00 sing.the.remote.player..........
14a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 00 00 00 00 00 00 emms-24/emms-player-mpd.el......
14a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
14a880 30 31 33 37 30 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 34 31 00 20 30 00 00 00 0137031.00000000000.014241..0...
14a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
14a920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
14a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14aa00 3b 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 20 2d 2d 2d 20 4d 75 73 69 63 ;;;.emms-player-mpd.el.---.Music
14aa20 50 44 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 4d 4d 53 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c PD.support.for.EMMS..-*-.lexical
14aa40 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 -binding:.t;.-*-..;;.Copyright.(
14aa60 43 29 20 32 30 30 35 2d 32 30 32 35 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e C).2005-2025..Free.Software.Foun
14aa80 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4d 69 63 68 61 65 6c dation,.Inc...;;.Author:.Michael
14aaa0 20 4f 6c 73 6f 6e 20 3c 6d 77 6f 6c 73 6f 6e 40 67 6e 75 2e 6f 72 67 3e 2c 20 4a 6f 73 65 20 41 .Olson.<mwolson@gnu.org>,.Jose.A
14aac0 6e 74 6f 6e 69 6f 20 4f 72 74 65 67 61 20 52 75 69 7a 0a 3b 3b 20 3c 6a 61 6f 40 67 6e 75 2e 6f ntonio.Ortega.Ruiz.;;.<jao@gnu.o
14aae0 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d rg>..;;.This.file.is.part.of.EMM
14ab00 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f S...;;.EMMS.is.free.software;.yo
14ab20 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 u.can.redistribute.it.and/or.mod
14ab40 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 ify.it.;;.under.the.terms.of.the
14ab60 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 .GNU.General.Public.License.as.p
14ab80 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ublished.by.;;.the.Free.Software
14aba0 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f .Foundation;.either.version.3,.o
14abc0 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 r.(at.your.option).;;.any.later.
14abe0 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 version..;;.;;.EMMS.is.distribut
14ac00 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 ed.in.the.hope.that.it.will.be.u
14ac20 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e seful,.but.WITHOUT.;;.ANY.WARRAN
14ac40 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 TY;.without.even.the.implied.war
14ac60 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 ranty.of.MERCHANTABILITY.;;.or.F
14ac80 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e ITNESS.FOR.A.PARTICULAR.PURPOSE.
14aca0 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 ..See.the.GNU.General.Public.;;.
14acc0 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 License.for.more.details..;;.;;.
14ace0 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 You.should.have.received.a.copy.
14ad00 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
14ad20 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 e.;;.along.with.EMMS;.see.the.fi
14ad40 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 le.COPYING...If.not,.write.to.th
14ad60 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 e.;;.Free.Software.Foundation,.I
14ad80 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 nc.,.51.Franklin.Street,.Fifth.F
14ada0 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 loor,.;;.Boston,.MA.02110-1301,.
14adc0 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 42 65 6e 65 66 USA...;;;.Commentary:..;;;.Benef
14ade0 69 74 73 20 6f 66 20 4d 75 73 69 63 50 44 0a 0a 3b 3b 20 4d 75 73 69 63 50 44 20 66 65 61 74 75 its.of.MusicPD..;;.MusicPD.featu
14ae00 72 65 73 20 63 72 6f 73 73 66 61 64 65 2c 20 76 65 72 79 20 6c 69 74 74 6c 65 20 73 6b 69 70 70 res.crossfade,.very.little.skipp
14ae20 69 6e 67 2c 20 6d 69 6e 6f 72 20 43 50 55 20 75 73 61 67 65 2c 0a 3b 3b 20 6d 61 6e 79 20 63 6c ing,.minor.CPU.usage,.;;.many.cl
14ae40 69 65 6e 74 73 2c 20 6d 61 6e 79 20 73 75 70 70 6f 72 74 65 64 20 6f 75 74 70 75 74 20 66 6f 72 ients,.many.supported.output.for
14ae60 6d 61 74 73 2c 20 66 61 73 74 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 20 76 69 61 0a 3b 3b 20 6e mats,.fast.manipulation.via.;;.n
14ae80 65 74 77 6f 72 6b 20 70 72 6f 63 65 73 73 65 73 2c 20 61 6e 64 20 67 6f 6f 64 20 61 62 73 74 72 etwork.processes,.and.good.abstr
14aea0 61 63 74 69 6f 6e 20 6f 66 20 63 6c 69 65 6e 74 20 61 6e 64 20 73 65 72 76 65 72 2e 0a 0a 3b 3b action.of.client.and.server...;;
14aec0 3b 20 4d 75 73 69 63 50 44 20 73 65 74 75 70 0a 0a 3b 3b 20 49 66 20 79 6f 75 20 77 61 6e 74 20 ;.MusicPD.setup..;;.If.you.want.
14aee0 74 6f 20 73 65 74 20 75 70 20 61 20 6c 6f 63 61 6c 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 to.set.up.a.local.MusicPD.server
14af00 2c 20 79 6f 75 27 6c 6c 20 6e 65 65 64 20 74 6f 20 68 61 76 65 0a 3b 3b 20 6d 70 64 20 69 6e 73 ,.you'll.need.to.have.;;.mpd.ins
14af20 74 61 6c 6c 65 64 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 61 20 72 65 talled...If.you.want.to.use.a.re
14af40 6d 6f 74 65 20 73 65 72 76 65 72 20 69 6e 73 74 61 6e 63 65 2c 20 6e 6f 0a 3b 3b 20 69 6e 73 74 mote.server.instance,.no.;;.inst
14af60 61 6c 6c 61 74 69 6f 6e 20 69 73 20 6e 65 65 64 65 64 2e 0a 0a 3b 3b 20 54 68 65 20 77 65 62 73 allation.is.needed...;;.The.webs
14af80 69 74 65 20 69 73 20 61 74 20 68 74 74 70 3a 2f 2f 6d 75 73 69 63 70 64 2e 6f 72 67 2f 2e 20 20 ite.is.at.http://musicpd.org/...
14afa0 44 65 62 69 61 6e 20 70 61 63 6b 61 67 65 73 20 61 72 65 0a 3b 3b 20 61 76 61 69 6c 61 62 6c 65 Debian.packages.are.;;.available
14afc0 2e 20 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 6d 70 64 20 ...It.is.recommended.to.use.mpd.
14afe0 76 65 72 73 69 6f 6e 20 30 2e 31 32 2e 30 20 6f 72 20 68 69 67 68 65 72 2e 0a 3b 3b 0a 3b 3b 20 version.0.12.0.or.higher..;;.;;.
14b000 43 6f 70 79 20 74 68 65 20 65 78 61 6d 70 6c 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 Copy.the.example.configuration.f
14b020 6f 72 20 6d 70 64 20 69 6e 74 6f 20 7e 2f 2e 6d 70 64 63 6f 6e 66 20 61 6e 64 20 65 64 69 74 20 or.mpd.into.~/.mpdconf.and.edit.
14b040 69 74 0a 3b 3b 20 74 6f 20 79 6f 75 72 20 6e 65 65 64 73 2e 20 20 55 73 65 20 79 6f 75 72 20 74 it.;;.to.your.needs...Use.your.t
14b060 6f 70 20 6c 65 76 65 6c 20 6d 75 73 69 63 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 0a 3b 3b 20 op.level.music.directory.for.;;.
14b080 6d 75 73 69 63 5f 64 69 72 65 63 74 6f 72 79 2e 20 20 49 66 20 79 6f 75 72 20 70 6c 61 79 6c 69 music_directory...If.your.playli
14b0a0 73 74 73 20 75 73 65 20 61 62 73 6f 6c 75 74 65 20 66 69 6c 65 20 6e 61 6d 65 73 2c 20 62 65 0a sts.use.absolute.file.names,.be.
14b0c0 3b 3b 20 63 65 72 74 61 69 6e 20 74 68 61 74 20 6d 75 73 69 63 5f 64 69 72 65 63 74 6f 72 79 20 ;;.certain.that.music_directory.
14b0e0 68 61 73 20 74 68 65 20 6c 65 61 64 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 70 61 72 74 2e 0a has.the.leading.directory.part..
14b100 3b 3b 0a 3b 3b 20 42 65 66 6f 72 65 20 79 6f 75 20 74 72 79 20 74 6f 20 70 6c 61 79 20 61 6e 79 ;;.;;.Before.you.try.to.play.any
14b120 74 68 69 6e 67 2c 20 62 75 74 20 61 66 74 65 72 20 73 65 74 74 69 6e 67 20 75 70 20 74 68 65 20 thing,.but.after.setting.up.the.
14b140 61 62 6f 76 65 2c 0a 3b 3b 20 72 75 6e 20 60 6d 6b 64 69 72 20 7e 2f 2e 6d 70 64 20 26 26 20 6d above,.;;.run.`mkdir.~/.mpd.&&.m
14b160 70 64 20 2d 2d 63 72 65 61 74 65 2d 64 62 27 20 74 6f 20 63 72 65 61 74 65 20 4d 75 73 69 63 50 pd.--create-db'.to.create.MusicP
14b180 44 27 73 20 74 72 61 63 6b 0a 3b 3b 20 64 61 74 61 62 61 73 65 2e 0a 3b 3b 0a 3b 3b 20 43 68 65 D's.track.;;.database..;;.;;.Che
14b1a0 63 6b 20 74 6f 20 73 65 65 20 69 66 20 6d 70 64 20 69 73 20 72 75 6e 6e 69 6e 67 2e 20 20 49 74 ck.to.see.if.mpd.is.running...It
14b1c0 20 6d 75 73 74 20 62 65 20 72 75 6e 6e 69 6e 67 20 61 73 20 61 20 64 61 65 6d 6f 6e 20 66 6f 72 .must.be.running.as.a.daemon.for
14b1e0 0a 3b 3b 20 79 6f 75 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 70 6c 61 79 20 61 6e 79 74 68 .;;.you.to.be.able.to.play.anyth
14b200 69 6e 67 2e 20 20 4c 61 75 6e 63 68 20 69 74 20 62 79 20 65 78 65 63 75 74 69 6e 67 20 22 6d 70 ing...Launch.it.by.executing."mp
14b220 64 22 2e 20 20 49 74 0a 3b 3b 20 63 61 6e 20 62 65 20 6b 69 6c 6c 65 64 20 6c 61 74 65 72 20 77 d"...It.;;.can.be.killed.later.w
14b240 69 74 68 20 22 6d 70 64 20 2d 2d 6b 69 6c 6c 22 20 28 6f 72 20 6a 75 73 74 20 22 6b 69 6c 6c 61 ith."mpd.--kill".(or.just."killa
14b260 6c 6c 20 6d 70 64 22 20 69 66 0a 3b 3b 20 79 6f 75 27 72 65 20 6e 6f 74 20 75 73 69 6e 67 20 74 ll.mpd".if.;;.you're.not.using.t
14b280 68 65 20 6c 61 74 65 73 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 76 65 72 73 69 6f 6e 29 2e 0a he.latest.development.version)..
14b2a0 0a 3b 3b 3b 20 45 4d 4d 53 20 73 65 74 75 70 0a 0a 3b 3b 20 41 64 64 20 74 68 65 20 66 6f 6c 6c .;;;.EMMS.setup..;;.Add.the.foll
14b2c0 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 63 6f 6e 66 69 67 2e 0a 3b 3b 0a 3b 3b 20 28 72 65 71 owing.to.your.config..;;.;;.(req
14b2e0 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 0a 0a 3b 3b 20 41 64 6a 75 73 uire.'emms-player-mpd)..;;.Adjus
14b300 74 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 6e 61 6d 65 27 20 t.`emms-player-mpd-server-name'.
14b320 61 6e 64 0a 3b 3b 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 and.;;.`emms-player-mpd-server-p
14b340 6f 72 74 27 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 61 6e 64 20 70 ort'.to.match.the.location.and.p
14b360 6f 72 74 20 6f 66 0a 3b 3b 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 2e 0a 3b ort.of.;;.your.MusicPD.server..;
14b380 3b 0a 3b 3b 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 ;.;;...(setq.emms-player-mpd-ser
14b3a0 76 65 72 2d 6e 61 6d 65 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 3b 3b 20 20 20 28 73 65 74 71 ver-name."localhost").;;...(setq
14b3c0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 6f 72 74 20 22 36 36 .emms-player-mpd-server-port."66
14b3e0 30 30 22 29 0a 0a 3b 3b 20 49 66 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 73 65 74 75 70 20 72 00")..;;.If.your.MusicPD.setup.r
14b400 65 71 75 69 72 65 73 20 61 20 70 61 73 73 77 6f 72 64 2c 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 equires.a.password,.you.will.nee
14b420 64 20 74 6f 20 64 6f 20 74 68 65 0a 3b 3b 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 d.to.do.the.;;.following..;;.;;.
14b440 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 ..(setq.emms-player-mpd-server-p
14b460 61 73 73 77 6f 72 64 20 22 6d 79 70 61 73 73 77 6f 72 64 22 29 0a 0a 3b 3b 20 54 6f 20 67 65 74 assword."mypassword")..;;.To.get
14b480 20 74 72 61 63 6b 20 69 6e 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2c 20 64 6f 20 74 68 65 .track.info.from.MusicPD,.do.the
14b4a0 20 66 6f 6c 6c 6f 77 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 .following..;;.;;...(add-to-list
14b4c0 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 65 6d 6d 73 2d 69 6e 66 .'emms-info-functions.#'emms-inf
14b4e0 6f 2d 6d 70 64 29 0a 0a 3b 3b 20 54 6f 20 63 68 61 6e 67 65 20 74 68 65 20 76 6f 6c 75 6d 65 20 o-mpd)..;;.To.change.the.volume.
14b500 75 73 69 6e 67 20 4d 75 73 69 63 50 44 2c 20 64 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 2e using.MusicPD,.do.the.following.
14b520 0a 3b 3b 0a 3b 3b 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 63 68 61 6e 67 .;;.;;...(setq.emms-volume-chang
14b540 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 64 2d 63 68 61 e-function.#'emms-volume-mpd-cha
14b560 6e 67 65 29 0a 0a 3b 3b 20 41 64 64 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 20 74 6f nge)..;;.Add.'emms-player-mpd.to
14b580 20 74 68 65 20 74 6f 70 20 6f 66 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6c 69 73 74 27 2e 0a .the.top.of.`emms-player-list'..
14b5a0 3b 3b 0a 3b 3b 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 ;;.;;...(add-to-list.'emms-playe
14b5c0 72 2d 6c 69 73 74 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 0a 0a 3b 3b 20 49 66 20 r-list.'emms-player-mpd)..;;.If.
14b5e0 79 6f 75 20 75 73 65 20 61 62 73 6f 6c 75 74 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 69 6e 20 79 you.use.absolute.file.names.in.y
14b600 6f 75 72 20 6d 33 75 20 70 6c 61 79 6c 69 73 74 73 20 28 77 68 69 63 68 20 69 73 20 6d 6f 73 74 our.m3u.playlists.(which.is.most
14b620 0a 3b 3b 20 6c 69 6b 65 6c 79 29 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 73 65 74 20 60 .;;.likely),.make.sure.you.set.`
14b640 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 27 emms-player-mpd-music-directory'
14b660 20 74 6f 20 74 68 65 0a 3b 3b 20 76 61 6c 75 65 20 6f 66 20 22 6d 75 73 69 63 5f 64 69 72 65 63 .to.the.;;.value.of."music_direc
14b680 74 6f 72 79 22 20 66 72 6f 6d 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 63 6f 6e 66 69 67 2e 20 tory".from.your.MusicPD.config..
14b6a0 20 54 68 65 72 65 20 61 72 65 0a 3b 3b 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70 74 69 6f 6e 73 .There.are.;;.additional.options
14b6c0 20 61 76 61 69 6c 61 62 6c 65 20 61 73 20 77 65 6c 6c 2c 20 62 75 74 20 74 68 65 20 64 65 66 61 .available.as.well,.but.the.defa
14b6e0 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 0a 3b 3b 20 73 75 66 66 69 63 69 65 6e 74 20 66 6f 72 ults.should.be.;;.sufficient.for
14b700 20 6d 6f 73 74 20 75 73 65 73 2e 0a 0a 3b 3b 20 59 6f 75 20 63 61 6e 20 73 65 74 20 60 65 6d 6d .most.uses...;;.You.can.set.`emm
14b720 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 70 6c 61 79 6c 69 73 74 27 20 74 6f 20 6e s-player-mpd-sync-playlist'.to.n
14b740 69 6c 20 69 66 20 79 6f 75 72 20 6d 61 73 74 65 72 0a 3b 3b 20 45 4d 4d 53 20 70 6c 61 79 6c 69 il.if.your.master.;;.EMMS.playli
14b760 73 74 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 6c 79 20 73 74 6f 72 65 64 20 70 6c 61 79 6c 69 73 74 st.contains.only.stored.playlist
14b780 73 2e 0a 0a 3b 3b 20 49 66 20 61 74 20 61 6e 79 20 74 69 6d 65 20 79 6f 75 20 77 69 73 68 20 74 s...;;.If.at.any.time.you.wish.t
14b7a0 6f 20 72 65 70 6c 61 63 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c o.replace.the.current.EMMS.playl
14b7c0 69 73 74 20 62 75 66 66 65 72 0a 3b 3b 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 ist.buffer.;;.with.the.contents.
14b7e0 6f 66 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2c 20 74 79 70 65 0a 3b 3b of.the.MusicPD.playlist,.type.;;
14b800 20 4d 2d 78 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 2e 0a 3b 3b .M-x.emms-player-mpd-connect..;;
14b820 0a 3b 3b 20 54 68 69 73 20 77 69 6c 6c 20 61 6c 73 6f 20 72 75 6e 20 74 68 65 20 72 65 6c 65 76 .;;.This.will.also.run.the.relev
14b840 61 6e 74 20 73 65 65 6b 20 66 75 6e 63 74 69 6f 6e 73 2c 20 73 6f 20 74 68 61 74 20 69 66 20 79 ant.seek.functions,.so.that.if.y
14b860 6f 75 20 75 73 65 0a 3b 3b 20 65 6d 6d 73 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 2c 20 74 68 65 ou.use.;;.emms-playing-time,.the
14b880 20 64 69 73 70 6c 61 79 65 64 20 74 69 6d 65 20 77 69 6c 6c 20 62 65 20 61 63 63 75 72 61 74 65 .displayed.time.will.be.accurate
14b8a0 2e 0a 0a 3b 3b 3b 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 0a 0a 3b 3b 20 41 64 61 6d 20 53 6a c3 ...;;;.Contributors..;;.Adam.Sj.
14b8c0 b8 67 72 65 6e 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 63 68 .gren.implemented.support.for.ch
14b8e0 61 6e 67 69 6e 67 20 74 68 65 20 76 6f 6c 75 6d 65 2e 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c anging.the.volume...(require.'cl
14b900 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 -lib).(require.'emms-player-simp
14b920 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 le).(require.'emms-playlist-mode
14b940 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 6c 61 79 6c 69 73 74 ).(require.'emms-source-playlist
14b960 29 20 20 3b 20 66 6f 72 20 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 66 69 6c 65 2d 70 61 72 73 65 2d )..;.for.emms-source-file-parse-
14b980 70 6c 61 79 6c 69 73 74 0a 28 72 65 71 75 69 72 65 20 27 74 71 29 0a 28 72 65 71 75 69 72 65 20 playlist.(require.'tq).(require.
14b9a0 27 65 6d 6d 73 2d 63 61 63 68 65 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 75 72 6c 29 'emms-cache).(require.'emms-url)
14b9c0 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 63 6f 6e 64 69 74 69 6f ..(eval-when-compile...(conditio
14b9e0 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 72 65 71 75 69 72 n-case.nil.......(progn..(requir
14ba00 65 20 27 75 72 6c 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 6c 6f 61 64 20 69 66 20 61 76 61 69 e.'url)...........;.load.if.avai
14ba20 6c 61 62 6c 65 0a 09 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 75 72 6c 29 29 0a 20 20 20 20 lable..(require.'emms-url)).....
14ba40 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 65 6d 6d 73 2d 70 6c (error.nil)))..(defgroup.emms-pl
14ba60 61 79 65 72 2d 6d 70 64 20 6e 69 6c 0a 20 20 22 45 4d 4d 53 20 70 6c 61 79 65 72 20 66 6f 72 20 ayer-mpd.nil..."EMMS.player.for.
14ba80 4d 75 73 69 63 50 44 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 0a MusicPD."...:group.'emms-player.
14baa0 20 20 3a 70 72 65 66 69 78 20 22 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 22 29 0a 0a 28 ..:prefix."emms-player-mpd-")..(
14bac0 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 20 28 65 6d 6d 73 2d defcustom.emms-player-mpd.(emms-
14bae0 70 6c 61 79 65 72 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 0a 09 player.#'emms-player-mpd-start..
14bb00 09 09 09 09 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 6f 70 0a 09 09 09 09 09 ....#'emms-player-mpd-stop......
14bb20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 61 62 6c 65 2d 70 29 0a 20 20 #'emms-player-mpd-playable-p)...
14bb40 22 50 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 "Parameters.for.the.MusicPD.play
14bb60 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 6f 6e 73 20 73 79 6d 62 6f 6c 20 61 6c 69 73 74 er."...:type.'(cons.symbol.alist
14bb80 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d ))..(defcustom.emms-player-mpd-m
14bba0 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 20 6e 69 6c 0a 20 20 22 54 68 65 20 76 61 6c 75 65 20 usic-directory.nil..."The.value.
14bbc0 6f 66 20 5c 5c 3d 27 6d 75 73 69 63 5f 64 69 72 65 63 74 6f 72 79 5c 5c 3d 27 20 69 6e 20 79 6f of.\\='music_directory\\='.in.yo
14bbe0 75 72 20 4d 75 73 69 63 50 44 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 2e 0a 0a ur.MusicPD.configuration.file...
14bc00 55 6e 6c 65 73 73 20 79 6f 75 72 20 4d 75 73 69 63 50 44 20 69 73 20 63 6f 6e 66 69 67 75 72 65 Unless.your.MusicPD.is.configure
14bc20 64 20 74 6f 20 75 73 65 20 61 62 73 6f 6c 75 74 65 20 66 69 6c 65 20 6e 61 6d 65 73 2c 20 79 6f d.to.use.absolute.file.names,.yo
14bc40 75 20 6d 75 73 74 0a 73 65 74 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 74 68 65 20 u.must.set.this.variable.to.the.
14bc60 76 61 6c 75 65 20 6f 66 20 5c 5c 3d 27 6d 75 73 69 63 5f 64 69 72 65 63 74 6f 72 79 5c 5c 3d 27 value.of.\\='music_directory\\='
14bc80 20 69 6e 20 79 6f 75 72 20 4d 75 73 69 63 50 44 0a 63 6f 6e 66 69 67 2e 22 0a 20 20 3b 3b 20 54 .in.your.MusicPD.config."...;;.T
14bca0 68 65 20 3a 66 6f 72 6d 61 74 20 70 61 72 74 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 65 6e 74 he.:format.part.ensures.that.ent
14bcc0 65 72 69 6e 67 20 64 69 72 65 63 74 6f 72 69 65 73 20 68 61 70 70 65 6e 73 20 6f 6e 20 74 68 65 ering.directories.happens.on.the
14bce0 0a 20 20 3b 3b 20 6e 65 78 74 20 6c 69 6e 65 2c 20 77 68 65 72 65 20 74 68 65 72 65 20 69 73 20 ...;;.next.line,.where.there.is.
14bd00 6d 6f 72 65 20 73 70 61 63 65 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 0a 20 20 3a 74 79 70 65 20 more.space.to.work.with...:type.
14bd20 27 28 63 68 6f 69 63 65 20 3a 66 6f 72 6d 61 74 20 22 25 7b 25 74 25 7d 3a 5c 6e 20 20 20 25 5b '(choice.:format."%{%t%}:\n...%[
14bd40 56 61 6c 75 65 20 4d 65 6e 75 25 5d 20 25 76 22 0a 09 09 20 28 63 6f 6e 73 74 20 6e 69 6c 29 0a Value.Menu%].%v"....(const.nil).
14bd60 09 09 20 64 69 72 65 63 74 6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 ...directory))..(defun.emms-play
14bd80 65 72 2d 6d 70 64 2d 67 65 74 2d 73 75 70 70 6f 72 74 65 64 2d 72 65 67 65 78 70 20 28 29 0a 20 er-mpd-get-supported-regexp.()..
14bda0 20 22 52 65 74 75 72 6e 73 20 61 20 72 65 67 65 78 70 20 6f 66 20 66 69 6c 65 20 65 78 74 65 6e ."Returns.a.regexp.of.file.exten
14bdc0 73 69 6f 6e 73 20 74 68 61 74 20 4d 75 73 69 63 50 44 20 73 75 70 70 6f 72 74 73 2c 0a 6f 72 20 sions.that.MusicPD.supports,.or.
14bde0 6e 69 6c 20 69 66 20 77 65 20 63 61 6e 6e 6f 74 20 66 69 67 75 72 65 20 69 74 20 6f 75 74 2e 22 nil.if.we.cannot.figure.it.out."
14be00 0a 20 20 28 6c 65 74 20 28 28 6f 75 74 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d ...(let.((out.(shell-command-to-
14be20 73 74 72 69 6e 67 20 22 6d 70 64 20 2d 2d 76 65 72 73 69 6f 6e 22 29 29 29 0a 20 20 20 20 3b 3b string."mpd.--version"))).....;;
14be40 20 30 2e 31 37 2e 78 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 44 .0.17.x.....(if.(string-match."D
14be60 65 63 6f 64 65 72 73 20 70 6c 75 67 69 6e 73 3a 24 22 20 6f 75 74 29 0a 09 28 6c 65 74 2a 20 28 ecoders.plugins:$".out)..(let*.(
14be80 28 62 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 09 20 20 20 20 20 20 20 28 65 20 28 73 74 (b.(match-end.0)).........(e.(st
14bea0 72 69 6e 67 2d 6d 61 74 63 68 20 22 4f 75 74 70 75 74 20 70 6c 75 67 69 6e 73 3a 24 22 20 6f 75 ring-match."Output.plugins:$".ou
14bec0 74 29 29 0a 09 20 20 20 20 20 20 20 28 70 6c 75 67 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 t)).........(plugs.(split-string
14bee0 20 28 73 75 62 73 74 72 69 6e 67 20 6f 75 74 20 62 20 65 29 20 22 5c 6e 22 20 74 29 29 0a 09 20 .(substring.out.b.e)."\n".t))...
14bf00 20 20 20 20 20 20 28 70 6c 75 67 73 20 28 63 6c 2d 6d 61 70 63 61 6e 20 28 6c 61 6d 62 64 61 20 ......(plugs.(cl-mapcan.(lambda.
14bf20 28 78 29 0a 09 09 09 09 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 (x)........(and.(string-match.".
14bf40 2b 5c 5c 5b 2e 2a 5c 5c 5d 20 2b 5c 5c 28 2e 2b 5c 5c 29 24 22 20 78 29 0a 09 09 09 09 09 28 73 +\\[.*\\].+\\(.+\\)$".x)......(s
14bf60 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 78 29 20 6e plit-string.(match-string.1.x).n
14bf80 69 6c 20 74 29 29 29 0a 09 09 09 09 20 70 6c 75 67 73 29 29 0a 09 20 20 20 20 20 20 20 28 62 20 il.t)))......plugs)).........(b.
14bfa0 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 50 72 6f 74 6f 63 6f 6c 73 3a 24 22 (and.(string-match."Protocols:$"
14bfc0 20 6f 75 74 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 09 20 20 20 20 20 20 20 28 70 .out).(match-end.0))).........(p
14bfe0 72 6f 74 73 20 28 61 6e 64 20 62 20 28 73 75 62 73 74 72 69 6e 67 20 6f 75 74 20 28 2b 20 32 20 rots.(and.b.(substring.out.(+.2.
14c000 62 29 20 2d 31 29 29 29 0a 09 20 20 20 20 20 20 20 28 70 72 6f 74 73 20 28 73 70 6c 69 74 2d 73 b).-1))).........(prots.(split-s
14c020 74 72 69 6e 67 20 28 6f 72 20 70 72 6f 74 73 20 22 22 29 20 6e 69 6c 20 74 29 29 29 0a 09 20 20 tring.(or.prots."").nil.t)))....
14c040 28 63 6f 6e 63 61 74 20 22 5c 5c 28 5c 5c 2e 5c 5c 28 6d 33 75 5c 5c 7c 70 6c 73 5c 5c 7c 22 0a (concat."\\(\\.\\(m3u\\|pls\\|".
14c060 09 09 20 20 28 72 65 67 65 78 70 2d 6f 70 74 20 28 64 65 6c 71 20 6e 69 6c 20 70 6c 75 67 73 29 ....(regexp-opt.(delq.nil.plugs)
14c080 29 0a 09 09 20 20 22 5c 5c 29 5c 5c 27 5c 5c 29 5c 5c 7c 5c 5c 28 5c 5c 60 22 0a 09 09 20 20 28 )....."\\)\\'\\)\\|\\(\\`".....(
14c0a0 72 65 67 65 78 70 2d 6f 70 74 20 28 64 65 6c 65 74 65 20 22 66 69 6c 65 3a 2f 2f 22 20 70 72 6f regexp-opt.(delete."file://".pro
14c0c0 74 73 29 29 20 22 5c 5c 29 22 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 2d ts))."\\)")).......(let.((found-
14c0e0 73 74 61 72 74 20 6e 69 6c 29 0a 09 20 20 20 20 28 73 75 70 70 6f 72 74 65 64 20 6e 69 6c 29 29 start.nil)......(supported.nil))
14c100 0a 09 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 53 75 70 70 6f 72 74 65 64 20 64 ..(if.(string-match."Supported.d
14c120 65 63 6f 64 65 72 73 3a 5c 5c 28 5b 5e 30 5d 2b 3f 5c 5c 29 53 75 70 70 6f 72 74 65 64 20 6f 75 ecoders:\\([^0]+?\\)Supported.ou
14c140 74 70 75 74 73 3a 22 20 6f 75 74 29 0a 09 20 20 20 20 3b 3b 20 30 2e 31 35 2e 78 0a 09 20 20 20 tputs:".out)......;;.0.15.x.....
14c160 20 28 73 65 74 71 20 73 75 70 70 6f 72 74 65 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 .(setq.supported.(replace-regexp
14c180 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 5b 2e 2b 3f 5c 5c 5d 22 20 22 22 0a 09 09 09 09 09 09 -in-string."\\[.+?\\]"."".......
14c1a0 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 6f 75 74 29 29 29 0a 09 20 20 ......(match-string.1.out)))....
14c1c0 3b 3b 20 3c 20 30 2e 31 35 0a 09 20 20 28 73 65 74 71 20 6f 75 74 20 28 73 70 6c 69 74 2d 73 74 ;;.<.0.15....(setq.out.(split-st
14c1e0 72 69 6e 67 20 6f 75 74 20 22 5c 6e 22 29 29 0a 09 20 20 28 77 68 69 6c 65 20 28 63 61 72 20 6f ring.out."\n"))....(while.(car.o
14c200 75 74 29 0a 09 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 28 63 61 72 20 6f 75 ut)......(cond.((string=.(car.ou
14c220 74 29 20 22 53 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 3a 22 29 0a 09 09 20 20 20 28 73 t)."Supported.formats:")......(s
14c240 65 74 71 20 66 6f 75 6e 64 2d 73 74 61 72 74 20 74 29 29 0a 09 09 20 20 28 28 73 74 72 69 6e 67 etq.found-start.t)).....((string
14c260 3d 20 28 63 61 72 20 6f 75 74 29 20 22 22 29 0a 09 09 20 20 20 28 73 65 74 71 20 66 6f 75 6e 64 =.(car.out)."")......(setq.found
14c280 2d 73 74 61 72 74 20 6e 69 6c 29 29 0a 09 09 20 20 28 66 6f 75 6e 64 2d 73 74 61 72 74 0a 09 09 -start.nil)).....(found-start...
14c2a0 20 20 20 28 73 65 74 71 20 73 75 70 70 6f 72 74 65 64 20 28 63 6f 6e 63 61 74 20 73 75 70 70 6f ...(setq.supported.(concat.suppo
14c2c0 72 74 65 64 20 28 63 61 72 20 6f 75 74 29 29 29 29 29 0a 09 20 20 20 20 28 73 65 74 71 20 6f 75 rted.(car.out)))))......(setq.ou
14c2e0 74 20 28 63 64 72 20 6f 75 74 29 29 29 29 0a 09 3b 3b 20 43 72 65 61 74 65 20 72 65 67 65 78 70 t.(cdr.out))))..;;.Create.regexp
14c300 0a 09 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 75 70 70 6f 72 74 65 64 29 ..(when.(and.(stringp.supported)
14c320 0a 09 09 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 73 75 70 70 6f 72 74 65 64 20 22 22 ......(not.(string=.supported.""
14c340 29 29 29 0a 09 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 60 68 74 74 70 5b 73 5d 3f 3a 2f 2f 5c 5c )))....(concat."\\`http[s]?://\\
14c360 7c 5c 5c 2e 5c 5c 28 6d 33 75 5c 5c 7c 70 6c 73 5c 5c 7c 22 0a 09 09 20 20 28 72 65 67 65 78 70 |\\.\\(m3u\\|pls\\|".....(regexp
14c380 2d 6f 70 74 20 28 64 65 6c 71 20 6e 69 6c 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 73 75 70 -opt.(delq.nil.(split-string.sup
14c3a0 70 6f 72 74 65 64 29 29 29 0a 09 09 20 20 22 5c 5c 29 5c 5c 27 22 29 29 29 29 29 29 0a 0a 28 64 ported)))....."\\)\\'"))))))..(d
14c3c0 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 75 70 70 6f 72 74 efcustom.emms-player-mpd-support
14c3e0 65 64 2d 72 65 67 65 78 70 0a 20 20 3b 3b 20 55 73 65 20 61 20 73 61 6e 65 20 64 65 66 61 75 6c ed-regexp...;;.Use.a.sane.defaul
14c400 74 2c 20 6a 75 73 74 20 69 6e 20 63 61 73 65 0a 20 20 28 6f 72 20 28 65 6d 6d 73 2d 70 6c 61 79 t,.just.in.case...(or.(emms-play
14c420 65 72 2d 6d 70 64 2d 67 65 74 2d 73 75 70 70 6f 72 74 65 64 2d 72 65 67 65 78 70 29 0a 20 20 20 er-mpd-get-supported-regexp)....
14c440 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 60 68 74 74 70 5b 73 5d 3f 3a 2f 2f 5c 5c 7c 22 0a 09 ...(concat."\\`http[s]?://\\|"..
14c460 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 69 6d 70 6c 65 2d 72 65 67 65 78 70 ......(emms-player-simple-regexp
14c480 0a 09 20 20 20 20 20 20 20 22 6d 33 75 22 20 22 6f 67 67 22 20 22 66 6c 61 63 22 20 22 6d 70 33 ........."m3u"."ogg"."flac"."mp3
14c4a0 22 20 22 77 61 76 22 20 22 6d 6f 64 22 20 22 61 75 22 20 22 61 69 66 66 22 29 29 29 0a 20 20 22 "."wav"."mod"."au"."aiff")))..."
14c4c0 46 6f 72 6d 61 74 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 4d 75 73 69 63 50 44 2e 22 0a 20 Formats.supported.by.MusicPD."..
14c4e0 20 3a 74 79 70 65 20 27 72 65 67 65 78 70 0a 20 20 3a 73 65 74 20 28 66 75 6e 63 74 69 6f 6e 0a .:type.'regexp...:set.(function.
14c500 09 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c 75 65 29 0a 09 20 20 28 73 65 74 20 73 79 6d .(lambda.(sym.value)....(set.sym
14c520 20 76 61 6c 75 65 29 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 .value)....(emms-player-set.emms
14c540 2d 70 6c 61 79 65 72 2d 6d 70 64 20 27 72 65 67 65 78 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 -player-mpd.'regex.value))))..(d
14c560 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 efcustom.emms-player-mpd-connect
14c580 2d 66 75 6e 63 74 69 6f 6e 20 27 6f 70 65 6e 2d 6e 65 74 77 6f 72 6b 2d 73 74 72 65 61 6d 0a 20 -function.'open-network-stream..
14c5a0 20 22 46 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 69 6e 69 74 69 61 74 65 20 74 68 65 20 ."Function.used.to.initiate.the.
14c5c0 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 4d 75 73 69 63 50 44 2e 0a 49 74 20 73 68 6f 75 6c 64 connection.to.MusicPD..It.should
14c5e0 20 74 61 6b 65 20 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 60 6f 70 65 6e 2d 6e 65 .take.same.arguments.as.`open-ne
14c600 74 77 6f 72 6b 2d 73 74 72 65 61 6d 27 20 64 6f 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 twork-stream'.does."...:type.'fu
14c620 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d nction)..(defcustom.emms-player-
14c640 6d 70 64 2d 73 65 72 76 65 72 2d 6e 61 6d 65 20 28 6f 72 20 28 67 65 74 65 6e 76 20 22 4d 50 44 mpd-server-name.(or.(getenv."MPD
14c660 5f 48 4f 53 54 22 29 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 0a 20 20 22 54 68 65 20 4d 75 73 69 _HOST")."localhost")..."The.Musi
14c680 63 50 44 20 73 65 72 76 65 72 20 74 68 61 74 20 77 65 20 73 68 6f 75 6c 64 20 63 6f 6e 6e 65 63 cPD.server.that.we.should.connec
14c6a0 74 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 t.to."...:type.'string)..(defcus
14c6c0 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 6f 72 74 20 tom.emms-player-mpd-server-port.
14c6e0 28 6f 72 20 28 67 65 74 65 6e 76 20 22 4d 50 44 5f 50 4f 52 54 22 29 20 22 36 36 30 30 22 29 0a (or.(getenv."MPD_PORT")."6600").
14c700 20 20 22 54 68 65 20 70 6f 72 74 20 6f 66 20 74 68 65 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 .."The.port.of.the.MusicPD.serve
14c720 72 20 74 68 61 74 20 77 65 20 73 68 6f 75 6c 64 20 63 6f 6e 6e 65 63 74 20 74 6f 2e 22 0a 20 20 r.that.we.should.connect.to."...
14c740 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 6e 75 6d 62 65 72 20 73 74 72 69 6e 67 29 29 0a 0a :type.'(choice.number.string))..
14c760 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 (defcustom.emms-player-mpd-serve
14c780 72 2d 70 61 73 73 77 6f 72 64 20 6e 69 6c 0a 20 20 22 54 68 65 20 70 61 73 73 77 6f 72 64 20 66 r-password.nil..."The.password.f
14c7a0 6f 72 20 74 68 65 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 20 74 68 61 74 20 77 65 20 73 68 or.the.MusicPD.server.that.we.sh
14c7c0 6f 75 6c 64 20 63 6f 6e 6e 65 63 74 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 ould.connect.to."...:type.'(choi
14c7e0 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 6e 65 22 20 6e 69 6c 29 0a 09 09 20 73 74 ce.(const.:tag."None".nil)....st
14c800 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d ring))..(defcustom.emms-player-m
14c820 70 64 2d 63 68 65 63 6b 2d 69 6e 74 65 72 76 61 6c 20 31 0a 20 20 22 48 6f 77 20 6f 66 74 65 6e pd-check-interval.1..."How.often
14c840 20 74 6f 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20 77 68 65 74 68 65 72 20 4d 75 73 69 63 50 44 .to.check.to.see.whether.MusicPD
14c860 20 68 61 73 20 61 64 76 61 6e 63 65 64 20 74 6f 20 74 68 65 0a 6e 65 78 74 20 73 6f 6e 67 2e 20 .has.advanced.to.the.next.song..
14c880 20 54 68 69 73 20 6d 61 79 20 62 65 20 61 6e 20 69 6e 74 65 67 65 72 2c 20 61 20 66 6c 6f 61 74 .This.may.be.an.integer,.a.float
14c8a0 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2c 20 6f 72 0a 6e 69 6c 2e 20 20 49 66 20 73 65 ing.point.number,.or.nil...If.se
14c8c0 74 20 74 6f 20 6e 69 6c 2c 20 74 68 69 73 20 63 68 65 63 6b 20 77 69 6c 6c 20 6e 6f 74 20 62 65 t.to.nil,.this.check.will.not.be
14c8e0 20 70 65 72 69 6f 64 69 63 61 6c 6c 79 0a 70 65 72 66 6f 72 6d 65 64 2e 0a 0a 54 68 69 73 20 76 .periodically.performed...This.v
14c900 61 72 69 61 62 6c 65 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 20 69 66 20 60 65 6d 6d 73 2d 70 6c ariable.is.used.only.if.`emms-pl
14c920 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 70 6c 61 79 6c 69 73 74 27 20 69 73 0a 6e 6f 6e 2d 6e ayer-mpd-sync-playlist'.is.non-n
14c940 69 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 il."...:type.'(choice.(const.:ta
14c960 67 20 22 44 69 73 61 62 6c 65 20 63 68 65 63 6b 22 20 6e 69 6c 29 0a 09 09 20 6e 75 6d 62 65 72 g."Disable.check".nil)....number
14c980 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 76 ))..(defcustom.emms-player-mpd-v
14c9a0 65 72 62 6f 73 65 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 70 72 6f 76 69 64 65 erbose.nil..."Whether.to.provide
14c9c0 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 73 20 66 6f 72 20 73 65 72 76 65 72 20 63 6f 6e 6e 65 63 .notifications.for.server.connec
14c9e0 74 69 6f 6e 20 65 76 65 6e 74 73 0a 61 6e 64 20 65 72 72 6f 72 73 2e 22 0a 20 20 3a 74 79 70 65 tion.events.and.errors."...:type
14ca00 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 70 6c 61 79 .'boolean)..(defcustom.emms-play
14ca20 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 70 6c 61 79 6c 69 73 74 20 74 0a 20 20 22 57 68 65 74 68 65 er-mpd-sync-playlist.t..."Whethe
14ca40 72 20 74 6f 20 73 79 6e 63 68 72 6f 6e 69 7a 65 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 r.to.synchronize.the.EMMS.playli
14ca60 73 74 20 77 69 74 68 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 49 st.with.the.MusicPD.playlist...I
14ca80 66 20 79 6f 75 72 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 73 20 6d 75 f.your.EMMS.playlist.contains.mu
14caa0 73 69 63 20 66 69 6c 65 73 20 72 61 74 68 65 72 20 74 68 61 6e 20 70 6c 61 79 6c 69 73 74 73 2c sic.files.rather.than.playlists,
14cac0 0a 6c 65 61 76 65 20 74 68 69 73 20 73 65 74 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 49 66 20 .leave.this.set.to.non-nil...If.
14cae0 79 6f 75 72 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 63 6f 6e 74 61 69 6e 73 20 73 74 6f 72 your.EMMS.playlist.contains.stor
14cb00 65 64 20 70 6c 61 79 6c 69 73 74 73 2c 20 73 65 74 20 74 68 69 73 20 74 6f 20 6e 69 6c 2e 22 0a ed.playlists,.set.this.to.nil.".
14cb20 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ..:type.'boolean)..(emms-player-
14cb40 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 0a 09 09 20 27 72 65 67 65 78 0a 09 09 set.emms-player-mpd....'regex...
14cb60 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 75 70 70 6f 72 74 65 64 2d 72 65 67 65 78 .emms-player-mpd-supported-regex
14cb80 70 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 p)..(emms-player-set.emms-player
14cba0 2d 6d 70 64 0a 09 09 20 27 70 61 75 73 65 0a 09 09 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d -mpd....'pause....'emms-player-m
14cbc0 70 64 2d 70 61 75 73 65 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 pd-pause)..(emms-player-set.emms
14cbe0 2d 70 6c 61 79 65 72 2d 6d 70 64 0a 09 09 20 27 72 65 73 75 6d 65 0a 09 09 20 27 65 6d 6d 73 2d -player-mpd....'resume....'emms-
14cc00 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 75 73 65 29 0a 0a 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d player-mpd-pause)..(emms-player-
14cc20 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 0a 09 09 20 27 73 65 65 6b 0a 09 09 20 set.emms-player-mpd....'seek....
14cc40 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 65 6b 29 0a 0a 28 65 6d 6d 73 2d 70 6c 'emms-player-mpd-seek)..(emms-pl
14cc60 61 79 65 72 2d 73 65 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 0a 09 09 20 27 73 65 65 ayer-set.emms-player-mpd....'see
14cc80 6b 2d 74 6f 0a 09 09 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 65 6b 2d 74 6f k-to....'emms-player-mpd-seek-to
14cca0 29 0a 0a 3b 3b 3b 20 44 65 61 6c 69 6e 67 20 77 69 74 68 20 74 68 65 20 4d 75 73 69 63 50 44 20 )..;;;.Dealing.with.the.MusicPD.
14ccc0 6e 65 74 77 6f 72 6b 20 70 72 6f 63 65 73 73 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c network.process..(defvar.emms-pl
14cce0 61 79 65 72 2d 6d 70 64 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 65 6d ayer-mpd-process.nil).(defvar.em
14cd00 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 71 75 65 75 65 20 6e 69 6c 29 0a 0a 28 64 65 66 76 61 ms-player-mpd-queue.nil)..(defva
14cd20 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 6c 69 73 74 2d 69 64 20 6e 69 r.emms-player-mpd-playlist-id.ni
14cd40 6c 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 l).(make-variable-buffer-local.'
14cd60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 6c 69 73 74 2d 69 64 29 0a 0a 28 64 emms-player-mpd-playlist-id)..(d
14cd80 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 efvar.emms-player-mpd-current-st
14cda0 61 74 75 73 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 atus.nil).(defvar.emms-player-mp
14cdc0 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 70 d-last-state.nil).(defvar.emms-p
14cde0 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 20 6e 69 6c 29 0a 0a 28 64 65 layer-mpd-status-timer.nil)..(de
14ce00 66 76 61 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 72 65 67 65 fvar.emms-player-mpd-status-rege
14ce20 78 70 0a 20 20 22 5e 5c 5c 28 4f 4b 5c 5c 28 20 4d 50 44 20 5c 5c 29 3f 5c 5c 7c 41 43 4b 20 5c xp..."^\\(OK\\(.MPD.\\)?\\|ACK.\
14ce40 5c 5b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 40 5b 30 2d 39 5d 2b 5c 5c 5d 20 5c 5c 28 2e 2b 5c 5c \[\\([0-9]+\\)@[0-9]+\\].\\(.+\\
14ce60 29 5c 5c 29 5c 6e 2b 5c 5c 27 22 0a 20 20 22 52 65 67 65 78 70 20 74 68 61 74 20 6d 61 74 63 68 )\\)\n+\\'"..."Regexp.that.match
14ce80 65 73 20 74 68 65 20 76 61 6c 69 64 20 73 74 61 74 75 73 20 73 74 72 69 6e 67 73 20 74 68 61 74 es.the.valid.status.strings.that
14cea0 20 4d 75 73 69 63 50 44 20 63 61 6e 0a 72 65 74 75 72 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f .MusicPD.can.return.at.the.end.o
14cec0 66 20 61 20 72 65 71 75 65 73 74 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 f.a.request.")..(defun.emms-play
14cee0 65 72 2d 6d 70 64 2d 72 65 6d 6f 74 65 2d 66 69 6c 65 6e 61 6d 65 70 20 28 66 69 6c 65 6e 61 6d er-mpd-remote-filenamep.(filenam
14cf00 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 46 49 4c 45 4e 41 4d 45 20 69 73 20 61 20 e)..."Return.t.if.FILENAME.is.a.
14cf20 72 65 6d 6f 74 65 20 66 69 6c 65 2e 22 0a 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c remote.file."...(string-match."\
14cf40 5c 60 68 74 74 70 5b 73 5d 3f 3a 2f 2f 22 20 66 69 6c 65 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 \`http[s]?://".filename))..(defu
14cf60 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 n.emms-player-mpd-sentinel.(proc
14cf80 20 65 76 65 6e 74 29 0a 20 20 22 54 68 65 20 70 72 6f 63 65 73 73 20 73 65 6e 74 69 6e 65 6c 20 .event)..."The.process.sentinel.
14cfa0 66 6f 72 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 74 75 73 20 28 70 for.MusicPD."...(let.((status.(p
14cfc0 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 rocess-status.proc))).....(cond.
14cfe0 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 64 65 6c 65 74 65 64 22 20 65 76 65 6e 74 29 ((string-match."^deleted".event)
14d000 0a 09 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 76 65 72 62 6f .....(when.emms-player-mpd-verbo
14d020 73 65 0a 09 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4d 75 73 69 63 50 44 20 70 72 6f 63 65 se.......(message."MusicPD.proce
14d040 73 73 20 77 61 73 20 64 65 6c 65 74 65 64 22 29 29 29 0a 09 20 20 28 28 6d 65 6d 71 20 73 74 61 ss.was.deleted")))....((memq.sta
14d060 74 75 73 20 27 28 65 78 69 74 20 73 69 67 6e 61 6c 20 63 6c 6f 73 65 64 29 29 0a 09 20 20 20 28 tus.'(exit.signal.closed)).....(
14d080 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6c 6f 73 65 2d 70 72 6f 63 65 73 73 20 74 29 emms-player-mpd-close-process.t)
14d0a0 0a 09 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 76 65 72 62 6f .....(when.emms-player-mpd-verbo
14d0c0 73 65 0a 09 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6c 6f 73 65 64 20 4d 75 73 69 63 50 se.......(message."Closed.MusicP
14d0e0 44 20 70 72 6f 63 65 73 73 22 29 29 29 0a 09 20 20 28 28 6d 65 6d 71 20 73 74 61 74 75 73 20 27 D.process")))....((memq.status.'
14d100 28 72 75 6e 20 6f 70 65 6e 29 29 0a 09 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 (run.open)).....(when.emms-playe
14d120 72 2d 6d 70 64 2d 76 65 72 62 6f 73 65 0a 09 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4d 75 r-mpd-verbose.......(message."Mu
14d140 73 69 63 50 44 20 70 72 6f 63 65 73 73 20 73 74 61 72 74 65 64 20 73 75 63 63 65 73 73 66 75 6c sicPD.process.started.successful
14d160 6c 79 22 29 29 29 0a 09 20 20 28 74 0a 09 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 70 6c 61 79 ly")))....(t.....(when.emms-play
14d180 65 72 2d 6d 70 64 2d 76 65 72 62 6f 73 65 0a 09 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4f er-mpd-verbose.......(message."O
14d1a0 74 68 65 72 20 4d 75 73 69 63 50 44 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 3a 20 25 73 2c 20 ther.MusicPD.status.change:.%s,.
14d1c0 25 73 22 20 73 74 61 74 75 73 20 65 76 65 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 %s".status.event))))))..(defun.e
14d1e0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 65 6e 73 75 72 65 2d 70 72 6f 63 65 73 73 20 28 29 mms-player-mpd-ensure-process.()
14d200 0a 20 20 22 4d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 61 20 4d 75 73 69 63 50 44 20 70 72 6f ..."Make.sure.that.a.MusicPD.pro
14d220 63 65 73 73 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 61 63 74 69 76 65 2e 22 0a 20 20 28 75 6e cess.is.currently.active."...(un
14d240 6c 65 73 73 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 72 6f 63 65 73 less.(and.emms-player-mpd-proces
14d260 73 0a 09 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d s.........(processp.emms-player-
14d280 6d 70 64 2d 70 72 6f 63 65 73 73 29 0a 09 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 70 72 6f 63 mpd-process).........(memq.(proc
14d2a0 65 73 73 2d 73 74 61 74 75 73 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 72 6f 63 65 ess-status.emms-player-mpd-proce
14d2c0 73 73 29 20 27 28 72 75 6e 20 6f 70 65 6e 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 ss).'(run.open))).....(setq.emms
14d2e0 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 72 6f 63 65 73 73 0a 09 20 20 28 69 66 20 65 6d 6d 73 2d -player-mpd-process....(if.emms-
14d300 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 6f 72 74 0a 09 20 20 20 20 20 20 28 66 player-mpd-server-port........(f
14d320 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 2d 66 uncall.emms-player-mpd-connect-f
14d340 75 6e 63 74 69 6f 6e 20 22 6d 70 64 22 0a 09 09 20 20 20 20 20 20 20 6e 69 6c 0a 09 09 20 20 20 unction."mpd"..........nil......
14d360 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 6e 61 6d 65 0a ....emms-player-mpd-server-name.
14d380 09 09 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d .........emms-player-mpd-server-
14d3a0 70 6f 72 74 29 0a 09 20 20 20 20 28 6d 61 6b 65 2d 6e 65 74 77 6f 72 6b 2d 70 72 6f 63 65 73 73 port)......(make-network-process
14d3c0 20 3a 6e 61 6d 65 20 22 65 6d 6d 73 2d 6d 70 64 22 0a 09 09 09 09 20 20 3a 73 65 72 76 69 63 65 .:name."emms-mpd".......:service
14d3e0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 6e 61 6d 65 0a 09 09 09 .emms-player-mpd-server-name....
14d400 09 20 20 3a 66 61 6d 69 6c 79 20 27 6c 6f 63 61 6c 29 29 29 0a 20 20 20 20 28 73 65 74 2d 70 72 ...:family.'local))).....(set-pr
14d420 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 ocess-sentinel.emms-player-mpd-p
14d440 72 6f 63 65 73 73 0a 09 09 09 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 rocess......#'emms-player-mpd-se
14d460 6e 74 69 6e 65 6c 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ntinel).....(setq.emms-player-mp
14d480 64 2d 71 75 65 75 65 0a 09 20 20 28 74 71 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 70 6c 61 79 65 d-queue....(tq-create.emms-playe
14d4a0 72 2d 6d 70 64 2d 70 72 6f 63 65 73 73 29 29 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 r-mpd-process)).....(set-process
14d4c0 2d 71 75 65 72 79 2d 6f 6e 2d 65 78 69 74 2d 66 6c 61 67 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d -query-on-exit-flag.emms-player-
14d4e0 6d 70 64 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 0a 20 20 20 20 3b 3b 20 73 65 6e 64 20 70 61 73 mpd-process.nil).....;;.send.pas
14d500 73 77 6f 72 64 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 65 6d 6d 73 2d 70 6c sword.....(when.(stringp.emms-pl
14d520 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 61 73 73 77 6f 72 64 29 0a 20 20 20 20 20 20 ayer-mpd-server-password).......
14d540 28 74 71 2d 65 6e 71 75 65 75 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 71 75 65 75 (tq-enqueue.emms-player-mpd-queu
14d560 65 0a 09 09 20 20 28 63 6f 6e 63 61 74 20 22 70 61 73 73 77 6f 72 64 20 22 20 65 6d 6d 73 2d 70 e.....(concat."password.".emms-p
14d580 6c 61 79 65 72 2d 6d 70 64 2d 73 65 72 76 65 72 2d 70 61 73 73 77 6f 72 64 20 22 5c 6e 22 29 0a layer-mpd-server-password."\n").
14d5a0 09 09 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 72 65 67 65 78 ....emms-player-mpd-status-regex
14d5c0 70 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d p.nil.#'ignore.t))))..(defun.emm
14d5e0 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6c 6f 73 65 2d 70 72 6f 63 65 73 73 20 28 26 6f 70 74 s-player-mpd-close-process.(&opt
14d600 69 6f 6e 61 6c 20 66 72 6f 6d 2d 73 65 6e 74 69 6e 65 6c 29 0a 20 20 22 54 65 72 6d 69 6e 61 74 ional.from-sentinel)..."Terminat
14d620 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 4d 75 73 69 63 50 44 20 63 6c 69 65 6e 74 20 70 72 6f e.the.current.MusicPD.client.pro
14d640 63 65 73 73 2e 0a 46 52 4f 4d 2d 53 45 4e 54 49 4e 45 4c 20 69 6e 64 69 63 61 74 65 73 20 77 68 cess..FROM-SENTINEL.indicates.wh
14d660 65 74 68 65 72 20 74 68 69 73 20 77 61 73 20 63 61 6c 6c 65 64 20 62 79 20 74 68 65 20 70 72 6f ether.this.was.called.by.the.pro
14d680 63 65 73 73 20 73 65 6e 74 69 6e 65 6c 2c 0a 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 63 65 72 cess.sentinel,.in.which.case.cer
14d6a0 74 61 69 6e 20 63 68 65 63 6b 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6d 61 64 65 2e 22 tain.checks.should.not.be.made."
14d6c0 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 66 72 6f 6d 2d 73 65 6e 74 69 6e 65 6c 0a 09 20 20 20 20 ...(when.(or.from-sentinel......
14d6e0 28 61 6e 64 20 28 70 72 6f 63 65 73 73 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 (and.(processp.emms-player-mpd-p
14d700 72 6f 63 65 73 73 29 0a 09 09 20 28 6d 65 6d 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 rocess)....(memq.(process-status
14d720 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 72 6f 63 65 73 73 29 20 27 28 72 75 6e 20 .emms-player-mpd-process).'(run.
14d740 6f 70 65 6e 29 29 29 29 0a 20 20 20 20 28 74 71 2d 63 6c 6f 73 65 20 65 6d 6d 73 2d 70 6c 61 79 open)))).....(tq-close.emms-play
14d760 65 72 2d 6d 70 64 2d 71 75 65 75 65 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 er-mpd-queue).....(setq.emms-pla
14d780 79 65 72 2d 6d 70 64 2d 71 75 65 75 65 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d yer-mpd-queue.nil).....(setq.emm
14d7a0 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 29 29 0a 0a 28 64 65 s-player-mpd-process.nil)))..(de
14d7c0 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 28 71 75 65 73 74 69 fun.emms-player-mpd-send.(questi
14d7e0 6f 6e 20 63 6c 6f 73 75 72 65 20 66 6e 29 0a 20 20 22 53 65 6e 64 20 74 68 65 20 67 69 76 65 6e on.closure.fn)..."Send.the.given
14d800 20 51 55 45 53 54 49 4f 4e 20 74 6f 20 74 68 65 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 2e .QUESTION.to.the.MusicPD.server.
14d820 0a 57 68 65 6e 20 61 20 72 65 70 6c 79 20 63 6f 6d 65 73 2c 20 63 61 6c 6c 20 46 4e 20 77 69 74 .When.a.reply.comes,.call.FN.wit
14d840 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 74 68 65 20 72 65 73 75 6c 74 2e 22 0a 20 20 28 65 6d h.CLOSURE.and.the.result."...(em
14d860 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 65 6e 73 75 72 65 2d 70 72 6f 63 65 73 73 29 0a 20 20 ms-player-mpd-ensure-process)...
14d880 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 28 73 75 62 73 74 72 69 6e 67 20 71 75 65 73 (unless.(string=.(substring.ques
14d8a0 74 69 6f 6e 20 2d 31 29 20 22 5c 6e 22 29 0a 20 20 20 20 28 73 65 74 71 20 71 75 65 73 74 69 6f tion.-1)."\n").....(setq.questio
14d8c0 6e 20 28 63 6f 6e 63 61 74 20 71 75 65 73 74 69 6f 6e 20 22 5c 6e 22 29 29 29 0a 20 20 28 74 71 n.(concat.question."\n")))...(tq
14d8e0 2d 65 6e 71 75 65 75 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 71 75 65 75 65 20 71 -enqueue.emms-player-mpd-queue.q
14d900 75 65 73 74 69 6f 6e 0a 09 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 uestion........emms-player-mpd-s
14d920 74 61 74 75 73 2d 72 65 67 65 78 70 0a 09 20 20 20 20 20 20 63 6c 6f 73 75 72 65 20 66 6e 20 74 tatus-regexp........closure.fn.t
14d940 29 29 0a 0a 3b 3b 3b 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e ))..;;;.Helper.functions..(defun
14d960 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 6d 70 64 2d 66 69 6c 65 6e 61 6d .emms-player-mpd-get-mpd-filenam
14d980 65 20 28 66 69 6c 65 29 0a 20 20 22 54 75 72 6e 20 46 49 4c 45 20 69 6e 74 6f 20 73 6f 6d 65 74 e.(file)..."Turn.FILE.into.somet
14d9a0 68 69 6e 67 20 74 68 61 74 20 4d 75 73 69 63 50 44 20 63 61 6e 20 75 6e 64 65 72 73 74 61 6e 64 hing.that.MusicPD.can.understand
14d9c0 2e 0a 0a 54 68 69 73 20 75 73 75 61 6c 6c 79 20 6d 65 61 6e 73 20 72 65 6d 6f 76 69 6e 67 20 61 ...This.usually.means.removing.a
14d9e0 20 70 72 65 66 69 78 2e 22 0a 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 6c .prefix."...(if.(or.(not.emms-pl
14da00 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 ayer-mpd-music-directory).......
14da20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 61 72 65 66 20 66 69 6c 65 20 30 29 20 3f 2f 29 29 0a ....(not.(eq.(aref.file.0).?/)).
14da40 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 72 65 6d 6f 74 ..........(emms-player-mpd-remot
14da60 65 2d 66 69 6c 65 6e 61 6d 65 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 66 69 6c 65 0a 20 20 e-filenamep.file)).......file...
14da80 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 69 6c 65 20 65 6d 6d 73 2d ..(file-relative-name.file.emms-
14daa0 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 28 player-mpd-music-directory)))..(
14dac0 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 65 6d 6d 73 2d 66 defun.emms-player-mpd-get-emms-f
14dae0 69 6c 65 6e 61 6d 65 20 28 66 69 6c 65 29 0a 20 20 22 54 75 72 6e 20 46 49 4c 45 20 69 6e 74 6f ilename.(file)..."Turn.FILE.into
14db00 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 45 4d 4d 53 20 63 61 6e 20 75 6e 64 65 72 73 74 .something.that.EMMS.can.underst
14db20 61 6e 64 2e 0a 0a 54 68 69 73 20 75 73 75 61 6c 6c 79 20 6d 65 61 6e 73 20 61 64 64 69 6e 67 20 and...This.usually.means.adding.
14db40 61 20 70 72 65 66 69 78 2e 22 0a 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 65 6d 6d 73 2d 70 a.prefix."...(if.(or.(not.emms-p
14db60 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 layer-mpd-music-directory)......
14db80 20 20 20 20 20 28 65 71 20 28 61 72 65 66 20 66 69 6c 65 20 30 29 20 3f 2f 29 0a 20 20 20 20 20 .....(eq.(aref.file.0).?/)......
14dba0 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 72 65 6d 6f 74 65 2d 66 69 6c .....(emms-player-mpd-remote-fil
14dbc0 65 6e 61 6d 65 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 66 69 6c 65 0a 20 20 20 20 28 65 78 enamep.file)).......file.....(ex
14dbe0 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d pand-file-name.file.emms-player-
14dc00 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 mpd-music-directory)))..(defun.e
14dc20 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 72 mms-player-mpd-parse-response.(r
14dc40 65 73 70 6f 6e 73 65 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 74 68 65 20 67 69 76 65 6e 20 4d 75 esponse)..."Convert.the.given.Mu
14dc60 73 69 63 50 44 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f 20 61 20 6c 69 73 74 2e 0a 0a 54 68 65 sicPD.response.into.a.list...The
14dc80 20 63 61 72 20 6f 66 20 74 68 65 20 6c 69 73 74 20 69 73 20 73 70 65 63 69 61 6c 3a 0a 49 66 20 .car.of.the.list.is.special:.If.
14dca0 61 6e 20 65 72 72 6f 72 20 68 61 73 20 6f 63 63 75 72 72 65 64 2c 20 69 74 20 77 69 6c 6c 20 63 an.error.has.occurred,.it.will.c
14dcc0 6f 6e 74 61 69 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 77 68 6f 73 65 20 63 61 72 20 69 73 0a ontain.a.cons.cell.whose.car.is.
14dce0 61 6e 20 65 72 72 6f 72 20 6e 75 6d 62 65 72 20 61 6e 64 20 77 68 6f 73 65 20 63 64 72 20 69 73 an.error.number.and.whose.cdr.is
14dd00 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 2e 0a 4f 74 68 65 .the.corresponding.message..Othe
14dd20 72 77 69 73 65 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 rwise,.it.will.be.nil."...(when.
14dd40 28 73 74 72 69 6e 67 70 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 73 61 76 65 2d 6d 61 74 (stringp.response).....(save-mat
14dd60 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 73 70 6c 69 ch-data.......(let*.((data.(spli
14dd80 74 2d 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 22 5c 6e 22 29 29 0a 09 20 20 20 20 20 28 t-string.response."\n")).......(
14dda0 63 72 75 66 74 20 28 6c 61 73 74 20 64 61 74 61 20 33 29 29 0a 09 20 20 20 20 20 28 73 74 61 74 cruft.(last.data.3)).......(stat
14ddc0 75 73 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 63 61 64 72 20 63 72 75 66 74 29 20 22 22 29 us.(if.(string=.(cadr.cruft)."")
14dde0 0a 09 09 09 20 28 63 61 72 20 63 72 75 66 74 29 0a 09 09 20 20 20 20 20 20 20 28 63 61 64 72 20 .....(car.cruft)..........(cadr.
14de00 63 72 75 66 74 29 29 29 29 0a 09 28 73 65 74 63 64 72 20 63 72 75 66 74 20 6e 69 6c 29 0a 09 28 cruft))))..(setcdr.cruft.nil)..(
14de20 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 64 61 74 61 29 29 0a 09 when.(and.(stringp.(car.data))..
14de40 09 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 4f 4b 5c 5c 28 20 4d 50 44 20 5c 5c ....(string-match."^OK\\(.MPD.\\
14de60 29 3f 22 20 28 63 61 72 20 64 61 74 61 29 29 29 0a 09 20 20 28 73 65 74 71 20 64 61 74 61 20 28 )?".(car.data)))....(setq.data.(
14de80 63 64 72 20 64 61 74 61 29 29 29 0a 09 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 cdr.data)))..(if.(and.(stringp.s
14dea0 74 61 74 75 73 29 0a 09 09 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 41 43 4b 20 5c 5c tatus)....(string-match."^ACK.\\
14dec0 5b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 40 5b 30 2d 39 5d 2b 5c 5c 5d 20 5c 5c 28 2e 2b 5c 5c 29 [\\([0-9]+\\)@[0-9]+\\].\\(.+\\)
14dee0 22 0a 09 09 09 20 20 20 20 20 20 20 73 74 61 74 75 73 29 29 0a 09 20 20 20 20 28 63 6f 6e 73 20 "...........status))......(cons.
14df00 28 63 6f 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 74 61 74 75 73 29 0a 09 09 (cons.(match-string.1.status)...
14df20 09 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 73 74 61 74 75 73 29 29 0a 09 09 20 20 64 61 .(match-string.2.status)).....da
14df40 74 61 29 0a 09 20 20 28 63 6f 6e 73 20 6e 69 6c 20 64 61 74 61 29 29 29 29 29 29 0a 0a 28 64 65 ta)....(cons.nil.data))))))..(de
14df60 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 6c 69 6e 65 20 28 fun.emms-player-mpd-parse-line.(
14df80 6c 69 6e 65 29 0a 20 20 22 54 75 72 6e 20 74 68 65 20 67 69 76 65 6e 20 4c 49 4e 45 20 66 72 6f line)..."Turn.the.given.LINE.fro
14dfa0 6d 20 4d 75 73 69 63 50 44 20 69 6e 74 6f 20 61 20 63 6f 6e 73 20 63 65 6c 6c 2e 0a 0a 54 68 65 m.MusicPD.into.a.cons.cell...The
14dfc0 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 63 65 6c 6c 20 69 73 20 28 6e 61 6d 65 20 2e 20 76 .format.of.the.cell.is.(name...v
14dfe0 61 6c 75 65 29 2e 22 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c alue)."...(when.(string-match."\
14e000 5c 60 5c 5c 28 5b 5e 3a 5c 6e 5d 2b 5c 5c 29 3a 5c 5c 73 2d 2a 5c 5c 28 2e 2b 5c 5c 29 22 20 6c \`\\([^:\n]+\\):\\s-*\\(.+\\)".l
14e020 69 6e 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 ine).....(let.((name.(match-stri
14e040 6e 67 20 31 20 6c 69 6e 65 29 29 0a 09 20 20 28 76 61 6c 75 65 20 28 6d 61 74 63 68 2d 73 74 72 ng.1.line))....(value.(match-str
14e060 69 6e 67 20 32 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6e 61 6d ing.2.line))).......(if.(and.nam
14e080 65 20 76 61 6c 75 65 29 0a 09 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 28 73 65 74 71 20 6e 61 e.value)....(progn......(setq.na
14e0a0 6d 65 20 28 64 6f 77 6e 63 61 73 65 20 6e 61 6d 65 29 29 0a 09 20 20 20 20 28 63 6f 6e 73 20 6e me.(downcase.name))......(cons.n
14e0c0 61 6d 65 20 76 61 6c 75 65 29 29 0a 09 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ame.value))..nil))))..(defun.emm
14e0e0 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 20 28 69 6e 66 6f 29 0a 20 20 s-player-mpd-get-alist.(info)...
14e100 22 54 75 72 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 72 73 65 64 20 49 4e 46 4f 20 66 72 6f 6d "Turn.the.given.parsed.INFO.from
14e120 20 4d 75 73 69 63 50 44 20 69 6e 74 6f 20 61 6e 20 61 6c 69 73 74 2e 22 0a 20 20 28 77 68 65 6e .MusicPD.into.an.alist."...(when
14e140 20 28 61 6e 64 20 69 6e 66 6f 0a 09 20 20 20 20 20 28 6e 75 6c 6c 20 28 63 61 72 20 69 6e 66 6f .(and.info.......(null.(car.info
14e160 29 29 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f 20 65 72 72 6f 72 20 68 61 73 20 6f 63 63 75 72 ))..........;.no.error.has.occur
14e180 72 65 64 0a 09 20 20 20 20 20 28 63 64 72 20 69 6e 66 6f 29 29 20 20 20 20 20 20 20 20 20 20 20 red.......(cdr.info))...........
14e1a0 20 20 20 20 20 3b 20 64 61 74 61 20 65 78 69 73 74 73 0a 20 20 20 20 28 6c 65 74 20 28 28 61 6c .....;.data.exists.....(let.((al
14e1c0 69 73 74 20 6e 69 6c 29 0a 09 20 20 63 65 6c 6c 20 6f 6c 64 2d 63 65 6c 6c 29 0a 20 20 20 20 20 ist.nil)....cell.old-cell)......
14e1e0 20 28 64 6f 6c 69 73 74 20 28 6c 69 6e 65 20 28 63 64 72 20 69 6e 66 6f 29 29 0a 09 28 77 68 65 .(dolist.(line.(cdr.info))..(whe
14e200 6e 20 28 73 65 74 71 20 63 65 6c 6c 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 n.(setq.cell.(emms-player-mpd-pa
14e220 72 73 65 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 09 20 20 28 69 66 20 28 73 65 74 71 20 6f 6c 64 rse-line.line))....(if.(setq.old
14e240 2d 63 65 6c 6c 20 28 61 73 73 6f 63 20 28 63 61 72 20 63 65 6c 6c 29 20 61 6c 69 73 74 29 29 0a -cell.(assoc.(car.cell).alist)).
14e260 09 20 20 20 20 20 20 28 73 65 74 63 64 72 20 6f 6c 64 2d 63 65 6c 6c 20 28 63 64 72 20 63 65 6c .......(setcdr.old-cell.(cdr.cel
14e280 6c 29 29 0a 09 20 20 20 20 28 73 65 74 71 20 61 6c 69 73 74 20 28 63 6f 6e 73 20 63 65 6c 6c 20 l))......(setq.alist.(cons.cell.
14e2a0 61 6c 69 73 74 29 29 29 29 29 0a 20 20 20 20 20 20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 alist))))).......alist)))..(defu
14e2c0 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 73 20 28 69 6e n.emms-player-mpd-get-alists.(in
14e2e0 66 6f 29 0a 20 20 22 54 75 72 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 72 73 65 64 20 49 4e 46 fo)..."Turn.the.given.parsed.INF
14e300 4f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 20 69 6e 74 6f 20 61 6e 20 6c 69 73 74 20 6f 66 20 61 O.from.MusicPD.into.an.list.of.a
14e320 6c 69 73 74 73 2e 0a 0a 54 68 65 20 6c 69 73 74 20 77 69 6c 6c 20 62 65 20 69 6e 20 72 65 76 65 lists...The.list.will.be.in.reve
14e340 72 73 65 20 6f 72 64 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 69 6e 66 6f 0a 09 20 rse.order."...(when.(and.info...
14e360 20 20 20 20 28 6e 75 6c 6c 20 28 63 61 72 20 69 6e 66 6f 29 29 20 20 20 20 20 20 20 20 20 20 3b ....(null.(car.info))..........;
14e380 20 6e 6f 20 65 72 72 6f 72 20 68 61 73 20 6f 63 63 75 72 72 65 64 0a 09 20 20 20 20 20 28 63 64 .no.error.has.occurred.......(cd
14e3a0 72 20 69 6e 66 6f 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 61 74 61 20 65 r.info))................;.data.e
14e3c0 78 69 73 74 73 0a 20 20 20 20 28 6c 65 74 20 28 28 61 6c 69 73 74 73 20 6e 69 6c 29 0a 09 20 20 xists.....(let.((alists.nil)....
14e3e0 28 61 6c 69 73 74 20 6e 69 6c 29 0a 09 20 20 63 65 6c 6c 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 (alist.nil)....cell).......(doli
14e400 73 74 20 28 6c 69 6e 65 20 28 63 64 72 20 69 6e 66 6f 29 29 0a 09 28 77 68 65 6e 20 28 73 65 74 st.(line.(cdr.info))..(when.(set
14e420 71 20 63 65 6c 6c 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 6c 69 q.cell.(emms-player-mpd-parse-li
14e440 6e 65 20 6c 69 6e 65 29 29 0a 09 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 28 63 61 72 20 63 65 ne.line))....(if.(member.(car.ce
14e460 6c 6c 29 20 27 28 22 66 69 6c 65 22 20 22 64 69 72 65 63 74 6f 72 79 22 20 22 70 6c 61 79 6c 69 ll).'("file"."directory"."playli
14e480 73 74 22 29 29 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 61 6c 69 73 74 73 20 28 63 6f 6e 73 20 st"))........(setq.alists.(cons.
14e4a0 61 6c 69 73 74 20 61 6c 69 73 74 73 29 0a 09 09 20 20 20 20 61 6c 69 73 74 20 28 6c 69 73 74 20 alist.alists).......alist.(list.
14e4c0 63 65 6c 6c 29 29 0a 09 20 20 20 20 28 73 65 74 71 20 61 6c 69 73 74 20 28 63 6f 6e 73 20 63 65 cell))......(setq.alist.(cons.ce
14e4e0 6c 6c 20 61 6c 69 73 74 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 61 6c 69 73 74 0a ll.alist))))).......(when.alist.
14e500 09 28 73 65 74 71 20 61 6c 69 73 74 73 20 28 63 6f 6e 73 20 61 6c 69 73 74 20 61 6c 69 73 74 73 .(setq.alists.(cons.alist.alists
14e520 29 29 29 0a 20 20 20 20 20 20 61 6c 69 73 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 ))).......alists)))..(defun.emms
14e540 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 74 72 61 63 6b 73 2d 31 20 28 63 6c 6f 73 75 72 -player-mpd-get-tracks-1.(closur
14e560 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 28 6c 65 74 20 28 28 73 6f 6e 67 73 20 28 65 6d 6d 73 e.response)...(let.((songs.(emms
14e580 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 73 0a 09 09 28 65 6d 6d 73 2d 70 -player-mpd-get-alists...(emms-p
14e5a0 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 layer-mpd-parse-response.respons
14e5c0 65 29 29 29 0a 09 28 74 72 61 63 6b 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 6f e)))..(tracks.nil)).....(when.so
14e5e0 6e 67 73 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 6f 6e 67 2d 69 6e 66 6f 20 73 6f 6e ngs.......(dolist.(song-info.son
14e600 67 73 29 0a 09 28 6c 65 74 20 28 28 66 69 6c 65 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 66 69 gs)..(let.((file.(cdr.(assoc."fi
14e620 6c 65 22 20 73 6f 6e 67 2d 69 6e 66 6f 29 29 29 29 0a 09 20 20 28 77 68 65 6e 20 66 69 6c 65 0a le".song-info))))....(when.file.
14e640 09 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 .....(setq.file.(emms-player-mpd
14e660 2d 67 65 74 2d 65 6d 6d 73 2d 66 69 6c 65 6e 61 6d 65 20 66 69 6c 65 29 29 0a 09 20 20 20 20 28 -get-emms-filename.file))......(
14e680 6c 65 74 2a 20 28 28 74 79 70 65 20 28 69 66 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 let*.((type.(if.(emms-player-mpd
14e6a0 2d 72 65 6d 6f 74 65 2d 66 69 6c 65 6e 61 6d 65 70 20 66 69 6c 65 29 0a 09 09 09 20 20 20 20 20 -remote-filenamep.file).........
14e6c0 27 75 72 6c 0a 09 09 09 20 20 20 27 66 69 6c 65 29 29 0a 09 09 20 20 20 28 74 72 61 63 6b 20 28 'url.......'file))......(track.(
14e6e0 65 6d 6d 73 2d 74 72 61 63 6b 20 74 79 70 65 20 66 69 6c 65 29 29 29 0a 09 20 20 20 20 20 20 28 emms-track.type.file)))........(
14e700 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 20 74 72 61 63 6b 20 73 6f 6e 67 2d 69 6e 66 6f 29 0a 09 emms-info-mpd.track.song-info)..
14e720 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d ......(run-hook-with-args.'emms-
14e740 74 72 61 63 6b 2d 69 6e 66 6f 2d 66 69 6c 74 65 72 73 20 74 72 61 63 6b 29 0a 09 20 20 20 20 20 track-info-filters.track).......
14e760 20 28 73 65 74 71 20 74 72 61 63 6b 73 20 28 63 6f 6e 73 20 74 72 61 63 6b 20 74 72 61 63 6b 73 .(setq.tracks.(cons.track.tracks
14e780 29 29 29 29 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 63 6c 6f 73 75 72 ))))))).....(funcall.(car.closur
14e7a0 65 29 20 28 63 64 72 20 63 6c 6f 73 75 72 65 29 20 74 72 61 63 6b 73 29 29 29 0a 0a 28 64 65 66 e).(cdr.closure).tracks)))..(def
14e7c0 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 74 72 61 63 6b 73 20 28 63 un.emms-player-mpd-get-tracks.(c
14e7e0 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 72 72 losure.callback)..."Get.the.curr
14e800 65 6e 74 20 70 6c 61 79 6c 69 73 74 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 20 69 6e 20 74 68 65 ent.playlist.from.MusicPD.in.the
14e820 20 66 6f 72 6d 20 6f 66 20 61 20 6c 69 73 74 20 6f 66 0a 45 4d 4d 53 20 74 72 61 63 6b 73 2e 0a .form.of.a.list.of.EMMS.tracks..
14e840 43 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 Call.CALLBACK.with.CLOSURE.and.r
14e860 65 73 75 6c 74 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 esult.when.the.request.is.comple
14e880 74 65 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 70 6c te."...(emms-player-mpd-send."pl
14e8a0 61 79 6c 69 73 74 69 6e 66 6f 22 20 28 63 6f 6e 73 20 63 61 6c 6c 62 61 63 6b 20 63 6c 6f 73 75 aylistinfo".(cons.callback.closu
14e8c0 72 65 29 0a 09 09 09 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 74 72 61 re)....#'emms-player-mpd-get-tra
14e8e0 63 6b 73 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d cks-1))..(defun.emms-player-mpd-
14e900 67 65 74 2d 73 74 61 74 75 73 2d 31 20 28 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a get-status-1.(closure.response).
14e920 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 63 6c 6f 73 75 72 65 29 0a 09 20 20 20 28 63 64 ..(funcall.(car.closure).....(cd
14e940 72 20 63 6c 6f 73 75 72 65 29 0a 09 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d r.closure).....(emms-player-mpd-
14e960 67 65 74 2d 61 6c 69 73 74 0a 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d get-alist......(emms-player-mpd-
14e980 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 0a 28 64 65 parse-response.response))))..(de
14e9a0 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 20 28 fun.emms-player-mpd-get-status.(
14e9c0 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 47 65 74 20 73 74 61 74 75 73 20 closure.callback)..."Get.status.
14e9e0 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 49 74 20 77 69 6c information.from.MusicPD..It.wil
14ea00 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 6e 20 l.be.returned.in.the.form.of.an.
14ea20 61 6c 69 73 74 20 62 79 20 63 61 6c 6c 69 6e 67 20 43 41 4c 4c 42 41 43 4b 0a 77 69 74 68 20 43 alist.by.calling.CALLBACK.with.C
14ea40 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2c 20 61 6e LOSURE.as.its.first.argument,.an
14ea60 64 20 74 68 65 20 73 74 61 74 75 73 20 61 73 20 74 68 65 0a 73 65 63 6f 6e 64 2e 22 0a 20 20 28 d.the.status.as.the.second."...(
14ea80 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 73 74 61 74 75 73 22 20 28 63 emms-player-mpd-send."status".(c
14eaa0 6f 6e 73 20 63 61 6c 6c 62 61 63 6b 20 63 6c 6f 73 75 72 65 29 0a 09 09 09 23 27 65 6d 6d 73 2d ons.callback.closure)....#'emms-
14eac0 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d 31 29 29 0a 0a 28 64 65 66 75 player-mpd-get-status-1))..(defu
14eae0 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d 70 61 72 n.emms-player-mpd-get-status-par
14eb00 74 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 69 74 65 6d 20 26 6f 70 74 69 6f 6e t.(closure.callback.item.&option
14eb20 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 49 54 45 4d 20 66 72 6f 6d 20 74 68 65 20 63 75 al.info)..."Get.ITEM.from.the.cu
14eb40 72 72 65 6e 74 20 4d 75 73 69 63 50 44 20 73 74 61 74 75 73 2e 0a 43 61 6c 6c 20 43 41 4c 4c 42 rrent.MusicPD.status..Call.CALLB
14eb60 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c 74 20 77 68 65 6e ACK.with.CLOSURE.and.result.when
14eb80 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a 49 66 20 49 4e 46 .the.request.is.complete..If.INF
14eba0 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 O.is.specified,.use.that.instead
14ebc0 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a 69 6e 66 6f .of.acquiring.the.necessary.info
14ebe0 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 69 66 20 69 6e 66 6f 0a 20 20 20 20 20 .from.MusicPD."...(if.info......
14ec00 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 63 6c 6f 73 75 72 65 20 28 63 64 72 20 .(funcall.callback.closure.(cdr.
14ec20 28 61 73 73 6f 63 20 69 74 65 6d 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c (assoc.item.info))).....(emms-pl
14ec40 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 0a 20 20 20 20 20 28 63 6f 6e 73 20 63 ayer-mpd-get-status......(cons.c
14ec60 61 6c 6c 62 61 63 6b 20 28 63 6f 6e 73 20 63 6c 6f 73 75 72 65 20 69 74 65 6d 29 29 0a 20 20 20 allback.(cons.closure.item))....
14ec80 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 ..(lambda.(closure.info)........
14eca0 28 6c 65 74 20 28 28 66 6e 20 28 63 61 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 20 20 20 20 20 28 (let.((fn.(car.closure)).......(
14ecc0 63 6c 6f 73 65 20 28 63 61 64 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 20 20 20 20 20 28 69 74 65 close.(cadr.closure)).......(ite
14ece0 6d 20 28 63 64 64 72 20 63 6c 6f 73 75 72 65 29 29 29 0a 09 20 28 66 75 6e 63 61 6c 6c 20 66 6e m.(cddr.closure)))...(funcall.fn
14ed00 20 63 6c 6f 73 65 20 28 63 64 72 20 28 61 73 73 6f 63 20 69 74 65 6d 20 69 6e 66 6f 29 29 29 29 .close.(cdr.(assoc.item.info))))
14ed20 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 ))))..(defun.emms-player-mpd-get
14ed40 2d 70 6c 61 79 6c 69 73 74 2d 69 64 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 26 -playlist-id.(closure.callback.&
14ed60 6f 70 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 72 72 65 6e optional.info)..."Get.the.curren
14ed80 74 20 70 6c 61 79 6c 69 73 74 20 49 44 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 43 61 6c 6c t.playlist.ID.from.MusicPD..Call
14eda0 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c .CALLBACK.with.CLOSURE.and.resul
14edc0 74 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a t.when.the.request.is.complete..
14ede0 49 66 20 49 4e 46 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 If.INFO.is.specified,.use.that.i
14ee00 6e 73 74 65 61 64 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 nstead.of.acquiring.the.necessar
14ee20 79 0a 69 6e 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 77 68 65 6e 20 69 6e y.info.from.MusicPD."...(when.in
14ee40 66 6f 0a 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 63 fo.....(setq.callback.(lambda.(c
14ee60 6c 6f 73 75 72 65 20 69 64 29 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 20 69 64 29 29 losure.id).(ignore.closure).id))
14ee80 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d )...(emms-player-mpd-get-status-
14eea0 70 61 72 74 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 22 70 6c 61 79 6c 69 73 74 22 part.closure.callback."playlist"
14eec0 20 69 6e 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d .info))..(defun.emms-player-mpd-
14eee0 67 65 74 2d 76 6f 6c 75 6d 65 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 26 6f 70 get-volume.(closure.callback.&op
14ef00 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 tional.info)..."Get.the.current.
14ef20 76 6f 6c 75 6d 65 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 43 61 6c 6c 20 43 41 4c 4c 42 41 volume.from.MusicPD..Call.CALLBA
14ef40 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c 74 20 77 68 65 6e 20 CK.with.CLOSURE.and.result.when.
14ef60 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a 49 66 20 49 4e 46 4f the.request.is.complete..If.INFO
14ef80 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 .is.specified,.use.that.instead.
14efa0 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a 69 6e 66 6f 20 of.acquiring.the.necessary.info.
14efc0 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 77 68 65 6e 20 69 6e 66 6f 0a 20 20 20 20 from.MusicPD."...(when.info.....
14efe0 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 (setq.callback.(lambda.(closure.
14f000 76 6f 6c 75 6d 65 29 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 20 76 6f 6c 75 6d 65 29 volume).(ignore.closure).volume)
14f020 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 ))...(emms-player-mpd-get-status
14f040 2d 70 61 72 74 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 22 76 6f 6c 75 6d 65 22 20 -part.closure.callback."volume".
14f060 69 6e 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 info))..(defun.emms-player-mpd-g
14f080 65 74 2d 63 75 72 72 65 6e 74 2d 73 6f 6e 67 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 et-current-song.(closure.callbac
14f0a0 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 72 k.&optional.info)..."Get.the.cur
14f0c0 72 65 6e 74 20 73 6f 6e 67 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 54 68 69 73 20 69 73 20 rent.song.from.MusicPD..This.is.
14f0e0 69 6e 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 20 6e 75 6d 62 65 72 20 74 68 61 74 20 69 6e 64 in.the.form.of.a.number.that.ind
14f100 69 63 61 74 65 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 0a 74 68 65 20 73 6f 6e 67 20 icates.the.position.of.the.song.
14f120 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 43 61 6c 6c 20 43 on.the.current.playlist...Call.C
14f140 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c 74 20 ALLBACK.with.CLOSURE.and.result.
14f160 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a 49 66 when.the.request.is.complete..If
14f180 20 49 4e 46 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 .INFO.is.specified,.use.that.ins
14f1a0 74 65 61 64 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a tead.of.acquiring.the.necessary.
14f1c0 69 6e 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 77 68 65 6e 20 69 6e 66 6f info.from.MusicPD."...(when.info
14f1e0 0a 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f .....(setq.callback.(lambda.(clo
14f200 73 75 72 65 20 69 64 29 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 20 69 64 29 29 29 0a sure.id).(ignore.closure).id))).
14f220 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d 70 61 ..(emms-player-mpd-get-status-pa
14f240 72 74 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 22 73 6f 6e 67 22 20 69 6e 66 6f 29 rt.closure.callback."song".info)
14f260 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 63 75 )..(defun.emms-player-mpd-get-cu
14f280 72 72 65 6e 74 2d 73 6f 6e 67 69 64 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 26 rrent-songid.(closure.callback.&
14f2a0 6f 70 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 72 72 65 6e optional.info)..."Get.the.curren
14f2c0 74 20 73 6f 6e 67 69 64 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 54 68 69 73 20 69 73 20 69 t.songid.from.MusicPD..This.is.i
14f2e0 6e 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 20 6e 75 6d 62 65 72 2c 20 77 68 69 63 68 20 69 73 n.the.form.of.a.number,.which.is
14f300 20 61 6e 20 69 6d 6d 75 74 61 62 6c 65 2c 20 75 6e 69 71 75 65 0a 69 64 65 6e 74 69 66 69 65 72 .an.immutable,.unique.identifier
14f320 20 70 65 72 20 74 72 61 63 6b 20 69 6e 20 61 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 43 61 6c 6c 20 .per.track.in.a.playlist...Call.
14f340 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c 74 CALLBACK.with.CLOSURE.and.result
14f360 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a 49 .when.the.request.is.complete..I
14f380 66 20 49 4e 46 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e f.INFO.is.specified,.use.that.in
14f3a0 73 74 65 61 64 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 stead.of.acquiring.the.necessary
14f3c0 0a 69 6e 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 77 68 65 6e 20 69 6e 66 .info.from.MusicPD."...(when.inf
14f3e0 6f 0a 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 63 6c o.....(setq.callback.(lambda.(cl
14f400 6f 73 75 72 65 20 69 64 29 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 20 69 64 29 29 29 osure.id).(ignore.closure).id)))
14f420 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d 70 ...(emms-player-mpd-get-status-p
14f440 61 72 74 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 22 73 6f 6e 67 69 64 22 20 69 6e art.closure.callback."songid".in
14f460 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 fo))..(defun.emms-player-mpd-get
14f480 2d 63 75 72 72 65 6e 74 2d 63 6f 6e 73 75 6d 65 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 -current-consume.(closure.callba
14f4a0 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 ck.&optional.info)..."Get.the.cu
14f4c0 72 72 65 6e 74 20 63 6f 6e 73 75 6d 65 20 6d 6f 64 65 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e rrent.consume.mode.from.MusicPD.
14f4e0 0a 57 68 65 6e 20 63 6f 6e 73 75 6d 65 20 6d 6f 64 65 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 4d .When.consume.mode.is.enabled,.M
14f500 50 44 20 64 65 6c 65 74 65 73 20 74 72 61 63 6b 73 20 61 66 74 65 72 20 74 68 65 79 27 76 65 20 PD.deletes.tracks.after.they've.
14f520 62 65 65 6e 0a 70 6c 61 79 65 64 2c 20 61 73 20 69 74 20 6d 6f 76 65 73 20 74 6f 20 74 68 65 20 been.played,.as.it.moves.to.the.
14f540 6e 65 78 74 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 43 61 6c next.track.in.the.playlist...Cal
14f560 6c 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 l.CALLBACK.with.CLOSURE.and.resu
14f580 6c 74 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e lt.when.the.request.is.complete.
14f5a0 0a 49 66 20 49 4e 46 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 .If.INFO.is.specified,.use.that.
14f5c0 69 6e 73 74 65 61 64 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 instead.of.acquiring.the.necessa
14f5e0 72 79 0a 69 6e 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 77 68 65 6e 20 69 ry.info.from.MusicPD."...(when.i
14f600 6e 66 6f 0a 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 nfo.....(setq.callback.(lambda.(
14f620 63 6c 6f 73 75 72 65 20 69 64 29 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 20 69 64 29 closure.id).(ignore.closure).id)
14f640 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 ))...(emms-player-mpd-get-status
14f660 2d 70 61 72 74 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 22 63 6f 6e 73 75 6d 65 22 -part.closure.callback."consume"
14f680 20 69 6e 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d .info))..(defun.emms-player-mpd-
14f6a0 67 65 74 2d 6d 70 64 2d 73 74 61 74 65 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 get-mpd-state.(closure.callback.
14f6c0 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 75 72 72 65 &optional.info)..."Get.the.curre
14f6e0 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 4d 75 73 69 63 50 44 20 73 65 72 76 65 72 2e 0a nt.state.of.the.MusicPD.server..
14f700 54 68 69 73 20 69 73 20 65 69 74 68 65 72 20 5c 22 70 6c 61 79 5c 22 2c 20 5c 22 73 74 6f 70 5c This.is.either.\"play\",.\"stop\
14f720 22 2c 20 6f 72 20 5c 22 70 61 75 73 65 5c 22 2e 0a 0a 43 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 ",.or.\"pause\"...Call.CALLBACK.
14f740 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c 74 20 77 68 65 6e 20 74 68 65 with.CLOSURE.and.result.when.the
14f760 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a 49 66 20 49 4e 46 4f 20 69 73 .request.is.complete..If.INFO.is
14f780 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 6f 66 20 .specified,.use.that.instead.of.
14f7a0 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a 69 6e 66 6f 20 66 72 6f acquiring.the.necessary.info.fro
14f7c0 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 77 68 65 6e 20 69 6e 66 6f 0a 20 20 20 20 28 73 65 m.MusicPD."...(when.info.....(se
14f7e0 74 71 20 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 69 64 29 tq.callback.(lambda.(closure.id)
14f800 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 20 69 64 29 29 29 0a 20 20 28 65 6d 6d 73 2d .(ignore.closure).id)))...(emms-
14f820 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d 70 61 72 74 20 63 6c 6f 73 75 player-mpd-get-status-part.closu
14f840 72 65 20 63 61 6c 6c 62 61 63 6b 20 22 73 74 61 74 65 22 20 69 6e 66 6f 29 29 0a 0a 28 64 65 66 re.callback."state".info))..(def
14f860 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 70 6c 61 79 69 6e 67 2d 74 un.emms-player-mpd-get-playing-t
14f880 69 6d 65 20 28 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 ime.(closure.callback.&optional.
14f8a0 69 6e 66 6f 29 0a 20 20 22 47 65 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e info)..."Get.the.number.of.secon
14f8c0 64 73 20 74 68 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 6f 6e 67 20 68 61 73 20 62 65 65 ds.that.the.current.song.has.bee
14f8e0 6e 20 70 6c 61 79 69 6e 67 2c 0a 6f 72 20 6e 69 6c 20 69 66 20 77 65 20 63 61 6e 6e 6f 74 20 6f n.playing,.or.nil.if.we.cannot.o
14f900 62 74 61 69 6e 20 74 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 43 61 6c 6c 20 43 41 btain.this.information...Call.CA
14f920 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 6e 64 20 72 65 73 75 6c 74 20 77 LLBACK.with.CLOSURE.and.result.w
14f940 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 2e 0a 49 66 20 hen.the.request.is.complete..If.
14f960 49 4e 46 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 INFO.is.specified,.use.that.inst
14f980 65 61 64 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a 69 ead.of.acquiring.the.necessary.i
14f9a0 6e 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 69 66 20 69 6e 66 6f 0a 20 20 nfo.from.MusicPD."...(if.info...
14f9c0 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d ....(emms-player-mpd-get-status-
14f9e0 70 61 72 74 0a 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 part........nil........(lambda.(
14fa00 63 6c 6f 73 75 72 65 20 74 69 6d 65 29 0a 09 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 closure.time)...(ignore.closure)
14fa20 0a 09 20 28 61 6e 64 20 74 69 6d 65 0a 09 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 ...(and.time........(string-matc
14fa40 68 20 22 5c 5c 60 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3a 22 20 74 69 6d 65 29 0a 09 20 20 20 20 h."\\`\\([0-9]+\\):".time)......
14fa60 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ..(string-to-number.(match-strin
14fa80 67 20 31 20 74 69 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 22 74 69 6d 65 22 20 69 6e 66 6f 29 g.1.time))))........"time".info)
14faa0 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 .....(emms-player-mpd-get-status
14fac0 2d 70 61 72 74 0a 20 20 20 20 20 28 63 6f 6e 73 20 63 61 6c 6c 62 61 63 6b 20 63 6c 6f 73 75 72 -part......(cons.callback.closur
14fae0 65 29 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 74 69 6d 65 29 0a 20 e)......(lambda.(closure.time)..
14fb00 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 63 6c 6f 73 75 72 65 29 0a 09 09 28 ......(funcall.(car.closure)...(
14fb20 63 64 72 20 63 6c 6f 73 75 72 65 29 0a 09 09 28 61 6e 64 20 74 69 6d 65 0a 09 09 20 20 20 20 20 cdr.closure)...(and.time........
14fb40 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 60 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3a 22 (string-match."\\`\\([0-9]+\\):"
14fb60 20 74 69 6d 65 29 0a 09 09 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 .time)........(string-to-number.
14fb80 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 74 69 6d 65 29 29 29 29 29 0a 20 20 20 20 20 22 (match-string.1.time)))))......"
14fba0 74 69 6d 65 22 20 69 6e 66 6f 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 time".info)))..(defun.emms-playe
14fbc0 72 2d 6d 70 64 2d 73 65 6c 65 63 74 2d 73 6f 6e 67 20 28 70 72 65 76 2d 73 6f 6e 67 20 6e 65 77 r-mpd-select-song.(prev-song.new
14fbe0 2d 73 6f 6e 67 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 73 75 6d 65 29 0a 20 20 22 4d 6f 76 65 -song.&optional.consume)..."Move
14fc00 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 73 6f 6e 67 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 54 68 .to.the.given.song.position...Th
14fc20 65 20 61 6d 6f 75 6e 74 20 74 6f 20 6d 6f 76 65 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 64 e.amount.to.move.is.the.number.d
14fc40 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 50 52 45 56 2d 53 4f 4e 47 20 61 6e 64 0a ifference.between.PREV-SONG.and.
14fc60 4e 45 57 2d 53 4f 4e 47 2e 20 20 4e 45 57 2d 53 4f 4e 47 20 73 68 6f 75 6c 64 20 62 65 20 61 20 NEW-SONG...NEW-SONG.should.be.a.
14fc80 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 6e 75 6d 62 65 72 2e 0a 50 52 45 56 string.containing.a.number..PREV
14fca0 2d 53 4f 4e 47 20 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 61 20 73 74 72 69 6e 67 20 63 6f 6e -SONG.may.be.either.a.string.con
14fcc0 74 61 69 6e 69 6e 67 20 61 20 6e 75 6d 62 65 72 20 6f 72 20 6e 69 6c 2c 0a 77 68 69 63 68 20 69 taining.a.number.or.nil,.which.i
14fce0 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 77 65 20 73 68 6f 75 6c 64 20 73 74 61 72 74 20 66 72 ndicates.that.we.should.start.fr
14fd00 6f 6d 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 0a 62 75 66 66 65 72 20 61 om.the.beginning.of.the.buffer.a
14fd20 6e 64 20 6d 6f 76 65 20 74 6f 20 4e 45 57 2d 53 4f 4e 47 2e 20 57 68 65 6e 20 43 4f 4e 53 55 4d nd.move.to.NEW-SONG..When.CONSUM
14fd40 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 65 6c 65 74 65 20 50 52 45 56 2d 53 4f 4e 47 0a 66 E.is.non-nil,.delete.PREV-SONG.f
14fd60 72 6f 6d 20 74 68 65 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 rom.the.playlist."...(with-curre
14fd80 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 3b 3b 20 6d 6f 76 65 20 74 6f 20 nt-emms-playlist.....;;.move.to.
14fda0 63 75 72 72 65 6e 74 20 74 72 61 63 6b 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 current.track.....(goto-char.(if
14fdc0 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 70 72 65 76 2d 73 6f 6e 67 29 0a 09 09 09 65 6d 6d .(and.(stringp.prev-song)....emm
14fde0 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 09 28 6d s-playlist-selected-marker....(m
14fe00 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c arker-position.emms-playlist-sel
14fe20 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 29 0a 09 09 20 20 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 ected-marker))......emms-playlis
14fe40 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 t-selected-marker....(point-min)
14fe60 29 29 0a 20 20 20 20 3b 3b 20 73 65 65 6b 20 66 6f 72 77 61 72 64 20 6f 72 20 62 61 63 6b 77 61 )).....;;.seek.forward.or.backwa
14fe80 72 64 0a 20 20 20 20 28 6c 65 74 20 28 28 64 69 66 66 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 rd.....(let.((diff.(if.(stringp.
14fea0 70 72 65 76 2d 73 6f 6e 67 29 0a 09 09 20 20 20 20 28 2d 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e prev-song).......(-.(string-to-n
14fec0 75 6d 62 65 72 20 6e 65 77 2d 73 6f 6e 67 29 0a 09 09 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 umber.new-song)..........(string
14fee0 2d 74 6f 2d 6e 75 6d 62 65 72 20 70 72 65 76 2d 73 6f 6e 67 29 29 0a 09 09 20 20 28 73 74 72 69 -to-number.prev-song)).....(stri
14ff00 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6e 65 77 2d 73 6f 6e 67 29 29 29 29 0a 20 20 20 20 20 20 ng-to-number.new-song)))).......
14ff20 28 77 68 65 6e 20 63 6f 6e 73 75 6d 65 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 (when.consume.........(emms-play
14ff40 6c 69 73 74 2d 6d 6f 64 65 2d 6b 69 6c 6c 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 77 list-mode-kill-track).........(w
14ff60 68 65 6e 20 28 3e 20 64 69 66 66 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 hen.(>.diff.0)...........(setq.d
14ff80 69 66 66 20 28 31 2d 20 64 69 66 66 29 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f iff.(1-.diff)))).......(conditio
14ffa0 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 3b 3b 20 73 6b 69 n-case.nil....(progn......;;.ski
14ffc0 70 20 74 6f 20 66 69 72 73 74 20 74 72 61 63 6b 20 69 66 20 6e 6f 74 20 6f 6e 20 6f 6e 65 0a 09 p.to.first.track.if.not.on.one..
14ffe0 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3e 20 64 69 66 66 20 30 29 0a 09 09 20 20 20 20 ....(when.(and.(>.diff.0).......
150000 20 20 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 ...(not.(emms-playlist-track-at.
150020 28 70 6f 69 6e 74 29 29 29 29 0a 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 (point))))........(emms-playlist
150040 2d 6e 65 78 74 29 29 0a 0a 09 20 20 20 20 3b 3b 20 6d 6f 76 65 20 74 6f 20 6e 65 77 20 74 72 61 -next)).......;;.move.to.new.tra
150060 63 6b 0a 09 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 64 69 66 66 20 30 29 0a 09 20 20 20 20 20 ck......(while.(>.diff.0).......
150080 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6e 65 78 74 29 0a 09 20 20 20 20 20 20 28 73 65 .(emms-playlist-next)........(se
1500a0 74 71 20 64 69 66 66 20 28 2d 20 64 69 66 66 20 31 29 29 29 0a 09 20 20 20 20 28 77 68 69 6c 65 tq.diff.(-.diff.1)))......(while
1500c0 20 28 3c 20 64 69 66 66 20 30 29 0a 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .(<.diff.0)........(emms-playlis
1500e0 74 2d 70 72 65 76 69 6f 75 73 29 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 64 69 66 66 20 28 2b t-previous)........(setq.diff.(+
150100 20 64 69 66 66 20 31 29 29 29 0a 09 20 20 20 20 3b 3b 20 73 65 6c 65 63 74 20 74 72 61 63 6b 20 .diff.1)))......;;.select.track.
150120 61 74 20 70 6f 69 6e 74 0a 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c at.point......(emms-playlist-sel
150140 65 63 74 20 28 70 6f 69 6e 74 29 29 29 0a 09 28 65 72 72 6f 72 20 28 63 6f 6e 63 61 74 20 22 43 ect.(point)))..(error.(concat."C
150160 6f 75 6c 64 20 6e 6f 74 20 6d 6f 76 65 20 74 6f 20 70 6f 73 69 74 69 6f 6e 20 22 20 6e 65 77 2d ould.not.move.to.position.".new-
150180 73 6f 6e 67 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d song))))))..(defun.emms-player-m
1501a0 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 65 6d 6d 73 2d 31 20 28 63 6c 6f 73 75 72 65 29 0a 20 20 pd-sync-from-emms-1.(closure)...
1501c0 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 70 6c 61 79 6c 69 73 74 2d 69 64 (emms-player-mpd-get-playlist-id
1501e0 0a 20 20 20 63 6c 6f 73 75 72 65 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 ....closure....(lambda.(closure.
150200 69 64 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 63 61 72 20 63 6c 6f 73 id)......(let.((buffer.(car.clos
150220 75 72 65 29 29 0a 09 20 20 20 28 66 6e 20 28 63 64 72 20 63 6c 6f 73 75 72 65 29 29 29 0a 20 20 ure)).....(fn.(cdr.closure)))...
150240 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 6e 29 0a 09 20 28 66 75 6e .....(when.(functionp.fn)...(fun
150260 63 61 6c 6c 20 66 6e 20 62 75 66 66 65 72 20 69 64 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 call.fn.buffer.id))))))..(defun.
150280 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 65 6d 6d 73 20 28 emms-player-mpd-sync-from-emms.(
1502a0 26 6f 70 74 69 6f 6e 61 6c 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 53 79 6e 63 68 72 6f 6e 69 &optional.callback)..."Synchroni
1502c0 7a 65 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 20 77 69 74 68 20 74 68 65 ze.the.MusicPD.playlist.with.the
1502e0 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 0a 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c .contents.of.the.current.EMMS.pl
150300 61 79 6c 69 73 74 2e 0a 0a 49 66 20 43 41 4c 4c 42 41 43 4b 20 69 73 20 70 72 6f 76 69 64 65 64 aylist...If.CALLBACK.is.provided
150320 2c 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 ,.call.it.with.the.current.EMMS.
150340 70 6c 61 79 6c 69 73 74 0a 62 75 66 66 65 72 20 61 6e 64 20 4d 75 73 69 63 50 44 20 70 6c 61 79 playlist.buffer.and.MusicPD.play
150360 6c 69 73 74 20 49 44 20 77 68 65 6e 20 77 65 20 61 72 65 20 64 6f 6e 65 2c 20 69 66 20 74 68 65 list.ID.when.we.are.done,.if.the
150380 72 65 20 77 65 72 65 20 6e 6f 0a 65 72 72 6f 72 73 2e 22 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 re.were.no.errors."...(emms-play
1503a0 65 72 2d 6d 70 64 2d 63 6c 65 61 72 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d er-mpd-clear)...(with-current-em
1503c0 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 6c 65 74 20 28 74 72 61 63 6b 73 29 0a 20 20 ms-playlist.....(let.(tracks)...
1503e0 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 09 28 73 65 74 71 20 74 72 61 63 6b ....(save-excursion..(setq.track
150400 73 20 28 6e 72 65 76 65 72 73 65 0a 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 s.(nreverse.........(emms-playli
150420 73 74 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e 0a 09 09 20 20 20 20 20 20 20 28 70 6f st-tracks-in-region..........(po
150440 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 int-min).(point-max))))).......(
150460 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 73 65 76 65 72 61 6c 2d 74 72 61 63 emms-player-mpd-add-several-trac
150480 6b 73 0a 20 20 20 20 20 20 20 74 72 61 63 6b 73 0a 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 ks........tracks........(cons.(c
1504a0 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 20 urrent-buffer).callback)........
1504c0 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 65 6d 6d 73 #'emms-player-mpd-sync-from-emms
1504e0 2d 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 -1))))..(defun.emms-player-mpd-s
150500 79 6e 63 2d 66 72 6f 6d 2d 6d 70 64 2d 32 20 28 63 6c 6f 73 75 72 65 20 69 6e 66 6f 29 0a 20 20 ync-from-mpd-2.(closure.info)...
150520 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 63 61 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 28 66 (let.((buffer.(car.closure))..(f
150540 6e 20 28 63 61 64 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 28 63 6c 6f 73 65 20 28 63 64 64 72 20 n.(cadr.closure))..(close.(cddr.
150560 63 6c 6f 73 75 72 65 29 29 0a 09 28 69 64 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d closure))..(id.(emms-player-mpd-
150580 67 65 74 2d 70 6c 61 79 6c 69 73 74 2d 69 64 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 get-playlist-id.nil.#'ignore.inf
1505a0 6f 29 29 0a 09 28 73 6f 6e 67 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d o))..(song.(emms-player-mpd-get-
1505c0 63 75 72 72 65 6e 74 2d 73 6f 6e 67 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f 29 29 current-song.nil.#'ignore.info))
1505e0 29 0a 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 66 65 ).....(when.(buffer-live-p.buffe
150600 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 r).......(let.((emms-playlist-bu
150620 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 09 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d ffer.buffer))..(with-current-emm
150640 73 2d 70 6c 61 79 6c 69 73 74 0a 09 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d s-playlist....(setq.emms-player-
150660 6d 70 64 2d 70 6c 61 79 6c 69 73 74 2d 69 64 20 69 64 29 0a 09 20 20 28 73 65 74 2d 62 75 66 66 mpd-playlist-id.id)....(set-buff
150680 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6e 69 6c 29 0a 09 20 20 28 69 66 20 73 6f 6e 67 0a 09 er-modified-p.nil)....(if.song..
1506a0 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6c 65 63 74 2d 73 6f ......(emms-player-mpd-select-so
1506c0 6e 67 20 6e 69 6c 20 73 6f 6e 67 29 0a 09 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f ng.nil.song)......(goto-char.(po
1506e0 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 int-min))))).......(when.(functi
150700 6f 6e 70 20 66 6e 29 0a 09 28 66 75 6e 63 61 6c 6c 20 66 6e 20 63 6c 6f 73 65 20 69 6e 66 6f 29 onp.fn)..(funcall.fn.close.info)
150720 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e ))))..(defun.emms-player-mpd-syn
150740 63 2d 66 72 6f 6d 2d 6d 70 64 2d 31 20 28 63 6c 6f 73 75 72 65 20 74 72 61 63 6b 73 29 0a 20 20 c-from-mpd-1.(closure.tracks)...
150760 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 63 61 72 20 63 6c 6f 73 75 72 65 29 29 29 0a 20 20 (let.((buffer.(car.closure)))...
150780 20 20 28 77 68 65 6e 20 28 61 6e 64 20 74 72 61 63 6b 73 0a 09 20 20 20 20 20 20 20 28 62 75 66 ..(when.(and.tracks.........(buf
1507a0 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 fer-live-p.buffer)).......(let.(
1507c0 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 09 (emms-playlist-buffer.buffer))..
1507e0 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 09 20 20 28 (with-current-emms-playlist....(
150800 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 63 6c 65 61 72 29 0a 09 20 20 28 6d 61 70 63 20 23 27 emms-playlist-clear)....(mapc.#'
150820 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b emms-playlist-insert-track.track
150840 73 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d s))).......(emms-player-mpd-get-
150860 73 74 61 74 75 73 20 63 6c 6f 73 75 72 65 0a 09 09 09 09 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 status.closure.......#'emms-play
150880 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 6d 70 64 2d 32 29 29 29 29 0a 0a 28 64 65 66 er-mpd-sync-from-mpd-2))))..(def
1508a0 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 6d 70 64 un.emms-player-mpd-sync-from-mpd
1508c0 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 .(&optional.closure.callback)...
1508e0 22 53 79 6e 63 68 72 6f 6e 69 7a 65 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 77 "Synchronize.the.EMMS.playlist.w
150900 69 74 68 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 0a ith.the.contents.of.the.current.
150920 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2e 20 20 4e 61 6d 65 6c 79 2c 20 63 6c 65 61 72 MusicPD.playlist...Namely,.clear
150940 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 20 61 6e 64 20 61 64 .the.EMMS.playlist.buffer.and.ad
150960 64 0a 74 72 61 63 6b 73 20 74 6f 20 69 74 20 74 68 61 74 20 61 72 65 20 70 72 65 73 65 6e 74 20 d.tracks.to.it.that.are.present.
150980 69 6e 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 49 66 20 74 68 65 in.the.MusicPD.playlist...If.the
1509a0 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 61 6e 20 45 4d 4d 53 20 70 6c 61 79 6c .current.buffer.is.an.EMMS.playl
1509c0 69 73 74 20 62 75 66 66 65 72 2c 20 6d 61 6b 65 20 69 74 20 74 68 65 0a 6d 61 69 6e 20 45 4d 4d ist.buffer,.make.it.the.main.EMM
1509e0 53 20 70 6c 61 79 6c 69 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 S.playlist.buffer."...(when.(and
150a00 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 0a 09 20 20 20 20 20 28 6e .emms-playlist-buffer-p.......(n
150a20 6f 74 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 65 6d 6d 73 2d 70 6c 61 ot.(eq.(current-buffer).emms-pla
150a40 79 6c 69 73 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 ylist-buffer))).....(emms-playli
150a60 73 74 2d 73 65 74 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d st-set-playlist-buffer.(current-
150a80 62 75 66 66 65 72 29 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 buffer)))...(with-current-emms-p
150aa0 6c 61 79 6c 69 73 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 laylist.....(emms-player-mpd-get
150ac0 2d 74 72 61 63 6b 73 0a 20 20 20 20 20 28 63 6f 6e 73 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 -tracks......(cons.emms-playlist
150ae0 2d 62 75 66 66 65 72 20 28 63 6f 6e 73 20 63 61 6c 6c 62 61 63 6b 20 63 6c 6f 73 75 72 65 29 29 -buffer.(cons.callback.closure))
150b00 0a 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f ......#'emms-player-mpd-sync-fro
150b20 6d 2d 6d 70 64 2d 31 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d m-mpd-1)))..(defun.emms-player-m
150b40 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 2d 32 20 28 73 74 61 74 65 20 69 pd-detect-song-change-2.(state.i
150b60 6e 66 6f 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 70 6f 73 74 2d 73 79 6e 63 20 74 61 73 6b 73 20 nfo)..."Perform.post-sync.tasks.
150b80 61 66 74 65 72 20 72 65 74 75 72 6e 69 6e 67 20 66 72 6f 6d 20 61 20 73 74 6f 70 2e 22 0a 20 20 after.returning.from.a.stop."...
150ba0 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 (setq.emms-player-mpd-current-st
150bc0 61 74 75 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 atus.nil.........emms-player-pla
150be0 79 69 6e 67 2d 70 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 0a 20 20 20 20 20 20 20 20 ying-p.'emms-player-mpd.........
150c00 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 28 73 74 72 69 6e 67 3d 20 73 74 emms-player-paused-p.(string=.st
150c20 61 74 65 20 22 70 61 75 73 65 22 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 ate."pause"))...(emms-player-mpd
150c40 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 20 69 6e 66 6f 29 29 0a 0a 28 64 65 66 -detect-song-change.info))..(def
150c60 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 un.emms-player-mpd-detect-song-c
150c80 68 61 6e 67 65 2d 31 20 28 63 6c 6f 73 75 72 65 20 69 6e 66 6f 29 0a 20 20 28 69 67 6e 6f 72 65 hange-1.(closure.info)...(ignore
150ca0 20 63 6c 6f 73 75 72 65 29 0a 20 20 28 6c 65 74 20 28 28 6c 61 73 74 2d 69 64 20 28 65 6d 6d 73 .closure)...(let.((last-id.(emms
150cc0 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 63 75 72 72 65 6e 74 2d 73 6f 6e 67 69 64 20 6e -player-mpd-get-current-songid.n
150ce0 69 6c 20 23 27 69 67 6e 6f 72 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 il.#'ignore.emms-player-mpd-curr
150d00 65 6e 74 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 69 64 ent-status)).........(current-id
150d20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 63 75 72 72 65 6e 74 2d 73 6f .(emms-player-mpd-get-current-so
150d40 6e 67 69 64 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 ngid.nil.#'ignore.info))........
150d60 20 28 6c 61 73 74 2d 70 6f 73 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d .(last-pos.(emms-player-mpd-get-
150d80 63 75 72 72 65 6e 74 2d 73 6f 6e 67 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 65 6d 6d 73 2d 70 current-song.nil.#'ignore.emms-p
150da0 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 layer-mpd-current-status))......
150dc0 20 20 20 28 63 75 72 72 65 6e 74 2d 70 6f 73 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 ...(current-pos.(emms-player-mpd
150de0 2d 67 65 74 2d 63 75 72 72 65 6e 74 2d 73 6f 6e 67 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 -get-current-song.nil.#'ignore.i
150e00 6e 66 6f 29 29 0a 09 28 73 74 61 74 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 nfo))..(state.(emms-player-mpd-g
150e20 65 74 2d 6d 70 64 2d 73 74 61 74 65 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f 29 29 et-mpd-state.nil.#'ignore.info))
150e40 0a 09 28 74 69 6d 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 70 6c 61 ..(time.(emms-player-mpd-get-pla
150e60 79 69 6e 67 2d 74 69 6d 65 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f 29 29 0a 09 28 ying-time.nil.#'ignore.info))..(
150e80 65 72 72 2d 6d 73 67 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 65 72 72 6f 72 22 20 69 6e 66 6f err-msg.(cdr.(assoc."error".info
150ea0 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 65 72 72 2d 6d 73 67 29 0a 09 )))).....(if.(stringp.err-msg)..
150ec0 28 70 72 6f 67 6e 0a 09 20 20 28 6d 65 73 73 61 67 65 20 22 4d 75 73 69 63 50 44 20 65 72 72 6f (progn....(message."MusicPD.erro
150ee0 72 3a 20 25 73 22 20 65 72 72 2d 6d 73 67 29 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d r:.%s".err-msg)....(emms-player-
150f00 6d 70 64 2d 73 65 6e 64 0a 09 20 20 20 22 63 6c 65 61 72 65 72 72 6f 72 22 0a 09 20 20 20 6e 69 mpd-send....."clearerror".....ni
150f20 6c 20 23 27 69 67 6e 6f 72 65 29 29 0a 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 l.#'ignore))........(cond.......
150f40 20 28 28 73 74 72 69 6e 67 3d 20 73 74 61 74 65 20 22 73 74 6f 70 22 29 0a 09 28 69 66 20 63 75 .((string=.state."stop")..(if.cu
150f60 72 72 65 6e 74 2d 70 6f 73 0a 09 20 20 20 20 3b 3b 20 61 20 74 72 61 63 6b 20 72 65 6d 61 69 6e rrent-pos......;;.a.track.remain
150f80 73 3a 20 74 68 65 20 75 73 65 72 20 70 72 6f 62 61 62 6c 79 20 73 74 6f 70 70 65 64 20 4d 75 73 s:.the.user.probably.stopped.Mus
150fa0 69 63 50 44 0a 09 20 20 20 20 3b 3b 20 6d 61 6e 75 61 6c 6c 79 2c 20 73 6f 20 77 65 27 6c 6c 20 icPD......;;.manually,.so.we'll.
150fc0 73 74 6f 70 20 45 4d 4d 53 20 63 6f 6d 70 6c 65 74 65 6c 79 0a 09 20 20 20 20 28 6c 65 74 20 28 stop.EMMS.completely......(let.(
150fe0 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 20 74 29 29 0a 09 20 20 20 20 (emms-player-stopped-p.t))......
151000 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 ..(setq.emms-player-mpd-last-sta
151020 74 65 20 22 73 74 6f 70 22 29 0a 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 te."stop")........(emms-player-s
151040 74 6f 70 70 65 64 29 29 0a 09 20 20 3b 3b 20 6e 6f 20 6d 6f 72 65 20 74 72 61 63 6b 73 20 61 72 topped))....;;.no.more.tracks.ar
151060 65 20 6c 65 66 74 3a 20 77 65 20 70 72 6f 62 61 62 6c 79 20 72 61 6e 20 6f 75 74 20 6f 66 20 74 e.left:.we.probably.ran.out.of.t
151080 68 69 6e 67 73 0a 09 20 20 3b 3b 20 74 6f 20 70 6c 61 79 2c 20 73 6f 20 6c 65 74 20 45 4d 4d 53 hings....;;.to.play,.so.let.EMMS
1510a0 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 66 75 72 74 68 65 72 20 69 66 20 69 74 20 77 61 6e 74 .do.something.further.if.it.want
1510c0 73 0a 09 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 65 6d 6d 73 2d 70 6c 61 79 65 s....(unless.(string=.emms-playe
1510e0 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 22 73 74 6f 70 22 29 0a 09 20 20 20 20 28 73 r-mpd-last-state."stop")......(s
151100 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 22 etq.emms-player-mpd-last-state."
151120 73 74 6f 70 22 29 0a 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 stop")......(emms-player-stopped
151140 29 29 29 29 0a 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d )))).........((and.emms-player-m
151160 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 0a 09 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 65 6d 6d pd-last-state.......(string=.emm
151180 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 22 73 74 6f 70 22 29 29 s-player-mpd-last-state."stop"))
1511a0 0a 09 3b 3b 20 72 65 73 75 6d 65 20 66 72 6f 6d 20 61 20 73 74 6f 70 20 74 68 61 74 20 6f 63 63 ..;;.resume.from.a.stop.that.occ
1511c0 75 72 72 65 64 20 6f 75 74 73 69 64 65 20 6f 66 20 45 4d 4d 53 0a 09 28 73 65 74 71 20 65 6d 6d urred.outside.of.EMMS..(setq.emm
1511e0 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 6e 69 6c 29 0a 09 28 65 s-player-mpd-last-state.nil)..(e
151200 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 6d 70 64 0a 09 20 73 mms-player-mpd-sync-from-mpd...s
151220 74 61 74 65 0a 09 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 65 74 65 63 74 2d tate...#'emms-player-mpd-detect-
151240 73 6f 6e 67 2d 63 68 61 6e 67 65 2d 32 29 29 0a 0a 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 song-change-2)).........((string
151260 3d 20 73 74 61 74 65 20 22 70 61 75 73 65 22 29 20 6e 69 6c 29 0a 0a 20 20 20 20 20 20 20 28 28 =.state."pause").nil).........((
151280 73 74 72 69 6e 67 3d 20 73 74 61 74 65 20 22 70 6c 61 79 22 29 0a 09 28 73 65 74 71 20 65 6d 6d string=.state."play")..(setq.emm
1512a0 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 22 70 6c 61 79 22 29 0a s-player-mpd-last-state."play").
1512c0 09 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6e 75 6c 6c 20 63 75 72 72 65 6e 74 2d 69 64 29 0a 09 .(unless.(or.(null.current-id)..
1512e0 09 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 6c 61 73 74 2d 69 64 29 0a 09 09 09 20 .....(and.(stringp.last-id).....
151300 28 73 74 72 69 6e 67 3d 20 63 75 72 72 65 6e 74 2d 69 64 20 6c 61 73 74 2d 69 64 29 29 29 0a 09 (string=.current-id.last-id)))..
151320 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 20 74 ..(let.((emms-player-stopped-p.t
151340 29 29 0a 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 0a 09 ))......(emms-player-stopped))..
151360 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6c 65 63 74 2d 73 6f 6e 67 0a 20 ..(emms-player-mpd-select-song..
151380 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 2d 70 6f 73 20 63 75 72 72 65 6e 74 2d 70 6f 73 0a 20 ..........last-pos.current-pos..
1513a0 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 ..........(and.emms-player-mpd-c
1513c0 75 72 72 65 6e 74 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 urrent-status.................(s
1513e0 74 72 69 6e 67 3d 20 22 31 22 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d tring=."1".(emms-player-mpd-get-
151400 63 75 72 72 65 6e 74 2d 63 6f 6e 73 75 6d 65 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 65 6d 6d current-consume.nil.#'ignore.emm
151420 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 61 74 75 73 29 29 0a 20 20 s-player-mpd-current-status))...
151440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 22 70 6c 61 79 22 20 28 65 ..............(string=."play".(e
151460 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 6d 70 64 2d 73 74 61 74 65 20 6e 69 6c mms-player-mpd-get-mpd-state.nil
151480 20 23 27 69 67 6e 6f 72 65 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e .#'ignore.emms-player-mpd-curren
1514a0 74 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 t-status)).................(stri
1514c0 6e 67 70 20 63 75 72 72 65 6e 74 2d 69 64 29 20 28 73 74 72 69 6e 67 70 20 6c 61 73 74 2d 69 64 ngp.current-id).(stringp.last-id
1514e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 ).................(not.(string=.
151500 63 75 72 72 65 6e 74 2d 69 64 20 6c 61 73 74 2d 69 64 29 29 29 29 0a 09 20 20 28 65 6d 6d 73 2d current-id.last-id))))....(emms-
151520 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 player-started.'emms-player-mpd)
151540 0a 09 20 20 28 77 68 65 6e 20 74 69 6d 65 0a 09 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 ....(when.time......(run-hook-wi
151560 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 74 69 6d 65 2d 73 65 74 2d 66 75 th-args.'emms-player-time-set-fu
151580 6e 63 74 69 6f 6e 73 0a 09 09 09 09 74 69 6d 65 29 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 nctions.....time)))))).....(setq
1515a0 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 61 74 75 73 20 .emms-player-mpd-current-status.
1515c0 69 6e 66 6f 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d info)))..(defun.emms-player-mpd-
1515e0 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e detect-song-change.(&optional.in
151600 66 6f 29 0a 20 20 22 44 65 74 65 63 74 20 77 68 65 74 68 65 72 20 61 20 73 6f 6e 67 20 63 68 61 fo)..."Detect.whether.a.song.cha
151620 6e 67 65 20 68 61 73 20 6f 63 63 75 72 72 65 64 2e 0a 54 68 69 73 20 69 73 20 75 73 75 61 6c 6c nge.has.occurred..This.is.usuall
151640 79 20 63 61 6c 6c 65 64 20 62 79 20 61 20 74 69 6d 65 72 2e 0a 0a 49 66 20 49 4e 46 4f 20 69 73 y.called.by.a.timer...If.INFO.is
151660 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 6f 66 20 .specified,.use.that.instead.of.
151680 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a 69 6e 66 6f 20 66 72 6f acquiring.the.necessary.info.fro
1516a0 6d 20 4d 75 73 69 63 50 44 2e 22 0a 20 20 28 69 66 20 69 6e 66 6f 0a 20 20 20 20 20 20 28 65 6d m.MusicPD."...(if.info.......(em
1516c0 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 ms-player-mpd-detect-song-change
1516e0 2d 31 20 6e 69 6c 20 69 6e 66 6f 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 -1.nil.info).....(emms-player-mp
151700 64 2d 67 65 74 2d 73 74 61 74 75 73 20 6e 69 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d d-get-status.nil.#'emms-player-m
151720 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 2d 31 29 29 29 0a 0a 28 64 65 66 pd-detect-song-change-1)))..(def
151740 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 71 75 6f 74 65 2d 66 69 6c 65 20 28 66 un.emms-player-mpd-quote-file.(f
151760 69 6c 65 29 0a 20 20 22 45 73 63 61 70 65 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72 ile)..."Escape.special.character
151780 73 20 69 6e 20 46 49 4c 45 20 61 6e 64 20 73 75 72 72 6f 75 6e 64 20 69 6e 20 64 6f 75 62 6c 65 s.in.FILE.and.surround.in.double
1517a0 2d 71 75 6f 74 65 73 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 22 22 0a 09 20 20 28 65 6d 6d -quotes."...(concat."\""....(emm
1517c0 73 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 09 20 20 20 22 s-replace-regexp-in-string....."
1517e0 5c 22 22 20 22 5c 5c 5c 5c 5c 22 22 0a 09 20 20 20 28 65 6d 6d 73 2d 72 65 70 6c 61 63 65 2d 72 \""."\\\\\"".....(emms-replace-r
151800 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 5c 5c 22 20 22 5c 5c 5c 5c 5c 5c 5c 5c egexp-in-string."\\\\"."\\\\\\\\
151820 22 20 66 69 6c 65 29 29 0a 09 20 20 22 5c 22 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f ".file))...."\""))..;;;###autolo
151840 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6c 65 61 72 20 ad.(defun.emms-player-mpd-clear.
151860 28 29 0a 20 20 22 43 6c 65 61 72 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 ()..."Clear.the.MusicPD.playlist
151880 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d ."...(interactive)...(when.emms-
1518a0 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 0a 20 20 20 20 28 65 6d 6d player-mpd-status-timer.....(emm
1518c0 73 2d 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 s-cancel-timer.emms-player-mpd-s
1518e0 74 61 74 75 73 2d 74 69 6d 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 tatus-timer).....(setq.emms-play
151900 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 20 6e 69 6c 29 29 0a 20 20 28 73 65 74 er-mpd-status-timer.nil))...(set
151920 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 74 2d 73 74 61 74 65 20 6e 69 6c q.emms-player-mpd-last-state.nil
151940 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 63 6c 65 61 72 )...(emms-player-mpd-send."clear
151960 22 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 29 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 70 6c ".nil.#'ignore)...(let.((emms-pl
151980 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 20 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 ayer-stopped-p.t)).....(emms-pla
1519a0 79 65 72 2d 73 74 6f 70 70 65 64 29 29 29 0a 0a 3b 3b 3b 20 41 64 64 69 6e 67 20 74 6f 20 74 68 yer-stopped)))..;;;.Adding.to.th
1519c0 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d e.MusicPD.playlist..(defun.emms-
1519e0 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 66 69 6c 65 20 28 66 69 6c 65 20 63 6c 6f 73 75 72 player-mpd-add-file.(file.closur
151a00 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 41 64 64 20 46 49 4c 45 20 74 6f 20 74 68 65 20 63 e.callback)..."Add.FILE.to.the.c
151a20 75 72 72 65 6e 74 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2e 0a 45 78 65 63 75 74 65 urrent.MusicPD.playlist..Execute
151a40 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 .CALLBACK.with.CLOSURE.as.its.fi
151a60 72 73 74 20 61 72 67 75 6d 65 6e 74 20 77 68 65 6e 20 64 6f 6e 65 2e 0a 0a 49 66 20 61 6e 20 65 rst.argument.when.done...If.an.e
151a80 72 72 6f 72 20 6f 63 63 75 72 73 2c 20 64 69 73 70 6c 61 79 20 61 20 72 65 6c 65 76 61 6e 74 20 rror.occurs,.display.a.relevant.
151aa0 6d 65 73 73 61 67 65 2e 22 0a 20 20 28 73 65 74 71 20 66 69 6c 65 20 28 65 6d 6d 73 2d 70 6c 61 message."...(setq.file.(emms-pla
151ac0 79 65 72 2d 6d 70 64 2d 67 65 74 2d 6d 70 64 2d 66 69 6c 65 6e 61 6d 65 20 66 69 6c 65 29 29 0a yer-mpd-get-mpd-filename.file)).
151ae0 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 20 20 20 28 63 6f 6e 63 ..(emms-player-mpd-send....(conc
151b00 61 74 20 22 61 64 64 20 22 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 71 75 6f 74 65 at."add.".(emms-player-mpd-quote
151b20 2d 66 69 6c 65 20 66 69 6c 65 29 29 0a 20 20 20 28 63 6f 6e 73 20 66 69 6c 65 20 28 63 6f 6e 73 -file.file))....(cons.file.(cons
151b40 20 63 61 6c 6c 62 61 63 6b 20 63 6c 6f 73 75 72 65 29 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 .callback.closure))....(lambda.(
151b60 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 6f 75 closure.response)......(let.((ou
151b80 74 70 75 74 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 72 65 73 70 tput.(emms-player-mpd-parse-resp
151ba0 6f 6e 73 65 20 72 65 73 70 6f 6e 73 65 29 29 0a 09 20 20 20 28 66 69 6c 65 20 28 63 61 72 20 63 onse.response)).....(file.(car.c
151bc0 6c 6f 73 75 72 65 29 29 0a 09 20 20 20 28 63 61 6c 6c 62 61 63 6b 20 28 63 61 64 72 20 63 6c 6f losure)).....(callback.(cadr.clo
151be0 73 75 72 65 29 29 0a 09 20 20 20 28 63 6c 6f 73 65 20 28 63 64 64 72 20 63 6c 6f 73 75 72 65 29 sure)).....(close.(cddr.closure)
151c00 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 28 63 61 72 20 6f 75 74 70 75 74 29 0a 09 20 20 20 28 ))........(if.(car.output).....(
151c20 6d 65 73 73 61 67 65 20 22 4d 75 73 69 63 50 44 20 65 72 72 6f 72 3a 20 25 73 3a 20 25 73 22 20 message."MusicPD.error:.%s:.%s".
151c40 66 69 6c 65 20 28 63 64 61 72 20 6f 75 74 70 75 74 29 29 0a 09 20 28 77 68 65 6e 20 28 66 75 6e file.(cdar.output))...(when.(fun
151c60 63 74 69 6f 6e 70 20 63 61 6c 6c 62 61 63 6b 29 0a 09 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 ctionp.callback).....(funcall.ca
151c80 6c 6c 62 61 63 6b 20 63 6c 6f 73 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 llback.close)))))))..(defun.emms
151ca0 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 62 75 66 66 65 72 2d 63 6f 6e 74 65 6e 74 73 20 -player-mpd-add-buffer-contents.
151cc0 28 62 75 66 66 65 72 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 4c 6f 61 (buffer.closure.callback)..."Loa
151ce0 64 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 42 55 46 46 45 52 20 69 6e 74 6f 20 4d 75 73 69 63 50 d.contents.of.BUFFER.into.MusicP
151d00 44 20 62 79 20 61 64 64 69 6e 67 20 65 61 63 68 20 6c 69 6e 65 2e 0a 45 78 65 63 75 74 65 20 43 D.by.adding.each.line..Execute.C
151d20 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 72 73 ALLBACK.with.CLOSURE.as.its.firs
151d40 74 20 61 72 67 75 6d 65 6e 74 20 77 68 65 6e 20 64 6f 6e 65 2e 0a 0a 54 68 69 73 20 68 61 6e 64 t.argument.when.done...This.hand
151d60 6c 65 73 20 62 6f 74 68 20 6d 33 75 20 61 6e 64 20 70 6c 73 20 74 79 70 65 20 70 6c 61 79 6c 69 les.both.m3u.and.pls.type.playli
151d80 73 74 73 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 sts."...(with-current-buffer.buf
151da0 66 65 72 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a fer.....(goto-char.(point-min)).
151dc0 20 20 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 61 74 20 28 65 6d 6d 73 2d 73 6f 75 72 63 65 2d 70 ....(let.((format.(emms-source-p
151de0 6c 61 79 6c 69 73 74 2d 64 65 74 65 72 6d 69 6e 65 2d 66 6f 72 6d 61 74 29 29 29 0a 20 20 20 20 laylist-determine-format))).....
151e00 20 20 28 77 68 65 6e 20 66 6f 72 6d 61 74 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 ..(when.format..(emms-player-mpd
151e20 2d 61 64 64 2d 73 65 76 65 72 61 6c 2d 66 69 6c 65 73 0a 09 20 28 65 6d 6d 73 2d 73 6f 75 72 63 -add-several-files...(emms-sourc
151e40 65 2d 70 6c 61 79 6c 69 73 74 2d 66 69 6c 65 73 20 66 6f 72 6d 61 74 29 0a 09 20 63 6c 6f 73 75 e-playlist-files.format)...closu
151e60 72 65 20 63 61 6c 6c 62 61 63 6b 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c re.callback)))))..(defun.emms-pl
151e80 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 20 28 70 6c 61 79 6c 69 73 74 20 ayer-mpd-add-playlist.(playlist.
151ea0 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 4c 6f 61 64 20 63 6f 6e 74 65 6e closure.callback)..."Load.conten
151ec0 74 73 20 6f 66 20 50 4c 41 59 4c 49 53 54 20 69 6e 74 6f 20 4d 75 73 69 63 50 44 20 62 79 20 61 ts.of.PLAYLIST.into.MusicPD.by.a
151ee0 64 64 69 6e 67 20 65 61 63 68 20 6c 69 6e 65 2e 0a 45 78 65 63 75 74 65 20 43 41 4c 4c 42 41 43 dding.each.line..Execute.CALLBAC
151f00 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 K.with.CLOSURE.as.its.first.argu
151f20 6d 65 6e 74 20 77 68 65 6e 20 64 6f 6e 65 2e 0a 0a 54 68 69 73 20 68 61 6e 64 6c 65 73 20 62 6f ment.when.done...This.handles.bo
151f40 74 68 20 6d 33 75 20 61 6e 64 20 70 6c 73 20 74 79 70 65 20 70 6c 61 79 6c 69 73 74 73 2e 22 0a th.m3u.and.pls.type.playlists.".
151f60 20 20 3b 3b 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 70 6c 61 79 6c 69 73 74 ..;;.This.is.useful.for.playlist
151f80 73 20 6f 66 20 70 6c 61 79 6c 69 73 74 73 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 s.of.playlists...(with-temp-buff
151fa0 65 72 0a 20 20 20 20 28 65 6d 6d 73 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 er.....(emms-insert-file-content
151fc0 73 20 70 6c 61 79 6c 69 73 74 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 s.playlist).....(emms-player-mpd
151fe0 2d 61 64 64 2d 62 75 66 66 65 72 2d 63 6f 6e 74 65 6e 74 73 20 28 63 75 72 72 65 6e 74 2d 62 75 -add-buffer-contents.(current-bu
152000 66 66 65 72 29 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 ffer).closure.callback)))..(defu
152020 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 73 74 72 65 61 6d 6c 69 73 74 n.emms-player-mpd-add-streamlist
152040 20 28 75 72 6c 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 44 6f 77 6e 6c .(url.closure.callback)..."Downl
152060 6f 61 64 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 55 52 4c 20 61 6e 64 20 74 68 65 6e 20 61 64 64 oad.contents.of.URL.and.then.add
152080 20 69 74 73 20 66 65 65 64 73 20 69 6e 74 6f 20 4d 75 73 69 63 50 44 2e 0a 45 78 65 63 75 74 65 .its.feeds.into.MusicPD..Execute
1520a0 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 .CALLBACK.with.CLOSURE.as.its.fi
1520c0 72 73 74 20 61 72 67 75 6d 65 6e 74 20 77 68 65 6e 20 64 6f 6e 65 2e 22 0a 20 20 3b 3b 20 54 68 rst.argument.when.done."...;;.Th
1520e0 69 73 20 69 73 20 75 73 65 66 75 6c 20 77 69 74 68 20 65 6d 6d 73 2d 73 74 72 65 61 6d 73 2e 65 is.is.useful.with.emms-streams.e
152100 6c 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 75 72 6c 2d 69 6e 73 65 72 74 2d 66 69 6c l...(if.(fboundp.'url-insert-fil
152120 65 2d 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 72 65 71 75 69 e-contents).......(progn..(requi
152140 72 65 20 27 65 6d 6d 73 2d 75 72 6c 29 0a 09 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 re.'emms-url)..(with-temp-buffer
152160 0a 09 20 20 28 75 72 6c 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 28 65 ....(url-insert-file-contents.(e
152180 6d 6d 73 2d 75 72 6c 2d 71 75 6f 74 65 2d 65 6e 74 69 72 65 20 75 72 6c 29 29 0a 09 20 20 28 65 mms-url-quote-entire.url))....(e
1521a0 6d 6d 73 2d 68 74 74 70 2d 64 65 63 6f 64 65 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d mms-http-decode-buffer.(current-
1521c0 62 75 66 66 65 72 29 29 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 buffer))....(emms-player-mpd-add
1521e0 2d 62 75 66 66 65 72 2d 63 6f 6e 74 65 6e 74 73 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 -buffer-contents.(current-buffer
152200 29 0a 09 09 09 09 09 20 20 20 20 20 20 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 29 ).............closure.callback))
152220 29 0a 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 59 ).....(error.(message.(concat."Y
152240 6f 75 20 6e 65 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 75 72 6c 2e 65 6c 20 73 6f 20 74 68 61 ou.need.to.install.url.el.so.tha
152260 74 22 0a 09 09 09 20 20 20 20 22 20 45 6d 6d 73 20 63 61 6e 20 72 65 74 72 69 65 76 65 20 74 68 t"........".Emms.can.retrieve.th
152280 69 73 20 73 74 72 65 61 6d 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 is.stream")))))..(defun.emms-pla
1522a0 79 65 72 2d 6d 70 64 2d 61 64 64 20 28 74 72 61 63 6b 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 yer-mpd-add.(track.closure.callb
1522c0 61 63 6b 29 0a 20 20 22 41 64 64 20 54 52 41 43 4b 20 74 6f 20 74 68 65 20 4d 75 73 69 63 50 44 ack)..."Add.TRACK.to.the.MusicPD
1522e0 20 70 6c 61 79 6c 69 73 74 2e 0a 45 78 65 63 75 74 65 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 .playlist..Execute.CALLBACK.with
152300 20 43 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 77 .CLOSURE.as.its.first.argument.w
152320 68 65 6e 20 64 6f 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 hen.done."...(let.((name.(emms-t
152340 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 09 28 74 79 70 65 20 28 65 rack-get.track.'name))..(type.(e
152360 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 29 29 0a 20 20 20 mms-track-get.track.'type)))....
152380 20 28 63 6f 6e 64 20 28 28 65 71 20 74 79 70 65 20 27 75 72 6c 29 0a 09 20 20 20 28 65 6d 6d 73 .(cond.((eq.type.'url).....(emms
1523a0 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 66 69 6c 65 20 6e 61 6d 65 20 63 6c 6f 73 75 72 -player-mpd-add-file.name.closur
1523c0 65 20 63 61 6c 6c 62 61 63 6b 29 29 0a 09 20 20 28 28 65 71 20 74 79 70 65 20 27 73 74 72 65 61 e.callback))....((eq.type.'strea
1523e0 6d 6c 69 73 74 29 0a 09 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d mlist).....(emms-player-mpd-add-
152400 73 74 72 65 61 6d 6c 69 73 74 20 6e 61 6d 65 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b streamlist.name.closure.callback
152420 29 29 0a 09 20 20 28 28 6f 72 20 28 65 71 20 74 79 70 65 20 27 70 6c 61 79 6c 69 73 74 29 0a 09 ))....((or.(eq.type.'playlist)..
152440 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 5c 5c 28 6d 33 75 5c .......(string-match."\\.\\(m3u\
152460 5c 7c 70 6c 73 5c 5c 29 5c 5c 27 22 20 6e 61 6d 65 29 29 0a 09 20 20 20 28 65 6d 6d 73 2d 70 6c \|pls\\)\\'".name)).....(emms-pl
152480 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 70 6c 61 79 6c 69 73 74 20 6e 61 6d 65 20 63 6c 6f 73 75 ayer-mpd-add-playlist.name.closu
1524a0 72 65 20 63 61 6c 6c 62 61 63 6b 29 29 0a 09 20 20 28 28 61 6e 64 20 28 65 71 20 74 79 70 65 20 re.callback))....((and.(eq.type.
1524c0 27 66 69 6c 65 29 0a 09 09 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 65 6d 6d 73 2d 70 6c 61 79 'file)...(string-match.emms-play
1524e0 65 72 2d 6d 70 64 2d 73 75 70 70 6f 72 74 65 64 2d 72 65 67 65 78 70 20 6e 61 6d 65 29 29 0a 09 er-mpd-supported-regexp.name))..
152500 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 66 69 6c 65 20 6e 61 6d ...(emms-player-mpd-add-file.nam
152520 65 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 e.closure.callback)))))..(defun.
152540 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 2d 73 65 76 65 72 61 6c 2d 74 72 61 63 emms-player-mpd-add-several-trac
152560 6b 73 20 28 74 72 61 63 6b 73 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 ks.(tracks.closure.callback)..."
152580 41 64 64 20 54 52 41 43 4b 53 20 74 6f 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 Add.TRACKS.to.the.MusicPD.playli
1525a0 73 74 2e 0a 45 78 65 63 75 74 65 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 st..Execute.CALLBACK.with.CLOSUR
1525c0 45 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 77 68 65 6e 20 64 6f 6e E.as.its.first.argument.when.don
1525e0 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 63 6f 6e 73 70 20 74 72 61 63 6b 73 29 0a 20 20 20 20 28 e."...(when.(consp.tracks).....(
152600 77 68 69 6c 65 20 28 63 64 72 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 while.(cdr.tracks).......(emms-p
152620 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 20 28 63 61 72 20 74 72 61 63 6b 73 29 20 6e 69 6c 20 23 layer-mpd-add.(car.tracks).nil.#
152640 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 73 20 28 63 64 72 'ignore).......(setq.tracks.(cdr
152660 20 74 72 61 63 6b 73 29 29 29 0a 20 20 20 20 3b 3b 20 6f 6e 6c 79 20 65 78 65 63 75 74 65 20 63 .tracks))).....;;.only.execute.c
152680 61 6c 6c 62 61 63 6b 20 6f 6e 20 6c 61 73 74 20 74 72 61 63 6b 0a 20 20 20 20 28 65 6d 6d 73 2d allback.on.last.track.....(emms-
1526a0 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 20 28 63 61 72 20 74 72 61 63 6b 73 29 20 63 6c 6f 73 player-mpd-add.(car.tracks).clos
1526c0 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 ure.callback)))..(defun.emms-pla
1526e0 79 65 72 2d 6d 70 64 2d 61 64 64 2d 73 65 76 65 72 61 6c 2d 66 69 6c 65 73 20 28 66 69 6c 65 73 yer-mpd-add-several-files.(files
152700 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 41 64 64 20 46 49 4c 45 53 20 .closure.callback)..."Add.FILES.
152720 74 6f 20 74 68 65 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2e 0a 45 78 65 63 75 74 65 to.the.MusicPD.playlist..Execute
152740 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 43 4c 4f 53 55 52 45 20 61 73 20 69 74 73 20 66 69 .CALLBACK.with.CLOSURE.as.its.fi
152760 72 73 74 20 61 72 67 75 6d 65 6e 74 20 77 68 65 6e 20 64 6f 6e 65 2e 22 0a 20 20 28 77 68 65 6e rst.argument.when.done."...(when
152780 20 28 63 6f 6e 73 70 20 66 69 6c 65 73 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 63 64 72 20 66 .(consp.files).....(while.(cdr.f
1527a0 69 6c 65 73 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 iles).......(emms-player-mpd-add
1527c0 2d 66 69 6c 65 20 28 63 61 72 20 66 69 6c 65 73 29 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 29 0a -file.(car.files).nil.#'ignore).
1527e0 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 73 20 28 63 64 72 20 66 69 6c 65 73 29 29 29 0a ......(setq.files.(cdr.files))).
152800 20 20 20 20 3b 3b 20 6f 6e 6c 79 20 65 78 65 63 75 74 65 20 63 61 6c 6c 62 61 63 6b 20 6f 6e 20 ....;;.only.execute.callback.on.
152820 6c 61 73 74 20 66 69 6c 65 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 last.file.....(emms-player-mpd-a
152840 64 64 2d 66 69 6c 65 20 28 63 61 72 20 66 69 6c 65 73 29 20 63 6c 6f 73 75 72 65 20 63 61 6c 6c dd-file.(car.files).closure.call
152860 62 61 63 6b 29 29 29 0a 0a 3b 3b 3b 20 45 4d 4d 53 20 41 50 49 0a 0a 28 64 65 66 75 6e 20 65 6d back)))..;;;.EMMS.API..(defun.em
152880 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 61 62 6c 65 2d 70 20 28 74 72 61 63 6b 29 ms-player-mpd-playable-p.(track)
1528a0 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 77 65 20 63 61 6e 20 70 ..."Return.non-nil.when.we.can.p
1528c0 6c 61 79 20 74 68 69 73 20 74 72 61 63 6b 2e 22 0a 20 20 28 61 6e 64 20 28 6d 65 6d 71 20 28 65 lay.this.track."...(and.(memq.(e
1528e0 6d 6d 73 2d 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 20 27 28 66 69 6c 65 20 75 72 6c mms-track-type.track).'(file.url
152900 20 70 6c 61 79 6c 69 73 74 20 73 74 72 65 61 6d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 28 73 .playlist.streamlist))........(s
152920 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 67 65 74 20 65 6d 6d tring-match.(emms-player-get.emm
152940 73 2d 70 6c 61 79 65 72 2d 6d 70 64 20 27 72 65 67 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 s-player-mpd.'regex)............
152960 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b ..........(emms-track-name.track
152980 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 44 65 74 65 63 74 20 69 66 20 66 69 6c 65 20 69 73 20 69 ))........;;.Detect.if.file.is.i
1529a0 6e 20 74 68 65 20 4d 50 44 20 64 69 72 65 63 74 6f 72 79 2e 20 20 57 65 20 63 6f 75 6c 64 20 75 n.the.MPD.directory...We.could.u
1529c0 73 65 20 74 68 65 20 22 6c 69 73 74 61 6c 6c 22 0a 20 20 20 20 20 20 20 3b 3b 20 63 6f 6d 6d 61 se.the."listall"........;;.comma
1529e0 6e 64 20 61 6e 64 20 61 73 6b 20 4d 50 44 20 64 69 72 65 63 74 6c 79 20 62 75 74 20 74 68 69 73 nd.and.ask.MPD.directly.but.this
152a00 20 69 73 20 65 61 73 69 65 72 2c 20 71 75 69 63 6b 65 72 2c 20 61 6e 64 20 6c 69 6b 65 6c 79 0a .is.easier,.quicker,.and.likely.
152a20 20 20 20 20 20 20 20 3b 3b 20 67 6f 6f 64 20 65 6e 6f 75 67 68 0a 20 20 20 20 20 20 20 28 69 66 .......;;.good.enough........(if
152a40 20 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 .(and.emms-player-mpd-music-dire
152a60 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 65 6d 6d 73 2d ctory.................(eq.(emms-
152a80 74 72 61 63 6b 2d 74 79 70 65 20 74 72 61 63 6b 29 20 27 66 69 6c 65 29 0a 20 20 20 20 20 20 20 track-type.track).'file)........
152aa0 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 61 63 63 65 73 73 69 62 6c 65 2d 64 69 72 65 63 74 .........(file-accessible-direct
152ac0 6f 72 79 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 ory-p.emms-player-mpd-music-dire
152ae0 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 69 6e 2d 64 69 72 65 ctory))............(file-in-dire
152b00 63 74 6f 72 79 2d 70 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e ctory-p.(emms-track-get.track.'n
152b20 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame)............................
152b40 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 .....emms-player-mpd-music-direc
152b60 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 tory)..........t)........(ignore
152b80 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 -errors..........(emms-player-mp
152ba0 64 2d 65 6e 73 75 72 65 2d 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 20 20 20 74 29 29 29 0a d-ensure-process)..........t))).
152bc0 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 20 28 26 6f .(defun.emms-player-mpd-play.(&o
152be0 70 74 69 6f 6e 61 6c 20 69 64 29 0a 20 20 22 50 6c 61 79 20 77 68 61 74 65 76 65 72 20 69 73 20 ptional.id)..."Play.whatever.is.
152c00 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 4d 75 73 69 63 50 44 20 70 6c 61 79 6c 69 73 74 2e in.the.current.MusicPD.playlist.
152c20 0a 49 66 20 49 44 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 70 6c 61 79 20 74 68 65 20 73 6f .If.ID.is.specified,.play.the.so
152c40 6e 67 20 61 74 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 4d 75 73 69 63 ng.at.that.position.in.the.Music
152c60 50 44 0a 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 PD.playlist."...(interactive)...
152c80 28 69 66 20 69 64 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 75 6e 6c 65 73 73 20 28 73 74 (if.id.......(progn..(unless.(st
152ca0 72 69 6e 67 70 20 69 64 29 0a 09 20 20 28 73 65 74 71 20 69 64 20 28 6e 75 6d 62 65 72 2d 74 6f ringp.id)....(setq.id.(number-to
152cc0 2d 73 74 72 69 6e 67 20 69 64 29 29 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d -string.id)))..(emms-player-mpd-
152ce0 73 65 6e 64 0a 09 20 28 63 6f 6e 63 61 74 20 22 70 6c 61 79 20 22 20 69 64 29 0a 09 20 6e 69 6c send...(concat."play.".id)...nil
152d00 0a 09 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 09 20 ...(lambda.(closure.response)...
152d20 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 ..(ignore.closure.response).....
152d40 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 .......(setq.emms-player-mpd-cur
152d60 72 65 6e 74 2d 73 74 61 74 75 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 rent-status.nil)............(if.
152d80 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 68 65 63 6b 2d 69 6e 74 65 72 76 61 6c 0a 20 emms-player-mpd-check-interval..
152da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d ..............(setq.emms-player-
152dc0 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mpd-status-timer................
152de0 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 74 20 65 6d 6d 73 2d 70 6c 61 79 65 72 ......(run-at-time.t.emms-player
152e00 2d 6d 70 64 2d 63 68 65 63 6b 2d 69 6e 74 65 72 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 -mpd-check-interval.............
152e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 ......................#'emms-pla
152e40 79 65 72 2d 6d 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 29 29 0a 20 20 20 yer-mpd-detect-song-change))....
152e60 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 65 74 65 63 ..........(emms-player-mpd-detec
152e80 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 77 65 20 6f 6e 6c t-song-change))))).....;;.we.onl
152ea0 79 20 77 61 6e 74 20 74 6f 20 70 6c 61 79 20 6f 6e 65 20 74 72 61 63 6b 2c 20 73 6f 20 64 6f 6e y.want.to.play.one.track,.so.don
152ec0 27 74 20 73 74 61 72 74 20 74 68 65 20 74 69 6d 65 72 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 't.start.the.timer.....(emms-pla
152ee0 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 20 20 20 20 20 22 70 6c 61 79 22 0a 20 20 20 20 20 6e 69 yer-mpd-send......"play"......ni
152f00 6c 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 l......(lambda.(closure.response
152f20 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 )........(ignore.closure.respons
152f40 65 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 61 72 74 65 64 20 27 e)........(emms-player-started.'
152f60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d emms-player-mpd)))))..(defun.emm
152f80 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 2d 61 6e 64 2d 73 79 6e 63 2d 32 20 28 62 s-player-mpd-start-and-sync-2.(b
152fa0 75 66 66 65 72 20 69 64 29 0a 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 uffer.id)...(when.(buffer-live-p
152fc0 20 62 75 66 66 65 72 29 0a 20 20 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 .buffer).....(let.((emms-playlis
152fe0 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 t-buffer.buffer)).......(with-cu
153000 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 0a 09 28 73 65 74 71 20 65 6d 6d 73 2d rrent-emms-playlist..(setq.emms-
153020 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 6c 69 73 74 2d 69 64 20 69 64 29 0a 09 28 73 65 74 player-mpd-playlist-id.id)..(set
153040 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6e 69 6c 29 0a 09 28 6c 65 74 20 28 28 -buffer-modified-p.nil)..(let.((
153060 74 72 61 63 6b 2d 63 6e 74 20 30 29 29 0a 09 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e track-cnt.0))....(save-excursion
153080 0a 09 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 0a 09 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 ......(goto-char.......(if.(and.
1530a0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 09 emms-playlist-selected-marker...
1530c0 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 65 6d 6d 73 2d 70 6c 61 79 ......(marker-position.emms-play
1530e0 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 29 29 0a 09 09 20 65 6d 6d 73 2d 70 list-selected-marker))....emms-p
153100 6c 61 79 6c 69 73 74 2d 73 65 6c 65 63 74 65 64 2d 6d 61 72 6b 65 72 0a 09 20 20 20 20 20 20 20 laylist-selected-marker.........
153120 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 09 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 (point-min)))......(condition-ca
153140 73 65 20 6e 69 6c 0a 09 09 28 77 68 69 6c 65 20 74 0a 09 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 se.nil...(while.t.....(emms-play
153160 6c 69 73 74 2d 70 72 65 76 69 6f 75 73 29 0a 09 09 20 20 28 73 65 74 71 20 74 72 61 63 6b 2d 63 list-previous).....(setq.track-c
153180 6e 74 20 28 31 2b 20 74 72 61 63 6b 2d 63 6e 74 29 29 29 0a 09 20 20 20 20 20 20 28 65 72 72 6f nt.(1+.track-cnt)))........(erro
1531a0 72 20 6e 69 6c 29 29 29 0a 09 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 r.nil)))....(emms-player-mpd-pla
1531c0 79 20 74 72 61 63 6b 2d 63 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 y.track-cnt))))))..(defun.emms-p
1531e0 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 2d 61 6e 64 2d 73 79 6e 63 2d 31 20 28 63 6c 6f 73 layer-mpd-start-and-sync-1.(clos
153200 75 72 65 20 69 64 29 0a 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 0a 20 20 28 6c 65 ure.id)...(ignore.closure)...(le
153220 74 20 28 28 62 75 66 2d 69 64 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 65 6d 6d 73 2d 70 6c t.((buf-id.(with-current-emms-pl
153240 61 79 6c 69 73 74 0a 09 09 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 6c aylist.....emms-player-mpd-playl
153260 69 73 74 2d 69 64 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 28 62 75 66 ist-id))).....(if.(and.(not.(buf
153280 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 fer-modified-p.emms-playlist-buf
1532a0 66 65 72 29 29 0a 09 20 20 20 20 20 28 73 74 72 69 6e 67 70 20 62 75 66 2d 69 64 29 0a 09 20 20 fer)).......(stringp.buf-id)....
1532c0 20 20 20 28 73 74 72 69 6e 67 3d 20 62 75 66 2d 69 64 20 69 64 29 29 0a 09 28 65 6d 6d 73 2d 70 ...(string=.buf-id.id))..(emms-p
1532e0 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 2d 61 6e 64 2d 73 79 6e 63 2d 32 20 65 6d 6d 73 2d layer-mpd-start-and-sync-2.emms-
153300 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 20 69 64 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d playlist-buffer.id).......(emms-
153320 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 65 6d 6d 73 0a 20 20 20 20 20 20 player-mpd-sync-from-emms.......
153340 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 2d 61 6e 64 2d 73 79 6e .#'emms-player-mpd-start-and-syn
153360 63 2d 32 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d c-2))))..(defun.emms-player-mpd-
153380 73 74 61 72 74 2d 61 6e 64 2d 73 79 6e 63 20 28 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 61 74 start-and-sync.()..."Ensure.that
1533a0 20 4d 75 73 69 63 50 44 27 73 20 70 6c 61 79 6c 69 73 74 20 69 73 20 75 70 2d 74 6f 2d 64 61 74 .MusicPD's.playlist.is.up-to-dat
1533c0 65 20 77 69 74 68 20 45 4d 4d 53 27 73 0a 70 6c 61 79 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 6e e.with.EMMS's.playlist,.and.then
1533e0 20 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 0a 0a 54 68 69 73 20 69 .play.the.current.track...This.i
153400 73 20 63 61 6c 6c 65 64 20 69 66 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e s.called.if.`emms-player-mpd-syn
153420 63 2d 70 6c 61 79 6c 69 73 74 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e c-playlist'.is.non-nil."...(when
153440 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 0a 20 20 .emms-player-mpd-status-timer...
153460 20 20 28 65 6d 6d 73 2d 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 ..(emms-cancel-timer.emms-player
153480 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d -mpd-status-timer).....(setq.emm
1534a0 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 20 6e 69 6c 29 29 0a s-player-mpd-status-timer.nil)).
1534c0 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 20 20 20 22 63 6c 65 61 ..(emms-player-mpd-send...."clea
1534e0 72 65 72 72 6f 72 22 0a 20 20 20 6e 69 6c 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 rerror"....nil....(lambda.(closu
153500 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 re.response)......(ignore.closur
153520 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 e.response)......(emms-player-mp
153540 64 2d 67 65 74 2d 70 6c 61 79 6c 69 73 74 2d 69 64 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 d-get-playlist-id.......nil.....
153560 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 2d 61 6e 64 2d 73 79 ..#'emms-player-mpd-start-and-sy
153580 6e 63 2d 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 nc-1))))..(defun.emms-player-mpd
1535a0 2d 63 6f 6e 6e 65 63 74 2d 31 20 28 63 6c 6f 73 75 72 65 20 69 6e 66 6f 29 0a 20 20 28 69 67 6e -connect-1.(closure.info)...(ign
1535c0 6f 72 65 20 63 6c 6f 73 75 72 65 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 ore.closure)...(setq.emms-player
1535e0 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 61 74 75 73 20 6e 69 6c 29 0a 20 20 28 6c 65 74 2a -mpd-current-status.nil)...(let*
153600 20 28 28 73 74 61 74 65 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 6d 70 .((state.(emms-player-mpd-get-mp
153620 64 2d 73 74 61 74 65 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f 29 29 29 0a 20 20 20 d-state.nil.#'ignore.info)))....
153640 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 73 74 61 74 65 20 22 73 74 6f 70 22 29 0a .(unless.(string=.state."stop").
153660 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 6c 61 79 69 6e 67 2d ......(setq.emms-player-playing-
153680 70 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 p.'emms-player-mpd)).....(when.(
1536a0 73 74 72 69 6e 67 3d 20 73 74 61 74 65 20 22 70 61 75 73 65 22 29 0a 20 20 20 20 20 20 28 73 65 string=.state."pause").......(se
1536c0 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 70 61 75 73 65 64 2d 70 20 74 29 29 0a 20 20 20 20 tq.emms-player-paused-p.t)).....
1536e0 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 73 74 61 74 65 20 22 73 74 6f 70 22 29 0a 20 (unless.(string=.state."stop")..
153700 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e .....(emms-player-mpd-detect-son
153720 67 2d 63 68 61 6e 67 65 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d g-change.info).......(when.emms-
153740 70 6c 61 79 65 72 2d 6d 70 64 2d 63 68 65 63 6b 2d 69 6e 74 65 72 76 61 6c 0a 09 28 73 65 74 71 player-mpd-check-interval..(setq
153760 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 0a 20 20 .emms-player-mpd-status-timer...
153780 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 74 20 65 6d 6d 73 2d ............(run-at-time.t.emms-
1537a0 70 6c 61 79 65 72 2d 6d 70 64 2d 63 68 65 63 6b 2d 69 6e 74 65 72 76 61 6c 0a 20 20 20 20 20 20 player-mpd-check-interval.......
1537c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 70 6c 61 79 .....................#'emms-play
1537e0 65 72 2d 6d 70 64 2d 64 65 74 65 63 74 2d 73 6f 6e 67 2d 63 68 61 6e 67 65 29 29 29 29 29 29 0a er-mpd-detect-song-change)))))).
153800 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 .;;;###autoload.(defun.emms-play
153820 65 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 20 28 29 0a 20 20 22 43 6f 6e 6e 65 63 74 20 74 6f 20 er-mpd-connect.()..."Connect.to.
153840 4d 75 73 69 63 50 44 20 61 6e 64 20 72 65 74 72 69 65 76 65 20 69 74 73 20 63 75 72 72 65 6e 74 MusicPD.and.retrieve.its.current
153860 20 70 6c 61 79 6c 69 73 74 2e 0a 0a 41 66 74 65 72 77 61 72 64 2c 20 74 68 65 20 73 74 61 74 75 .playlist...Afterward,.the.statu
153880 73 20 6f 66 20 4d 75 73 69 63 50 44 20 77 69 6c 6c 20 62 65 20 74 72 61 63 6b 65 64 2e 0a 0a 54 s.of.MusicPD.will.be.tracked...T
1538a0 68 69 73 20 61 6c 73 6f 20 68 61 73 20 74 68 65 20 65 66 66 65 63 74 20 6f 66 20 63 68 61 6e 67 his.also.has.the.effect.of.chang
1538c0 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 20 74 6f ing.the.current.EMMS.playlist.to
1538e0 0a 62 65 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 4d 75 73 69 .be.the.same.as.the.current.Musi
153900 63 50 44 20 70 6c 61 79 6c 69 73 74 2e 20 20 54 68 75 73 2c 20 74 68 69 73 0a 66 75 6e 63 74 69 cPD.playlist...Thus,.this.functi
153920 6f 6e 20 69 73 20 75 73 65 66 75 6c 20 74 6f 20 63 61 6c 6c 20 69 66 20 74 68 65 20 63 6f 6e 74 on.is.useful.to.call.if.the.cont
153940 65 6e 74 73 20 6f 66 20 74 68 65 20 45 4d 4d 53 20 70 6c 61 79 6c 69 73 74 0a 62 75 66 66 65 72 ents.of.the.EMMS.playlist.buffer
153960 20 67 65 74 20 6f 75 74 2d 6f 66 2d 73 79 6e 63 20 66 6f 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e .get.out-of-sync.for.some.reason
153980 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d ."...(interactive)...(when.emms-
1539a0 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 0a 20 20 20 20 28 65 6d 6d player-mpd-status-timer.....(emm
1539c0 73 2d 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 s-cancel-timer.emms-player-mpd-s
1539e0 74 61 74 75 73 2d 74 69 6d 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 tatus-timer).....(setq.emms-play
153a00 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 20 6e 69 6c 29 29 0a 20 20 28 65 6d 6d er-mpd-status-timer.nil))...(emm
153a20 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 66 72 6f 6d 2d 6d 70 64 0a 20 20 20 6e 69 s-player-mpd-sync-from-mpd....ni
153a40 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 6f 6e 6e 65 63 74 2d 31 29 29 0a l.#'emms-player-mpd-connect-1)).
153a60 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 61 72 74 20 28 74 .(defun.emms-player-mpd-start.(t
153a80 72 61 63 6b 29 0a 20 20 22 53 74 61 72 74 73 20 61 20 70 72 6f 63 65 73 73 20 70 6c 61 79 69 6e rack)..."Starts.a.process.playin
153aa0 67 20 54 52 41 43 4b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 g.TRACK."...(interactive)...(if.
153ac0 28 61 6e 64 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 79 6e 63 2d 70 6c 61 79 6c 69 (and.emms-player-mpd-sync-playli
153ae0 73 74 0a 09 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 st.....(not.(memq.(emms-track-ge
153b00 74 20 74 72 61 63 6b 20 27 74 79 70 65 29 20 27 28 73 74 72 65 61 6d 6c 69 73 74 20 70 6c 61 79 t.track.'type).'(streamlist.play
153b20 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d list)))).......(emms-player-mpd-
153b40 73 74 61 72 74 2d 61 6e 64 2d 73 79 6e 63 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 start-and-sync).....(emms-player
153b60 2d 6d 70 64 2d 63 6c 65 61 72 29 0a 20 20 20 20 3b 3b 20 69 66 20 77 65 20 68 61 76 65 20 6c 6f -mpd-clear).....;;.if.we.have.lo
153b80 61 64 65 64 20 74 68 65 20 69 74 65 6d 20 73 75 63 63 65 73 73 66 75 6c 6c 79 2c 20 70 6c 61 79 aded.the.item.successfully,.play
153ba0 20 69 74 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 61 64 64 20 74 72 61 .it.....(emms-player-mpd-add.tra
153bc0 63 6b 20 6e 69 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 6c 61 79 29 29 29 ck.nil.#'emms-player-mpd-play)))
153be0 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 64 69 73 63 6f 6e 6e ..(defun.emms-player-mpd-disconn
153c00 65 63 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 73 74 6f 70 29 0a 20 20 22 54 65 72 6d 69 ect.(&optional.no-stop)..."Termi
153c20 6e 61 74 65 20 74 68 65 20 4d 75 73 69 63 50 44 20 63 6c 69 65 6e 74 20 70 72 6f 63 65 73 73 20 nate.the.MusicPD.client.process.
153c40 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 0a 49 66 and.disconnect.from.MusicPD...If
153c60 20 4e 4f 2d 53 54 4f 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 6f 20 6e 6f 74 20 69 6e 64 69 .NO-STOP.is.non-nil,.do.not.indi
153c80 63 61 74 65 20 74 6f 20 45 4d 4d 53 20 74 68 61 74 20 77 65 20 61 72 65 0a 73 74 6f 70 70 65 64 cate.to.EMMS.that.we.are.stopped
153ca0 2e 20 20 54 68 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 ...This.argument.is.meant.to.be.
153cc0 75 73 65 64 20 77 68 65 6e 20 63 61 6c 6c 69 6e 67 20 74 68 69 73 0a 66 72 6f 6d 20 6f 74 68 65 used.when.calling.this.from.othe
153ce0 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 r.functions."...(interactive)...
153d00 28 65 6d 6d 73 2d 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d (emms-cancel-timer.emms-player-m
153d20 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 29 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c pd-status-timer)...(setq.emms-pl
153d40 61 79 65 72 2d 6d 70 64 2d 73 74 61 74 75 73 2d 74 69 6d 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 ayer-mpd-status-timer.nil.......
153d60 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 63 75 72 72 65 6e 74 2d 73 74 61 74 75 73 ..emms-player-mpd-current-status
153d80 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6c 61 73 .nil.........emms-player-mpd-las
153da0 74 2d 73 74 61 74 65 20 6e 69 6c 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d t-state.nil)...(emms-player-mpd-
153dc0 63 6c 6f 73 65 2d 70 72 6f 63 65 73 73 29 0a 20 20 28 75 6e 6c 65 73 73 20 6e 6f 2d 73 74 6f 70 close-process)...(unless.no-stop
153de0 0a 20 20 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d .....(let.((emms-player-stopped-
153e00 70 20 74 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 p.t)).......(emms-player-stopped
153e20 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 74 6f ))))..(defun.emms-player-mpd-sto
153e40 70 20 28 29 0a 20 20 22 53 74 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 p.()..."Stop.the.currently.playi
153e60 6e 67 20 73 6f 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e ng.song."...(interactive)...(con
153e80 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 dition-case.nil.......(emms-play
153ea0 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 73 74 6f 70 22 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 29 er-mpd-send."stop".nil.#'ignore)
153ec0 0a 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 .....(error.nil))...(emms-player
153ee0 2d 6d 70 64 2d 64 69 73 63 6f 6e 6e 65 63 74 20 74 29 0a 20 20 28 6c 65 74 20 28 28 65 6d 6d 73 -mpd-disconnect.t)...(let.((emms
153f00 2d 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 2d 70 20 74 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d -player-stopped-p.t)).....(emms-
153f20 70 6c 61 79 65 72 2d 73 74 6f 70 70 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 player-stopped)))..(defun.emms-p
153f40 6c 61 79 65 72 2d 6d 70 64 2d 70 61 75 73 65 20 28 29 0a 20 20 22 50 61 75 73 65 20 74 68 65 20 layer-mpd-pause.()..."Pause.the.
153f60 63 75 72 72 65 6e 74 6c 79 20 70 6c 61 79 69 6e 67 20 73 6f 6e 67 2e 22 0a 20 20 28 69 6e 74 65 currently.playing.song."...(inte
153f80 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 ractive)...(emms-player-mpd-send
153fa0 20 22 70 61 75 73 65 22 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 29 29 0a 0a 28 64 65 66 75 6e 20 ."pause".nil.#'ignore))..(defun.
153fc0 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 65 6b 20 28 61 6d 6f 75 6e 74 29 0a 20 20 emms-player-mpd-seek.(amount)...
153fe0 22 53 65 65 6b 20 62 61 63 6b 77 61 72 64 20 6f 72 20 66 6f 72 77 61 72 64 20 62 79 20 41 4d 4f "Seek.backward.or.forward.by.AMO
154000 55 4e 54 20 73 65 63 6f 6e 64 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 73 69 67 6e 20 6f UNT.seconds,.depending.on.sign.o
154020 66 20 41 4d 4f 55 4e 54 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d f.AMOUNT."...(interactive)...(em
154040 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 0a 20 20 20 61 6d 6f 75 ms-player-mpd-get-status....amou
154060 6e 74 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 61 6d 6f 75 6e 74 20 69 6e 66 6f 29 0a 20 20 20 20 nt....(lambda.(amount.info).....
154080 20 28 6c 65 74 20 28 28 73 6f 6e 67 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 .(let.((song.(emms-player-mpd-ge
1540a0 74 2d 63 75 72 72 65 6e 74 2d 73 6f 6e 67 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f t-current-song.nil.#'ignore.info
1540c0 29 29 0a 09 20 20 20 28 73 65 63 73 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 )).....(secs.(emms-player-mpd-ge
1540e0 74 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 20 69 6e 66 6f t-playing-time.nil.#'ignore.info
154100 29 29 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 6e 67 20 73 65 63 73 29 )))........(when.(and.song.secs)
154120 0a 09 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 09 20 20 28 63 6f 6e ...(emms-player-mpd-send....(con
154140 63 61 74 20 22 73 65 65 6b 20 22 20 73 6f 6e 67 20 22 20 22 20 28 6e 75 6d 62 65 72 2d 74 6f 2d cat."seek.".song.".".(number-to-
154160 73 74 72 69 6e 67 20 28 72 6f 75 6e 64 20 28 2b 20 73 65 63 73 20 61 6d 6f 75 6e 74 29 29 29 29 string.(round.(+.secs.amount))))
154180 0a 09 20 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ....nil.#'ignore))))))..(defun.e
1541a0 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 65 6b 2d 74 6f 20 28 70 6f 73 29 0a 20 20 22 mms-player-mpd-seek-to.(pos)..."
1541c0 53 65 65 6b 20 74 6f 20 50 4f 53 20 73 65 63 6f 6e 64 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 Seek.to.POS.seconds.from.the.sta
1541e0 72 74 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 rt.of.the.current.track."...(int
154200 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 eractive)...(emms-player-mpd-get
154220 2d 63 75 72 72 65 6e 74 2d 73 6f 6e 67 0a 20 20 20 70 6f 73 0a 20 20 20 28 6c 61 6d 62 64 61 20 -current-song....pos....(lambda.
154240 28 70 6f 73 20 73 6f 6e 67 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 6e 67 20 (pos.song)......(when.(and.song.
154260 70 6f 73 29 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e pos)........(emms-player-mpd-sen
154280 64 0a 09 28 63 6f 6e 63 61 74 20 22 73 65 65 6b 20 22 20 73 6f 6e 67 20 22 20 22 20 28 6e 75 6d d..(concat."seek.".song.".".(num
1542a0 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 72 6f 75 6e 64 20 70 6f 73 29 29 29 0a 09 6e 69 6c ber-to-string.(round.pos)))..nil
1542c0 20 23 27 69 67 6e 6f 72 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 .#'ignore)))))..(defun.emms-play
1542e0 65 72 2d 6d 70 64 2d 6e 65 78 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 66 6f 72 77 61 72 64 20 62 er-mpd-next.()..."Move.forward.b
154300 79 20 6f 6e 65 20 74 72 61 63 6b 20 69 6e 20 4d 75 73 69 63 50 44 27 73 20 69 6e 74 65 72 6e 61 y.one.track.in.MusicPD's.interna
154320 6c 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 l.playlist."...(interactive)...(
154340 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 6e 65 78 74 22 20 6e 69 6c 20 emms-player-mpd-send."next".nil.
154360 23 27 69 67 6e 6f 72 65 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d #'ignore))..(defun.emms-player-m
154380 70 64 2d 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 4d 6f 76 65 20 62 61 63 6b 77 61 72 64 20 pd-previous.()..."Move.backward.
1543a0 62 79 20 6f 6e 65 20 74 72 61 63 6b 20 69 6e 20 4d 75 73 69 63 50 44 27 73 20 69 6e 74 65 72 6e by.one.track.in.MusicPD's.intern
1543c0 61 6c 20 70 6c 61 79 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 al.playlist."...(interactive)...
1543e0 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 70 72 65 76 69 6f 75 73 22 (emms-player-mpd-send."previous"
154400 20 6e 69 6c 20 23 27 69 67 6e 6f 72 65 29 29 0a 0a 3b 3b 3b 20 56 6f 6c 75 6d 65 0a 0a 28 64 65 .nil.#'ignore))..;;;.Volume..(de
154420 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 70 64 2d 63 68 61 6e 67 65 20 28 61 6d 6f 75 fun.emms-volume-mpd-change.(amou
154440 6e 74 29 0a 20 20 22 43 68 61 6e 67 65 20 76 6f 6c 75 6d 65 20 75 70 20 6f 72 20 64 6f 77 6e 20 nt)..."Change.volume.up.or.down.
154460 62 79 20 41 4d 4f 55 4e 54 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 by.AMOUNT,.depending.on.whether.
154480 69 74 20 69 73 0a 70 6f 73 69 74 69 76 65 20 6f 72 20 6e 65 67 61 74 69 76 65 2e 22 0a 20 20 28 it.is.positive.or.negative."...(
1544a0 69 6e 74 65 72 61 63 74 69 76 65 20 22 4d 56 6f 6c 75 6d 65 20 63 68 61 6e 67 65 20 61 6d 6f 75 interactive."MVolume.change.amou
1544c0 6e 74 20 28 2b 20 69 6e 63 72 65 61 73 65 2c 20 2d 20 64 65 63 72 65 61 73 65 29 3a 20 22 29 0a nt.(+.increase,.-.decrease):.").
1544e0 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 76 6f 6c 75 6d 65 0a 20 20 ..(emms-player-mpd-get-volume...
154500 20 61 6d 6f 75 6e 74 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 68 61 6e 67 65 20 76 6f 6c 75 6d .amount....(lambda.(change.volum
154520 65 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 77 2d 76 6f 6c 75 6d 65 20 28 2b 20 28 73 74 e)......(let.((new-volume.(+.(st
154540 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 6f 6c 75 6d 65 29 20 63 68 61 6e 67 65 29 29 29 ring-to-number.volume).change)))
154560 0a 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 09 28 ........(emms-player-mpd-send..(
154580 63 6f 6e 63 61 74 20 22 73 65 74 76 6f 6c 20 5c 22 22 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 concat."setvol.\"".(number-to-st
1545a0 72 69 6e 67 20 6e 65 77 2d 76 6f 6c 75 6d 65 29 20 22 5c 22 22 29 0a 09 6e 69 6c 20 23 27 69 67 ring.new-volume)."\"")..nil.#'ig
1545c0 6e 6f 72 65 29 29 29 29 29 0a 0a 3b 3b 3b 20 4e 6f 77 20 70 6c 61 79 69 6e 67 0a 0a 28 64 65 66 nore)))))..;;;.Now.playing..(def
1545e0 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 68 6f 77 2d 31 20 28 63 6c 6f 73 75 un.emms-player-mpd-show-1.(closu
154600 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 65 6d 6d re.response)...(let*.((info.(emm
154620 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 0a 09 09 28 65 6d 6d 73 2d 70 s-player-mpd-get-alist...(emms-p
154640 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 layer-mpd-parse-response.respons
154660 65 29 29 29 0a 09 20 28 69 6e 73 65 72 74 70 20 28 63 61 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 e)))...(insertp.(car.closure))..
154680 20 28 63 61 6c 6c 62 61 63 6b 20 28 63 61 64 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 20 28 62 75 .(callback.(cadr.closure))...(bu
1546a0 66 66 65 72 20 28 63 64 64 72 20 63 6c 6f 73 75 72 65 29 29 0a 09 20 28 6e 61 6d 65 20 28 63 64 ffer.(cddr.closure))...(name.(cd
1546c0 72 20 28 61 73 73 6f 63 20 22 6e 61 6d 65 22 20 69 6e 66 6f 29 29 29 20 3b 20 72 61 64 69 6f 20 r.(assoc."name".info))).;.radio.
1546e0 66 65 65 64 73 20 73 6f 6d 65 74 69 6d 65 73 20 73 65 74 20 74 68 69 73 0a 09 20 28 66 69 6c 65 feeds.sometimes.set.this...(file
154700 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 66 69 6c 65 22 20 69 6e 66 6f 29 29 29 0a 09 20 28 64 .(cdr.(assoc."file".info)))...(d
154720 65 73 63 20 6e 69 6c 29 29 0a 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 62 75 69 6c 64 esc.nil)).....;;.otherwise.build
154740 20 61 6e 64 20 73 68 6f 77 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 28 77 .and.show.the.description.....(w
154760 68 65 6e 20 69 6e 66 6f 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 09 28 73 65 74 71 hen.info.......(when.name..(setq
154780 20 64 65 73 63 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 66 69 6c 65 0a 09 28 .desc.name)).......(when.file..(
1547a0 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e 61 72 79 20 27 2a 74 let.((track.(emms-dictionary.'*t
1547c0 72 61 63 6b 2a 29 29 0a 09 20 20 20 20 20 20 74 72 61 63 6b 2d 64 65 73 63 29 0a 09 20 20 28 69 rack*))........track-desc)....(i
1547e0 66 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 72 65 6d 6f 74 65 2d 66 69 6c 65 6e 61 f.(emms-player-mpd-remote-filena
154800 6d 65 70 20 66 69 6c 65 29 0a 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 mep.file)........(emms-track-set
154820 20 74 72 61 63 6b 20 27 74 79 70 65 20 27 75 72 6c 29 0a 09 20 20 20 20 28 65 6d 6d 73 2d 74 72 .track.'type.'url)......(emms-tr
154840 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 20 27 66 69 6c 65 29 29 0a 09 20 20 28 ack-set.track.'type.'file))....(
154860 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 20 66 69 6c 65 29 emms-track-set.track.'name.file)
154880 0a 09 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 20 74 72 61 63 6b 20 69 6e 66 6f 29 0a 09 ....(emms-info-mpd.track.info)..
1548a0 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 74 72 61 63 ..(run-hook-with-args.'emms-trac
1548c0 6b 2d 69 6e 66 6f 2d 66 69 6c 74 65 72 73 20 74 72 61 63 6b 29 0a 09 20 20 28 73 65 74 71 20 74 k-info-filters.track)....(setq.t
1548e0 72 61 63 6b 2d 64 65 73 63 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 64 65 73 63 72 69 70 74 69 6f rack-desc.(emms-track-descriptio
154900 6e 20 74 72 61 63 6b 29 29 0a 09 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 n.track))....(when.(and.(stringp
154920 20 74 72 61 63 6b 2d 64 65 73 63 29 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 74 72 61 63 6b .track-desc).(not.(string=.track
154940 2d 64 65 73 63 20 22 22 29 29 29 0a 09 20 20 20 20 28 73 65 74 71 20 64 65 73 63 20 28 69 66 20 -desc."")))......(setq.desc.(if.
154960 64 65 73 63 0a 09 09 09 20 20 20 28 63 6f 6e 63 61 74 20 64 65 73 63 20 22 3a 20 22 20 74 72 61 desc.......(concat.desc.":.".tra
154980 63 6b 2d 64 65 73 63 29 0a 09 09 09 20 74 72 61 63 6b 2d 64 65 73 63 29 29 29 29 29 29 0a 20 20 ck-desc).....track-desc))))))...
1549a0 20 20 28 69 66 20 28 6e 6f 74 20 64 65 73 63 29 0a 09 28 75 6e 6c 65 73 73 20 28 66 75 6e 63 74 ..(if.(not.desc)..(unless.(funct
1549c0 69 6f 6e 70 20 63 61 6c 6c 62 61 63 6b 29 0a 09 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 68 ionp.callback)....(message."Noth
1549e0 69 6e 67 20 70 6c 61 79 69 6e 67 20 72 69 67 68 74 20 6e 6f 77 22 29 29 0a 20 20 20 20 20 20 28 ing.playing.right.now")).......(
154a00 73 65 74 71 20 64 65 73 63 20 28 66 6f 72 6d 61 74 20 65 6d 6d 73 2d 73 68 6f 77 2d 66 6f 72 6d setq.desc.(format.emms-show-form
154a20 61 74 20 64 65 73 63 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 66 75 6e 63 74 69 6f 6e at.desc)).......(cond.((function
154a40 70 20 63 61 6c 6c 62 61 63 6b 29 0a 09 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 p.callback).......(funcall.callb
154a60 61 63 6b 20 62 75 66 66 65 72 20 64 65 73 63 29 29 0a 09 20 20 20 20 28 69 6e 73 65 72 74 70 0a ack.buffer.desc))......(insertp.
154a80 09 20 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 66 65 ......(when.(buffer-live-p.buffe
154aa0 72 29 0a 09 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 r).........(with-current-buffer.
154ac0 62 75 66 66 65 72 0a 09 09 20 28 69 6e 73 65 72 74 20 64 65 73 63 29 29 29 29 0a 09 20 20 20 20 buffer....(insert.desc))))......
154ae0 28 74 0a 09 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 64 65 73 63 29 29 29 29 29 (t.......(message."%s".desc)))))
154b00 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c )..;;;###autoload.(defun.emms-pl
154b20 61 79 65 72 2d 6d 70 64 2d 73 68 6f 77 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 73 65 72 74 70 ayer-mpd-show.(&optional.insertp
154b40 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 63 75 72 72 65 .callback)..."Describe.the.curre
154b60 6e 74 20 45 4d 4d 53 20 74 72 61 63 6b 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e nt.EMMS.track.in.the.minibuffer.
154b80 0a 0a 49 66 20 49 4e 53 45 52 54 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 65 72 74 20 ..If.INSERTP.is.non-nil,.insert.
154ba0 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 the.description.into.the.current
154bc0 0a 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 2e 0a 0a 49 66 20 43 41 4c 4c 42 41 43 4b 20 69 73 .buffer.instead...If.CALLBACK.is
154be0 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 74 68 65 20 63 75 .a.function,.call.it.with.the.cu
154c00 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 6e 64 0a 64 65 73 63 72 69 70 74 69 6f 6e 20 61 73 20 rrent.buffer.and.description.as.
154c20 61 72 67 75 6d 65 6e 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 64 69 73 70 6c 61 79 69 6e 67 20 arguments.instead.of.displaying.
154c40 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 72 0a 69 6e 73 65 72 74 69 6e 67 20 69 74 2e the.description.or.inserting.it.
154c60 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 60 65 6d 6d 73 2d 73 68 6f 77 2d ..This.function.uses.`emms-show-
154c80 66 6f 72 6d 61 74 27 20 74 6f 20 66 6f 72 6d 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 format'.to.format.the.current.tr
154ca0 61 63 6b 2e 0a 49 74 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 60 65 6d 6d 73 2d 73 68 6f 77 27 ack..It.differs.from.`emms-show'
154cc0 20 69 6e 20 74 68 61 74 20 69 74 20 61 73 6b 73 20 4d 75 73 69 63 50 44 20 66 6f 72 20 74 68 65 .in.that.it.asks.MusicPD.for.the
154ce0 20 63 75 72 72 65 6e 74 20 74 72 61 63 6b 2c 0a 72 61 74 68 65 72 20 74 68 61 6e 20 45 4d 4d 53 .current.track,.rather.than.EMMS
154d00 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 65 6d 6d 73 2d 70 ."...(interactive."P")...(emms-p
154d20 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 20 22 63 75 72 72 65 6e 74 73 6f 6e 67 22 0a 09 09 09 layer-mpd-send."currentsong"....
154d40 28 63 6f 6e 73 20 69 6e 73 65 72 74 70 20 28 63 6f 6e 73 20 63 61 6c 6c 62 61 63 6b 20 28 63 75 (cons.insertp.(cons.callback.(cu
154d60 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 09 09 09 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 rrent-buffer)))....#'emms-player
154d80 2d 6d 70 64 2d 73 68 6f 77 2d 31 29 29 0a 0a 3b 3b 3b 20 54 72 61 63 6b 20 69 6e 66 6f 0a 0a 28 -mpd-show-1))..;;;.Track.info..(
154da0 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 2d 70 72 6f 63 65 73 73 20 28 74 72 61 defun.emms-info-mpd-process.(tra
154dc0 63 6b 20 69 6e 66 6f 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 64 61 74 61 20 69 6e 66 6f 29 0a 20 ck.info)...(dolist.(data.info)..
154de0 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 63 61 72 20 64 61 74 61 29 29 0a 09 20 20 28 76 ...(let.((name.(car.data))....(v
154e00 61 6c 75 65 20 28 63 64 72 20 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 alue.(cdr.data))).......(setq.na
154e20 6d 65 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 61 6c 62 75 6d 61 72 me.(cond.((string=.name."albumar
154e40 74 69 73 74 22 29 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 29 0a 20 20 20 20 20 20 tist").'info-albumartist).......
154e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 .................((string=.name.
154e80 22 61 72 74 69 73 74 22 29 20 27 69 6e 66 6f 2d 61 72 74 69 73 74 29 0a 09 09 20 20 20 20 20 20 "artist").'info-artist).........
154ea0 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 63 6f 6d 70 6f 73 65 72 22 29 20 27 69 6e 66 .((string=.name."composer").'inf
154ec0 6f 2d 63 6f 6d 70 6f 73 65 72 29 0a 09 09 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6e o-composer)..........((string=.n
154ee0 61 6d 65 20 22 70 65 72 66 6f 72 6d 65 72 22 29 20 27 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 ame."performer").'info-performer
154f00 29 0a 09 09 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 74 69 74 6c 65 )..........((string=.name."title
154f20 22 29 20 27 69 6e 66 6f 2d 74 69 74 6c 65 29 0a 09 09 20 20 20 20 20 20 20 28 28 73 74 72 69 6e ").'info-title)..........((strin
154f40 67 3d 20 6e 61 6d 65 20 22 61 6c 62 75 6d 22 29 20 27 69 6e 66 6f 2d 61 6c 62 75 6d 29 0a 09 09 g=.name."album").'info-album)...
154f60 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 74 72 61 63 6b 22 29 20 27 .......((string=.name."track").'
154f80 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 29 0a 09 09 20 20 20 20 20 20 20 28 28 73 74 72 info-tracknumber)..........((str
154fa0 69 6e 67 3d 20 6e 61 6d 65 20 22 64 69 73 63 22 29 20 27 69 6e 66 6f 2d 64 69 73 63 6e 75 6d 62 ing=.name."disc").'info-discnumb
154fc0 65 72 29 0a 09 09 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 64 61 74 er)..........((string=.name."dat
154fe0 65 22 29 20 27 69 6e 66 6f 2d 79 65 61 72 29 0a 09 09 20 20 20 20 20 20 20 28 28 73 74 72 69 6e e").'info-year)..........((strin
155000 67 3d 20 6e 61 6d 65 20 22 67 65 6e 72 65 22 29 20 27 69 6e 66 6f 2d 67 65 6e 72 65 29 0a 09 09 g=.name."genre").'info-genre)...
155020 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 74 69 6d 65 22 29 0a 09 09 .......((string=.name."time")...
155040 09 28 73 65 74 71 20 76 61 6c 75 65 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 .(setq.value.(string-to-number.v
155060 61 6c 75 65 29 29 0a 09 09 09 27 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 29 0a 09 09 alue))....'info-playing-time)...
155080 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6e 61 6d .......(t.nil))).......(when.nam
1550a0 65 0a 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 6e 61 6d 65 20 76 61 e..(emms-track-set.track.name.va
1550c0 6c 75 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 2d 31 lue)))))..(defun.emms-info-mpd-1
1550e0 20 28 74 72 61 63 6b 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 .(track.response)...(let.((info.
155100 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 0a 09 20 20 20 20 (emms-player-mpd-get-alist......
155120 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e ...(emms-player-mpd-parse-respon
155140 73 65 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 66 6f 0a 20 se.response)))).....(when.info..
155160 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 2d 70 72 6f 63 65 73 73 20 74 72 61 63 .....(emms-info-mpd-process.trac
155180 6b 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 75 70 64 61 74 65 k.info).......(emms-track-update
1551a0 64 20 74 72 61 63 6b 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 d.track))))..(defun.emms-info-mp
1551c0 64 20 28 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 66 6f 29 0a 20 20 22 41 64 64 20 d.(track.&optional.info)..."Add.
1551e0 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 54 52 41 43 4b 2e 0a 49 66 20 49 track.information.to.TRACK..If.I
155200 4e 46 4f 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 NFO.is.specified,.use.that.inste
155220 61 64 20 6f 66 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 0a 69 6e ad.of.acquiring.the.necessary.in
155240 66 6f 20 66 72 6f 6d 20 4d 75 73 69 63 50 44 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 75 73 65 66 fo.from.MusicPD...This.is.a.usef
155260 75 6c 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 60 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 74 69 ul.addition.to.`emms-info-functi
155280 6f 6e 73 27 2e 22 0a 20 20 28 69 66 20 69 6e 66 6f 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e ons'."...(if.info.......(emms-in
1552a0 66 6f 2d 6d 70 64 2d 70 72 6f 63 65 73 73 20 74 72 61 63 6b 20 69 6e 66 6f 29 0a 20 20 20 20 28 fo-mpd-process.track.info).....(
1552c0 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 when.(and.(emms-track-file-p.tra
1552e0 63 6b 29 0a 09 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 ck).........(not.(emms-player-mp
155300 64 2d 72 65 6d 6f 74 65 2d 66 69 6c 65 6e 61 6d 65 70 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e d-remote-filenamep.(emms-track-n
155320 61 6d 65 20 74 72 61 63 6b 29 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 ame.track)))).......(let.((file.
155340 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 6d 70 64 2d 66 69 6c 65 6e 61 6d (emms-player-mpd-get-mpd-filenam
155360 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 29 29 0a 09 28 77 e.(emms-track-name.track))))..(w
155380 68 65 6e 20 28 6f 72 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 hen.(or.emms-player-mpd-music-di
1553a0 72 65 63 74 6f 72 79 0a 09 09 20 20 28 61 6e 64 20 66 69 6c 65 0a 09 09 20 20 20 20 20 20 20 28 rectory.....(and.file..........(
1553c0 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 75 70 string-match.emms-player-mpd-sup
1553e0 70 6f 72 74 65 64 2d 72 65 67 65 78 70 20 66 69 6c 65 29 29 29 0a 09 20 20 28 63 6f 6e 64 69 74 ported-regexp.file)))....(condit
155400 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 ion-case.nil........(emms-player
155420 2d 6d 70 64 2d 73 65 6e 64 0a 09 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 66 69 6e 64 20 -mpd-send.........(concat."find.
155440 66 69 6c 65 6e 61 6d 65 20 22 0a 09 09 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 filename."..........(emms-player
155460 2d 6d 70 64 2d 71 75 6f 74 65 2d 66 69 6c 65 20 66 69 6c 65 29 29 0a 09 20 20 20 20 20 20 20 74 -mpd-quote-file.file)).........t
155480 72 61 63 6b 0a 09 20 20 20 20 20 20 20 23 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 2d 31 29 0a rack.........#'emms-info-mpd-1).
1554a0 09 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 20 43 61 63 68 .....(error.nil)))))))..;;;.Cach
1554c0 69 6e 67 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d ing..(defun.emms-cache-set-from-
1554e0 6d 70 64 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 2d 69 6e 66 6f 29 0a 20 20 22 44 75 6d 70 20 54 mpd-track.(track-info)..."Dump.T
155500 52 41 43 4b 2d 49 4e 46 4f 20 69 6e 74 6f 20 74 68 65 20 45 4d 4d 53 20 63 61 63 68 65 2e 0a 0a RACK-INFO.into.the.EMMS.cache...
155520 54 68 65 20 74 72 61 63 6b 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 61 73 20 The.track.should.be.an.alist.as.
155540 70 65 72 20 60 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 27 2e per.`emms-player-mpd-get-alist'.
155560 22 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f "...(when.emms-cache-set-functio
155580 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 20 28 65 6d 6d 73 2d 64 69 63 74 69 6f 6e n.....(let.((track.(emms-diction
1555a0 61 72 79 20 27 2a 74 72 61 63 6b 2a 29 29 0a 09 20 20 28 6e 61 6d 65 20 28 63 64 72 20 28 61 73 ary.'*track*))....(name.(cdr.(as
1555c0 73 6f 63 20 22 66 69 6c 65 22 20 74 72 61 63 6b 2d 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 soc."file".track-info)))).......
1555e0 28 77 68 65 6e 20 6e 61 6d 65 0a 09 28 73 65 74 71 20 6e 61 6d 65 20 28 65 6d 6d 73 2d 70 6c 61 (when.name..(setq.name.(emms-pla
155600 79 65 72 2d 6d 70 64 2d 67 65 74 2d 65 6d 6d 73 2d 66 69 6c 65 6e 61 6d 65 20 6e 61 6d 65 29 29 yer-mpd-get-emms-filename.name))
155620 0a 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 74 79 70 65 20 27 66 ..(emms-track-set.track.'type.'f
155640 69 6c 65 29 0a 09 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 6e 61 6d ile)..(emms-track-set.track.'nam
155660 65 20 6e 61 6d 65 29 0a 09 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 64 2d 70 72 6f 63 65 73 73 20 e.name)..(emms-info-mpd-process.
155680 74 72 61 63 6b 20 74 72 61 63 6b 2d 69 6e 66 6f 29 0a 09 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 track.track-info)..(funcall.emms
1556a0 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 20 27 66 69 6c 65 20 6e 61 6d 65 20 74 -cache-set-function.'file.name.t
1556c0 72 61 63 6b 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 2d 69 6e rack)))))..(defun.emms-cache--in
1556e0 66 6f 2d 63 6c 65 61 6e 75 70 20 28 69 6e 66 6f 29 0a 20 20 28 6c 65 74 20 28 28 78 73 20 28 6d fo-cleanup.(info)...(let.((xs.(m
155700 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 20 20 20 20 20 20 28 61 6e 64 20 28 apcar.(lambda.(x).........(and.(
155720 73 74 72 69 6e 67 70 20 78 29 0a 09 09 09 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 stringp.x).......(not.(string-ma
155740 74 63 68 2d 70 20 22 5c 5c 60 5c 5c 28 4c 61 73 74 2d 5c 5c 7c 64 69 72 65 63 74 5c 5c 29 22 20 tch-p."\\`\\(Last-\\|direct\\)".
155760 78 29 29 0a 09 09 09 20 20 20 78 29 29 0a 09 09 20 20 20 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 x)).......x)).......info))).....
155780 28 63 6f 6e 73 20 6e 69 6c 20 28 64 65 6c 71 20 6e 69 6c 20 78 73 29 29 29 29 0a 0a 28 64 65 66 (cons.nil.(delq.nil.xs))))..(def
1557a0 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 64 69 72 65 63 un.emms-cache-set-from-mpd-direc
1557c0 74 6f 72 79 20 28 64 69 72 29 0a 20 20 22 44 75 6d 70 20 61 6c 6c 20 4d 75 73 69 63 50 44 20 64 tory.(dir)..."Dump.all.MusicPD.d
1557e0 61 74 61 20 66 72 6f 6d 20 44 49 52 20 69 6e 74 6f 20 74 68 65 20 45 4d 4d 53 20 63 61 63 68 65 ata.from.DIR.into.the.EMMS.cache
155800 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 74 6f 20 64 6f 20 77 68 65 6e 20 79 6f 75 ...This.is.useful.to.do.when.you
155820 20 68 61 76 65 20 72 65 63 65 6e 74 6c 79 20 61 63 71 75 69 72 65 64 20 6e 65 77 20 6d 75 73 69 .have.recently.acquired.new.musi
155840 63 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 69 66 20 c."...(interactive....(list.(if.
155860 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 0a emms-player-mpd-music-directory.
155880 09 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 ......(emms-read-directory-name.
1558a0 22 44 69 72 65 63 74 6f 72 79 3a 20 22 0a 09 09 09 09 20 20 20 20 20 20 20 65 6d 6d 73 2d 70 6c "Directory:."............emms-pl
1558c0 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 29 0a 09 20 20 20 28 72 ayer-mpd-music-directory).....(r
1558e0 65 61 64 2d 73 74 72 69 6e 67 20 22 44 69 72 65 63 74 6f 72 79 3a 20 22 29 29 29 29 0a 20 20 28 ead-string."Directory:."))))...(
155900 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 64 69 72 20 22 22 29 0a 20 20 20 20 28 73 65 74 unless.(string=.dir."").....(set
155920 71 20 64 69 72 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 6d 70 64 2d 66 q.dir.(emms-player-mpd-get-mpd-f
155940 69 6c 65 6e 61 6d 65 20 64 69 72 29 29 29 0a 20 20 28 69 66 20 65 6d 6d 73 2d 63 61 63 68 65 2d ilename.dir)))...(if.emms-cache-
155960 73 65 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 6d 65 73 73 set-function.......(progn..(mess
155980 61 67 65 20 22 44 75 6d 70 69 6e 67 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 74 6f 20 63 61 63 age."Dumping.MusicPD.data.to.cac
1559a0 68 65 2e 2e 2e 22 29 0a 09 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 09 he...")..(emms-player-mpd-send..
1559c0 20 28 63 6f 6e 63 61 74 20 22 6c 69 73 74 61 6c 6c 69 6e 66 6f 20 22 20 64 69 72 29 0a 09 20 6e .(concat."listallinfo.".dir)...n
1559e0 69 6c 0a 09 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a il...(lambda.(closure.response).
155a00 09 20 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 09 20 ....(ignore.closure.response)...
155a20 20 20 28 6d 65 73 73 61 67 65 20 22 44 75 6d 70 69 6e 67 20 4d 75 73 69 63 50 44 20 64 61 74 61 ..(message."Dumping.MusicPD.data
155a40 20 74 6f 20 63 61 63 68 65 2e 2e 2e 70 72 6f 63 65 73 73 69 6e 67 22 29 0a 09 20 20 20 28 6c 65 .to.cache...processing").....(le
155a60 74 20 28 28 69 6e 66 6f 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 73 65 2d t.((info.(emms-player-mpd-parse-
155a80 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 09 20 20 20 20 20 28 77 68 65 6e response.response))).......(when
155aa0 20 28 6e 75 6c 6c 20 28 63 61 72 20 69 6e 66 6f 29 29 0a 09 20 20 20 20 20 20 20 28 6c 65 74 2a .(null.(car.info)).........(let*
155ac0 20 28 28 69 6e 66 6f 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 2d 69 6e 66 6f 2d 63 6c 65 61 6e 75 .((info.(emms-cache--info-cleanu
155ae0 70 20 69 6e 66 6f 29 29 0a 09 09 20 20 20 20 20 20 28 69 6e 66 6f 20 28 65 6d 6d 73 2d 70 6c 61 p.info)).........(info.(emms-pla
155b00 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 6c 69 73 74 73 20 69 6e 66 6f 29 29 0a 09 09 20 20 20 20 yer-mpd-get-alists.info)).......
155b20 20 20 28 74 72 61 63 6b 20 31 29 0a 09 09 20 20 20 20 20 20 28 74 6f 74 61 6c 20 28 6c 65 6e 67 ..(track.1).........(total.(leng
155b40 74 68 20 69 6e 66 6f 29 29 29 0a 09 09 20 28 64 6f 6c 69 73 74 20 28 74 72 61 63 6b 2d 69 6e 66 th.info)))....(dolist.(track-inf
155b60 6f 20 69 6e 66 6f 29 0a 09 09 20 20 20 28 6d 65 73 73 61 67 65 20 22 44 75 6d 70 69 6e 67 20 4d o.info)......(message."Dumping.M
155b80 75 73 69 63 50 44 20 64 61 74 61 20 74 6f 20 63 61 63 68 65 2e 2e 2e 25 64 2f 25 64 22 20 74 72 usicPD.data.to.cache...%d/%d".tr
155ba0 61 63 6b 20 74 6f 74 61 6c 29 0a 09 09 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d ack.total)......(emms-cache-set-
155bc0 66 72 6f 6d 2d 6d 70 64 2d 74 72 61 63 6b 20 74 72 61 63 6b 2d 69 6e 66 6f 29 0a 09 09 20 20 20 from-mpd-track.track-info)......
155be0 28 73 65 74 71 20 74 72 61 63 6b 20 28 2b 20 31 20 74 72 61 63 6b 29 29 29 0a 09 09 20 28 6d 65 (setq.track.(+.1.track)))....(me
155c00 73 73 61 67 65 20 22 44 75 6d 70 69 6e 67 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 74 6f 20 63 ssage."Dumping.MusicPD.data.to.c
155c20 61 63 68 65 2e 2e 2e 20 25 64 20 74 72 61 63 6b 73 20 70 72 6f 63 65 73 73 65 64 22 0a 09 09 09 ache....%d.tracks.processed"....
155c40 20 20 74 6f 74 61 6c 29 29 29 29 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 63 68 69 ..total))))))).....(error."Cachi
155c60 6e 67 20 69 73 20 6e 6f 74 20 65 6e 61 62 6c 65 64 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ng.is.not.enabled")))..(defun.em
155c80 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 20 28 29 0a 20 20 22 ms-cache-set-from-mpd-all.()..."
155ca0 44 75 6d 70 20 61 6c 6c 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 69 6e 74 6f 20 74 68 65 20 45 Dump.all.MusicPD.data.into.the.E
155cc0 4d 4d 53 20 63 61 63 68 65 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 74 6f 20 64 6f MMS.cache...This.is.useful.to.do
155ce0 20 6f 6e 63 65 2c 20 6a 75 73 74 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 65 6d 6d 73 2d 62 72 .once,.just.before.using.emms-br
155d00 6f 77 73 65 72 2e 65 6c 2c 20 69 6e 0a 6f 72 64 65 72 20 74 6f 20 70 72 69 6d 65 20 74 68 65 20 owser.el,.in.order.to.prime.the.
155d20 63 61 63 68 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d cache."...(interactive)...(emms-
155d40 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 64 69 72 65 63 74 6f 72 79 20 22 22 29 cache-set-from-mpd-directory."")
155d60 29 0a 0a 3b 3b 3b 20 55 70 64 61 74 69 6e 67 20 74 72 61 63 6b 73 0a 0a 28 64 65 66 75 6e 20 65 )..;;;.Updating.tracks..(defun.e
155d80 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 70 64 61 74 65 2d 64 69 72 65 63 74 6f 72 79 20 mms-player-mpd-update-directory.
155da0 28 64 69 72 29 0a 20 20 22 43 61 75 73 65 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 44 49 52 (dir)..."Cause.the.tracks.in.DIR
155dc0 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 69 6e 20 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 .to.be.updated.in.the.MusicPD.da
155de0 74 61 62 61 73 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 tabase."...(interactive....(list
155e00 20 28 69 66 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 .(if.emms-player-mpd-music-direc
155e20 74 6f 72 79 0a 09 20 20 20 20 20 28 65 6d 6d 73 2d 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d tory.......(emms-read-directory-
155e40 6e 61 6d 65 20 22 44 69 72 65 63 74 6f 72 79 3a 20 22 0a 09 09 09 09 20 20 20 20 20 20 20 65 6d name."Directory:."............em
155e60 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 6d 75 73 69 63 2d 64 69 72 65 63 74 6f 72 79 29 0a 09 ms-player-mpd-music-directory)..
155e80 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 22 44 69 72 65 63 74 6f 72 79 3a 20 22 29 29 29 ...(read-string."Directory:.")))
155ea0 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 64 69 72 20 22 22 29 0a 20 20 20 )...(unless.(string=.dir."")....
155ec0 20 28 73 65 74 71 20 64 69 72 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d .(setq.dir.(emms-player-mpd-get-
155ee0 6d 70 64 2d 66 69 6c 65 6e 61 6d 65 20 64 69 72 29 29 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 mpd-filename.dir)))...(emms-play
155f00 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 20 20 20 28 63 6f 6e 63 61 74 20 22 75 70 64 61 74 65 20 22 er-mpd-send....(concat."update."
155f20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 71 75 6f 74 65 2d 66 69 6c 65 20 64 69 72 .(emms-player-mpd-quote-file.dir
155f40 29 29 20 6e 69 6c 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 72 65 73 70 6f )).nil....(lambda.(closure.respo
155f60 6e 73 65 29 0a 20 20 20 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 0a 20 20 20 20 20 nse)......(ignore.closure)......
155f80 28 6c 65 74 20 28 28 69 64 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 75 70 64 61 74 69 6e 67 5f (let.((id.(cdr.(assoc."updating_
155fa0 64 62 22 0a 09 09 09 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 db".......(emms-player-mpd-get-a
155fc0 6c 69 73 74 0a 09 09 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 72 list........(emms-player-mpd-par
155fe0 73 65 2d 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 65 29 29 29 29 29 29 0a 20 20 20 20 20 se-response.response))))))......
156000 20 20 28 69 66 20 69 64 0a 09 20 20 20 28 6d 65 73 73 61 67 65 20 22 55 70 64 61 74 69 6e 67 20 ..(if.id.....(message."Updating.
156020 44 42 20 77 69 74 68 20 49 44 20 25 73 22 20 69 64 29 0a 09 20 28 6d 65 73 73 61 67 65 20 22 43 DB.with.ID.%s".id)...(message."C
156040 6f 75 6c 64 20 6e 6f 74 20 75 70 64 61 74 65 20 74 68 65 20 44 42 22 29 29 29 29 29 29 0a 0a 28 ould.not.update.the.DB"))))))..(
156060 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 70 64 61 74 65 2d 61 6c 6c defun.emms-player-mpd-update-all
156080 20 28 29 0a 20 20 22 43 61 75 73 65 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 4d .()..."Cause.all.tracks.in.the.M
1560a0 75 73 69 63 50 44 20 6d 75 73 69 63 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 62 65 20 75 70 64 usicPD.music.directory.to.be.upd
1560c0 61 74 65 64 20 69 6e 0a 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 74 61 62 61 73 65 2e 22 0a 20 ated.in.the.MusicPD.database."..
1560e0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 .(interactive)...(emms-player-mp
156100 64 2d 75 70 64 61 74 65 2d 64 69 72 65 63 74 6f 72 79 20 22 22 29 29 0a 0a 28 64 65 66 76 61 72 d-update-directory.""))..(defvar
156120 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 77 61 69 74 69 6e 67 2d 66 6f 72 2d 75 70 64 .emms-player-mpd-waiting-for-upd
156140 61 74 65 2d 74 69 6d 65 72 20 6e 69 6c 0a 20 20 22 54 69 6d 65 72 20 6f 62 6a 65 63 74 20 77 68 ate-timer.nil..."Timer.object.wh
156160 65 6e 20 77 61 69 74 69 6e 67 20 66 6f 72 20 4d 50 44 20 75 70 64 61 74 65 20 74 6f 20 66 69 6e en.waiting.for.MPD.update.to.fin
156180 69 73 68 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 75 ish.")..(defun.emms-player-mpd-u
1561a0 70 64 61 74 65 2d 61 6c 6c 2d 72 65 73 65 74 2d 63 61 63 68 65 20 28 29 0a 20 20 22 55 70 64 61 pdate-all-reset-cache.()..."Upda
1561c0 74 65 20 61 6c 6c 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 4d 75 73 69 63 50 44 20 6d 75 73 te.all.tracks.in.the.MusicPD.mus
1561e0 69 63 20 64 69 72 65 63 74 6f 72 79 2e 0a 57 68 65 6e 20 75 70 64 61 74 65 20 66 69 6e 69 73 68 ic.directory..When.update.finish
156200 65 73 2c 20 63 6c 65 61 72 20 74 68 65 20 45 4d 4d 53 20 63 61 63 68 65 20 61 6e 64 20 63 61 6c es,.clear.the.EMMS.cache.and.cal
156220 6c 0a 60 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 27 20 l.`emms-cache-set-from-mpd-all'.
156240 74 6f 20 64 75 6d 70 20 74 68 65 20 4d 75 73 69 63 50 44 20 64 61 74 61 20 69 6e 74 6f 20 74 68 to.dump.the.MusicPD.data.into.th
156260 65 0a 63 61 63 68 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 e.cache."...(interactive)...(if.
156280 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 77 61 69 74 69 6e 67 2d 66 6f 72 2d 75 70 64 61 emms-player-mpd-waiting-for-upda
1562a0 74 65 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 41 6c 72 65 61 64 79 te-timer.......(message."Already
1562c0 20 77 61 69 74 69 6e 67 20 66 6f 72 20 61 6e 20 75 70 64 61 74 65 20 74 6f 20 66 69 6e 69 73 68 .waiting.for.an.update.to.finish
1562e0 2e 22 29 0a 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 73 65 6e 64 0a 20 20 .").....(emms-player-mpd-send...
156300 20 20 20 22 75 70 64 61 74 65 22 20 6e 69 6c 0a 20 20 20 20 20 27 65 6d 6d 73 2d 70 6c 61 79 65 ..."update".nil......'emms-playe
156320 72 2d 6d 70 64 2d 77 61 69 74 2d 66 6f 72 2d 75 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e r-mpd-wait-for-update)))..(defun
156340 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 77 61 69 74 2d 66 6f 72 2d 75 70 64 61 74 65 .emms-player-mpd-wait-for-update
156360 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6c 6f 73 75 72 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 .(&optional.closure.response)...
156380 22 57 61 69 74 20 66 6f 72 20 61 20 63 75 72 72 65 6e 74 6c 79 20 72 75 6e 6e 69 6e 67 20 6d 70 "Wait.for.a.currently.running.mp
1563a0 64 20 75 70 64 61 74 65 20 74 6f 20 66 69 6e 69 73 68 2e 0a 41 66 74 65 72 77 61 72 64 73 2c 20 d.update.to.finish..Afterwards,.
1563c0 63 6c 65 61 72 20 74 68 65 20 45 4d 4d 53 20 63 61 63 68 65 20 61 6e 64 20 63 61 6c 6c 0a 60 65 clear.the.EMMS.cache.and.call.`e
1563e0 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c 27 2e 22 0a 20 20 mms-cache-set-from-mpd-all'."...
156400 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 0a 20 20 28 69 66 20 72 65 73 70 6f 6e 73 65 0a (ignore.closure)...(if.response.
156420 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 63 61 6c 6c 20 ......;;.This.is.the.first.call.
156440 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 28 after.the.update.command.......(
156460 6c 65 74 20 28 28 69 64 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 75 70 64 61 74 69 6e 67 5f 64 let.((id.(cdr.(assoc."updating_d
156480 62 22 0a 09 09 09 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 61 b"........(emms-player-mpd-get-a
1564a0 6c 69 73 74 0a 09 09 09 20 20 20 20 20 28 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 70 61 list.........(emms-player-mpd-pa
1564c0 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 65 29 29 29 29 29 29 0a 09 28 69 66 rse-response.response))))))..(if
1564e0 20 69 64 0a 09 20 20 20 20 28 70 72 6f 67 6e 0a 09 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 .id......(progn........(message.
156500 22 55 70 64 61 74 69 6e 67 20 44 42 20 77 69 74 68 20 49 44 20 25 73 2e 20 20 57 61 69 74 69 6e "Updating.DB.with.ID.%s...Waitin
156520 67 20 66 6f 72 20 74 68 65 20 75 70 64 61 74 65 20 74 6f 20 66 69 6e 69 73 68 2e 2e 2e 22 20 69 g.for.the.update.to.finish...".i
156540 64 29 0a 09 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d d)........(setq.emms-player-mpd-
156560 77 61 69 74 69 6e 67 2d 66 6f 72 2d 75 70 64 61 74 65 2d 74 69 6d 65 72 0a 09 09 20 20 20 20 28 waiting-for-update-timer.......(
156580 72 75 6e 2d 61 74 2d 74 69 6d 65 20 31 20 6e 69 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d run-at-time.1.nil.#'emms-player-
1565a0 6d 70 64 2d 77 61 69 74 2d 66 6f 72 2d 75 70 64 61 74 65 29 29 29 0a 09 20 20 28 6d 65 73 73 61 mpd-wait-for-update)))....(messa
1565c0 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 75 70 64 61 74 65 20 74 68 65 20 44 42 22 29 29 29 0a ge."Could.not.update.the.DB"))).
1565e0 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 63 68 65 63 6b 20 69 66 20 75 70 64 61 74 ....;;.Otherwise,.check.if.updat
156600 65 20 69 73 20 73 74 69 6c 6c 20 69 6e 20 70 72 6f 67 72 65 73 73 0a 20 20 20 20 28 65 6d 6d 73 e.is.still.in.progress.....(emms
156620 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 67 65 74 2d 73 74 61 74 75 73 2d 70 61 72 74 0a 20 20 20 20 -player-mpd-get-status-part.....
156640 20 6e 69 6c 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 6c 6f 73 75 72 65 20 75 70 64 61 74 .nil......(lambda.(closure.updat
156660 69 6e 67 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 63 6c 6f 73 75 72 65 29 0a 20 20 20 ing)........(ignore.closure)....
156680 20 20 20 20 28 69 66 20 75 70 64 61 74 69 6e 67 0a 09 20 20 20 3b 3b 20 4d 50 44 20 75 70 64 61 ....(if.updating.....;;.MPD.upda
1566a0 74 65 20 73 74 69 6c 6c 20 69 6e 20 70 72 6f 67 72 65 73 73 2c 20 73 6f 20 77 61 69 74 20 61 6e te.still.in.progress,.so.wait.an
1566c0 6f 74 68 65 72 20 73 65 63 6f 6e 64 0a 09 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 31 20 other.second.....(run-at-time.1.
1566e0 6e 69 6c 20 23 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 77 61 69 74 2d 66 6f 72 2d 75 nil.#'emms-player-mpd-wait-for-u
156700 70 64 61 74 65 29 0a 09 20 3b 3b 20 4d 50 44 20 75 70 64 61 74 65 20 66 69 6e 69 73 68 65 64 0a pdate)...;;.MPD.update.finished.
156720 09 20 28 73 65 74 71 20 20 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 2d 77 61 69 74 69 6e 67 ..(setq..emms-player-mpd-waiting
156740 2d 66 6f 72 2d 75 70 64 61 74 65 2d 74 69 6d 65 72 20 6e 69 6c 29 0a 09 20 28 6d 65 73 73 61 67 -for-update-timer.nil)...(messag
156760 65 20 22 4d 50 44 20 75 70 64 61 74 65 20 66 69 6e 69 73 68 65 64 2e 22 29 0a 09 20 28 73 69 74 e."MPD.update.finished.")...(sit
156780 2d 66 6f 72 20 31 29 0a 09 20 28 63 6c 72 68 61 73 68 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 -for.1)...(clrhash.emms-cache-db
1567a0 29 0a 09 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 72 6f 6d 2d 6d 70 64 2d 61 6c 6c )...(emms-cache-set-from-mpd-all
1567c0 29 29 29 0a 20 20 20 20 20 22 75 70 64 61 74 69 6e 67 5f 64 62 22 29 29 29 0a 0a 0a 28 70 72 6f )))......"updating_db")))...(pro
1567e0 76 69 64 65 20 27 65 6d 6d 73 2d 70 6c 61 79 65 72 2d 6d 70 64 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 vide.'emms-player-mpd)..;;;.emms
156800 2d 70 6c 61 79 65 72 2d 6d 70 64 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 -player-mpd.el.ends.here........
156820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1568a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1568c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1568e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1569a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1569c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1569e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156a00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 73 74 72 65 61 6d 2d 69 6e 66 6f 2e 65 6c 00 00 00 00 00 emms-24/emms-stream-info.el.....
156a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
156a80 30 30 30 32 30 31 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 37 37 00 20 30 00 00 00 0002010.00000000000.014377..0...
156aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
156b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
156b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156c00 3b 3b 3b 20 65 6d 6d 73 2d 73 74 72 65 61 6d 2d 69 6e 66 6f 2e 65 6c 20 2d 2d 2d 20 49 6e 66 6f ;;;.emms-stream-info.el.---.Info
156c20 20 66 72 6f 6d 20 73 74 72 65 61 6d 69 6e 67 20 61 75 64 69 6f 20 20 2d 2a 2d 20 6c 65 78 69 63 .from.streaming.audio..-*-.lexic
156c40 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 al-binding:.t;.-*-..;;.Copyright
156c60 20 28 43 29 20 32 30 30 34 2c 20 32 30 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 .(C).2004,.2005,.2006,.2007,.200
156c80 38 2c 0a 3b 3b 20 20 20 32 30 30 39 2c 20 32 30 31 39 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 8,.;;...2009,.2019.Free.Software
156ca0 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 6f .Foundation,.Inc...;;.Author:.Yo
156cc0 6e 69 20 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 ni.Rabkin.<yrk@gnu.org>..;;.This
156ce0 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 .file.is.part.of.EMMS...;;.EMMS.
156d00 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 is.free.software;.you.can.redist
156d20 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20 75 6e ribute.it.and/or.;;.modify.it.un
156d40 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c der.the.terms.of.the.GNU.General
156d60 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 0a 3b 3b 20 70 75 62 6c 69 73 68 65 64 20 .Public.License.as.;;.published.
156d80 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b by.the.Free.Software.Foundation;
156da0 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 0a 3b 3b 20 4c 69 63 65 .either.version.3.of.the.;;.Lice
156dc0 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 nse,.or.(at.your.option).any.lat
156de0 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 er.version...;;.EMMS.is.distribu
156e00 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 ted.in.the.hope.that.it.will.be.
156e20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 useful,.;;.but.WITHOUT.ANY.WARRA
156e40 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 NTY;.without.even.the.implied.wa
156e60 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 rranty.of.;;.MERCHANTABILITY.or.
156e80 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 FITNESS.FOR.A.PARTICULAR.PURPOSE
156ea0 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 ...See.the.;;.GNU.General.Public
156ec0 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 .License.for.more.details...;;.Y
156ee0 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f ou.should.have.received.a.copy.o
156f00 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
156f20 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 .;;.along.with.EMMS;.if.not,.wri
156f40 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 te.to.the.Free.Software.Foundati
156f60 6f 6e 2c 0a 3b 3b 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 on,.;;.Inc.,.51.Franklin.St,.Fif
156f80 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c th.Floor,.Boston,.MA.02110-1301,
156fa0 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 74 6f 20 62 65 20 69 6d 70 6c 65 .USA...;;;.Code:..;;.to.be.imple
156fc0 6d 65 6e 74 65 64 21 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 73 74 72 65 61 6d 2d 69 mented!..(provide.'emms-stream-i
156fe0 6e 66 6f 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 73 74 72 65 61 6d 2d 69 6e 66 6f 2e 65 6c 20 65 6e nfo)..;;;.emms-stream-info.el.en
157000 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ds.here.........................
157020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1570a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1570c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1570e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1571a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1571c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1571e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157200 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 63 61 63 68 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-cache.el...........
157220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
157280 30 30 31 34 35 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 32 33 36 00 20 30 00 00 00 0014554.00000000000.013236..0...
1572a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1572c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1572e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
157320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
157340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1573a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1573c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1573e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157400 3b 3b 3b 20 65 6d 6d 73 2d 63 61 63 68 65 2e 65 6c 20 2d 2d 2d 20 70 65 72 73 69 73 74 65 6e 63 ;;;.emms-cache.el.---.persistenc
157420 65 20 66 6f 72 20 65 6d 6d 73 2d 74 72 61 63 6b 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 e.for.emms-track..-*-.lexical-bi
157440 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 nding:.t;.-*-..;;.Copyright.(C).
157460 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 2c 20 32 30 32 32 20 20 46 72 2006,.2007,.2008,.2009,.2022..Fr
157480 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b ee.Software.Foundation,.Inc...;;
1574a0 20 41 75 74 68 6f 72 3a 20 44 61 6d 69 65 6e 20 45 6c 6d 65 73 20 3c 65 6d 61 63 73 40 72 65 70 .Author:.Damien.Elmes.<emacs@rep
1574c0 6f 73 65 2e 63 78 3e 2c 20 59 6f 6e 69 20 52 61 62 6b 69 6e 20 3c 79 72 6b 40 67 6e 75 2e 6f 72 ose.cx>,.Yoni.Rabkin.<yrk@gnu.or
1574e0 67 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 6d 6d 73 2c 20 6d 70 33 2c 20 6d 70 65 67 2c g>.;;.Keywords:.emms,.mp3,.mpeg,
157500 20 6d 75 6c 74 69 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 .multimedia..;;.This.file.is.par
157520 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 t.of.EMMS...;;.EMMS.is.free.soft
157540 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e ware;.you.can.redistribute.it.an
157560 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d d/or.modify.;;.it.under.the.term
157580 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
1575a0 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 nse.as.published.by.;;.the.Free.
1575c0 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 Software.Foundation;.either.vers
1575e0 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e ion.3,.or.(at.your.option).;;.an
157600 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 y.later.version...;;.EMMS.is.dis
157620 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c tributed.in.the.hope.that.it.wil
157640 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 l.be.useful,.;;.but.WITHOUT.ANY.
157660 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 WARRANTY;.without.even.the.impli
157680 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 ed.warranty.of.;;.MERCHANTABILIT
1576a0 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 Y.or.FITNESS.FOR.A.PARTICULAR.PU
1576c0 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 RPOSE...See.the.;;.GNU.General.P
1576e0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a ublic.License.for.more.details..
157700 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 .;;.You.should.have.received.a.c
157720 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 opy.of.the.GNU.General.Public.Li
157740 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 cense.;;.along.with.EMMS;.see.th
157760 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 e.file.COPYING...If.not,.write.t
157780 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f o.the.;;.Free.Software.Foundatio
1577a0 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 n,.Inc.,.51.Franklin.Street,.Fif
1577c0 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 th.Floor,.;;.Boston,.MA.02110-13
1577e0 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 01,.USA...;;;.Commentary:..;;.Th
157800 65 20 63 61 63 68 65 20 69 73 20 61 20 6d 61 70 70 69 6e 67 20 6f 66 20 61 20 66 75 6c 6c 20 70 e.cache.is.a.mapping.of.a.full.p
157820 61 74 68 20 6e 61 6d 65 20 74 6f 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 61 6e 64 20 73 6f 0a ath.name.to.information,.and.so.
157840 3b 3b 20 69 74 20 69 73 20 69 6e 76 61 6c 69 64 61 74 65 64 20 77 68 65 6e 20 79 6f 75 20 72 65 ;;.it.is.invalidated.when.you.re
157860 6e 61 6d 65 20 6f 72 20 6d 6f 76 65 20 66 69 6c 65 73 20 61 62 6f 75 74 2e 20 20 49 74 20 61 6c name.or.move.files.about...It.al
157880 73 6f 0a 3b 3b 20 64 6f 65 73 20 6e 6f 74 20 64 69 66 66 65 72 65 6e 74 69 61 74 65 20 62 65 74 so.;;.does.not.differentiate.bet
1578a0 77 65 65 6e 20 66 69 6c 65 20 6f 72 20 75 72 69 20 74 72 61 63 6b 73 2e 0a 0a 3b 3b 20 42 65 63 ween.file.or.uri.tracks...;;.Bec
1578c0 61 75 73 65 20 63 61 63 68 65 20 6c 6f 6f 6b 75 70 73 20 61 72 65 20 6d 75 63 68 20 66 61 73 74 ause.cache.lookups.are.much.fast
1578e0 65 72 20 74 68 61 6e 20 64 69 73 6b 20 61 63 63 65 73 73 2c 20 74 68 69 73 20 77 6f 72 6b 73 0a er.than.disk.access,.this.works.
157900 3b 3b 20 6d 75 63 68 20 62 65 74 74 65 72 20 77 69 74 68 20 61 20 65 6d 6d 73 2d 6c 61 74 65 72 ;;.much.better.with.a.emms-later
157920 2d 64 6f 2d 69 6e 74 65 72 76 61 6c 20 6f 66 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 30 -do-interval.of.something.like.0
157940 2e 30 30 31 2e 20 20 41 6c 73 6f 0a 3b 3b 20 63 6f 6e 73 69 64 65 72 20 75 73 69 6e 67 20 73 79 .001...Also.;;.consider.using.sy
157960 6e 63 68 72 6f 6e 6f 75 73 20 6d 6f 64 65 2c 20 61 73 20 69 74 27 73 20 71 75 69 74 65 20 66 61 nchronous.mode,.as.it's.quite.fa
157980 73 74 20 6e 6f 77 2e 0a 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 69 73 20 61 63 74 69 76 61 74 st.now...;;.This.code.is.activat
1579a0 65 64 20 62 79 20 28 65 6d 6d 73 2d 73 74 61 6e 64 61 72 64 29 20 61 6e 64 20 61 62 6f 76 65 2e ed.by.(emms-standard).and.above.
1579c0 0a 0a 3b 3b 20 54 6f 20 61 63 74 69 76 61 74 65 20 69 74 20 62 79 20 68 61 6e 64 2c 20 75 73 65 ..;;.To.activate.it.by.hand,.use
1579e0 3a 0a 0a 3b 3b 20 28 65 6d 6d 73 2d 63 61 63 68 65 20 31 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a :..;;.(emms-cache.1)..;;;.Code:.
157a00 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d .(require.'emms).(require.'emms-
157a20 69 6e 66 6f 29 0a 0a 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 64 65 66 69 6e 65 2d 68 61 info)..(when.(fboundp.'define-ha
157a40 73 68 2d 74 61 62 6c 65 2d 74 65 73 74 29 0a 20 20 28 64 65 66 69 6e 65 2d 68 61 73 68 2d 74 61 sh-table-test)...(define-hash-ta
157a60 62 6c 65 2d 74 65 73 74 20 27 73 74 72 69 6e 67 2d 68 61 73 68 20 27 73 74 72 69 6e 67 3d 20 27 ble-test.'string-hash.'string=.'
157a80 73 78 68 61 73 68 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 20 sxhash))..(defvar.emms-cache-db.
157aa0 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (make-hash-table................
157ac0 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 64 65 66 69 ........:test.(if.(fboundp.'defi
157ae0 6e 65 2d 68 61 73 68 2d 74 61 62 6c 65 2d 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ne-hash-table-test).............
157b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 2d 68 61 73 .....................'string-has
157b20 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h...............................
157b40 20 27 65 71 75 61 6c 29 29 0a 20 20 22 41 20 6d 61 70 70 69 6e 67 20 6f 66 20 70 61 74 68 73 20 .'equal))..."A.mapping.of.paths.
157b60 74 6f 20 66 69 6c 65 20 69 6e 66 6f 2e 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 63 61 to.file.info..This.is.used.to.ca
157b80 63 68 65 20 6f 76 65 72 20 65 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 che.over.emacs.sessions.")..(def
157ba0 76 61 72 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 20 6e 69 6c 0a 20 20 22 54 72 75 65 var.emms-cache-dirty.nil..."True
157bc0 20 69 66 20 74 68 65 20 63 61 63 68 65 20 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 20 73 .if.the.cache.has.been.updated.s
157be0 69 6e 63 65 20 69 6e 69 74 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 63 61 ince.init.")..(defcustom.emms-ca
157c00 63 68 65 2d 66 69 6c 65 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 che-file.(concat.(file-name-as-d
157c20 69 72 65 63 74 6f 72 79 20 65 6d 6d 73 2d 64 69 72 65 63 74 6f 72 79 29 20 22 63 61 63 68 65 22 irectory.emms-directory)."cache"
157c40 29 0a 20 20 22 41 20 66 69 6c 65 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 63 61 63 68 65 64 )..."A.file.used.to.store.cached
157c60 20 66 69 6c 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 76 65 72 20 73 65 73 73 69 6f 6e 73 2e .file.information.over.sessions.
157c80 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a "...:group.'emms...:type.'file).
157ca0 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 63 61 63 68 65 2d 66 69 6c 65 2d 63 6f 64 69 .(defcustom.emms-cache-file-codi
157cc0 6e 67 2d 73 79 73 74 65 6d 20 27 75 74 66 2d 38 0a 20 20 22 43 6f 64 69 6e 67 20 73 79 73 74 65 ng-system.'utf-8..."Coding.syste
157ce0 6d 20 75 73 65 64 20 66 6f 72 20 73 61 76 69 6e 67 20 60 65 6d 6d 73 2d 63 61 63 68 65 2d 66 69 m.used.for.saving.`emms-cache-fi
157d00 6c 65 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 0a 20 20 3a 74 79 70 65 20 27 63 6f le'."...:group.'emms...:type.'co
157d20 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 20 ding-system)..(defun.emms-cache.
157d40 28 61 72 67 29 0a 20 20 22 54 75 72 6e 20 6f 6e 20 45 6d 6d 73 20 63 61 63 68 69 6e 67 20 69 66 (arg)..."Turn.on.Emms.caching.if
157d60 20 41 52 47 20 69 73 20 70 6f 73 69 74 69 76 65 2c 20 6f 66 66 20 6f 74 68 65 72 77 69 73 65 2e .ARG.is.positive,.off.otherwise.
157d80 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 61 6e 64 "...(interactive."p")...(if.(and
157da0 20 61 72 67 20 28 3e 20 61 72 67 20 30 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 09 28 75 .arg.(>.arg.0)).......(progn..(u
157dc0 6e 6c 65 73 73 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 0a 09 20 20 28 65 6d 6d 73 2d nless.emms-cache-dirty....(emms-
157de0 63 61 63 68 65 2d 72 65 73 74 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 cache-restore)).........(unless.
157e00 6e 6f 6e 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f noninteractive...........(add-ho
157e20 6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 63 61 63 68 65 2d ok.'kill-emacs-hook.'emms-cache-
157e40 73 61 76 65 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d save)).........(setq.emms-cache-
157e60 67 65 74 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 63 61 63 68 65 2d 67 65 74 29 0a 20 20 get-function.'emms-cache-get)...
157e80 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 ......(setq.emms-cache-set-funct
157ea0 69 6f 6e 20 27 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 ion.'emms-cache-set).........(se
157ec0 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 20 tq.emms-cache-modified-function.
157ee0 27 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 29 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 'emms-cache-dirty)).....(remove-
157f00 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68 6f 6f 6b 20 27 65 6d 6d 73 2d 63 61 63 68 hook.'kill-emacs-hook.'emms-cach
157f20 65 2d 73 61 76 65 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 67 65 74 e-save).....(setq.emms-cache-get
157f40 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 -function.nil).....(setq.emms-ca
157f60 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 che-set-function.nil).....(setq.
157f80 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c emms-cache-modified-function.nil
157fa0 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d )))..;;;###autoload.(defun.emms-
157fc0 63 61 63 68 65 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 63 61 63 68 69 6e cache-enable.()..."Enable.cachin
157fe0 67 20 6f 66 20 45 6d 6d 73 20 74 72 61 63 6b 20 64 61 74 61 2e 22 0a 20 20 28 69 6e 74 65 72 61 g.of.Emms.track.data."...(intera
158000 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 20 31 29 0a 20 20 28 6d 65 73 73 61 ctive)...(emms-cache.1)...(messa
158020 67 65 20 22 45 6d 6d 73 20 63 61 63 68 65 20 65 6e 61 62 6c 65 64 22 29 29 0a 0a 3b 3b 3b 23 23 ge."Emms.cache.enabled"))..;;;##
158040 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 73 61 #autoload.(defun.emms-cache-disa
158060 62 6c 65 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 63 61 63 68 69 6e 67 20 6f 66 20 45 6d 6d ble.()..."Disable.caching.of.Emm
158080 73 20 74 72 61 63 6b 20 64 61 74 61 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 s.track.data."...(interactive)..
1580a0 20 28 65 6d 6d 73 2d 63 61 63 68 65 20 2d 31 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 45 6d 6d .(emms-cache.-1)...(message."Emm
1580c0 73 20 63 61 63 68 65 20 64 69 73 61 62 6c 65 64 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c s.cache.disabled"))..;;;###autol
1580e0 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 74 6f 67 67 6c 65 20 28 29 0a oad.(defun.emms-cache-toggle.().
158100 20 20 22 54 6f 67 67 6c 65 20 63 61 63 68 69 6e 67 20 6f 66 20 45 6d 6d 73 20 74 72 61 63 6b 20 .."Toggle.caching.of.Emms.track.
158120 64 61 74 61 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 65 6d 6d data."...(interactive)...(if.emm
158140 73 2d 63 61 63 68 65 2d 67 65 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 65 6d 6d 73 s-cache-get-function.......(emms
158160 2d 63 61 63 68 65 2d 64 69 73 61 62 6c 65 29 0a 20 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d -cache-disable).....(emms-cache-
158180 65 6e 61 62 6c 65 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 63 61 63 68 65 2d enable)))..(defsubst.emms-cache-
1581a0 64 69 72 74 79 20 28 26 72 65 73 74 20 5f 69 67 6e 6f 72 65 64 29 0a 20 20 22 4d 61 72 6b 20 74 dirty.(&rest._ignored)..."Mark.t
1581c0 68 65 20 63 61 63 68 65 20 61 73 20 64 69 72 74 79 2e 22 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 he.cache.as.dirty."...(setq.emms
1581e0 2d 63 61 63 68 65 2d 64 69 72 74 79 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 -cache-dirty.t))..(defun.emms-ca
158200 63 68 65 2d 67 65 74 20 28 74 79 70 65 20 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 che-get.(type.path)..."Return.a.
158220 63 61 63 68 65 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 50 41 54 48 2c 20 6f 72 20 6e 69 6c 2e 22 cache.element.for.PATH,.or.nil."
158240 0a 20 20 28 69 67 6e 6f 72 65 20 74 79 70 65 29 20 3b 3b 20 69 6d 70 6c 69 63 69 74 6c 79 20 69 ...(ignore.type).;;.implicitly.i
158260 67 6e 6f 72 65 64 20 62 65 66 6f 72 65 20 32 30 32 31 2d 30 33 2d 30 32 0a 20 20 28 67 65 74 68 gnored.before.2021-03-02...(geth
158280 61 73 68 20 70 61 74 68 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 29 0a 0a 28 64 65 66 75 6e ash.path.emms-cache-db))..(defun
1582a0 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 20 28 74 79 70 65 20 70 61 74 68 20 74 72 61 63 6b .emms-cache-set.(type.path.track
1582c0 29 0a 20 20 22 53 65 74 20 50 41 54 48 20 74 6f 20 54 52 41 43 4b 20 69 6e 20 74 68 65 20 63 61 )..."Set.PATH.to.TRACK.in.the.ca
1582e0 63 68 65 2e 22 0a 20 20 28 69 67 6e 6f 72 65 20 74 79 70 65 29 20 3b 3b 20 69 6d 70 6c 69 63 69 che."...(ignore.type).;;.implici
158300 74 6c 79 20 69 67 6e 6f 72 65 64 20 62 65 66 6f 72 65 20 32 30 32 31 2d 30 33 2d 30 32 0a 20 20 tly.ignored.before.2021-03-02...
158320 28 70 75 74 68 61 73 68 20 70 61 74 68 20 74 72 61 63 6b 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 (puthash.path.track.emms-cache-d
158340 62 29 0a 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 29 29 0a 0a 28 64 65 66 75 6e b)...(emms-cache-dirty))..(defun
158360 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 65 6c 20 28 70 61 74 68 29 0a 20 20 22 52 65 6d 6f 76 65 .emms-cache-del.(path)..."Remove
158380 20 61 20 74 72 61 63 6b 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 2c 20 77 69 74 68 20 6b 65 .a.track.from.the.cache,.with.ke
1583a0 79 20 50 41 54 48 2e 22 0a 20 20 28 72 65 6d 68 61 73 68 20 70 61 74 68 20 65 6d 6d 73 2d 63 61 y.PATH."...(remhash.path.emms-ca
1583c0 63 68 65 2d 64 62 29 0a 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 29 29 0a 0a 28 che-db)...(emms-cache-dirty))..(
1583e0 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 defun.emms-cache-save.()..."Save
158400 20 74 68 65 20 74 72 61 63 6b 20 63 61 63 68 65 20 74 6f 20 61 20 66 69 6c 65 2e 22 0a 20 20 28 .the.track.cache.to.a.file."...(
158420 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d interactive)...(when.emms-cache-
158440 64 69 72 74 79 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 61 76 69 6e 67 20 65 6d 6d 73 20 dirty.....(message."Saving.emms.
158460 74 72 61 63 6b 20 63 61 63 68 65 2e 2e 2e 22 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d track.cache...").....(with-temp-
158480 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 63 6f 6e buffer.......(insert........(con
1584a0 63 61 74 20 22 3b 3b 3b 20 2e 65 6d 6d 73 2d 63 61 63 68 65 20 2d 2a 2d 20 6d 6f 64 65 3a 20 65 cat.";;;..emms-cache.-*-.mode:.e
1584c0 6d 61 63 73 2d 6c 69 73 70 3b 20 63 6f 64 69 6e 67 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 macs-lisp;.coding:."............
1584e0 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 65 6d 6d 73 2d 63 61 63 68 65 2d 66 69 6c 65 ....(symbol-name.emms-cache-file
158500 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 -coding-system)................"
158520 3b 20 2d 2a 2d 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 ;.-*-\n")).......(maphash.(lambd
158540 61 20 28 6b 20 76 29 0a 09 09 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 a.(k.v)....(insert.(format......
158560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 70 75 74 68 61 73 68 20 25 ....................."(puthash.%
158580 53 20 27 25 53 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 5c 6e 22 20 6b 20 76 29 29 29 0a 20 S.'%S.emms-cache-db)\n".k.v)))..
1585a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 0a 20 20 20 ..............emms-cache-db)....
1585c0 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 73 65 74 2d 62 75 66 66 65 72 2d 66 69 ...(when.(fboundp.'set-buffer-fi
1585e0 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 09 28 73 65 74 2d 62 75 66 66 65 72 2d 66 le-coding-system)..(set-buffer-f
158600 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 65 6d 6d 73 2d 63 61 63 68 65 2d 66 69 6c ile-coding-system.emms-cache-fil
158620 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 e-coding-system)).......(unless.
158640 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 (file-directory-p.(file-name-dir
158660 65 63 74 6f 72 79 20 65 6d 6d 73 2d 63 61 63 68 65 2d 66 69 6c 65 29 29 0a 09 28 6d 61 6b 65 2d ectory.emms-cache-file))..(make-
158680 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 65 directory.(file-name-directory.e
1586a0 6d 6d 73 2d 63 61 63 68 65 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 77 72 69 74 65 2d 72 mms-cache-file))).......(write-r
1586c0 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 65 6d egion.(point-min).(point-max).em
1586e0 6d 73 2d 63 61 63 68 65 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 ms-cache-file).......(message."S
158700 61 76 69 6e 67 20 65 6d 6d 73 20 74 72 61 63 6b 20 63 61 63 68 65 2e 2e 2e 64 6f 6e 65 22 29 29 aving.emms.track.cache...done"))
158720 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 20 6e 69 6c 29 .....(setq.emms-cache-dirty.nil)
158740 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 72 65 73 74 6f 72 65 20 28 29 ))..(defun.emms-cache-restore.()
158760 0a 20 20 22 52 65 73 74 6f 72 65 20 74 68 65 20 74 72 61 63 6b 20 63 61 63 68 65 20 66 72 6f 6d ..."Restore.the.track.cache.from
158780 20 61 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 6f 61 .a.file."...(interactive)...(loa
1587a0 64 20 65 6d 6d 73 2d 63 61 63 68 65 2d 66 69 6c 65 20 74 20 6e 69 6c 20 74 29 0a 20 20 28 73 65 d.emms-cache-file.t.nil.t)...(se
1587c0 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 tq.emms-cache-dirty.nil))..(defu
1587e0 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 79 6e 63 20 28 61 72 67 29 0a 20 20 22 53 79 6e 63 20 n.emms-cache-sync.(arg)..."Sync.
158800 74 68 65 20 63 61 63 68 65 20 77 69 74 68 20 74 68 65 20 64 61 74 61 20 6f 6e 20 64 69 73 63 2e the.cache.with.the.data.on.disc.
158820 0a 52 65 6d 6f 76 65 20 6e 6f 6e 2d 65 78 69 73 74 65 6e 74 20 66 69 6c 65 73 2c 20 61 6e 64 20 .Remove.non-existent.files,.and.
158840 75 70 64 61 74 65 20 64 61 74 61 20 66 6f 72 20 66 69 6c 65 73 20 77 68 69 63 68 20 68 61 76 65 update.data.for.files.which.have
158860 0a 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 2e 20 20 57 69 74 68 20 70 72 65 66 69 78 20 61 72 67 .been.modified...With.prefix.arg
158880 75 6d 65 6e 74 2c 20 75 70 64 61 74 65 20 64 61 74 61 20 66 6f 72 20 61 6c 6c 20 66 69 6c 65 73 ument,.update.data.for.all.files
1588a0 0a 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 79 20 68 61 76 65 .regardless.of.whether.they.have
1588c0 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 6e 6f 74 2e 22 0a 20 20 28 69 6e 74 65 72 .been.modified.or.not."...(inter
1588e0 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 72 65 6d 6f 76 65 64 29 0a 20 20 20 active."P")...(let.(removed)....
158900 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 20 74 72 61 63 6b 29 0a 20 .(maphash.(lambda.(path.track)..
158920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d ..............(when.(emms-track-
158940 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b file-p.track)..................;
158960 3b 20 69 66 20 6e 6f 20 6c 6f 6e 67 65 72 20 68 65 72 65 2c 20 72 65 6d 6f 76 65 0a 20 20 20 20 ;.if.no.longer.here,.remove.....
158980 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 66 69 6c 65 2d 65 78 69 73 .............(if.(not.(file-exis
1589a0 74 73 2d 70 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ts-p.path)).....................
1589c0 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .(progn........................(
1589e0 72 65 6d 68 61 73 68 20 70 61 74 68 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 0a 20 20 20 20 remhash.path.emms-cache-db).....
158a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 6d 6f 76 65 64 ...................(setq.removed
158a20 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 .t))....................(let.((f
158a40 69 6c 65 2d 6d 74 69 6d 65 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 74 72 61 63 6b 2d 66 69 6c 65 2d ile-mtime.(emms-info-track-file-
158a60 6d 74 69 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mtime.track))...................
158a80 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 6d 74 69 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 .......(info-mtime.(emms-track-g
158aa0 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6d 74 69 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 et.track.'info-mtime))).........
158ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 69 6e 66 6f .............(when.(or.(not.info
158ae0 2d 6d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -mtime).........................
158b00 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 69 6d 65 2d 6c 65 73 73 2d 70 20 69 6e 66 6f 2d 6d 74 .......(emms-time-less-p.info-mt
158b20 69 6d 65 20 66 69 6c 65 2d 6d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ime.file-mtime).................
158b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...............arg).............
158b60 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 69 6e 69 74 69 61 6c 69 7a 65 ...........(emms-info-initialize
158b80 2d 74 72 61 63 6b 20 74 72 61 63 6b 20 61 72 67 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 -track.track.arg))))))..........
158ba0 20 20 20 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 29 0a 20 20 20 20 28 77 68 65 6e 20 72 65 6d ....emms-cache-db).....(when.rem
158bc0 6f 76 65 64 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 oved.......(setq.emms-cache-dirt
158be0 79 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 63 61 63 68 65 2d 72 65 73 65 74 y.t))))..(defun.emms-cache-reset
158c00 20 28 29 0a 20 20 22 52 65 73 65 74 20 74 68 65 20 63 61 63 68 65 2e 22 0a 20 20 28 69 6e 74 65 .()..."Reset.the.cache."...(inte
158c20 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 22 52 ractive)...(when.(yes-or-no-p."R
158c40 65 61 6c 6c 79 20 72 65 73 65 74 20 74 68 65 20 63 61 63 68 65 3f 20 22 29 0a 20 20 20 20 28 73 eally.reset.the.cache?.").....(s
158c60 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b etq.emms-cache-db...........(mak
158c80 65 2d 68 61 73 68 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 28 69 e-hash-table............:test.(i
158ca0 66 20 28 66 62 6f 75 6e 64 70 20 27 64 65 66 69 6e 65 2d 68 61 73 68 2d 74 61 62 6c 65 2d 74 65 f.(fboundp.'define-hash-table-te
158cc0 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 st)......................'string
158ce0 2d 68 61 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 71 75 61 6c 29 -hash....................'equal)
158d00 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 69 72 74 79 20 74 29 )).....(setq.emms-cache-dirty.t)
158d20 0a 20 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 2d 73 61 76 65 29 29 29 0a 0a 28 70 72 6f 76 69 .....(emms-cache-save)))..(provi
158d40 64 65 20 27 65 6d 6d 73 2d 63 61 63 68 65 29 0a 3b 3b 3b 20 65 6d 6d 73 2d 63 61 63 68 65 2e 65 de.'emms-cache).;;;.emms-cache.e
158d60 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
158d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2e 65 6c 00 00 00 00 00 00 emms-24/emms-tag-editor.el......
158e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
158e80 30 31 31 33 34 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 33 31 00 20 30 00 00 00 0113454.00000000000.014231..0...
158ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
158f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
158f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159000 3b 3b 3b 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2e 65 6c 20 2d 2d 2d 20 45 64 69 74 20 ;;;.emms-tag-editor.el.---.Edit.
159020 74 72 61 63 6b 20 74 61 67 73 2e 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a track.tags..-*-.lexical-binding:
159040 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2d 32 .t;.-*-..;;.Copyright.(C).2006-2
159060 30 32 33 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 023.Free.Software.Foundation,.In
159080 63 2e 0a 3b 3b 0a 3b 3b 20 4f 72 69 67 69 6e 61 6c 20 41 75 74 68 6f 72 3a 20 59 65 20 57 65 6e c..;;.;;.Original.Author:.Ye.Wen
1590a0 62 69 6e 20 3c 77 65 6e 62 69 6e 79 65 40 31 36 33 2e 63 6f 6d 3e 0a 3b 3b 20 41 75 74 68 6f 72 bin.<wenbinye@163.com>.;;.Author
1590c0 73 3a 20 74 68 65 20 45 6d 6d 73 20 64 65 76 65 6c 6f 70 65 72 73 20 28 73 65 65 20 41 55 54 48 s:.the.Emms.developers.(see.AUTH
1590e0 4f 52 53 20 66 69 6c 65 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 ORS.file)..;;.This.file.is.part.
159100 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 of.EMMS...;;.This.program.is.fre
159120 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software;.you.can.redistribute
159140 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.;;.it.under.th
159160 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
159180 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 c.License.as.published.by.;;.the
1591a0 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 .Free.Software.Foundation;.eithe
1591c0 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 r.version.3,.or.(at.your.option)
1591e0 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 .;;.any.later.version..;;.;;.Thi
159200 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 s.program.is.distributed.in.the.
159220 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 hope.that.it.will.be.useful,.;;.
159240 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 but.WITHOUT.ANY.WARRANTY;.withou
159260 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b t.even.the.implied.warranty.of.;
159280 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 ;.MERCHANTABILITY.or.FITNESS.FOR
1592a0 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a .A.PARTICULAR.PURPOSE...See.the.
1592c0 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f ;;.GNU.General.Public.License.fo
1592e0 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 r.more.details..;;.;;.You.should
159300 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 .have.received.a.copy.of.the.GNU
159320 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 .General.Public.License.;;.along
159340 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 .with.this.program;.if.not,.writ
159360 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 6e 64 61 e.to.the.Free.Software.;;.Founda
159380 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 tion,.Inc.,.675.Mass.Ave,.Cambri
1593a0 64 67 65 2c 20 4d 41 20 30 32 31 33 39 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 dge,.MA.02139,.USA...;;;.Comment
1593c0 61 72 79 3a 0a 0a 3b 3b 20 50 75 74 20 74 68 69 73 20 66 69 6c 65 20 69 6e 74 6f 20 79 6f 75 72 ary:..;;.Put.this.file.into.your
1593e0 20 6c 6f 61 64 2d 70 61 74 68 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 .load-path.and.the.following.int
159400 6f 20 79 6f 75 72 20 7e 2f 2e 65 6d 61 63 73 3a 0a 3b 3b 20 20 20 28 72 65 71 75 69 72 65 20 27 o.your.~/.emacs:.;;...(require.'
159420 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 63 6f emms-tag-editor)..;;;.Code:..(co
159440 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 6f ndition-case.nil.....(require.'o
159460 76 65 72 6c 61 79 29 0a 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 0a 28 72 65 71 75 69 72 65 20 verlay)...(error.nil)).(require.
159480 27 65 6d 6d 73 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 'emms).(eval-when-compile...(req
1594a0 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 29 0a 28 72 65 71 75 uire.'emms-info-metaflac)).(requ
1594c0 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 70 33 69 6e 66 6f 29 0a 28 72 65 71 75 69 72 65 ire.'emms-info-mp3info).(require
1594e0 20 27 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 29 0a 28 72 65 71 75 69 72 65 20 27 .'emms-playlist-mode).(require.'
159500 65 6d 6d 73 2d 6d 61 72 6b 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 63 61 63 68 65 29 emms-mark).(require.'emms-cache)
159520 0a 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 29 0a 28 72 .(require.'emms-tag-tracktag).(r
159540 65 71 75 69 72 65 20 27 66 6f 72 6d 61 74 2d 73 70 65 63 29 0a 28 72 65 71 75 69 72 65 20 27 73 equire.'format-spec).(require.'s
159560 75 62 72 2d 78 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 ubr-x)..(defcustom.emms-tag-edit
159580 6f 72 2d 74 61 67 2d 6f 67 67 2d 70 72 6f 67 72 61 6d 20 22 76 6f 72 62 69 73 63 6f 6d 6d 65 6e or-tag-ogg-program."vorbiscommen
1595a0 74 22 0a 20 20 22 2a 54 68 65 20 6e 61 6d 65 2f 70 61 74 68 20 6f 66 20 74 68 65 20 6f 67 67 20 t"..."*The.name/path.of.the.ogg.
1595c0 65 64 69 74 6f 72 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 editor.program."...:type.'string
1595e0 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 29 0a 0a 28 64 65 ...:group.'emms-tag-editor)..(de
159600 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 0a 20 20 27 28 28 69 fvar.emms-tag-editor-tags...'((i
159620 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 2e 20 22 61 22 29 0a 20 20 20 20 28 69 6e 66 6f nfo-artist........"a").....(info
159640 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 22 41 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 63 6f -albumartist..."A").....(info-co
159660 6d 70 6f 73 65 72 20 20 20 20 2e 20 22 43 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 70 65 72 66 6f mposer......"C").....(info-perfo
159680 72 6d 65 72 20 20 20 2e 20 22 70 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 69 74 6c 65 20 20 20 rmer....."p").....(info-title...
1596a0 20 20 20 20 2e 20 22 74 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 ......"t").....(info-album......
1596c0 20 2e 20 22 6c 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 20 2e 20 ..."l").....(info-tracknumber...
1596e0 22 6e 22 29 0a 20 20 20 20 28 69 6e 66 6f 2d 79 65 61 72 20 20 20 20 20 20 20 20 2e 20 22 79 22 "n").....(info-year.........."y"
159700 29 0a 20 20 20 20 28 69 6e 66 6f 2d 67 65 6e 72 65 20 20 20 20 20 20 20 2e 20 22 67 22 29 0a 20 ).....(info-genre........."g")..
159720 20 20 20 28 69 6e 66 6f 2d 64 61 74 65 20 20 20 20 20 20 20 20 2e 20 22 64 22 29 0a 20 20 20 20 ...(info-date.........."d").....
159740 28 69 6e 66 6f 2d 6e 6f 74 65 20 20 20 20 20 20 20 20 2e 20 22 63 22 29 29 0a 20 20 22 41 6e 20 (info-note.........."c"))..."An.
159760 61 6c 69 73 74 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 alist.to.determine.the.format.of
159780 20 76 61 72 69 6f 75 73 20 69 6e 66 6f 20 74 61 67 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 .various.info.tags.")..(defvar.e
1597a0 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 62 75 66 66 65 72 20 22 2a 45 4d 4d mms-tag-editor-edit-buffer."*EMM
1597c0 53 2d 54 41 47 53 2a 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 75 S-TAGS*"..."Name.of.the.buffer.u
1597e0 73 65 64 20 66 6f 72 20 65 64 69 74 69 6e 67 20 74 61 67 73 2e 22 29 0a 28 64 65 66 76 61 72 20 sed.for.editing.tags.").(defvar.
159800 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 75 66 66 65 72 20 22 2a 45 4d 4d emms-tag-editor-log-buffer."*EMM
159820 53 2d 4c 4f 47 2a 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 S-LOG*"..."Name.of.emms-tag-edit
159840 6f 72 27 73 20 6c 6f 67 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d or's.log.buffer.")..(defun.emms-
159860 74 61 67 2d 65 64 69 74 6f 72 2d 6d 61 6b 65 2d 66 6f 72 6d 61 74 20 28 74 61 67 73 29 0a 20 20 tag-editor-make-format.(tags)...
159880 22 4d 61 6b 65 20 61 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 54 "Make.a.format.string.based.on.T
1598a0 41 47 53 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 25 6d 5c 6e 22 20 28 65 6d 6d 73 2d 70 72 6f AGS."...(concat."%m\n".(emms-pro
1598c0 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 2d 31 36 73 20 3d 20 22 20 22 6e 61 6d 65 pertize.(format."%-16s.=."."name
1598e0 22 29 0a 09 09 09 09 20 20 27 72 65 61 64 2d 6f 6e 6c 79 20 74 20 27 72 65 61 72 2d 6e 6f 6e 73 ").......'read-only.t.'rear-nons
159900 74 69 63 6b 79 20 74 0a 09 09 09 09 20 20 27 66 61 63 65 20 27 62 6f 6c 64 29 0a 20 20 20 20 20 ticky.t.......'face.'bold)......
159920 20 20 20 20 20 22 25 66 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 ....."%f\n"...........(mapconcat
159940 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 20 20 20 20 20 ............(lambda.(tag).......
159960 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 69 7a 65 20 .......(concat.(emms-propertize.
159980 28 66 6f 72 6d 61 74 20 22 25 2d 31 36 73 20 3d 20 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 (format."%-16s.=.".(symbol-name.
1599a0 74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tag))...........................
1599c0 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 61 64 2d 6f 6e 6c 79 20 74 20 27 72 65 61 72 2d 6e ............'read-only.t.'rear-n
1599e0 6f 6e 73 74 69 63 6b 79 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onsticky.t......................
159a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 62 6f 6c 64 29 0a 20 20 .................'face.'bold)...
159a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 25 22 20 28 63 64 72 20 28 61 73 73 ..................."%".(cdr.(ass
159a40 6f 63 20 74 61 67 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 29 29 29 0a oc.tag.emms-tag-editor-tags)))).
159a60 20 20 20 20 20 20 20 20 20 20 20 74 61 67 73 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 ...........tags."\n")...........
159a80 22 5c 6e 5c 6e 22 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f "\n\n"))..(defvar.emms-tag-edito
159aa0 72 2d 66 6f 72 6d 61 74 73 0a 20 20 28 6c 65 74 2a 20 28 28 74 61 67 73 20 28 6d 61 70 63 61 72 r-formats...(let*.((tags.(mapcar
159ac0 20 23 27 63 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 29 0a 20 20 .#'car.emms-tag-editor-tags))...
159ae0 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 .......(default.(emms-tag-editor
159b00 2d 6d 61 6b 65 2d 66 6f 72 6d 61 74 20 28 72 65 6d 6f 76 65 20 27 69 6e 66 6f 2d 64 61 74 65 20 -make-format.(remove.'info-date.
159b20 74 61 67 73 29 29 29 29 0a 20 20 20 20 60 28 28 22 6d 70 33 22 20 2e 20 2c 64 65 66 61 75 6c 74 tags)))).....`(("mp3"...,default
159b40 29 0a 20 20 20 20 20 20 28 22 6f 67 67 22 20 2e 20 2c 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 ).......("ogg"...,(emms-tag-edit
159b60 6f 72 2d 6d 61 6b 65 2d 66 6f 72 6d 61 74 20 28 72 65 6d 6f 76 65 20 27 69 6e 66 6f 2d 79 65 61 or-make-format.(remove.'info-yea
159b80 72 20 74 61 67 73 29 29 29 0a 20 20 20 20 20 20 28 22 66 6c 61 63 22 20 2e 20 2c 28 65 6d 6d 73 r.tags))).......("flac"...,(emms
159ba0 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6d 61 6b 65 2d 66 6f 72 6d 61 74 20 28 72 65 6d 6f 76 65 20 -tag-editor-make-format.(remove.
159bc0 27 69 6e 66 6f 2d 79 65 61 72 20 74 61 67 73 29 29 29 0a 20 20 20 20 20 20 28 22 6f 70 75 73 22 'info-year.tags))).......("opus"
159be0 20 2e 20 2c 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6d 61 6b 65 2d 66 6f 72 6d 61 74 ...,(emms-tag-editor-make-format
159c00 20 28 72 65 6d 6f 76 65 20 27 69 6e 66 6f 2d 67 65 6e 72 65 20 74 61 67 73 29 29 29 0a 20 20 20 .(remove.'info-genre.tags)))....
159c20 20 20 20 28 22 64 65 66 61 75 6c 74 22 20 2e 20 2c 64 65 66 61 75 6c 74 29 29 29 0a 20 20 22 46 ...("default"...,default)))..."F
159c40 6f 72 6d 61 74 20 74 6f 20 75 73 65 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 20 ormat.to.use.when.inserting.the.
159c60 74 72 61 63 6b 2e 0a 54 68 65 20 43 41 52 20 70 61 72 74 20 69 73 20 74 68 65 20 65 78 74 65 6e track..The.CAR.part.is.the.exten
159c80 73 69 6f 6e 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 6e 61 6d 65 2c 20 61 6e 64 20 74 68 65 20 sion.of.the.track.name,.and.the.
159ca0 43 44 52 20 70 61 72 74 0a 69 73 20 74 68 65 20 66 6f 72 6d 61 74 20 74 65 6d 70 6c 61 74 65 2e CDR.part.is.the.format.template.
159cc0 20 20 54 68 65 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 6c 69 ..The.format.specification.is.li
159ce0 6b 65 3a 0a 0a 20 6d 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 64 65 73 63 72 69 70 ke:...m.....--.....Track.descrip
159d00 74 69 6f 6e 0a 20 66 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 6e 61 6d 65 0a 20 61 tion..f.....--.....Track.name..a
159d20 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 61 72 74 69 73 74 0a 20 43 .....--.....Track.info-artist..C
159d40 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 0a .....--.....Track.info-composer.
159d60 20 70 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 70 65 72 66 6f 72 6d .p.....--.....Track.info-perform
159d80 65 72 0a 20 74 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 74 69 74 6c er..t.....--.....Track.info-titl
159da0 65 0a 20 6c 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 61 6c 62 75 6d e..l.....--.....Track.info-album
159dc0 0a 20 6e 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 74 72 61 63 6b 6e ..n.....--.....Track.info-trackn
159de0 75 6d 62 65 72 0a 20 44 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d 64 umber..D.....--.....Track.info-d
159e00 69 73 63 6e 75 6d 62 65 72 0a 20 79 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e iscnumber..y.....--.....Track.in
159e20 66 6f 2d 79 65 61 72 0a 20 67 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f fo-year..g.....--.....Track.info
159e40 2d 67 65 6e 72 65 0a 20 3b 20 20 20 20 20 2d 2d 20 20 20 20 20 54 72 61 63 6b 20 69 6e 66 6f 2d -genre..;.....--.....Track.info-
159e60 6e 6f 74 65 0a 0a 59 6f 75 20 63 61 6e 20 61 64 64 20 6e 65 77 20 73 70 65 63 69 66 69 63 61 74 note..You.can.add.new.specificat
159e80 69 6f 6e 73 20 69 6e 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 27 2c 20 ions.in.`emms-tag-editor-tags',.
159ea0 61 6e 64 20 75 73 65 0a 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6d 61 6b 65 2d 66 6f and.use.`emms-tag-editor-make-fo
159ec0 72 6d 61 74 27 20 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 66 6f 72 6d 61 74 20 73 74 72 rmat'.to.create.a.new.format.str
159ee0 69 6e 67 2e 0a 0a 54 68 65 20 43 44 52 20 70 61 72 74 20 61 6c 73 6f 20 63 61 6e 20 62 65 20 61 ing...The.CDR.part.also.can.be.a
159f00 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 69 63 68 20 61 63 63 65 70 74 73 20 6f 6e 65 20 70 61 72 .function,.which.accepts.one.par
159f20 61 6d 65 74 65 72 2c 0a 74 68 65 20 74 72 61 63 6b 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 ameter,.the.track,.and.returns.a
159f40 20 73 74 72 69 6e 67 20 74 6f 20 69 6e 73 65 72 74 20 69 6e 0a 60 65 6d 6d 73 2d 74 61 67 2d 65 .string.to.insert.in.`emms-tag-e
159f60 64 69 74 6f 72 2d 65 64 69 74 2d 62 75 66 66 65 72 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 ditor-edit-buffer'.")..(defvar.e
159f80 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 67 65 74 2d 66 6f 72 6d 61 74 2d 66 75 6e 63 74 69 mms-tag-editor-get-format-functi
159fa0 6f 6e 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 67 65 74 2d 66 6f 72 6d 61 74 0a 20 on.'emms-tag-editor-get-format..
159fc0 20 22 44 65 74 65 72 6d 69 6e 65 73 20 77 68 69 63 68 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 ."Determines.which.function.to.c
159fe0 61 6c 6c 20 74 6f 20 67 65 74 20 74 68 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 2c 20 77 68 all.to.get.the.format.string,.wh
15a000 69 63 68 20 69 73 0a 75 73 65 64 20 66 6f 72 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 20 74 72 ich.is.used.for.inserting.the.tr
15a020 61 63 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d ack.")..(defvar.emms-tag-editor-
15a040 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d parse-function.'emms-tag-editor-
15a060 64 65 66 61 75 6c 74 2d 70 61 72 73 65 72 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 70 61 default-parser..."Function.to.pa
15a080 72 73 65 20 74 61 67 73 20 69 6e 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 rse.tags.in.`emms-tag-editor-edi
15a0a0 74 2d 62 75 66 66 65 72 5c 5c 3d 27 2e 0a 49 74 20 73 68 6f 75 6c 64 20 66 69 6e 64 20 61 6c 6c t-buffer\\='..It.should.find.all
15a0c0 20 6d 6f 64 69 66 69 65 64 20 74 61 67 73 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 61 6c 6c 20 74 .modified.tags,.and.return.all.t
15a0e0 68 65 20 74 72 61 63 6b 73 2e 20 20 54 68 65 0a 74 72 61 63 6b 73 20 66 6f 72 20 77 68 69 63 68 he.tracks...The.tracks.for.which
15a100 20 61 20 74 61 67 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 73 68 6f 75 6c 64 20 .a.tag.has.been.modified.should.
15a120 73 65 74 20 61 20 70 72 6f 70 65 72 74 79 0a 5c 5c 3d 27 74 61 67 2d 6d 6f 64 69 66 69 65 64 20 set.a.property.\\='tag-modified.
15a140 74 6f 20 74 2e 20 20 49 66 20 74 68 65 20 74 72 61 63 6b 20 6e 61 6d 65 20 68 61 73 20 62 65 65 to.t...If.the.track.name.has.bee
15a160 6e 20 63 68 61 6e 67 65 64 2c 20 74 68 65 0a 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 73 n.changed,.the.function.should.s
15a180 65 74 20 61 20 6e 65 77 20 70 72 6f 70 65 72 74 79 20 5c 5c 3d 27 6e 65 77 6e 61 6d 65 20 69 6e et.a.new.property.\\='newname.in
15a1a0 73 74 65 61 64 20 6f 66 20 73 65 74 74 69 6e 67 0a 74 68 65 20 5c 5c 3d 27 6e 61 6d 65 20 64 69 stead.of.setting.the.\\='name.di
15a1c0 72 65 63 74 6c 79 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 rectly...See.also.`emms-tag-edit
15a1e0 6f 72 2d 64 65 66 61 75 6c 74 2d 70 61 72 73 65 72 5c 5c 3d 27 2e 22 29 0a 0a 28 64 65 66 76 61 or-default-parser\\='.")..(defva
15a200 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 r.emms-tag-editor-tagfile-functi
15a220 6f 6e 73 0a 20 20 27 28 28 22 6d 70 33 22 20 22 6d 69 64 33 76 32 22 0a 20 20 20 20 20 28 28 69 ons...'(("mp3"."mid3v2"......((i
15a240 6e 66 6f 2d 61 72 74 69 73 74 20 20 20 20 20 20 2e 20 22 2d 61 22 29 0a 20 20 20 20 20 20 28 69 nfo-artist........"-a").......(i
15a260 6e 66 6f 2d 74 69 74 6c 65 20 20 20 20 20 20 20 2e 20 22 2d 74 22 29 0a 20 20 20 20 20 20 28 69 nfo-title........."-t").......(i
15a280 6e 66 6f 2d 61 6c 62 75 6d 20 20 20 20 20 20 20 2e 20 22 2d 41 22 29 0a 20 20 20 20 20 20 28 69 nfo-album........."-A").......(i
15a2a0 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 20 2e 20 22 2d 54 22 29 0a 20 20 20 20 20 20 28 69 nfo-tracknumber..."-T").......(i
15a2c0 6e 66 6f 2d 79 65 61 72 20 20 20 20 20 20 20 20 2e 20 22 2d 79 22 29 0a 20 20 20 20 20 20 28 69 nfo-year.........."-y").......(i
15a2e0 6e 66 6f 2d 67 65 6e 72 65 20 20 20 20 20 20 20 2e 20 22 2d 67 22 29 0a 20 20 20 20 20 20 28 69 nfo-genre........."-g").......(i
15a300 6e 66 6f 2d 6e 6f 74 65 20 20 20 20 20 20 20 20 2e 20 22 2d 63 22 29 0a 20 20 20 20 20 20 28 69 nfo-note.........."-c").......(i
15a320 6e 66 6f 2d 61 6c 62 75 6d 61 72 74 69 73 74 20 2e 20 22 2d 2d 54 50 45 32 22 29 0a 20 20 20 20 nfo-albumartist..."--TPE2").....
15a340 20 20 28 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 20 20 20 2e 20 22 2d 2d 54 43 4f 4d 22 29 0a ..(info-composer......"--TCOM").
15a360 20 20 20 20 20 20 28 69 6e 66 6f 2d 70 65 72 66 6f 72 6d 65 72 20 20 20 2e 20 22 2d 2d 54 4f 50 ......(info-performer....."--TOP
15a380 45 22 29 0a 20 20 20 20 20 20 28 69 6e 66 6f 2d 64 61 74 65 20 20 20 20 20 20 20 20 2e 20 22 2d E").......(info-date.........."-
15a3a0 2d 54 44 41 54 22 29 29 29 0a 20 20 20 20 28 22 6f 67 67 22 20 2e 20 65 6d 6d 73 2d 74 61 67 2d -TDAT"))).....("ogg"...emms-tag-
15a3c0 65 64 69 74 6f 72 2d 74 61 67 2d 6f 67 67 29 0a 20 20 20 20 28 22 66 6c 61 63 22 20 2e 20 65 6d editor-tag-ogg).....("flac"...em
15a3e0 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 66 6c 61 63 29 0a 20 20 20 20 28 22 6f 70 ms-tag-editor-tag-flac).....("op
15a400 75 73 22 20 2e 20 65 6d 6d 73 2d 74 61 67 2d 74 72 61 63 6b 74 61 67 2d 66 69 6c 65 29 29 0a 20 us"...emms-tag-tracktag-file))..
15a420 20 22 41 6e 20 61 6c 69 73 74 20 75 73 65 64 20 77 68 65 6e 20 63 6f 6d 6d 69 74 74 69 6e 67 20 ."An.alist.used.when.committing.
15a440 63 68 61 6e 67 65 73 20 74 6f 20 74 61 67 73 20 69 6e 20 66 69 6c 65 73 2e 0a 49 66 20 74 68 65 changes.to.tags.in.files..If.the
15a460 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20 73 65 74 73 20 74 61 67 73 20 62 79 20 63 .external.program.sets.tags.by.c
15a480 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 0a 6f 6e 65 2d 62 79 2d 6f 6e 65 2c 20 ommand.line.options.one-by-one,.
15a4a0 74 68 65 6e 20 74 68 65 20 6c 69 73 74 20 73 68 6f 75 6c 64 20 6c 69 6b 65 3a 0a 20 28 45 58 54 then.the.list.should.like:..(EXT
15a4c0 45 4e 53 49 4f 4e 20 50 52 4f 47 52 41 4d 20 43 4f 4d 4d 41 4e 44 5f 4c 49 4e 45 5f 4f 50 54 49 ENSION.PROGRAM.COMMAND_LINE_OPTI
15a4e0 4f 4e 53 29 0a 0a 4f 74 68 65 72 77 69 73 65 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 ONS)..Otherwise,.a.function.that
15a500 20 61 63 63 65 70 74 73 20 61 20 73 69 6e 67 6c 65 20 70 61 72 61 6d 65 74 65 72 2c 20 74 68 65 .accepts.a.single.parameter,.the
15a520 20 74 72 61 63 6b 2c 0a 73 68 6f 75 6c 64 20 62 65 20 67 69 76 65 6e 2e 0a 0a 53 65 65 20 61 6c .track,.should.be.given...See.al
15a540 73 6f 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 66 69 6c 65 27 20 61 6e so.`emms-tag-editor-tag-file'.an
15a560 64 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 6f 67 67 27 2e 22 29 0a 0a d.`emms-tag-editor-tag-ogg'.")..
15a580 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 66 6c 61 63 20 (defun.emms-tag-editor-tag-flac.
15a5a0 28 74 72 61 63 6b 29 0a 20 20 22 43 6f 6d 6d 69 74 20 63 68 61 6e 67 65 73 20 74 6f 20 61 6e 20 (track)..."Commit.changes.to.an.
15a5c0 46 4c 41 43 20 66 69 6c 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 54 52 41 43 4b 2e 22 0a 20 FLAC.file.according.to.TRACK."..
15a5e0 20 28 72 65 71 75 69 72 65 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 29 0a 20 .(require.'emms-info-metaflac)..
15a600 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 6c 65 74 20 28 28 74 61 .(with-temp-buffer.....(let.((ta
15a620 67 73 20 27 28 22 61 6c 62 75 6d 61 72 74 69 73 74 22 20 22 61 72 74 69 73 74 22 20 22 63 6f 6d gs.'("albumartist"."artist"."com
15a640 70 6f 73 65 72 22 20 22 70 65 72 66 6f 72 6d 65 72 22 20 22 74 69 74 6c 65 22 20 22 61 6c 62 75 poser"."performer"."title"."albu
15a660 6d 22 20 22 74 72 61 63 6b 6e 75 6d 62 65 72 22 20 22 64 69 73 63 6e 75 6d 62 65 72 22 20 22 64 m"."tracknumber"."discnumber"."d
15a680 61 74 65 22 20 22 67 65 6e 72 65 22 20 22 6e 6f 74 65 22 29 29 0a 09 20 20 76 61 6c 29 0a 20 20 ate"."genre"."note"))....val)...
15a6a0 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 20 20 20 20 20 20 20 ....(mapc.(lambda.(tag).........
15a6c0 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 2d 74 61 67 20 28 69 6e 74 65 72 6e 20 28 63 ......(let.((info-tag.(intern.(c
15a6e0 6f 6e 63 61 74 20 22 69 6e 66 6f 2d 22 20 74 61 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 oncat."info-".tag))))...........
15a700 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 28 73 65 74 71 20 76 61 6c ......(when.(>.(length.(setq.val
15a720 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 69 6e 66 6f 2d 74 61 67 29 .(emms-track-get.track.info-tag)
15a740 29 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 )).0)...................(insert.
15a760 28 75 70 63 61 73 65 20 74 61 67 29 20 22 3d 22 20 76 61 6c 20 22 5c 6e 22 29 29 29 29 0a 20 20 (upcase.tag)."=".val."\n"))))...
15a780 20 20 20 20 20 20 20 20 20 20 74 61 67 73 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 ..........tags).......(when.(buf
15a7a0 66 65 72 2d 73 74 72 69 6e 67 29 0a 09 28 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d 70 72 6f 63 65 fer-string)..(apply.#'call-proce
15a7c0 73 73 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 ss-region.(point-min).(point-max
15a7e0 29 0a 09 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6d 65 74 61 66 6c 61 63 2d 70 72 6f ).........emms-info-metaflac-pro
15a800 67 72 61 6d 2d 6e 61 6d 65 20 6e 69 6c 0a 09 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 gram-name.nil.........(get-buffe
15a820 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 75 66 r-create.emms-tag-editor-log-buf
15a840 66 65 72 29 0a 09 20 20 20 20 20 20 20 6e 69 6c 0a 09 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 fer).........nil.........(append
15a860 0a 09 09 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 09 09 09 20 20 28 63 ...(mapcar.(lambda.(tag)......(c
15a880 6f 6e 63 61 74 20 22 2d 2d 72 65 6d 6f 76 65 2d 74 61 67 3d 22 20 74 61 67 29 29 0a 09 09 09 74 oncat."--remove-tag=".tag))....t
15a8a0 61 67 73 29 0a 09 09 27 28 22 2d 2d 69 6d 70 6f 72 74 2d 74 61 67 73 2d 66 72 6f 6d 3d 2d 22 29 ags)...'("--import-tags-from=-")
15a8c0 0a 09 09 27 28 22 2d 2d 22 29 0a 09 09 28 6c 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e ...'("--")...(list.(emms-track-n
15a8e0 61 6d 65 20 74 72 61 63 6b 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 ame.track))))))))..(defun.emms-t
15a900 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 6f 67 67 20 28 74 72 61 63 6b 29 0a 20 20 22 43 6f 6d ag-editor-tag-ogg.(track)..."Com
15a920 6d 69 74 20 63 68 61 6e 67 65 73 20 74 6f 20 61 6e 20 4f 47 47 20 66 69 6c 65 20 61 63 63 6f 72 mit.changes.to.an.OGG.file.accor
15a940 64 69 6e 67 20 74 6f 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 61 72 67 73 20 76 61 6c ding.to.TRACK."...(let.(args.val
15a960 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 20 20 20 20 20 ).....(mapc.(lambda.(tag).......
15a980 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 2d 74 61 67 20 28 69 6e 74 65 72 6e 20 28 63 ......(let.((info-tag.(intern.(c
15a9a0 6f 6e 63 61 74 20 22 69 6e 66 6f 2d 22 20 74 61 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 oncat."info-".tag))))...........
15a9c0 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 28 73 65 74 71 20 76 61 6c 20 28 ....(when.(>.(length.(setq.val.(
15a9e0 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 69 6e 66 6f 2d 74 61 67 29 29 29 emms-track-get.track.info-tag)))
15aa00 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 73 20 28 .0).................(setq.args.(
15aa20 61 70 70 65 6e 64 20 28 6c 69 73 74 20 22 2d 74 22 20 28 63 6f 6e 63 61 74 20 28 75 70 63 61 73 append.(list."-t".(concat.(upcas
15aa40 65 20 74 61 67 29 20 22 3d 22 20 76 61 6c 29 29 20 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 e.tag)."=".val)).args)))))......
15aa60 20 20 20 20 20 27 28 22 61 72 74 69 73 74 22 20 22 63 6f 6d 70 6f 73 65 72 22 20 22 70 65 72 66 .....'("artist"."composer"."perf
15aa80 6f 72 6d 65 72 22 20 22 74 69 74 6c 65 22 20 22 61 6c 62 75 6d 22 20 22 74 72 61 63 6b 6e 75 6d ormer"."title"."album"."tracknum
15aaa0 62 65 72 22 20 22 64 61 74 65 22 20 22 67 65 6e 72 65 22 20 22 6e 6f 74 65 22 29 29 0a 20 20 20 ber"."date"."genre"."note"))....
15aac0 20 28 77 68 65 6e 20 61 72 67 73 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d .(when.args.......(apply.#'call-
15aae0 70 72 6f 63 65 73 73 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 6f 67 67 2d process.emms-tag-editor-tag-ogg-
15ab00 70 72 6f 67 72 61 6d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 program.nil..............(get-bu
15ab20 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d ffer-create.emms-tag-editor-log-
15ab40 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 buffer)..............nil........
15ab60 20 20 20 20 20 20 22 2d 77 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 ......"-w"..............(append.
15ab80 61 72 67 73 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 args.(list.(emms-track-name.trac
15aba0 6b 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 k)))))))..(defun.emms-tag-editor
15abc0 2d 74 61 67 2d 66 69 6c 65 20 28 74 72 61 63 6b 20 70 72 6f 67 72 61 6d 20 74 61 67 73 20 66 69 -tag-file.(track.program.tags.fi
15abe0 6c 65 6e 61 6d 65 29 0a 20 20 22 43 68 61 6e 67 65 20 54 41 47 53 20 69 6e 20 46 49 4c 45 2c 20 lename)..."Change.TAGS.in.FILE,.
15ac00 75 73 69 6e 67 20 50 52 4f 47 52 41 4d 2e 0a 56 61 6c 69 64 20 74 61 67 73 20 61 72 65 20 67 69 using.PROGRAM..Valid.tags.are.gi
15ac20 76 65 6e 20 62 79 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d ven.by.`emms-tag-editor-tagfile-
15ac40 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 61 72 67 73 20 76 61 6c 29 0a 20 functions'."...(let.(args.val)..
15ac60 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 20 20 20 20 20 20 20 20 ...(mapc.(lambda.(tag)..........
15ac80 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 ...(unless.(or.(string-prefix-p.
15aca0 22 2d 22 20 28 63 64 72 20 74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "-".(cdr.tag))..................
15acc0 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2b 22 20 28 63 64 72 .......(string-prefix-p."+".(cdr
15ace0 20 74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .tag)).........................(
15ad00 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2f 22 20 28 63 64 72 20 74 61 67 29 29 29 0a string-prefix-p."/".(cdr.tag))).
15ad20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 6d 6d 61 6e 64 20 61 72 ..............(error."Command.ar
15ad40 67 75 6d 65 6e 74 73 20 6e 65 65 64 20 70 72 65 66 69 78 20 69 6e 20 60 65 6d 6d 73 2d 74 61 67 guments.need.prefix.in.`emms-tag
15ad60 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 29 29 0a 20 -editor-tagfile-functions'."))..
15ad80 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 65 6d 6d 73 2d 74 72 61 63 6b ...........(setq.val.(emms-track
15ada0 2d 67 65 74 20 74 72 61 63 6b 20 28 63 61 72 20 74 61 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 -get.track.(car.tag)))..........
15adc0 20 20 20 28 69 66 20 28 61 6e 64 20 76 61 6c 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 29 0a 20 ...(if.(and.val.(stringp.val))..
15ade0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 73 20 28 61 70 70 65 6e ...............(setq.args.(appen
15ae00 64 20 28 6c 69 73 74 20 28 63 64 72 20 74 61 67 29 20 76 61 6c 29 20 61 72 67 73 29 29 29 29 0a d.(list.(cdr.tag).val).args)))).
15ae20 20 20 20 20 20 20 20 20 20 20 74 61 67 73 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 61 6c ..........tags).....(apply.#'cal
15ae40 6c 2d 70 72 6f 63 65 73 73 20 70 72 6f 67 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c l-process.program............nil
15ae60 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 .(get-buffer-create.emms-tag-edi
15ae80 74 6f 72 2d 6c 6f 67 2d 62 75 66 66 65 72 29 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 tor-log-buffer).nil............(
15aea0 6e 63 6f 6e 63 20 61 72 67 73 20 28 6c 69 73 74 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 29 0a 0a nconc.args.(list.filename)))))..
15aec0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 67 65 74 2d 66 6f 72 6d 61 (defun.emms-tag-editor-get-forma
15aee0 74 20 28 74 72 61 63 6b 29 0a 20 20 22 47 65 74 20 74 68 65 20 66 6f 72 6d 61 74 20 73 74 72 69 t.(track)..."Get.the.format.stri
15af00 6e 67 20 74 6f 20 75 73 65 20 66 6f 72 20 63 6f 6d 6d 69 74 74 69 6e 67 20 63 68 61 6e 67 65 73 ng.to.use.for.committing.changes
15af20 20 74 6f 20 54 52 41 43 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 61 74 0a 20 20 20 20 .to.TRACK."...(let.((format.....
15af40 20 20 20 20 20 28 61 73 73 6f 63 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e .....(assoc.(file-name-extension
15af60 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 .(emms-track-name.track)).......
15af80 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 ..........emms-tag-editor-format
15afa0 73 29 29 29 0a 20 20 20 20 28 69 66 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 28 63 64 72 s))).....(if.format.........(cdr
15afc0 20 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 64 65 66 61 .format).......(cdr.(assoc."defa
15afe0 75 6c 74 22 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 73 29 29 29 29 ult".emms-tag-editor-formats))))
15b000 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 6f 72 6d 61 74 )..(defun.emms-tag-editor-format
15b020 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e -track.(track)..."Return.a.strin
15b040 67 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 69 6e 66 6f 20 74 61 67 73 20 63 6f 6e g.representing.the.info.tags.con
15b060 74 61 69 6e 65 64 20 69 6e 20 54 52 41 43 4b 2e 0a 54 68 69 73 20 73 74 72 69 6e 67 20 69 73 20 tained.in.TRACK..This.string.is.
15b080 73 75 69 74 61 62 6c 65 20 66 6f 72 20 69 6e 73 65 72 74 69 6e 67 20 69 6e 74 6f 20 74 68 65 20 suitable.for.inserting.into.the.
15b0a0 74 61 67 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 61 74 20 28 66 tags.buffer."...(let.((format.(f
15b0c0 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 67 65 74 2d 66 6f 72 6d 61 uncall.emms-tag-editor-get-forma
15b0e0 74 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 75 6e t-function.track))).....(if.(fun
15b100 63 74 69 6f 6e 70 20 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 ctionp.format).........(funcall.
15b120 66 6f 72 6d 61 74 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 73 70 65 63 format.track).......(format-spec
15b140 0a 20 20 20 20 20 20 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 66 ........format........(apply.#'f
15b160 6f 72 6d 61 74 2d 73 70 65 63 2d 6d 61 6b 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 6d ormat-spec-make...............?m
15b180 20 28 65 6d 6d 73 2d 70 72 6f 70 65 72 74 69 7a 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 6f .(emms-propertize.(emms-track-fo
15b1a0 72 63 65 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 rce-description.track)..........
15b1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 .........................'face.'
15b1e0 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 66 61 63 65 0a 20 20 20 20 20 20 20 emms-playlist-track-face........
15b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 ...........................'emms
15b220 2d 74 72 61 63 6b 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 74 72 61 63 6b 29 29 0a 20 20 -track.(copy-sequence.track))...
15b240 20 20 20 20 20 20 20 20 20 20 20 20 3f 66 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 ............?f.(emms-track-name.
15b260 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 track)...............(apply.#'ap
15b280 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 pend......................(mapca
15b2a0 72 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(lambda.(tag).................
15b2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d ...............(list.(string-to-
15b2e0 63 68 61 72 20 28 63 64 72 20 74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.(cdr.tag)).................
15b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 6d 6d 73 2d 74 .....................(or.(emms-t
15b320 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 28 63 61 72 20 74 61 67 29 29 20 22 22 29 29 29 0a rack-get.track.(car.tag)).""))).
15b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d .............................emm
15b360 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e s-tag-editor-tags)))))))..(defun
15b380 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 20 28 26 6f 70 74 69 .emms-tag-editor-track-at.(&opti
15b3a0 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68 onal.pos)..."Return.a.copy.of.th
15b3c0 65 20 74 72 61 63 6b 20 61 74 20 50 4f 53 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 70 6f 69 e.track.at.POS...Defaults.to.poi
15b3e0 6e 74 20 69 66 20 50 4f 53 20 69 73 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 nt.if.POS.is.nil."...(let.((trac
15b400 6b 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 74 72 61 63 6b 2d 61 74 20 70 6f 73 29 29 0a k.(emms-playlist-track-at.pos)).
15b420 20 20 20 20 20 20 20 20 6e 65 77 74 72 61 63 6b 29 0a 20 20 20 20 28 77 68 65 6e 20 74 72 61 63 ........newtrack).....(when.trac
15b440 6b 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 74 72 61 63 6b 20 28 63 6f 70 79 2d 73 65 71 k.......(setq.newtrack.(copy-seq
15b460 75 65 6e 63 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d uence.track)).......(emms-track-
15b480 73 65 74 20 6e 65 77 74 72 61 63 6b 20 27 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 61 set.newtrack.'position.(point-ma
15b4a0 72 6b 65 72 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 6e 65 77 rker)).......(emms-track-set.new
15b4c0 74 72 61 63 6b 20 27 6f 72 69 67 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 6e track.'orig-track.track).......n
15b4e0 65 77 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 74 61 67 2d 65 ewtrack)))..(defsubst.emms-tag-e
15b500 64 69 74 6f 72 2d 65 72 61 73 65 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 ditor-erase-buffer.(&optional.bu
15b520 66 29 0a 20 20 22 45 72 61 73 65 20 74 68 65 20 62 75 66 66 65 72 20 42 55 46 2c 20 61 6e 64 20 f)..."Erase.the.buffer.BUF,.and.
15b540 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 ensure.that.it.exists."...(let.(
15b560 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 28 77 69 74 68 (inhibit-read-only.t)).....(with
15b580 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 -current-buffer.(get-buffer-crea
15b5a0 74 65 20 62 75 66 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 29 29 29 0a te.buf).......(erase-buffer)))).
15b5c0 0a 28 64 65 66 73 75 62 73 74 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 69 6e 73 65 72 .(defsubst.emms-tag-editor-inser
15b5e0 74 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 29 0a 20 20 22 49 6e 73 65 72 74 20 54 52 41 43 4b 2c t-track.(track)..."Insert.TRACK,
15b600 20 69 66 20 69 74 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 22 0a 20 20 28 61 6e 64 20 74 72 61 .if.it.is.specified."...(and.tra
15b620 63 6b 0a 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 ck........(insert.(emms-tag-edit
15b640 6f 72 2d 66 6f 72 6d 61 74 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 29 29 29 0a 0a 28 64 65 66 73 or-format-track.track))))..(defs
15b660 75 62 73 74 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 64 69 73 70 6c 61 79 2d 6c 6f 67 ubst.emms-tag-editor-display-log
15b680 2d 62 75 66 66 65 72 2d 6d 61 79 62 65 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 20 -buffer-maybe.()..."Display.the.
15b6a0 6c 6f 67 20 62 75 66 66 65 72 20 69 66 20 69 74 20 68 61 73 20 61 6e 79 20 63 6f 6e 74 65 6e 74 log.buffer.if.it.has.any.content
15b6c0 73 2e 22 0a 20 20 28 69 66 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 20 28 67 65 74 2d 62 s."...(if.(>.(buffer-size.(get-b
15b6e0 75 66 66 65 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 75 66 66 65 72 uffer.emms-tag-editor-log-buffer
15b700 29 29 20 30 29 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 65 6d 6d 73 )).0).......(display-buffer.emms
15b720 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 -tag-editor-log-buffer)))..(defu
15b740 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 73 20 n.emms-tag-editor-insert-tracks.
15b760 28 74 72 61 63 6b 73 29 0a 20 20 22 49 6e 73 65 72 74 20 54 52 41 43 4b 53 20 69 6e 74 6f 20 74 (tracks)..."Insert.TRACKS.into.t
15b780 68 65 20 74 61 67 20 65 64 69 74 6f 72 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 he.tag.editor.buffer."...(save-e
15b7a0 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 72 xcursion.....(emms-tag-editor-er
15b7c0 61 73 65 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 ase-buffer.emms-tag-editor-log-b
15b7e0 75 66 66 65 72 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 72 61 73 uffer).....(emms-tag-editor-eras
15b800 65 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 62 75 e-buffer.emms-tag-editor-edit-bu
15b820 66 66 65 72 29 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 ffer).....(set-buffer.(get-buffe
15b840 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 62 75 66 66 65 72 29 29 0a r.emms-tag-editor-edit-buffer)).
15b860 20 20 20 20 28 6d 61 70 63 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 69 6e 73 65 ....(mapc.#'emms-tag-editor-inse
15b880 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b 73 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 rt-track.tracks).....(emms-tag-e
15b8a0 64 69 74 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 ditor-mode).....(pop-to-buffer.(
15b8c0 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 current-buffer)).....(goto-char.
15b8e0 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f (point-min)).....(emms-tag-edito
15b900 72 2d 64 69 73 70 6c 61 79 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6d 61 79 62 65 29 29 29 0a 0a 28 r-display-log-buffer-maybe)))..(
15b920 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 2d 74 61 67 66 69 6c 65 2d 66 defun.emms-tag-editor--tagfile-f
15b940 75 6e 63 74 69 6f 6e 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 76 61 6c 75 65 20 unction.(track)..."Return.value.
15b960 6f 66 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 of.`emms-tag-editor-tagfile-func
15b980 74 69 6f 6e 73 27 20 66 6f 72 20 54 52 41 43 4b 2c 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 61 73 tions'.for.TRACK,.or.nil."...(as
15b9a0 73 6f 63 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 28 65 6d 6d 73 2d 74 soc.(file-name-extension.(emms-t
15b9c0 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 rack-get.track.'name))..........
15b9e0 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 6f 6e emms-tag-editor-tagfile-function
15ba00 73 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 2d 74 72 61 s))..(defun.emms-tag-editor--tra
15ba20 63 6b 2d 65 64 69 74 61 62 6c 65 2d 70 20 28 74 72 61 63 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 ck-editable-p.(track)..."Return.
15ba40 74 20 69 66 20 54 52 41 43 4b 20 69 73 20 6e 6f 74 20 61 20 66 69 6c 65 2c 20 6f 72 20 68 61 73 t.if.TRACK.is.not.a.file,.or.has
15ba60 20 61 20 74 61 67 66 69 6c 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 65 64 2e 22 0a 20 20 .a.tagfile.function.defined."...
15ba80 28 6f 72 20 28 6e 6f 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 (or.(not.(emms-track-file-p.trac
15baa0 6b 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 2d 74 61 67 66 k)).......(emms-tag-editor--tagf
15bac0 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d ile-function.track)))..(defun.em
15bae0 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 20 ms-tag-editor-edit-track.(track.
15bb00 26 6f 70 74 69 6f 6e 61 6c 20 65 64 69 74 2d 61 6e 79 77 61 79 29 0a 20 20 22 45 64 69 74 20 74 &optional.edit-anyway)..."Edit.t
15bb20 68 65 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 2c 20 6f 72 20 54 52 41 43 4b 2e 0a 49 66 20 he.track.at.point,.or.TRACK..If.
15bb40 45 44 49 54 2d 41 4e 59 57 41 59 20 69 73 20 74 72 75 65 20 6f 72 20 54 52 41 43 4b 20 69 73 20 EDIT-ANYWAY.is.true.or.TRACK.is.
15bb60 6e 6f 74 20 61 20 66 69 6c 65 20 74 79 70 65 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 6c 6f 61 64 not.a.file.type,.it.will.be.load
15bb80 65 64 0a 69 6e 20 74 68 65 20 74 61 67 20 65 64 69 74 6f 72 2e 20 4f 74 68 65 72 77 69 73 65 2c ed.in.the.tag.editor..Otherwise,
15bba0 20 69 66 20 45 4d 4d 53 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 70 72 6f 67 72 61 6d .if.EMMS.does.not.have.a.program
15bbc0 20 63 6f 6e 66 69 67 75 72 65 64 0a 74 6f 20 61 63 74 75 61 6c 6c 79 20 77 72 69 74 65 20 74 61 .configured.to.actually.write.ta
15bbe0 67 73 20 74 6f 20 74 68 65 20 61 75 64 69 6f 20 66 69 6c 65 2c 20 64 6f 20 6e 6f 74 20 6f 70 65 gs.to.the.audio.file,.do.not.ope
15bc00 6e 20 74 68 65 20 74 61 67 20 64 61 74 61 20 69 6e 0a 74 68 65 20 65 64 69 74 6f 72 2e 22 0a 20 n.the.tag.data.in.the.editor."..
15bc20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 .(interactive.(list.(emms-tag-ed
15bc40 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 29 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 itor-track-at)))...(cond....((nu
15bc60 6c 6c 20 74 72 61 63 6b 29 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 74 72 61 63 6b 20 61 74 20 ll.track).(message."No.track.at.
15bc80 70 6f 69 6e 74 21 22 29 29 0a 20 20 20 28 28 6f 72 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 point!"))....((or.(emms-tag-edit
15bca0 6f 72 2d 2d 74 72 61 63 6b 2d 65 64 69 74 61 62 6c 65 2d 70 20 74 72 61 63 6b 29 20 65 64 69 74 or--track-editable-p.track).edit
15bcc0 2d 61 6e 79 77 61 79 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 69 6e -anyway).....(emms-tag-editor-in
15bce0 73 65 72 74 2d 74 72 61 63 6b 73 20 28 6c 69 73 74 20 74 72 61 63 6b 29 29 29 0a 20 20 20 28 74 sert-tracks.(list.track)))....(t
15bd00 20 28 6d 65 73 73 61 67 65 20 22 45 4d 4d 53 20 68 61 73 20 6e 6f 20 74 61 67 20 77 72 69 74 69 .(message."EMMS.has.no.tag.writi
15bd20 6e 67 20 70 72 6f 67 72 61 6d 20 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72 20 74 68 69 73 20 66 ng.program.configured.for.this.f
15bd40 69 6c 65 20 74 79 70 65 21 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d ile.type!"))))..(defun.emms-tag-
15bd60 65 64 69 74 6f 72 2d 65 64 69 74 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 20 28 26 6f 70 74 69 editor-edit-marked-tracks.(&opti
15bd80 6f 6e 61 6c 20 65 64 69 74 2d 61 6e 79 77 61 79 29 0a 20 20 22 45 64 69 74 20 61 6c 6c 20 74 72 onal.edit-anyway)..."Edit.all.tr
15bda0 61 63 6b 73 20 6d 61 72 6b 65 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 acks.marked.in.the.current.buffe
15bdc0 72 2e 0a 49 66 20 45 44 49 54 2d 41 4e 59 57 41 59 20 69 73 20 6e 69 6c 2c 20 66 69 6c 74 65 72 r..If.EDIT-ANYWAY.is.nil,.filter
15bde0 20 6f 75 74 20 61 6e 79 20 66 69 6c 65 20 74 72 61 63 6b 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 .out.any.file.tracks.that.do.not
15be00 20 68 61 76 65 20 61 0a 74 61 67 66 69 6c 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 65 64 .have.a.tagfile.function.defined
15be20 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 61 ."...(interactive)...(let*.((tra
15be40 63 6b 73 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 61 70 63 61 72 2d 6d 61 72 6b 65 64 2d 74 72 61 cks.(emms-mark-mapcar-marked-tra
15be60 63 6b 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 20 74 29 29 ck.'emms-tag-editor-track-at.t))
15be80 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 73 20 28 6d 61 70 63 61 72 20 23 27 65 6d 6d 73 2d ..........(funcs.(mapcar.#'emms-
15bea0 74 61 67 2d 65 64 69 74 6f 72 2d 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 tag-editor--tagfile-function.tra
15bec0 63 6b 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 65 71 2d 73 6f 6d 65 20 23 27 6e 75 6c cks))).....(when.(seq-some.#'nul
15bee0 6c 20 66 75 6e 63 73 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 64 69 74 2d 61 6e 79 77 l.funcs).......(unless.edit-anyw
15bf00 61 79 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 73 20 28 73 65 71 2d 66 69 6c ay.........(setq.tracks.(seq-fil
15bf20 74 65 72 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 2d 74 72 61 63 6b 2d 65 64 69 ter.#'emms-tag-editor--track-edi
15bf40 74 61 62 6c 65 2d 70 20 74 72 61 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 table-p.tracks)).........(messag
15bf60 65 20 22 53 6b 69 70 70 65 64 20 66 69 6c 65 20 74 72 61 63 6b 73 20 77 69 74 68 6f 75 74 20 61 e."Skipped.file.tracks.without.a
15bf80 20 74 61 67 20 77 72 69 74 69 6e 67 20 70 72 6f 67 72 61 6d 20 63 6f 6e 66 69 67 75 72 65 64 2e .tag.writing.program.configured.
15bfa0 22 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 "))).....(if.(null.tracks)......
15bfc0 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 77 72 69 74 61 62 6c 65 20 74 72 61 63 6b 20 6d ...(message."No.writable.track.m
15bfe0 61 72 6b 65 64 21 22 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d arked!").......(emms-tag-editor-
15c000 69 6e 73 65 72 74 2d 74 72 61 63 6b 73 20 74 72 61 63 6b 73 29 29 29 29 0a 0a 28 64 65 66 75 6e insert-tracks.tracks))))..(defun
15c020 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 20 28 26 6f 70 74 69 6f 6e 61 6c .emms-tag-editor-edit.(&optional
15c040 20 61 72 67 29 0a 20 20 22 45 64 69 74 20 74 61 67 73 20 6f 66 20 65 69 74 68 65 72 20 74 68 65 .arg)..."Edit.tags.of.either.the
15c060 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 6f 72 20 61 6c 6c 20 6d 61 72 6b 65 64 20 74 72 .track.at.point.or.all.marked.tr
15c080 61 63 6b 73 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 65 64 acks..With.a.prefix.argument,.ed
15c0a0 69 74 73 20 74 61 67 73 20 65 76 65 6e 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 65 78 74 its.tags.even.if.there.is.no.ext
15c0c0 65 72 6e 61 6c 0a 70 72 6f 67 72 61 6d 20 66 6f 72 20 77 72 69 74 69 6e 67 20 74 61 67 73 20 74 ernal.program.for.writing.tags.t
15c0e0 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 74 72 61 63 6b 20 6f 72 20 74 72 61 63 6b 73 2e o.the.specified.track.or.tracks.
15c100 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 69 66 20 28 65 6d 6d "...(interactive."P")...(if.(emm
15c120 73 2d 6d 61 72 6b 2d 68 61 73 2d 6d 61 72 6b 65 64 70 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d s-mark-has-markedp).......(emms-
15c140 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 20 61 72 tag-editor-edit-marked-tracks.ar
15c160 67 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 74 72 61 g).....(emms-tag-editor-edit-tra
15c180 63 6b 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 29 20 61 72 ck.(emms-tag-editor-track-at).ar
15c1a0 67 29 29 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6d 6f g)))..(defvar.emms-tag-editor-mo
15c1c0 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 de-map...(let.((map.(make-sparse
15c1e0 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 42 69 6e 64 20 74 6f -keymap))).....;;.FIXME:.Bind.to
15c200 20 22 5c 74 22 20 72 61 74 68 65 72 20 74 68 61 6e 20 5b 74 61 62 5d 20 73 6f 20 69 74 20 77 6f ."\t".rather.than.[tab].so.it.wo
15c220 72 6b 73 20 69 6e 20 74 74 79 73 20 61 73 20 77 65 6c 6c 2e 0a 20 20 20 20 28 64 65 66 69 6e 65 rks.in.ttys.as.well......(define
15c240 2d 6b 65 79 20 6d 61 70 20 5b 74 61 62 5d 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 -key.map.[tab].#'emms-tag-editor
15c260 2d 6e 65 78 74 2d 66 69 65 6c 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 -next-field).....(define-key.map
15c280 20 5b 62 61 63 6b 74 61 62 5d 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 72 65 .[backtab].#'emms-tag-editor-pre
15c2a0 76 2d 66 69 65 6c 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 v-field).....(define-key.map."\C
15c2c0 2d 63 5c 43 2d 6e 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6e 65 78 74 2d 74 -c\C-n".#'emms-tag-editor-next-t
15c2e0 72 61 63 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 2d 63 5c rack).....(define-key.map."\C-c\
15c300 43 2d 70 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 72 65 76 2d 74 72 61 63 C-p".#'emms-tag-editor-prev-trac
15c320 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 2d 63 5c 43 2d 63 k).....(define-key.map."\C-c\C-c
15c340 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 2d 61 6e 64 2d 65 ".#'emms-tag-editor-submit-and-e
15c360 78 69 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 2d 63 5c 43 xit).....(define-key.map."\C-c\C
15c380 2d 73 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 29 0a 20 20 -s".#'emms-tag-editor-submit)...
15c3a0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 2d 78 5c 43 2d 73 22 20 23 27 65 ..(define-key.map."\C-x\C-s".#'e
15c3c0 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 29 0a 20 20 20 20 28 64 65 66 69 mms-tag-editor-submit).....(defi
15c3e0 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 2d 63 5c 43 2d 72 22 20 23 27 65 6d 6d 73 2d 74 61 67 ne-key.map."\C-c\C-r".#'emms-tag
15c400 2d 65 64 69 74 6f 72 2d 73 65 74 2d 61 6c 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 -editor-set-all).....(define-key
15c420 20 6d 61 70 20 22 5c 43 2d 63 5c 43 2d 61 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f .map."\C-c\C-a".#'emms-tag-edito
15c440 72 2d 72 65 70 6c 61 63 65 2d 69 6e 2d 74 61 67 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 r-replace-in-tag).....(define-ke
15c460 79 20 6d 61 70 20 22 5c 43 2d 63 5c 43 2d 74 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 y.map."\C-c\C-t".#'emms-tag-edit
15c480 6f 72 2d 74 72 61 6e 73 70 6f 73 65 2d 74 61 67 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 or-transpose-tag).....map)..."Ke
15c4a0 79 6d 61 70 20 66 6f 72 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6d 6f 64 65 27 2e ymap.for.`emms-tag-editor-mode'.
15c4c0 22 29 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 ").(define-key.emms-playlist-mod
15c4e0 65 2d 6d 61 70 20 22 45 22 20 23 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 e-map."E".#'emms-tag-editor-edit
15c500 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 65 6d 6d 73 2d 74 61 67 )..(define-derived-mode.emms-tag
15c520 2d 65 64 69 74 6f 72 2d 6d 6f 64 65 20 74 65 78 74 2d 6d 6f 64 65 20 22 54 61 67 2d 45 64 69 74 -editor-mode.text-mode."Tag-Edit
15c540 22 0a 20 20 22 4d 61 6a 6f 72 20 6d 6f 64 65 20 74 6f 20 65 64 69 74 20 74 72 61 63 6b 20 74 61 "..."Major.mode.to.edit.track.ta
15c560 67 73 2e 0a 5c 5c 7b 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6d 6f 64 65 2d 6d 61 70 7d gs..\\{emms-tag-editor-mode-map}
15c580 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 69 6c 65 ")..(defvar.emms-tag-editor-file
15c5a0 2d 72 65 6e 61 6d 65 2d 61 6c 69 73 74 0a 20 20 27 28 28 22 2f 22 20 22 e2 81 84 22 29 20 3b 3b -rename-alist...'(("/"."...").;;
15c5c0 20 61 76 6f 69 64 20 63 68 61 72 61 63 74 65 72 73 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 66 .avoid.characters.reserved.for.f
15c5e0 69 6c 65 6e 61 6d 65 73 0a 20 20 20 20 3b 3b 20 28 22 20 22 20 22 5f 22 29 20 3b 3b 20 65 78 61 ilenames.....;;.("."."_").;;.exa
15c600 6d 70 6c 65 20 6f 66 20 61 6e 6f 74 68 65 72 20 73 75 62 73 74 69 74 75 74 69 6f 6e 0a 20 20 20 mple.of.another.substitution....
15c620 20 29 0a 20 20 22 41 6c 69 73 74 20 77 69 74 68 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 70 61 69 .)..."Alist.with.replacement.pai
15c640 72 73 20 66 6f 72 20 66 69 6c 65 6e 61 6d 65 20 72 65 6e 61 6d 69 6e 67 2e 0a 0a 46 6f 72 20 65 rs.for.filename.renaming...For.e
15c660 61 63 68 20 70 61 69 72 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 ach.pair.the.first.element.is.th
15c680 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 72 65 70 6c 61 63 65 64 2c 20 61 6e 64 20 74 68 65 e.string.to.be.replaced,.and.the
15c6a0 0a 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 .second.element.is.the.replaceme
15c6c0 6e 74 20 73 74 72 69 6e 67 2e 22 29 0a 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 nt.string.")...(defun.emms-tag-e
15c6e0 64 69 74 6f 72 2d 73 65 74 2d 61 6c 6c 20 28 74 61 67 20 76 61 6c 75 65 29 0a 20 20 22 53 65 74 ditor-set-all.(tag.value)..."Set
15c700 20 54 41 47 20 74 6f 20 56 41 4c 55 45 20 69 6e 20 61 6c 6c 20 74 72 61 63 6b 73 2e 0a 49 66 20 .TAG.to.VALUE.in.all.tracks..If.
15c720 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 20 69 73 20 74 75 72 6e 65 64 20 6f 6e transient-mark-mode.is.turned.on
15c740 2c 20 79 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 0a 61 ,.you.can.apply.the.command.to.a
15c760 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2e 0a 0a 20 49 66 20 60 74 72 61 6e 73 69 65 6e .selected.region....If.`transien
15c780 74 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 6d 61 72 6b 20 t-mark-mode'.is.on.and.the.mark.
15c7a0 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 0a 63 68 61 6e 67 65 73 20 77 69 6c 6c 20 6f 6e 6c 79 is.active,.the.changes.will.only
15c7c0 20 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 .take.effect.on.the.tracks.in.th
15c7e0 65 20 72 65 67 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 e.region."...(interactive....(li
15c800 73 74 20 28 65 6d 6d 73 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 53 65 74 20 74 61 st.(emms-completing-read."Set.ta
15c820 67 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g:."............................
15c840 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 20 20 20 20 20 ....(mapcar.(lambda.(arg).......
15c860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15c880 20 20 20 28 6c 69 73 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 61 72 67 29 29 ...(list.(symbol-name.(car.arg))
15c8a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))..............................
15c8c0 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 0a ..........emms-tag-editor-tags).
15c8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e ...............................n
15c900 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 il.t)..........(read-from-minibu
15c920 66 66 65 72 20 22 54 6f 3a 20 22 29 29 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e ffer."To:.")))...(save-excursion
15c940 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 69 66 .....(save-restriction.......(if
15c960 20 28 61 6e 64 20 6d 61 72 6b 2d 61 63 74 69 76 65 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b .(and.mark-active.transient-mark
15c980 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 -mode)...........(narrow-to-regi
15c9a0 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e on.(region-beginning).(region-en
15c9c0 64 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e d))).......(goto-char.(point-min
15c9e0 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 )).......(while.(re-search-forwa
15ca00 72 64 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 74 61 67 rd.(concat."^".(regexp-quote.tag
15ca20 29 20 22 5b 20 5c 74 5d 2b 3d 5b 20 5c 74 5d 2b 22 29 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 )."[.\t]+=[.\t]+").nil.t).......
15ca40 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 ..(delete-region.(point).(line-e
15ca60 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 76 61 nd-position)).........(insert.va
15ca80 6c 75 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 lue)))))..(defun.emms-tag-editor
15caa0 2d 72 65 70 6c 61 63 65 2d 69 6e 2d 74 61 67 20 28 74 61 67 20 66 72 6f 6d 20 74 6f 29 0a 20 20 -replace-in-tag.(tag.from.to)...
15cac0 22 51 75 65 72 79 20 61 6e 64 20 72 65 70 6c 61 63 65 20 74 65 78 74 20 69 6e 20 73 65 6c 65 63 "Query.and.replace.text.in.selec
15cae0 74 65 64 20 54 41 47 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 69 6e 66 ted.TAG..For.example,.if.the.inf
15cb00 6f 2d 74 69 74 6c 65 20 74 61 67 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 74 68 65 6e 20 6f 6e o-title.tag.is.selected,.then.on
15cb20 6c 79 20 70 65 72 66 6f 72 6d 0a 72 65 70 6c 61 63 65 6d 65 6e 74 20 69 6e 20 74 69 74 6c 65 20 ly.perform.replacement.in.title.
15cb40 74 61 67 73 2e 0a 0a 49 66 20 60 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 tags...If.`transient-mark-mode'.
15cb60 69 73 20 6f 6e 20 61 6e 64 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 is.on.and.the.mark.is.active,.th
15cb80 65 0a 63 68 61 6e 67 65 73 20 77 69 6c 6c 20 6f 6e 6c 79 20 74 61 6b 65 20 65 66 66 65 63 74 20 e.changes.will.only.take.effect.
15cba0 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 22 0a 20 20 on.the.tracks.in.the.region."...
15cbc0 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 63 6f 6e 73 20 28 65 6d 6d 73 2d 63 6f 6d 70 (interactive....(cons.(emms-comp
15cbe0 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 52 65 70 6c 61 63 65 20 69 6e 20 74 61 67 3a 20 22 0a 20 leting-read."Replace.in.tag:."..
15cc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d ..............................(m
15cc20 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 apcar.(lambda.(arg).............
15cc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
15cc60 73 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 61 72 67 29 29 29 29 0a 20 20 20 st.(symbol-name.(car.arg))))....
15cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15cca0 20 20 20 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 0a 20 20 20 20 20 20 ....emms-tag-editor-tags).......
15ccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a .........................nil.t).
15cce0 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 6f 6e 20 28 71 75 65 72 79 2d 72 65 .........(let.((common.(query-re
15cd00 70 6c 61 63 65 2d 72 65 61 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 place-read-args.................
15cd20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d ........(if.(and.transient-mark-
15cd40 6d 6f 64 65 20 6d 61 72 6b 2d 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mode.mark-active)...............
15cd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 51 75 65 72 79 20 72 65 70 6c 61 63 65 20 72 65 67 .............."Query.replace.reg
15cd80 65 78 70 20 69 6e 20 72 65 67 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 exp.in.region"..................
15cda0 20 20 20 20 20 20 20 20 20 22 51 75 65 72 79 20 72 65 70 6c 61 63 65 20 72 65 67 65 78 70 22 29 ........."Query.replace.regexp")
15cdc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 .........................t)))...
15cde0 20 20 20 20 20 20 20 20 20 28 62 75 74 6c 61 73 74 20 63 6f 6d 6d 6f 6e 20 32 29 29 29 29 0a 20 .........(butlast.common.2))))..
15ce00 20 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 70 .(let.((overlay.(make-overlay.(p
15ce20 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2b 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 oint-min).(1+.(point-min)))))...
15ce40 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 66 61 63 65 20 27 6d 61 ..(overlay-put.overlay.'face.'ma
15ce60 74 63 68 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 tch).....(unwind-protect........
15ce80 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 .(save-excursion...........(save
15cea0 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 -restriction.............(when.(
15cec0 61 6e 64 20 6d 61 72 6b 2d 61 63 74 69 76 65 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d and.mark-active.transient-mark-m
15cee0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 ode)...............(narrow-to-re
15cf00 67 69 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d gion.(region-beginning).(region-
15cf20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d end))...............(deactivate-
15cf40 6d 61 72 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 67 20 28 63 6f mark)).............(setq.tag.(co
15cf60 6e 63 61 74 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 74 61 67 29 20 22 5b 20 5c 74 5d 2b 3d ncat.(regexp-quote.tag)."[.\t]+=
15cf80 5b 20 5c 74 5d 2b 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 [.\t]+")).............(goto-char
15cfa0 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 79 .(point-min)).............(map-y
15cfc0 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 61 -or-n-p..............(lambda.(ma
15cfe0 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6f 76 65 72 6c 61 tch)................(move-overla
15d000 79 20 6f 76 65 72 6c 61 79 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d y.overlay.(match-beginning.0).(m
15d020 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 atch-end.0))................(for
15d040 6d 61 74 20 22 52 65 70 6c 61 63 65 20 25 73 20 74 6f 20 25 73 22 20 28 63 61 72 20 6d 61 74 63 mat."Replace.%s.to.%s".(car.matc
15d060 68 29 20 28 63 61 64 72 20 6d 61 74 63 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 h).(cadr.match)))..............(
15d080 6c 61 6d 62 64 61 20 28 6d 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 lambda.(match)................(d
15d0a0 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 6c 65 6e 67 74 68 20 elete-region.(-.(point).(length.
15d0c0 28 63 61 72 20 6d 61 74 63 68 29 29 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 (car.match))).(point))..........
15d0e0 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 63 61 64 72 20 6d 61 74 63 68 29 29 29 0a 20 20 20 ......(insert.(cadr.match)))....
15d100 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 ..........(lambda.()............
15d120 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 ....(if.(and.(save-excursion....
15d140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 .......................(re-searc
15d160 68 2d 62 61 63 6b 77 61 72 64 20 74 61 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 h-backward.tag.(line-beginning-p
15d180 6f 73 69 74 69 6f 6e 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 osition).t))....................
15d1a0 20 20 20 20 20 28 6e 6f 74 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 .....(not.(=.(point).(line-end-p
15d1c0 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 osition)))......................
15d1e0 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 66 72 6f 6d 20 28 6c 69 6e 65 ...(re-search-forward.from.(line
15d200 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -end-position).t))..............
15d220 20 20 20 20 20 20 28 6c 69 73 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 20 28 63 6f ......(list.(match-string.0).(co
15d240 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd..............................
15d260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6c 69 73 74 70 20 74 6f 29 0a 20 ..............((and.(listp.to)..
15d280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15d2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 28 63 61 72 20 74 6f ................(fboundp.(car.to
15d2c0 29 29 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 74 6f 29 20 28 63 64 72 20 74 6f 29 20 30 29 )).(funcall.(car.to).(cdr.to).0)
15d2e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))..............................
15d300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 ..............((string-match-p."
15d320 5c 5c 5c 5c 5b 26 5b 3a 64 69 67 69 74 3a 5d 5d 22 20 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 \\\\[&[:digit:]]".to)...........
15d340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15d360 20 20 28 6d 61 74 63 68 2d 73 75 62 73 74 69 74 75 74 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 20 ..(match-substitute-replacement.
15d380 74 6f 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 to.nil.nil))....................
15d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 ........................((string
15d3c0 70 20 74 6f 29 20 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.to).to).......................
15d3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 .....................(t.(error."
15d400 57 72 6f 6e 67 20 74 79 70 65 20 61 72 67 75 6d 65 6e 74 3a 20 73 74 72 69 6e 67 20 6f 72 20 63 Wrong.type.argument:.string.or.c
15d420 6f 6e 73 20 63 65 6c 6c 2c 20 25 73 22 20 74 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ons.cell,.%s".to))))............
15d440 20 20 20 20 20 20 28 6c 65 74 20 28 66 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(let.(found)..............
15d460 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 66 6f 75 6e 64 29 0a 20 20 ......(while.(and.(not.found)...
15d480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 .............................(re
15d4a0 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 74 61 67 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 -search-forward.tag.nil.t)).....
15d4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d .................(if.(re-search-
15d4e0 66 6f 72 77 61 72 64 20 66 72 6f 6d 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 forward.from.(line-end-position)
15d500 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 .t)..........................(se
15d520 74 71 20 66 6f 75 6e 64 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tq.found.t)))...................
15d540 20 28 61 6e 64 20 66 6f 75 6e 64 20 28 6c 69 73 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 .(and.found.(list.(match-string.
15d560 30 29 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0).(cond........................
15d580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
15d5a0 28 61 6e 64 20 28 6c 69 73 74 70 20 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (and.(listp.to).................
15d5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15d5e0 20 20 20 20 20 20 20 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 28 63 61 72 20 74 6f 29 29 20 28 ............(fboundp.(car.to)).(
15d600 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 74 6f 29 20 28 63 64 72 20 74 6f 29 20 30 29 29 29 0a 20 funcall.(car.to).(cdr.to).0)))..
15d620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15d640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 .....................((string-ma
15d660 74 63 68 2d 70 20 22 5c 5c 5c 5c 5b 26 5b 3a 64 69 67 69 74 3a 5d 5d 22 20 74 6f 29 0a 20 20 20 tch-p."\\\\[&[:digit:]]".to)....
15d680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15d6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 75 62 73 74 ....................(match-subst
15d6c0 69 74 75 74 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 20 74 6f 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 itute-replacement.to.nil.nil))..
15d6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15d700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 74 .....................((stringp.t
15d720 6f 29 20 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o).to)..........................
15d740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 .............................(t.
15d760 28 65 72 72 6f 72 20 22 57 72 6f 6e 67 20 74 79 70 65 20 61 72 67 75 6d 65 6e 74 3a 20 73 74 72 (error."Wrong.type.argument:.str
15d780 69 6e 67 20 6f 72 20 63 6f 6e 73 20 63 65 6c 6c 2c 20 25 73 22 20 74 6f 29 29 29 29 29 29 29 29 ing.or.cons.cell,.%s".to))))))))
15d7a0 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 65 72 6c 61 ))).......(delete-overlay.overla
15d7c0 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 y))))..(defun.emms-tag-editor-tr
15d7e0 61 6e 73 70 6f 73 65 2d 74 61 67 20 28 74 61 67 31 20 74 61 67 32 29 0a 20 20 22 54 72 61 6e 73 anspose-tag.(tag1.tag2)..."Trans
15d800 70 6f 73 65 20 76 61 6c 75 65 20 6f 66 20 54 41 47 31 20 61 6e 64 20 54 41 47 32 2e 0a 49 66 20 pose.value.of.TAG1.and.TAG2..If.
15d820 60 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 20 61 6e 64 20 `transient-mark-mode'.is.on.and.
15d840 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 0a 63 68 61 6e 67 65 73 20 the.mark.is.active,.the.changes.
15d860 77 69 6c 6c 20 6f 6e 6c 79 20 74 61 6b 65 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 74 72 61 will.only.take.effect.on.the.tra
15d880 63 6b 73 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 cks.in.the.region."...(interacti
15d8a0 76 65 0a 20 20 20 28 6c 65 74 2a 20 28 28 74 61 67 31 20 28 69 6e 74 65 72 6e 20 28 65 6d 6d 73 ve....(let*.((tag1.(intern.(emms
15d8c0 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -completing-read................
15d8e0 20 20 20 20 20 20 20 20 20 20 22 54 61 67 20 31 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........."Tag.1:.".............
15d900 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 61 72 .............(mapcar.(lambda.(ar
15d920 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g)..............................
15d940 20 20 20 20 20 20 28 6c 69 73 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 61 72 ......(list.(symbol-name.(car.ar
15d960 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g))))...........................
15d980 20 20 20 20 20 20 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 0a 20 20 20 .......emms-tag-editor-tags)....
15d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 29 29 0a 20 ......................nil.t)))..
15d9c0 20 20 20 20 20 20 20 20 20 28 74 61 67 32 20 28 69 6e 74 65 72 6e 20 28 65 6d 6d 73 2d 63 6f 6d .........(tag2.(intern.(emms-com
15d9e0 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pleting-read....................
15da00 20 20 20 20 20 20 22 54 61 67 20 32 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"Tag.2:.".................
15da20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 .........(mapcar.(lambda.(arg)..
15da40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15da60 20 20 28 6c 69 73 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 61 72 67 29 29 29 ..(list.(symbol-name.(car.arg)))
15da80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
15daa0 20 20 20 28 61 73 73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...(assq-delete-all.............
15dac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 67 31 0a 20 20 20 20 20 ......................tag1......
15dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f .............................(co
15db00 70 79 2d 73 65 71 75 65 6e 63 65 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 py-sequence.emms-tag-editor-tags
15db20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c )))..........................nil
15db40 20 74 29 29 29 29 0a 20 20 20 20 20 28 6c 69 73 74 20 74 61 67 31 20 74 61 67 32 29 29 29 0a 20 .t))))......(list.tag1.tag2)))..
15db60 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 .(save-excursion.....(save-restr
15db80 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6d 61 72 6b 2d 61 63 74 69 76 iction.......(if.(and.mark-activ
15dba0 65 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 e.transient-mark-mode)..........
15dbc0 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e .(narrow-to-region.(region-begin
15dbe0 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a ning).(region-end))).......(let*
15dc00 20 28 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 74 29 0a 20 20 20 .((emms-playlist-buffer-p.t)....
15dc20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ..........(tracks.(emms-playlist
15dc40 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 -tracks-in-region.(point-min)...
15dc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 ...................(point-max)))
15dca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 ..............(inhibit-read-only
15dcc0 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 6d 70 29 0a 20 20 20 20 20 20 20 20 28 .t)..............temp).........(
15dce0 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 74 erase-buffer).........(dolist.(t
15dd00 72 61 63 6b 20 28 6e 72 65 76 65 72 73 65 20 74 72 61 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 rack.(nreverse.tracks)).........
15dd20 20 20 28 73 65 74 71 20 74 65 6d 70 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 ..(setq.temp.(emms-track-get.tra
15dd40 63 6b 20 74 61 67 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d ck.tag1))...........(emms-track-
15dd60 73 65 74 20 74 72 61 63 6b 20 74 61 67 31 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 set.track.tag1.(emms-track-get.t
15dd80 72 61 63 6b 20 74 61 67 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 rack.tag2))...........(emms-trac
15dda0 6b 2d 73 65 74 20 74 72 61 63 6b 20 74 61 67 32 20 74 65 6d 70 29 0a 20 20 20 20 20 20 20 20 20 k-set.track.tag2.temp)..........
15ddc0 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 74 61 67 2d 6d 6f 64 69 .(emms-track-set.track.'tag-modi
15dde0 66 69 65 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 fied.t)...........(emms-tag-edit
15de00 6f 72 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 29 29 29 29 29 0a 0a 28 64 65 or-insert-track.track))))))..(de
15de20 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 67 75 65 73 73 2d 74 61 67 2d 66 69 fun.emms-tag-editor-guess-tag-fi
15de40 6c 65 6e 61 6d 65 20 28 70 61 74 74 65 72 6e 20 66 75 6c 6c 6e 61 6d 65 29 0a 20 20 22 41 20 70 lename.(pattern.fullname)..."A.p
15de60 61 74 74 65 72 6e 20 69 73 20 61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20 5c 22 25 61 2d 25 74 2d attern.is.a.string.like.\"%a-%t-
15de80 25 79 5c 22 20 77 68 69 63 68 20 73 74 61 6e 64 20 66 6f 72 0a 74 68 65 20 66 69 6c 65 20 6e 61 %y\".which.stand.for.the.file.na
15dea0 6d 65 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 79 20 61 72 74 69 73 74 2c 20 74 69 74 me.is.constructed.by.artist,.tit
15dec0 6c 65 2c 20 79 65 61 72 20 77 69 74 68 20 73 65 70 65 72 61 74 6f 72 20 27 2d 27 2e 0a 73 65 65 le,.year.with.seperator.'-'..see
15dee0 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 63 6f 6d 70 69 6c 65 2d 70 61 74 74 65 72 .`emms-tag-editor-compile-patter
15df00 6e 27 20 66 6f 72 20 64 65 74 61 69 6c 20 61 62 6f 75 74 20 70 61 74 74 65 72 6e 20 73 79 6e 74 n'.for.detail.about.pattern.synt
15df20 61 78 2e 0a 41 76 61 69 6c 61 62 6c 65 20 74 61 67 73 20 61 72 65 20 6c 69 73 74 20 69 6e 20 60 ax..Available.tags.are.list.in.`
15df40 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 27 2e 0a 0a 69 66 20 77 69 74 68 20 emms-tag-editor-tags'...if.with.
15df60 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e prefix.argument,.the.information
15df80 20 77 69 6c 6c 20 65 78 74 72 61 63 74 20 66 72 6f 6d 20 66 75 6c 6c 0a 6e 61 6d 65 2c 20 6f 74 .will.extract.from.full.name,.ot
15dfa0 68 65 72 77 69 73 65 20 6a 75 73 74 20 6d 61 74 63 68 20 69 6e 20 66 69 6c 65 20 6e 61 6d 65 2e herwise.just.match.in.file.name.
15dfc0 0a 0a 41 6e 20 65 78 61 6d 70 6c 65 20 74 6f 20 67 75 65 73 73 20 74 61 67 20 66 72 6f 6d 20 66 ..An.example.to.guess.tag.from.f
15dfe0 69 6c 65 20 6e 61 6d 65 2c 20 77 68 69 63 68 20 74 68 65 20 66 69 6c 65 20 64 69 72 65 63 74 6f ile.name,.which.the.file.directo
15e000 72 79 20 69 73 0a 74 68 65 20 61 72 69 74 69 73 74 20 61 6e 64 20 66 69 6c 65 20 6e 61 6d 65 20 ry.is.the.aritist.and.file.name.
15e020 69 73 20 74 68 65 20 74 69 74 6c 65 2e 20 49 74 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 6c 69 6b is.the.title..It.can.be.done.lik
15e040 65 3a 0a 43 2d 75 20 4d 2d 78 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 67 75 65 73 73 e:.C-u.M-x.emms-tag-editor-guess
15e060 2d 74 61 67 2d 66 69 6c 65 6e 61 6d 65 20 52 45 54 0a 25 7b 61 3a 5b 5e 2f 5d 2b 7d 2f 25 7b 74 -tag-filename.RET.%{a:[^/]+}/%{t
15e080 3a 5b 5e 2f 5d 2b 7d 5c 2e 6d 70 33 20 52 45 54 0a 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 :[^/]+}\.mp3.RET."...(interactiv
15e0a0 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 e....(list.....(read-from-minibu
15e0c0 66 66 65 72 20 28 66 6f 72 6d 61 74 20 22 4d 61 74 63 68 20 69 6e 20 25 73 66 69 6c 65 20 6e 61 ffer.(format."Match.in.%sfile.na
15e0e0 6d 65 28 43 2d 68 20 66 6f 72 20 68 65 6c 70 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 me(C-h.for.help):.".............
15e100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 75 72 72 65 6e ......................(if.curren
15e120 74 2d 70 72 65 66 69 78 2d 61 72 67 20 22 46 55 4c 4c 20 22 20 22 22 29 29 0a 20 20 20 20 20 20 t-prefix-arg."FULL."."")).......
15e140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 09 09 09 20 20 28 6c 65 ....................nil......(le
15e160 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 09 t.((map.(make-sparse-keymap)))..
15e180 09 09 20 20 20 20 28 73 65 74 2d 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 6d 61 70 20 6d 69 6e ......(set-keymap-parent.map.min
15e1a0 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 70 29 0a 09 09 09 20 20 20 20 28 64 65 66 69 6e ibuffer-local-map)........(defin
15e1c0 65 2d 6b 65 79 20 6d 61 70 20 22 5c 43 2d 68 22 0a 09 09 09 09 09 28 6c 61 6d 62 64 61 20 28 29 e-key.map."\C-h"......(lambda.()
15e1e0 0a 09 09 09 09 09 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 09 09 09 09 09 20 20 28 77 69 ........(interactive)........(wi
15e200 74 68 2d 6f 75 74 70 75 74 2d 74 6f 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 2a 48 65 6c 70 2a th-output-to-temp-buffer."*Help*
15e220 22 0a 09 09 09 09 09 20 20 20 20 28 70 72 69 6e 63 0a 09 09 09 09 09 20 20 20 20 20 22 41 20 70 "..........(princ..........."A.p
15e240 61 74 74 65 72 6e 20 69 73 20 61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20 5c 22 25 61 2d 25 74 2d attern.is.a.string.like.\"%a-%t-
15e260 25 79 5c 22 20 77 68 69 63 68 20 73 74 61 6e 64 20 66 6f 72 0a 74 68 65 20 66 69 6c 65 20 6e 61 %y\".which.stand.for.the.file.na
15e280 6d 65 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 79 20 61 72 74 69 73 74 2c 20 74 69 74 me.is.constructed.by.artist,.tit
15e2a0 6c 65 2c 20 79 65 61 72 20 77 69 74 68 20 73 65 70 65 72 61 74 6f 72 20 27 2d 27 2e 0a 73 65 65 le,.year.with.seperator.'-'..see
15e2c0 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 63 6f 6d 70 69 6c 65 2d 70 61 74 74 65 72 .`emms-tag-editor-compile-patter
15e2e0 6e 27 20 66 6f 72 20 64 65 74 61 69 6c 20 61 62 6f 75 74 20 70 61 74 74 65 72 6e 20 73 79 6e 74 n'.for.detail.about.pattern.synt
15e300 61 78 2e 0a 0a 41 76 61 69 6c 61 62 6c 65 20 74 61 67 73 20 61 72 65 3a 0a 22 29 0a 09 09 09 09 ax...Available.tags.are:.").....
15e320 09 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 09 09 09 09 09 09 20 .....(mapc.(lambda.(tag)........
15e340 20 20 20 28 70 72 69 6e 63 20 28 66 6f 72 6d 61 74 20 22 5c 74 25 73 20 2d 20 25 53 5c 6e 22 20 ...(princ.(format."\t%s.-.%S\n".
15e360 28 63 64 72 20 74 61 67 29 20 28 63 61 72 20 74 61 67 29 29 29 29 0a 09 09 09 09 09 09 20 20 65 (cdr.tag).(car.tag)))).........e
15e380 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 0a 09 09 09 09 09 20 20 20 20 28 77 mms-tag-editor-tags)..........(w
15e3a0 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 74 61 6e 64 61 72 64 2d 6f 75 74 70 ith-current-buffer.standard-outp
15e3c0 75 74 0a 09 09 09 09 09 20 20 20 20 20 20 28 68 65 6c 70 2d 6d 6f 64 65 29 29 29 29 29 0a 09 09 ut............(help-mode)))))...
15e3e0 09 20 20 20 20 6d 61 70 29 29 0a 20 20 20 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 .....map)).....current-prefix-ar
15e400 67 29 29 0a 20 20 28 73 65 74 71 20 70 61 74 74 65 72 6e 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 g))...(setq.pattern.(emms-tag-ed
15e420 69 74 6f 72 2d 63 6f 6d 70 69 6c 65 2d 70 61 74 74 65 72 6e 20 70 61 74 74 65 72 6e 29 29 0a 20 itor-compile-pattern.pattern))..
15e440 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 .(save-excursion.....(save-restr
15e460 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6d 61 72 6b 2d 61 63 74 69 76 iction.......(if.(and.mark-activ
15e480 65 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 e.transient-mark-mode)..........
15e4a0 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e .(narrow-to-region.(region-begin
15e4c0 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a ning).(region-end))).......(let*
15e4e0 20 28 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 62 75 66 66 65 72 2d 70 20 74 29 0a 20 20 20 .((emms-playlist-buffer-p.t)....
15e500 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 73 20 28 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 ..........(tracks.(emms-playlist
15e520 2d 74 72 61 63 6b 73 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 -tracks-in-region.(point-min)...
15e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 ...................(point-max)))
15e580 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 ..............(inhibit-read-only
15e5a0 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 .t)..............filename)......
15e5c0 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 ...(erase-buffer).........(dolis
15e5e0 74 20 28 74 72 61 63 6b 20 28 6e 72 65 76 65 72 73 65 20 74 72 61 63 6b 73 29 29 0a 20 20 20 20 t.(track.(nreverse.tracks)).....
15e600 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 74 61 67 ......(emms-track-set.track.'tag
15e620 2d 6d 6f 64 69 66 69 65 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c -modified.t)...........(setq.fil
15e640 65 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 ename.(emms-track-name.track))..
15e660 20 20 20 20 20 20 20 20 20 28 6f 72 20 66 75 6c 6c 6e 61 6d 65 20 28 73 65 74 71 20 66 69 6c 65 .........(or.fullname.(setq.file
15e680 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c name.(file-name-nondirectory.fil
15e6a0 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 ename)))...........(when.(string
15e6c0 2d 6d 61 74 63 68 20 28 63 61 72 20 70 61 74 74 65 72 6e 29 20 66 69 6c 65 6e 61 6d 65 29 0a 20 -match.(car.pattern).filename)..
15e6e0 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 0a ...........(mapc.(lambda.(pair).
15e700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d ....................(emms-track-
15e720 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 0a 20 set......................track..
15e740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 72 61 73 73 6f 63 ....................(car.(rassoc
15e760 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 61 72 20 70 61 69 72 29 29 0a 20 20 20 .(char-to-string.(car.pair))....
15e780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 ...............................e
15e7a0 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 mms-tag-editor-tags))...........
15e7c0 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 28 63 64 72 20 70 61 ...........(match-string.(cdr.pa
15e7e0 69 72 29 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ir).filename))).................
15e800 20 20 28 63 64 72 20 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d ..(cdr.pattern)))...........(emm
15e820 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 69 6e 73 65 72 74 2d 74 72 61 63 6b 20 74 72 61 63 6b 29 s-tag-editor-insert-track.track)
15e840 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 63 6f )))))..(defun.emms-tag-editor-co
15e860 6d 70 69 6c 65 2d 70 61 74 74 65 72 6e 20 28 70 61 74 74 65 72 6e 29 0a 20 20 22 41 20 70 61 74 mpile-pattern.(pattern)..."A.pat
15e880 74 65 72 6e 20 74 6f 20 72 65 67 65 78 70 20 63 6f 6e 76 65 72 74 6f 72 2e 20 5c 22 25 61 2d 25 tern.to.regexp.convertor..\"%a-%
15e8a0 7b 62 3a 5b 61 2d 7a 5d 2b 7d 5c 22 20 77 69 6c 6c 20 63 6f 6d 70 69 6c 65 20 74 6f 0a 5c 22 5c {b:[a-z]+}\".will.compile.to.\"\
15e8c0 5c 28 5b 5e 2d 5d 2b 5c 5c 29 2d 5c 5c 28 5b 61 2d 7a 5d 2b 5c 5c 29 5c 22 2e 22 0a 20 20 28 6c \([^-]+\\)-\\([a-z]+\\)\"."...(l
15e8e0 65 74 20 28 28 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 20 30 29 0a et.((index.0).........(paren.0).
15e900 20 20 20 20 20 20 20 20 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 6c 65 6e 67 ........(i.0).........(len.(leng
15e920 74 68 20 70 61 74 74 65 72 6e 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 64 20 22 th.pattern)).........(compiled."
15e940 22 29 0a 20 20 20 20 20 20 20 20 72 65 67 69 73 74 65 72 73 20 72 65 67 69 73 74 65 72 20 6d 61 ").........registers.register.ma
15e960 74 63 68 0a 20 20 20 20 20 20 20 20 65 73 63 61 70 65 20 63 29 0a 20 20 20 20 28 77 68 69 6c 65 tch.........escape.c).....(while
15e980 20 28 3c 20 69 20 6c 65 6e 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 61 72 65 66 20 70 .(<.i.len).......(setq.c.(aref.p
15e9a0 61 74 74 65 72 6e 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 20 28 31 2b 20 69 29 29 0a attern.i).............i.(1+.i)).
15e9c0 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 63 20 3f 5c 5c 29 0a 20 20 20 20 20 20 20 20 20 ......(cond.((=.c.?\\)..........
15e9e0 20 20 20 20 28 73 65 74 71 20 63 20 28 61 72 65 66 20 70 61 74 74 65 72 6e 20 69 29 0a 20 20 20 ....(setq.c.(aref.pattern.i)....
15ea00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 28 31 2b 20 69 29 29 0a 20 20 20 20 20 20 ................i.(1+.i)).......
15ea20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 63 20 3f 5c 28 29 0a 20 20 20 20 20 20 20 20 .......(cond.((=.c.?\().........
15ea40 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 20 28 31 2b 20 70 61 72 65 ............(setq.paren.(1+.pare
15ea60 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 n)...........................ind
15ea80 65 78 20 28 31 2b 20 69 6e 64 65 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ex.(1+.index))).................
15eaa0 20 20 20 28 28 3d 20 63 20 3f 5c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...((=.c.?\))...................
15eac0 20 20 28 73 65 74 71 20 70 61 72 65 6e 20 28 31 2d 20 70 61 72 65 6e 29 29 29 29 0a 20 20 20 20 ..(setq.paren.(1-.paren)))).....
15eae0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 69 6c 65 64 20 28 63 6f 6e 63 61 74 20 .........(setq.compiled.(concat.
15eb00 63 6f 6d 70 69 6c 65 64 20 22 5c 5c 22 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 compiled."\\".(char-to-string.c)
15eb20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 63 20 3f 25 29 0a 20 20 20 20 20 20 ))).............((=.c.?%).......
15eb40 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 61 72 65 66 20 70 61 74 74 65 72 6e 20 69 29 0a .......(setq.c.(aref.pattern.i).
15eb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 28 31 2b 20 69 29 29 0a 20 20 20 ...................i.(1+.i))....
15eb80 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 6f 77 20 74 6f 20 72 65 70 72 65 73 73 65 6e 74 20 7d ..........;;.How.to.repressent.}
15eba0 20 69 6e 20 74 68 65 20 70 61 74 74 65 72 6e 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 .in.the.pattern?..............(i
15ebc0 66 20 28 3d 20 63 20 3f 7b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 f.(=.c.?{)..................(if.
15ebe0 28 2f 3d 20 28 61 72 65 66 20 70 61 74 74 65 72 6e 20 28 31 2b 20 69 29 29 20 3f 3a 29 0a 20 20 (/=.(aref.pattern.(1+.i)).?:)...
15ec00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 6d 70 69 ...................(error."Compi
15ec20 6c 65 20 65 72 72 6f 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 le.error")....................(s
15ec40 65 74 71 20 72 65 67 69 73 74 65 72 20 28 61 72 65 66 20 70 61 74 74 65 72 6e 20 69 29 0a 20 20 etq.register.(aref.pattern.i)...
15ec60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 22 22 0a .......................match."".
15ec80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 28 2b 20 69 20 .........................i.(+.i.
15eca0 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 2))....................(while.(a
15ecc0 6e 64 20 28 3c 20 69 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.(<.i.len)....................
15ece0 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 65 73 63 61 70 65 20 28 2f 3d 20 28 61 72 65 66 ............(or.escape.(/=.(aref
15ed00 20 70 61 74 74 65 72 6e 20 69 29 20 3f 7d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .pattern.i).?})))...............
15ed20 20 20 20 20 20 20 20 28 69 66 20 65 73 63 61 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(if.escape...............
15ed40 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 73 63 61 70 65 20 6e 69 6c 29 0a 20 20 20 ...........(setq.escape.nil)....
15ed60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 61 72 65 66 ....................(if.(=.(aref
15ed80 20 70 61 74 74 65 72 6e 20 69 29 20 3f 5c 5c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .pattern.i).?\\)................
15eda0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 73 63 61 70 65 20 74 29 29 29 0a 20 20 ............(setq.escape.t)))...
15edc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 74 63 68 20 28 ...................(setq.match.(
15ede0 63 6f 6e 63 61 74 20 6d 61 74 63 68 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 61 72 concat.match.(char-to-string.(ar
15ee00 65 66 20 70 61 74 74 65 72 6e 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ef.pattern.i))).................
15ee20 20 20 20 20 20 20 20 20 20 20 20 69 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ...........i.(1+.i)))...........
15ee40 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 20 20 .........(setq.i.(1+.i))).......
15ee60 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 67 69 73 74 65 72 20 63 0a 20 20 20 20 20 20 .........(setq.register.c.......
15ee80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 22 5b 5e 2d 5d 2b 22 29 29 0a 20 ...............match."[^-]+"))..
15eea0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 69 6c 65 64 20 28 63 6f 6e 63 ............(setq.compiled.(conc
15eec0 61 74 20 63 6f 6d 70 69 6c 65 64 20 22 5c 5c 28 22 20 6d 61 74 63 68 20 22 5c 5c 29 22 29 0a 20 at.compiled."\\(".match."\\)")..
15eee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 20 28 31 2b 20 69 6e 64 65 ..................index.(1+.inde
15ef00 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 72 65 67 x))..............(push.(cons.reg
15ef20 69 73 74 65 72 20 69 6e 64 65 78 29 20 72 65 67 69 73 74 65 72 73 29 29 0a 20 20 20 20 20 20 20 ister.index).registers))........
15ef40 20 20 20 20 20 28 74 20 28 73 65 74 71 20 63 6f 6d 70 69 6c 65 64 20 28 63 6f 6e 63 61 74 20 63 .....(t.(setq.compiled.(concat.c
15ef60 6f 6d 70 69 6c 65 64 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 29 29 29 29 29 0a ompiled.(char-to-string.c)))))).
15ef80 20 20 20 20 28 69 66 20 28 2f 3d 20 70 61 72 65 6e 20 30 29 20 28 65 72 72 6f 72 20 22 50 61 72 ....(if.(/=.paren.0).(error."Par
15efa0 65 6e 20 6e 6f 74 20 6d 61 74 63 68 21 22 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 63 6f 6d 70 69 en.not.match!")).....(cons.compi
15efc0 6c 65 64 20 72 65 67 69 73 74 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 led.registers)))..(defun.emms-ta
15efe0 67 2d 65 64 69 74 6f 72 2d 6e 65 78 74 2d 66 69 65 6c 64 20 28 61 72 67 29 0a 20 20 22 4d 6f 76 g-editor-next-field.(arg)..."Mov
15f000 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 74 61 67 20 66 69 65 6c 64 2e 22 0a 20 20 28 69 6e 74 e.to.the.next.tag.field."...(int
15f020 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 eractive."p")...(if.(>.arg.0)...
15f040 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 73 2d 2a 3d 5b 20 ....(re-search-forward."\\s-*=[.
15f060 5c 74 5d 2a 22 20 6e 69 6c 20 6e 69 6c 20 61 72 67 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 \t]*".nil.nil.arg).....(emms-tag
15f080 2d 65 64 69 74 6f 72 2d 70 72 65 76 2d 66 69 65 6c 64 20 28 2d 20 61 72 67 29 29 29 29 0a 0a 28 -editor-prev-field.(-.arg))))..(
15f0a0 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 72 65 76 2d 66 69 65 6c 64 defun.emms-tag-editor-prev-field
15f0c0 20 28 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 .(arg)..."Move.to.the.previous.t
15f0e0 61 67 20 66 69 65 6c 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 ag.field."...(interactive."p")..
15f100 20 28 69 66 20 28 3c 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 .(if.(<.arg.0).......(emms-tag-e
15f120 64 69 74 6f 72 2d 6e 65 78 74 2d 66 69 65 6c 64 20 28 2d 20 61 72 67 29 29 0a 20 20 20 20 28 73 ditor-next-field.(-.arg)).....(s
15f140 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c 74 3d 22 29 0a 20 20 20 20 28 kip-chars-backward.".\t=").....(
15f160 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5c 5c 73 2d 2a 3d 5b 20 5c 74 5d 2a re-search-backward."\\s-*=[.\t]*
15f180 22 20 6e 69 6c 20 6e 69 6c 20 61 72 67 29 0a 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 ".nil.nil.arg).....(skip-chars-f
15f1a0 6f 72 77 61 72 64 20 22 20 5c 74 3d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 orward.".\t=")))..(defun.emms-ta
15f1c0 67 2d 65 64 69 74 6f 72 2d 70 72 65 76 2d 74 72 61 63 6b 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 g-editor-prev-track.()..."Move.t
15f1e0 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 o.the.previous.track."...(intera
15f200 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 70 72 65 76 20 28 70 72 65 76 69 6f 75 73 2d 73 ctive)...(let.((prev.(previous-s
15f220 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 0a 20 20 ingle-property-change.(point)...
15f240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15f260 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 .............'emms-track))).....
15f280 28 77 68 65 6e 20 28 6e 6f 74 20 70 72 65 76 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e (when.(not.prev).......(error."N
15f2a0 6f 20 70 72 65 76 69 6f 75 73 20 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e o.previous.track")).....(when.(n
15f2c0 6f 74 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 72 65 76 20 27 65 6d 6d 73 ot.(get-text-property.prev.'emms
15f2e0 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 20 28 6f 72 20 28 70 -track)).......(setq.prev.(or.(p
15f300 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 70 revious-single-property-change.p
15f320 72 65 76 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rev.'emms-track)................
15f340 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 ......(point-min)))).....(when.(
15f360 6f 72 20 28 6e 6f 74 20 70 72 65 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 or.(not.prev)...............(not
15f380 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 72 65 76 20 27 65 6d 6d 73 2d 74 .(get-text-property.prev.'emms-t
15f3a0 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 70 72 65 76 69 6f 75 rack))).......(error."No.previou
15f3c0 73 20 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 72 65 76 29 29 s.track")).....(goto-char.prev))
15f3e0 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6e 65 78 74 2d 74 )..(defun.emms-tag-editor-next-t
15f400 72 61 63 6b 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 rack.()..."Move.to.the.next.trac
15f420 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6e 65 78 k."...(interactive)...(let.((nex
15f440 74 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 t.(next-single-property-change.(
15f460 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 point)..........................
15f480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 ..................'emms-track)))
15f4a0 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6e 65 78 74 29 0a 20 20 20 20 20 20 28 65 72 72 .....(when.(not.next).......(err
15f4c0 6f 72 20 22 4e 6f 20 6e 65 78 74 20 74 72 61 63 6b 22 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 or."No.next.track")).....(when.(
15f4e0 6e 6f 74 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 6e 65 78 74 20 27 65 6d 6d not.(get-text-property.next.'emm
15f500 73 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 6e 65 78 74 s-track)).......(setq.next.(next
15f520 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 6e 65 78 74 20 27 65 6d -single-property-change.next.'em
15f540 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 6e ms-track))).....(when.(or.(not.n
15f560 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 6e 65 78 74 20 28 70 6f 69 6e ext)...............(=.next.(poin
15f580 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 74 t-max))).......(error."No.next.t
15f5a0 72 61 63 6b 22 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6e 65 78 74 29 29 29 0a 0a rack")).....(goto-char.next)))..
15f5c0 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 74 20 28 61 (defun.emms-tag-editor-submit.(a
15f5e0 72 67 29 0a 20 20 22 4d 61 6b 65 20 6d 6f 64 69 66 69 65 64 20 74 61 67 73 20 74 61 6b 65 20 61 rg)..."Make.modified.tags.take.a
15f600 66 66 65 63 74 2e 0a 57 69 74 68 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 62 75 72 ffect..With.prefix.argument,.bur
15f620 79 20 74 68 65 20 74 61 67 20 65 64 69 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 y.the.tag.edit.buffer."...(inter
15f640 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 73 20 28 66 75 6e active."P")...(let.((tracks.(fun
15f660 63 61 6c 6c 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 61 72 73 65 2d 66 75 6e 63 74 call.emms-tag-editor-parse-funct
15f680 69 6f 6e 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 61 6e 64 20 74 72 61 63 6b 73 20 ion))).....(if.(not.(and.tracks.
15f6a0 28 79 2d 6f 72 2d 6e 2d 70 20 22 53 75 62 6d 69 74 20 63 68 61 6e 67 65 73 3f 20 22 29 29 29 0a (y-or-n-p."Submit.changes?."))).
15f6c0 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 74 61 67 73 20 77 65 72 65 20 6d ........(message."No.tags.were.m
15f6e0 6f 64 69 66 69 65 64 22 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 odified").......(emms-tag-editor
15f700 2d 65 72 61 73 65 2d 62 75 66 66 65 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f -erase-buffer.emms-tag-editor-lo
15f720 67 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 g-buffer).......(emms-tag-editor
15f740 2d 61 70 70 6c 79 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 -apply.tracks).......(emms-cache
15f760 2d 73 61 76 65 29 29 29 0a 20 20 28 77 68 65 6e 20 61 72 67 20 28 62 75 72 79 2d 62 75 66 66 65 -save)))...(when.arg.(bury-buffe
15f780 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 61 70 70 r)))..(defun.emms-tag-editor-app
15f7a0 6c 79 20 28 74 72 61 63 6b 73 29 0a 20 20 22 41 70 70 6c 79 20 61 6c 6c 20 63 68 61 6e 67 65 73 ly.(tracks)..."Apply.all.changes
15f7c0 20 6d 61 64 65 20 74 6f 20 54 52 41 43 4b 53 2e 22 0a 20 20 28 6d 65 73 73 61 67 65 20 22 53 65 .made.to.TRACKS."...(message."Se
15f7e0 74 74 69 6e 67 20 74 61 67 73 2e 2e 2e 22 29 0a 20 20 28 6c 65 74 20 28 66 69 6c 65 6e 61 6d 65 tting.tags...")...(let.(filename
15f800 20 66 75 6e 63 20 65 78 69 74 20 6f 6c 64 20 70 6f 73 20 76 61 6c 20 6e 65 65 64 2d 73 79 6e 63 .func.exit.old.pos.val.need-sync
15f820 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 64 6f 6c ).....(save-excursion.......(dol
15f840 69 73 74 20 28 74 72 61 63 6b 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e ist.(track.tracks).........(when
15f860 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 61 67 2d 6d 6f 64 69 .(emms-track-get.track.'tag-modi
15f880 66 69 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 6e 61 6d 65 20 28 fied)...........(setq.filename.(
15f8a0 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 emms-track-name.track)..........
15f8c0 20 20 20 20 20 20 20 6f 6c 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b .......old.(emms-track-get.track
15f8e0 20 27 6f 72 69 67 2d 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6e 61 .'orig-track))...........;;.rena
15f900 6d 65 20 6c 6f 63 61 6c 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 me.local.file...........(when.(a
15f920 6e 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 6e 65 77 6e 61 6d nd.(emms-track-get.track.'newnam
15f940 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 e)......................(emms-tr
15f960 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ack-file-p.track)...............
15f980 20 20 20 20 20 20 20 28 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 20 28 65 6d 6d 73 2d 74 72 .......(file-writable-p.(emms-tr
15f9a0 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ack-name.track))................
15f9c0 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 52 65 6e 61 6d 65 20 ......(y-or-n-p.(format."Rename.
15f9e0 25 73 20 74 6f 20 25 73 3f 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %s.to.%s?.".....................
15fa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e ...................(emms-track-n
15fa20 61 6d 65 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame.track)......................
15fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 ..................(emms-track-ge
15fa60 74 20 74 72 61 63 6b 20 27 6e 65 77 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 t.track.'newname))))............
15fa80 20 28 73 65 74 71 20 66 69 6c 65 6e 61 6d 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 .(setq.filename.(emms-track-get.
15faa0 74 72 61 63 6b 20 27 6e 65 77 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 track.'newname)).............(ig
15fac0 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 nore-errors...............;;.if.
15fae0 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 27 20 `emms-tag-editor-rename-format'.
15fb00 69 73 20 6c 69 6b 65 20 22 25 61 2f 25 6c 2f 25 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 is.like."%a/%l/%t",.............
15fb20 20 20 3b 3b 20 77 65 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20 64 69 72 65 63 ..;;.we.may.need.to.create.direc
15fb40 74 6f 72 79 20 66 69 72 73 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 tory.first................(let.(
15fb60 28 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 6e 61 (dir.(file-name-directory.filena
15fb80 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 69 72 20 me))).................(when.dir.
15fba0 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 20 74 29 29 29 0a 20 20 20 20 20 20 20 (make-directory.dir.t)))........
15fbc0 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 65 72 72 6f 72 73 20 73 6f 20 74 68 61 74 20 .......;;.Ignore.errors.so.that.
15fbe0 72 65 6e 61 6d 69 6e 67 20 6d 75 6c 74 69 70 6c 65 20 66 69 6c 65 73 20 64 6f 65 73 6e 27 74 20 renaming.multiple.files.doesn't.
15fc00 73 74 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 63 61 75 73 65 20 6f 66 stop...............;;.because.of
15fc20 20 6f 6e 65 20 74 68 61 74 20 66 61 69 6c 73 2e 20 20 49 6e 20 74 68 61 74 20 63 61 73 65 20 69 .one.that.fails...In.that.case.i
15fc40 74 27 73 20 70 72 6f 62 61 62 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6c t's.probably...............;;.ol
15fc60 64 2d 66 69 6c 65 20 3d 20 6e 65 77 66 69 6c 65 20 77 68 69 63 68 20 63 61 75 73 65 73 20 74 68 d-file.=.newfile.which.causes.th
15fc80 65 20 70 72 6f 62 6c 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6e 61 6d 65 e.problem................(rename
15fca0 2d 66 69 6c 65 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 20 66 69 -file.(emms-track-name.track).fi
15fcc0 6c 65 6e 61 6d 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 lename.1)).............(emms-tra
15fce0 63 6b 2d 73 65 74 20 6f 6c 64 20 27 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 ck-set.old.'name.filename)......
15fd00 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 72 65 2d 65 6e 74 65 72 20 74 68 69 73 20 66 75 6e 63 .......;;.for.re-enter.this.func
15fd20 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 tion.............(emms-track-set
15fd40 20 74 72 61 63 6b 20 27 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 .track.'name.filename)..........
15fd60 20 20 20 28 73 65 74 71 20 6e 65 65 64 2d 73 79 6e 63 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 ...(setq.need-sync.t)...........
15fd80 20 20 3b 3b 20 72 65 67 69 73 74 65 72 20 74 6f 20 65 6d 6d 73 2d 63 61 63 68 65 2d 64 62 0a 20 ..;;.register.to.emms-cache-db..
15fda0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 65 6d 6d 73 ...........(when.(functionp.emms
15fdc0 2d 63 61 63 68 65 2d 6d 6f 64 69 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 -cache-modified-function).......
15fde0 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 2d 6d 6f 64 69 ........(funcall.emms-cache-modi
15fe00 66 69 65 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 fied-function)...............(fu
15fe20 6e 63 61 6c 6c 20 65 6d 6d 73 2d 63 61 63 68 65 2d 73 65 74 2d 66 75 6e 63 74 69 6f 6e 20 27 66 ncall.emms-cache-set-function.'f
15fe40 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 6f 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 ile.filename.old)))...........(e
15fe60 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 6e 65 77 6e 61 6d 65 20 6e 69 6c mms-track-set.track.'newname.nil
15fe80 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 65 74 20 74 61 67 73 20 74 6f 20 6f 72 69 67 69 )...........;;.set.tags.to.origi
15fea0 6e 61 6c 20 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 74 61 67 nal.track...........(dolist.(tag
15fec0 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 0a 20 20 20 20 20 20 20 20 20 .emms-tag-editor-tags)..........
15fee0 20 20 20 28 77 68 65 6e 20 28 73 65 74 71 20 76 61 6c 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 ...(when.(setq.val.(emms-track-g
15ff00 65 74 20 74 72 61 63 6b 20 28 63 61 72 20 74 61 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 et.track.(car.tag)))............
15ff20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 6f 6c 64 20 28 63 61 72 20 74 61 67 29 ...(emms-track-set.old.(car.tag)
15ff40 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 65 20 65 78 74 65 72 6e 61 .val)))...........;;.use.externa
15ff60 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20 63 68 61 6e 67 65 20 74 61 67 73 20 69 6e 20 74 68 65 20 l.program.to.change.tags.in.the.
15ff80 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6d 6d 73 2d file...........(when.(and.(emms-
15ffa0 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 track-file-p.track).............
15ffc0 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 20 28 65 6d 6d 73 2d .........(file-writable-p.(emms-
15ffe0 74 72 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 track-name.track))..............
160000 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 75 6e 63 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 ........(setq.func.(emms-tag-edi
160020 74 6f 72 2d 2d 74 61 67 66 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 6b 29 29 29 0a 20 tor--tagfile-function.track)))..
160040 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 69 74 0a 20 20 20 20 20 20 20 20 20 20 ...........(setq.exit...........
160060 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 28 63 64 72 20 66 75 6e 63 ........(if.(functionp.(cdr.func
160080 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c )).......................(funcal
1600a0 6c 20 28 63 64 72 20 66 75 6e 63 29 20 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 l.(cdr.func).track).............
1600c0 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 2d 66 69 6c ........(emms-tag-editor-tag-fil
1600e0 65 20 74 72 61 63 6b 20 28 63 61 64 72 20 66 75 6e 63 29 20 28 6e 74 68 20 32 20 66 75 6e 63 29 e.track.(cadr.func).(nth.2.func)
160100 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a 65 .filename))).............(if.(ze
160120 72 6f 70 20 65 78 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d rop.exit).................(emms-
160140 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 69 6e 66 6f 2d 6d 74 69 6d 65 20 28 62 75 74 track-get.track.'info-mtime.(but
160160 6c 61 73 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 last.(current-time)))...........
160180 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 0a 20 20 20 20 20 20 20 ....(emms-tag-editor-log........
1601a0 20 20 20 20 20 20 20 20 22 43 68 61 6e 67 69 6e 67 20 74 61 67 73 20 6f 66 20 25 73 20 66 61 69 ........"Changing.tags.of.%s.fai
1601c0 6c 65 64 20 77 69 74 68 20 65 78 69 74 20 76 61 6c 75 65 20 25 64 22 0a 20 20 20 20 20 20 20 20 led.with.exit.value.%d".........
1601e0 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 20 65 78 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 .......filename.exit))).........
160200 20 20 3b 3b 20 75 70 64 61 74 65 20 74 72 61 63 6b 20 69 6e 20 70 6c 61 79 6c 69 73 74 0a 20 20 ..;;.update.track.in.playlist...
160220 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 65 74 71 20 70 6f 73 20 28 65 6d ........(when.(and.(setq.pos.(em
160240 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 70 6f 73 69 74 69 6f 6e 29 29 0a 20 ms-track-get.track.'position))..
160260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 ....................(marker-posi
160280 74 69 6f 6e 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 tion.pos)).............(set-buff
1602a0 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 er.(marker-buffer.pos)).........
1602c0 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(goto-char.pos).............
1602e0 28 66 75 6e 63 61 6c 6c 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 75 70 64 61 74 65 2d 74 72 (funcall.emms-playlist-update-tr
160300 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6c 65 61 ack-function))...........;;.clea
160320 72 20 6d 6f 64 69 66 69 65 64 20 74 61 67 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 r.modified.tag...........(emms-t
160340 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 74 61 67 2d 6d 6f 64 69 66 69 65 64 20 6e 69 6c rack-set.track.'tag-modified.nil
160360 29 29 29 29 0a 20 20 20 20 3b 3b 20 73 79 6e 63 20 74 68 65 20 63 61 63 68 65 0a 20 20 20 20 28 )))).....;;.sync.the.cache.....(
160380 77 68 65 6e 20 6e 65 65 64 2d 73 79 6e 63 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 63 61 63 68 65 when.need-sync.......(emms-cache
1603a0 2d 73 79 6e 63 20 6e 69 6c 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6d 6d 73 2d 74 61 -sync.nil)).....(unless.(emms-ta
1603c0 67 2d 65 64 69 74 6f 72 2d 64 69 73 70 6c 61 79 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6d 61 79 62 g-editor-display-log-buffer-mayb
1603e0 65 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 65 74 74 69 6e 67 20 74 61 67 73 2e e).......(message."Setting.tags.
160400 2e 2e 64 6f 6e 65 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 ..done"))))..(defun.emms-tag-edi
160420 74 6f 72 2d 73 75 62 6d 69 74 2d 61 6e 64 2d 65 78 69 74 20 28 29 0a 20 20 22 53 75 62 6d 69 74 tor-submit-and-exit.()..."Submit
160440 20 63 68 61 6e 67 65 73 20 74 6f 20 74 72 61 63 6b 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e .changes.to.track.information.an
160460 64 20 65 78 69 74 20 74 68 65 20 74 61 67 20 65 64 69 74 6f 72 2e 22 0a 20 20 28 69 6e 74 65 72 d.exit.the.tag.editor."...(inter
160480 61 63 74 69 76 65 29 0a 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 73 75 62 6d 69 active)...(emms-tag-editor-submi
1604a0 74 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 64 65 t.t))..(defun.emms-tag-editor-de
1604c0 66 61 75 6c 74 2d 70 61 72 73 65 72 20 28 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 75 6e 63 74 fault-parser.()..."Default.funct
1604e0 69 6f 6e 20 75 73 65 64 20 74 6f 20 70 61 72 73 65 20 74 61 67 73 20 69 6e 20 60 65 6d 6d 73 2d ion.used.to.parse.tags.in.`emms-
160500 74 61 67 2d 65 64 69 74 6f 72 2d 65 64 69 74 2d 62 75 66 66 65 72 27 2e 22 0a 20 20 28 6c 65 74 tag-editor-edit-buffer'."...(let
160520 20 28 6e 65 78 74 20 74 72 61 63 6b 73 20 74 72 61 63 6b 20 6b 65 79 20 76 61 6c 29 0a 20 20 20 .(next.tracks.track.key.val)....
160540 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 69 66 .(goto-char.(point-min)).....(if
160560 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 65 6d 6d .(get-text-property.(point).'emm
160580 73 2d 74 72 61 63 6b 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 70 6f 69 s-track).........(setq.next.(poi
1605a0 6e 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 6e 65 78 74 2d 73 69 6e 67 nt)).......(setq.next.(next-sing
1605c0 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 le-property-change.(point)......
1605e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
160600 20 20 20 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 72 61 63 6b 29 29 29 0a 20 20 20 20 28 77 68 65 .........'emms-track))).....(whe
160620 6e 20 6e 65 78 74 0a 20 20 20 20 20 20 28 77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 n.next.......(while...........(p
160640 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6e 65 78 74 rogn.............(goto-char.next
160660 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 20 28 67 65 74 2d 74 ).............(setq.track.(get-t
160680 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 65 6d 6d 73 2d 74 72 61 63 6b ext-property.(point).'emms-track
1606a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a )).............(forward-line.1).
1606c0 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 ............(mapc.(lambda.(pair)
1606e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 .....................(when.(stri
160700 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 73 2d 2a 3d 5c 5c 73 2d 2a 22 20 70 61 69 72 29 0a 20 20 20 ng-match."\\s-*=\\s-*".pair)....
160720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 69 6e ...................(setq.key.(in
160740 74 65 72 6e 2d 73 6f 66 74 20 28 73 75 62 73 74 72 69 6e 67 20 70 61 69 72 20 30 20 28 6d 61 74 tern-soft.(substring.pair.0.(mat
160760 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-beginning.0)))...............
160780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 70 61 69 ..............val.(substring.pai
1607a0 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(match-end.0)))...............
1607c0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 ........(when.(and.key..........
1607e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f ........................(let.((o
160800 6c 64 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 6b 65 79 29 29 29 0a ld.(emms-track-get.track.key))).
160820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
160840 20 20 20 28 69 66 20 6f 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(if.old......................
160860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 ..................(not.(string=.
160880 76 61 6c 20 6f 6c 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 val.old)).......................
1608a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3c 20 22 22 20 76 61 6c 29 29 ...............(string<."".val))
1608c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 )).........................(if.(
1608e0 65 71 20 6b 65 79 20 27 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eq.key.'name)...................
160900 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 ..........(emms-track-set.track.
160920 27 6e 65 77 6e 61 6d 65 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'newname.val)...................
160940 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 6b 65 ........(emms-track-set.track.ke
160960 79 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.val)).........................
160980 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 74 61 67 2d 6d 6f 64 69 66 (emms-track-set.track.'tag-modif
1609a0 69 65 64 20 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 ied.t))))...................(let
1609c0 20 28 28 65 6e 64 2d 70 6f 69 6e 74 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 .((end-point.(next-single-proper
1609e0 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ty-change.......................
160a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 65 6d 6d 73 2d 74 72 61 63 ..............(point).'emms-trac
160a20 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e k))).....................(if.(an
160a40 64 20 65 6e 64 2d 70 6f 69 6e 74 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 d.end-point.(save-excursion.....
160a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
160a80 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 .....(goto-char.end-point)......
160aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
160ac0 20 20 20 20 28 62 6f 6c 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(bolp)))....................
160ae0 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 65 6e 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 .....(setq.next.end-point)......
160b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 .................(progn.........
160b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 6e 69 6c 0a 20 ................(setq.next.nil..
160b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 .............................end
160b60 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 -point.(point-max))))...........
160b80 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 62 75 66 66 65 72 2d ..........(split-string.(buffer-
160ba0 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 65 6e 64 2d 70 6f 69 6e 74 29 0a 20 20 20 substring.(point).end-point)....
160bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ..............................."
160be0 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 6d 6d 73 2d 74 72 61 \n"))).............(if.(emms-tra
160c00 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 27 74 61 67 2d 6d 6f 64 69 66 69 65 64 29 0a 20 20 20 20 ck-get.track.'tag-modified).....
160c20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 74 72 61 63 6b 20 74 72 61 63 6b 73 29 29 ............(push.track.tracks))
160c40 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 74 72 61 63 6b 73 .............next)).......tracks
160c60 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 6c 6f 67 20 )))..(defun.emms-tag-editor-log.
160c80 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 (&rest.args)...(with-current-buf
160ca0 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 65 6d 6d 73 2d 74 61 67 2d fer.(get-buffer-create.emms-tag-
160cc0 65 64 69 74 6f 72 2d 6c 6f 67 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 editor-log-buffer).....(goto-cha
160ce0 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 61 70 70 6c r.(point-max)).....(insert.(appl
160d00 79 20 23 27 66 6f 72 6d 61 74 20 61 72 67 73 29 20 22 5c 6e 22 29 29 29 0a 0a 3b 3b 0a 3b 3b 20 y.#'format.args)."\n")))..;;.;;.
160d20 52 65 6e 61 6d 69 6e 67 20 66 69 6c 65 73 20 61 63 63 6f 72 64 69 6e 67 20 74 68 65 69 72 20 74 Renaming.files.according.their.t
160d40 61 67 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d ags.;;..(defvar.emms-tag-editor-
160d60 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 20 22 25 61 20 2d 20 25 6c 20 2d 20 25 6e 20 2d 20 25 74 rename-format."%a.-.%l.-.%n.-.%t
160d80 22 0a 20 20 22 57 68 65 6e 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d "..."When.`emms-tag-editor-renam
160da0 65 27 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 68 65 20 74 72 61 63 6b 27 73 20 66 69 6c 65 20 77 e'.is.invoked.the.track's.file.w
160dc0 69 6c 6c 0a 62 65 20 72 65 6e 61 6d 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 68 69 73 20 66 6f ill.be.renamed.according.this.fo
160de0 72 6d 61 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 20 20 54 68 65 20 66 69 6c 65 0a 65 78 rmat.specification...The.file.ex
160e00 74 65 6e 73 69 6f 6e 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 61 75 74 6f 6d 61 74 69 63 61 tension.will.be.added.automatica
160e20 6c 6c 79 2e 0a 0a 49 74 20 75 73 65 73 20 74 68 65 20 66 6f 72 6d 61 74 20 73 70 65 63 73 20 64 lly...It.uses.the.format.specs.d
160e40 65 66 69 6e 65 64 20 69 6e 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 27 efined.in.`emms-tag-editor-tags'
160e60 2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 .")..(defun.emms-tag-editor-rena
160e80 6d 65 20 28 29 0a 20 20 22 52 65 6e 61 6d 65 20 74 68 65 20 66 69 6c 65 20 63 6f 72 72 65 73 70 me.()..."Rename.the.file.corresp
160ea0 6f 6e 64 69 6e 67 20 74 6f 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 6f 72 20 61 6c 6c 20 onding.to.track.at.point.or.all.
160ec0 6d 61 72 6b 65 64 0a 74 72 61 63 6b 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 marked.tracks.according.to.the.v
160ee0 61 6c 75 65 20 6f 66 0a 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d alue.of.`emms-tag-editor-rename-
160f00 66 6f 72 6d 61 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 format'."...(interactive)...(if.
160f20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 68 61 73 2d 6d 61 72 6b 65 64 70 29 0a 20 20 20 20 20 20 28 65 (emms-mark-has-markedp).......(e
160f40 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 6d 61 72 6b 65 64 2d 74 72 61 mms-tag-editor-rename-marked-tra
160f60 63 6b 73 29 0a 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 cks).....(emms-tag-editor-rename
160f80 2d 74 72 61 63 6b 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 -track.(emms-tag-editor-track-at
160fa0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 66 69 6c ))))..(defun.emms-tag-editor-fil
160fc0 65 6e 61 6d 65 2d 72 65 70 6c 61 63 65 2d 73 74 72 69 6e 67 73 20 28 73 74 72 29 0a 20 20 22 52 ename-replace-strings.(str)..."R
160fe0 65 70 6c 61 63 65 20 73 75 62 73 74 72 69 6e 67 73 20 6f 66 20 53 54 52 20 61 6e 64 20 74 68 65 eplace.substrings.of.STR.and.the
161000 6e 20 72 65 74 75 72 6e 20 53 54 52 2e 0a 0a 52 65 70 6c 61 63 65 6d 65 6e 74 20 69 73 20 64 6f n.return.STR...Replacement.is.do
161020 6e 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 ne.according.to.`emms-tag-editor
161040 2d 66 69 6c 65 2d 72 65 6e 61 6d 65 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 6d 61 70 63 0a 20 20 -file-rename-alist'."...(mapc...
161060 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 66 72 6f 6d .(lambda.(pair)......(let.((from
161080 20 28 63 61 72 20 70 61 69 72 29 29 0a 09 20 20 20 28 74 6f 20 20 20 28 63 61 64 72 20 70 61 69 .(car.pair)).....(to...(cadr.pai
1610a0 72 29 29 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 72 20 28 73 74 72 69 6e 67 2d 72 65 r)))........(setq.str.(string-re
1610c0 70 6c 61 63 65 20 66 72 6f 6d 20 74 6f 20 73 74 72 29 29 29 29 0a 20 20 20 65 6d 6d 73 2d 74 61 place.from.to.str))))....emms-ta
1610e0 67 2d 65 64 69 74 6f 72 2d 66 69 6c 65 2d 72 65 6e 61 6d 65 2d 61 6c 69 73 74 29 0a 20 20 73 74 g-editor-file-rename-alist)...st
161100 72 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d r)..(defun.emms-tag-editor-renam
161120 65 2d 74 72 61 63 6b 20 28 74 72 61 63 6b 20 26 6f 70 74 69 6f 6e 61 6c 20 64 6f 6e 74 2d 61 70 e-track.(track.&optional.dont-ap
161140 70 6c 79 29 0a 20 20 22 52 65 6e 61 6d 65 20 54 52 41 43 4b 27 73 20 66 69 6c 65 20 61 63 63 6f ply)..."Rename.TRACK's.file.acco
161160 72 64 69 6e 67 20 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f rding.`emms-tag-editor-rename-fo
161180 72 6d 61 74 27 73 0a 76 61 6c 75 65 2e 0a 0a 49 66 20 44 4f 4e 54 2d 41 50 50 4c 59 20 69 73 20 rmat's.value...If.DONT-APPLY.is.
1611a0 6e 6f 6e 2d 6e 69 6c 20 74 68 65 20 63 68 61 6e 67 65 73 20 77 6f 6e 27 74 20 62 65 20 61 70 70 non-nil.the.changes.won't.be.app
1611c0 6c 69 65 64 20 64 69 72 65 63 74 6c 79 2e 0a 54 68 65 6e 20 69 74 27 73 20 74 68 65 20 63 61 6c lied.directly..Then.it's.the.cal
1611e0 6c 65 72 73 20 6a 6f 62 20 74 6f 20 61 70 70 6c 79 20 74 68 65 6d 20 61 66 74 65 72 77 61 72 64 lers.job.to.apply.them.afterward
161200 73 20 77 69 74 68 0a 60 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 61 70 70 6c 79 27 2e 22 s.with.`emms-tag-editor-apply'."
161220 0a 20 20 28 69 66 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 63 6b 29 ...(if.(emms-track-file-p.track)
161240 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6f 6c 64 2d 66 69 6c 65 20 28 65 6d 6d 73 2d 74 72 .......(let*.((old-file.(emms-tr
161260 61 63 6b 2d 6e 61 6d 65 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 ack-name.track))..............(p
161280 61 74 68 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 6f 6c 64 ath.....(file-name-directory.old
1612a0 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 66 66 69 78 20 20 20 28 -file))..............(suffix...(
1612c0 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 6f 6c 64 2d 66 69 6c 65 29 29 0a 20 file-name-extension.old-file))..
1612e0 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 66 69 6c 65 20 28 63 6f 6e 63 61 74 0a 20 20 ............(new-file.(concat...
161300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 74 68 0a 20 20 20 20 20 ......................path......
161320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 73 70 65 63 0a ...................(format-spec.
161340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 74 61 .........................emms-ta
161360 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 g-editor-rename-format..........
161380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 66 6f 72 6d 61 74 2d ................(apply.#'format-
1613a0 73 70 65 63 2d 6d 61 6b 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 spec-make.......................
1613c0 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 0a 20 20 20 20 20 20 ..........(apply.#'append.......
1613e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
161400 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(mapcar........................
161420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 61 67 29 0a 20 .................(lambda.(tag)..
161440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
161460 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 63 68 61 72 20 28 .........(list.(string-to-char.(
161480 63 64 72 20 74 61 67 29 29 0a 09 09 09 09 09 09 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 2d cdr.tag)).......(let.((filename-
1614a0 65 6c 65 6d 65 6e 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 28 63 element.(emms-track-get.track.(c
1614c0 61 72 20 74 61 67 29 29 29 29 0a 09 09 09 09 09 09 20 20 28 69 66 20 66 69 6c 65 6e 61 6d 65 2d ar.tag)))).........(if.filename-
1614e0 65 6c 65 6d 65 6e 74 0a 09 09 09 09 09 09 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 element.............(emms-tag-ed
161500 69 74 6f 72 2d 66 69 6c 65 6e 61 6d 65 2d 72 65 70 6c 61 63 65 2d 73 74 72 69 6e 67 73 20 66 69 itor-filename-replace-strings.fi
161520 6c 65 6e 61 6d 65 2d 65 6c 65 6d 65 6e 74 29 0a 09 09 09 09 09 09 20 20 20 20 22 22 29 29 29 29 lename-element)...........""))))
161540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
161560 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 61 67 73 29 29 29 .........emms-tag-editor-tags)))
161580 29 0a 09 09 09 22 2e 22 20 73 75 66 66 69 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 )....".".suffix))).........(emms
1615a0 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 6b 20 27 6e 65 77 6e 61 6d 65 20 6e 65 77 2d 66 69 -track-set.track.'newname.new-fi
1615c0 6c 65 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 73 65 74 20 74 72 61 63 le).........(emms-track-set.trac
1615e0 6b 20 27 74 61 67 2d 6d 6f 64 69 66 69 65 64 20 74 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 k.'tag-modified.t).........(unle
161600 73 73 20 64 6f 6e 74 2d 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 ss.dont-apply...........(emms-ta
161620 67 2d 65 64 69 74 6f 72 2d 61 70 70 6c 79 20 28 6c 69 73 74 20 74 72 61 63 6b 29 29 29 29 0a 20 g-editor-apply.(list.track))))..
161640 20 20 20 28 6d 65 73 73 61 67 65 20 22 4f 6e 6c 79 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 72 ...(message."Only.files.can.be.r
161660 65 6e 61 6d 65 64 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 enamed.")))..(defun.emms-tag-edi
161680 74 6f 72 2d 72 65 6e 61 6d 65 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 73 20 28 29 0a 20 20 22 52 tor-rename-marked-tracks.()..."R
1616a0 65 6e 61 6d 65 20 74 68 65 20 66 69 6c 65 73 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f ename.the.files.corresponding.to
1616c0 20 61 6c 6c 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 20 61 63 63 6f 72 64 69 6e 67 0a 60 65 6d .all.marked.tracks.according.`em
1616e0 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 66 6f 72 6d 61 74 27 73 20 76 61 ms-tag-editor-rename-format's.va
161700 6c 75 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 61 63 6b 73 20 28 65 6d 6d 73 2d 6d 61 72 6b lue."...(let.((tracks.(emms-mark
161720 2d 6d 61 70 63 61 72 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 -mapcar-marked-track............
161740 20 20 20 20 20 20 27 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 20 ......'emms-tag-editor-track-at.
161760 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 t))).....(if.(null.tracks)......
161780 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 74 72 61 63 6b 20 6d 61 72 6b 65 64 21 22 29 0a ...(message."No.track.marked!").
1617a0 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 74 72 61 63 6b 20 74 72 61 63 6b 73 29 0a 20 20 20 ......(dolist.(track.tracks)....
1617c0 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 2d 74 72 61 .....(emms-tag-editor-rename-tra
1617e0 63 6b 20 74 72 61 63 6b 20 74 29 29 0a 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 ck.track.t)).......(emms-tag-edi
161800 74 6f 72 2d 61 70 70 6c 79 20 74 72 61 63 6b 73 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6b 65 tor-apply.tracks))))..(define-ke
161820 79 20 65 6d 6d 73 2d 70 6c 61 79 6c 69 73 74 2d 6d 6f 64 65 2d 6d 61 70 20 22 52 22 20 23 27 65 y.emms-playlist-mode-map."R".#'e
161840 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 72 65 6e 61 6d 65 29 0a 0a 28 64 65 66 76 61 72 20 mms-tag-editor-rename)..(defvar.
161860 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 69 70 65 2d 63 6f 6e 66 69 67 0a 20 20 27 28 emms-tag-editor-pipe-config...'(
161880 28 22 6d 69 64 33 69 63 6f 6e 76 20 2d 65 20 67 62 6b 20 3c 66 69 6c 65 3e 22 0a 20 20 20 20 20 ("mid3iconv.-e.gbk.<file>"......
1618a0 3a 63 6f 6d 6d 61 6e 64 20 22 6d 69 64 33 69 63 6f 6e 76 22 0a 20 20 20 20 20 3a 61 72 67 75 6d :command."mid3iconv"......:argum
1618c0 65 6e 74 73 20 28 22 2d 65 22 20 22 67 62 6b 22 20 6e 61 6d 65 29 29 29 0a 20 20 22 43 6f 6e 66 ents.("-e"."gbk".name)))..."Conf
1618e0 69 67 20 6f 66 20 74 61 67 20 65 64 69 74 6f 72 20 70 69 70 65 2e 0a 0a 41 20 70 69 70 65 20 69 ig.of.tag.editor.pipe...A.pipe.i
161900 73 20 64 65 66 69 6e 65 64 20 6c 69 6b 65 20 62 65 6c 6f 77 3a 0a 0a 20 20 28 5c 22 70 69 70 65 s.defined.like.below:....(\"pipe
161920 72 2d 6e 61 6d 65 5c 22 20 3a 63 6f 6d 6d 61 6e 64 20 78 78 78 20 3a 61 72 67 75 6d 65 6e 74 73 r-name\".:command.xxx.:arguments
161940 20 78 78 78 29 0a 0a 3a 63 6f 6d 6d 61 6e 64 20 69 73 20 61 20 63 6f 6d 6d 61 6e 64 20 73 74 72 .xxx)..:command.is.a.command.str
161960 69 6e 67 2c 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 74 20 63 68 61 6e 67 65 ing,.this.command.can.not.change
161980 20 66 69 6c 65 20 6e 61 6d 65 2e 0a 3a 61 72 67 75 6d 65 6e 74 73 20 69 73 20 61 20 6c 69 73 74 .file.name..:arguments.is.a.list
1619a0 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 20 6c 69 73 74 2c 20 66 6f 72 20 .or.a.function.return.list,.for.
1619c0 65 78 61 6d 70 6c 65 3a 0a 0a 20 20 28 5c 22 2d 2d 74 72 61 63 6b 2d 6e 61 6d 65 5c 22 20 6e 61 example:....(\"--track-name\".na
1619e0 6d 65 20 28 5c 22 2d 2d 79 65 61 72 5c 22 20 69 6e 66 6f 2d 79 65 61 72 29 29 0a 20 20 28 6c 61 me.(\"--year\".info-year))...(la
161a00 6d 62 64 61 20 28 74 72 61 63 6b 29 20 28 6c 69 73 74 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 6e mbda.(track).(list.(emms-track-n
161a20 61 6d 65 20 74 72 61 63 6b 20 5c 5c 3d 27 6e 61 6d 65 29 29 29 0a 0a 31 2e 20 73 79 6d 62 6f 6c ame.track.\\='name)))..1..symbol
161a40 73 20 63 61 6e 20 62 65 20 5c 5c 3d 27 6e 61 6d 65 20 6f 72 20 65 6c 65 6d 65 6e 74 73 20 6f 66 s.can.be.\\='name.or.elements.of
161a60 20 28 6d 61 70 63 61 72 20 5c 5c 3d 27 63 61 72 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 .(mapcar.\\='car.emms-tag-editor
161a80 2d 74 61 67 73 29 2c 0a 20 20 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 -tags),....which.will.be.replace
161aa0 64 20 74 6f 20 74 72 61 63 6b 20 69 6e 66 6f 20 62 65 66 6f 72 65 20 72 75 6e 20 63 6f 6d 6d 61 d.to.track.info.before.run.comma
161ac0 6e 64 2e 0a 32 2e 20 73 75 62 6c 69 73 74 20 75 73 65 64 20 74 6f 20 64 65 61 6c 20 77 69 74 68 nd..2..sublist.used.to.deal.with
161ae0 20 67 72 6f 75 70 20 61 72 67 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 28 5c 22 2d 2d 79 .group.args,.for.example,.(\"--y
161b00 65 61 72 5c 22 20 69 6e 66 6f 2d 79 65 61 72 29 2c 20 77 68 65 6e 0a 20 20 20 74 72 61 63 6b 5c ear\".info-year),.when....track\
161b20 5c 3d 27 73 20 69 6e 66 6f 2d 79 65 61 72 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 5c 22 2d 2d 79 \='s.info-year.is.nil,.the.\"--y
161b40 65 61 72 5c 22 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 74 6f 6f 2e 22 29 0a 0a 28 64 ear\".will.be.removed.too.")..(d
161b60 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 69 70 65 2d 67 65 74 20 28 70 efun.emms-tag-editor-pipe-get.(p
161b80 69 70 65 2d 6e 61 6d 65 20 6b 65 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 70 69 70 65 20 76 61 ipe-name.key)..."Get.the.pipe.va
161ba0 6c 75 65 20 6f 66 20 4b 45 59 20 6e 61 6d 65 64 20 50 49 50 45 2d 4e 41 4d 45 20 69 6e 20 60 65 lue.of.KEY.named.PIPE-NAME.in.`e
161bc0 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 69 70 65 2d 63 6f 6e 66 69 67 5c 5c 3d 27 2e 22 mms-tag-editor-pipe-config\\='."
161be0 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 66 69 67 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 ...(let.((config.emms-tag-editor
161c00 2d 70 69 70 65 2d 63 6f 6e 66 69 67 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 -pipe-config)).....(plist-get.(c
161c20 64 72 20 28 61 73 73 6f 63 20 70 69 70 65 2d 6e 61 6d 65 20 63 6f 6e 66 69 67 29 29 20 6b 65 79 dr.(assoc.pipe-name.config)).key
161c40 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 69 70 65 )))..(defun.emms-tag-editor-pipe
161c60 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 61 6e 64 20 72 75 6e 20 70 69 70 65 20 63 6f 6d 6d 61 .()..."Select.and.run.pipe.comma
161c80 6e 64 20 74 6f 20 74 72 61 63 6b 20 61 74 20 70 6f 69 6e 74 20 6f 72 20 61 6c 6c 20 6d 61 72 6b nd.to.track.at.point.or.all.mark
161ca0 65 64 20 74 72 61 63 6b 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c ed.tracks."...(interactive)...(l
161cc0 65 74 2a 20 28 28 70 69 70 65 2d 6e 61 6d 65 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 et*.((pipe-name.(completing-read
161ce0 20 22 50 6c 65 61 73 65 20 63 68 6f 6f 73 65 20 70 69 70 65 3a 20 22 20 65 6d 6d 73 2d 74 61 67 ."Please.choose.pipe:.".emms-tag
161d00 2d 65 64 69 74 6f 72 2d 70 69 70 65 2d 63 6f 6e 66 69 67 29 29 29 0a 20 20 20 20 28 77 68 65 6e -editor-pipe-config))).....(when
161d20 20 70 69 70 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 69 66 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d .pipe-name.......(if.(emms-mark-
161d40 68 61 73 2d 6d 61 72 6b 65 64 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 has-markedp)...........(emms-tag
161d60 2d 65 64 69 74 6f 72 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 2d 70 69 70 65 20 70 69 70 65 2d 6e -editor-marked-track-pipe.pipe-n
161d80 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 ame).........(emms-tag-editor-tr
161da0 61 63 6b 2d 70 69 70 65 0a 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 ack-pipe..........(emms-tag-edit
161dc0 6f 72 2d 74 72 61 63 6b 2d 61 74 29 20 70 69 70 65 2d 6e 61 6d 65 29 29 29 29 29 0a 0a 28 64 65 or-track-at).pipe-name)))))..(de
161de0 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 70 69 70 65 20 28 fun.emms-tag-editor-track-pipe.(
161e00 74 72 61 63 6b 20 70 69 70 65 2d 6e 61 6d 65 29 0a 20 20 22 52 75 6e 20 63 6f 6d 6d 61 6e 64 20 track.pipe-name)..."Run.command.
161e20 6f 66 20 70 69 70 65 20 6e 61 6d 65 65 64 20 50 49 50 45 2d 4e 41 4d 45 20 74 6f 20 54 52 41 43 of.pipe.nameed.PIPE-NAME.to.TRAC
161e40 4b 2e 22 0a 20 20 28 69 66 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 66 69 6c 65 2d 70 20 74 72 61 K."...(if.(emms-track-file-p.tra
161e60 63 6b 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d ck).......(let*.((coding-system-
161e80 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 for-read.'utf-8)..............(c
161ea0 6f 6d 6d 61 6e 64 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 69 70 65 2d 67 65 74 ommand.(emms-tag-editor-pipe-get
161ec0 20 70 69 70 65 2d 6e 61 6d 65 20 3a 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 .pipe-name.:command))...........
161ee0 20 20 20 28 61 72 67 75 6d 65 6e 74 73 20 28 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 70 ...(arguments.(emms-tag-editor-p
161f00 69 70 65 2d 67 65 74 20 70 69 70 65 2d 6e 61 6d 65 20 3a 61 72 67 75 6d 65 6e 74 73 29 29 29 0a ipe-get.pipe-name.:arguments))).
161f20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 61 72 67 75 6d 65 6e ........(when.(functionp.argumen
161f40 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 75 6d 65 6e 74 73 20 28 66 ts)...........(setq.arguments.(f
161f60 75 6e 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 72 61 63 6b 29 29 29 0a 20 20 20 20 20 20 uncall.arguments.track))).......
161f80 20 20 28 73 65 74 71 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(setq.arguments...............
161fa0 28 77 68 65 6e 20 28 6c 69 73 74 70 20 61 72 67 75 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 (when.(listp.arguments).........
161fc0 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(mapcar.................
161fe0 20 23 27 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .#'(lambda.(x)..................
162000 20 20 20 20 28 63 6f 6e 64 20 28 28 73 79 6d 62 6f 6c 70 20 78 29 0a 20 20 20 20 20 20 20 20 20 ....(cond.((symbolp.x)..........
162020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 ...................(emms-track-g
162040 65 74 20 74 72 61 63 6b 20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.track.x))....................
162060 20 20 20 20 20 20 20 20 28 28 6c 69 73 74 70 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........((listp.x)..............
162080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 69 73 74 20 28 6d 61 70 63 ...............(let.((list.(mapc
1620a0 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar..............................
1620c0 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 79 29 0a 20 20 20 20 20 20 ............#'(lambda.(y).......
1620e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
162100 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 79 29 0a 20 20 20 20 20 20 20 20 20 .......(if.(symbolp.y)..........
162120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
162140 20 20 20 20 20 20 20 20 28 65 6d 6d 73 2d 74 72 61 63 6b 2d 67 65 74 20 74 72 61 63 6b 20 79 29 ........(emms-track-get.track.y)
162160 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
162180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................y)).............
1621a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 29 29 .............................x))
1621c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
1621e0 28 69 66 20 28 6d 65 6d 62 65 72 20 6e 69 6c 20 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 (if.(member.nil.list)...........
162200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 ........................(list.ni
162220 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l)..............................
162240 20 20 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...list)))......................
162260 20 20 20 20 20 20 28 74 20 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 ......(t.x)))..................a
162280 72 67 75 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 75 6d 65 rguments))).........(setq.argume
1622a0 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 61 74 74 65 6e 2d 74 72 65 65 0a nts...............(flatten-tree.
1622c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 20 28 6c 69 73 74 20 6e 69 6c ...............(remove.(list.nil
1622e0 29 20 61 72 67 75 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 ).arguments))).........(if.(and.
162300 63 6f 6d 6d 61 6e 64 20 28 6c 69 73 74 70 20 61 72 67 75 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 command.(listp.arguments))......
162320 20 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 6e 69 6c 20 61 72 67 75 6d 65 6e 74 73 .......(if.(member.nil.arguments
162340 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 57 61 72 6e ).................(message."Warn
162360 3a 20 73 6b 69 70 20 72 75 6e 20 25 53 22 20 28 73 74 72 69 6e 67 2d 6a 6f 69 6e 20 60 28 2c 63 :.skip.run.%S".(string-join.`(,c
162380 6f 6d 6d 61 6e 64 20 2c 40 28 72 65 6d 6f 76 65 20 6e 69 6c 20 61 72 67 75 6d 65 6e 74 73 29 29 ommand.,@(remove.nil.arguments))
1623a0 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 ."."))...............(if.(zerop.
1623c0 28 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 (apply.#'call-process...........
1623e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 20 6e 69 ......................command.ni
162400 6c 20 6e 69 6c 20 6e 69 6c 20 61 72 67 75 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 l.nil.nil.arguments))...........
162420 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(progn..................
162440 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 75 6e 20 63 6f 6d 6d 61 6e 64 3a 20 25 53 22 20 28 73 ...(message."Run.command:.%S".(s
162460 74 72 69 6e 67 2d 6a 6f 69 6e 20 60 28 2c 63 6f 6d 6d 61 6e 64 20 2c 40 61 72 67 75 6d 65 6e 74 tring-join.`(,command.,@argument
162480 73 29 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 s).".")).....................(ru
1624a0 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 65 6d 6d 73 2d 69 6e 66 6f 2d 66 75 6e 63 n-hook-with-args.'emms-info-func
1624c0 74 69 6f 6e 73 20 74 72 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d tions.track)).................(m
1624e0 65 73 73 61 67 65 20 22 46 61 69 6c 20 74 6f 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 3a 20 25 53 22 essage."Fail.to.run.command:.%S"
162500 20 28 73 74 72 69 6e 67 2d 6a 6f 69 6e 20 60 28 2c 63 6f 6d 6d 61 6e 64 20 2c 40 61 72 67 75 6d .(string-join.`(,command.,@argum
162520 65 6e 74 73 29 20 22 20 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 ents)."."))))...........(message
162540 20 22 4e 6f 20 63 6f 6d 6d 61 6e 64 20 6f 72 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 66 6f ."No.command.or.arguments.are.fo
162560 75 6e 64 2e 22 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4f 6e 6c 79 20 73 75 70 70 und."))).....(message."Only.supp
162580 6f 72 74 20 66 69 6c 65 73 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 74 61 67 2d ort.files.")))..(defun.emms-tag-
1625a0 65 64 69 74 6f 72 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 2d 70 69 70 65 20 28 70 69 70 65 2d 6e editor-marked-track-pipe.(pipe-n
1625c0 61 6d 65 29 0a 20 20 22 52 75 6e 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 70 69 70 65 20 6e 61 6d 65 ame)..."Run.command.of.pipe.name
1625e0 64 20 50 49 50 45 2d 4e 41 4d 45 20 74 6f 20 6d 61 72 6b 65 64 20 74 72 61 63 6b 73 2e 22 0a 20 d.PIPE-NAME.to.marked.tracks."..
162600 20 28 6c 65 74 20 28 28 74 72 61 63 6b 73 20 28 65 6d 6d 73 2d 6d 61 72 6b 2d 6d 61 70 63 61 72 .(let.((tracks.(emms-mark-mapcar
162620 2d 6d 61 72 6b 65 64 2d 74 72 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 -marked-track..................'
162640 65 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 61 74 20 74 29 29 29 0a 20 20 emms-tag-editor-track-at.t)))...
162660 20 20 28 69 66 20 28 6e 75 6c 6c 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 ..(if.(null.tracks).........(mes
162680 73 61 67 65 20 22 4e 6f 20 74 72 61 63 6b 20 6d 61 72 6b 65 64 21 22 29 0a 20 20 20 20 20 20 28 sage."No.track.marked!").......(
1626a0 64 6f 6c 69 73 74 20 28 74 72 61 63 6b 20 74 72 61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 28 65 dolist.(track.tracks).........(e
1626c0 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2d 74 72 61 63 6b 2d 70 69 70 65 20 74 72 61 63 6b 20 mms-tag-editor-track-pipe.track.
1626e0 70 69 70 65 2d 6e 61 6d 65 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 74 pipe-name)))))..(provide.'emms-t
162700 61 67 2d 65 64 69 74 6f 72 29 0a 3b 3b 3b 20 45 6d 6d 73 2d 74 61 67 2d 65 64 69 74 6f 72 2e 65 ag-editor).;;;.Emms-tag-editor.e
162720 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
162740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1627a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1627c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1627e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162800 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2e 65 6c 00 emms-24/emms-volume-sndioctl.el.
162820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
162880 30 30 30 35 32 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 33 31 32 00 20 30 00 00 00 0005216.00000000000.015312..0...
1628a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1628c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1628e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
162920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
162940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1629a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1629c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1629e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162a00 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2e 65 6c 20 2d 2d 2d 20 ;;;.emms-volume-sndioctl.el.---.
162a20 61 20 6d 6f 64 65 20 66 6f 72 20 63 68 61 6e 67 69 6e 67 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 a.mode.for.changing.volume.using
162a40 20 73 6e 64 69 6f 63 74 6c 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 .sndioctl.-*-.lexical-binding:.t
162a60 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2c 20 32 30 ;.-*-..;;.Copyright.(C).2006,.20
162a80 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 2c 20 32 30 31 39 20 46 72 65 65 20 53 6f 66 74 77 61 07,.2008,.2009,.2019.Free.Softwa
162aa0 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a re.Foundation,.Inc...;;.Authors:
162ac0 20 4f 6d 61 72 20 50 6f 6c 6f 20 3c 6f 70 40 6f 6d 61 72 70 6f 6c 6f 2e 63 6f 6d 3e 0a 0a 3b 3b .Omar.Polo.<op@omarpolo.com>..;;
162ae0 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 .This.file.is.part.of.EMMS...;;.
162b00 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 EMMS.is.free.software;.you.can.r
162b20 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 edistribute.it.and/or.modify.;;.
162b40 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 it.under.the.terms.of.the.GNU.Ge
162b60 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 neral.Public.License.as.publishe
162b80 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 d.by.;;.the.Free.Software.Founda
162ba0 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 tion;.either.version.3,.or.(at.y
162bc0 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e our.option).;;.any.later.version
162be0 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 ..;;.;;.EMMS.is.distributed.in.t
162c00 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a he.hope.that.it.will.be.useful,.
162c20 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 ;;.but.WITHOUT.ANY.WARRANTY;.wit
162c40 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f hout.even.the.implied.warranty.o
162c60 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 f.;;.MERCHANTABILITY.or.FITNESS.
162c80 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 FOR.A.PARTICULAR.PURPOSE...See.t
162ca0 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 he.;;.GNU.General.Public.License
162cc0 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f .for.more.details..;;.;;.You.sho
162ce0 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 uld.have.received.a.copy.of.the.
162d00 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c GNU.General.Public.License.;;.al
162d20 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 ong.with.EMMS;.see.the.file.COPY
162d40 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 ING...If.not,.write.to.the.;;.Fr
162d60 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 ee.Software.Foundation,.Inc.,.51
162d80 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f .Franklin.St,.Fifth.Floor,.;;.Bo
162da0 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 ston,.MA.02110-1301,.USA...;;;.C
162dc0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 ommentary:..;;.This.file.defines
162de0 20 61 20 66 65 77 20 73 69 6d 70 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 72 61 69 73 65 .a.few.simple.functions.to.raise
162e00 20 6f 72 20 6c 6f 77 65 72 20 74 68 65 0a 3b 3b 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 20 73 6e .or.lower.the.;;.volume.using.sn
162e20 64 69 6f 63 74 6c 2e 20 49 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 73 74 61 6e 64 2d 61 6c 6f dioctl..It.can.be.used.stand-alo
162e40 6e 65 2c 20 74 68 6f 75 67 68 20 69 74 27 73 0a 3b 3b 20 6d 65 61 6e 74 20 66 6f 72 20 75 73 61 ne,.though.it's.;;.meant.for.usa
162e60 67 65 20 77 69 74 68 20 45 4d 4d 53 2c 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 77 69 74 68 20 ge.with.EMMS,.particularly.with.
162e80 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 0a 0a 3b 3b 3b 20 48 69 73 74 6f 72 79 3a 0a 0a 3b 3b emms-volume.el..;;;.History:..;;
162ea0 20 53 65 70 20 30 39 20 32 30 32 31 3a 20 42 61 73 65 64 20 6f 6e 20 65 6d 6d 73 2d 76 6f 6c 75 .Sep.09.2021:.Based.on.emms-volu
162ec0 6d 65 2d 6d 69 78 65 72 63 74 6c 2e 65 6c 20 62 79 20 4f 6d 61 72 20 50 6f 6c 6f 0a 0a 3b 3b 3b me-mixerctl.el.by.Omar.Polo..;;;
162ee0 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 0a 28 64 65 66 63 75 .Code:.(require.'subr-x)..(defcu
162f00 73 74 6f 6d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2d 73 74 72 65 61 6d stom.emms-volume-sndioctl-stream
162f20 20 22 6f 75 74 70 75 74 22 0a 20 20 22 54 68 65 20 73 74 72 65 61 6d 20 74 6f 20 63 68 61 6e 67 ."output"..."The.stream.to.chang
162f40 65 20 74 68 65 20 76 6f 6c 75 6d 65 20 77 69 74 68 2e 0a 55 73 75 61 6c 6c 79 20 69 74 27 73 20 e.the.volume.with..Usually.it's.
162f60 74 68 65 20 67 6c 6f 62 61 6c 20 5c 22 6f 75 74 70 75 74 5c 22 2e 20 20 46 6f 72 20 61 20 66 75 the.global.\"output\"...For.a.fu
162f80 6c 6c 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 0a 63 6f 6e 74 72 6f 6c 73 2c 20 72 ll.list.of.available.controls,.r
162fa0 75 6e 20 60 73 6e 64 69 6f 63 74 6c 27 20 69 6e 20 61 20 73 68 65 6c 6c 2e 22 0a 20 20 3a 74 79 un.`sndioctl'.in.a.shell."...:ty
162fc0 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 6f 75 74 70 75 74 22 pe.'(choice.(const.:tag."output"
162fe0 20 22 6f 75 74 70 75 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 ."output")..................(str
163000 69 6e 67 20 3a 74 61 67 20 22 53 6f 6d 65 74 68 69 6e 67 20 65 6c 73 65 3a 20 22 29 29 0a 20 20 ing.:tag."Something.else:."))...
163020 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d :group.'emms-volume)..(defcustom
163040 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2d 64 65 76 69 63 65 20 6e 69 6c .emms-volume-sndioctl-device.nil
163060 0a 20 20 22 54 68 65 20 63 61 72 64 20 6e 75 6d 62 65 72 20 74 6f 20 63 68 61 6e 67 65 20 76 6f ..."The.card.number.to.change.vo
163080 6c 75 6d 65 2e 0a 54 68 65 20 63 61 72 64 20 69 73 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 lume..The.card.is.identified.by.
1630a0 61 20 6e 75 6d 62 65 72 2e 20 20 46 6f 72 20 61 20 66 75 6c 6c 20 6c 69 73 74 20 72 75 6e 20 60 a.number...For.a.full.list.run.`
1630c0 6c 73 0a 2f 64 65 76 2f 6d 69 78 65 72 3f 2a 27 20 69 6e 20 61 20 73 68 65 6c 6c 2e 22 0a 20 20 ls./dev/mixer?*'.in.a.shell."...
1630e0 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 6e 6f 6e 65 :type.'(choice.(const.:tag."none
163100 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 ".nil)..................(string.
163120 3a 74 61 67 20 22 44 65 76 69 63 65 3a 20 22 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 :tag."Device:."))...:group.'emms
163140 2d 76 6f 6c 75 6d 65 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 -volume)..;;;###autoload.(defun.
163160 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2d 63 68 61 6e 67 65 20 28 61 6d 6f emms-volume-sndioctl-change.(amo
163180 75 6e 74 29 0a 20 20 22 43 68 61 6e 67 65 20 73 6e 64 69 6f 63 74 6c 20 6c 65 76 65 6c 20 62 79 unt)..."Change.sndioctl.level.by
1631a0 20 41 4d 4f 55 4e 54 2e 22 0a 20 20 28 6d 65 73 73 61 67 65 20 22 50 6c 61 79 62 61 63 6b 20 63 .AMOUNT."...(message."Playback.c
1631c0 68 61 6e 6e 65 6c 73 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 hannels:.%s"............(with-te
1631e0 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 mp-buffer..............(when.(ze
163200 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 rop.....................(apply.#
163220 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'call-process...................
163240 20 20 20 20 20 20 20 20 20 22 73 6e 64 69 6f 63 74 6c 22 20 6e 69 6c 20 28 63 75 72 72 65 6e 74 ........."sndioctl".nil.(current
163260 2d 62 75 66 66 65 72 29 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -buffer).nil....................
163280 20 20 20 20 20 20 20 20 60 28 22 2d 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........`("-n"..................
1632a0 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 77 68 65 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d ............,@(when.emms-volume-
1632c0 73 6e 64 69 6f 63 74 6c 2d 64 65 76 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sndioctl-device.................
1632e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 22 2d 66 22 20 2c 65 6d 6d 73 2d 76 6f .................`("-f".,emms-vo
163300 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c 2d 64 65 76 69 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 lume-sndioctl-device))..........
163320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 66 6f 72 6d 61 74 20 22 25 73 ....................,(format."%s
163340 2e 6c 65 76 65 6c 3d 25 73 25 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .level=%s%f"....................
163360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 ...................emms-volume-s
163380 6e 64 69 6f 63 74 6c 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ndioctl-stream..................
1633a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 6d 6f 75 .....................(if.(>.amou
1633c0 6e 74 20 30 29 20 22 2b 22 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.0)."+"."")...................
1633e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 28 66 6c 6f 61 74 20 61 6d ....................(/.(float.am
163400 6f 75 6e 74 29 20 31 30 30 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ount).100)))))................(s
163420 74 72 69 6e 67 2d 74 72 69 6d 2d 72 69 67 68 74 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 tring-trim-right.(buffer-string)
163440 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 )))))..(provide.'emms-volume-snd
163460 69 6f 63 74 6c 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 73 6e 64 69 6f 63 74 6c ioctl)..;;;.emms-volume-sndioctl
163480 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .el.ends.here...................
1634a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1634c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1634e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1635a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1635c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1635e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163600 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2e 65 6c 00 emms-24/emms-volume-mixerctl.el.
163620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
163680 30 30 30 35 35 34 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 33 32 34 00 20 30 00 00 00 0005542.00000000000.015324..0...
1636a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1636c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1636e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
163720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
163740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1637a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1637c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1637e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163800 3b 3b 3b 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2e 65 6c 20 2d 2d 2d 20 ;;;.emms-volume-mixerctl.el.---.
163820 61 20 6d 6f 64 65 20 66 6f 72 20 63 68 61 6e 67 69 6e 67 20 76 6f 6c 75 6d 65 20 75 73 69 6e 67 a.mode.for.changing.volume.using
163840 20 6d 69 78 65 72 63 74 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 .mixerctl..-*-.lexical-binding:.
163860 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2c 20 32 t;.-*-..;;.Copyright.(C).2006,.2
163880 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 2c 20 32 30 31 39 20 46 72 65 65 20 53 6f 66 74 77 007,.2008,.2009,.2019.Free.Softw
1638a0 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 are.Foundation,.Inc...;;.Authors
1638c0 3a 20 4d 61 72 74 69 6e 20 53 63 68 6f 65 6e 6d 61 6b 65 72 73 20 3c 61 69 76 69 72 75 40 64 69 :.Martin.Schoenmakers.<aiviru@di
1638e0 61 6d 6f 6e 64 2d 61 67 65 2e 6e 65 74 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 42 72 75 6e 6f amond-age.net>.;;..........Bruno
163900 20 46 c3 a9 6c 69 78 20 52 65 7a 65 6e 64 65 20 52 69 62 65 69 72 6f 20 3c 6f 69 74 6f 66 65 6c .F..lix.Rezende.Ribeiro.<oitofel
163920 69 78 40 67 6e 75 2e 6f 72 67 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 ix@gnu.org>..;;.This.file.is.par
163940 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 t.of.EMMS...;;.EMMS.is.free.soft
163960 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e ware;.you.can.redistribute.it.an
163980 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d d/or.modify.;;.it.under.the.term
1639a0 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
1639c0 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 nse.as.published.by.;;.the.Free.
1639e0 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 Software.Foundation;.either.vers
163a00 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e ion.3,.or.(at.your.option).;;.an
163a20 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 64 y.later.version..;;.;;.EMMS.is.d
163a40 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 istributed.in.the.hope.that.it.w
163a60 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e ill.be.useful,.;;.but.WITHOUT.AN
163a80 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 Y.WARRANTY;.without.even.the.imp
163aa0 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c lied.warranty.of.;;.MERCHANTABIL
163ac0 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 ITY.or.FITNESS.FOR.A.PARTICULAR.
163ae0 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c PURPOSE...See.the.;;.GNU.General
163b00 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 .Public.License.for.more.details
163b20 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 ..;;.;;.You.should.have.received
163b40 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 .a.copy.of.the.GNU.General.Publi
163b60 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 c.License.;;.along.with.EMMS;.se
163b80 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 e.the.file.COPYING...If.not,.wri
163ba0 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 te.to.the.;;.Free.Software.Found
163bc0 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 2c 20 46 69 66 ation,.Inc.,.51.Franklin.St,.Fif
163be0 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 th.Floor,.;;.Boston,.MA.02110-13
163c00 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 01,.USA...;;;.Commentary:..;;.Th
163c20 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 61 20 66 65 77 20 73 69 6d 70 6c 65 20 66 75 6e is.file.defines.a.few.simple.fun
163c40 63 74 69 6f 6e 73 20 74 6f 20 72 61 69 73 65 20 6f 72 20 6c 6f 77 65 72 20 74 68 65 20 76 6f 6c ctions.to.raise.or.lower.the.vol
163c60 75 6d 65 0a 3b 3b 20 75 73 69 6e 67 20 6d 69 78 65 72 63 74 6c 2e 20 49 74 20 63 61 6e 20 62 65 ume.;;.using.mixerctl..It.can.be
163c80 20 75 73 65 64 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 2c 20 74 68 6f 75 67 68 20 69 74 27 73 20 6d .used.stand-alone,.though.it's.m
163ca0 65 61 6e 74 20 66 6f 72 20 75 73 61 67 65 0a 3b 3b 20 77 69 74 68 20 45 4d 4d 53 2c 20 70 61 72 eant.for.usage.;;.with.EMMS,.par
163cc0 74 69 63 75 6c 61 72 6c 79 20 77 69 74 68 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2e 65 6c 0a 0a 3b ticularly.with.emms-volume.el..;
163ce0 3b 3b 20 48 69 73 74 6f 72 79 3a 0a 0a 3b 3b 20 4a 75 6c 20 30 36 20 32 30 31 39 3a 20 42 61 73 ;;.History:..;;.Jul.06.2019:.Bas
163d00 65 64 20 6f 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 61 6d 69 78 65 72 2e 65 6c 20 62 79 20 4d ed.on.emms-volume-amixer.el.by.M
163d20 61 72 74 69 6e 20 53 63 68 6f 65 6e 6d 61 6b 65 72 73 0a 0a 3b 3b 3b 20 54 6f 64 6f 3a 0a 0a 3b artin.Schoenmakers..;;;.Todo:..;
163d40 3b 20 54 68 65 72 65 20 70 72 6f 62 61 62 6c 79 20 6e 65 65 64 73 20 74 6f 20 62 65 20 6d 6f 72 ;.There.probably.needs.to.be.mor
163d60 65 20 63 6f 6e 66 69 67 75 72 61 62 69 6c 69 74 79 2c 20 77 68 69 63 68 20 6d 61 79 20 69 6e 20 e.configurability,.which.may.in.
163d80 74 75 72 6e 0a 3b 3b 20 6d 65 61 6e 20 61 64 64 69 6e 67 20 73 6f 6d 65 20 6d 6f 72 65 20 66 75 turn.;;.mean.adding.some.more.fu
163da0 6e 63 74 69 6f 6e 73 2e 0a 3b 3b 20 53 6f 6d 65 20 6f 66 20 74 68 69 73 20 63 6f 75 6c 64 20 62 nctions..;;.Some.of.this.could.b
163dc0 65 6e 65 66 69 74 20 66 72 6f 6d 20 61 64 64 69 6e 67 20 63 75 73 74 6f 6d 69 7a 65 20 69 6e 74 enefit.from.adding.customize.int
163de0 65 72 66 61 63 65 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 erfaces...;;;.Code:..(defcustom.
163e00 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2d 63 6f 6e 74 72 6f 6c 20 22 6d 61 emms-volume-mixerctl-control."ma
163e20 73 74 65 72 22 0a 20 20 22 54 68 65 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 63 68 61 6e 67 65 20 74 ster"..."The.control.to.change.t
163e40 68 65 20 76 6f 6c 75 6d 65 20 77 69 74 68 2e 0a 43 6f 6e 74 72 6f 6c 73 20 69 6e 63 6c 75 64 65 he.volume.with..Controls.include
163e60 73 20 5c 22 6d 61 73 74 65 72 5c 22 2c 20 5c 22 6d 6f 6e 6f 5c 22 2c 20 65 74 63 2e 20 46 6f 72 s.\"master\",.\"mono\",.etc..For
163e80 20 61 20 66 75 6c 6c 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 0a 63 6f 6e 74 72 6f .a.full.list.of.available.contro
163ea0 6c 73 2c 20 72 75 6e 20 60 6d 69 78 65 72 63 74 6c 20 2d 61 27 20 69 6e 20 61 20 73 68 65 6c 6c ls,.run.`mixerctl.-a'.in.a.shell
163ec0 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 ."...:type.'(choice.(const.:tag.
163ee0 22 6d 61 73 74 65 72 22 20 22 6d 61 73 74 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 "master"."master")..............
163f00 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 6d 6f 6e 6f 22 20 22 6d 6f 6e 6f 22 29 0a 20 ....(const.:tag."mono"."mono")..
163f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 53 6f ................(string.:tag."So
163f40 6d 65 74 68 69 6e 67 20 65 6c 73 65 3a 20 22 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 65 6d 6d 73 mething.else:."))...:group.'emms
163f60 2d 76 6f 6c 75 6d 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 -volume)..(defcustom.emms-volume
163f80 2d 6d 69 78 65 72 63 74 6c 2d 63 61 72 64 20 30 0a 20 20 22 54 68 65 20 63 61 72 64 20 6e 75 6d -mixerctl-card.0..."The.card.num
163fa0 62 65 72 20 74 6f 20 63 68 61 6e 67 65 20 76 6f 6c 75 6d 65 2e 0a 54 68 65 20 63 61 72 64 20 69 ber.to.change.volume..The.card.i
163fc0 73 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 61 20 6e 75 6d 62 65 72 2e 20 46 6f 72 20 61 20 s.identified.by.a.number..For.a.
163fe0 66 75 6c 6c 20 6c 69 73 74 20 72 75 6e 20 60 6c 73 0a 2f 64 65 76 2f 6d 69 78 65 72 3f 2a 27 20 full.list.run.`ls./dev/mixer?*'.
164000 69 6e 20 61 20 73 68 65 6c 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 in.a.shell."...:type.'integer...
164020 3a 67 72 6f 75 70 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f :group.'emms-volume)..;;;###auto
164040 6c 6f 61 64 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c load.(defun.emms-volume-mixerctl
164060 2d 63 68 61 6e 67 65 20 28 61 6d 6f 75 6e 74 29 0a 20 20 22 43 68 61 6e 67 65 20 6d 69 78 65 72 -change.(amount)..."Change.mixer
164080 63 74 6c 20 6d 61 73 74 65 72 20 76 6f 6c 75 6d 65 20 62 79 20 41 4d 4f 55 4e 54 2e 22 0a 20 20 ctl.master.volume.by.AMOUNT."...
1640a0 28 6d 65 73 73 61 67 65 20 22 50 6c 61 79 62 61 63 6b 20 63 68 61 6e 6e 65 6c 73 3a 20 25 73 22 (message."Playback.channels:.%s"
1640c0 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 ............(with-temp-buffer...
1640e0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 0a 20 20 20 20 20 20 20 20 ...........(when.(zerop.........
164100 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 6d 69 78 65 72 ............(call-process."mixer
164120 63 74 6c 22 20 6e 69 6c 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 6e 69 6c 0a 09 09 ctl".nil.(current-buffer).nil...
164140 09 09 20 20 22 2d 66 22 0a 09 09 09 09 20 20 28 66 6f 72 6d 61 74 20 22 2f 64 65 76 2f 6d 69 78 ...."-f".......(format."/dev/mix
164160 65 72 25 64 22 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2d 63 61 72 64 29 er%d".emms-volume-mixerctl-card)
164180 0a 09 09 09 09 20 20 28 6c 65 74 20 28 28 61 6d 6f 75 6e 74 2d 73 74 72 0a 09 09 09 09 09 20 28 .......(let.((amount-str.......(
1641a0 66 6f 72 6d 61 74 20 22 25 73 25 64 22 20 28 69 66 20 28 3c 20 61 6d 6f 75 6e 74 20 30 29 20 22 format."%s%d".(if.(<.amount.0)."
1641c0 2d 22 20 22 2b 22 29 0a 09 09 09 09 09 09 20 28 61 62 73 20 61 6d 6f 75 6e 74 29 29 29 29 0a 20 -"."+")........(abs.amount))))..
1641e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
164200 20 20 20 28 66 6f 72 6d 61 74 20 22 6f 75 74 70 75 74 73 2e 25 73 3d 25 73 2c 25 73 22 0a 09 09 ...(format."outputs.%s=%s,%s"...
164220 09 09 09 20 20 20 20 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2d 63 6f 6e 74 .......emms-volume-mixerctl-cont
164240 72 6f 6c 0a 09 09 09 09 09 20 20 20 20 61 6d 6f 75 6e 74 2d 73 74 72 20 61 6d 6f 75 6e 74 2d 73 rol..........amount-str.amount-s
164260 74 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 tr))))................(if.(and.(
164280 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 0a 09 09 09 28 72 65 2d 73 65 61 72 63 68 2d 66 forward-line.-1)....(re-search-f
1642a0 6f 72 77 61 72 64 20 22 5e 5c 5c 28 2e 2a 5c 5c 29 3a 2e 2a 2d 3e 2e 2a 2c 5c 5c 28 2e 2a 5c 5c orward."^\\(.*\\):.*->.*,\\(.*\\
1642c0 29 24 22 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 )$".nil.t))....................(
1642e0 66 6f 72 6d 61 74 20 22 25 73 20 2d 3e 20 25 73 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 format."%s.->.%s".(match-string.
164300 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 1).(match-string.2)))))))..(prov
164320 69 64 65 20 27 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 29 0a 0a 3b 3b 3b 20 ide.'emms-volume-mixerctl)..;;;.
164340 65 6d 6d 73 2d 76 6f 6c 75 6d 65 2d 6d 69 78 65 72 63 74 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 emms-volume-mixerctl.el.ends.her
164360 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
164380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1643a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1643c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1643e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164400 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 31 38 6e 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/emms-i18n.el............
164420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
164480 30 30 31 35 37 36 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 35 35 00 20 30 00 00 00 0015763.00000000000.012755..0...
1644a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1644c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1644e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
164520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
164540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1645a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1645c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1645e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164600 3b 3b 3b 20 65 6d 6d 73 2d 69 31 38 6e 2e 65 6c 20 2d 2d 2d 20 66 75 6e 63 74 69 6f 6e 73 20 66 ;;;.emms-i18n.el.---.functions.f
164620 6f 72 20 68 61 6e 64 6c 69 6e 67 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 73 20 20 2d 2a 2d 20 or.handling.coding.systems..-*-.
164640 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 lexical-binding:.t;.-*-..;;.Copy
164660 72 69 67 68 74 20 28 43 29 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 30 30 39 right.(C).2006,.2007,.2008,.2009
164680 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a .Free.Software.Foundation,.Inc..
1646a0 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 59 65 20 57 65 6e 62 69 6e 20 3c 77 65 6e 62 69 6e 79 65 40 .;;.Author:.Ye.Wenbin.<wenbinye@
1646c0 31 36 33 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 163.com>..;;.This.file.is.part.o
1646e0 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 f.EMMS...;;.This.program.is.free
164700 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 .software;.you.can.redistribute.
164720 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74 68 65 it.and/or.;;.modify.it.under.the
164740 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 .terms.of.the.GNU.General.Public
164760 20 4c 69 63 65 6e 73 65 20 61 73 0a 3b 3b 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 .License.as.;;.published.by.the.
164780 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 Free.Software.Foundation;.either
1647a0 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 0a 3b 3b 20 79 6f 75 72 20 6f 70 74 69 6f .version.3,.or.(at.;;.your.optio
1647c0 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 n).any.later.version...;;.This.p
1647e0 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 rogram.is.distributed.in.the.hop
164800 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 0a 3b 3b e.that.it.will.be.useful,.but.;;
164820 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 .WITHOUT.ANY.WARRANTY;.without.e
164840 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d ven.the.implied.warranty.of.;;.M
164860 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 ERCHANTABILITY.or.FITNESS.FOR.A.
164880 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 PARTICULAR.PURPOSE...See.the.GNU
1648a0 0a 3b 3b 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d .;;.General.Public.License.for.m
1648c0 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 ore.details...;;.You.should.have
1648e0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
164900 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
164920 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 .this.program;.if.not,.write.to.
164940 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 3b 3b 20 46 6f 75 6e 64 61 74 69 6f 6e 2c the.Free.Software.;;.Foundation,
164960 20 49 6e 63 2e 2c 20 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 64 67 65 2c 20 .Inc.,.675.Mass.Ave,.Cambridge,.
164980 4d 41 20 30 32 31 33 39 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a MA.02139,.USA...;;;.Commentary:.
1649a0 0a 3b 3b 20 57 68 65 6e 20 72 65 61 64 69 6e 67 20 66 72 6f 6d 20 70 72 6f 63 65 73 73 2c 20 66 .;;.When.reading.from.process,.f
1649c0 69 72 73 74 20 63 68 65 63 6b 20 74 68 65 20 63 61 72 20 70 61 72 74 20 6f 66 0a 3b 3b 20 60 65 irst.check.the.car.part.of.;;.`e
1649e0 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 3b mms-i18n-default-coding-system';
164a00 20 69 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 74 68 69 73 20 66 6f 72 0a 3b 3b 20 64 65 63 .if.non-nil,.use.this.for.;;.dec
164a20 6f 64 69 6e 67 2c 20 61 6e 64 20 6e 65 76 65 72 20 64 65 74 65 63 74 20 63 6f 64 69 6e 67 20 73 oding,.and.never.detect.coding.s
164a40 79 73 74 65 6d 3b 20 69 66 20 6e 69 6c 2c 20 66 69 72 73 74 20 63 61 6c 6c 0a 3b 3b 20 60 65 6d ystem;.if.nil,.first.call.;;.`em
164a60 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 6e 67 2d 64 65 74 65 63 74 2d 66 75 6e 63 74 69 6f 6e 73 27 ms-i18n-coding-detect-functions'
164a80 20 74 6f 20 67 65 74 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 2c 20 69 66 0a 3b 3b 20 73 75 63 .to.get.coding.system,.if.;;.suc
164aa0 63 65 73 73 2c 20 64 65 63 6f 64 65 20 74 68 65 20 72 65 73 75 6c 74 2c 20 6f 74 68 65 72 77 69 cess,.decode.the.result,.otherwi
164ac0 73 65 2c 20 75 73 65 0a 3b 3b 20 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 63 6f 64 se,.use.;;.`emms-i18n-detect-cod
164ae0 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 74 68 65 20 45 6d 61 63 73 20 64 65 74 65 63 74 20 ing-function',.the.Emacs.detect.
164b00 63 6f 64 69 6e 67 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 2c 20 69 66 20 74 68 65 20 63 6f 64 69 6e coding.;;.function,.if.the.codin
164b20 67 20 64 65 74 65 63 74 65 64 20 69 73 20 6e 6f 74 20 69 6e 0a 3b 3b 20 60 65 6d 6d 73 2d 69 31 g.detected.is.not.in.;;.`emms-i1
164b40 38 6e 2d 6e 65 76 65 72 2d 75 73 65 64 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 2c 20 64 65 8n-never-used-coding-system',.de
164b60 63 6f 64 65 20 69 74 2c 20 6f 74 68 65 72 77 69 73 65 20 75 73 65 0a 3b 3b 20 6c 6f 63 61 6c 65 code.it,.otherwise.use.;;.locale
164b80 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2e 0a 0a 3b 3b 20 57 68 65 6e 20 77 72 69 74 69 6e 67 -coding-system...;;.When.writing
164ba0 2f 73 65 6e 64 69 6e 67 20 64 61 74 61 20 74 6f 20 70 72 6f 63 65 73 73 2c 20 66 69 72 73 74 20 /sending.data.to.process,.first.
164bc0 63 68 65 63 6b 20 74 68 65 20 63 64 72 20 70 61 72 74 20 6f 66 0a 3b 3b 20 60 65 6d 6d 73 2d 69 check.the.cdr.part.of.;;.`emms-i
164be0 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 2c 20 69 66 20 6e 18n-default-coding-system',.if.n
164c00 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 74 68 69 73 20 74 6f 20 65 6e 63 6f 64 65 0a 3b 3b 20 64 61 on-nil,.use.this.to.encode.;;.da
164c20 74 61 2c 20 6f 74 68 65 72 77 69 73 65 20 64 6f 20 6e 6f 74 68 69 6e 67 2c 20 74 68 61 74 20 6d ta,.otherwise.do.nothing,.that.m
164c40 65 61 6e 73 20 75 73 65 0a 3b 3b 20 60 64 65 66 61 75 6c 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 eans.use.;;.`default-process-cod
164c60 69 6e 67 2d 73 79 73 74 65 6d 27 20 6f 72 20 60 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 ing-system'.or.`process-coding-s
164c80 79 73 74 65 6d 2d 61 6c 69 73 74 27 20 74 6f 0a 3b 3b 20 65 6e 63 6f 64 65 20 64 61 74 61 2e 0a ystem-alist'.to.;;.encode.data..
164ca0 0a 3b 3b 20 50 75 74 20 74 68 69 73 20 66 69 6c 65 20 69 6e 74 6f 20 79 6f 75 72 20 6c 6f 61 64 .;;.Put.this.file.into.your.load
164cc0 2d 70 61 74 68 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 6f 20 79 6f 75 -path.and.the.following.into.you
164ce0 72 0a 3b 3b 20 7e 2f 2e 65 6d 61 63 73 3a 0a 0a 3b 3b 20 20 20 28 72 65 71 75 69 72 65 20 27 65 r.;;.~/.emacs:..;;...(require.'e
164d00 6d 6d 73 2d 69 31 38 6e 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 70 72 6f 76 69 64 65 20 27 mms-i18n)..;;;.Code:..(provide.'
164d20 65 6d 6d 73 2d 69 31 38 6e 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 65 20 64 65 66 63 75 73 74 emms-i18n)..;;.TODO:.Use.defcust
164d40 6f 6d 2e 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 6e 65 76 65 72 2d 75 73 65 64 om..(defvar.emms-i18n-never-used
164d60 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 0a 20 20 27 28 72 61 77 2d 74 65 78 74 20 75 6e 64 65 -coding-system...'(raw-text.unde
164d80 63 69 64 65 64 29 0a 20 20 22 49 66 20 74 68 65 20 60 65 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 cided)..."If.the.`emms-i18n-codi
164da0 6e 67 2d 64 65 74 65 63 74 2d 66 75 6e 63 74 69 6f 6e 73 27 20 72 65 74 75 72 6e 20 61 20 63 6f ng-detect-functions'.return.a.co
164dc0 64 69 6e 67 0a 73 79 73 74 65 6d 20 69 6e 20 74 68 69 73 20 6c 69 73 74 2c 20 75 73 65 20 60 65 ding.system.in.this.list,.use.`e
164de0 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 0a mms-i18n-default-coding-system'.
164e00 69 6e 73 74 65 61 64 2e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 65 20 64 65 66 63 75 73 74 instead.")..;;.TODO:.Use.defcust
164e20 6f 6d 2e 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 6e 67 2d 73 79 73 om..(defvar.emms-i18n-coding-sys
164e40 74 65 6d 2d 66 6f 72 2d 72 65 61 64 0a 20 20 27 75 74 66 2d 38 0a 20 20 22 49 66 20 63 6f 64 69 tem-for-read...'utf-8..."If.codi
164e60 6e 67 20 64 65 74 65 63 74 20 66 61 69 6c 73 2c 20 75 73 65 20 74 68 69 73 20 66 6f 72 20 64 65 ng.detect.fails,.use.this.for.de
164e80 63 6f 64 69 6e 67 2e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 65 20 64 65 66 63 75 73 74 6f coding.")..;;.TODO:.Use.defcusto
164ea0 6d 2e 0a 28 64 65 66 76 61 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 m..(defvar.emms-i18n-default-cod
164ec0 69 6e 67 2d 73 79 73 74 65 6d 0a 20 20 27 28 6e 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 20 2e 20 6e ing-system...'(no-conversion...n
164ee0 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 29 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 o-conversion)..."If.non-nil,.use
164f00 20 74 68 69 73 20 66 6f 72 20 64 65 63 6f 64 69 6e 67 20 61 6e 64 20 65 6e 63 6f 64 69 6e 67 2e .this.for.decoding.and.encoding.
164f20 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 65 20 64 65 66 63 75 73 74 6f 6d 2e 0a 28 64 65 66 ")..;;.TODO:.Use.defcustom..(def
164f40 76 61 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 6e 67 2d 64 65 74 65 63 74 2d 66 75 6e 63 var.emms-i18n-coding-detect-func
164f60 74 69 6f 6e 73 0a 20 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f tions...nil..."A.list.of.functio
164f80 6e 73 20 74 6f 20 63 61 6c 6c 20 74 6f 20 64 65 74 65 63 74 20 63 6f 64 69 6e 67 73 2e 22 29 0a ns.to.call.to.detect.codings.").
164fa0 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 65 20 64 65 66 63 75 73 74 6f 6d 2e 0a 28 64 65 66 76 61 72 .;;.TODO:.Use.defcustom..(defvar
164fc0 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 6d 61 78 2d 73 69 7a 65 0a 20 20 31 30 30 .emms-i18n-detect-max-size...100
164fe0 30 30 0a 20 20 22 4d 61 78 69 6d 75 6d 20 61 6d 6f 75 6e 74 20 6f 66 20 62 79 74 65 73 20 74 6f 00..."Maximum.amount.of.bytes.to
165000 20 64 65 74 65 63 74 20 74 68 65 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 2e 20 20 6e 69 6c 0a .detect.the.coding.system...nil.
165020 6d 65 61 6e 73 20 74 6f 20 73 63 61 6e 20 74 68 65 20 77 68 6f 6c 65 20 62 75 66 66 65 72 2e 22 means.to.scan.the.whole.buffer."
165040 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 31 38 6e 2d 69 63 6f 6e 76 20 28 66 72 6f 6d 20 )..(defun.emms-i18n-iconv.(from.
165060 74 6f 20 73 74 72 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 73 74 72 69 6e 67 20 53 54 52 20 66 72 to.str)..."Convert.string.STR.fr
165080 6f 6d 20 46 52 4f 4d 20 63 6f 64 69 6e 67 20 74 6f 20 54 4f 20 63 6f 64 69 6e 67 2e 22 0a 20 20 om.FROM.coding.to.TO.coding."...
1650a0 28 69 66 20 28 61 6e 64 20 66 72 6f 6d 20 74 6f 29 0a 20 20 20 20 20 20 28 64 65 63 6f 64 65 2d (if.(and.from.to).......(decode-
1650c0 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 63 6f 64 coding-string........(encode-cod
1650e0 69 6e 67 2d 73 74 72 69 6e 67 20 73 74 72 20 74 6f 29 0a 20 20 20 20 20 20 20 66 72 6f 6d 29 0a ing-string.str.to)........from).
165100 20 20 20 20 73 74 72 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 31 38 6e 2d 69 63 6f 6e ....str))..(defun.emms-i18n-icon
165120 76 2d 72 65 67 69 6f 6e 20 28 62 65 67 20 65 6e 64 20 66 72 6f 6d 20 74 6f 29 0a 20 20 28 77 68 v-region.(beg.end.from.to)...(wh
165140 65 6e 20 28 61 6e 64 20 66 72 6f 6d 20 74 6f 29 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 en.(and.from.to).....(save-restr
165160 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 62 iction.......(narrow-to-region.b
165180 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 72 65 67 eg.end).......(encode-coding-reg
1651a0 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 6f 29 0a ion.(point-min).(point-max).to).
1651c0 20 20 20 20 20 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 72 65 67 69 6f 6e 20 28 70 6f 69 ......(decode-coding-region.(poi
1651e0 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 66 72 6f 6d 29 29 29 29 0a 0a 28 64 nt-min).(point-max).from))))..(d
165200 65 66 75 6e 20 65 6d 6d 73 2d 69 31 38 6e 2d 69 63 6f 6e 76 2d 62 75 66 66 65 72 20 28 66 72 6f efun.emms-i18n-iconv-buffer.(fro
165220 6d 20 74 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 62 m.to.&optional.buf)..."Convert.b
165240 75 66 66 65 72 20 42 55 46 20 66 72 6f 6d 20 46 52 4f 4d 20 63 6f 64 69 6e 67 20 74 6f 20 54 4f uffer.BUF.from.FROM.coding.to.TO
165260 20 63 6f 64 69 6e 67 2e 20 20 42 55 46 0a 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 .coding...BUF.defaults.to.the.cu
165280 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e rrent.buffer."...(save-excursion
1652a0 0a 20 20 20 20 28 61 6e 64 20 62 75 66 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 29 29 0a .....(and.buf.(set-buffer.buf)).
1652c0 20 20 20 20 28 65 6d 6d 73 2d 69 31 38 6e 2d 69 63 6f 6e 76 2d 72 65 67 69 6f 6e 20 28 70 6f 69 ....(emms-i18n-iconv-region.(poi
1652e0 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 66 72 6f 6d 20 74 6f 29 29 29 0a 0a nt-min).(point-max).from.to)))..
165300 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 31 38 6e 2d 73 65 74 2d 64 65 66 61 75 6c 74 2d 63 6f 64 (defun.emms-i18n-set-default-cod
165320 69 6e 67 2d 73 79 73 74 65 6d 20 28 72 65 61 64 2d 63 6f 64 69 6e 67 20 77 72 69 74 65 2d 63 6f ing-system.(read-coding.write-co
165340 64 69 6e 67 29 0a 20 20 22 53 65 74 20 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d ding)..."Set.`emms-i18n-default-
165360 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 coding-system'."...(interactive.
165380 22 7a 53 65 74 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 66 6f 72 20 72 65 61 64 3a 20 5c 6e "zSet.coding.system.for.read:.\n
1653a0 7a 53 65 74 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 66 6f 72 20 77 72 69 74 65 3a 20 22 29 zSet.coding.system.for.write:.")
1653c0 0a 20 20 28 73 65 74 71 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e ...(setq.emms-i18n-default-codin
1653e0 67 2d 73 79 73 74 65 6d 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 g-system.........(cons..........
165400 28 61 6e 64 20 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 70 20 72 65 61 64 2d 63 6f 64 69 6e (and.(coding-system-p.read-codin
165420 67 29 20 72 65 61 64 2d 63 6f 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 g).read-coding)..........(and.(c
165440 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 70 20 77 72 69 74 65 2d 63 6f 64 69 6e 67 29 20 77 72 69 oding-system-p.write-coding).wri
165460 74 65 2d 63 6f 64 69 6e 67 29 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 0a te-coding)))...(message.(concat.
165480 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 61 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 ............(if.(car.emms-i18n-d
1654a0 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 efault-coding-system)...........
1654c0 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 54 68 65 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d ......(format."The.coding.system
1654e0 20 66 6f 72 20 72 65 61 64 69 6e 67 20 69 73 20 25 53 2e 22 20 28 63 61 72 20 65 6d 6d 73 2d 69 .for.reading.is.%S.".(car.emms-i
165500 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 0a 20 20 20 20 18n-default-coding-system)).....
165520 20 20 20 20 20 20 20 20 20 20 22 47 6f 6f 64 2c 20 79 6f 75 20 77 61 6e 74 20 6d 65 20 74 6f 20 .........."Good,.you.want.me.to.
165540 64 65 74 65 63 74 20 74 68 65 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 21 22 29 0a 20 20 20 20 detect.the.coding.system!").....
165560 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 54 68 65 20 63 6f 64 69 6e 67 20 73 79 73 ........(format.".The.coding.sys
165580 74 65 6d 20 66 6f 72 20 77 72 69 74 69 6e 67 20 69 73 20 25 53 2e 22 0a 20 20 20 20 20 20 20 20 tem.for.writing.is.%S.".........
1655a0 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 64 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 ............(or.(cdr.emms-i18n-d
1655c0 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 efault-coding-system)...........
1655e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 64 65 66 61 75 6c 74 2d 70 72 6f 63 65 ..............(cdr.default-proce
165600 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 ss-coding-system))))))..(defun.e
165620 6d 6d 73 2d 69 31 38 6e 2d 63 61 6c 6c 2d 70 72 6f 63 65 73 73 2d 73 69 6d 70 6c 65 20 28 26 72 mms-i18n-call-process-simple.(&r
165640 65 73 74 20 61 72 67 73 29 0a 20 20 22 52 75 6e 20 61 20 70 72 6f 67 72 61 6d 20 61 6e 64 20 72 est.args)..."Run.a.program.and.r
165660 65 74 75 72 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 20 72 65 73 75 6c 74 2e 0a 49 66 20 74 68 65 eturn.the.program.result..If.the
165680 20 63 61 72 20 70 61 72 74 20 6f 66 20 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d .car.part.of.`emms-i18n-default-
1656a0 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 0a 74 68 65 20 70 coding-system'.is.non-nil,.the.p
1656c0 72 6f 67 72 61 6d 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 62 65 20 64 65 63 6f 64 65 64 20 75 73 rogram.result.will.be.decoded.us
1656e0 69 6e 67 20 74 68 65 20 63 61 72 20 70 61 72 74 20 6f 66 0a 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 ing.the.car.part.of.`emms-i18n-d
165700 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 2e 20 20 4f 74 68 65 72 77 69 73 efault-coding-system'...Otherwis
165720 65 2c 20 75 73 65 0a 60 65 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 6e 67 2d 64 65 74 65 63 74 2d e,.use.`emms-i18n-coding-detect-
165740 66 75 6e 63 74 69 6f 6e 73 27 20 74 6f 20 64 65 74 65 63 74 20 74 68 65 20 63 6f 64 69 6e 67 20 functions'.to.detect.the.coding.
165760 73 79 73 74 65 6d 0a 6f 66 20 74 68 65 20 72 65 73 75 6c 74 2e 20 20 49 66 20 74 68 65 20 60 65 system.of.the.result...If.the.`e
165780 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 6e 67 2d 64 65 74 65 63 74 2d 66 75 6e 63 74 69 6f 6e 73 mms-i18n-coding-detect-functions
1657a0 27 0a 66 61 69 6c 65 64 2c 20 75 73 65 20 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d '.failed,.use.`emms-i18n-detect-
1657c0 63 6f 64 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 27 20 74 6f 20 64 65 74 65 63 74 20 63 6f 64 69 6e coding-function'.to.detect.codin
1657e0 67 0a 73 79 73 74 65 6d 2e 20 20 49 66 20 61 6c 6c 20 74 68 65 20 63 6f 64 69 6e 67 20 73 79 73 g.system...If.all.the.coding.sys
165800 74 65 6d 73 20 61 72 65 20 6e 69 6c 20 6f 72 20 69 6e 0a 60 65 6d 6d 73 2d 69 31 38 6e 2d 6e 65 tems.are.nil.or.in.`emms-i18n-ne
165820 76 65 72 2d 75 73 65 64 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 27 2c 20 64 65 63 6f 64 65 20 ver-used-coding-system',.decode.
165840 74 68 65 20 72 65 73 75 6c 74 20 75 73 69 6e 67 0a 60 65 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 the.result.using.`emms-i18n-codi
165860 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 27 2e 0a 0a 41 52 47 53 20 61 72 65 20 74 ng-system-for-read'...ARGS.are.t
165880 68 65 20 73 61 6d 65 20 61 73 20 69 6e 20 60 63 61 6c 6c 2d 70 72 6f 63 65 73 73 27 2c 20 65 78 he.same.as.in.`call-process',.ex
1658a0 63 65 70 74 20 42 55 46 46 45 52 20 73 68 6f 75 6c 64 0a 61 6c 77 61 79 73 20 68 61 76 65 20 74 cept.BUFFER.should.always.have.t
1658c0 68 65 20 76 61 6c 75 65 20 74 2e 20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 6f 64 69 6e he.value.t...Otherwise.the.codin
1658e0 67 20 64 65 74 65 63 74 69 6f 6e 20 77 69 6c 6c 20 6e 6f 74 0a 62 65 20 70 65 72 66 6f 72 6d 65 g.detection.will.not.be.performe
165900 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 d."...(let.((default-process-cod
165920 69 6e 67 2d 73 79 73 74 65 6d 20 28 63 6f 70 79 2d 74 72 65 65 20 64 65 66 61 75 6c 74 2d 70 72 ing-system.(copy-tree.default-pr
165940 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 28 70 ocess-coding-system)).........(p
165960 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 61 6c 69 73 74 20 6e 69 6c 29 20 rocess-coding-system-alist.nil).
165980 65 78 69 74 20 70 6f 73 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 6e 74 68 20 32 20 61 exit.pos).....(when.(eq.(nth.2.a
1659a0 72 67 73 29 20 27 74 29 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 64 65 66 61 75 6c 74 2d 70 rgs).'t).......(setcar.default-p
1659c0 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 28 63 61 72 20 65 6d 6d 73 2d 69 rocess-coding-system.(car.emms-i
1659e0 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 0a 20 20 20 20 18n-default-coding-system)).....
165a00 20 20 28 73 65 74 71 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 ..(setq.pos.(point))).....(setq.
165a20 65 78 69 74 20 28 61 70 70 6c 79 20 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 61 72 67 73 29 29 exit.(apply.'call-process.args))
165a40 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 28 6e 74 68 20 32 20 61 72 67 73 29 .....(when.(and.(eq.(nth.2.args)
165a60 20 27 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 20 65 6d 6d .'t)................(eq.(car.emm
165a80 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 20 27 6e s-i18n-default-coding-system).'n
165aa0 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 o-conversion)).......(save-restr
165ac0 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e iction.........(narrow-to-region
165ae0 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 2d 63 6f .pos.(point)).........(decode-co
165b00 64 69 6e 67 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d ding-region.(point-min).(point-m
165b20 61 78 29 20 28 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 62 75 66 66 65 72 2d 63 6f 64 ax).(emms-i18n-detect-buffer-cod
165b40 69 6e 67 2d 73 79 73 74 65 6d 29 29 29 29 0a 20 20 20 20 65 78 69 74 29 29 0a 0a 3b 3b 20 54 4f ing-system)))).....exit))..;;.TO
165b60 44 4f 3a 20 49 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 66 75 6c 3f 0a 28 64 65 DO:.Is.this.function.useful?.(de
165b80 66 75 6e 20 65 6d 6d 73 2d 69 31 38 6e 2d 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 28 26 72 65 73 fun.emms-i18n-call-process.(&res
165ba0 74 20 61 72 67 73 29 0a 20 20 22 52 75 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 20 6c 69 6b 65 20 t.args)..."Run.the.program.like.
165bc0 60 63 61 6c 6c 2d 70 72 6f 63 65 73 73 27 2e 20 20 49 66 20 74 68 65 20 63 64 72 20 70 61 72 74 `call-process'...If.the.cdr.part
165be0 20 6f 66 0a 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 .of.`emms-i18n-default-coding-sy
165c00 73 74 65 6d 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 73 74 72 69 6e 67 20 69 6e 20 stem'.is.non-nil,.the.string.in.
165c20 41 52 47 53 0a 77 69 6c 6c 20 62 65 20 65 6e 63 6f 64 65 64 20 62 79 20 74 68 65 20 63 64 72 20 ARGS.will.be.encoded.by.the.cdr.
165c40 70 61 72 74 20 6f 66 0a 60 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e part.of.`emms-i18n-default-codin
165c60 67 2d 73 79 73 74 65 6d 27 3b 20 6f 74 68 65 72 77 69 73 65 2c 20 61 6c 6c 20 70 61 72 61 6d 65 g-system';.otherwise,.all.parame
165c80 74 65 72 73 20 61 72 65 0a 73 69 6d 70 6c 79 20 70 61 73 73 65 64 20 74 6f 20 60 63 61 6c 6c 2d ters.are.simply.passed.to.`call-
165ca0 70 72 6f 63 65 73 73 27 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 process'."...(with-temp-buffer..
165cc0 20 20 20 28 69 66 20 28 63 64 72 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f ...(if.(cdr.emms-i18n-default-co
165ce0 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 66 61 ding-system).........(let.((defa
165d00 75 6c 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 65 6d 6d 73 2d 69 ult-process-coding-system.emms-i
165d20 31 38 6e 2d 64 65 66 61 75 6c 74 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 18n-default-coding-system)......
165d40 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d .........(process-coding-system-
165d60 61 6c 69 73 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 27 63 61 alist.nil))...........(apply.'ca
165d80 6c 6c 2d 70 72 6f 63 65 73 73 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 27 ll-process.args)).......(apply.'
165da0 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 61 72 67 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d call-process.args))))..(defun.em
165dc0 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 63 6f 64 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 20 28 ms-i18n-detect-coding-function.(
165de0 73 69 7a 65 29 0a 20 20 28 64 65 74 65 63 74 2d 63 6f 64 69 6e 67 2d 72 65 67 69 6f 6e 20 28 70 size)...(detect-coding-region.(p
165e00 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b oint).........................(+
165e20 20 28 69 66 20 28 6e 75 6c 6c 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 6d 61 78 2d .(if.(null.emms-i18n-detect-max-
165e40 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 size)...........................
165e60 20 20 20 20 20 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....size.......................
165e80 20 20 20 20 20 20 20 28 6d 69 6e 20 73 69 7a 65 20 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 .......(min.size.emms-i18n-detec
165ea0 74 2d 6d 61 78 2d 73 69 7a 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-max-size))....................
165ec0 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d ........(point)).t))..(defun.emm
165ee0 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 62 75 66 66 65 72 2d 63 6f 64 69 6e 67 2d 73 79 73 74 s-i18n-detect-buffer-coding-syst
165f00 65 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 42 65 66 6f 72 65 20 63 61 6c em.(&optional.buf)..."Before.cal
165f20 6c 69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 ling.this.function,.make.sure.th
165f40 65 20 62 75 66 66 65 72 20 69 73 20 6c 69 74 65 72 61 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 e.buffer.is.literal."...(let.((s
165f60 69 7a 65 20 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 ize.(-.(point-max).(point-min)))
165f80 0a 20 20 20 20 20 20 20 20 28 5f 66 75 6e 63 20 28 61 70 70 65 6e 64 20 65 6d 6d 73 2d 69 31 38 .........(_func.(append.emms-i18
165fa0 6e 2d 63 6f 64 69 6e 67 2d 64 65 74 65 63 74 2d 66 75 6e 63 74 69 6f 6e 73 20 27 65 6d 6d 73 2d n-coding-detect-functions.'emms-
165fc0 69 31 38 6e 2d 64 65 74 65 63 74 2d 63 6f 64 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 i18n-detect-coding-function))...
165fe0 20 20 20 20 20 20 63 6f 64 69 6e 67 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f ......coding).....(save-excursio
166000 6e 0a 20 20 20 20 20 20 28 61 6e 64 20 62 75 66 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 n.......(and.buf.(set-buffer.buf
166020 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 )).......(goto-char.(point-min))
166040 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 73 69 7a 65 20 30 29 0a 20 20 20 20 20 20 20 20 .......(when.(>.size.0).........
166060 28 73 65 74 71 20 63 6f 64 69 6e 67 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 (setq.coding.(run-hook-with-args
166080 2d 75 6e 74 69 6c 2d 73 75 63 63 65 73 73 20 27 66 75 6e 63 20 73 69 7a 65 29 29 0a 20 20 20 20 -until-success.'func.size)).....
1660a0 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 62 ....(if.(member.(coding-system-b
1660c0 61 73 65 20 63 6f 64 69 6e 67 29 20 65 6d 6d 73 2d 69 31 38 6e 2d 6e 65 76 65 72 2d 75 73 65 64 ase.coding).emms-i18n-never-used
1660e0 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 -coding-system).............(set
166100 71 20 63 6f 64 69 6e 67 20 28 65 6d 6d 73 2d 69 31 38 6e 2d 64 65 74 65 63 74 2d 63 6f 64 69 6e q.coding.(emms-i18n-detect-codin
166120 67 2d 66 75 6e 63 74 69 6f 6e 20 73 69 7a 65 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6f g-function.size)))).......(if.(o
166140 72 20 28 6e 75 6c 6c 20 63 6f 64 69 6e 67 29 20 28 6d 65 6d 62 65 72 20 28 63 6f 64 69 6e 67 2d r.(null.coding).(member.(coding-
166160 73 79 73 74 65 6d 2d 62 61 73 65 20 63 6f 64 69 6e 67 29 20 65 6d 6d 73 2d 69 31 38 6e 2d 6e 65 system-base.coding).emms-i18n-ne
166180 76 65 72 2d 75 73 65 64 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 ver-used-coding-system))........
1661a0 20 20 20 65 6d 6d 73 2d 69 31 38 6e 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 ...emms-i18n-coding-system-for-r
1661c0 65 61 64 0a 20 20 20 20 20 20 20 20 63 6f 64 69 6e 67 29 29 29 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 ead.........coding))))..;;;.emms
1661e0 2d 69 31 38 6e 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 -i18n.el.ends.here..............
166200 65 6d 6d 73 2d 32 34 2f 73 72 63 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 emms-24/src/....................
166220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166260 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
166280 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 34 37 30 00 20 35 00 00 00 0000000.00000000000.011470..5...
1662a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1662c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1662e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
166320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
166340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1663a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1663c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1663e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166400 65 6d 6d 73 2d 32 34 2f 73 72 63 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e emms-24/src/emms-print-metadata.
166420 70 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 pl..............................
166440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166460 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
166480 30 30 30 36 32 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 31 30 00 20 30 00 00 00 0006245.00000000000.015710..0...
1664a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1664c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1664e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
166520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
166540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1665a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1665c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1665e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166600 23 21 2f 75 73 72 2f 62 69 6e 2f 70 65 72 6c 0a 23 20 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 #!/usr/bin/perl.#..emms-print-me
166620 74 61 64 61 74 61 2e 70 6c 20 2d 2d 2d 20 49 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 tadata.pl.---.Info.function.for.
166640 6c 69 62 74 61 67 0a 23 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 32 20 20 libtag.#....Copyright.(C).2012..
166660 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a Free.Software.Foundation,.Inc...
166680 23 20 41 75 74 68 6f 72 3a 20 4c 75 63 61 73 20 42 6f 6e 6e 65 74 20 3c 6c 62 6f 6e 6e 65 74 40 #.Author:.Lucas.Bonnet.<lbonnet@
1666a0 72 69 6e 63 65 76 65 6e 74 2e 6e 65 74 3e 0a 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 rincevent.net>..#.This.file.is.p
1666c0 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 23 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 art.of.EMMS...#.EMMS.is.free.sof
1666e0 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 tware;.you.can.redistribute.it.a
166700 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 23 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d nd/or.modify.#.it.under.the.term
166720 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 s.of.the.GNU.General.Public.Lice
166740 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 23 20 74 68 65 20 46 72 65 65 20 53 nse.as.published.by.#.the.Free.S
166760 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 oftware.Foundation;.either.versi
166780 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 23 20 61 6e 79 20 on.3,.or.(at.your.option).#.any.
1667a0 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 23 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 later.version...#.EMMS.is.distri
1667c0 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 buted.in.the.hope.that.it.will.b
1667e0 65 20 75 73 65 66 75 6c 2c 0a 23 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 e.useful,.#.but.WITHOUT.ANY.WARR
166800 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 ANTY;.without.even.the.implied.w
166820 61 72 72 61 6e 74 79 20 6f 66 0a 23 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 arranty.of.#.MERCHANTABILITY.or.
166840 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 FITNESS.FOR.A.PARTICULAR.PURPOSE
166860 2e 20 20 53 65 65 20 74 68 65 0a 23 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 ...See.the.#.GNU.General.Public.
166880 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 23 20 59 6f 75 License.for.more.details...#.You
1668a0 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 .should.have.received.a.copy.of.
1668c0 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 23 the.GNU.General.Public.License.#
1668e0 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 .along.with.EMMS;.see.the.file.C
166900 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 0a 23 20 74 68 65 20 OPYING...If.not,.write.to.#.the.
166920 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 Free.Software.Foundation,.Inc.,.
166940 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 51.Franklin.Street,.Fifth.Floor,
166960 0a 23 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a .#.Boston,.MA.02110-1301,.USA...
166980 75 73 65 20 73 74 72 69 63 74 3b 0a 75 73 65 20 77 61 72 6e 69 6e 67 73 3b 0a 0a 75 73 65 20 41 use.strict;.use.warnings;..use.A
1669a0 75 64 69 6f 3a 3a 53 63 61 6e 3b 0a 75 73 65 20 46 69 6c 65 3a 3a 42 61 73 65 6e 61 6d 65 3b 0a udio::Scan;.use.File::Basename;.
1669c0 0a 23 20 65 6e 61 62 6c 65 20 55 54 46 2d 38 20 6f 75 74 70 75 74 0a 62 69 6e 6d 6f 64 65 28 53 .#.enable.UTF-8.output.binmode(S
1669e0 54 44 4f 55 54 2c 20 22 3a 75 74 66 38 22 29 3b 0a 0a 6d 79 20 24 66 69 6c 65 20 3d 20 24 41 52 TDOUT,.":utf8");..my.$file.=.$AR
166a00 47 56 5b 30 5d 3b 0a 0a 23 20 53 63 61 6e 20 77 69 74 68 6f 75 74 20 72 65 61 64 69 6e 67 20 28 GV[0];..#.Scan.without.reading.(
166a20 70 6f 73 73 69 62 6c 79 20 6c 61 72 67 65 29 20 61 72 74 77 6f 72 6b 20 69 6e 74 6f 20 6d 65 6d possibly.large).artwork.into.mem
166a40 6f 72 79 2e 0a 23 20 49 6e 73 74 65 61 64 20 6f 66 20 62 69 6e 61 72 79 20 61 72 74 77 6f 72 6b ory..#.Instead.of.binary.artwork
166a60 20 64 61 74 61 2c 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 61 72 74 77 6f 72 6b 20 77 .data,.the.size.of.the.artwork.w
166a80 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 69 6e 73 74 65 61 64 2e 0a 6c 6f 63 61 6c 20 24 ill.be.returned.instead..local.$
166aa0 45 4e 56 7b 41 55 44 49 4f 5f 53 43 41 4e 5f 4e 4f 5f 41 52 54 57 4f 52 4b 7d 20 3d 20 31 3b 0a ENV{AUDIO_SCAN_NO_ARTWORK}.=.1;.
166ac0 6d 79 20 24 64 61 74 61 20 3d 20 41 75 64 69 6f 3a 3a 53 63 61 6e 2d 3e 73 63 61 6e 28 24 66 69 my.$data.=.Audio::Scan->scan($fi
166ae0 6c 65 29 3b 0a 0a 23 20 64 65 74 65 72 6d 69 6e 65 73 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 le);..#.determines.the.names.of.
166b00 74 61 67 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 66 69 6c 65 20 74 79 70 65 0a 6d 79 20 25 tags.according.to.file.type.my.%
166b20 65 78 74 5f 6d 61 70 20 3d 20 28 22 6d 70 33 22 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 7b 27 61 ext_map.=.("mp3".=>..........{'a
166b40 72 74 69 73 74 27 20 20 20 20 3d 3e 20 27 54 50 45 31 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 rtist'....=>.'TPE1',...........'
166b60 74 69 74 6c 65 27 20 20 20 20 20 3d 3e 20 27 54 49 54 32 27 2c 0a 20 20 20 20 20 20 20 20 20 20 title'.....=>.'TIT2',...........
166b80 27 61 6c 62 75 6d 27 20 20 20 20 20 3d 3e 20 27 54 41 4c 42 27 2c 0a 20 20 20 20 20 20 20 20 20 'album'.....=>.'TALB',..........
166ba0 20 27 74 72 61 63 6b 6e 75 6d 62 65 72 27 20 3d 3e 20 27 54 52 43 4b 27 2c 0a 20 20 20 20 20 20 .'tracknumber'.=>.'TRCK',.......
166bc0 20 20 20 20 27 63 6f 6d 70 6f 73 65 72 27 20 20 3d 3e 20 27 54 43 4f 4d 27 2c 0a 20 20 20 20 20 ....'composer'..=>.'TCOM',......
166be0 20 20 20 20 20 27 70 65 72 66 6f 72 6d 65 72 27 20 3d 3e 20 27 54 50 45 32 27 2c 0a 20 20 20 20 .....'performer'.=>.'TPE2',.....
166c00 20 20 20 20 20 20 27 79 65 61 72 27 20 20 20 20 20 20 3d 3e 20 27 54 44 52 43 27 2c 0a 20 20 20 ......'year'......=>.'TDRC',....
166c20 20 20 20 20 20 20 20 27 67 65 6e 72 65 27 20 20 20 20 20 3d 3e 20 27 54 43 4f 4e 27 2c 0a 20 20 .......'genre'.....=>.'TCON',...
166c40 20 20 20 20 20 20 20 20 27 63 6f 6d 6d 65 6e 74 27 20 20 20 3d 3e 20 27 43 4f 4d 4d 27 7d 2c 0a ........'comment'...=>.'COMM'},.
166c60 20 20 20 20 20 20 20 20 20 22 66 6c 63 22 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 7b 27 61 72 74 ........."flc".=>..........{'art
166c80 69 73 74 27 20 20 20 20 3d 3e 20 27 41 52 54 49 53 54 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 ist'....=>.'ARTIST',...........'
166ca0 74 69 74 6c 65 27 20 20 20 20 20 3d 3e 20 27 54 49 54 4c 45 27 2c 0a 20 20 20 20 20 20 20 20 20 title'.....=>.'TITLE',..........
166cc0 20 27 61 6c 62 75 6d 27 20 20 20 20 20 3d 3e 20 27 41 4c 42 55 4d 27 2c 0a 20 20 20 20 20 20 20 .'album'.....=>.'ALBUM',........
166ce0 20 20 20 27 74 72 61 63 6b 6e 75 6d 62 65 72 27 20 3d 3e 20 27 54 52 41 43 4b 4e 55 4d 42 45 52 ...'tracknumber'.=>.'TRACKNUMBER
166d00 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 63 6f 6d 70 6f 73 65 72 27 20 20 3d 3e 20 27 43 4f 4d ',...........'composer'..=>.'COM
166d20 50 4f 53 45 52 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 70 65 72 66 6f 72 6d 65 72 27 20 3d 3e POSER',...........'performer'.=>
166d40 20 27 50 45 52 46 4f 52 4d 45 52 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 79 65 61 72 27 20 20 .'PERFORMER',...........'year'..
166d60 20 20 20 20 3d 3e 20 27 44 41 54 45 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 67 65 6e 72 65 27 ....=>.'DATE',...........'genre'
166d80 20 20 20 20 20 3d 3e 20 27 47 45 4e 52 45 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 63 6f 6d 6d .....=>.'GENRE',...........'comm
166da0 65 6e 74 27 20 20 20 3d 3e 20 27 43 4f 4d 4d 45 4e 54 27 7d 2c 0a 20 20 20 20 20 20 20 20 20 22 ent'...=>.'COMMENT'},.........."
166dc0 6f 67 67 22 20 3d 3e 0a 20 20 20 20 20 20 20 20 20 7b 27 61 72 74 69 73 74 27 20 20 20 20 3d 3e ogg".=>..........{'artist'....=>
166de0 20 27 41 52 54 49 53 54 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 74 69 74 6c 65 27 20 20 20 20 .'ARTIST',...........'title'....
166e00 20 3d 3e 20 27 54 49 54 4c 45 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 61 6c 62 75 6d 27 20 20 .=>.'TITLE',...........'album'..
166e20 20 20 20 3d 3e 20 27 41 4c 42 55 4d 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 74 72 61 63 6b 6e ...=>.'ALBUM',...........'trackn
166e40 75 6d 62 65 72 27 20 3d 3e 20 27 54 52 41 43 4b 4e 55 4d 42 45 52 27 2c 0a 20 20 20 20 20 20 20 umber'.=>.'TRACKNUMBER',........
166e60 20 20 20 27 63 6f 6d 70 6f 73 65 72 27 20 20 3d 3e 20 27 43 4f 4d 50 4f 53 45 52 27 2c 0a 20 20 ...'composer'..=>.'COMPOSER',...
166e80 20 20 20 20 20 20 20 20 27 70 65 72 66 6f 72 6d 65 72 27 20 3d 3e 20 27 50 45 52 46 4f 52 4d 45 ........'performer'.=>.'PERFORME
166ea0 52 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 79 65 61 72 27 20 20 20 20 20 20 3d 3e 20 27 44 41 R',...........'year'......=>.'DA
166ec0 54 45 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 67 65 6e 72 65 27 20 20 20 20 20 3d 3e 20 27 47 TE',...........'genre'.....=>.'G
166ee0 45 4e 52 45 27 2c 0a 20 20 20 20 20 20 20 20 20 20 27 63 6f 6d 6d 65 6e 74 27 20 20 20 3d 3e 20 ENRE',...........'comment'...=>.
166f00 27 43 4f 4d 4d 45 4e 54 27 7d 2c 0a 20 20 20 20 20 20 20 20 29 3b 0a 0a 23 20 66 69 6e 64 20 6f 'COMMENT'},.........);..#.find.o
166f20 75 74 20 65 78 74 65 6e 73 69 6f 6e 0a 6d 79 20 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 64 69 72 ut.extension.my.($filename,.$dir
166f40 65 63 74 6f 72 69 65 73 2c 20 24 65 78 74 65 6e 73 69 6f 6e 29 20 3d 20 66 69 6c 65 70 61 72 73 ectories,.$extension).=.filepars
166f60 65 28 24 66 69 6c 65 2c 20 71 72 2f 5b 5e 2e 5d 2a 2f 29 3b 0a 6d 79 20 24 74 79 70 65 20 3d 20 e($file,.qr/[^.]*/);.my.$type.=.
166f80 41 75 64 69 6f 3a 3a 53 63 61 6e 2d 3e 74 79 70 65 5f 66 6f 72 28 6c 63 28 24 65 78 74 65 6e 73 Audio::Scan->type_for(lc($extens
166fa0 69 6f 6e 29 29 3b 0a 6d 79 20 24 74 61 67 5f 6d 61 70 20 3d 20 24 65 78 74 5f 6d 61 70 7b 24 74 ion));.my.$tag_map.=.$ext_map{$t
166fc0 79 70 65 7d 3b 0a 0a 23 20 70 72 69 6e 74 20 74 61 67 20 69 6e 66 6f 0a 70 72 69 6e 74 20 22 69 ype};..#.print.tag.info.print."i
166fe0 6e 66 6f 2d 61 72 74 69 73 74 3d 22 3b 20 20 20 20 20 20 73 61 66 65 5f 70 72 69 6e 74 28 27 61 nfo-artist=";......safe_print('a
167000 72 74 69 73 74 27 29 3b 0a 70 72 69 6e 74 20 22 69 6e 66 6f 2d 74 69 74 6c 65 3d 22 3b 20 20 20 rtist');.print."info-title=";...
167020 20 20 20 20 73 61 66 65 5f 70 72 69 6e 74 28 27 74 69 74 6c 65 27 29 3b 0a 70 72 69 6e 74 20 22 ....safe_print('title');.print."
167040 69 6e 66 6f 2d 61 6c 62 75 6d 3d 22 3b 20 20 20 20 20 20 20 73 61 66 65 5f 70 72 69 6e 74 28 27 info-album=";.......safe_print('
167060 61 6c 62 75 6d 27 29 3b 0a 70 72 69 6e 74 20 22 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 album');.print."info-tracknumber
167080 3d 22 3b 20 73 61 66 65 5f 70 72 69 6e 74 28 27 74 72 61 63 6b 6e 75 6d 62 65 72 27 29 3b 0a 70 =";.safe_print('tracknumber');.p
1670a0 72 69 6e 74 20 22 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 3d 22 3b 20 20 20 20 73 61 66 65 5f 70 rint."info-composer=";....safe_p
1670c0 72 69 6e 74 28 27 63 6f 6d 70 6f 73 65 72 27 29 3b 0a 70 72 69 6e 74 20 22 69 6e 66 6f 2d 70 65 rint('composer');.print."info-pe
1670e0 72 66 6f 72 6d 65 72 3d 22 3b 20 20 20 73 61 66 65 5f 70 72 69 6e 74 28 27 70 65 72 66 6f 72 6d rformer=";...safe_print('perform
167100 65 72 27 29 3b 0a 70 72 69 6e 74 20 22 69 6e 66 6f 2d 79 65 61 72 3d 22 3b 20 20 20 20 20 20 20 er');.print."info-year=";.......
167120 20 73 61 66 65 5f 70 72 69 6e 74 28 27 79 65 61 72 27 29 3b 0a 70 72 69 6e 74 20 22 69 6e 66 6f .safe_print('year');.print."info
167140 2d 67 65 6e 72 65 3d 22 3b 20 20 20 20 20 20 20 73 61 66 65 5f 70 72 69 6e 74 28 27 67 65 6e 72 -genre=";.......safe_print('genr
167160 65 27 29 3b 0a 70 72 69 6e 74 20 22 69 6e 66 6f 2d 6e 6f 74 65 3d 22 20 3b 20 20 20 20 20 20 20 e');.print."info-note=".;.......
167180 73 61 66 65 5f 70 72 69 6e 74 28 27 63 6f 6d 6d 65 6e 74 27 29 3b 0a 0a 70 72 69 6e 74 20 22 69 safe_print('comment');..print."i
1671a0 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 3d 22 2c 69 6e 74 28 24 64 61 74 61 2d 3e 7b 27 nfo-playing-time=",int($data->{'
1671c0 69 6e 66 6f 27 7d 2d 3e 7b 27 73 6f 6e 67 5f 6c 65 6e 67 74 68 5f 6d 73 27 7d 20 2f 20 31 30 30 info'}->{'song_length_ms'}./.100
1671e0 30 29 2c 22 5c 6e 22 3b 0a 0a 73 75 62 20 73 61 66 65 5f 70 72 69 6e 74 20 7b 0a 20 20 6d 79 20 0),"\n";..sub.safe_print.{...my.
167200 24 6b 20 3d 20 73 68 69 66 74 3b 0a 0a 20 20 69 66 20 28 64 65 66 69 6e 65 64 20 24 64 61 74 61 $k.=.shift;....if.(defined.$data
167220 2d 3e 7b 27 74 61 67 73 27 7d 2d 3e 7b 20 24 74 61 67 5f 6d 61 70 2d 3e 7b 24 6b 7d 20 7d 29 20 ->{'tags'}->{.$tag_map->{$k}.}).
167240 7b 0a 20 20 20 20 70 72 69 6e 74 20 24 64 61 74 61 2d 3e 7b 27 74 61 67 73 27 7d 2d 3e 7b 20 24 {.....print.$data->{'tags'}->{.$
167260 74 61 67 5f 6d 61 70 2d 3e 7b 24 6b 7d 20 7d 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 tag_map->{$k}.};...}.else.{.....
167280 70 72 69 6e 74 20 22 3c 6e 6f 20 24 6b 3e 22 3b 0a 20 20 7d 0a 20 20 70 72 69 6e 74 20 22 5c 6e print."<no.$k>";...}...print."\n
1672a0 22 3b 0a 7d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";.}............................
1672c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1672e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1673a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1673c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1673e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167400 65 6d 6d 73 2d 32 34 2f 73 72 63 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e emms-24/src/emms-print-metadata.
167420 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c...............................
167440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
167480 30 30 30 34 34 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 30 34 00 20 30 00 00 00 0004401.00000000000.015504..0...
1674a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1674c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1674e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
167520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
167540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1675a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1675c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1675e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167600 2f 2a 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 63 20 2d 2d 2d 20 49 6e 66 /*.emms-print-metadata.c.---.Inf
167620 6f 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6c 69 62 74 61 67 0a 20 20 20 43 6f 70 79 72 69 67 o.function.for.libtag....Copyrig
167640 68 74 20 28 43 29 20 32 30 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20 32 30 30 38 2c 20 32 ht.(C).2005,.2006,.2007,.2008,.2
167660 30 30 39 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 009..Free.Software.Foundation,.I
167680 6e 63 2e 0a 0a 41 75 74 68 6f 72 3a 20 54 72 65 6e 74 20 42 75 63 6b 20 3c 74 72 65 6e 74 62 75 nc...Author:.Trent.Buck.<trentbu
1676a0 63 6b 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 ck@gmail.com>..This.file.is.part
1676c0 20 6f 66 20 45 4d 4d 53 2e 0a 0a 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 .of.EMMS...EMMS.is.free.software
1676e0 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 ;.you.can.redistribute.it.and/or
167700 20 6d 6f 64 69 66 79 0a 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 .modify.it.under.the.terms.of.th
167720 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 e.GNU.General.Public.License.as.
167740 70 75 62 6c 69 73 68 65 64 20 62 79 0a 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 published.by.the.Free.Software.F
167760 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 oundation;.either.version.3,.or.
167780 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 (at.your.option).any.later.versi
1677a0 6f 6e 2e 0a 0a 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 on...EMMS.is.distributed.in.the.
1677c0 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 62 75 74 hope.that.it.will.be.useful,.but
1677e0 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 .WITHOUT.ANY.WARRANTY;.without.e
167800 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 4d 45 52 43 ven.the.implied.warranty.of.MERC
167820 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 HANTABILITY.or.FITNESS.FOR.A.PAR
167840 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 47 4e 55 20 47 65 TICULAR.PURPOSE...See.the.GNU.Ge
167860 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 neral.Public.License.for.more.de
167880 74 61 69 6c 73 2e 0a 0a 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 tails...You.should.have.received
1678a0 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 .a.copy.of.the.GNU.General.Publi
1678c0 63 20 4c 69 63 65 6e 73 65 0a 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 c.License.along.with.EMMS;.see.t
1678e0 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 he.file.COPYING...If.not,.write.
167900 74 6f 0a 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c to.the.Free.Software.Foundation,
167920 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 .Inc.,.51.Franklin.Street,.Fifth
167940 20 46 6c 6f 6f 72 2c 0a 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 .Floor,.Boston,.MA.02110-1301,.U
167960 53 41 2e 20 20 2a 2f 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 69 6e SA...*/..#include.<stdlib.h>.#in
167980 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 74 61 67 5f 63 2e clude.<stdio.h>.#include.<tag_c.
1679a0 68 3e 0a 0a 69 6e 74 0a 6d 61 69 6e 20 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 h>..int.main.(int.argc,.char.**a
1679c0 72 67 76 29 0a 7b 0a 20 20 54 61 67 4c 69 62 5f 46 69 6c 65 20 2a 66 69 6c 65 3b 0a 20 20 54 61 rgv).{...TagLib_File.*file;...Ta
1679e0 67 4c 69 62 5f 54 61 67 20 2a 74 61 67 3b 0a 20 20 63 6f 6e 73 74 20 54 61 67 4c 69 62 5f 41 75 gLib_Tag.*tag;...const.TagLib_Au
167a00 64 69 6f 50 72 6f 70 65 72 74 69 65 73 20 2a 70 72 6f 70 65 72 74 69 65 73 3b 0a 0a 20 20 69 66 dioProperties.*properties;....if
167a20 20 28 61 72 67 63 20 21 3d 20 32 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 .(argc.!=.2).....{.......fprintf
167a40 20 28 73 74 64 65 72 72 2c 20 22 75 73 61 67 65 3a 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 .(stderr,."usage:.emms-print-met
167a60 61 64 61 74 61 20 66 69 6c 65 2e 7b 6d 70 33 2c 6f 67 67 2c 66 6c 61 63 7d 5c 6e 6f 74 68 65 72 adata.file.{mp3,ogg,flac}\nother
167a80 20 66 6f 72 6d 61 74 73 20 6d 61 79 20 77 6f 72 6b 20 61 73 20 77 65 6c 6c 2e 5c 6e 22 29 3b 0a .formats.may.work.as.well.\n");.
167aa0 20 20 20 20 20 20 65 78 69 74 20 28 31 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 66 69 6c 65 20 3d 20 ......exit.(1);.....}....file.=.
167ac0 74 61 67 6c 69 62 5f 66 69 6c 65 5f 6e 65 77 20 28 61 72 67 76 5b 31 5d 29 3b 0a 0a 20 20 69 66 taglib_file_new.(argv[1]);....if
167ae0 20 28 21 66 69 6c 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 20 28 73 74 .(!file).....{.......fprintf.(st
167b00 64 65 72 72 2c 20 22 25 73 3a 20 46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f derr,."%s:.File.does.not.exist.o
167b20 72 20 69 73 20 6f 66 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 74 79 70 65 5c 6e 22 2c 20 61 72 67 76 r.is.of.an.unknown.type\n",.argv
167b40 5b 31 5d 29 3b 0a 20 20 20 20 20 20 65 78 69 74 20 28 31 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 74 [1]);.......exit.(1);.....}....t
167b60 61 67 20 3d 20 74 61 67 6c 69 62 5f 66 69 6c 65 5f 74 61 67 20 28 66 69 6c 65 29 3b 0a 0a 20 20 ag.=.taglib_file_tag.(file);....
167b80 2f 2a 20 41 70 70 61 72 65 6e 74 6c 79 2c 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 6e 61 /*.Apparently,.if.the.file.is.na
167ba0 6d 65 64 20 66 6f 6f 2e 6d 70 33 20 6f 72 20 73 69 6d 69 6c 61 72 2c 20 74 68 65 20 6c 69 62 72 med.foo.mp3.or.similar,.the.libr
167bc0 61 72 79 0a 20 20 20 20 20 73 74 69 6c 6c 20 63 61 6e 20 6f 70 65 6e 20 69 74 2c 20 66 6f 72 20 ary......still.can.open.it,.for.
167be0 77 68 61 74 65 76 65 72 20 72 65 61 73 6f 6e 2e 0a 20 20 2a 2f 0a 20 20 69 66 20 28 21 74 61 67 whatever.reason....*/...if.(!tag
167c00 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 20 28 73 74 64 65 72 72 2c 20 22 ).....{.......fprintf.(stderr,."
167c20 25 73 3a 20 46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 72 20 69 73 20 6f 66 %s:.File.does.not.exist.or.is.of
167c40 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 74 79 70 65 5c 6e 22 2c 20 61 72 67 76 5b 31 5d 29 3b 0a 20 .an.unknown.type\n",.argv[1]);..
167c60 20 20 20 20 20 65 78 69 74 20 28 31 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 70 72 69 6e 74 66 20 28 .....exit.(1);.....}....printf.(
167c80 22 69 6e 66 6f 2d 61 72 74 69 73 74 3d 25 73 5c 6e 22 2c 20 74 61 67 6c 69 62 5f 74 61 67 5f 61 "info-artist=%s\n",.taglib_tag_a
167ca0 72 74 69 73 74 20 28 74 61 67 29 29 3b 0a 20 20 70 72 69 6e 74 66 20 28 22 69 6e 66 6f 2d 74 69 rtist.(tag));...printf.("info-ti
167cc0 74 6c 65 3d 25 73 5c 6e 22 2c 20 74 61 67 6c 69 62 5f 74 61 67 5f 74 69 74 6c 65 20 28 74 61 67 tle=%s\n",.taglib_tag_title.(tag
167ce0 29 29 3b 0a 20 20 70 72 69 6e 74 66 20 28 22 69 6e 66 6f 2d 61 6c 62 75 6d 3d 25 73 5c 6e 22 2c ));...printf.("info-album=%s\n",
167d00 20 74 61 67 6c 69 62 5f 74 61 67 5f 61 6c 62 75 6d 20 28 74 61 67 29 29 3b 0a 20 20 70 72 69 6e .taglib_tag_album.(tag));...prin
167d20 74 66 20 28 22 69 6e 66 6f 2d 74 72 61 63 6b 6e 75 6d 62 65 72 3d 25 64 5c 6e 22 2c 20 74 61 67 tf.("info-tracknumber=%d\n",.tag
167d40 6c 69 62 5f 74 61 67 5f 74 72 61 63 6b 20 28 74 61 67 29 29 3b 0a 20 20 70 72 69 6e 74 66 20 28 lib_tag_track.(tag));...printf.(
167d60 22 69 6e 66 6f 2d 79 65 61 72 3d 25 64 5c 6e 22 2c 20 74 61 67 6c 69 62 5f 74 61 67 5f 79 65 61 "info-year=%d\n",.taglib_tag_yea
167d80 72 20 28 74 61 67 29 29 3b 0a 20 20 70 72 69 6e 74 66 20 28 22 69 6e 66 6f 2d 67 65 6e 72 65 3d r.(tag));...printf.("info-genre=
167da0 25 73 5c 6e 22 2c 20 74 61 67 6c 69 62 5f 74 61 67 5f 67 65 6e 72 65 20 28 74 61 67 29 29 3b 0a %s\n",.taglib_tag_genre.(tag));.
167dc0 20 20 70 72 69 6e 74 66 20 28 22 69 6e 66 6f 2d 6e 6f 74 65 3d 25 73 5c 6e 22 2c 20 74 61 67 6c ..printf.("info-note=%s\n",.tagl
167de0 69 62 5f 74 61 67 5f 63 6f 6d 6d 65 6e 74 20 28 74 61 67 29 29 3b 0a 0a 20 20 70 72 6f 70 65 72 ib_tag_comment.(tag));....proper
167e00 74 69 65 73 20 3d 20 74 61 67 6c 69 62 5f 66 69 6c 65 5f 61 75 64 69 6f 70 72 6f 70 65 72 74 69 ties.=.taglib_file_audioproperti
167e20 65 73 20 28 66 69 6c 65 29 3b 0a 20 20 70 72 69 6e 74 66 20 28 22 69 6e 66 6f 2d 70 6c 61 79 69 es.(file);...printf.("info-playi
167e40 6e 67 2d 74 69 6d 65 3d 25 64 5c 6e 22 2c 0a 09 20 20 70 72 6f 70 65 72 74 69 65 73 20 3f 20 74 ng-time=%d\n",....properties.?.t
167e60 61 67 6c 69 62 5f 61 75 64 69 6f 70 72 6f 70 65 72 74 69 65 73 5f 6c 65 6e 67 74 68 20 28 70 72 aglib_audioproperties_length.(pr
167e80 6f 70 65 72 74 69 65 73 29 20 3a 20 30 29 3b 0a 0a 20 20 74 61 67 6c 69 62 5f 74 61 67 5f 66 72 operties).:.0);....taglib_tag_fr
167ea0 65 65 5f 73 74 72 69 6e 67 73 20 28 29 3b 0a 20 20 74 61 67 6c 69 62 5f 66 69 6c 65 5f 66 72 65 ee_strings.();...taglib_file_fre
167ec0 65 20 28 66 69 6c 65 29 3b 0a 0a 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 2f 2a 20 65 6d 6d e.(file);....return.0;.}../*.emm
167ee0 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 63 20 65 6e 64 73 20 68 65 72 65 2e 20 2a 2f s-print-metadata.c.ends.here..*/
167f00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168000 65 6d 6d 73 2d 32 34 2f 73 72 63 2f 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e emms-24/src/emms-print-metadata.
168020 63 70 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cpp.............................
168040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
168080 30 30 30 35 35 32 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 35 32 00 20 30 00 00 00 0005523.00000000000.016052..0...
1680a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
168120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
168140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1681a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1681c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1681e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168200 2f 2a 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 2e 63 70 70 20 2d 2d 2d 20 49 /*.emms-print-metadata.cpp.---.I
168220 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 54 61 67 4c 69 62 0a 20 20 20 43 6f 70 79 72 nfo.function.for.TagLib....Copyr
168240 69 67 68 74 20 28 43 29 20 32 30 31 36 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 ight.(C).2016..Free.Software.Fou
168260 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 20 20 20 41 75 74 68 6f 72 3a 20 50 65 74 74 65 72 ndation,.Inc......Author:.Petter
168280 69 20 48 69 6e 74 73 61 6e 65 6e 20 3c 70 65 74 74 65 72 69 68 40 69 6b 69 2e 66 69 3e 0a 0a 20 i.Hintsanen.<petterih@iki.fi>...
1682a0 20 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 20 20 ..This.file.is.part.of.EMMS.....
1682c0 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 .EMMS.is.free.software;.you.can.
1682e0 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 20 20 redistribute.it.and/or.modify...
168300 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 .it.under.the.terms.of.the.GNU.G
168320 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 eneral.Public.License.as.publish
168340 65 64 20 62 79 0a 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 ed.by....the.Free.Software.Found
168360 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 ation;.either.version.3,.or.(at.
168380 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 20 20 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f your.option)....any.later.versio
1683a0 6e 2e 0a 0a 20 20 20 45 4d 4d 53 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 n......EMMS.is.distributed.in.th
1683c0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 20 e.hope.that.it.will.be.useful,..
1683e0 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ..but.WITHOUT.ANY.WARRANTY;.with
168400 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
168420 0a 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 ....MERCHANTABILITY.or.FITNESS.F
168440 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
168460 65 0a 20 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 e....GNU.General.Public.License.
168480 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 59 6f 75 20 73 68 6f 75 6c 64 for.more.details......You.should
1684a0 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 .have.received.a.copy.of.the.GNU
1684c0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 20 20 61 6c 6f 6e 67 .General.Public.License....along
1684e0 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .with.EMMS;.see.the.file.COPYING
168500 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 0a 20 20 20 74 68 65 20 46 72 65 65 20 ...If.not,.write.to....the.Free.
168520 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
168540 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 20 20 20 42 anklin.Street,.Fifth.Floor,....B
168560 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 20 20 2a 2f 0a 0a oston,.MA.02110-1301,.USA...*/..
168580 23 69 6e 63 6c 75 64 65 20 3c 74 61 67 6c 69 62 2f 66 69 6c 65 72 65 66 2e 68 3e 0a 23 69 6e 63 #include.<taglib/fileref.h>.#inc
1685a0 6c 75 64 65 20 3c 74 61 67 6c 69 62 2f 74 61 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 74 61 lude.<taglib/tag.h>.#include.<ta
1685c0 67 6c 69 62 2f 74 70 72 6f 70 65 72 74 79 6d 61 70 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 69 glib/tpropertymap.h>.#include.<i
1685e0 6f 73 74 72 65 61 6d 3e 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 63 6f 6e ostream>..static.const.char*.con
168600 73 74 20 74 61 67 73 5f 74 6f 5f 65 78 74 72 61 63 74 5b 5d 20 3d 20 7b 0a 20 20 22 61 6c 62 75 st.tags_to_extract[].=.{..."albu
168620 6d 22 2c 0a 20 20 22 61 6c 62 75 6d 73 6f 72 74 22 2c 0a 20 20 22 61 6c 62 75 6d 61 72 74 69 73 m",..."albumsort",..."albumartis
168640 74 22 2c 0a 20 20 22 61 6c 62 75 6d 61 72 74 69 73 74 73 6f 72 74 22 2c 0a 20 20 22 61 72 74 69 t",..."albumartistsort",..."arti
168660 73 74 22 2c 0a 20 20 22 61 72 74 69 73 74 73 6f 72 74 22 2c 0a 20 20 22 63 6f 6d 70 6f 73 65 72 st",..."artistsort",..."composer
168680 22 2c 0a 20 20 22 63 6f 6d 70 6f 73 65 72 73 6f 72 74 22 2c 0a 20 20 22 70 65 72 66 6f 72 6d 65 ",..."composersort",..."performe
1686a0 72 22 2c 0a 20 20 22 79 65 61 72 22 2c 0a 20 20 22 6f 72 69 67 69 6e 61 6c 79 65 61 72 22 2c 0a r",..."year",..."originalyear",.
1686c0 20 20 22 64 61 74 65 22 2c 0a 20 20 22 6f 72 69 67 69 6e 61 6c 64 61 74 65 22 2c 0a 20 20 22 67 .."date",..."originaldate",..."g
1686e0 65 6e 72 65 22 2c 0a 20 20 22 6c 61 62 65 6c 22 2c 0a 20 20 22 74 69 74 6c 65 22 2c 0a 20 20 22 enre",..."label",..."title",..."
168700 74 69 74 6c 65 73 6f 72 74 22 2c 0a 20 20 22 74 72 61 63 6b 6e 75 6d 62 65 72 22 2c 0a 20 20 22 titlesort",..."tracknumber",..."
168720 64 69 73 63 6e 75 6d 62 65 72 22 0a 7d 3b 0a 0a 76 6f 69 64 20 70 72 69 6e 74 5f 74 61 67 20 28 discnumber".};..void.print_tag.(
168740 63 6f 6e 73 74 20 54 61 67 4c 69 62 3a 3a 50 72 6f 70 65 72 74 79 4d 61 70 26 20 74 61 67 73 2c const.TagLib::PropertyMap&.tags,
168760 20 63 6f 6e 73 74 20 73 74 64 3a 3a 73 74 72 69 6e 67 26 20 74 61 67 29 3b 0a 0a 69 6e 74 0a 6d .const.std::string&.tag);..int.m
168780 61 69 6e 20 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 2a 20 61 72 67 76 5b 5d 29 0a 7b 0a 20 ain.(int.argc,.char*.argv[]).{..
1687a0 20 69 66 20 28 61 72 67 63 20 21 3d 20 32 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 73 74 64 3a .if.(argc.!=.2).....{.......std:
1687c0 3a 63 65 72 72 20 3c 3c 20 61 72 67 76 5b 30 5d 20 3c 3c 20 22 3a 20 22 0a 09 09 3c 3c 20 22 75 :cerr.<<.argv[0].<<.":."...<<."u
1687e0 73 61 67 65 3a 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 6d 65 74 61 64 61 74 61 20 46 49 4c 45 4e 41 sage:.emms-print-metadata.FILENA
168800 4d 45 22 0a 09 09 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 0a 09 09 3c 3c 20 22 46 49 4c 45 4e 41 4d ME"...<<.std::endl...<<."FILENAM
168820 45 20 6d 75 73 74 20 65 6e 64 20 74 6f 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 65 78 74 65 6e E.must.end.to.one.of.these.exten
168840 73 69 6f 6e 73 3a 20 22 0a 09 09 3c 3c 20 54 61 67 4c 69 62 3a 3a 46 69 6c 65 52 65 66 3a 3a 64 sions:."...<<.TagLib::FileRef::d
168860 65 66 61 75 6c 74 46 69 6c 65 45 78 74 65 6e 73 69 6f 6e 73 20 28 29 2e 74 6f 53 74 72 69 6e 67 efaultFileExtensions.().toString
168880 20 28 29 0a 09 09 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 0a 20 20 20 20 20 20 72 65 74 75 72 6e .()...<<.std::endl;.......return
1688a0 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 54 61 67 4c 69 62 3a 3a 46 69 6c 65 52 65 66 20 66 69 6c .1;.....}....TagLib::FileRef.fil
1688c0 65 20 28 61 72 67 76 5b 31 5d 29 3b 0a 20 20 69 66 20 28 66 69 6c 65 2e 69 73 4e 75 6c 6c 20 28 e.(argv[1]);...if.(file.isNull.(
1688e0 29 29 20 7b 0a 20 20 20 20 73 74 64 3a 3a 63 65 72 72 20 3c 3c 20 61 72 67 76 5b 30 5d 20 3c 3c )).{.....std::cerr.<<.argv[0].<<
168900 20 22 3a 20 22 0a 09 20 20 20 20 20 20 3c 3c 20 61 72 67 76 5b 31 5d 20 3c 3c 20 22 3a 20 22 0a .":."........<<.argv[1].<<.":.".
168920 09 20 20 20 20 20 20 3c 3c 20 22 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f .......<<."file.does.not.exist.o
168940 72 20 69 73 20 6f 66 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 74 79 70 65 22 0a 09 20 20 20 20 20 20 r.is.of.an.unknown.type"........
168960 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 20 20 7d 0a <<.std::endl;.....return.1;...}.
168980 0a 20 20 63 6f 6e 73 74 20 54 61 67 4c 69 62 3a 3a 50 72 6f 70 65 72 74 79 4d 61 70 20 74 61 67 ...const.TagLib::PropertyMap.tag
1689a0 73 20 3d 20 66 69 6c 65 2e 66 69 6c 65 20 28 29 2d 3e 70 72 6f 70 65 72 74 69 65 73 20 28 29 3b s.=.file.file.()->properties.();
1689c0 0a 20 20 69 66 20 28 74 61 67 73 2e 69 73 45 6d 70 74 79 20 28 29 29 20 7b 0a 20 20 20 20 73 74 ...if.(tags.isEmpty.()).{.....st
1689e0 64 3a 3a 63 65 72 72 20 3c 3c 20 61 72 67 76 5b 30 5d 20 3c 3c 20 22 3a 20 22 0a 09 20 20 20 20 d::cerr.<<.argv[0].<<.":."......
168a00 20 20 3c 3c 20 61 72 67 76 5b 31 5d 20 3c 3c 20 22 3a 20 22 0a 09 20 20 20 20 20 20 3c 3c 20 22 ..<<.argv[1].<<.":."........<<."
168a20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 74 61 67 73 20 6f 72 20 69 73 20 6f 66 file.does.not.have.tags.or.is.of
168a40 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 74 79 70 65 22 0a 09 20 20 20 20 20 20 3c 3c 20 73 74 64 3a .an.unknown.type"........<<.std:
168a60 3a 65 6e 64 6c 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 20 20 7d 0a 0a 20 20 66 6f 72 20 :endl;.....return.1;...}....for.
168a80 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 73 69 7a 65 6f 66 20 (unsigned.int.i.=.0;.i.<.sizeof.
168aa0 28 74 61 67 73 5f 74 6f 5f 65 78 74 72 61 63 74 29 20 2f 20 73 69 7a 65 6f 66 20 28 63 68 61 72 (tags_to_extract)./.sizeof.(char
168ac0 2a 29 3b 0a 20 20 20 20 20 20 20 69 2b 2b 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 70 72 69 6e *);........i++).....{.......prin
168ae0 74 5f 74 61 67 20 28 74 61 67 73 2c 20 74 61 67 73 5f 74 6f 5f 65 78 74 72 61 63 74 5b 69 5d 29 t_tag.(tags,.tags_to_extract[i])
168b00 3b 0a 20 20 20 20 7d 0a 0a 20 20 69 6e 74 20 6c 65 6e 67 74 68 20 3d 20 30 3b 0a 20 20 69 66 20 ;.....}....int.length.=.0;...if.
168b20 28 66 69 6c 65 2e 61 75 64 69 6f 50 72 6f 70 65 72 74 69 65 73 20 28 29 29 0a 20 20 20 20 7b 0a (file.audioProperties.()).....{.
168b40 20 20 20 20 20 20 63 6f 6e 73 74 20 54 61 67 4c 69 62 3a 3a 41 75 64 69 6f 50 72 6f 70 65 72 74 ......const.TagLib::AudioPropert
168b60 69 65 73 2a 20 70 72 6f 70 65 72 74 69 65 73 20 3d 20 66 69 6c 65 2e 61 75 64 69 6f 50 72 6f 70 ies*.properties.=.file.audioProp
168b80 65 72 74 69 65 73 20 28 29 3b 0a 20 20 20 20 20 20 6c 65 6e 67 74 68 20 3d 20 70 72 6f 70 65 72 erties.();.......length.=.proper
168ba0 74 69 65 73 2d 3e 6c 65 6e 67 74 68 20 28 29 3b 0a 20 20 20 20 7d 0a 20 20 73 74 64 3a 3a 63 6f ties->length.();.....}...std::co
168bc0 75 74 20 3c 3c 20 22 69 6e 66 6f 2d 70 6c 61 79 69 6e 67 2d 74 69 6d 65 3d 22 20 3c 3c 20 6c 65 ut.<<."info-playing-time=".<<.le
168be0 6e 67 74 68 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 0a 0a 20 20 72 65 74 75 72 6e 20 30 3b 0a ngth.<<.std::endl;....return.0;.
168c00 7d 0a 0a 76 6f 69 64 0a 70 72 69 6e 74 5f 74 61 67 20 28 63 6f 6e 73 74 20 54 61 67 4c 69 62 3a }..void.print_tag.(const.TagLib:
168c20 3a 50 72 6f 70 65 72 74 79 4d 61 70 26 20 74 61 67 73 2c 20 63 6f 6e 73 74 20 73 74 64 3a 3a 73 :PropertyMap&.tags,.const.std::s
168c40 74 72 69 6e 67 26 20 74 61 67 29 0a 7b 0a 20 20 54 61 67 4c 69 62 3a 3a 53 74 72 69 6e 67 4c 69 tring&.tag).{...TagLib::StringLi
168c60 73 74 20 76 61 6c 75 65 73 20 3d 20 74 61 67 73 5b 74 61 67 5d 3b 0a 20 20 69 66 20 28 21 76 61 st.values.=.tags[tag];...if.(!va
168c80 6c 75 65 73 2e 69 73 45 6d 70 74 79 20 28 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 63 6f 6e lues.isEmpty.()).....{.......con
168ca0 73 74 20 54 61 67 4c 69 62 3a 3a 53 74 72 69 6e 67 26 20 76 61 6c 75 65 20 3d 20 76 61 6c 75 65 st.TagLib::String&.value.=.value
168cc0 73 2e 66 72 6f 6e 74 20 28 29 3b 0a 20 20 20 20 20 20 73 74 64 3a 3a 63 6f 75 74 20 3c 3c 20 22 s.front.();.......std::cout.<<."
168ce0 69 6e 66 6f 2d 22 20 3c 3c 20 74 61 67 20 3c 3c 20 22 3d 22 20 3c 3c 20 76 61 6c 75 65 2e 74 6f info-".<<.tag.<<."=".<<.value.to
168d00 38 42 69 74 20 28 74 72 75 65 29 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 0a 20 20 20 20 7d 0a 8Bit.(true).<<.std::endl;.....}.
168d20 7d 0a 0a 2f 2a 20 65 6d 6d 73 2d 70 72 69 6e 74 2d 74 61 67 6c 69 62 2d 6d 65 74 61 64 61 74 61 }../*.emms-print-taglib-metadata
168d40 2e 63 70 70 20 65 6e 64 73 20 68 65 72 65 2e 20 2a 2f 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 .cpp.ends.here..*/..............
168d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168e00 65 6d 6d 73 2d 32 34 2f 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2e 65 6c 00 emms-24/emms-info-native-spc.el.
168e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
168e80 30 30 31 30 30 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 35 37 00 20 30 00 00 00 0010031.00000000000.015157..0...
168ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
168f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
168f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
168fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
169000 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2e 65 6c 20 2d 2d 2d 20 ;;;.emms-info-native-spc.el.---.
169020 45 4d 4d 53 20 69 6e 66 6f 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 53 50 43 20 66 69 6c 65 EMMS.info.functions.for.SPC.file
169040 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a s..-*-.lexical-binding:.t;.-*-..
169060 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 20 46 72 65 65 20 53 6f 66 74 ;;.Copyright.(C).2023..Free.Soft
169080 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 ware.Foundation,.Inc...;;.Author
1690a0 3a 20 57 61 72 72 65 6e 20 57 69 6c 6b 69 6e 73 6f 6e 20 3c 77 61 72 72 65 6e 77 69 6c 6b 69 6e :.Warren.Wilkinson.<warrenwilkin
1690c0 73 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 son@gmail.com>..;;.This.file.is.
1690e0 70 61 72 74 20 6f 66 20 45 4d 4d 53 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 66 72 65 65 20 73 part.of.EMMS...;;.EMMS.is.free.s
169100 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 oftware;.you.can.redistribute.it
169120 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e 64 65 72 20 74 68 65 20 74 .and/or.modify.it.;;.under.the.t
169140 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
169160 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 icense.as.published.by.;;.the.Fr
169180 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 ee.Software.Foundation;.either.v
1691a0 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b ersion.3,.or.(at.your.option).;;
1691c0 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 45 4d 4d 53 20 69 73 20 .any.later.version...;;.EMMS.is.
1691e0 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 distributed.in.the.hope.that.it.
169200 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 will.be.useful,.but.WITHOUT.;;.A
169220 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d NY.WARRANTY;.without.even.the.im
169240 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 plied.warranty.of.MERCHANTABILIT
169260 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 Y.;;.or.FITNESS.FOR.A.PARTICULAR
169280 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 .PURPOSE...See.the.GNU.General.P
1692a0 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c ublic.;;.License.for.more.detail
1692c0 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 s...;;.You.should.have.received.
1692e0 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 a.copy.of.the.GNU.General.Public
169300 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 45 4d 4d 53 3b 20 73 65 65 .License.;;.along.with.EMMS;.see
169320 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 .the.file.COPYING..If.not,.write
169340 20 74 6f 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .to.the.Free.;;.Software.Foundat
169360 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 ion,.Inc.,.51.Franklin.Street,.F
169380 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d ifth.Floor,.Boston,.;;.MA.02110-
1693a0 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 1301,.USA...;;;.Commentary:..;;.
1693c0 54 68 69 73 20 66 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 6e 61 74 69 76 65 20 65 6d 6d 73 This.file.provides.a.native.emms
1693e0 2d 69 6e 66 6f 2d 6d 65 74 68 6f 64 20 66 6f 72 20 53 50 43 20 66 69 6c 65 73 2e 20 28 77 65 6c -info-method.for.SPC.files..(wel
169400 6c 2c 0a 3b 3b 20 61 63 74 75 61 6c 6c 79 20 74 68 65 20 49 44 36 36 36 20 74 61 67 20 65 6d 62 l,.;;.actually.the.ID666.tag.emb
169420 65 64 64 65 64 20 69 6e 73 69 64 65 20 74 68 65 6d 29 2e 20 20 22 4e 61 74 69 76 65 22 20 6d 65 edded.inside.them)..."Native".me
169440 61 6e 73 20 61 0a 3b 3b 20 70 75 72 65 20 45 6d 61 63 73 20 4c 69 73 70 20 69 6d 70 6c 65 6d 65 ans.a.;;.pure.Emacs.Lisp.impleme
169460 6e 74 61 74 69 6f 6e 20 69 6e 73 74 65 61 64 20 6f 66 20 6f 6e 65 20 72 65 6c 79 69 6e 67 20 6f ntation.instead.of.one.relying.o
169480 6e 20 65 78 74 65 72 6e 61 6c 0a 3b 3b 20 74 6f 6f 6c 73 20 6f 72 20 6c 69 62 72 61 72 69 65 73 n.external.;;.tools.or.libraries
1694a0 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 62 69 6e 64 61 74 29 0a ...;;;.Code:..(require.'bindat).
1694c0 0a 28 64 65 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d .(defconst.emms-info-native-spc-
1694e0 2d 69 64 36 36 36 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 0a 20 20 22 53 4e 45 53 2d 53 50 43 -id666-magic-pattern..."SNES-SPC
169500 37 30 30 20 53 6f 75 6e 64 20 46 69 6c 65 20 44 61 74 61 20 76 30 2e 33 30 22 0a 20 20 22 49 44 700.Sound.File.Data.v0.30"..."ID
169520 36 36 36 20 68 65 61 64 65 72 20 6d 61 67 69 63 20 70 61 74 74 65 72 6e 2e 22 29 0a 0a 28 64 65 666.header.magic.pattern.")..(de
169540 66 63 6f 6e 73 74 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 69 64 36 fconst.emms-info-native-spc--id6
169560 36 36 2d 68 65 61 64 65 72 2d 62 69 6e 64 61 74 2d 73 70 65 63 0a 20 20 28 69 66 20 28 65 76 61 66-header-bindat-spec...(if.(eva
169580 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 62 69 6e 64 61 74 2d l-when-compile.(fboundp.'bindat-
1695a0 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 62 69 6e 64 61 74 2d 74 79 70 65 0a 20 20 20 20 20 20 type)).......(bindat-type.......
1695c0 20 20 28 66 69 6c 65 2d 69 64 65 6e 74 69 66 69 65 72 20 73 74 72 20 33 33 29 0a 20 20 20 20 20 ..(file-identifier.str.33)......
1695e0 20 20 20 28 5f 20 75 6e 69 74 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 66 69 6c 65 2d 69 ...(_.unit.(unless.(equal.file-i
169600 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dentifier.......................
169620 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 69 .........emms-info-native-spc--i
169640 64 36 36 36 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 d666-magic-pattern).............
169660 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 44 36 36 36 20 66 72 61 6d 69 6e 67 20 6d 69 73 6d ......(error."ID666.framing.mism
169680 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 6f 74 20 60 25 73 27 22 0a 20 atch:.expected.`%s',.got.`%s'"..
1696a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 2d 69 6e 66 ........................emms-inf
1696c0 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 69 64 36 36 36 2d 6d 61 67 69 63 2d 70 61 74 74 65 72 o-native-spc--id666-magic-patter
1696e0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 2d n..........................file-
169700 69 64 65 6e 74 69 66 69 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 75 73 65 64 20 75 69 identifier))).........(unused.ui
169720 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 68 61 73 2d 69 64 36 36 36 20 75 38 29 0a 20 20 nt.16).........(has-id666.u8)...
169740 20 20 20 20 20 20 28 72 65 76 69 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 70 63 2d ......(revision.u8).........(pc-
169760 72 65 67 20 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 61 2d 72 65 67 20 75 38 29 0a reg.uint.16).........(a-reg.u8).
169780 20 20 20 20 20 20 20 20 28 78 2d 72 65 67 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 79 2d 72 65 ........(x-reg.u8).........(y-re
1697a0 67 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 70 73 77 2d 72 65 67 20 75 38 29 0a 20 20 20 20 20 g.u8).........(psw-reg.u8)......
1697c0 20 20 20 28 73 70 2d 72 65 67 20 75 38 29 0a 20 20 20 20 20 20 20 20 28 72 65 73 2d 72 65 67 20 ...(sp-reg.u8).........(res-reg.
1697e0 75 69 6e 74 20 31 36 29 0a 20 20 20 20 20 20 20 20 28 73 6f 6e 67 2d 74 69 74 6c 65 20 73 74 72 uint.16).........(song-title.str
169800 7a 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 67 61 6d 65 2d 74 69 74 6c 65 20 73 74 72 7a 20 33 z.32).........(game-title.strz.3
169820 32 29 0a 20 20 20 20 20 20 20 20 28 64 75 6d 70 65 72 20 73 74 72 7a 20 31 36 29 0a 20 20 20 20 2).........(dumper.strz.16).....
169840 20 20 20 20 28 63 6f 6d 6d 65 6e 74 20 73 74 72 7a 20 33 32 29 0a 20 20 20 20 20 20 20 20 28 64 ....(comment.strz.32).........(d
169860 61 74 65 20 73 74 72 7a 20 31 31 29 0a 20 20 20 20 20 20 20 20 28 66 61 64 65 6f 75 74 20 76 65 ate.strz.11).........(fadeout.ve
169880 63 20 33 29 0a 20 20 20 20 20 20 20 20 28 66 61 64 65 6f 75 74 2d 6c 65 6e 67 74 68 20 76 65 63 c.3).........(fadeout-length.vec
1698a0 20 35 29 0a 20 20 20 20 20 20 20 20 28 61 72 74 69 73 74 20 73 74 72 7a 20 33 32 29 29 0a 20 20 .5).........(artist.strz.32))...
1698c0 27 28 28 66 69 6c 65 2d 69 64 65 6e 74 69 66 69 65 72 20 73 74 72 20 33 33 29 0a 20 20 20 20 28 '((file-identifier.str.33).....(
1698e0 65 76 61 6c 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6c 61 73 74 20 65 6d 6d 73 2d 69 6e eval.(unless.(equal.last.emms-in
169900 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 69 64 36 36 36 2d 6d 61 67 69 63 2d 70 61 74 74 65 fo-native-spc--id666-magic-patte
169920 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 44 36 36 36 20 66 72 rn).............(error."ID666.fr
169940 61 6d 69 6e 67 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 60 25 73 27 2c 20 67 aming.mismatch:.expected.`%s',.g
169960 6f 74 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6d 6d 73 ot.`%s'"....................emms
169980 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 69 64 36 36 36 2d 6d 61 67 69 63 2d 70 61 -info-native-spc--id666-magic-pa
1699a0 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 29 29 29 ttern....................last)))
1699c0 0a 20 20 20 20 28 75 6e 75 73 65 64 20 75 31 36 29 0a 20 20 20 20 28 68 61 73 2d 69 64 36 36 36 .....(unused.u16).....(has-id666
1699e0 20 75 38 29 0a 20 20 20 20 28 72 65 76 69 73 69 6f 6e 20 75 38 29 0a 20 20 20 20 28 70 63 2d 72 .u8).....(revision.u8).....(pc-r
169a00 65 67 20 75 31 36 29 0a 20 20 20 20 28 61 2d 72 65 67 20 75 38 29 0a 20 20 20 20 28 78 2d 72 65 eg.u16).....(a-reg.u8).....(x-re
169a20 67 20 75 38 29 0a 20 20 20 20 28 79 2d 72 65 67 20 75 38 29 0a 20 20 20 20 28 70 73 77 2d 72 65 g.u8).....(y-reg.u8).....(psw-re
169a40 67 20 75 38 29 0a 20 20 20 20 28 73 70 2d 72 65 67 20 75 38 29 0a 20 20 20 20 28 72 65 73 2d 72 g.u8).....(sp-reg.u8).....(res-r
169a60 65 67 20 75 31 36 29 0a 20 20 20 20 28 73 6f 6e 67 2d 74 69 74 6c 65 20 73 74 72 7a 20 33 32 29 eg.u16).....(song-title.strz.32)
169a80 0a 20 20 20 20 28 67 61 6d 65 2d 74 69 74 6c 65 20 73 74 72 7a 20 33 32 29 0a 20 20 20 20 28 64 .....(game-title.strz.32).....(d
169aa0 75 6d 70 65 72 20 73 74 72 7a 20 31 36 29 0a 20 20 20 20 28 63 6f 6d 6d 65 6e 74 20 73 74 72 7a umper.strz.16).....(comment.strz
169ac0 20 33 32 29 0a 20 20 20 20 28 64 61 74 65 20 73 74 72 7a 20 31 31 29 0a 20 20 20 20 28 66 61 64 .32).....(date.strz.11).....(fad
169ae0 65 6f 75 74 20 76 65 63 20 33 29 0a 20 20 20 20 28 66 61 64 65 6f 75 74 2d 6c 65 6e 67 74 68 20 eout.vec.3).....(fadeout-length.
169b00 76 65 63 20 35 29 0a 20 20 20 20 28 61 72 74 69 73 74 20 73 74 72 7a 20 33 32 29 29 29 0a 20 20 vec.5).....(artist.strz.32)))...
169b20 22 49 44 36 36 36 20 68 65 61 64 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 0a 0a 53 6f "ID666.header.specification...So
169b40 75 72 63 65 73 3a 0a 0a 2d 20 55 52 4c 20 60 68 74 74 70 73 3a 2f 2f 6f 63 72 65 6d 69 78 2e 6f urces:..-.URL.`https://ocremix.o
169b60 72 67 2f 69 6e 66 6f 2f 53 50 43 5f 46 6f 72 6d 61 74 5f 53 70 65 63 69 66 69 63 61 74 69 6f 6e rg/info/SPC_Format_Specification
169b80 27 0a 2d 20 55 52 4c 20 60 68 74 74 70 73 3a 2f 2f 70 69 63 61 72 64 2d 64 6f 63 73 2e 6d 75 73 '.-.URL.`https://picard-docs.mus
169ba0 69 63 62 72 61 69 6e 7a 2e 6f 72 67 2f 65 6e 2f 61 70 70 65 6e 64 69 63 65 73 2f 74 61 67 5f 6d icbrainz.org/en/appendices/tag_m
169bc0 61 70 70 69 6e 67 2e 68 74 6d 6c 27 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f apping.html'")..(defun.emms-info
169be0 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 64 65 63 6f 64 65 2d 69 64 36 36 36 2d 68 65 61 64 65 72 -native-spc--decode-id666-header
169c00 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 49 .(filename)..."Read.and.decode.I
169c20 44 36 36 36 20 68 65 61 64 65 72 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 20 28 77 D666.header.from.FILENAME."...(w
169c40 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d ith-temp-buffer.....(set-buffer-
169c60 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d multibyte.nil).....(insert-file-
169c80 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 20 contents-literally.filename.nil.
169ca0 30 20 32 31 30 29 0a 20 20 20 20 28 62 69 6e 64 61 74 2d 75 6e 70 61 63 6b 20 65 6d 6d 73 2d 69 0.210).....(bindat-unpack.emms-i
169cc0 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 69 64 36 36 36 2d 68 65 61 64 65 72 2d 62 69 6e nfo-native-spc--id666-header-bin
169ce0 64 61 74 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 dat-spec....................(buf
169d00 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 6d 73 2d 69 6e 66 6f fer-string))))..(defun.emms-info
169d20 2d 6e 61 74 69 76 65 2d 73 70 63 2d 64 65 63 6f 64 65 2d 69 64 36 36 36 20 28 66 69 6c 65 6e 61 -native-spc-decode-id666.(filena
169d40 6d 65 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 49 44 36 36 36 20 6d 65 74 me)..."Read.and.decode.ID666.met
169d60 61 64 61 74 61 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 0a 52 65 74 75 72 6e 20 6d 65 74 61 adata.from.FILENAME..Return.meta
169d80 64 61 74 61 20 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 28 46 49 45 4c 44 20 2e 20 56 41 4c 55 45 data.in.a.list.of.(FIELD...VALUE
169da0 29 20 63 6f 6e 73 20 63 65 6c 6c 73 2c 20 6f 72 20 6e 69 6c 0a 69 6e 20 63 61 73 65 20 6f 66 20 ).cons.cells,.or.nil.in.case.of.
169dc0 65 72 72 6f 72 73 20 6f 72 20 69 66 20 74 68 65 72 65 20 77 65 72 65 20 6e 6f 20 6b 6e 6f 77 6e errors.or.if.there.were.no.known
169de0 20 66 69 65 6c 64 73 20 69 6e 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 20 28 63 6f 6e 64 69 74 69 .fields.in.FILENAME."...(conditi
169e00 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 65 61 64 65 72 20 on-case.nil.......(let.((header.
169e20 28 65 6d 6d 73 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 2d 2d 64 65 63 6f 64 65 2d 69 64 (emms-info-native-spc--decode-id
169e40 36 36 36 2d 68 65 61 64 65 72 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 09 28 77 68 65 6e 20 28 3d 666-header.filename)))..(when.(=
169e60 20 32 36 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 68 61 .26.(bindat-get-field.header.'ha
169e80 73 2d 69 64 36 36 36 29 29 0a 09 20 20 28 6c 69 73 74 0a 09 20 20 20 28 63 6f 6e 73 20 27 69 6e s-id666))....(list.....(cons.'in
169ea0 66 6f 2d 74 69 74 6c 65 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 fo-title.(bindat-get-field.heade
169ec0 72 20 27 73 6f 6e 67 2d 74 69 74 6c 65 29 29 0a 09 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d r.'song-title)).....(cons.'info-
169ee0 61 6c 62 75 6d 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 album.(bindat-get-field.header.'
169f00 67 61 6d 65 2d 74 69 74 6c 65 29 29 0a 09 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d 61 72 74 game-title)).....(cons.'info-art
169f20 69 73 74 20 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 61 72 ist.(bindat-get-field.header.'ar
169f40 74 69 73 74 29 29 0a 09 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d 63 6f 6d 70 6f 73 65 72 20 tist)).....(cons.'info-composer.
169f60 28 62 69 6e 64 61 74 2d 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 61 72 74 69 73 74 (bindat-get-field.header.'artist
169f80 29 29 0a 09 20 20 20 28 63 6f 6e 73 20 27 69 6e 66 6f 2d 6e 6f 74 65 20 28 62 69 6e 64 61 74 2d )).....(cons.'info-note.(bindat-
169fa0 67 65 74 2d 66 69 65 6c 64 20 68 65 61 64 65 72 20 27 63 6f 6d 6d 65 6e 74 29 29 29 29 29 0a 20 get-field.header.'comment)))))..
169fc0 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 6d 73 ...(error.nil)))..(provide.'emms
169fe0 2d 69 6e 66 6f 2d 6e 61 74 69 76 65 2d 73 70 63 29 0a 0a 3b 3b 3b 20 65 6d 6d 73 2d 69 6e 66 6f -info-native-spc)..;;;.emms-info
16a000 2d 6e 61 74 69 76 65 2d 73 70 63 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 -native-spc.el.ends.here........
16a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................